Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

wangshuangpan vor 5 Monaten
Ursprung
Commit
6f2b081c96
100 geänderte Dateien mit 16458 neuen und 293 gelöschten Zeilen
  1. 207 15
      health-admin/src/main/java/com/bzd/web/controller/DTP/PharmaceuticalServiceController.java
  2. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbInventoryvariationController.java
  3. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbJxcspmxStoreinventorychangesController.java
  4. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbMaintenanceorderitemsController.java
  5. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbProductinspectionController.java
  6. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbQdjlCleaningitemsController.java
  7. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbQualityreportitemsController.java
  8. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbReceiptorderitemsController.java
  9. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbRefillingitemsController.java
  10. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbRequisitionorderitemsController.java
  11. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbRetailsalesController.java
  12. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbReturnorderitemsController.java
  13. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbSalesanddispensingController.java
  14. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbStoreinventorycostController.java
  15. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkArrivalinfoController.java
  16. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkCkReceiptinfoController.java
  17. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDcddStorepurchaseorderController.java
  18. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDcshStorepurchasereceiptController.java
  19. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDcshStorepurchaserequestController.java
  20. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDcthStorereturnorderController.java
  21. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDzysDeliveryorderController.java
  22. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDzysEmployeesignaturestatusController.java
  23. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkMdqhRequisitionapplicationController.java
  24. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkMdqhdRequisitionorderController.java
  25. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkMdshReceiptdocumentController.java
  26. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkOutinfoController.java
  27. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkThReturnController.java
  28. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkThshReturndocumentController.java
  29. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkWeeklyrequisitionstatsController.java
  30. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkYsrkCheckinController.java
  31. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnAdjustmentdocumentController.java
  32. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnClyhStoremaintenancesheetController.java
  33. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnKqydStoreorderdetailsController.java
  34. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnKyspStoredocumentController.java
  35. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnLskcStoreproductinventoryController.java
  36. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnMdkcStoreproductstockController.java
  37. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnPdrwInventorytaskController.java
  38. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnQdjlCleaningitemsController.java
  39. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnQdjllClearancesheetController.java
  40. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnRefillsheetController.java
  41. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnStoragelocationController.java
  42. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnStoreinventorystatsController.java
  43. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnTransferzonedocumentController.java
  44. 158 0
      health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnZxyjStorestaleproductsController.java
  45. 5 0
      health-admin/src/main/resources/static/health/css/input-styles.css
  46. 23 68
      health-admin/src/main/resources/templates/DTP/cold/cold.html
  47. 91 77
      health-admin/src/main/resources/templates/DTP/cold/edit.html
  48. 11 58
      health-admin/src/main/resources/templates/DTP/recipe/add.html
  49. 8 4
      health-admin/src/main/resources/templates/DTP/recipe/edit.html
  50. 12 58
      health-admin/src/main/resources/templates/DTP/recipe/recipe.html
  51. 5 10
      health-admin/src/main/resources/templates/DTP/recipe/view.html
  52. 1 1
      health-admin/src/main/resources/templates/dtp/followUp/followUpList.html
  53. 2 2
      health-admin/src/main/resources/templates/dtp/followUpAssign/followUpAssignList.html
  54. 92 0
      health-admin/src/main/resources/templates/dtp/followUpEvaluation/followUpEvaluationEdit.html
  55. 205 0
      health-admin/src/main/resources/templates/dtp/followUpEvaluation/followUpEvaluationList.html
  56. 131 0
      health-admin/src/main/resources/templates/dtp/patientCounseling/patientCounselingEdit.html
  57. 211 0
      health-admin/src/main/resources/templates/dtp/patientCounseling/patientCounselingList.html
  58. 49 0
      health-admin/src/main/resources/templates/dtp/print/detail.html
  59. 189 0
      health-admin/src/main/resources/templates/dtp/print/print.html
  60. 452 0
      health-admin/src/main/resources/templates/dtp/recipe/view.html
  61. 369 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationAdd.html
  62. 300 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationEdit.html
  63. 353 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationList.html
  64. 291 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationPageEdit.html
  65. 233 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesAdd.html
  66. 198 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesEdit.html
  67. 285 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesList.html
  68. 189 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesPageEdit.html
  69. 193 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsAdd.html
  70. 168 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsEdit.html
  71. 265 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsList.html
  72. 159 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsPageEdit.html
  73. 241 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionAdd.html
  74. 204 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionEdit.html
  75. 289 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionList.html
  76. 195 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionPageEdit.html
  77. 129 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsAdd.html
  78. 120 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsEdit.html
  79. 233 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsList.html
  80. 111 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsPageEdit.html
  81. 169 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsAdd.html
  82. 150 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsEdit.html
  83. 253 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsList.html
  84. 141 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsPageEdit.html
  85. 193 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsAdd.html
  86. 168 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsEdit.html
  87. 265 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsList.html
  88. 159 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsPageEdit.html
  89. 137 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsAdd.html
  90. 126 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsEdit.html
  91. 237 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsList.html
  92. 117 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsPageEdit.html
  93. 145 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsAdd.html
  94. 132 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsEdit.html
  95. 241 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsList.html
  96. 123 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsPageEdit.html
  97. 161 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesAdd.html
  98. 144 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesEdit.html
  99. 249 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesList.html
  100. 135 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesPageEdit.html

+ 207 - 15
health-admin/src/main/java/com/bzd/web/controller/DTP/PharmaceuticalServiceController.java

@@ -6,10 +6,7 @@ import com.bzd.common.core.controller.BaseController;
 import com.bzd.common.core.domain.AjaxResult;
 import com.bzd.common.core.page.TableDataInfo;
 import com.bzd.common.enums.BusinessType;
-import com.bzd.common.utils.poi.ExcelUtil;
-import com.bzd.system.service.DTPService;
 import com.bzd.system.service.PharmaceuticalService;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -35,6 +32,12 @@ public class PharmaceuticalServiceController extends BaseController {
     // 随访人员分配
     private String prefix_followUp_assign = "dtp/followUpAssign";
 
+    //患者咨询
+    private String prefix_patient_counseling = "dtp/patientCounseling";
+
+    //患者咨询
+    private String prefix_followUp_evaluation = "dtp/followUpEvaluation";
+
     @Autowired
     private PharmaceuticalService pharmaceuticalService;
 
@@ -76,8 +79,7 @@ public class PharmaceuticalServiceController extends BaseController {
     @PostMapping("/archivesRemove")
     @ResponseBody
     public AjaxResult archivesRemove() throws Exception {
-        PageData pd = new PageData();
-        pd = this.getPageData();
+        PageData pd = this.getPageData();
         Integer integer = pharmaceuticalService.archivesRemove(pd);
         return toAjax(integer);
     }
@@ -91,7 +93,6 @@ public class PharmaceuticalServiceController extends BaseController {
     @RequiresPermissions("dtp:pmService:edit")
     @GetMapping("/archivesEdit/{archivesId}")
     public String archivesView(@PathVariable("archivesId") Long archivesId, ModelMap mmap) throws Exception {
-        ObjectMapper mapper = new ObjectMapper();
         PageData pd = this.getPageData();
         pd.put("archivesId", archivesId);
         PageData pageData = pharmaceuticalService.findArchivesList(pd).get(0);
@@ -162,8 +163,7 @@ public class PharmaceuticalServiceController extends BaseController {
     @PostMapping("/followUpRemove")
     @ResponseBody
     public AjaxResult followUpRemove() throws Exception {
-        PageData pd = new PageData();
-        pd = this.getPageData();
+        PageData pd = this.getPageData();
         try {
             Integer deleteResult = pharmaceuticalService.followUpRemove(pd);
             if (deleteResult == 1) {
@@ -190,7 +190,6 @@ public class PharmaceuticalServiceController extends BaseController {
     @RequiresPermissions("dtp:pmService:edit")
     @GetMapping("/followUpEdit/{followUpId}")
     public String followUpView(@PathVariable("followUpId") Long followUpId, ModelMap mmap) throws Exception {
-        ObjectMapper mapper = new ObjectMapper();
         PageData pd = this.getPageData();
         pd.put("id", followUpId);
         PageData pageData = pharmaceuticalService.findFollowUpList(pd).get(0);
@@ -261,8 +260,7 @@ public class PharmaceuticalServiceController extends BaseController {
     @PostMapping("/followUpAssignRemove")
     @ResponseBody
     public AjaxResult followUpAssignRemove() throws Exception {
-        PageData pd = new PageData();
-        pd = this.getPageData();
+        PageData pd = this.getPageData();
         try {
             Integer deleteResult = pharmaceuticalService.followUpAssignRemove(pd);
             if (deleteResult == 1) {
@@ -287,11 +285,10 @@ public class PharmaceuticalServiceController extends BaseController {
      * @throws Exception
      */
     @RequiresPermissions("dtp:pmService:edit")
-    @GetMapping("/followUpAssignEdit/{followUpId}")
-    public String followUpAssignView(@PathVariable("followUpId") Long followUpId, ModelMap mmap) throws Exception {
-        ObjectMapper mapper = new ObjectMapper();
+    @GetMapping("/followUpAssignEdit/{followUpAssignId}")
+    public String followUpAssignView(@PathVariable("followUpAssignId") Long followUpAssignId, ModelMap mmap) throws Exception {
         PageData pd = this.getPageData();
-        pd.put("id", followUpId);
+        pd.put("id", followUpAssignId);
         PageData pageData = pharmaceuticalService.findFollowUpAssignList(pd).get(0);
         mmap.putAll(pageData);
         return prefix_followUp_assign + "/followUpAssignEdit";
@@ -323,4 +320,199 @@ public class PharmaceuticalServiceController extends BaseController {
             return AjaxResult.error("系统异常:" + e.getMessage());
         }
     }
+
+    /**
+     * 患者咨询 页面
+     * @return
+     */
+    @RequiresPermissions("dtp:pmService:view")
+    @GetMapping("/patientCounseling")
+    public String patientCounseling() {
+        return prefix_patient_counseling + "/patientCounselingList";
+    }
+
+    /**
+     * 患者咨询数据查询
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("dtp:pmService:patientCounselingList")
+    @PostMapping("/patientCounselingList")
+    @ResponseBody
+    public TableDataInfo patientCounselingList() throws Exception {
+        PageData pd = this.getPageData();
+        startPage();
+        List<PageData> pageData = pharmaceuticalService.findPatientCounselingList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+     * 患者咨询数据删除 根据id
+     *
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("dtp:pmService:remove")
+    @Log(title = "患者咨询删除", businessType = BusinessType.DELETE)
+    @PostMapping("/patientCounselingRemove")
+    @ResponseBody
+    public AjaxResult patientCounselingRemove() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer deleteResult = pharmaceuticalService.patientCounselingRemove(pd);
+            if (deleteResult == 1) {
+                // 删除成功
+                return AjaxResult.success("删除成功");
+            } else {
+                // 删除失败
+                logger.error("Failed to update archives with ID: {}", pd.get("id"));
+                return AjaxResult.error("删除失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating archives with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 患者咨询数据修改
+     *
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("dtp:pmService:edit")
+    @GetMapping("/patientCounselingEdit/{patientCounselingId}")
+    public String patientCounselingView(@PathVariable("patientCounselingId") Long patientCounselingId, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", patientCounselingId);
+        PageData pageData = pharmaceuticalService.findPatientCounselingList(pd).get(0);
+        mmap.putAll(pageData);
+        return prefix_patient_counseling + "/patientCounselingEdit";
+    }
+
+    /**
+     * 保存患者咨询数据修改
+     */
+    @RequiresPermissions("dtp:pmService:edit")
+    @Log(title = "档案管理修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/patientCounselingEdit")
+    @ResponseBody
+    public AjaxResult patientCounselingEditSave() {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = pharmaceuticalService.updatePatientCounseling(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update archives with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating archives with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+
+    /**
+     * 随访满意度评价 页面
+     * @return
+     */
+    @RequiresPermissions("dtp:pmService:view")
+    @GetMapping("/followUpEvaluation")
+    public String followUpEvaluation() {
+        return prefix_followUp_evaluation + "/followUpEvaluationList";
+    }
+
+    /**
+     * 随访满意度评价 数据查询
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("dtp:pmService:patientCounselingList")
+    @PostMapping("/followUpEvaluationList")
+    @ResponseBody
+    public TableDataInfo followUpEvaluationList() throws Exception {
+        PageData pd = this.getPageData();
+        startPage();
+        List<PageData> pageData = pharmaceuticalService.findFollowUpEvaluationList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+     * 随访满意度评价 数据删除 根据id
+     *
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("dtp:pmService:remove")
+    @Log(title = "随访满意度评价删除", businessType = BusinessType.DELETE)
+    @PostMapping("/followUpEvaluationRemove")
+    @ResponseBody
+    public AjaxResult followUpEvaluationRemove() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer deleteResult = pharmaceuticalService.followUpEvaluationRemove(pd);
+            if (deleteResult == 1) {
+                // 删除成功
+                return AjaxResult.success("删除成功");
+            } else {
+                // 删除失败
+                logger.error("Failed to update archives with ID: {}", pd.get("id"));
+                return AjaxResult.error("删除失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating archives with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 随访满意度评价数据修改
+     *
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("dtp:pmService:edit")
+    @GetMapping("/followUpEvaluationEdit/{followUpEvaluationId}")
+    public String followUpEvaluationView(@PathVariable("followUpEvaluationId") Long followUpEvaluationId, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", followUpEvaluationId);
+        PageData pageData = pharmaceuticalService.findFollowUpEvaluationList(pd).get(0);
+        mmap.putAll(pageData);
+        return prefix_followUp_evaluation + "/followUpEvaluationEdit";
+    }
+
+    /**
+     * 保存随访满意度评价数据修改
+     */
+    @RequiresPermissions("dtp:pmService:edit")
+    @Log(title = "随访满意度评价修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/followUpEvaluationEdit")
+    @ResponseBody
+    public AjaxResult followUpEvaluationEditSave() {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = pharmaceuticalService.updateFollowUpEvaluation(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update archives with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating archives with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
 }

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbInventoryvariationController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbInventoryvariationService;
+
+import java.util.List;
+
+/**
+*
+* 门店进销存月报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbinventoryvariation")
+public class SKcBbInventoryvariationController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbInventoryvariationService sKcBbInventoryvariationService;
+
+    /**
+    * 门店进销存月报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbInventoryvariationAdd")
+    public String add() {
+        return prefix + "/SKcBbInventoryvariationAdd";
+    }
+
+    /**
+    * 门店进销存月报表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店进销存月报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbInventoryvariationAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbInventoryvariationService.addSKcBbInventoryvariation(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店进销存月报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbInventoryvariationView")
+    public String skcbbinventoryvariationListView() {
+        return prefix + "/SKcBbInventoryvariationList";
+    }
+
+    /**
+    * 门店进销存月报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbInventoryvariationList")
+    @PostMapping("/sKcBbInventoryvariationList")
+    @ResponseBody
+    public TableDataInfo skcbbinventoryvariationList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbInventoryvariationService.findSKcBbInventoryvariationList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店进销存月报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "门店进销存月报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbInventoryvariationRemove")
+    @ResponseBody
+    public AjaxResult skcbbinventoryvariationRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbInventoryvariationService.SKcBbInventoryvariationRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店进销存月报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbInventoryvariationEdit/{id}")
+    public String skcbbinventoryvariationView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbInventoryvariationService.findSKcBbInventoryvariationList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbinventoryvariationPageEdit";
+        }
+        return prefix+ "/skcbbinventoryvariationEdit";
+    }
+
+    /**
+    * 门店进销存月报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "门店进销存月报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbInventoryvariationEdit")
+    @ResponseBody
+    public AjaxResult skcbbinventoryvariationEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbInventoryvariationService.updateSKcBbInventoryvariation(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbinventoryvariation with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbinventoryvariation with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbJxcspmxStoreinventorychangesController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbJxcspmxStoreinventorychangesService;
+
+import java.util.List;
+
+/**
+*
+* 进销存商品明细报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbjxcspmxstoreinventorychanges")
+public class SKcBbJxcspmxStoreinventorychangesController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbJxcspmxStoreinventorychangesService sKcBbJxcspmxStoreinventorychangesService;
+
+    /**
+    * 进销存商品明细报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbJxcspmxStoreinventorychangesAdd")
+    public String add() {
+        return prefix + "/SKcBbJxcspmxStoreinventorychangesAdd";
+    }
+
+    /**
+    * 进销存商品明细报表 新增
+    *
+    * @return
+    */
+    @Log(title = "进销存商品明细报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbJxcspmxStoreinventorychangesAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbJxcspmxStoreinventorychangesService.addSKcBbJxcspmxStoreinventorychanges(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 进销存商品明细报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbJxcspmxStoreinventorychangesView")
+    public String skcbbjxcspmxstoreinventorychangesListView() {
+        return prefix + "/SKcBbJxcspmxStoreinventorychangesList";
+    }
+
+    /**
+    * 进销存商品明细报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbJxcspmxStoreinventorychangesList")
+    @PostMapping("/sKcBbJxcspmxStoreinventorychangesList")
+    @ResponseBody
+    public TableDataInfo skcbbjxcspmxstoreinventorychangesList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbJxcspmxStoreinventorychangesService.findSKcBbJxcspmxStoreinventorychangesList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 进销存商品明细报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "进销存商品明细报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbJxcspmxStoreinventorychangesRemove")
+    @ResponseBody
+    public AjaxResult skcbbjxcspmxstoreinventorychangesRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbJxcspmxStoreinventorychangesService.SKcBbJxcspmxStoreinventorychangesRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 进销存商品明细报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbJxcspmxStoreinventorychangesEdit/{id}")
+    public String skcbbjxcspmxstoreinventorychangesView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbJxcspmxStoreinventorychangesService.findSKcBbJxcspmxStoreinventorychangesList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbjxcspmxstoreinventorychangesPageEdit";
+        }
+        return prefix+ "/skcbbjxcspmxstoreinventorychangesEdit";
+    }
+
+    /**
+    * 进销存商品明细报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "进销存商品明细报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbJxcspmxStoreinventorychangesEdit")
+    @ResponseBody
+    public AjaxResult skcbbjxcspmxstoreinventorychangesEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbJxcspmxStoreinventorychangesService.updateSKcBbJxcspmxStoreinventorychanges(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbjxcspmxstoreinventorychanges with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbjxcspmxstoreinventorychanges with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbMaintenanceorderitemsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbMaintenanceorderitemsService;
+
+import java.util.List;
+
+/**
+*
+* 养护记录报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbmaintenanceorderitems")
+public class SKcBbMaintenanceorderitemsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbMaintenanceorderitemsService sKcBbMaintenanceorderitemsService;
+
+    /**
+    * 养护记录报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbMaintenanceorderitemsAdd")
+    public String add() {
+        return prefix + "/SKcBbMaintenanceorderitemsAdd";
+    }
+
+    /**
+    * 养护记录报表 新增
+    *
+    * @return
+    */
+    @Log(title = "养护记录报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbMaintenanceorderitemsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbMaintenanceorderitemsService.addSKcBbMaintenanceorderitems(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 养护记录报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbMaintenanceorderitemsView")
+    public String skcbbmaintenanceorderitemsListView() {
+        return prefix + "/SKcBbMaintenanceorderitemsList";
+    }
+
+    /**
+    * 养护记录报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbMaintenanceorderitemsList")
+    @PostMapping("/sKcBbMaintenanceorderitemsList")
+    @ResponseBody
+    public TableDataInfo skcbbmaintenanceorderitemsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbMaintenanceorderitemsService.findSKcBbMaintenanceorderitemsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 养护记录报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "养护记录报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbMaintenanceorderitemsRemove")
+    @ResponseBody
+    public AjaxResult skcbbmaintenanceorderitemsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbMaintenanceorderitemsService.SKcBbMaintenanceorderitemsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 养护记录报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbMaintenanceorderitemsEdit/{id}")
+    public String skcbbmaintenanceorderitemsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbMaintenanceorderitemsService.findSKcBbMaintenanceorderitemsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbmaintenanceorderitemsPageEdit";
+        }
+        return prefix+ "/skcbbmaintenanceorderitemsEdit";
+    }
+
+    /**
+    * 养护记录报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "养护记录报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbMaintenanceorderitemsEdit")
+    @ResponseBody
+    public AjaxResult skcbbmaintenanceorderitemsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbMaintenanceorderitemsService.updateSKcBbMaintenanceorderitems(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbmaintenanceorderitems with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbmaintenanceorderitems with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbProductinspectionController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbProductinspectionService;
+
+import java.util.List;
+
+/**
+*
+* 验收入库报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbproductinspection")
+public class SKcBbProductinspectionController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbProductinspectionService sKcBbProductinspectionService;
+
+    /**
+    * 验收入库报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbProductinspectionAdd")
+    public String add() {
+        return prefix + "/SKcBbProductinspectionAdd";
+    }
+
+    /**
+    * 验收入库报表 新增
+    *
+    * @return
+    */
+    @Log(title = "验收入库报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbProductinspectionAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbProductinspectionService.addSKcBbProductinspection(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 验收入库报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbProductinspectionView")
+    public String skcbbproductinspectionListView() {
+        return prefix + "/SKcBbProductinspectionList";
+    }
+
+    /**
+    * 验收入库报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbProductinspectionList")
+    @PostMapping("/sKcBbProductinspectionList")
+    @ResponseBody
+    public TableDataInfo skcbbproductinspectionList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbProductinspectionService.findSKcBbProductinspectionList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 验收入库报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "验收入库报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbProductinspectionRemove")
+    @ResponseBody
+    public AjaxResult skcbbproductinspectionRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbProductinspectionService.SKcBbProductinspectionRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 验收入库报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbProductinspectionEdit/{id}")
+    public String skcbbproductinspectionView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbProductinspectionService.findSKcBbProductinspectionList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbproductinspectionPageEdit";
+        }
+        return prefix+ "/skcbbproductinspectionEdit";
+    }
+
+    /**
+    * 验收入库报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "验收入库报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbProductinspectionEdit")
+    @ResponseBody
+    public AjaxResult skcbbproductinspectionEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbProductinspectionService.updateSKcBbProductinspection(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbproductinspection with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbproductinspection with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbQdjlCleaningitemsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbQdjlCleaningitemsService;
+
+import java.util.List;
+
+/**
+*
+* 清斗报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbqdjlcleaningitems")
+public class SKcBbQdjlCleaningitemsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbQdjlCleaningitemsService sKcBbQdjlCleaningitemsService;
+
+    /**
+    * 清斗报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbQdjlCleaningitemsAdd")
+    public String add() {
+        return prefix + "/SKcBbQdjlCleaningitemsAdd";
+    }
+
+    /**
+    * 清斗报表 新增
+    *
+    * @return
+    */
+    @Log(title = "清斗报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbQdjlCleaningitemsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbQdjlCleaningitemsService.addSKcBbQdjlCleaningitems(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 清斗报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbQdjlCleaningitemsView")
+    public String skcbbqdjlcleaningitemsListView() {
+        return prefix + "/SKcBbQdjlCleaningitemsList";
+    }
+
+    /**
+    * 清斗报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbQdjlCleaningitemsList")
+    @PostMapping("/sKcBbQdjlCleaningitemsList")
+    @ResponseBody
+    public TableDataInfo skcbbqdjlcleaningitemsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbQdjlCleaningitemsService.findSKcBbQdjlCleaningitemsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 清斗报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "清斗报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbQdjlCleaningitemsRemove")
+    @ResponseBody
+    public AjaxResult skcbbqdjlcleaningitemsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbQdjlCleaningitemsService.SKcBbQdjlCleaningitemsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 清斗报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbQdjlCleaningitemsEdit/{id}")
+    public String skcbbqdjlcleaningitemsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbQdjlCleaningitemsService.findSKcBbQdjlCleaningitemsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbqdjlcleaningitemsPageEdit";
+        }
+        return prefix+ "/skcbbqdjlcleaningitemsEdit";
+    }
+
+    /**
+    * 清斗报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "清斗报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbQdjlCleaningitemsEdit")
+    @ResponseBody
+    public AjaxResult skcbbqdjlcleaningitemsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbQdjlCleaningitemsService.updateSKcBbQdjlCleaningitems(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbqdjlcleaningitems with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbqdjlcleaningitems with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbQualityreportitemsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbQualityreportitemsService;
+
+import java.util.List;
+
+/**
+*
+* 可疑商品报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbqualityreportitems")
+public class SKcBbQualityreportitemsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbQualityreportitemsService sKcBbQualityreportitemsService;
+
+    /**
+    * 可疑商品报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbQualityreportitemsAdd")
+    public String add() {
+        return prefix + "/SKcBbQualityreportitemsAdd";
+    }
+
+    /**
+    * 可疑商品报表 新增
+    *
+    * @return
+    */
+    @Log(title = "可疑商品报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbQualityreportitemsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbQualityreportitemsService.addSKcBbQualityreportitems(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 可疑商品报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbQualityreportitemsView")
+    public String skcbbqualityreportitemsListView() {
+        return prefix + "/SKcBbQualityreportitemsList";
+    }
+
+    /**
+    * 可疑商品报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbQualityreportitemsList")
+    @PostMapping("/sKcBbQualityreportitemsList")
+    @ResponseBody
+    public TableDataInfo skcbbqualityreportitemsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbQualityreportitemsService.findSKcBbQualityreportitemsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 可疑商品报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "可疑商品报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbQualityreportitemsRemove")
+    @ResponseBody
+    public AjaxResult skcbbqualityreportitemsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbQualityreportitemsService.SKcBbQualityreportitemsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 可疑商品报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbQualityreportitemsEdit/{id}")
+    public String skcbbqualityreportitemsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbQualityreportitemsService.findSKcBbQualityreportitemsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbqualityreportitemsPageEdit";
+        }
+        return prefix+ "/skcbbqualityreportitemsEdit";
+    }
+
+    /**
+    * 可疑商品报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "可疑商品报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbQualityreportitemsEdit")
+    @ResponseBody
+    public AjaxResult skcbbqualityreportitemsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbQualityreportitemsService.updateSKcBbQualityreportitems(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbqualityreportitems with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbqualityreportitems with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbReceiptorderitemsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbReceiptorderitemsService;
+
+import java.util.List;
+
+/**
+*
+* 收货报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbreceiptorderitems")
+public class SKcBbReceiptorderitemsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbReceiptorderitemsService sKcBbReceiptorderitemsService;
+
+    /**
+    * 收货报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbReceiptorderitemsAdd")
+    public String add() {
+        return prefix + "/SKcBbReceiptorderitemsAdd";
+    }
+
+    /**
+    * 收货报表 新增
+    *
+    * @return
+    */
+    @Log(title = "收货报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbReceiptorderitemsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbReceiptorderitemsService.addSKcBbReceiptorderitems(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 收货报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbReceiptorderitemsView")
+    public String skcbbreceiptorderitemsListView() {
+        return prefix + "/SKcBbReceiptorderitemsList";
+    }
+
+    /**
+    * 收货报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbReceiptorderitemsList")
+    @PostMapping("/sKcBbReceiptorderitemsList")
+    @ResponseBody
+    public TableDataInfo skcbbreceiptorderitemsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbReceiptorderitemsService.findSKcBbReceiptorderitemsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 收货报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "收货报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbReceiptorderitemsRemove")
+    @ResponseBody
+    public AjaxResult skcbbreceiptorderitemsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbReceiptorderitemsService.SKcBbReceiptorderitemsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 收货报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbReceiptorderitemsEdit/{id}")
+    public String skcbbreceiptorderitemsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbReceiptorderitemsService.findSKcBbReceiptorderitemsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbreceiptorderitemsPageEdit";
+        }
+        return prefix+ "/skcbbreceiptorderitemsEdit";
+    }
+
+    /**
+    * 收货报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "收货报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbReceiptorderitemsEdit")
+    @ResponseBody
+    public AjaxResult skcbbreceiptorderitemsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbReceiptorderitemsService.updateSKcBbReceiptorderitems(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbreceiptorderitems with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbreceiptorderitems with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbRefillingitemsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbRefillingitemsService;
+
+import java.util.List;
+
+/**
+*
+* 装斗报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbrefillingitems")
+public class SKcBbRefillingitemsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbRefillingitemsService sKcBbRefillingitemsService;
+
+    /**
+    * 装斗报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbRefillingitemsAdd")
+    public String add() {
+        return prefix + "/SKcBbRefillingitemsAdd";
+    }
+
+    /**
+    * 装斗报表 新增
+    *
+    * @return
+    */
+    @Log(title = "装斗报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbRefillingitemsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbRefillingitemsService.addSKcBbRefillingitems(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 装斗报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbRefillingitemsView")
+    public String skcbbrefillingitemsListView() {
+        return prefix + "/SKcBbRefillingitemsList";
+    }
+
+    /**
+    * 装斗报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbRefillingitemsList")
+    @PostMapping("/sKcBbRefillingitemsList")
+    @ResponseBody
+    public TableDataInfo skcbbrefillingitemsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbRefillingitemsService.findSKcBbRefillingitemsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 装斗报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "装斗报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbRefillingitemsRemove")
+    @ResponseBody
+    public AjaxResult skcbbrefillingitemsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbRefillingitemsService.SKcBbRefillingitemsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 装斗报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbRefillingitemsEdit/{id}")
+    public String skcbbrefillingitemsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbRefillingitemsService.findSKcBbRefillingitemsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbrefillingitemsPageEdit";
+        }
+        return prefix+ "/skcbbrefillingitemsEdit";
+    }
+
+    /**
+    * 装斗报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "装斗报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbRefillingitemsEdit")
+    @ResponseBody
+    public AjaxResult skcbbrefillingitemsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbRefillingitemsService.updateSKcBbRefillingitems(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbrefillingitems with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbrefillingitems with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbRequisitionorderitemsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbRequisitionorderitemsService;
+
+import java.util.List;
+
+/**
+*
+* 请货报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbrequisitionorderitems")
+public class SKcBbRequisitionorderitemsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbRequisitionorderitemsService sKcBbRequisitionorderitemsService;
+
+    /**
+    * 请货报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbRequisitionorderitemsAdd")
+    public String add() {
+        return prefix + "/SKcBbRequisitionorderitemsAdd";
+    }
+
+    /**
+    * 请货报表 新增
+    *
+    * @return
+    */
+    @Log(title = "请货报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbRequisitionorderitemsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbRequisitionorderitemsService.addSKcBbRequisitionorderitems(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 请货报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbRequisitionorderitemsView")
+    public String skcbbrequisitionorderitemsListView() {
+        return prefix + "/SKcBbRequisitionorderitemsList";
+    }
+
+    /**
+    * 请货报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbRequisitionorderitemsList")
+    @PostMapping("/sKcBbRequisitionorderitemsList")
+    @ResponseBody
+    public TableDataInfo skcbbrequisitionorderitemsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbRequisitionorderitemsService.findSKcBbRequisitionorderitemsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 请货报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "请货报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbRequisitionorderitemsRemove")
+    @ResponseBody
+    public AjaxResult skcbbrequisitionorderitemsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbRequisitionorderitemsService.SKcBbRequisitionorderitemsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 请货报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbRequisitionorderitemsEdit/{id}")
+    public String skcbbrequisitionorderitemsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbRequisitionorderitemsService.findSKcBbRequisitionorderitemsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbrequisitionorderitemsPageEdit";
+        }
+        return prefix+ "/skcbbrequisitionorderitemsEdit";
+    }
+
+    /**
+    * 请货报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "请货报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbRequisitionorderitemsEdit")
+    @ResponseBody
+    public AjaxResult skcbbrequisitionorderitemsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbRequisitionorderitemsService.updateSKcBbRequisitionorderitems(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbrequisitionorderitems with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbrequisitionorderitems with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbRetailsalesController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbRetailsalesService;
+
+import java.util.List;
+
+/**
+*
+* 零售报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbretailsales")
+public class SKcBbRetailsalesController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbRetailsalesService sKcBbRetailsalesService;
+
+    /**
+    * 零售报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbRetailsalesAdd")
+    public String add() {
+        return prefix + "/SKcBbRetailsalesAdd";
+    }
+
+    /**
+    * 零售报表 新增
+    *
+    * @return
+    */
+    @Log(title = "零售报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbRetailsalesAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbRetailsalesService.addSKcBbRetailsales(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 零售报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbRetailsalesView")
+    public String skcbbretailsalesListView() {
+        return prefix + "/SKcBbRetailsalesList";
+    }
+
+    /**
+    * 零售报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbRetailsalesList")
+    @PostMapping("/sKcBbRetailsalesList")
+    @ResponseBody
+    public TableDataInfo skcbbretailsalesList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbRetailsalesService.findSKcBbRetailsalesList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 零售报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "零售报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbRetailsalesRemove")
+    @ResponseBody
+    public AjaxResult skcbbretailsalesRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbRetailsalesService.SKcBbRetailsalesRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 零售报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbRetailsalesEdit/{id}")
+    public String skcbbretailsalesView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbRetailsalesService.findSKcBbRetailsalesList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbretailsalesPageEdit";
+        }
+        return prefix+ "/skcbbretailsalesEdit";
+    }
+
+    /**
+    * 零售报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "零售报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbRetailsalesEdit")
+    @ResponseBody
+    public AjaxResult skcbbretailsalesEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbRetailsalesService.updateSKcBbRetailsales(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbretailsales with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbretailsales with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbReturnorderitemsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbReturnorderitemsService;
+
+import java.util.List;
+
+/**
+*
+* 退货记录报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbreturnorderitems")
+public class SKcBbReturnorderitemsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbReturnorderitemsService sKcBbReturnorderitemsService;
+
+    /**
+    * 退货记录报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbReturnorderitemsAdd")
+    public String add() {
+        return prefix + "/SKcBbReturnorderitemsAdd";
+    }
+
+    /**
+    * 退货记录报表 新增
+    *
+    * @return
+    */
+    @Log(title = "退货记录报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbReturnorderitemsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbReturnorderitemsService.addSKcBbReturnorderitems(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 退货记录报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbReturnorderitemsView")
+    public String skcbbreturnorderitemsListView() {
+        return prefix + "/SKcBbReturnorderitemsList";
+    }
+
+    /**
+    * 退货记录报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbReturnorderitemsList")
+    @PostMapping("/sKcBbReturnorderitemsList")
+    @ResponseBody
+    public TableDataInfo skcbbreturnorderitemsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbReturnorderitemsService.findSKcBbReturnorderitemsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 退货记录报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "退货记录报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbReturnorderitemsRemove")
+    @ResponseBody
+    public AjaxResult skcbbreturnorderitemsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbReturnorderitemsService.SKcBbReturnorderitemsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 退货记录报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbReturnorderitemsEdit/{id}")
+    public String skcbbreturnorderitemsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbReturnorderitemsService.findSKcBbReturnorderitemsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbreturnorderitemsPageEdit";
+        }
+        return prefix+ "/skcbbreturnorderitemsEdit";
+    }
+
+    /**
+    * 退货记录报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "退货记录报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbReturnorderitemsEdit")
+    @ResponseBody
+    public AjaxResult skcbbreturnorderitemsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbReturnorderitemsService.updateSKcBbReturnorderitems(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbreturnorderitems with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbreturnorderitems with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbSalesanddispensingController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbSalesanddispensingService;
+
+import java.util.List;
+
+/**
+*
+* 拆零报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbsalesanddispensing")
+public class SKcBbSalesanddispensingController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbSalesanddispensingService sKcBbSalesanddispensingService;
+
+    /**
+    * 拆零报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbSalesanddispensingAdd")
+    public String add() {
+        return prefix + "/SKcBbSalesanddispensingAdd";
+    }
+
+    /**
+    * 拆零报表 新增
+    *
+    * @return
+    */
+    @Log(title = "拆零报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbSalesanddispensingAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbSalesanddispensingService.addSKcBbSalesanddispensing(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 拆零报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbSalesanddispensingView")
+    public String skcbbsalesanddispensingListView() {
+        return prefix + "/SKcBbSalesanddispensingList";
+    }
+
+    /**
+    * 拆零报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbSalesanddispensingList")
+    @PostMapping("/sKcBbSalesanddispensingList")
+    @ResponseBody
+    public TableDataInfo skcbbsalesanddispensingList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbSalesanddispensingService.findSKcBbSalesanddispensingList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 拆零报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "拆零报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbSalesanddispensingRemove")
+    @ResponseBody
+    public AjaxResult skcbbsalesanddispensingRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbSalesanddispensingService.SKcBbSalesanddispensingRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 拆零报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbSalesanddispensingEdit/{id}")
+    public String skcbbsalesanddispensingView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbSalesanddispensingService.findSKcBbSalesanddispensingList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbsalesanddispensingPageEdit";
+        }
+        return prefix+ "/skcbbsalesanddispensingEdit";
+    }
+
+    /**
+    * 拆零报表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "拆零报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbSalesanddispensingEdit")
+    @ResponseBody
+    public AjaxResult skcbbsalesanddispensingEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbSalesanddispensingService.updateSKcBbSalesanddispensing(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbsalesanddispensing with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbsalesanddispensing with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/bb/SKcBbStoreinventorycostController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.bb;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.bb.SKcBbStoreinventorycostService;
+
+import java.util.List;
+
+/**
+*
+* 门店进销存月汇总表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcbbstoreinventorycost")
+public class SKcBbStoreinventorycostController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/bb";
+
+    @Autowired
+    private SKcBbStoreinventorycostService sKcBbStoreinventorycostService;
+
+    /**
+    * 门店进销存月汇总表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbStoreinventorycostAdd")
+    public String add() {
+        return prefix + "/SKcBbStoreinventorycostAdd";
+    }
+
+    /**
+    * 门店进销存月汇总表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店进销存月汇总表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcBbStoreinventorycostAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcBbStoreinventorycostService.addSKcBbStoreinventorycost(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店进销存月汇总表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:bb::view")
+    @GetMapping("/sKcBbStoreinventorycostView")
+    public String skcbbstoreinventorycostListView() {
+        return prefix + "/SKcBbStoreinventorycostList";
+    }
+
+    /**
+    * 门店进销存月汇总表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:sKcBbStoreinventorycostList")
+    @PostMapping("/sKcBbStoreinventorycostList")
+    @ResponseBody
+    public TableDataInfo skcbbstoreinventorycostList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcBbStoreinventorycostService.findSKcBbStoreinventorycostList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店进销存月汇总表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:remove")
+    @Log(title = "门店进销存月汇总表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcBbStoreinventorycostRemove")
+    @ResponseBody
+    public AjaxResult skcbbstoreinventorycostRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcBbStoreinventorycostService.SKcBbStoreinventorycostRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店进销存月汇总表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @GetMapping("/sKcBbStoreinventorycostEdit/{id}")
+    public String skcbbstoreinventorycostView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcBbStoreinventorycostService.findSKcBbStoreinventorycostList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcbbstoreinventorycostPageEdit";
+        }
+        return prefix+ "/skcbbstoreinventorycostEdit";
+    }
+
+    /**
+    * 门店进销存月汇总表保存修改的数据
+    */
+    @RequiresPermissions("kc:bb:edit")
+    @Log(title = "门店进销存月汇总表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcBbStoreinventorycostEdit")
+    @ResponseBody
+    public AjaxResult skcbbstoreinventorycostEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcBbStoreinventorycostService.updateSKcBbStoreinventorycost(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcbbstoreinventorycost with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcbbstoreinventorycost with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkArrivalinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkArrivalinfoService;
+
+import java.util.List;
+
+/**
+*
+* 收货差异 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkarrivalinfo")
+public class SKcCrkArrivalinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkArrivalinfoService sKcCrkArrivalinfoService;
+
+    /**
+    * 收货差异 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkArrivalinfoAdd")
+    public String add() {
+        return prefix + "/SKcCrkArrivalinfoAdd";
+    }
+
+    /**
+    * 收货差异 新增
+    *
+    * @return
+    */
+    @Log(title = "收货差异新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkArrivalinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkArrivalinfoService.addSKcCrkArrivalinfo(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 收货差异 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkArrivalinfoView")
+    public String skccrkarrivalinfoListView() {
+        return prefix + "/SKcCrkArrivalinfoList";
+    }
+
+    /**
+    * 收货差异 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkArrivalinfoList")
+    @PostMapping("/sKcCrkArrivalinfoList")
+    @ResponseBody
+    public TableDataInfo skccrkarrivalinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkArrivalinfoService.findSKcCrkArrivalinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 收货差异 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "收货差异删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkArrivalinfoRemove")
+    @ResponseBody
+    public AjaxResult skccrkarrivalinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkArrivalinfoService.SKcCrkArrivalinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 收货差异 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkArrivalinfoEdit/{id}")
+    public String skccrkarrivalinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkArrivalinfoService.findSKcCrkArrivalinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkarrivalinfoPageEdit";
+        }
+        return prefix+ "/skccrkarrivalinfoEdit";
+    }
+
+    /**
+    * 收货差异保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "收货差异修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkArrivalinfoEdit")
+    @ResponseBody
+    public AjaxResult skccrkarrivalinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkArrivalinfoService.updateSKcCrkArrivalinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkarrivalinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkarrivalinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkCkReceiptinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkCkReceiptinfoService;
+
+import java.util.List;
+
+/**
+*
+* 门店收货表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkckreceiptinfo")
+public class SKcCrkCkReceiptinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkCkReceiptinfoService sKcCrkCkReceiptinfoService;
+
+    /**
+    * 门店收货表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkCkReceiptinfoAdd")
+    public String add() {
+        return prefix + "/SKcCrkCkReceiptinfoAdd";
+    }
+
+    /**
+    * 门店收货表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店收货表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkCkReceiptinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkCkReceiptinfoService.addSKcCrkCkReceiptinfo(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店收货表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkCkReceiptinfoView")
+    public String skccrkckreceiptinfoListView() {
+        return prefix + "/SKcCrkCkReceiptinfoList";
+    }
+
+    /**
+    * 门店收货表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkCkReceiptinfoList")
+    @PostMapping("/sKcCrkCkReceiptinfoList")
+    @ResponseBody
+    public TableDataInfo skccrkckreceiptinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkCkReceiptinfoService.findSKcCrkCkReceiptinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店收货表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "门店收货表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkCkReceiptinfoRemove")
+    @ResponseBody
+    public AjaxResult skccrkckreceiptinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkCkReceiptinfoService.SKcCrkCkReceiptinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店收货表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkCkReceiptinfoEdit/{id}")
+    public String skccrkckreceiptinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkCkReceiptinfoService.findSKcCrkCkReceiptinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkckreceiptinfoPageEdit";
+        }
+        return prefix+ "/skccrkckreceiptinfoEdit";
+    }
+
+    /**
+    * 门店收货表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "门店收货表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkCkReceiptinfoEdit")
+    @ResponseBody
+    public AjaxResult skccrkckreceiptinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkCkReceiptinfoService.updateSKcCrkCkReceiptinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDcddStorepurchaseorderController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkDcddStorepurchaseorderService;
+
+import java.util.List;
+
+/**
+*
+* 门店采购订单信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkdcddstorepurchaseorder")
+public class SKcCrkDcddStorepurchaseorderController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkDcddStorepurchaseorderService sKcCrkDcddStorepurchaseorderService;
+
+    /**
+    * 门店采购订单信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDcddStorepurchaseorderAdd")
+    public String add() {
+        return prefix + "/SKcCrkDcddStorepurchaseorderAdd";
+    }
+
+    /**
+    * 门店采购订单信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店采购订单信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkDcddStorepurchaseorderAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkDcddStorepurchaseorderService.addSKcCrkDcddStorepurchaseorder(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店采购订单信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDcddStorepurchaseorderView")
+    public String skccrkdcddstorepurchaseorderListView() {
+        return prefix + "/SKcCrkDcddStorepurchaseorderList";
+    }
+
+    /**
+    * 门店采购订单信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkDcddStorepurchaseorderList")
+    @PostMapping("/sKcCrkDcddStorepurchaseorderList")
+    @ResponseBody
+    public TableDataInfo skccrkdcddstorepurchaseorderList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkDcddStorepurchaseorderService.findSKcCrkDcddStorepurchaseorderList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店采购订单信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "门店采购订单信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkDcddStorepurchaseorderRemove")
+    @ResponseBody
+    public AjaxResult skccrkdcddstorepurchaseorderRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkDcddStorepurchaseorderService.SKcCrkDcddStorepurchaseorderRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店采购订单信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkDcddStorepurchaseorderEdit/{id}")
+    public String skccrkdcddstorepurchaseorderView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkDcddStorepurchaseorderService.findSKcCrkDcddStorepurchaseorderList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkdcddstorepurchaseorderPageEdit";
+        }
+        return prefix+ "/skccrkdcddstorepurchaseorderEdit";
+    }
+
+    /**
+    * 门店采购订单信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "门店采购订单信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkDcddStorepurchaseorderEdit")
+    @ResponseBody
+    public AjaxResult skccrkdcddstorepurchaseorderEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkDcddStorepurchaseorderService.updateSKcCrkDcddStorepurchaseorder(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkdcddstorepurchaseorder with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkdcddstorepurchaseorder with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDcshStorepurchasereceiptController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkDcshStorepurchasereceiptService;
+
+import java.util.List;
+
+/**
+*
+* 门店采购收货单信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkdcshstorepurchasereceipt")
+public class SKcCrkDcshStorepurchasereceiptController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkDcshStorepurchasereceiptService sKcCrkDcshStorepurchasereceiptService;
+
+    /**
+    * 门店采购收货单信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDcshStorepurchasereceiptAdd")
+    public String add() {
+        return prefix + "/SKcCrkDcshStorepurchasereceiptAdd";
+    }
+
+    /**
+    * 门店采购收货单信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店采购收货单信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkDcshStorepurchasereceiptAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkDcshStorepurchasereceiptService.addSKcCrkDcshStorepurchasereceipt(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店采购收货单信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDcshStorepurchasereceiptView")
+    public String skccrkdcshstorepurchasereceiptListView() {
+        return prefix + "/SKcCrkDcshStorepurchasereceiptList";
+    }
+
+    /**
+    * 门店采购收货单信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkDcshStorepurchasereceiptList")
+    @PostMapping("/sKcCrkDcshStorepurchasereceiptList")
+    @ResponseBody
+    public TableDataInfo skccrkdcshstorepurchasereceiptList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkDcshStorepurchasereceiptService.findSKcCrkDcshStorepurchasereceiptList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店采购收货单信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "门店采购收货单信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkDcshStorepurchasereceiptRemove")
+    @ResponseBody
+    public AjaxResult skccrkdcshstorepurchasereceiptRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkDcshStorepurchasereceiptService.SKcCrkDcshStorepurchasereceiptRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店采购收货单信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkDcshStorepurchasereceiptEdit/{id}")
+    public String skccrkdcshstorepurchasereceiptView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkDcshStorepurchasereceiptService.findSKcCrkDcshStorepurchasereceiptList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkdcshstorepurchasereceiptPageEdit";
+        }
+        return prefix+ "/skccrkdcshstorepurchasereceiptEdit";
+    }
+
+    /**
+    * 门店采购收货单信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "门店采购收货单信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkDcshStorepurchasereceiptEdit")
+    @ResponseBody
+    public AjaxResult skccrkdcshstorepurchasereceiptEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkDcshStorepurchasereceiptService.updateSKcCrkDcshStorepurchasereceipt(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkdcshstorepurchasereceipt with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkdcshstorepurchasereceipt with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDcshStorepurchaserequestController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkDcshStorepurchaserequestService;
+
+import java.util.List;
+
+/**
+*
+* 门店采购申请单信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkdcshstorepurchaserequest")
+public class SKcCrkDcshStorepurchaserequestController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkDcshStorepurchaserequestService sKcCrkDcshStorepurchaserequestService;
+
+    /**
+    * 门店采购申请单信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDcshStorepurchaserequestAdd")
+    public String add() {
+        return prefix + "/SKcCrkDcshStorepurchaserequestAdd";
+    }
+
+    /**
+    * 门店采购申请单信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店采购申请单信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkDcshStorepurchaserequestAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkDcshStorepurchaserequestService.addSKcCrkDcshStorepurchaserequest(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店采购申请单信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDcshStorepurchaserequestView")
+    public String skccrkdcshstorepurchaserequestListView() {
+        return prefix + "/SKcCrkDcshStorepurchaserequestList";
+    }
+
+    /**
+    * 门店采购申请单信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkDcshStorepurchaserequestList")
+    @PostMapping("/sKcCrkDcshStorepurchaserequestList")
+    @ResponseBody
+    public TableDataInfo skccrkdcshstorepurchaserequestList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkDcshStorepurchaserequestService.findSKcCrkDcshStorepurchaserequestList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店采购申请单信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "门店采购申请单信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkDcshStorepurchaserequestRemove")
+    @ResponseBody
+    public AjaxResult skccrkdcshstorepurchaserequestRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkDcshStorepurchaserequestService.SKcCrkDcshStorepurchaserequestRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店采购申请单信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkDcshStorepurchaserequestEdit/{id}")
+    public String skccrkdcshstorepurchaserequestView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkDcshStorepurchaserequestService.findSKcCrkDcshStorepurchaserequestList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkdcshstorepurchaserequestPageEdit";
+        }
+        return prefix+ "/skccrkdcshstorepurchaserequestEdit";
+    }
+
+    /**
+    * 门店采购申请单信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "门店采购申请单信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkDcshStorepurchaserequestEdit")
+    @ResponseBody
+    public AjaxResult skccrkdcshstorepurchaserequestEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkDcshStorepurchaserequestService.updateSKcCrkDcshStorepurchaserequest(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkdcshstorepurchaserequest with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkdcshstorepurchaserequest with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDcthStorereturnorderController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkDcthStorereturnorderService;
+
+import java.util.List;
+
+/**
+*
+* 门店采购退货单信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkdcthstorereturnorder")
+public class SKcCrkDcthStorereturnorderController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkDcthStorereturnorderService sKcCrkDcthStorereturnorderService;
+
+    /**
+    * 门店采购退货单信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDcthStorereturnorderAdd")
+    public String add() {
+        return prefix + "/SKcCrkDcthStorereturnorderAdd";
+    }
+
+    /**
+    * 门店采购退货单信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店采购退货单信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkDcthStorereturnorderAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkDcthStorereturnorderService.addSKcCrkDcthStorereturnorder(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店采购退货单信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDcthStorereturnorderView")
+    public String skccrkdcthstorereturnorderListView() {
+        return prefix + "/SKcCrkDcthStorereturnorderList";
+    }
+
+    /**
+    * 门店采购退货单信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkDcthStorereturnorderList")
+    @PostMapping("/sKcCrkDcthStorereturnorderList")
+    @ResponseBody
+    public TableDataInfo skccrkdcthstorereturnorderList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkDcthStorereturnorderService.findSKcCrkDcthStorereturnorderList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店采购退货单信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "门店采购退货单信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkDcthStorereturnorderRemove")
+    @ResponseBody
+    public AjaxResult skccrkdcthstorereturnorderRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkDcthStorereturnorderService.SKcCrkDcthStorereturnorderRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店采购退货单信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkDcthStorereturnorderEdit/{id}")
+    public String skccrkdcthstorereturnorderView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkDcthStorereturnorderService.findSKcCrkDcthStorereturnorderList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkdcthstorereturnorderPageEdit";
+        }
+        return prefix+ "/skccrkdcthstorereturnorderEdit";
+    }
+
+    /**
+    * 门店采购退货单信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "门店采购退货单信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkDcthStorereturnorderEdit")
+    @ResponseBody
+    public AjaxResult skccrkdcthstorereturnorderEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkDcthStorereturnorderService.updateSKcCrkDcthStorereturnorder(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkdcthstorereturnorder with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkdcthstorereturnorder with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDzysDeliveryorderController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkDzysDeliveryorderService;
+
+import java.util.List;
+
+/**
+*
+* 电子验收单据 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkdzysdeliveryorder")
+public class SKcCrkDzysDeliveryorderController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkDzysDeliveryorderService sKcCrkDzysDeliveryorderService;
+
+    /**
+    * 电子验收单据 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDzysDeliveryorderAdd")
+    public String add() {
+        return prefix + "/SKcCrkDzysDeliveryorderAdd";
+    }
+
+    /**
+    * 电子验收单据 新增
+    *
+    * @return
+    */
+    @Log(title = "电子验收单据新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkDzysDeliveryorderAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkDzysDeliveryorderService.addSKcCrkDzysDeliveryorder(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 电子验收单据 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDzysDeliveryorderView")
+    public String skccrkdzysdeliveryorderListView() {
+        return prefix + "/SKcCrkDzysDeliveryorderList";
+    }
+
+    /**
+    * 电子验收单据 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkDzysDeliveryorderList")
+    @PostMapping("/sKcCrkDzysDeliveryorderList")
+    @ResponseBody
+    public TableDataInfo skccrkdzysdeliveryorderList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkDzysDeliveryorderService.findSKcCrkDzysDeliveryorderList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 电子验收单据 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "电子验收单据删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkDzysDeliveryorderRemove")
+    @ResponseBody
+    public AjaxResult skccrkdzysdeliveryorderRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkDzysDeliveryorderService.SKcCrkDzysDeliveryorderRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 电子验收单据 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkDzysDeliveryorderEdit/{id}")
+    public String skccrkdzysdeliveryorderView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkDzysDeliveryorderService.findSKcCrkDzysDeliveryorderList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkdzysdeliveryorderPageEdit";
+        }
+        return prefix+ "/skccrkdzysdeliveryorderEdit";
+    }
+
+    /**
+    * 电子验收单据保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "电子验收单据修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkDzysDeliveryorderEdit")
+    @ResponseBody
+    public AjaxResult skccrkdzysdeliveryorderEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkDzysDeliveryorderService.updateSKcCrkDzysDeliveryorder(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkdzysdeliveryorder with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkdzysdeliveryorder with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkDzysEmployeesignaturestatusController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkDzysEmployeesignaturestatusService;
+
+import java.util.List;
+
+/**
+*
+* 电子验收配置 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkdzysemployeesignaturestatus")
+public class SKcCrkDzysEmployeesignaturestatusController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkDzysEmployeesignaturestatusService sKcCrkDzysEmployeesignaturestatusService;
+
+    /**
+    * 电子验收配置 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDzysEmployeesignaturestatusAdd")
+    public String add() {
+        return prefix + "/SKcCrkDzysEmployeesignaturestatusAdd";
+    }
+
+    /**
+    * 电子验收配置 新增
+    *
+    * @return
+    */
+    @Log(title = "电子验收配置新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkDzysEmployeesignaturestatusAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkDzysEmployeesignaturestatusService.addSKcCrkDzysEmployeesignaturestatus(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 电子验收配置 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkDzysEmployeesignaturestatusView")
+    public String skccrkdzysemployeesignaturestatusListView() {
+        return prefix + "/SKcCrkDzysEmployeesignaturestatusList";
+    }
+
+    /**
+    * 电子验收配置 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkDzysEmployeesignaturestatusList")
+    @PostMapping("/sKcCrkDzysEmployeesignaturestatusList")
+    @ResponseBody
+    public TableDataInfo skccrkdzysemployeesignaturestatusList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkDzysEmployeesignaturestatusService.findSKcCrkDzysEmployeesignaturestatusList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 电子验收配置 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "电子验收配置删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkDzysEmployeesignaturestatusRemove")
+    @ResponseBody
+    public AjaxResult skccrkdzysemployeesignaturestatusRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkDzysEmployeesignaturestatusService.SKcCrkDzysEmployeesignaturestatusRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 电子验收配置 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkDzysEmployeesignaturestatusEdit/{id}")
+    public String skccrkdzysemployeesignaturestatusView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkDzysEmployeesignaturestatusService.findSKcCrkDzysEmployeesignaturestatusList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkdzysemployeesignaturestatusPageEdit";
+        }
+        return prefix+ "/skccrkdzysemployeesignaturestatusEdit";
+    }
+
+    /**
+    * 电子验收配置保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "电子验收配置修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkDzysEmployeesignaturestatusEdit")
+    @ResponseBody
+    public AjaxResult skccrkdzysemployeesignaturestatusEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkDzysEmployeesignaturestatusService.updateSKcCrkDzysEmployeesignaturestatus(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkdzysemployeesignaturestatus with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkdzysemployeesignaturestatus with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkMdqhRequisitionapplicationController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkMdqhRequisitionapplicationService;
+
+import java.util.List;
+
+/**
+*
+* 门店请货申请表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkmdqhrequisitionapplication")
+public class SKcCrkMdqhRequisitionapplicationController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkMdqhRequisitionapplicationService sKcCrkMdqhRequisitionapplicationService;
+
+    /**
+    * 门店请货申请表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkMdqhRequisitionapplicationAdd")
+    public String add() {
+        return prefix + "/SKcCrkMdqhRequisitionapplicationAdd";
+    }
+
+    /**
+    * 门店请货申请表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店请货申请表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkMdqhRequisitionapplicationAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkMdqhRequisitionapplicationService.addSKcCrkMdqhRequisitionapplication(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店请货申请表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkMdqhRequisitionapplicationView")
+    public String skccrkmdqhrequisitionapplicationListView() {
+        return prefix + "/SKcCrkMdqhRequisitionapplicationList";
+    }
+
+    /**
+    * 门店请货申请表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkMdqhRequisitionapplicationList")
+    @PostMapping("/sKcCrkMdqhRequisitionapplicationList")
+    @ResponseBody
+    public TableDataInfo skccrkmdqhrequisitionapplicationList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkMdqhRequisitionapplicationService.findSKcCrkMdqhRequisitionapplicationList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店请货申请表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "门店请货申请表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkMdqhRequisitionapplicationRemove")
+    @ResponseBody
+    public AjaxResult skccrkmdqhrequisitionapplicationRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkMdqhRequisitionapplicationService.SKcCrkMdqhRequisitionapplicationRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店请货申请表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkMdqhRequisitionapplicationEdit/{id}")
+    public String skccrkmdqhrequisitionapplicationView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkMdqhRequisitionapplicationService.findSKcCrkMdqhRequisitionapplicationList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkmdqhrequisitionapplicationPageEdit";
+        }
+        return prefix+ "/skccrkmdqhrequisitionapplicationEdit";
+    }
+
+    /**
+    * 门店请货申请表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "门店请货申请表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkMdqhRequisitionapplicationEdit")
+    @ResponseBody
+    public AjaxResult skccrkmdqhrequisitionapplicationEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkMdqhRequisitionapplicationService.updateSKcCrkMdqhRequisitionapplication(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkmdqhrequisitionapplication with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkmdqhrequisitionapplication with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkMdqhdRequisitionorderController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkMdqhdRequisitionorderService;
+
+import java.util.List;
+
+/**
+*
+* 门店请货单信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkmdqhdrequisitionorder")
+public class SKcCrkMdqhdRequisitionorderController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkMdqhdRequisitionorderService sKcCrkMdqhdRequisitionorderService;
+
+    /**
+    * 门店请货单信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkMdqhdRequisitionorderAdd")
+    public String add() {
+        return prefix + "/SKcCrkMdqhdRequisitionorderAdd";
+    }
+
+    /**
+    * 门店请货单信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店请货单信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkMdqhdRequisitionorderAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkMdqhdRequisitionorderService.addSKcCrkMdqhdRequisitionorder(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店请货单信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkMdqhdRequisitionorderView")
+    public String skccrkmdqhdrequisitionorderListView() {
+        return prefix + "/SKcCrkMdqhdRequisitionorderList";
+    }
+
+    /**
+    * 门店请货单信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkMdqhdRequisitionorderList")
+    @PostMapping("/sKcCrkMdqhdRequisitionorderList")
+    @ResponseBody
+    public TableDataInfo skccrkmdqhdrequisitionorderList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkMdqhdRequisitionorderService.findSKcCrkMdqhdRequisitionorderList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店请货单信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "门店请货单信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkMdqhdRequisitionorderRemove")
+    @ResponseBody
+    public AjaxResult skccrkmdqhdrequisitionorderRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkMdqhdRequisitionorderService.SKcCrkMdqhdRequisitionorderRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店请货单信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkMdqhdRequisitionorderEdit/{id}")
+    public String skccrkmdqhdrequisitionorderView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkMdqhdRequisitionorderService.findSKcCrkMdqhdRequisitionorderList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkmdqhdrequisitionorderPageEdit";
+        }
+        return prefix+ "/skccrkmdqhdrequisitionorderEdit";
+    }
+
+    /**
+    * 门店请货单信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "门店请货单信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkMdqhdRequisitionorderEdit")
+    @ResponseBody
+    public AjaxResult skccrkmdqhdrequisitionorderEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkMdqhdRequisitionorderService.updateSKcCrkMdqhdRequisitionorder(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkmdqhdrequisitionorder with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkmdqhdrequisitionorder with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkMdshReceiptdocumentController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkMdshReceiptdocumentService;
+
+import java.util.List;
+
+/**
+*
+* 门店收货单信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkmdshreceiptdocument")
+public class SKcCrkMdshReceiptdocumentController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkMdshReceiptdocumentService sKcCrkMdshReceiptdocumentService;
+
+    /**
+    * 门店收货单信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkMdshReceiptdocumentAdd")
+    public String add() {
+        return prefix + "/SKcCrkMdshReceiptdocumentAdd";
+    }
+
+    /**
+    * 门店收货单信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店收货单信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkMdshReceiptdocumentAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkMdshReceiptdocumentService.addSKcCrkMdshReceiptdocument(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店收货单信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkMdshReceiptdocumentView")
+    public String skccrkmdshreceiptdocumentListView() {
+        return prefix + "/SKcCrkMdshReceiptdocumentList";
+    }
+
+    /**
+    * 门店收货单信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkMdshReceiptdocumentList")
+    @PostMapping("/sKcCrkMdshReceiptdocumentList")
+    @ResponseBody
+    public TableDataInfo skccrkmdshreceiptdocumentList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkMdshReceiptdocumentService.findSKcCrkMdshReceiptdocumentList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店收货单信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "门店收货单信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkMdshReceiptdocumentRemove")
+    @ResponseBody
+    public AjaxResult skccrkmdshreceiptdocumentRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkMdshReceiptdocumentService.SKcCrkMdshReceiptdocumentRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店收货单信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkMdshReceiptdocumentEdit/{id}")
+    public String skccrkmdshreceiptdocumentView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkMdshReceiptdocumentService.findSKcCrkMdshReceiptdocumentList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkmdshreceiptdocumentPageEdit";
+        }
+        return prefix+ "/skccrkmdshreceiptdocumentEdit";
+    }
+
+    /**
+    * 门店收货单信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "门店收货单信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkMdshReceiptdocumentEdit")
+    @ResponseBody
+    public AjaxResult skccrkmdshreceiptdocumentEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkMdshReceiptdocumentService.updateSKcCrkMdshReceiptdocument(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkmdshreceiptdocument with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkmdshreceiptdocument with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkOutinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkOutinfoService;
+
+import java.util.List;
+
+/**
+*
+* 出库表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkoutinfo")
+public class SKcCrkOutinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkOutinfoService sKcCrkOutinfoService;
+
+    /**
+    * 出库表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkOutinfoAdd")
+    public String add() {
+        return prefix + "/SKcCrkOutinfoAdd";
+    }
+
+    /**
+    * 出库表 新增
+    *
+    * @return
+    */
+    @Log(title = "出库表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkOutinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkOutinfoService.addSKcCrkOutinfo(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 出库表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkOutinfoView")
+    public String skccrkoutinfoListView() {
+        return prefix + "/SKcCrkOutinfoList";
+    }
+
+    /**
+    * 出库表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkOutinfoList")
+    @PostMapping("/sKcCrkOutinfoList")
+    @ResponseBody
+    public TableDataInfo skccrkoutinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkOutinfoService.findSKcCrkOutinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 出库表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "出库表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkOutinfoRemove")
+    @ResponseBody
+    public AjaxResult skccrkoutinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkOutinfoService.SKcCrkOutinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 出库表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkOutinfoEdit/{id}")
+    public String skccrkoutinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkOutinfoService.findSKcCrkOutinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkoutinfoPageEdit";
+        }
+        return prefix+ "/skccrkoutinfoEdit";
+    }
+
+    /**
+    * 出库表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "出库表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkOutinfoEdit")
+    @ResponseBody
+    public AjaxResult skccrkoutinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkOutinfoService.updateSKcCrkOutinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkoutinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkoutinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkThReturnController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkThReturnService;
+
+import java.util.List;
+
+/**
+*
+* 退货表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkthreturn")
+public class SKcCrkThReturnController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkThReturnService sKcCrkThReturnService;
+
+    /**
+    * 退货表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkThReturnAdd")
+    public String add() {
+        return prefix + "/SKcCrkThReturnAdd";
+    }
+
+    /**
+    * 退货表 新增
+    *
+    * @return
+    */
+    @Log(title = "退货表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkThReturnAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkThReturnService.addSKcCrkThReturn(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 退货表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkThReturnView")
+    public String skccrkthreturnListView() {
+        return prefix + "/SKcCrkThReturnList";
+    }
+
+    /**
+    * 退货表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkThReturnList")
+    @PostMapping("/sKcCrkThReturnList")
+    @ResponseBody
+    public TableDataInfo skccrkthreturnList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkThReturnService.findSKcCrkThReturnList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 退货表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "退货表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkThReturnRemove")
+    @ResponseBody
+    public AjaxResult skccrkthreturnRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkThReturnService.SKcCrkThReturnRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 退货表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkThReturnEdit/{id}")
+    public String skccrkthreturnView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkThReturnService.findSKcCrkThReturnList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkthreturnPageEdit";
+        }
+        return prefix+ "/skccrkthreturnEdit";
+    }
+
+    /**
+    * 退货表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "退货表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkThReturnEdit")
+    @ResponseBody
+    public AjaxResult skccrkthreturnEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkThReturnService.updateSKcCrkThReturn(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkthreturn with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkthreturn with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkThshReturndocumentController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkThshReturndocumentService;
+
+import java.util.List;
+
+/**
+*
+* 退货申请表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkthshreturndocument")
+public class SKcCrkThshReturndocumentController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkThshReturndocumentService sKcCrkThshReturndocumentService;
+
+    /**
+    * 退货申请表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkThshReturndocumentAdd")
+    public String add() {
+        return prefix + "/SKcCrkThshReturndocumentAdd";
+    }
+
+    /**
+    * 退货申请表 新增
+    *
+    * @return
+    */
+    @Log(title = "退货申请表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkThshReturndocumentAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkThshReturndocumentService.addSKcCrkThshReturndocument(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 退货申请表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkThshReturndocumentView")
+    public String skccrkthshreturndocumentListView() {
+        return prefix + "/SKcCrkThshReturndocumentList";
+    }
+
+    /**
+    * 退货申请表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkThshReturndocumentList")
+    @PostMapping("/sKcCrkThshReturndocumentList")
+    @ResponseBody
+    public TableDataInfo skccrkthshreturndocumentList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkThshReturndocumentService.findSKcCrkThshReturndocumentList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 退货申请表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "退货申请表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkThshReturndocumentRemove")
+    @ResponseBody
+    public AjaxResult skccrkthshreturndocumentRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkThshReturndocumentService.SKcCrkThshReturndocumentRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 退货申请表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkThshReturndocumentEdit/{id}")
+    public String skccrkthshreturndocumentView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkThshReturndocumentService.findSKcCrkThshReturndocumentList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkthshreturndocumentPageEdit";
+        }
+        return prefix+ "/skccrkthshreturndocumentEdit";
+    }
+
+    /**
+    * 退货申请表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "退货申请表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkThshReturndocumentEdit")
+    @ResponseBody
+    public AjaxResult skccrkthshreturndocumentEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkThshReturndocumentService.updateSKcCrkThshReturndocument(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkthshreturndocument with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkthshreturndocument with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkWeeklyrequisitionstatsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkWeeklyrequisitionstatsService;
+
+import java.util.List;
+
+/**
+*
+* 门店请货满足率 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkweeklyrequisitionstats")
+public class SKcCrkWeeklyrequisitionstatsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkWeeklyrequisitionstatsService sKcCrkWeeklyrequisitionstatsService;
+
+    /**
+    * 门店请货满足率 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkWeeklyrequisitionstatsAdd")
+    public String add() {
+        return prefix + "/SKcCrkWeeklyrequisitionstatsAdd";
+    }
+
+    /**
+    * 门店请货满足率 新增
+    *
+    * @return
+    */
+    @Log(title = "门店请货满足率新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkWeeklyrequisitionstatsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkWeeklyrequisitionstatsService.addSKcCrkWeeklyrequisitionstats(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店请货满足率 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkWeeklyrequisitionstatsView")
+    public String skccrkweeklyrequisitionstatsListView() {
+        return prefix + "/SKcCrkWeeklyrequisitionstatsList";
+    }
+
+    /**
+    * 门店请货满足率 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkWeeklyrequisitionstatsList")
+    @PostMapping("/sKcCrkWeeklyrequisitionstatsList")
+    @ResponseBody
+    public TableDataInfo skccrkweeklyrequisitionstatsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkWeeklyrequisitionstatsService.findSKcCrkWeeklyrequisitionstatsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店请货满足率 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "门店请货满足率删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkWeeklyrequisitionstatsRemove")
+    @ResponseBody
+    public AjaxResult skccrkweeklyrequisitionstatsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkWeeklyrequisitionstatsService.SKcCrkWeeklyrequisitionstatsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店请货满足率 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkWeeklyrequisitionstatsEdit/{id}")
+    public String skccrkweeklyrequisitionstatsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkWeeklyrequisitionstatsService.findSKcCrkWeeklyrequisitionstatsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkweeklyrequisitionstatsPageEdit";
+        }
+        return prefix+ "/skccrkweeklyrequisitionstatsEdit";
+    }
+
+    /**
+    * 门店请货满足率保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "门店请货满足率修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkWeeklyrequisitionstatsEdit")
+    @ResponseBody
+    public AjaxResult skccrkweeklyrequisitionstatsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkWeeklyrequisitionstatsService.updateSKcCrkWeeklyrequisitionstats(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkweeklyrequisitionstats with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkweeklyrequisitionstats with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/crk/SKcCrkYsrkCheckinController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.crk;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.crk.SKcCrkYsrkCheckinService;
+
+import java.util.List;
+
+/**
+*
+* 验收入库表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skccrkysrkcheckin")
+public class SKcCrkYsrkCheckinController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/crk";
+
+    @Autowired
+    private SKcCrkYsrkCheckinService sKcCrkYsrkCheckinService;
+
+    /**
+    * 验收入库表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkYsrkCheckinAdd")
+    public String add() {
+        return prefix + "/SKcCrkYsrkCheckinAdd";
+    }
+
+    /**
+    * 验收入库表 新增
+    *
+    * @return
+    */
+    @Log(title = "验收入库表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcCrkYsrkCheckinAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcCrkYsrkCheckinService.addSKcCrkYsrkCheckin(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 验收入库表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:crk::view")
+    @GetMapping("/sKcCrkYsrkCheckinView")
+    public String skccrkysrkcheckinListView() {
+        return prefix + "/SKcCrkYsrkCheckinList";
+    }
+
+    /**
+    * 验收入库表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:sKcCrkYsrkCheckinList")
+    @PostMapping("/sKcCrkYsrkCheckinList")
+    @ResponseBody
+    public TableDataInfo skccrkysrkcheckinList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcCrkYsrkCheckinService.findSKcCrkYsrkCheckinList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 验收入库表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:remove")
+    @Log(title = "验收入库表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcCrkYsrkCheckinRemove")
+    @ResponseBody
+    public AjaxResult skccrkysrkcheckinRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcCrkYsrkCheckinService.SKcCrkYsrkCheckinRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 验收入库表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @GetMapping("/sKcCrkYsrkCheckinEdit/{id}")
+    public String skccrkysrkcheckinView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcCrkYsrkCheckinService.findSKcCrkYsrkCheckinList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skccrkysrkcheckinPageEdit";
+        }
+        return prefix+ "/skccrkysrkcheckinEdit";
+    }
+
+    /**
+    * 验收入库表保存修改的数据
+    */
+    @RequiresPermissions("kc:crk:edit")
+    @Log(title = "验收入库表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcCrkYsrkCheckinEdit")
+    @ResponseBody
+    public AjaxResult skccrkysrkcheckinEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcCrkYsrkCheckinService.updateSKcCrkYsrkCheckin(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skccrkysrkcheckin with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skccrkysrkcheckin with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnAdjustmentdocumentController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnAdjustmentdocumentService;
+
+import java.util.List;
+
+/**
+*
+* 报损报溢申请表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknadjustmentdocument")
+public class SKcKnAdjustmentdocumentController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnAdjustmentdocumentService sKcKnAdjustmentdocumentService;
+
+    /**
+    * 报损报溢申请表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnAdjustmentdocumentAdd")
+    public String add() {
+        return prefix + "/SKcKnAdjustmentdocumentAdd";
+    }
+
+    /**
+    * 报损报溢申请表 新增
+    *
+    * @return
+    */
+    @Log(title = "报损报溢申请表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnAdjustmentdocumentAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnAdjustmentdocumentService.addSKcKnAdjustmentdocument(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 报损报溢申请表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnAdjustmentdocumentView")
+    public String skcknadjustmentdocumentListView() {
+        return prefix + "/SKcKnAdjustmentdocumentList";
+    }
+
+    /**
+    * 报损报溢申请表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnAdjustmentdocumentList")
+    @PostMapping("/sKcKnAdjustmentdocumentList")
+    @ResponseBody
+    public TableDataInfo skcknadjustmentdocumentList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnAdjustmentdocumentService.findSKcKnAdjustmentdocumentList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 报损报溢申请表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "报损报溢申请表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnAdjustmentdocumentRemove")
+    @ResponseBody
+    public AjaxResult skcknadjustmentdocumentRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnAdjustmentdocumentService.SKcKnAdjustmentdocumentRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 报损报溢申请表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnAdjustmentdocumentEdit/{id}")
+    public String skcknadjustmentdocumentView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnAdjustmentdocumentService.findSKcKnAdjustmentdocumentList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknadjustmentdocumentPageEdit";
+        }
+        return prefix+ "/skcknadjustmentdocumentEdit";
+    }
+
+    /**
+    * 报损报溢申请表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "报损报溢申请表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnAdjustmentdocumentEdit")
+    @ResponseBody
+    public AjaxResult skcknadjustmentdocumentEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnAdjustmentdocumentService.updateSKcKnAdjustmentdocument(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknadjustmentdocument with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknadjustmentdocument with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnClyhStoremaintenancesheetController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnClyhStoremaintenancesheetService;
+
+import java.util.List;
+
+/**
+*
+* 陈列养护表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknclyhstoremaintenancesheet")
+public class SKcKnClyhStoremaintenancesheetController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnClyhStoremaintenancesheetService sKcKnClyhStoremaintenancesheetService;
+
+    /**
+    * 陈列养护表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnClyhStoremaintenancesheetAdd")
+    public String add() {
+        return prefix + "/SKcKnClyhStoremaintenancesheetAdd";
+    }
+
+    /**
+    * 陈列养护表 新增
+    *
+    * @return
+    */
+    @Log(title = "陈列养护表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnClyhStoremaintenancesheetAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnClyhStoremaintenancesheetService.addSKcKnClyhStoremaintenancesheet(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 陈列养护表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnClyhStoremaintenancesheetView")
+    public String skcknclyhstoremaintenancesheetListView() {
+        return prefix + "/SKcKnClyhStoremaintenancesheetList";
+    }
+
+    /**
+    * 陈列养护表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnClyhStoremaintenancesheetList")
+    @PostMapping("/sKcKnClyhStoremaintenancesheetList")
+    @ResponseBody
+    public TableDataInfo skcknclyhstoremaintenancesheetList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnClyhStoremaintenancesheetService.findSKcKnClyhStoremaintenancesheetList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 陈列养护表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "陈列养护表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnClyhStoremaintenancesheetRemove")
+    @ResponseBody
+    public AjaxResult skcknclyhstoremaintenancesheetRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnClyhStoremaintenancesheetService.SKcKnClyhStoremaintenancesheetRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 陈列养护表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnClyhStoremaintenancesheetEdit/{id}")
+    public String skcknclyhstoremaintenancesheetView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnClyhStoremaintenancesheetService.findSKcKnClyhStoremaintenancesheetList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknclyhstoremaintenancesheetPageEdit";
+        }
+        return prefix+ "/skcknclyhstoremaintenancesheetEdit";
+    }
+
+    /**
+    * 陈列养护表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "陈列养护表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnClyhStoremaintenancesheetEdit")
+    @ResponseBody
+    public AjaxResult skcknclyhstoremaintenancesheetEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnClyhStoremaintenancesheetService.updateSKcKnClyhStoremaintenancesheet(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknclyhstoremaintenancesheet with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknclyhstoremaintenancesheet with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnKqydStoreorderdetailsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnKqydStoreorderdetailsService;
+
+import java.util.List;
+
+/**
+*
+* 库区移动表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknkqydstoreorderdetails")
+public class SKcKnKqydStoreorderdetailsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnKqydStoreorderdetailsService sKcKnKqydStoreorderdetailsService;
+
+    /**
+    * 库区移动表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnKqydStoreorderdetailsAdd")
+    public String add() {
+        return prefix + "/SKcKnKqydStoreorderdetailsAdd";
+    }
+
+    /**
+    * 库区移动表 新增
+    *
+    * @return
+    */
+    @Log(title = "库区移动表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnKqydStoreorderdetailsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnKqydStoreorderdetailsService.addSKcKnKqydStoreorderdetails(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 库区移动表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnKqydStoreorderdetailsView")
+    public String skcknkqydstoreorderdetailsListView() {
+        return prefix + "/SKcKnKqydStoreorderdetailsList";
+    }
+
+    /**
+    * 库区移动表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnKqydStoreorderdetailsList")
+    @PostMapping("/sKcKnKqydStoreorderdetailsList")
+    @ResponseBody
+    public TableDataInfo skcknkqydstoreorderdetailsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnKqydStoreorderdetailsService.findSKcKnKqydStoreorderdetailsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 库区移动表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "库区移动表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnKqydStoreorderdetailsRemove")
+    @ResponseBody
+    public AjaxResult skcknkqydstoreorderdetailsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnKqydStoreorderdetailsService.SKcKnKqydStoreorderdetailsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 库区移动表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnKqydStoreorderdetailsEdit/{id}")
+    public String skcknkqydstoreorderdetailsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnKqydStoreorderdetailsService.findSKcKnKqydStoreorderdetailsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknkqydstoreorderdetailsPageEdit";
+        }
+        return prefix+ "/skcknkqydstoreorderdetailsEdit";
+    }
+
+    /**
+    * 库区移动表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "库区移动表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnKqydStoreorderdetailsEdit")
+    @ResponseBody
+    public AjaxResult skcknkqydstoreorderdetailsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnKqydStoreorderdetailsService.updateSKcKnKqydStoreorderdetails(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknkqydstoreorderdetails with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknkqydstoreorderdetails with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnKyspStoredocumentController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnKyspStoredocumentService;
+
+import java.util.List;
+
+/**
+*
+* 可疑商品处理 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknkyspstoredocument")
+public class SKcKnKyspStoredocumentController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnKyspStoredocumentService sKcKnKyspStoredocumentService;
+
+    /**
+    * 可疑商品处理 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnKyspStoredocumentAdd")
+    public String add() {
+        return prefix + "/SKcKnKyspStoredocumentAdd";
+    }
+
+    /**
+    * 可疑商品处理 新增
+    *
+    * @return
+    */
+    @Log(title = "可疑商品处理新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnKyspStoredocumentAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnKyspStoredocumentService.addSKcKnKyspStoredocument(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 可疑商品处理 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnKyspStoredocumentView")
+    public String skcknkyspstoredocumentListView() {
+        return prefix + "/SKcKnKyspStoredocumentList";
+    }
+
+    /**
+    * 可疑商品处理 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnKyspStoredocumentList")
+    @PostMapping("/sKcKnKyspStoredocumentList")
+    @ResponseBody
+    public TableDataInfo skcknkyspstoredocumentList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnKyspStoredocumentService.findSKcKnKyspStoredocumentList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 可疑商品处理 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "可疑商品处理删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnKyspStoredocumentRemove")
+    @ResponseBody
+    public AjaxResult skcknkyspstoredocumentRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnKyspStoredocumentService.SKcKnKyspStoredocumentRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 可疑商品处理 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnKyspStoredocumentEdit/{id}")
+    public String skcknkyspstoredocumentView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnKyspStoredocumentService.findSKcKnKyspStoredocumentList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknkyspstoredocumentPageEdit";
+        }
+        return prefix+ "/skcknkyspstoredocumentEdit";
+    }
+
+    /**
+    * 可疑商品处理保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "可疑商品处理修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnKyspStoredocumentEdit")
+    @ResponseBody
+    public AjaxResult skcknkyspstoredocumentEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnKyspStoredocumentService.updateSKcKnKyspStoredocument(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknkyspstoredocument with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknkyspstoredocument with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnLskcStoreproductinventoryController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnLskcStoreproductinventoryService;
+
+import java.util.List;
+
+/**
+*
+* 连锁库存查询信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknlskcstoreproductinventory")
+public class SKcKnLskcStoreproductinventoryController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnLskcStoreproductinventoryService sKcKnLskcStoreproductinventoryService;
+
+    /**
+    * 连锁库存查询信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnLskcStoreproductinventoryAdd")
+    public String add() {
+        return prefix + "/SKcKnLskcStoreproductinventoryAdd";
+    }
+
+    /**
+    * 连锁库存查询信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "连锁库存查询信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnLskcStoreproductinventoryAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnLskcStoreproductinventoryService.addSKcKnLskcStoreproductinventory(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 连锁库存查询信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnLskcStoreproductinventoryView")
+    public String skcknlskcstoreproductinventoryListView() {
+        return prefix + "/SKcKnLskcStoreproductinventoryList";
+    }
+
+    /**
+    * 连锁库存查询信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnLskcStoreproductinventoryList")
+    @PostMapping("/sKcKnLskcStoreproductinventoryList")
+    @ResponseBody
+    public TableDataInfo skcknlskcstoreproductinventoryList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnLskcStoreproductinventoryService.findSKcKnLskcStoreproductinventoryList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 连锁库存查询信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "连锁库存查询信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnLskcStoreproductinventoryRemove")
+    @ResponseBody
+    public AjaxResult skcknlskcstoreproductinventoryRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnLskcStoreproductinventoryService.SKcKnLskcStoreproductinventoryRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 连锁库存查询信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnLskcStoreproductinventoryEdit/{id}")
+    public String skcknlskcstoreproductinventoryView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnLskcStoreproductinventoryService.findSKcKnLskcStoreproductinventoryList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknlskcstoreproductinventoryPageEdit";
+        }
+        return prefix+ "/skcknlskcstoreproductinventoryEdit";
+    }
+
+    /**
+    * 连锁库存查询信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "连锁库存查询信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnLskcStoreproductinventoryEdit")
+    @ResponseBody
+    public AjaxResult skcknlskcstoreproductinventoryEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnLskcStoreproductinventoryService.updateSKcKnLskcStoreproductinventory(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknlskcstoreproductinventory with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknlskcstoreproductinventory with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnMdkcStoreproductstockController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnMdkcStoreproductstockService;
+
+import java.util.List;
+
+/**
+*
+* 门店库存查询信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknmdkcstoreproductstock")
+public class SKcKnMdkcStoreproductstockController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnMdkcStoreproductstockService sKcKnMdkcStoreproductstockService;
+
+    /**
+    * 门店库存查询信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnMdkcStoreproductstockAdd")
+    public String add() {
+        return prefix + "/SKcKnMdkcStoreproductstockAdd";
+    }
+
+    /**
+    * 门店库存查询信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店库存查询信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnMdkcStoreproductstockAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnMdkcStoreproductstockService.addSKcKnMdkcStoreproductstock(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店库存查询信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnMdkcStoreproductstockView")
+    public String skcknmdkcstoreproductstockListView() {
+        return prefix + "/SKcKnMdkcStoreproductstockList";
+    }
+
+    /**
+    * 门店库存查询信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnMdkcStoreproductstockList")
+    @PostMapping("/sKcKnMdkcStoreproductstockList")
+    @ResponseBody
+    public TableDataInfo skcknmdkcstoreproductstockList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnMdkcStoreproductstockService.findSKcKnMdkcStoreproductstockList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店库存查询信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "门店库存查询信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnMdkcStoreproductstockRemove")
+    @ResponseBody
+    public AjaxResult skcknmdkcstoreproductstockRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnMdkcStoreproductstockService.SKcKnMdkcStoreproductstockRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店库存查询信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnMdkcStoreproductstockEdit/{id}")
+    public String skcknmdkcstoreproductstockView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnMdkcStoreproductstockService.findSKcKnMdkcStoreproductstockList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknmdkcstoreproductstockPageEdit";
+        }
+        return prefix+ "/skcknmdkcstoreproductstockEdit";
+    }
+
+    /**
+    * 门店库存查询信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "门店库存查询信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnMdkcStoreproductstockEdit")
+    @ResponseBody
+    public AjaxResult skcknmdkcstoreproductstockEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnMdkcStoreproductstockService.updateSKcKnMdkcStoreproductstock(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknmdkcstoreproductstock with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknmdkcstoreproductstock with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnPdrwInventorytaskController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnPdrwInventorytaskService;
+
+import java.util.List;
+
+/**
+*
+* 盘点任务信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknpdrwinventorytask")
+public class SKcKnPdrwInventorytaskController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnPdrwInventorytaskService sKcKnPdrwInventorytaskService;
+
+    /**
+    * 盘点任务信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnPdrwInventorytaskAdd")
+    public String add() {
+        return prefix + "/SKcKnPdrwInventorytaskAdd";
+    }
+
+    /**
+    * 盘点任务信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "盘点任务信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnPdrwInventorytaskAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnPdrwInventorytaskService.addSKcKnPdrwInventorytask(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 盘点任务信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnPdrwInventorytaskView")
+    public String skcknpdrwinventorytaskListView() {
+        return prefix + "/SKcKnPdrwInventorytaskList";
+    }
+
+    /**
+    * 盘点任务信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnPdrwInventorytaskList")
+    @PostMapping("/sKcKnPdrwInventorytaskList")
+    @ResponseBody
+    public TableDataInfo skcknpdrwinventorytaskList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnPdrwInventorytaskService.findSKcKnPdrwInventorytaskList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 盘点任务信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "盘点任务信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnPdrwInventorytaskRemove")
+    @ResponseBody
+    public AjaxResult skcknpdrwinventorytaskRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnPdrwInventorytaskService.SKcKnPdrwInventorytaskRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 盘点任务信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnPdrwInventorytaskEdit/{id}")
+    public String skcknpdrwinventorytaskView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnPdrwInventorytaskService.findSKcKnPdrwInventorytaskList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknpdrwinventorytaskPageEdit";
+        }
+        return prefix+ "/skcknpdrwinventorytaskEdit";
+    }
+
+    /**
+    * 盘点任务信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "盘点任务信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnPdrwInventorytaskEdit")
+    @ResponseBody
+    public AjaxResult skcknpdrwinventorytaskEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnPdrwInventorytaskService.updateSKcKnPdrwInventorytask(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknpdrwinventorytask with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknpdrwinventorytask with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnQdjlCleaningitemsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnQdjlCleaningitemsService;
+
+import java.util.List;
+
+/**
+*
+* 清斗报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknqdjlcleaningitems")
+public class SKcKnQdjlCleaningitemsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnQdjlCleaningitemsService sKcKnQdjlCleaningitemsService;
+
+    /**
+    * 清斗报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnQdjlCleaningitemsAdd")
+    public String add() {
+        return prefix + "/SKcKnQdjlCleaningitemsAdd";
+    }
+
+    /**
+    * 清斗报表 新增
+    *
+    * @return
+    */
+    @Log(title = "清斗报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnQdjlCleaningitemsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnQdjlCleaningitemsService.addSKcKnQdjlCleaningitems(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 清斗报表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnQdjlCleaningitemsView")
+    public String skcknqdjlcleaningitemsListView() {
+        return prefix + "/SKcKnQdjlCleaningitemsList";
+    }
+
+    /**
+    * 清斗报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnQdjlCleaningitemsList")
+    @PostMapping("/sKcKnQdjlCleaningitemsList")
+    @ResponseBody
+    public TableDataInfo skcknqdjlcleaningitemsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnQdjlCleaningitemsService.findSKcKnQdjlCleaningitemsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 清斗报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "清斗报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnQdjlCleaningitemsRemove")
+    @ResponseBody
+    public AjaxResult skcknqdjlcleaningitemsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnQdjlCleaningitemsService.SKcKnQdjlCleaningitemsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 清斗报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnQdjlCleaningitemsEdit/{id}")
+    public String skcknqdjlcleaningitemsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnQdjlCleaningitemsService.findSKcKnQdjlCleaningitemsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknqdjlcleaningitemsPageEdit";
+        }
+        return prefix+ "/skcknqdjlcleaningitemsEdit";
+    }
+
+    /**
+    * 清斗报表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "清斗报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnQdjlCleaningitemsEdit")
+    @ResponseBody
+    public AjaxResult skcknqdjlcleaningitemsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnQdjlCleaningitemsService.updateSKcKnQdjlCleaningitems(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknqdjlcleaningitems with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknqdjlcleaningitems with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnQdjllClearancesheetController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnQdjllClearancesheetService;
+
+import java.util.List;
+
+/**
+*
+* 药品清斗单信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknqdjllclearancesheet")
+public class SKcKnQdjllClearancesheetController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnQdjllClearancesheetService sKcKnQdjllClearancesheetService;
+
+    /**
+    * 药品清斗单信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnQdjllClearancesheetAdd")
+    public String add() {
+        return prefix + "/SKcKnQdjllClearancesheetAdd";
+    }
+
+    /**
+    * 药品清斗单信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "药品清斗单信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnQdjllClearancesheetAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnQdjllClearancesheetService.addSKcKnQdjllClearancesheet(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 药品清斗单信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnQdjllClearancesheetView")
+    public String skcknqdjllclearancesheetListView() {
+        return prefix + "/SKcKnQdjllClearancesheetList";
+    }
+
+    /**
+    * 药品清斗单信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnQdjllClearancesheetList")
+    @PostMapping("/sKcKnQdjllClearancesheetList")
+    @ResponseBody
+    public TableDataInfo skcknqdjllclearancesheetList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnQdjllClearancesheetService.findSKcKnQdjllClearancesheetList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 药品清斗单信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "药品清斗单信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnQdjllClearancesheetRemove")
+    @ResponseBody
+    public AjaxResult skcknqdjllclearancesheetRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnQdjllClearancesheetService.SKcKnQdjllClearancesheetRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 药品清斗单信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnQdjllClearancesheetEdit/{id}")
+    public String skcknqdjllclearancesheetView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnQdjllClearancesheetService.findSKcKnQdjllClearancesheetList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknqdjllclearancesheetPageEdit";
+        }
+        return prefix+ "/skcknqdjllclearancesheetEdit";
+    }
+
+    /**
+    * 药品清斗单信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "药品清斗单信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnQdjllClearancesheetEdit")
+    @ResponseBody
+    public AjaxResult skcknqdjllclearancesheetEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnQdjllClearancesheetService.updateSKcKnQdjllClearancesheet(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknqdjllclearancesheet with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknqdjllclearancesheet with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnRefillsheetController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnRefillsheetService;
+
+import java.util.List;
+
+/**
+*
+* 药品装斗记录表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknrefillsheet")
+public class SKcKnRefillsheetController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnRefillsheetService sKcKnRefillsheetService;
+
+    /**
+    * 药品装斗记录表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnRefillsheetAdd")
+    public String add() {
+        return prefix + "/SKcKnRefillsheetAdd";
+    }
+
+    /**
+    * 药品装斗记录表 新增
+    *
+    * @return
+    */
+    @Log(title = "药品装斗记录表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnRefillsheetAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnRefillsheetService.addSKcKnRefillsheet(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 药品装斗记录表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnRefillsheetView")
+    public String skcknrefillsheetListView() {
+        return prefix + "/SKcKnRefillsheetList";
+    }
+
+    /**
+    * 药品装斗记录表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnRefillsheetList")
+    @PostMapping("/sKcKnRefillsheetList")
+    @ResponseBody
+    public TableDataInfo skcknrefillsheetList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnRefillsheetService.findSKcKnRefillsheetList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 药品装斗记录表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "药品装斗记录表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnRefillsheetRemove")
+    @ResponseBody
+    public AjaxResult skcknrefillsheetRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnRefillsheetService.SKcKnRefillsheetRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 药品装斗记录表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnRefillsheetEdit/{id}")
+    public String skcknrefillsheetView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnRefillsheetService.findSKcKnRefillsheetList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknrefillsheetPageEdit";
+        }
+        return prefix+ "/skcknrefillsheetEdit";
+    }
+
+    /**
+    * 药品装斗记录表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "药品装斗记录表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnRefillsheetEdit")
+    @ResponseBody
+    public AjaxResult skcknrefillsheetEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnRefillsheetService.updateSKcKnRefillsheet(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknrefillsheet with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknrefillsheet with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnStoragelocationController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnStoragelocationService;
+
+import java.util.List;
+
+/**
+*
+* 货位管理信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknstoragelocation")
+public class SKcKnStoragelocationController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnStoragelocationService sKcKnStoragelocationService;
+
+    /**
+    * 货位管理信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnStoragelocationAdd")
+    public String add() {
+        return prefix + "/SKcKnStoragelocationAdd";
+    }
+
+    /**
+    * 货位管理信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "货位管理信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnStoragelocationAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnStoragelocationService.addSKcKnStoragelocation(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 货位管理信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnStoragelocationView")
+    public String skcknstoragelocationListView() {
+        return prefix + "/SKcKnStoragelocationList";
+    }
+
+    /**
+    * 货位管理信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnStoragelocationList")
+    @PostMapping("/sKcKnStoragelocationList")
+    @ResponseBody
+    public TableDataInfo skcknstoragelocationList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnStoragelocationService.findSKcKnStoragelocationList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 货位管理信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "货位管理信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnStoragelocationRemove")
+    @ResponseBody
+    public AjaxResult skcknstoragelocationRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnStoragelocationService.SKcKnStoragelocationRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 货位管理信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnStoragelocationEdit/{id}")
+    public String skcknstoragelocationView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnStoragelocationService.findSKcKnStoragelocationList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknstoragelocationPageEdit";
+        }
+        return prefix+ "/skcknstoragelocationEdit";
+    }
+
+    /**
+    * 货位管理信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "货位管理信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnStoragelocationEdit")
+    @ResponseBody
+    public AjaxResult skcknstoragelocationEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnStoragelocationService.updateSKcKnStoragelocation(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknstoragelocation with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknstoragelocation with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnStoreinventorystatsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnStoreinventorystatsService;
+
+import java.util.List;
+
+/**
+*
+* 门店盘点任务统计信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknstoreinventorystats")
+public class SKcKnStoreinventorystatsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnStoreinventorystatsService sKcKnStoreinventorystatsService;
+
+    /**
+    * 门店盘点任务统计信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnStoreinventorystatsAdd")
+    public String add() {
+        return prefix + "/SKcKnStoreinventorystatsAdd";
+    }
+
+    /**
+    * 门店盘点任务统计信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店盘点任务统计信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnStoreinventorystatsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnStoreinventorystatsService.addSKcKnStoreinventorystats(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 门店盘点任务统计信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnStoreinventorystatsView")
+    public String skcknstoreinventorystatsListView() {
+        return prefix + "/SKcKnStoreinventorystatsList";
+    }
+
+    /**
+    * 门店盘点任务统计信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnStoreinventorystatsList")
+    @PostMapping("/sKcKnStoreinventorystatsList")
+    @ResponseBody
+    public TableDataInfo skcknstoreinventorystatsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnStoreinventorystatsService.findSKcKnStoreinventorystatsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店盘点任务统计信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "门店盘点任务统计信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnStoreinventorystatsRemove")
+    @ResponseBody
+    public AjaxResult skcknstoreinventorystatsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnStoreinventorystatsService.SKcKnStoreinventorystatsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店盘点任务统计信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnStoreinventorystatsEdit/{id}")
+    public String skcknstoreinventorystatsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnStoreinventorystatsService.findSKcKnStoreinventorystatsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknstoreinventorystatsPageEdit";
+        }
+        return prefix+ "/skcknstoreinventorystatsEdit";
+    }
+
+    /**
+    * 门店盘点任务统计信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "门店盘点任务统计信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnStoreinventorystatsEdit")
+    @ResponseBody
+    public AjaxResult skcknstoreinventorystatsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnStoreinventorystatsService.updateSKcKnStoreinventorystats(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknstoreinventorystats with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknstoreinventorystats with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnTransferzonedocumentController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnTransferzonedocumentService;
+
+import java.util.List;
+
+/**
+*
+* 转库区管理表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skckntransferzonedocument")
+public class SKcKnTransferzonedocumentController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnTransferzonedocumentService sKcKnTransferzonedocumentService;
+
+    /**
+    * 转库区管理表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnTransferzonedocumentAdd")
+    public String add() {
+        return prefix + "/SKcKnTransferzonedocumentAdd";
+    }
+
+    /**
+    * 转库区管理表 新增
+    *
+    * @return
+    */
+    @Log(title = "转库区管理表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnTransferzonedocumentAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnTransferzonedocumentService.addSKcKnTransferzonedocument(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 转库区管理表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnTransferzonedocumentView")
+    public String skckntransferzonedocumentListView() {
+        return prefix + "/SKcKnTransferzonedocumentList";
+    }
+
+    /**
+    * 转库区管理表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnTransferzonedocumentList")
+    @PostMapping("/sKcKnTransferzonedocumentList")
+    @ResponseBody
+    public TableDataInfo skckntransferzonedocumentList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnTransferzonedocumentService.findSKcKnTransferzonedocumentList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 转库区管理表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "转库区管理表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnTransferzonedocumentRemove")
+    @ResponseBody
+    public AjaxResult skckntransferzonedocumentRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnTransferzonedocumentService.SKcKnTransferzonedocumentRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 转库区管理表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnTransferzonedocumentEdit/{id}")
+    public String skckntransferzonedocumentView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnTransferzonedocumentService.findSKcKnTransferzonedocumentList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skckntransferzonedocumentPageEdit";
+        }
+        return prefix+ "/skckntransferzonedocumentEdit";
+    }
+
+    /**
+    * 转库区管理表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "转库区管理表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnTransferzonedocumentEdit")
+    @ResponseBody
+    public AjaxResult skckntransferzonedocumentEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnTransferzonedocumentService.updateSKcKnTransferzonedocument(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skckntransferzonedocument with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skckntransferzonedocument with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/kc/kn/SKcKnZxyjStorestaleproductsController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.kc.kn;
+
+import com.bzd.common.annotation.Log;
+import com.bzd.common.config.dao.PageData;
+import com.bzd.common.core.controller.BaseController;
+import com.bzd.common.core.domain.AjaxResult;
+import com.bzd.common.core.page.TableDataInfo;
+import com.bzd.common.enums.BusinessType;
+import com.bzd.system.service.PharmaceuticalService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import com.bzd.system.service.kc.kn.SKcKnZxyjStorestaleproductsService;
+
+import java.util.List;
+
+/**
+*
+* 滞销预警信息表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-14
+*/
+@Controller
+@RequestMapping(value = "kc/skcknzxyjstorestaleproducts")
+public class SKcKnZxyjStorestaleproductsController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "kc/kn";
+
+    @Autowired
+    private SKcKnZxyjStorestaleproductsService sKcKnZxyjStorestaleproductsService;
+
+    /**
+    * 滞销预警信息表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnZxyjStorestaleproductsAdd")
+    public String add() {
+        return prefix + "/SKcKnZxyjStorestaleproductsAdd";
+    }
+
+    /**
+    * 滞销预警信息表 新增
+    *
+    * @return
+    */
+    @Log(title = "滞销预警信息表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sKcKnZxyjStorestaleproductsAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sKcKnZxyjStorestaleproductsService.addSKcKnZxyjStorestaleproducts(pd);
+            if (result == 1) {
+                return AjaxResult.success("新增成功");
+            } else {
+                logger.error("Failed to update 表skccrkckreceiptinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("新增失败");
+            }
+        } catch (Exception e) {
+            logger.error("Error occurred while updating 表skccrkckreceiptinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+
+    /**
+    * 滞销预警信息表 查询页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("kc:kn::view")
+    @GetMapping("/sKcKnZxyjStorestaleproductsView")
+    public String skcknzxyjstorestaleproductsListView() {
+        return prefix + "/SKcKnZxyjStorestaleproductsList";
+    }
+
+    /**
+    * 滞销预警信息表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:sKcKnZxyjStorestaleproductsList")
+    @PostMapping("/sKcKnZxyjStorestaleproductsList")
+    @ResponseBody
+    public TableDataInfo skcknzxyjstorestaleproductsList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sKcKnZxyjStorestaleproductsService.findSKcKnZxyjStorestaleproductsList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 滞销预警信息表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:remove")
+    @Log(title = "滞销预警信息表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sKcKnZxyjStorestaleproductsRemove")
+    @ResponseBody
+    public AjaxResult skcknzxyjstorestaleproductsRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sKcKnZxyjStorestaleproductsService.SKcKnZxyjStorestaleproductsRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 滞销预警信息表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @GetMapping("/sKcKnZxyjStorestaleproductsEdit/{id}")
+    public String skcknzxyjstorestaleproductsView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sKcKnZxyjStorestaleproductsService.findSKcKnZxyjStorestaleproductsList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/skcknzxyjstorestaleproductsPageEdit";
+        }
+        return prefix+ "/skcknzxyjstorestaleproductsEdit";
+    }
+
+    /**
+    * 滞销预警信息表保存修改的数据
+    */
+    @RequiresPermissions("kc:kn:edit")
+    @Log(title = "滞销预警信息表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sKcKnZxyjStorestaleproductsEdit")
+    @ResponseBody
+    public AjaxResult skcknzxyjstorestaleproductsEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sKcKnZxyjStorestaleproductsService.updateSKcKnZxyjStorestaleproducts(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表skcknzxyjstorestaleproducts with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表skcknzxyjstorestaleproducts with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 5 - 0
health-admin/src/main/resources/static/health/css/input-styles.css

@@ -72,3 +72,8 @@ input[type="text"].has-content:focus {
 input[type="text"].has-content:not(:focus) {
 	background-color: rgb(232, 240, 254); /* 输入框有内容且失去焦点的背景颜色 */
 }
+li {
+	/*background-color: lightblue; *//* 背景颜色 */
+	/*padding: 1px; !* 内边距 *!*/
+	text-align: left; /* 文本居中 */
+}

+ 23 - 68
health-admin/src/main/resources/templates/DTP/cold/cold.html

@@ -18,46 +18,46 @@
 							<ul>
 								<li  class="select-time">
 									<label>创建日期</label>
-									<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginTime]"/>
+									<input type="text" class="time-input" id="creationTimeStart" placeholder="开始时间" name="creationTimeStart"/>
 									<span>-</span>
-									<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endTime]"/>
+									<input type="text" class="time-input" id="creationTimeEnd" placeholder="结束时间" name="creationTimeEnd"/>
 								</li>
 								<li  class="select-time">
 									<label>实际送达</label>
-									<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginTime]"/>
+									<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="actualDeliveryTimeStart"/>
 									<span>-</span>
-									<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endTime]"/>
+									<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="actualDeliveryTimeEnd"/>
 								</li>
 								<li>
 									<label>订单号:</label>
-									<input type="text" placeholder="请输入订单号" name="orderNumber"/>
+									<input type="text" class="styled-input" placeholder="请输入订单号" name="orderNumber"/>
 								</li>
 								<li>
 									<label>配送员:</label>
-									<input type="text"  placeholder="请输入配送员" name="deliveryPerson"/>
+									<input type="text" class="styled-input" placeholder="请输入配送员" name="deliveryPerson"/>
 								</li>
 								<li>
 									<label>收货人:</label>
-									<input type="text" placeholder="请输入收货人" name="recipientName"/>
+									<input type="text" class="styled-input" placeholder="请输入收货人" name="recipientName"/>
 								</li>
 								<li>
 									<label>收货电话:</label>
-								<input type="text" placeholder="请输入收货电话" name="recipientPhone"/>
+								<input type="text" class="styled-input" placeholder="请输入收货电话" name="recipientPhone"/>
 								</li>
 								<li>
 									<label>配送状态:</label>
-									<select name="deliveryStatus"  th:with="type=${@dict.getType('sys_select_pszt')}">
+									<select name="deliveryStatus"  th:with="type=${@dict.getType('sys_select_pszt')}" class="styled-input">
 										<option value="">全部</option>
 										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
 									</select>
 								</li>
 								<li>
 									<label>所属连锁:</label>
-										<input name="chainName" onclick="selectDeptTree()" id="treeName" type="text" placeholder="请选择门店">
+										<input name="chainName" class="styled-input" onclick="selectDeptTree()" id="treeName" type="text" placeholder="请选择门店">
 								</li>
 								<li>
 									<label>冷链类型:</label>
-									<select name="coldChainType"  th:with="type=${@dict.getType('sys_select_cold_type')}">
+									<select name="coldChainType"  th:with="type=${@dict.getType('sys_select_cold_type')}" class="styled-input">
 										<option value="">全部</option>
 										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
 												></option>
@@ -65,7 +65,7 @@
 								</li>
 								<li>
 									<label>付款顺序:</label>
-									<select name="paymentSequence"  th:with="type=${@dict.getType('sys_select_payment_sequence')}">
+									<select name="paymentSequence"  th:with="type=${@dict.getType('sys_select_payment_sequence')}" class="styled-input">
 										<option value="">全部</option>
 										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
 										></option>
@@ -237,6 +237,7 @@
 					{
 						"field": "icePackNumber",
 						"title": "冰排编号"
+
 					},
 					// {
 					// 	"field": "paymentSequence",
@@ -254,6 +255,7 @@
 		        {
 		            title: '操作',
 		            align: 'center',
+					fixed: true, // 固定列
 		            formatter: function(value, row, index) {
 		                if (row.id) {
 		                	var actions = [];
@@ -269,62 +271,6 @@
 		    $.table.init(options);
 		}
 
-
-
-		$('#btnExpand').click(function() {
-			$._tree.expandAll(true);
-		    $(this).hide();
-		    $('#btnCollapse').show();
-		});
-
-		$('#btnCollapse').click(function() {
-			$._tree.expandAll(false);
-		    $(this).hide();
-		    $('#btnExpand').show();
-		});
-
-		$('#btnRefresh').click(function() {
-			//queryDeptTree();
-		});
-		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
-		function resetPre() {
-			resetDate();
-			$("#user-form")[0].reset();
-			$("#deptId").val("");
-			$("#parentId").val("");
-			$(".curSelectedNode").removeClass("curSelectedNode");
-			$.table.search();
-		}
-
-		/* 用户管理-部门 */
-		function dept() {
-			var url = ctx + "system/dept";
-			$.modal.openTab("部门管理", url);
-		}
-
-		/* 用户状态显示 */
-		function statusTools(row) {
-		    if (row.status == 1) {
-    			return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
-    		} else {
-    			return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
-    		}
-		}
-
-		/* 用户管理-停用 */
-		function disable(userId) {
-			$.modal.confirm("确认要停用用户吗?", function() {
-				$.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 1 });
-		    })
-		}
-
-		/* 用户管理启用 */
-		function enable(userId) {
-			$.modal.confirm("确认要启用用户吗?", function() {
-				$.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 0 });
-		    })
-		}
-
 		/* 用户管理-新增-选择部门树 */
 		function selectDeptTree() {
 			var treeId = $("#treeId").val();
@@ -345,6 +291,15 @@
 			$("#treeName").val(body.find('#treeName').val());
 			$.modal.close(index);
 		}
+		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+		function resetPre() {
+			resetDate();
+			$("#user-form")[0].reset();
+			$("#deptId").val("");
+			$("#parentId").val("");
+			$(".curSelectedNode").removeClass("curSelectedNode");
+			$.table.search();
+		}
 	</script>
 
 </body>

+ 91 - 77
health-admin/src/main/resources/templates/DTP/cold/edit.html

@@ -1,188 +1,202 @@
 <!DOCTYPE html>
 <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
 <head>
-    <th:block th:include="include :: header('修改处方')" />
+    <th:block th:include="include :: header('修改配送单')" />
 </head>
 <body>
 <div class="main-content">
-    <form class="form-horizontal" id="form-server-edit" th:object="${recipe}">
+    <form class="form-horizontal" id="form-server-edit" th:object="${cold}">
         <h4 class="form-header h4">处方信息</h4>
         <input type="hidden" id="id" name="id" th:value="${id}">
         <div class="row">
-            <div class="col-sm-4">
+            <div class="col-sm-3">
+                <label class="col-sm-4 control-label">预计配送时间</label>
                 <div class="form-group">
-                    <label class="col-sm-4 control-label is-required">患者姓名:</label>
-                    <div class="col-sm-8">
-                        <input name="patientName" placeholder="请输入患者姓名" class="form-control" type="text" maxlength="30" th:value="${patientName}" >
+                    <input type="text" class="styled-input time-input-new" id="expectedDeliveryTime"  name="expectedDeliveryTime" placeholder="预计配送时间" th:value="${expectedDeliveryTime}"/>
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <div class="form-group">
+                        <label class="col-sm-4 control-label">实际配送时间</label>
+                        <input type="text" class="styled-input time-input-new" id="actualDeliveryTime" placeholder="实际配送时间" name="actualDeliveryTime" th:value="${expectedDeliveryTime}"/>
                     </div>
                 </div>
             </div>
-            <div class="col-sm-4">
+
+            <div class="col-sm-3">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label is-required">手机号码:</label>
+                    <label class="col-sm-4 control-label is-required">所属连锁:</label>
                     <div class="col-sm-8">
                         <div class="input-group">
-                            <input id="patientPhone" name="patientPhone" placeholder="请输入手机号码" class="form-control" type="number" maxlength="11" th:value="${patientPhone}">
-                            <span class="input-group-addon"><i class="fa fa-mobile"></i></span>
+                            <input name="chainName" onclick="selectDeptTree()" id="treeName" type="text" placeholder="请选择门店" class="form-control" th:value="${chainName}">
+                            <span class="input-group-addon">
+                        <i class="fa fa-search"></i>
+                    </span>
                         </div>
                     </div>
                 </div>
             </div>
-
-            <div class="col-sm-4">
+            <div class="col-sm-3">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label is-required">药品通用名:</label>
+                    <label class="col-sm-4 control-label is-required">所属门店:</label>
                     <div class="col-sm-8">
-                        <input name="genericName" placeholder="请输入药品通用名" class="form-control" type="text" maxlength="30" th:value="${genericName}">
+                        <select name="storeName" class="form-control" th:with="type=${@dict.getType('sys_select_store')}">
+                            <option value="">请选择</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${storeName}"
+                            ></option>
+                        </select>
                     </div>
                 </div>
             </div>
         </div>
         <div class="row">
-            <div class="col-sm-4">
+            <div class="col-sm-3">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label is-required">门店:</label>
-                    <div class="col-sm-8">
-                        <div class="input-group">
-                            <input name="storeName" onclick="selectDeptTree()" id="treeName" type="text" placeholder="请选择门店" class="form-control"  th:value="${storeName}">
-                            <span class="input-group-addon"><i class="fa fa-search"></i></span>
-                        </div>
+                    <label class="col-sm-6 control-label">是否线上签收:</label>
+                    <div class="col-sm-4">
+                        <select name="prescriptionType" class="form-control" th:with="type=${@dict.getType('sys_yes_no')}">
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:selected="${dict.dictLabel}==${prescriptionType}"
+                            ></option>
+                        </select>
                     </div>
                 </div>
             </div>
 
-            <div class="col-sm-4">
+            <div class="col-sm-3">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label">厂家:</label>
-                    <div class="col-sm-8">
-                        <input id="manufacturer" name="manufacturer" placeholder="请输入厂家" class="form-control" type="text" maxlength="30" th:value="${manufacturer}">
+                    <label class="col-sm-4 control-label">配送状态:</label>
+                    <div class="col-sm-4">
+                        <select name="deliveryStatus"  class="form-control"  th:with="type=${@dict.getType('sys_select_pszt')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" th:selected="${dict.dictLabel}==${deliveryStatus}"></option>
+                        </select>
                     </div>
                 </div>
             </div>
-            <div class="col-sm-4">
+            <div class="col-sm-3">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label">登记人:</label>
-                    <div class="col-sm-8">
-
-                        <input id="registrar" name="registrar" placeholder="请输入登记人" class="form-control" type="text" maxlength="30" th:value="${registrar}">
+                    <label class="col-sm-4 control-label">冷链类型:</label>
+                    <div class="col-sm-4">
+                        <select name="coldChainType"  class="form-control"  th:with="type=${@dict.getType('sys_select_cold_type')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" th:selected="${dict.dictLabel}==${coldChainType}"
+                            ></option>
+                        </select>
                     </div>
-
                 </div>
             </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">订单来源:</label>
+                    <div class="col-sm-4">
+                        <select name="orderSource"  class="form-control"  th:with="type=${@dict.getType('sys_select_order_sources')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" th:selected="${dict.dictLabel}==${orderSource}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+
         </div>
         <div class="row">
             <div class="col-sm-4">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label">规格:</label>
+                    <label class="col-sm-4 control-label">收货人:</label>
                     <div class="col-sm-8">
-                        <select name="specification" class="form-control" th:with="type=${@dict.getType('sys_select_specification')}">
-                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
-                                    th:selected="${dict.dictValue}==${specification}"></option>
-                        </select>
+                        <input id="recipientName" name="recipientName"  type="text" maxlength="100"  class="form-control" placeholder="请输入收货人" th:value="${recipientName}">
                     </div>
                 </div>
             </div>
             <div class="col-sm-4">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label">数量:</label>
+                    <label class="col-sm-4 control-label">收货电话:</label>
                     <div class="col-sm-8">
-                        <input id="quantity" name="quantity" placeholder="请输入数量" class="form-control" type="number" maxlength="30" th:value="${quantity}">
+                        <input id="recipientPhone" name="recipientPhone"  type="number" maxlength="11"  class="form-control" placeholder="请输入收货电话" th:value="${recipientPhone}">
                     </div>
                 </div>
             </div>
+
             <div class="col-sm-4">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label">商品名:</label>
+                    <label class="col-sm-4 control-label">冰排编号:</label>
+
                     <div class="col-sm-8">
-                        <input id="productName" name="productName"  type="text" maxlength="100"  class="form-control" placeholder="请输入商品名" th:value="${productName}">
+                        <input id="icePackNumber" name="icePackNumber" placeholder="请输入冰排编号" class="form-control" type="text" maxlength="50" th:value="${icePackNumber}">
                     </div>
                 </div>
             </div>
-        </div>
 
+
+        </div>
         <div class="row">
             <div class="col-sm-4">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label">处方类型:</label>
+                    <label class="col-sm-4 control-label">收货地址:</label>
                     <div class="col-sm-8">
-                        <select name="prescriptionType" class="form-control" th:with="type=${@dict.getType('sys_select_prescription_ype')}">
-                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
-                                    th:selected="${dict.dictValue}==${prescriptionType}"></option>
-                        </select>
+                        <input id="recipientAddress" name="recipientAddress"  type="text" maxlength="1000"  class="form-control" placeholder="请输入收货地址" th:value="${recipientAddress}">
                     </div>
                 </div>
             </div>
-
             <div class="col-sm-4">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label">配送方式:</label>
+                    <label class="col-sm-4 control-label">出发温度:</label>
                     <div class="col-sm-8">
-                        <select name="deliveryMethod" class="form-control" th:with="type=${@dict.getType('sys_select_delivery_method')}">
-                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
-                                    th:selected="${dict.dictValue}==${deliveryMethod}"></option>
-                        </select>
+                        <input id="departureTemperature" name="departureTemperature"  type="text" maxlength="10"  class="form-control" placeholder="请输入出发温度" th:value="${departureTemperature}">
                     </div>
                 </div>
             </div>
             <div class="col-sm-4">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label">MDM编码:</label>
-
+                    <label class="col-sm-4 control-label">送达温度:</label>
                     <div class="col-sm-8">
-                        <input id="mdmCode" name="mdmCode" placeholder="请输入MDM编码" class="form-control" type="text" maxlength="50" th:value="${mdmCode}" >
+                        <input id="arrivalTemperature" name="arrivalTemperature"  type="text" maxlength="10"  class="form-control" placeholder="请输入送达温度" th:value="${arrivalTemperature}">
                     </div>
                 </div>
             </div>
-
-
         </div>
         <div class="row">
             <div class="col-sm-4">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label is-required">医生:</label>
+                    <label class="col-sm-4 control-label">签收照片:</label>
                     <div class="col-sm-8">
-                        <input id="doctor" name="doctor" placeholder="请输入医生" class="form-control" type="text" maxlength="30" th:value="${doctor}">
+                        <input id="signaturePhoto" name="signaturePhoto"  type="text" maxlength="1000"  class="form-control" placeholder="签收照片" th:value="${signaturePhoto}">
                     </div>
                 </div>
             </div>
             <div class="col-sm-4">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label is-required">医院:</label>
+                    <label class="col-sm-4 control-label">配送员:</label>
                     <div class="col-sm-8">
-                        <input name="hospital" placeholder="请输入医院" class="form-control" type="text" maxlength="30" th:value="${hospital}">
+                        <input id="deliveryPerson" name="deliveryPerson" placeholder="请输入配送员" class="form-control" type="text" maxlength="50"  th:value="${deliveryPerson}">
                     </div>
                 </div>
             </div>
+
+
             <div class="col-sm-4">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label ">科室:</label>
+                    <label class="col-sm-4 control-label">配送箱编号:</label>
                     <div class="col-sm-8">
-                        <input id="department" name="department" placeholder="请输入科室" class="form-control" type="text" maxlength="50" th:value="${department}">
+                        <input id="deliveryBoxNumber" name="deliveryBoxNumber"  type="text" maxlength="25"  class="form-control" placeholder="配送箱编号" th:value="${deliveryBoxNumber}">
                     </div>
                 </div>
             </div>
         </div>
-
-
         <h4 class="form-header h4">其他信息</h4>
         <div class="row">
             <div class="col-sm-6">
                 <div class="form-group">
-                    <label class="col-sm-6 control-label">pos会员姓名:</label>
+                    <label class="col-sm-4 control-label">付款顺序:</label>
                     <div class="col-sm-8">
-                        <input id="posMemberName" name="posMemberName" placeholder="请输入pos会员姓名" class="form-control" type="text" maxlength="30" th:value="${posMemberName}">
-                    </div>
-                </div>
-            </div>
-            <div class="col-sm-6">
-                <div class="form-group">
-                    <label class="col-sm-6 control-label">pos会员手机号:</label>
-                    <div class="col-sm-8">
-                        <input id="posMemberPhone" name="posMemberPhone" placeholder="请输入pos会员手机号" class="form-control" type="number" maxlength="11" th:value="${posMemberPhone}">
+                        <select name="paymentSequence" class="form-control" th:with="type=${@dict.getType('sys_select_payment_sequence')}">
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${paymentSequence}"
+                            ></option>
+                        </select>
                     </div>
                 </div>
             </div>
-
         </div>
     </form>
 </div>
@@ -221,7 +235,7 @@
 
 
     function submitHandler() {
-        var prefix = ctx + "dtp/recipe";
+        var prefix = ctx + "dtp/cold";
         if ($.validate.form()) {
             var data = $("#form-server-edit").serializeArray();
             /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;

+ 11 - 58
health-admin/src/main/resources/templates/DTP/recipe/add.html

@@ -170,22 +170,27 @@
 
         <h4 class="form-header h4">其他信息</h4>
         <div class="row">
-            <div class="col-sm-6">
+            <div class="col-sm-4">
                 <div class="form-group">
                     <label class="col-sm-6 control-label">pos会员姓名:</label>
-                        <div class="col-sm-8">
+                        <div class="col-sm-6">
                             <input id="posMemberName" name="posMemberName" placeholder="请输入pos会员姓名" class="form-control" type="text" maxlength="30" >
                     </div>
                 </div>
             </div>
-                <div class="col-sm-6">
+                <div class="col-sm-4">
                     <div class="form-group">
                         <label class="col-sm-6 control-label">pos会员手机号:</label>
-                            <div class="col-sm-8">
+                            <div class="col-sm-6">
                                 <input id="posMemberPhone" name="posMemberPhone" placeholder="请输入pos会员手机号" class="form-control" type="number" maxlength="11" >
                             </div>
                         </div>
                 </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+
+                </div>
+            </div>
 
         </div>
 
@@ -204,54 +209,6 @@
 <th:block th:include="include :: select2-js" />
 <script>
     var prefix = ctx + "dtp/recipe";
-    var prescriptionTypes = [
-        { label: '电子处方', value: 'electronic' },
-        { label: '纸质处方', value: 'paper' }
-    ];
-    // $("#form-user-add").validate({
-    //     onkeyup: false,
-    //     rules:{
-    //         patientName:{
-    //             minlength: 3,
-    //             maxlength: 20,
-    //             remote: {
-    //                 url: prefix + "/checkPatientNameAndPhoneUnique",
-    //                 type: "post",
-    //                 dataType: "json",
-    //                 data: {
-    //                     "patientName": function() {
-    //                         return $.common.trim($("#patientName").val());
-    //                     },
-    //                     "patientPhone": function() {
-    //                         return $.common.trim($("#patientPhone").val());
-    //                     }
-    //                 }
-    //             }
-    //         },
-    //         patientPhone:{
-    //             isPhone:true,
-    //             remote: {
-    //                 url: prefix + "/checkPhoneUnique",
-    //                 type: "post",
-    //                 dataType: "json",
-    //                 data: {
-    //                     "patientPhone": function () {
-    //                         return $.common.trim($("#patientPhone").val());
-    //                     }
-    //                 }
-    //             }
-    //         },
-    //     },
-    //     messages: {
-    //         "patientName": {
-    //             remote: "患者已经存在"
-    //         },
-    //         "patientPhone":{
-    //             remote: "患者手机号码已经存在"
-    //         }
-    //     },
-    //     focusCleanup: true
-    // });
 
     function submitHandler() {
         if ($.validate.form()) {
@@ -282,14 +239,10 @@
         $.modal.close(index);
     }
 
-    $(function() {
-        $('#post').select2({
-            placeholder: "请选择岗位",
-            allowClear: true
-        });
-    })
 </script>
 </body>
 </html>
 
 
+
+

+ 8 - 4
health-admin/src/main/resources/templates/DTP/recipe/edit.html

@@ -166,23 +166,27 @@
 
             <h4 class="form-header h4">其他信息</h4>
             <div class="row">
-                <div class="col-sm-6">
+                <div class="col-sm-4">
                     <div class="form-group">
                         <label class="col-sm-6 control-label">pos会员姓名:</label>
-                        <div class="col-sm-8">
+                        <div class="col-sm-6">
                             <input id="posMemberName" name="posMemberName" placeholder="请输入pos会员姓名" class="form-control" type="text" maxlength="30" th:value="${posMemberName}">
                         </div>
                     </div>
                 </div>
-                <div class="col-sm-6">
+                <div class="col-sm-4">
                     <div class="form-group">
                         <label class="col-sm-6 control-label">pos会员手机号:</label>
-                        <div class="col-sm-8">
+                        <div class="col-sm-6">
                             <input id="posMemberPhone" name="posMemberPhone" placeholder="请输入pos会员手机号" class="form-control" type="number" maxlength="11" th:value="${posMemberPhone}">
                         </div>
                     </div>
                 </div>
+                <div class="col-sm-4">
+                    <div class="form-group">
 
+                    </div>
+                </div>
             </div>
         </form>
     </div>

+ 12 - 58
health-admin/src/main/resources/templates/DTP/recipe/recipe.html

@@ -17,25 +17,25 @@
 						<div class="select-list">
 							<ul>
 								<li>
-									患者信息:<input type="text"  placeholder="请输入患者姓名或手机号" name="query"/>
+									患者信息:<input type="text" class="styled-input" placeholder="请输入患者姓名或手机号" name="query"/>
 								</li>
 								<li>
-									药品:<input type="text" name="genericName"/>
+									药品:<input type="text" class="styled-input" name="genericName"/>
 								</li>
 								<li>
 								<li>
-									订单编号:<input type="text" name="orderId"/>
+									订单编号:<input type="text" class="styled-input" name="orderId"/>
 								</li>
 								<li>
-									销售单号:<input type="text" name="saleOrderNumber"/>
+									销售单号:<input type="text" class="styled-input" name="saleOrderNumber"/>
 								</li>:
 								</li>
 								<li>
-									处方单号:<input type="text" name="prescriptionNumber"/>
+									处方单号:<input type="text" class="styled-input" name="prescriptionNumber"/>
 								</li>
 								<li>
 									<label>处方类型</label>
-									<select name="prescriptionType"  th:with="type=${@dict.getType('sys_select_prescription_ype')}">
+									<select name="prescriptionType"  th:with="type=${@dict.getType('sys_select_prescription_ype')}" class="styled-input">
 										<option value="">全部</option>
 										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
 												></option>
@@ -43,7 +43,7 @@
 								</li>
 								<li>
 									<label>配送方式</label>
-									<select name="deliveryMethod"  th:with="type=${@dict.getType('sys_select_delivery_method')}">
+									<select name="deliveryMethod"  th:with="type=${@dict.getType('sys_select_delivery_method')}" class="styled-input">
 										<option value="">全部</option>
 										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
 												></option>
@@ -52,15 +52,15 @@
 
 								<li>
 									<label>订单日期 </label>
-									<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginTime]"/>
+									<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="beginTime"/>
 									<span>-</span>
-									<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endTime]"/>
+									<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="endTime"/>
 								</li>
 
 
 								<li>
 									<label>订单状态</label>
-									<select name="status" th:with="type=${@dict.getType('sys_select_order_status')}">
+									<select name="status" th:with="type=${@dict.getType('sys_select_order_status')}" class="styled-input">
 										<option value="">全部</option>
 										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
 										></option>
@@ -126,7 +126,6 @@
 	    		$('#scroll-up').toTop(opt);
 	    	}
 		    queryUserList();
-		    //queryDeptTree();
 		});
 
 		function queryUserList() {
@@ -165,7 +164,7 @@
 					},
 					{
 						field: "productName",
-						title: "商品名"
+						title: "商品名",
 					},
 					{
 						field: "specification",
@@ -272,7 +271,7 @@
 		            title: '操作',
 		            align: 'center',
 		            formatter: function(value, row, index) {
-		                if (row.id != 1) {
+		                if (row.id) {
 		                	var actions = [];
 			                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
 			                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
@@ -302,22 +301,6 @@
 				$.table.search();
 			}
 		}
-
-		$('#btnExpand').click(function() {
-			$._tree.expandAll(true);
-		    $(this).hide();
-		    $('#btnCollapse').show();
-		});
-
-		$('#btnCollapse').click(function() {
-			$._tree.expandAll(false);
-		    $(this).hide();
-		    $('#btnExpand').show();
-		});
-
-		$('#btnRefresh').click(function() {
-			//queryDeptTree();
-		});
 		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
 		function resetPre() {
 			resetDate();
@@ -327,35 +310,6 @@
 			$(".curSelectedNode").removeClass("curSelectedNode");
 			$.table.search();
 		}
-
-		/* 用户管理-部门 */
-		function dept() {
-			var url = ctx + "system/dept";
-			$.modal.openTab("部门管理", url);
-		}
-
-		/* 用户状态显示 */
-		function statusTools(row) {
-		    if (row.status == 1) {
-    			return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
-    		} else {
-    			return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
-    		}
-		}
-
-		/* 用户管理-停用 */
-		function disable(userId) {
-			$.modal.confirm("确认要停用用户吗?", function() {
-				$.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 1 });
-		    })
-		}
-
-		/* 用户管理启用 */
-		function enable(userId) {
-			$.modal.confirm("确认要启用用户吗?", function() {
-				$.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 0 });
-		    })
-		}
 	</script>
 </body>
 

+ 5 - 10
health-admin/src/main/resources/templates/DTP/recipe/view.html

@@ -20,14 +20,15 @@
                 <div class="ant-card-head-title">
                     <div class="index_title-2CoZR">
                         <h1>DTP处方登记概览</h1>
-
+                        <button onclick="" class="ant-btn-primary">导出订单</button>
+                    </div>
                 </div>
             </div>
 
         </div>
         <div class="container-div">
         <form id="report-form">
-            <input type="hidden"  class="form-control"  name="id" id="id">
+            <input type="text" class="" hidden="true" value="" name="id">
         <div class="ChartAndTable_chart-and-table-3ib6R">
             <div class="ant-radio-group ant-radio-group-outline">
                 <label class="ant-radio-button-wrapper ant-radio-button-wrapper-checked">
@@ -264,9 +265,6 @@
 
         /*门店列表-详细*/
         function detail(id) {
-            $("#id").val(id);
-            $.table.search();
-            $("#id").val("");
             debugger
             $.ajax({
                 type : "GET",
@@ -302,12 +300,10 @@
                         }]
                     };
 
-
-
                     // 使用新的数据更新图表
                     myChart.setOption(updatedOption);
-
-
+                    $("#id").val(id);
+                    queryUserList();
                 },
                 error : function(errorMsg) {
                     //请求失败时执行该函数
@@ -315,7 +311,6 @@
                     myChart.hideLoading();
                 }
             })
-
         }
 
     /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */

+ 1 - 1
health-admin/src/main/resources/templates/dtp/followUp/followUpList.html

@@ -249,7 +249,7 @@
 		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
 		function resetPre() {
 			resetDate();
-			$("#archives-form")[0].reset();
+			$("#followUp-form")[0].reset();
 			$("#deptId").val("");
 			$("#parentId").val("");
 			$(".curSelectedNode").removeClass("curSelectedNode");

+ 2 - 2
health-admin/src/main/resources/templates/dtp/followUpAssign/followUpAssignList.html

@@ -255,12 +255,12 @@
 		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
 		function resetPre() {
 			resetDate();
-			$("#archives-form")[0].reset();
+			$("#followUpAssign-form")[0].reset();
 			$("#deptId").val("");
 			$("#parentId").val("");
 			$(".curSelectedNode").removeClass("curSelectedNode");
 			$.table.search();
-			var resetButton = document.getElementById('followUpAssign-form-form');
+			var resetButton = document.getElementById('followUpAssign-form');
 			resetButton.addEventListener('click', function() {
 				_refresh();
 			});

+ 92 - 0
health-admin/src/main/resources/templates/dtp/followUpEvaluation/followUpEvaluationEdit.html

@@ -0,0 +1,92 @@
+ <!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('随访满意度评价')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+    <div class="ui-layout-center">
+        <form class="form-horizontal" id="form-followUpEvaluation-edit" th:object="${user}">
+            <h4 class="form-header h4">基本信息</h4>
+            <input type="hidden" id="id" name="id" th:value="${id}">
+            <div class="row">
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-1 control-label">患者姓名:</label>
+                            <div class="col-sm-2">
+                                <div class="input-group">
+                                    <input name="patientName" placeholder="患者姓名" th:value="${patientName}" class="styled-input" type="text" maxlength="255" required>
+                                </div>
+                            </div>
+                            <label class="col-sm-1 control-label">随访任务:</label>
+                            <div class="col-sm-2">
+                                <div class="input-group">
+                                    <input name="followUpTask" placeholder="随访任务" th:value="${followUpTask}" class="styled-input" type="text" maxlength="20" required>
+                                </div>
+                            </div>
+                        <label class="col-sm-1 control-label">任务跟进人:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="taskFollower" placeholder="任务跟进人" th:value="${taskFollower}" class="styled-input" type="text" maxlength="20" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">评价日期:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="evaluationDate" placeholder="评价日期" th:value="${evaluationDate}"
+                                       class="styled-input time-input" type="text" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <label class="col-sm-1 control-label">连锁:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="chainStoreName" placeholder="连锁" class="styled-input" th:value="${chainStoreName}" type="text" maxlength="255" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">门店:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="storeName" placeholder="门店" th:value="${storeName}" class="styled-input" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <div class="main-content">
+        <div class="col-sm-offset-5 col-sm-10">
+            <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+            <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+        </div>
+    </div>
+	<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "dtp/pmService";
+        if ($.validate.form()) {
+                var data = $("#form-followUpEvaluation-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/followUpEvaluationEdit", data);
+        }
+    }
+</script>

+ 205 - 0
health-admin/src/main/resources/templates/dtp/followUpEvaluation/followUpEvaluationList.html

@@ -0,0 +1,205 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<meta charset="UTF-8">
+	<meta name="format-detection" content="telephone=no">
+	<th:block th:include="include :: header('随访满意度评价')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<style>
+	/* 设置 ul 的基本样式 */
+	ul {
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+	}
+	ul-list ul{
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+	}
+	ul-list ul li{
+		/*padding: 10px;*/ /* 内边距 */
+		text-align: left; /* 文本居中 */
+	}
+
+	/* 设置 li 的基本样式 */
+	li {
+		/*background-color: lightblue; *//* 背景颜色 */
+		/*padding: 1px; !* 内边距 *!*/
+		text-align: left; /* 文本居中 */
+	}
+
+</style>
+
+<body class="gray-bg">
+	<div class="ui-layout-center">
+		<div class="container-div">
+			<div class="row">
+				<div class="col-sm-12 search-collapse" >
+					<form id="followUpEvaluation-form">
+						<input type="hidden" id="deptId" name="deptId">
+		                <input type="hidden" id="parentId" name="parentId">
+
+						<div class="select-list" >
+							<ul>
+								<li>
+									连锁店:<input type="text" class="styled-input" name="chainStoreName" autocomplete="off"/>
+								</li>
+								<li>
+									门店:<input type="text" class="styled-input" name="storeName"/>
+								</li>
+								<li>
+									评价日期:
+									<input type="text" disabled="" class="styled-input time-input"
+										   placeholder="评价日期" name="evaluationDate"  required/>
+								</li>
+								<li>
+									任务跟进人:<input type="text"  class="styled-input" name="taskFollower"/>
+								</li>
+
+								<li style="text-align: center">
+									<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								    <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+								</li>
+							</ul>
+						</div>
+					</form>
+				</div>
+
+		        <div class="btn-group-sm" id="toolbar" role="group">
+		        	<!--<a class="btn btn-success" onclick="$.operate.addTab()" shiro:hasPermission="system:user:add">
+		                <i class="fa fa-plus"></i> 新增
+		            </a>
+		             <a class="btn btn-primary single disabled" onclick="$.operate.editTab()" shiro:hasPermission="system:user:edit">
+			            <i class="fa fa-edit"></i> 修改
+			        </a>
+		            <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+		                <i class="fa fa-remove"></i> 删除
+		            </a>
+		            <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+			            <i class="fa fa-upload"></i> 导入
+			        </a>
+		            <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+			            <i class="fa fa-download"></i> 导出
+			        </a>-->
+		        </div>
+
+		        <div class="col-sm-12 select-table table-striped">
+				    <table id="bootstrap-table"></table>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<th:block th:include="include :: footer" />
+	<th:block th:include="include :: layout-latest-js" />
+	<th:block th:include="include :: ztree-js" />
+	<script th:inline="javascript">
+		var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+		var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+		var prefix = ctx + "dtp/pmService";
+		$(function() {
+		    var panehHidden = false;
+		    if ($(this).width() < 1590) {
+		        panehHidden = true;
+		    }
+		    $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+	     	// 回到顶部绑定
+	    	if ($.fn.toTop !== undefined) {
+	    		var opt = {
+	    			win:$('.ui-layout-center'),
+	    			doc:$('.ui-layout-center')
+	    		};
+	    		$('#scroll-up').toTop(opt);
+	    	}
+			queryArchivesList();
+		});
+
+		function queryArchivesList() {
+		    var options = {
+		        url: prefix + "/followUpEvaluationList",
+		        viewUrl: prefix + "/followUpEvaluationView/{id}",
+		        createUrl: prefix + "/followUpEvaluationAdd",
+		        updateUrl: prefix + "/followUpEvaluationEdit/{id}",
+		        removeUrl: prefix + "/followUpEvaluationRemove",
+		        /*exportUrl: prefix + "/export",
+		        importUrl: prefix + "/importData",
+		        importTemplateUrl: prefix + "/importTemplate",*/
+		        sortName: "id",
+		        sortOrder: "asc",
+		        modalName: "档案",
+				fitColumns: true,
+				striped: true,
+				autoRowHeight: true,
+				rowNumbers: true,
+				showFooter:true,  //是否显示表格底部区域。
+				clickToSelect: true, //是否启用点击行时选中整行的功能。
+				singleSelect: true, //是否仅允许选择一行
+		        columns: [{
+		            checkbox: true
+		        },
+
+				/*{ field: 'businessId', title: '业务ID', align: 'center' },
+				{ field: 'businessName', title: '业务名称', align: 'center' },
+				{ field: 'createdBy', title: '创建人', align: 'center' },
+				{ field: 'createdDate', title: '创建日期', align: 'center' },*/
+				{ field: 'patientName', title: '患者姓名', align: 'center' },
+				{ field: 'followUpTask', title: '随访任务', align: 'center' },
+				{ field: 'taskFollower', title: '任务跟进人', align: 'center' },
+				{ field: 'evaluationDate', title: '评价日期', align: 'center' },
+				{ field: 'chainStoreName', title: '连锁店', align: 'center' },
+				{ field: 'storeName', title: '门店', align: 'center' },
+				/*{ field: 'taskId', title: '任务ID', align: 'center' },*/
+
+		        {
+		            title: '操作',
+		            align: 'center',
+		            formatter: function(value, row, index) {
+		                if (row.serviceId != 1) {
+		                	var actions = [];
+			                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+			                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+			                var more = [];
+			                /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+			                more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+			                actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+			                return actions.join('');
+		            	} else {
+		                    return "";
+		                }
+		            }
+		        }]
+		    };
+		    $.table.init(options);
+		}
+
+		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+		function resetPre() {
+			resetDate();
+			$("#followUpEvaluation-form")[0].reset();
+			$("#deptId").val("");
+			$("#parentId").val("");
+			$(".curSelectedNode").removeClass("curSelectedNode");
+			$.table.search();
+			var resetButton = document.getElementById('followUpEvaluation-form');
+			resetButton.addEventListener('click', function() {
+				_refresh();
+			});
+		}
+
+		/* 用户状态显示 */
+		function statusTools(row) {
+		    if (row.status == 1) {
+    			return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+    		} else {
+    			return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+    		}
+		}
+	</script>
+</body>
+
+</html>

+ 131 - 0
health-admin/src/main/resources/templates/dtp/patientCounseling/patientCounselingEdit.html

@@ -0,0 +1,131 @@
+ <!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('随访跟进人分配')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+    <div class="ui-layout-center">
+        <form class="form-horizontal" id="form-patientCounseling-edit" th:object="${user}">
+            <h4 class="form-header h4">基本信息</h4>
+            <input type="hidden" id="id" name="id" th:value="${id}">
+            <div class="row">
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-1 control-label">患者姓名:</label>
+                            <div class="col-sm-2">
+                                <div class="input-group">
+                                    <input name="patientName" placeholder="患者姓名" th:value="${patientName}" class="styled-input" type="text" maxlength="255" required>
+                                </div>
+                            </div>
+                            <label class="col-sm-1 control-label">患者手机号:</label>
+                            <div class="col-sm-2">
+                                <div class="input-group">
+                                    <input name="patientPhone" placeholder="患者手机号" th:value="${patientPhone}" class="styled-input" type="text" maxlength="20" required>
+                                </div>
+                            </div>
+                        <label class="col-sm-1 control-label">性别:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="gender" class="styled-input" th:with="type=${@dict.getType('sys_user_sex')}" >
+                                    <!--<option>所有</option>-->
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
+                                            th:selected="${dict.dictLabel} == ${gender}" ></option>
+                                </select>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">年龄:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="age" placeholder="年龄" th:value="${age}" class="styled-input" type="number" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <label class="col-sm-1 control-label">问题类型:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="questionType" placeholder="问题类型" class="styled-input" th:value="${questionType}" type="text" maxlength="255" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">咨询问题:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="consultationQuestion" placeholder="咨询问题" th:value="${consultationQuestion}" class="styled-input" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">药师解答:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="pharmacistAnswer" placeholder="药师解答" th:value="${pharmacistAnswer}" class="styled-input" ></input>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">咨询时间:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="consultationTime" placeholder="咨询时间" th:value="${updateTime2}" class="styled-input time-input-new" type="text" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <label class="col-sm-1 control-label">疾病:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="disease" placeholder="疾病" th:value="${disease}" class="styled-input" type="text" maxlength="255" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">药品通用名:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="genericName" placeholder="药品通用名" th:value="${genericName}" class="styled-input" type="text" maxlength="255" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">商品名:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="productName" placeholder="商品名" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+            </div>
+        </form>
+    </div>
+    <div class="main-content">
+        <div class="col-sm-offset-5 col-sm-10">
+            <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+            <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+        </div>
+    </div>
+	<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "dtp/pmService";
+        if ($.validate.form()) {
+            var data = $("#form-patientCounseling-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/patientCounselingEdit", data);
+        }
+    }
+</script>

+ 211 - 0
health-admin/src/main/resources/templates/dtp/patientCounseling/patientCounselingList.html

@@ -0,0 +1,211 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<meta charset="UTF-8">
+	<meta name="format-detection" content="telephone=no">
+	<th:block th:include="include :: header('患者咨询')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<style>
+	/* 设置 ul 的基本样式 */
+	ul {
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+	}
+	ul-list ul{
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+	}
+	ul-list ul li{
+		/*padding: 10px;*/ /* 内边距 */
+		text-align: left; /* 文本居中 */
+	}
+
+	/* 设置 li 的基本样式 */
+	li {
+		/*background-color: lightblue; *//* 背景颜色 */
+		/*padding: 1px; !* 内边距 *!*/
+		text-align: right; /* 文本居中 */
+	}
+</style>
+
+<body class="gray-bg">
+	<div class="ui-layout-center">
+		<div class="container-div">
+			<div class="row">
+				<div class="col-sm-12 search-collapse" >
+					<form id="patientCounseling-form">
+						<input type="hidden" id="deptId" name="deptId">
+		                <input type="hidden" id="parentId" name="parentId">
+
+						<div class="select-list" >
+							<ul>
+								<li>
+									患者信息:<input type="text" class="styled-input" name="patientName" autocomplete="off"/>
+								</li>
+								<li>
+									疾病:<input type="text" class="styled-input" name="disease"/>
+								</li>
+								<li>
+									咨询问题:<input type="text"  class="styled-input" name="consultationQuestion"/>
+								</li>
+								<li>
+									问题类型:<input type="text"  class="styled-input" name="questionType"/>
+								</li>
+
+								<li style="text-align: center">
+									<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								    <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+								</li>
+							</ul>
+						</div>
+						<div class="select-list" >
+							<ul>
+								<li>
+									药品:<input type="text"  class="styled-input" name="followUpPersonName"/>
+								</li>
+							</ul>
+						</div>
+
+					</form>
+				</div>
+
+		        <div class="btn-group-sm" id="toolbar" role="group">
+		        	<!--<a class="btn btn-success" onclick="$.operate.addTab()" shiro:hasPermission="system:user:add">
+		                <i class="fa fa-plus"></i> 新增
+		            </a>
+		             <a class="btn btn-primary single disabled" onclick="$.operate.editTab()" shiro:hasPermission="system:user:edit">
+			            <i class="fa fa-edit"></i> 修改
+			        </a>
+		            <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+		                <i class="fa fa-remove"></i> 删除
+		            </a>
+		            <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+			            <i class="fa fa-upload"></i> 导入
+			        </a>
+		            <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+			            <i class="fa fa-download"></i> 导出
+			        </a>-->
+		        </div>
+
+		        <div class="col-sm-12 select-table table-striped">
+				    <table id="bootstrap-table"></table>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<th:block th:include="include :: footer" />
+	<th:block th:include="include :: layout-latest-js" />
+	<th:block th:include="include :: ztree-js" />
+	<script th:inline="javascript">
+		var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+		var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+		var prefix = ctx + "dtp/pmService";
+		$(function() {
+		    var panehHidden = false;
+		    if ($(this).width() < 1590) {
+		        panehHidden = true;
+		    }
+		    $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+	     	// 回到顶部绑定
+	    	if ($.fn.toTop !== undefined) {
+	    		var opt = {
+	    			win:$('.ui-layout-center'),
+	    			doc:$('.ui-layout-center')
+	    		};
+	    		$('#scroll-up').toTop(opt);
+	    	}
+			queryArchivesList();
+		});
+
+		function queryArchivesList() {
+		    var options = {
+		        url: prefix + "/patientCounselingList",
+		        viewUrl: prefix + "/patientCounselingView/{id}",
+		        createUrl: prefix + "/patientCounselingAdd",
+		        updateUrl: prefix + "/patientCounselingEdit/{id}",
+		        removeUrl: prefix + "/patientCounselingRemove",
+		        /*exportUrl: prefix + "/export",
+		        importUrl: prefix + "/importData",
+		        importTemplateUrl: prefix + "/importTemplate",*/
+		        sortName: "id",
+		        sortOrder: "asc",
+		        modalName: "档案",
+				fitColumns: true,
+				striped: true,
+				autoRowHeight: true,
+				rowNumbers: true,
+				showFooter:true,  //是否显示表格底部区域。
+				clickToSelect: true, //是否启用点击行时选中整行的功能。
+				singleSelect: true, //是否仅允许选择一行
+		        columns: [{
+		            checkbox: true
+		        },
+				/*{ field: 'createdBy', title: '创建人', align: 'center' },
+				{ field: 'createdDate', title: '创建日期', align: 'center' },*/
+				{ field: 'patientName', title: '患者姓名', align: 'center' },
+				{ field: 'patientPhone', title: '患者手机号', align: 'center' },
+				{ field: 'gender', title: '性别', align: 'center' },
+				{ field: 'age', title: '年龄', align: 'center' },
+				{ field: 'questionType', title: '问题类型', align: 'center' },
+				{ field: 'consultationQuestion', title: '咨询问题', align: 'center' },
+				{ field: 'pharmacistAnswer', title: '药师解答', align: 'center' },
+				{ field: 'consultationTime', title: '咨询时间', align: 'center' },
+				{ field: 'disease', title: '疾病', align: 'center' },
+				{ field: 'genericName', title: '药品通用名', align: 'center' },
+				{ field: 'productName', title: '商品名', align: 'center' },
+
+		        {
+		            title: '操作',
+		            align: 'center',
+		            formatter: function(value, row, index) {
+		                if (row.serviceId != 1) {
+		                	var actions = [];
+			                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+			                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+			                var more = [];
+			                /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+			                more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+			                actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+			                return actions.join('');
+		            	} else {
+		                    return "";
+		                }
+		            }
+		        }]
+		    };
+		    $.table.init(options);
+		}
+
+		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+		function resetPre() {
+			resetDate();
+			$("#patientCounseling-form")[0].reset();
+			$("#deptId").val("");
+			$("#parentId").val("");
+			$(".curSelectedNode").removeClass("curSelectedNode");
+			$.table.search();
+			var resetButton = document.getElementById('patientCounseling-form');
+			resetButton.addEventListener('click', function() {
+				_refresh();
+			});
+		}
+
+		/* 用户状态显示 */
+		function statusTools(row) {
+		    if (row.status == 1) {
+    			return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+    		} else {
+    			return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+    		}
+		}
+	</script>
+</body>
+
+</html>

+ 49 - 0
health-admin/src/main/resources/templates/dtp/print/detail.html

@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+	<th:block th:include="include :: header('配送单据打印详细')" />
+	<th:block th:include="include :: jsonview-css" />
+</head>
+<body class="white-bg">
+	<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+	<form class="form-horizontal m-t" id="signupForm" th:object="${detail}">
+		<div class="form-group">
+			<label class="col-sm-2 control-label">订单编号:</label>
+			<div class="form-control-static" th:text="${orderId}">
+			</div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">配送时间:</label>
+			<div class="form-control-static" th:text="${deliveryTime}">
+			</div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">配送人:</label>
+			<div class="form-control-static" th:text="${deliverer}">
+			</div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">打印申请时间:</label>
+			<div class="form-control-static" th:text="${printRequestTime}">
+			</div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">打印状态:</label>
+			<div class="form-control-static" th:text="${status}">
+			</div>
+		</div>
+
+		<div class="form-group" th:style="'display:' + ${status == 0 ? 'none' : 'block'}">
+			<label class="col-sm-2 control-label">订单数据:</label>
+			<div class="form-control-static" th:text="${orderData}">
+			</div>
+		</div>
+	</form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <th:block th:include="include :: jsonview-js" />
+    <script th:inline="javascript">
+
+    </script>
+</body>
+</html>

+ 189 - 0
health-admin/src/main/resources/templates/dtp/print/print.html

@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<th:block th:include="include :: header('配送单据打印列表')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<body class="gray-bg">
+
+	<div class="ui-layout-center">
+		<div class="container-div">
+			<div class="row">
+				<div class="col-sm-12 search-collapse">
+					<form id="user-form">
+						<div class="select-list">
+							<ul>
+
+								<li>
+									<label>配送时间 </label>
+									<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="deliveryTimeStart"/>
+									<span>-</span>
+									<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="deliveryTimeEnd"/>
+								</li>
+								<li>
+									<label style="width: 90px; float: left;">打印申请时间 </label>
+									<input type="text" class="time-input" id="startTimes" placeholder="开始时间" name="printRequestTimeStart"/>
+									<span>-</span>
+									<input type="text" class="time-input" id="endTimes" placeholder="结束时间" name="printRequestTimeEnd"/>
+								</li>
+								<li>
+									<label>配送人: </label>
+									<input type="text"  placeholder="请输入配送人姓名" name="deliverer"/>
+								</li>
+								<li>
+									<label>打印状态:</label>
+									<select name="status"  th:with="type=${@dict.getType('sys_select_print_status')}">
+										<option value="">全部</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
+												></option>
+									</select>
+								</li>
+
+								<li>
+									<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								    <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+								</li>
+							</ul>
+						</div>
+					</form>
+				</div>
+
+		        <div class="btn-group-sm" id="toolbar" role="group">
+
+		            <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="sdtp:print:remove">
+		                <i class="fa fa-remove"></i> 删除
+		            </a>
+
+
+		            <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="dtp:print:export">
+			            <i class="fa fa-download"></i> 打印
+			        </a>
+		        </div>
+
+		        <div class="col-sm-12 select-table table-striped">
+				    <table id="bootstrap-table"></table>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<th:block th:include="include :: footer" />
+	<th:block th:include="include :: layout-latest-js" />
+	<th:block th:include="include :: ztree-js" />
+	<script th:inline="javascript">
+		var editFlag = [[${@permission.hasPermi('system:user:edit')}]];
+		var removeFlag = [[${@permission.hasPermi('system:user:remove')}]];
+		var detailFlag = [[${@permission.hasPermi('dtp:print:view')}]];
+		var prefix = ctx + "dtp/print";
+
+		$(function() {
+		    var panehHidden = false;
+		    if ($(this).width() < 1590) {
+		        panehHidden = true;
+		    }
+		    $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+	     	// 回到顶部绑定
+	    	if ($.fn.toTop !== undefined) {
+	    		var opt = {
+	    			win:$('.ui-layout-center'),
+	    			doc:$('.ui-layout-center')
+	    		};
+	    		$('#scroll-up').toTop(opt);
+	    	}
+		    queryUserList();
+		});
+
+		function queryUserList() {
+		    var options = {
+		        url: prefix + "/list",
+		        viewUrl: prefix + "/view/{id}",
+		        createUrl: prefix + "/add",
+		        updateUrl: prefix + "/edit/{id}",
+				detailUrl: prefix + "/detail/{id}",
+		        removeUrl: prefix + "/remove",
+		        exportUrl: prefix + "/export",
+		        sortName: "createTime",
+		        sortOrder: "desc",
+		        modalName: "配送单据打印信息",
+		        columns: [{
+		            checkbox: true
+		        },
+					{
+						field: "id",
+						title: "id",
+						//hidden:false
+						visible: false,
+					},
+					{
+						field: "orderId",
+						title: "订单编号"
+					},
+					{
+						field: "deliverer",
+						title: "配送人"
+					},
+					{
+						field: "deliveryTime",
+						title: "配送时间"
+					},
+					{
+						field: "printRequestTime",
+						title: "打印申请时间"
+					},
+					{
+						field: "status",
+						title: "打印状态"
+					},
+					{
+						field: "createTime",
+						title: "创建时间"
+					},
+		        {
+		            title: '操作',
+		            align: 'center',
+		            formatter: function(value, row, index) {
+		                if (row.orderId) {
+		                	var actions = [];
+							actions.push('<a class="btn btn-warning btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detail(\'' + row.id + '\')"><i class="fa fa-search"></i>详细</a>');
+			                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+			                return actions.join('');
+		            	} else {
+		                    return "";
+		                }
+		            }
+		        }]
+		    };
+		    $.table.init(options);
+		}
+
+
+
+		$('#btnExpand').click(function() {
+			$._tree.expandAll(true);
+		    $(this).hide();
+		    $('#btnCollapse').show();
+		});
+
+		$('#btnCollapse').click(function() {
+			$._tree.expandAll(false);
+		    $(this).hide();
+		    $('#btnExpand').show();
+		});
+
+		$('#btnRefresh').click(function() {
+		});
+		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+		function resetPre() {
+			resetDate();
+			$("#user-form")[0].reset();
+			$("#deptId").val("");
+			$("#parentId").val("");
+			$(".curSelectedNode").removeClass("curSelectedNode");
+			$.table.search();
+		}
+
+	</script>
+</body>
+
+</html>

+ 452 - 0
health-admin/src/main/resources/templates/dtp/recipe/view.html

@@ -0,0 +1,452 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <th:block th:include="include :: header('DTP处方登记概览')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+    <script th:src="@{/health/js/echarts.min.js}"></script>
+    <style>
+        #chart-container {
+            width: 100%;
+            height: 500px;
+        }
+    </style>
+</head>
+<body class="gray-bg">
+
+    <div class="ui-layout-center">
+        <div class="ant-card-head">
+            <div class="ant-card-head-wrapper">
+                <div class="ant-card-head-title">
+                    <div class="index_title-2CoZR">
+                        <h1>DTP处方登记概览</h1>
+                        <button onclick="" class="ant-btn-primary">导出订单</button>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+        <div class="container-div">
+        <form id="report-form">
+            <input type="text" class="" hidden="true" value="" name="id">
+        <div class="ChartAndTable_chart-and-table-3ib6R">
+            <div class="ant-radio-group ant-radio-group-outline">
+                <label class="ant-radio-button-wrapper ant-radio-button-wrapper-checked">
+                    <span class="ant-radio-button ant-radio-button-checked">
+                        <input type="radio" class="ant-radio-button-input" value="1" checked="">
+                        <span class="ant-radio-button-inner">
+
+                        </span>
+                    </span>
+                    <span>订单量模式</span>
+                </label>
+                <label class="ant-radio-button-wrapper">
+                    <span class="ant-radio-button">
+                        <input type="radio" class="ant-radio-button-input" value="2">
+                        <span class="ant-radio-button-inner">
+
+                        </span>
+                    </span>
+                    <span>百分比模式</span>
+                </label>
+            </div>
+                <div class="ant-radio-group ant-radio-group-outline">
+                <label class="ant-radio-button-wrapper2">
+                        <span class="ant-radio-button ant-radio-button-checked">
+                            <input type="radio" class="ant-radio-button-input" value="7" checked="">
+                            <span class="ant-radio-button-inner"></span>
+                        </span><span>本周</span></label>
+                <label class="ant-radio-button-wrapper2">
+                        <span class="ant-radio-button">
+                            <input type="radio" class="ant-radio-button-input" value="30">
+                            <span class="ant-radio-button-inner">
+
+                            </span></span><span>本月</span></label>
+                <label class="ant-radio-button-wrapper2">
+                        <span class="ant-radio-button">
+                            <input type="radio" class="ant-radio-button-input" value="60">
+                            <span class="ant-radio-button-inner">
+
+                            </span></span><span>上月</span></label>
+                <label class="ant-radio-button-wrapper2">
+                        <span class="ant-radio-button">
+                            <input type="radio" class="ant-radio-button-input" value="365">
+                            <span class="ant-radio-button-inner">
+
+                            </span></span>
+                    <span>本年</span>
+                </label>
+
+                  <label>订单日期 </label>
+									<input type="text" class="styled-input time-input" id="startTime" placeholder="开始时间" name="beginTime"/>
+									<span>-</span>
+									<input type="text" class="styled-input time-input" id="endTime" placeholder="结束时间" name="endTime"/>
+                    <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                    <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+            </div>
+
+        </div>
+        </form>
+
+        <div id="chart-container"></div>
+        <div class="col-sm-12 select-table table-striped">
+            <table id="bootstrap-table"></table>
+        </div>
+     </div>
+    </div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var prefix = ctx + "dtp/report";
+    var names=[];
+    var Xnames=[];
+    var submitted=[];
+    var unsubmitted=[];
+    var retData=[];
+
+        // 初始化 ECharts 图表
+        var myChart = echarts.init(document.getElementById('chart-container'));
+        // 指定图表的配置项和数据
+                var option = {
+                title: {
+                text: 'DTP 处方登记概览',
+                left: 'center'
+                },
+                tooltip: {
+                trigger: 'axis',
+                axisPointer: {
+                type: 'shadow'
+               },
+                formatter: function(params) {
+                var submitted = retData[params[0].dataIndex].completedCount;
+                var unsubmitted = retData[params[0].dataIndex].pendingCount;
+                return '<p>' + params[0].name + '</p><p>已提交:' + submitted + ' 单 | 未提交:' + unsubmitted + ' 单</p>';
+               }
+               },
+                legend: {
+                data: ['已提交', '未提交']
+               },
+                xAxis: {
+                 type: 'category',
+                 data: names,
+
+                    name: '店铺名称', // X 轴的显示说明
+                    nameLocation: 'end', // 名称的位置,可选值有 'start', 'middle', 'end'
+                    nameGap: 30, // 名称与轴线之间的距离
+                    nameTextStyle: {
+                        fontSize: 14,
+                        color: 'black'
+                    },
+                axisLabel: {
+                    formatter: function (value, index) {
+                        // 获取对应的数据点
+                        var data = option.series[0].data[index];
+                        // 判断 y 轴数值是否超过 250
+                        if (data > 100) {
+                            return `{red|${value}}`;
+                        } else {
+                            return value;
+                        }
+                    },
+                    rich: {
+                        red: {
+                            color: 'red'
+                        }
+                    }
+                }
+            },
+                yAxis: {
+                   type: 'value',
+                    name: '订单量', // Y 轴的显示说明
+                    nameLocation: 'end', // 名称的位置,可选值有 'start', 'middle', 'end'
+                    nameGap: 30, // 名称与轴线之间的距离
+                    nameTextStyle: {
+                        fontSize: 14,
+                        color: 'black'
+                    },
+                },
+                series:  [
+                    {
+                        data:Xnames,
+                        type: 'bar',
+                        showBackground: true,
+                        backgroundStyle: {
+                            color: 'rgba(180, 180, 180, 0.2)'
+                        },
+                        itemStyle: {
+                            color: function(params) {
+                                // 根据 y 轴数值设置颜色
+                                if (params.value > 100) {
+                                    return 'red';
+                                } else {
+                                    return 'blue'; // 默认颜色
+                                }
+                            }
+                        }
+                    }
+                ]
+            };
+
+        // 使用刚指定的配置项和数据显示图表。
+        myChart.setOption(option);
+
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryUserList();
+    });
+
+    function queryUserList() {
+        var options = {
+            url: prefix + "/list",
+            viewUrl: prefix + "/view/{id}",
+            exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",
+            sortName: "createTime",
+            sortOrder: "desc",
+            modalName: "DTP处方登记概览",
+            columns: [
+                {
+                    field: "id",
+                    title: "id",
+                    //hidden:false
+                    visible: false,
+                },
+                {
+                    field: "chain",
+                    title: "连锁店",
+                    align: "center",
+                    sortable: true,
+                    formatter: function(value, row, index) {
+                        if (row.id) {
+                            // 假设 row.id 是你要传递的 ID 参数
+                            return '<a href="javascript:void(0)"   onclick="detail(\'' + row.id + '\')">' + value + '</a>';
+                        }
+                    }
+
+                },
+                {
+                    field: "orderCount",
+                    title: "订单量",
+                    align: "center"
+                },
+                {
+                    field: "pendingCount",
+                    title: "待完成订单数量",
+                    align: "center"
+                },
+                {
+                    field: "completedCount",
+                    title: "已完成订单数量",
+                    align: "center"
+                },
+                {
+                    field: "completionRate",
+                    title: "订单完成率(%)",
+                    align: "center"
+                }]
+        };
+        $.table.init(options);
+    }
+
+        /*门店列表-详细*/
+        function detail(id) {
+            debugger
+            $.ajax({
+                type : "GET",
+                async : true,            //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
+                url : prefix + "/viewDetail/"+id,    //请求发送到TestServlet处
+                data : {},
+                dataType : "json",        //返回数据形式为json
+                success : function(result) {
+                    debugger
+
+                    //请求成功时执行该函数内容,result即为服务器返回的json对象
+                    names=[];
+                    Xnames=[];
+                    unsubmitted=[];
+                    submitted=[];
+                    retData=[];
+                    myChart = echarts.init(document.getElementById('chart-container'))
+                    if (result.data.length>0) {
+                        retData=result.data;
+                        for(var i=0;i<retData.length;i++){
+                            names.push(retData[i].chain);    //挨个取出类别并填入类别数组
+                            Xnames.push(retData[i].orderCount);
+                            unsubmitted.push(retData[i].pendingCount);
+                            submitted.push(retData[i].completedCount);
+                        }
+                    }
+                    var updatedOption = {
+                        xAxis: {
+                            data: names
+                        },
+                        series: [{
+                            data: Xnames
+                        }]
+                    };
+
+                    // 使用新的数据更新图表
+                    myChart.setOption(updatedOption);
+                    $("#id").val(id);
+                    queryUserList();
+                },
+                error : function(errorMsg) {
+                    //请求失败时执行该函数
+                    alert("图表请求数据失败!");
+                    myChart.hideLoading();
+                }
+            })
+        }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#report-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+    }
+        $.ajax({
+            type : "POST",
+            async : true,            //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
+            url : prefix + "/listReport",    //请求发送到TestServlet处
+            data : {},
+            dataType : "json",        //返回数据形式为json
+            success : function(result) {
+                debugger
+                //请求成功时执行该函数内容,result即为服务器返回的json对象
+
+                if (result.data.length>0) {
+                    retData=result.data;
+                    for(var i=0;i<retData.length;i++){
+                        names.push(retData[i].chain);    //挨个取出类别并填入类别数组
+                        Xnames.push(retData[i].orderCount);
+                        unsubmitted.push(retData[i].pendingCount);
+                        submitted.push(retData[i].completedCount);
+                    }
+                    myChart.setOption(option);
+                }
+
+            },
+            error : function(errorMsg) {
+                //请求失败时执行该函数
+                alert("图表请求数据失败!");
+                myChart.hideLoading();
+            }
+        })
+</script>
+<style>
+    .ant-btn-primary {
+        color: #fff;
+        background-color: #1890ff;
+        border-color: #1890ff;
+        text-shadow: 0 -1px 0 rgb(0 0 0 / 12%);
+        box-shadow: 0 2px 0 rgb(0 0 0 / 5%);
+    }
+
+    .ant-radio-button-wrapper {
+        position: relative;
+        display: inline-block;
+        height: 32px;
+        margin: 0;
+        padding: 0 15px;
+        color: rgba(0,0,0,.65);
+        line-height: 30px;
+        background: #fff;
+        border: 1px solid #d9d9d9;
+        border-top-width: 1.02px;
+        border-left: 0;
+        cursor: pointer;
+        transition: color .3s,background .3s,border-color .3s;
+    }
+    .ant-radio-button-wrapper2 {
+        text-align: right;
+        position: relative;
+        display: inline-block;
+        height: 32px;
+        margin: 0;
+        padding: 0 15px;
+        color: rgba(0,0,0,.65);
+        line-height: 30px;
+        background: #fff;
+        border: 1px solid #d9d9d9;
+        border-top-width: 1.02px;
+        border-left: 0;
+        cursor: pointer;
+        transition: color .3s,background .3s,border-color .3s;
+    }
+    .ant-card-head {
+        min-height: 48px;
+        margin-bottom: -1px;
+        padding: 0 24px;
+        color: rgba(0,0,0,.85);
+        font-weight: 500;
+        font-size: 16px;
+        background: transparent;
+        border-bottom: 1px solid #e8e8e8;
+        border-radius: 2px 2px 0 0;
+        zoom: 1;
+    }
+    .ant-card-head-wrapper {
+        display: flex;
+        align-items: center;
+    }
+    .ant-card-head-title {
+        display: inline-block;
+        flex: 1;
+        padding: 16px 0;
+        overflow: hidden;
+        white-space: nowrap;
+        text-overflow: ellipsis;
+    }
+    .index_title-2CoZR {
+        width: 100%;
+        justify-content: space-between;
+        padding-left: 14px;
+        border-left: 4px solid #e8514b;
+    }
+    .ChartAndTable_chart-and-table-3ib6R{
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+    }
+    .ant-radio-group {
+        box-sizing: border-box;
+        margin: 0;
+        padding: 0;
+        color: rgba(0,0,0,.65);
+        font-size: 14px;
+        font-variant: tabular-nums;
+        line-height: 1.5;
+        list-style: none;
+        font-feature-settings: "tnum";
+        display: inline-block;
+    }
+    .ant-radio-button-wrapper>.ant-radio-button {
+        width: 0;
+        height: 0;
+        margin-left: 0;
+    }
+
+
+
+</style>
+</body>
+
+</html>

+ 369 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationAdd.html

@@ -0,0 +1,369 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('门店进销存月报表新增')" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-role-add">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-3 control-label">序号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="sequenceNumber" id="sequenceNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">期间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="period" id="period" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productCode" id="productCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productName" id="productName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">规格:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="specification" id="specification" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">单位:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="unit" id="unit" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产企业:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="manufacturer" id="manufacturer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">剂型:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="dosageForm" id="dosageForm" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="batchNumber" id="batchNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批次:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="batch" id="batch" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">期初库存数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="initialStockQuantity" id="initialStockQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">期初库存成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="initialStockCost" id="initialStockCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">大仓配送数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="warehouseDeliveryQuantity" id="warehouseDeliveryQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">大仓配送成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="warehouseDeliveryCost" id="warehouseDeliveryCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">调拨调入配送数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="transferInQuantity" id="transferInQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">调拨调入配送成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="transferInCost" id="transferInCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">店采收货数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeReceiptQuantity" id="storeReceiptQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">店采收货成本金额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeReceiptCost" id="storeReceiptCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">店采退货数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeReturnQuantity" id="storeReturnQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">店采退货金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeReturnAmount" id="storeReturnAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">调拨调出数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="transferOutQuantity" id="transferOutQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">调拨调出成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="transferOutCost" id="transferOutCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">门店退仓数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeReturnWarehouseQuantity" id="storeReturnWarehouseQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">门店退仓成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeReturnWarehouseCost" id="storeReturnWarehouseCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">线下销售数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="offlineSalesQuantity" id="offlineSalesQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">线下销售成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="offlineSalesCost" id="offlineSalesCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">线下销售退货数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="offlineSalesReturnQuantity" id="offlineSalesReturnQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">线下销售退货金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="offlineSalesReturnAmount" id="offlineSalesReturnAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">线上销售数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="onlineSalesQuantity" id="onlineSalesQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">线上销售成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="onlineSalesCost" id="onlineSalesCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">线上销售退货数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="onlineSalesReturnQuantity" id="onlineSalesReturnQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">线上销售退货金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="onlineSalesReturnAmount" id="onlineSalesReturnAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">报损数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lossQuantity" id="lossQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">报损成本金额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lossCost" id="lossCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">报溢数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="gainQuantity" id="gainQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">报溢成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="gainCost" id="gainCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">期末库存数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="finalStockQuantity" id="finalStockQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">期末库存成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="finalStockCost" id="finalStockCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">期初导入库存数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="initialImportQuantity" id="initialImportQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">期初导入库存成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="initialImportCost" id="initialImportCost" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: ztree-js" />
+<script type="text/javascript">
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            add();
+        }
+    }
+
+    function add() {
+           var sequenceNumber = $("input[name='sequenceNumber']").val();
+           var period = $("input[name='period']").val();
+           var productCode = $("input[name='productCode']").val();
+           var productName = $("input[name='productName']").val();
+           var specification = $("input[name='specification']").val();
+           var unit = $("input[name='unit']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var dosageForm = $("input[name='dosageForm']").val();
+           var batchNumber = $("input[name='batchNumber']").val();
+           var batch = $("input[name='batch']").val();
+           var initialStockQuantity = $("input[name='initialStockQuantity']").val();
+           var initialStockCost = $("input[name='initialStockCost']").val();
+           var warehouseDeliveryQuantity = $("input[name='warehouseDeliveryQuantity']").val();
+           var warehouseDeliveryCost = $("input[name='warehouseDeliveryCost']").val();
+           var transferInQuantity = $("input[name='transferInQuantity']").val();
+           var transferInCost = $("input[name='transferInCost']").val();
+           var storeReceiptQuantity = $("input[name='storeReceiptQuantity']").val();
+           var storeReceiptCost = $("input[name='storeReceiptCost']").val();
+           var storeReturnQuantity = $("input[name='storeReturnQuantity']").val();
+           var storeReturnAmount = $("input[name='storeReturnAmount']").val();
+           var transferOutQuantity = $("input[name='transferOutQuantity']").val();
+           var transferOutCost = $("input[name='transferOutCost']").val();
+           var storeReturnWarehouseQuantity = $("input[name='storeReturnWarehouseQuantity']").val();
+           var storeReturnWarehouseCost = $("input[name='storeReturnWarehouseCost']").val();
+           var offlineSalesQuantity = $("input[name='offlineSalesQuantity']").val();
+           var offlineSalesCost = $("input[name='offlineSalesCost']").val();
+           var offlineSalesReturnQuantity = $("input[name='offlineSalesReturnQuantity']").val();
+           var offlineSalesReturnAmount = $("input[name='offlineSalesReturnAmount']").val();
+           var onlineSalesQuantity = $("input[name='onlineSalesQuantity']").val();
+           var onlineSalesCost = $("input[name='onlineSalesCost']").val();
+           var onlineSalesReturnQuantity = $("input[name='onlineSalesReturnQuantity']").val();
+           var onlineSalesReturnAmount = $("input[name='onlineSalesReturnAmount']").val();
+           var lossQuantity = $("input[name='lossQuantity']").val();
+           var lossCost = $("input[name='lossCost']").val();
+           var gainQuantity = $("input[name='gainQuantity']").val();
+           var gainCost = $("input[name='gainCost']").val();
+           var finalStockQuantity = $("input[name='finalStockQuantity']").val();
+           var finalStockCost = $("input[name='finalStockCost']").val();
+           var initialImportQuantity = $("input[name='initialImportQuantity']").val();
+           var initialImportCost = $("input[name='initialImportCost']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbinventoryvariation/sKcBbInventoryvariationAdd",
+            data : {
+                "sequenceNumber": sequenceNumber,
+                "period": period,
+                "productCode": productCode,
+                "productName": productName,
+                "specification": specification,
+                "unit": unit,
+                "manufacturer": manufacturer,
+                "dosageForm": dosageForm,
+                "batchNumber": batchNumber,
+                "batch": batch,
+                "initialStockQuantity": initialStockQuantity,
+                "initialStockCost": initialStockCost,
+                "warehouseDeliveryQuantity": warehouseDeliveryQuantity,
+                "warehouseDeliveryCost": warehouseDeliveryCost,
+                "transferInQuantity": transferInQuantity,
+                "transferInCost": transferInCost,
+                "storeReceiptQuantity": storeReceiptQuantity,
+                "storeReceiptCost": storeReceiptCost,
+                "storeReturnQuantity": storeReturnQuantity,
+                "storeReturnAmount": storeReturnAmount,
+                "transferOutQuantity": transferOutQuantity,
+                "transferOutCost": transferOutCost,
+                "storeReturnWarehouseQuantity": storeReturnWarehouseQuantity,
+                "storeReturnWarehouseCost": storeReturnWarehouseCost,
+                "offlineSalesQuantity": offlineSalesQuantity,
+                "offlineSalesCost": offlineSalesCost,
+                "offlineSalesReturnQuantity": offlineSalesReturnQuantity,
+                "offlineSalesReturnAmount": offlineSalesReturnAmount,
+                "onlineSalesQuantity": onlineSalesQuantity,
+                "onlineSalesCost": onlineSalesCost,
+                "onlineSalesReturnQuantity": onlineSalesReturnQuantity,
+                "onlineSalesReturnAmount": onlineSalesReturnAmount,
+                "lossQuantity": lossQuantity,
+                "lossCost": lossCost,
+                "gainQuantity": gainQuantity,
+                "gainCost": gainCost,
+                "finalStockQuantity": finalStockQuantity,
+                "finalStockCost": finalStockCost,
+                "initialImportQuantity": initialImportQuantity,
+                "initialImportCost": initialImportCost,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 300 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationEdit.html

@@ -0,0 +1,300 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('门店进销存月报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbInventoryvariation-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">序号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="sequenceNumber" placeholder="序号" th:value="${sequenceNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="period" placeholder="期间" th:value="${period}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产企业:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产企业" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">剂型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dosageForm" placeholder="剂型" th:value="${dosageForm}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批次:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batch" placeholder="批次" th:value="${batch}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期初库存数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="initialStockQuantity" placeholder="期初库存数量" th:value="${initialStockQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期初库存成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="initialStockCost" placeholder="期初库存成本金额/元" th:value="${initialStockCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">大仓配送数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="warehouseDeliveryQuantity" placeholder="大仓配送数量" th:value="${warehouseDeliveryQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">大仓配送成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="warehouseDeliveryCost" placeholder="大仓配送成本金额/元" th:value="${warehouseDeliveryCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">调拨调入配送数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="transferInQuantity" placeholder="调拨调入配送数量" th:value="${transferInQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">调拨调入配送成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="transferInCost" placeholder="调拨调入配送成本金额/元" th:value="${transferInCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店采收货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReceiptQuantity" placeholder="店采收货数量" th:value="${storeReceiptQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店采收货成本金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReceiptCost" placeholder="店采收货成本金额" th:value="${storeReceiptCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店采退货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReturnQuantity" placeholder="店采退货数量" th:value="${storeReturnQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店采退货金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReturnAmount" placeholder="店采退货金额/元" th:value="${storeReturnAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">调拨调出数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="transferOutQuantity" placeholder="调拨调出数量" th:value="${transferOutQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">调拨调出成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="transferOutCost" placeholder="调拨调出成本金额/元" th:value="${transferOutCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店退仓数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReturnWarehouseQuantity" placeholder="门店退仓数量" th:value="${storeReturnWarehouseQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店退仓成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReturnWarehouseCost" placeholder="门店退仓成本金额/元" th:value="${storeReturnWarehouseCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线下销售数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="offlineSalesQuantity" placeholder="线下销售数量" th:value="${offlineSalesQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线下销售成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="offlineSalesCost" placeholder="线下销售成本金额/元" th:value="${offlineSalesCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线下销售退货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="offlineSalesReturnQuantity" placeholder="线下销售退货数量" th:value="${offlineSalesReturnQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线下销售退货金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="offlineSalesReturnAmount" placeholder="线下销售退货金额/元" th:value="${offlineSalesReturnAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线上销售数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="onlineSalesQuantity" placeholder="线上销售数量" th:value="${onlineSalesQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线上销售成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="onlineSalesCost" placeholder="线上销售成本金额/元" th:value="${onlineSalesCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线上销售退货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="onlineSalesReturnQuantity" placeholder="线上销售退货数量" th:value="${onlineSalesReturnQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线上销售退货金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="onlineSalesReturnAmount" placeholder="线上销售退货金额/元" th:value="${onlineSalesReturnAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报损数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lossQuantity" placeholder="报损数量" th:value="${lossQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报损成本金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lossCost" placeholder="报损成本金额" th:value="${lossCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报溢数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="gainQuantity" placeholder="报溢数量" th:value="${gainQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报溢成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="gainCost" placeholder="报溢成本金额/元" th:value="${gainCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期末库存数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="finalStockQuantity" placeholder="期末库存数量" th:value="${finalStockQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期末库存成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="finalStockCost" placeholder="期末库存成本金额/元" th:value="${finalStockCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期初导入库存数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="initialImportQuantity" placeholder="期初导入库存数量" th:value="${initialImportQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期初导入库存成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="initialImportCost" placeholder="期初导入库存成本金额/元" th:value="${initialImportCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <!--<button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>-->
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function edit() {
+        var data = $("#form-SKcBbInventoryvariation-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbinventoryvariation/sKcBbInventoryvariationEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 353 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationList.html

@@ -0,0 +1,353 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <meta charset="UTF-8">
+    <meta name="format-detection" content="telephone=no">
+    <th:block th:include="include :: header('门店进销存月报表')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<style>
+    /* 设置 ul 的基本样式 */
+    ul {
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+    }
+    ul-list ul{
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+    }
+    ul-list ul li{
+        /*padding: 10px;*/ /* 内边距 */
+        text-align: left; /* 文本居中 */
+    }
+
+    /* 设置 li 的基本样式 */
+    li {
+        /*background-color: lightblue; *//* 背景颜色 */
+        /*padding: 1px; !* 内边距 *!*/
+        text-align: right; /* 文本居中 */
+    }
+</style>
+
+<body class="gray-bg">
+<div class="ui-layout-center">
+    <div class="container-div">
+        <div class="row">
+            <div class="col-sm-12 search-collapse" >
+                <form id="SKcBbInventoryvariation-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                序号:<input type="text" class="styled-input" name="sequenceNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                期间:<input type="text" class="styled-input" name="period" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                规格:<input type="text" class="styled-input" name="specification" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单位:<input type="text" class="styled-input" name="unit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产企业:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                剂型:<input type="text" class="styled-input" name="dosageForm" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批号:<input type="text" class="styled-input" name="batchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批次:<input type="text" class="styled-input" name="batch" autocomplete="off"/>
+                            </li>
+                            <li>
+                                期初库存数量:<input type="text" class="styled-input" name="initialStockQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                期初库存成本金额/元:<input type="text" class="styled-input" name="initialStockCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                大仓配送数量:<input type="text" class="styled-input" name="warehouseDeliveryQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                大仓配送成本金额/元:<input type="text" class="styled-input" name="warehouseDeliveryCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                调拨调入配送数量:<input type="text" class="styled-input" name="transferInQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                调拨调入配送成本金额/元:<input type="text" class="styled-input" name="transferInCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                店采收货数量:<input type="text" class="styled-input" name="storeReceiptQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                店采收货成本金额:<input type="text" class="styled-input" name="storeReceiptCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                店采退货数量:<input type="text" class="styled-input" name="storeReturnQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                店采退货金额/元:<input type="text" class="styled-input" name="storeReturnAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                调拨调出数量:<input type="text" class="styled-input" name="transferOutQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                调拨调出成本金额/元:<input type="text" class="styled-input" name="transferOutCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店退仓数量:<input type="text" class="styled-input" name="storeReturnWarehouseQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店退仓成本金额/元:<input type="text" class="styled-input" name="storeReturnWarehouseCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                线下销售数量:<input type="text" class="styled-input" name="offlineSalesQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                线下销售成本金额/元:<input type="text" class="styled-input" name="offlineSalesCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                线下销售退货数量:<input type="text" class="styled-input" name="offlineSalesReturnQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                线下销售退货金额/元:<input type="text" class="styled-input" name="offlineSalesReturnAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                线上销售数量:<input type="text" class="styled-input" name="onlineSalesQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                线上销售成本金额/元:<input type="text" class="styled-input" name="onlineSalesCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                线上销售退货数量:<input type="text" class="styled-input" name="onlineSalesReturnQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                线上销售退货金额/元:<input type="text" class="styled-input" name="onlineSalesReturnAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                报损数量:<input type="text" class="styled-input" name="lossQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                报损成本金额:<input type="text" class="styled-input" name="lossCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                报溢数量:<input type="text" class="styled-input" name="gainQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                报溢成本金额/元:<input type="text" class="styled-input" name="gainCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                期末库存数量:<input type="text" class="styled-input" name="finalStockQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                期末库存成本金额/元:<input type="text" class="styled-input" name="finalStockCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                期初导入库存数量:<input type="text" class="styled-input" name="initialImportQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                期初导入库存成本金额/元:<input type="text" class="styled-input" name="initialImportCost" autocomplete="off"/>
+                            </li>
+                            <li style="text-align: center">
+                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                                <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+                            </li>
+                        </ul>
+                    </div>
+
+                </form>
+            </div>
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:user:add">
+                    <i class="fa fa-plus"></i> 新增
+                </a>
+                 <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:user:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+                    <i class="fa fa-upload"></i> 导入
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+    var prefix = ctx + "kc/skcbbinventoryvariation";
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryArchivesList();
+    });
+
+    function queryArchivesList() {
+        var options = {
+            url: prefix + "/sKcBbInventoryvariationList",
+            viewUrl: prefix + "/sKcBbInventoryvariationView/{id}",
+            createUrl: prefix + "/sKcBbInventoryvariationAdd",
+            updateUrl: prefix + "/sKcBbInventoryvariationEdit/{id}",
+            removeUrl: prefix + "/sKcBbInventoryvariationRemove",
+            /*exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",*/
+            sortName: "id",
+            sortOrder: "asc",
+            modalName: "门店进销存月报表",
+            fitColumns: true,
+            striped: true,
+            autoRowHeight: true,
+            rowNumbers: true,
+            showFooter:true,  //是否显示表格底部区域。
+            clickToSelect: true, //是否启用点击行时选中整行的功能。
+            singleSelect: true, //是否仅允许选择一行
+            columns: [{
+                checkbox: true
+            },
+                { field: 'id', title: '主键', align: 'center' ,visible:false},
+                    { field: 'sequenceNumber', title: '序号', align: 'center' },
+                    { field: 'period', title: '期间', align: 'center' },
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'unit', title: '单位', align: 'center' },
+                    { field: 'manufacturer', title: '生产企业', align: 'center' },
+                    { field: 'dosageForm', title: '剂型', align: 'center' },
+                    { field: 'batchNumber', title: '批号', align: 'center' },
+                    { field: 'batch', title: '批次', align: 'center' },
+                    { field: 'initialStockQuantity', title: '期初库存数量', align: 'center' },
+                    { field: 'initialStockCost', title: '期初库存成本金额/元', align: 'center' },
+                    { field: 'warehouseDeliveryQuantity', title: '大仓配送数量', align: 'center' },
+                    { field: 'warehouseDeliveryCost', title: '大仓配送成本金额/元', align: 'center' },
+                    { field: 'transferInQuantity', title: '调拨调入配送数量', align: 'center' },
+                    { field: 'transferInCost', title: '调拨调入配送成本金额/元', align: 'center' },
+                    { field: 'storeReceiptQuantity', title: '店采收货数量', align: 'center' },
+                    { field: 'storeReceiptCost', title: '店采收货成本金额', align: 'center' },
+                    { field: 'storeReturnQuantity', title: '店采退货数量', align: 'center' },
+                    { field: 'storeReturnAmount', title: '店采退货金额/元', align: 'center' },
+                    { field: 'transferOutQuantity', title: '调拨调出数量', align: 'center' },
+                    { field: 'transferOutCost', title: '调拨调出成本金额/元', align: 'center' },
+                    { field: 'storeReturnWarehouseQuantity', title: '门店退仓数量', align: 'center' },
+                    { field: 'storeReturnWarehouseCost', title: '门店退仓成本金额/元', align: 'center' },
+                    { field: 'offlineSalesQuantity', title: '线下销售数量', align: 'center' },
+                    { field: 'offlineSalesCost', title: '线下销售成本金额/元', align: 'center' },
+                    { field: 'offlineSalesReturnQuantity', title: '线下销售退货数量', align: 'center' },
+                    { field: 'offlineSalesReturnAmount', title: '线下销售退货金额/元', align: 'center' },
+                    { field: 'onlineSalesQuantity', title: '线上销售数量', align: 'center' },
+                    { field: 'onlineSalesCost', title: '线上销售成本金额/元', align: 'center' },
+                    { field: 'onlineSalesReturnQuantity', title: '线上销售退货数量', align: 'center' },
+                    { field: 'onlineSalesReturnAmount', title: '线上销售退货金额/元', align: 'center' },
+                    { field: 'lossQuantity', title: '报损数量', align: 'center' },
+                    { field: 'lossCost', title: '报损成本金额', align: 'center' },
+                    { field: 'gainQuantity', title: '报溢数量', align: 'center' },
+                    { field: 'gainCost', title: '报溢成本金额/元', align: 'center' },
+                    { field: 'finalStockQuantity', title: '期末库存数量', align: 'center' },
+                    { field: 'finalStockCost', title: '期末库存成本金额/元', align: 'center' },
+                    { field: 'initialImportQuantity', title: '期初导入库存数量', align: 'center' },
+                    { field: 'initialImportCost', title: '期初导入库存成本金额/元', align: 'center' },
+
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        if (row.serviceId != 1) {
+                            var actions = [];
+                            actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="edit_page(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                            actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+                            var more = [];
+                            /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+                            more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+                            actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+                            return actions.join('');
+                        } else {
+                            return "";
+                        }
+                    }
+                }]
+        };
+        $.table.init(options);
+    }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#SKcBbInventoryvariation-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbInventoryvariation-form');
+        resetButton.addEventListener('click', function() {
+            _refresh();
+        });
+    }
+    function edit_page(id){
+        table.set();
+        var url = "/404.html";
+        if ($.common.isNotEmpty(id)) {
+            url = table.options.updateUrl.replace("{id}", id);
+        } else {
+            var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
+            if (id.length == 0) {
+                $.modal.alertWarning("请至少选择一条记录");
+                return;
+            }
+            url = table.options.updateUrl.replace("{id}", id);
+        }
+        $.modal.openTab("修改" + table.options.modalName, url + "?status=1" );
+    }
+
+    /* 用户状态显示 */
+    function statusTools(row) {
+        if (row.status == 1) {
+            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+        } else {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+        }
+    }
+</script>
+</body>
+
+</html>

+ 291 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationPageEdit.html

@@ -0,0 +1,291 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('门店进销存月报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbInventoryvariation-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">序号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="sequenceNumber" placeholder="序号" th:value="${sequenceNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="period" placeholder="期间" th:value="${period}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产企业:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产企业" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">剂型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dosageForm" placeholder="剂型" th:value="${dosageForm}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批次:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batch" placeholder="批次" th:value="${batch}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期初库存数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="initialStockQuantity" placeholder="期初库存数量" th:value="${initialStockQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期初库存成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="initialStockCost" placeholder="期初库存成本金额/元" th:value="${initialStockCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">大仓配送数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="warehouseDeliveryQuantity" placeholder="大仓配送数量" th:value="${warehouseDeliveryQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">大仓配送成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="warehouseDeliveryCost" placeholder="大仓配送成本金额/元" th:value="${warehouseDeliveryCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">调拨调入配送数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="transferInQuantity" placeholder="调拨调入配送数量" th:value="${transferInQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">调拨调入配送成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="transferInCost" placeholder="调拨调入配送成本金额/元" th:value="${transferInCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店采收货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReceiptQuantity" placeholder="店采收货数量" th:value="${storeReceiptQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店采收货成本金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReceiptCost" placeholder="店采收货成本金额" th:value="${storeReceiptCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店采退货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReturnQuantity" placeholder="店采退货数量" th:value="${storeReturnQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店采退货金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReturnAmount" placeholder="店采退货金额/元" th:value="${storeReturnAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">调拨调出数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="transferOutQuantity" placeholder="调拨调出数量" th:value="${transferOutQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">调拨调出成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="transferOutCost" placeholder="调拨调出成本金额/元" th:value="${transferOutCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店退仓数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReturnWarehouseQuantity" placeholder="门店退仓数量" th:value="${storeReturnWarehouseQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店退仓成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeReturnWarehouseCost" placeholder="门店退仓成本金额/元" th:value="${storeReturnWarehouseCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线下销售数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="offlineSalesQuantity" placeholder="线下销售数量" th:value="${offlineSalesQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线下销售成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="offlineSalesCost" placeholder="线下销售成本金额/元" th:value="${offlineSalesCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线下销售退货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="offlineSalesReturnQuantity" placeholder="线下销售退货数量" th:value="${offlineSalesReturnQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线下销售退货金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="offlineSalesReturnAmount" placeholder="线下销售退货金额/元" th:value="${offlineSalesReturnAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线上销售数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="onlineSalesQuantity" placeholder="线上销售数量" th:value="${onlineSalesQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线上销售成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="onlineSalesCost" placeholder="线上销售成本金额/元" th:value="${onlineSalesCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线上销售退货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="onlineSalesReturnQuantity" placeholder="线上销售退货数量" th:value="${onlineSalesReturnQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">线上销售退货金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="onlineSalesReturnAmount" placeholder="线上销售退货金额/元" th:value="${onlineSalesReturnAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报损数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lossQuantity" placeholder="报损数量" th:value="${lossQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报损成本金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lossCost" placeholder="报损成本金额" th:value="${lossCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报溢数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="gainQuantity" placeholder="报溢数量" th:value="${gainQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报溢成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="gainCost" placeholder="报溢成本金额/元" th:value="${gainCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期末库存数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="finalStockQuantity" placeholder="期末库存数量" th:value="${finalStockQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期末库存成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="finalStockCost" placeholder="期末库存成本金额/元" th:value="${finalStockCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期初导入库存数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="initialImportQuantity" placeholder="期初导入库存数量" th:value="${initialImportQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">期初导入库存成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="initialImportCost" placeholder="期初导入库存成本金额/元" th:value="${initialImportCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "kc/skcbbinventoryvariation";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbInventoryvariation-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/sKcBbInventoryvariationEdit", data);
+        }
+    }
+</script>

+ 233 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesAdd.html

@@ -0,0 +1,233 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('进销存商品明细报表新增')" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-role-add">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-3 control-label">门店编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeCode" id="storeCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">门店名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeName" id="storeName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productCode" id="productCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productName" id="productName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">剂型:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="dosageForm" id="dosageForm" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">规格:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="specification" id="specification" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">单位:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="unit" id="unit" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产厂家:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="manufacturer" id="manufacturer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="batchNumber" id="batchNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批次:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="batch" id="batch" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">库区:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storageArea" id="storageArea" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">是否拆零商品:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="isDispensed" id="isDispensed" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">拆零因子:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="dispenseFactor" id="dispenseFactor" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">源单据号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="sourceDocumentNumber" id="sourceDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">单据编号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="documentNumber" id="documentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">单据类型:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="documentType" id="documentType" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">库存改变数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inventoryChangeQuantity" id="inventoryChangeQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">变动前库存:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inventoryBeforeChange" id="inventoryBeforeChange" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">成本单价:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="costUnitPrice" id="costUnitPrice" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">成本金额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="costAmount" id="costAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">瞬时结余库存:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="instantRemainingInventory" id="instantRemainingInventory" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">单据时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="documentTime" id="documentTime" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">库存变动时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inventoryChangeTime" id="inventoryChangeTime" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: ztree-js" />
+<script type="text/javascript">
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            add();
+        }
+    }
+
+    function add() {
+           var storeCode = $("input[name='storeCode']").val();
+           var storeName = $("input[name='storeName']").val();
+           var productCode = $("input[name='productCode']").val();
+           var productName = $("input[name='productName']").val();
+           var dosageForm = $("input[name='dosageForm']").val();
+           var specification = $("input[name='specification']").val();
+           var unit = $("input[name='unit']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var batchNumber = $("input[name='batchNumber']").val();
+           var batch = $("input[name='batch']").val();
+           var storageArea = $("input[name='storageArea']").val();
+           var isDispensed = $("input[name='isDispensed']").val();
+           var dispenseFactor = $("input[name='dispenseFactor']").val();
+           var sourceDocumentNumber = $("input[name='sourceDocumentNumber']").val();
+           var documentNumber = $("input[name='documentNumber']").val();
+           var documentType = $("input[name='documentType']").val();
+           var inventoryChangeQuantity = $("input[name='inventoryChangeQuantity']").val();
+           var inventoryBeforeChange = $("input[name='inventoryBeforeChange']").val();
+           var costUnitPrice = $("input[name='costUnitPrice']").val();
+           var costAmount = $("input[name='costAmount']").val();
+           var instantRemainingInventory = $("input[name='instantRemainingInventory']").val();
+           var documentTime = $("input[name='documentTime']").val();
+           var inventoryChangeTime = $("input[name='inventoryChangeTime']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbjxcspmxstoreinventorychanges/sKcBbJxcspmxStoreinventorychangesAdd",
+            data : {
+                "storeCode": storeCode,
+                "storeName": storeName,
+                "productCode": productCode,
+                "productName": productName,
+                "dosageForm": dosageForm,
+                "specification": specification,
+                "unit": unit,
+                "manufacturer": manufacturer,
+                "batchNumber": batchNumber,
+                "batch": batch,
+                "storageArea": storageArea,
+                "isDispensed": isDispensed,
+                "dispenseFactor": dispenseFactor,
+                "sourceDocumentNumber": sourceDocumentNumber,
+                "documentNumber": documentNumber,
+                "documentType": documentType,
+                "inventoryChangeQuantity": inventoryChangeQuantity,
+                "inventoryBeforeChange": inventoryBeforeChange,
+                "costUnitPrice": costUnitPrice,
+                "costAmount": costAmount,
+                "instantRemainingInventory": instantRemainingInventory,
+                "documentTime": documentTime,
+                "inventoryChangeTime": inventoryChangeTime,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 198 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesEdit.html

@@ -0,0 +1,198 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('进销存商品明细报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbJxcspmxStoreinventorychanges-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">门店编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeCode" placeholder="门店编码" th:value="${storeCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeName" placeholder="门店名称" th:value="${storeName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">剂型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dosageForm" placeholder="剂型" th:value="${dosageForm}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批次:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batch" placeholder="批次" th:value="${batch}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">库区:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storageArea" placeholder="库区" th:value="${storageArea}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">是否拆零商品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="isDispensed" placeholder="是否拆零商品" th:value="${isDispensed}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">拆零因子:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dispenseFactor" placeholder="拆零因子" th:value="${dispenseFactor}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">源单据号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="sourceDocumentNumber" placeholder="源单据号" th:value="${sourceDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单据编号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="documentNumber" placeholder="单据编号" th:value="${documentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单据类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="documentType" placeholder="单据类型" th:value="${documentType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">库存改变数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inventoryChangeQuantity" placeholder="库存改变数量" th:value="${inventoryChangeQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">变动前库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inventoryBeforeChange" placeholder="变动前库存" th:value="${inventoryBeforeChange}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">成本单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="costUnitPrice" placeholder="成本单价" th:value="${costUnitPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">成本金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="costAmount" placeholder="成本金额" th:value="${costAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">瞬时结余库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="instantRemainingInventory" placeholder="瞬时结余库存" th:value="${instantRemainingInventory}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单据时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="documentTime" placeholder="单据时间" th:value="${documentTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">库存变动时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inventoryChangeTime" placeholder="库存变动时间" th:value="${inventoryChangeTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <!--<button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>-->
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function edit() {
+        var data = $("#form-SKcBbJxcspmxStoreinventorychanges-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbjxcspmxstoreinventorychanges/sKcBbJxcspmxStoreinventorychangesEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 285 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesList.html

@@ -0,0 +1,285 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <meta charset="UTF-8">
+    <meta name="format-detection" content="telephone=no">
+    <th:block th:include="include :: header('进销存商品明细报表')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<style>
+    /* 设置 ul 的基本样式 */
+    ul {
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+    }
+    ul-list ul{
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+    }
+    ul-list ul li{
+        /*padding: 10px;*/ /* 内边距 */
+        text-align: left; /* 文本居中 */
+    }
+
+    /* 设置 li 的基本样式 */
+    li {
+        /*background-color: lightblue; *//* 背景颜色 */
+        /*padding: 1px; !* 内边距 *!*/
+        text-align: right; /* 文本居中 */
+    }
+</style>
+
+<body class="gray-bg">
+<div class="ui-layout-center">
+    <div class="container-div">
+        <div class="row">
+            <div class="col-sm-12 search-collapse" >
+                <form id="SKcBbJxcspmxStoreinventorychanges-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                门店编码:<input type="text" class="styled-input" name="storeCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店名称:<input type="text" class="styled-input" name="storeName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                剂型:<input type="text" class="styled-input" name="dosageForm" autocomplete="off"/>
+                            </li>
+                            <li>
+                                规格:<input type="text" class="styled-input" name="specification" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单位:<input type="text" class="styled-input" name="unit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产厂家:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批号:<input type="text" class="styled-input" name="batchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批次:<input type="text" class="styled-input" name="batch" autocomplete="off"/>
+                            </li>
+                            <li>
+                                库区:<input type="text" class="styled-input" name="storageArea" autocomplete="off"/>
+                            </li>
+                            <li>
+                                是否拆零商品:<input type="text" class="styled-input" name="isDispensed" autocomplete="off"/>
+                            </li>
+                            <li>
+                                拆零因子:<input type="text" class="styled-input" name="dispenseFactor" autocomplete="off"/>
+                            </li>
+                            <li>
+                                源单据号:<input type="text" class="styled-input" name="sourceDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单据编号:<input type="text" class="styled-input" name="documentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单据类型:<input type="text" class="styled-input" name="documentType" autocomplete="off"/>
+                            </li>
+                            <li>
+                                库存改变数量:<input type="text" class="styled-input" name="inventoryChangeQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                变动前库存:<input type="text" class="styled-input" name="inventoryBeforeChange" autocomplete="off"/>
+                            </li>
+                            <li>
+                                成本单价:<input type="text" class="styled-input" name="costUnitPrice" autocomplete="off"/>
+                            </li>
+                            <li>
+                                成本金额:<input type="text" class="styled-input" name="costAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                瞬时结余库存:<input type="text" class="styled-input" name="instantRemainingInventory" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单据时间:<input type="text" class="styled-input" name="documentTime" autocomplete="off"/>
+                            </li>
+                            <li>
+                                库存变动时间:<input type="text" class="styled-input" name="inventoryChangeTime" autocomplete="off"/>
+                            </li>
+                            <li style="text-align: center">
+                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                                <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+                            </li>
+                        </ul>
+                    </div>
+
+                </form>
+            </div>
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:user:add">
+                    <i class="fa fa-plus"></i> 新增
+                </a>
+                 <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:user:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+                    <i class="fa fa-upload"></i> 导入
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+    var prefix = ctx + "kc/skcbbjxcspmxstoreinventorychanges";
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryArchivesList();
+    });
+
+    function queryArchivesList() {
+        var options = {
+            url: prefix + "/sKcBbJxcspmxStoreinventorychangesList",
+            viewUrl: prefix + "/sKcBbJxcspmxStoreinventorychangesView/{id}",
+            createUrl: prefix + "/sKcBbJxcspmxStoreinventorychangesAdd",
+            updateUrl: prefix + "/sKcBbJxcspmxStoreinventorychangesEdit/{id}",
+            removeUrl: prefix + "/sKcBbJxcspmxStoreinventorychangesRemove",
+            /*exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",*/
+            sortName: "id",
+            sortOrder: "asc",
+            modalName: "进销存商品明细报表",
+            fitColumns: true,
+            striped: true,
+            autoRowHeight: true,
+            rowNumbers: true,
+            showFooter:true,  //是否显示表格底部区域。
+            clickToSelect: true, //是否启用点击行时选中整行的功能。
+            singleSelect: true, //是否仅允许选择一行
+            columns: [{
+                checkbox: true
+            },
+                { field: 'id', title: '主键', align: 'center' ,visible:false},
+                    { field: 'storeCode', title: '门店编码', align: 'center' },
+                    { field: 'storeName', title: '门店名称', align: 'center' },
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'dosageForm', title: '剂型', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'unit', title: '单位', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂家', align: 'center' },
+                    { field: 'batchNumber', title: '批号', align: 'center' },
+                    { field: 'batch', title: '批次', align: 'center' },
+                    { field: 'storageArea', title: '库区', align: 'center' },
+                    { field: 'isDispensed', title: '是否拆零商品', align: 'center' },
+                    { field: 'dispenseFactor', title: '拆零因子', align: 'center' },
+                    { field: 'sourceDocumentNumber', title: '源单据号', align: 'center' },
+                    { field: 'documentNumber', title: '单据编号', align: 'center' },
+                    { field: 'documentType', title: '单据类型', align: 'center' },
+                    { field: 'inventoryChangeQuantity', title: '库存改变数量', align: 'center' },
+                    { field: 'inventoryBeforeChange', title: '变动前库存', align: 'center' },
+                    { field: 'costUnitPrice', title: '成本单价', align: 'center' },
+                    { field: 'costAmount', title: '成本金额', align: 'center' },
+                    { field: 'instantRemainingInventory', title: '瞬时结余库存', align: 'center' },
+                    { field: 'documentTime', title: '单据时间', align: 'center' },
+                    { field: 'inventoryChangeTime', title: '库存变动时间', align: 'center' },
+
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        if (row.serviceId != 1) {
+                            var actions = [];
+                            actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="edit_page(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                            actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+                            var more = [];
+                            /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+                            more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+                            actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+                            return actions.join('');
+                        } else {
+                            return "";
+                        }
+                    }
+                }]
+        };
+        $.table.init(options);
+    }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#SKcBbJxcspmxStoreinventorychanges-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbJxcspmxStoreinventorychanges-form');
+        resetButton.addEventListener('click', function() {
+            _refresh();
+        });
+    }
+    function edit_page(id){
+        table.set();
+        var url = "/404.html";
+        if ($.common.isNotEmpty(id)) {
+            url = table.options.updateUrl.replace("{id}", id);
+        } else {
+            var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
+            if (id.length == 0) {
+                $.modal.alertWarning("请至少选择一条记录");
+                return;
+            }
+            url = table.options.updateUrl.replace("{id}", id);
+        }
+        $.modal.openTab("修改" + table.options.modalName, url + "?status=1" );
+    }
+
+    /* 用户状态显示 */
+    function statusTools(row) {
+        if (row.status == 1) {
+            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+        } else {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+        }
+    }
+</script>
+</body>
+
+</html>

+ 189 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesPageEdit.html

@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('进销存商品明细报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbJxcspmxStoreinventorychanges-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">门店编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeCode" placeholder="门店编码" th:value="${storeCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeName" placeholder="门店名称" th:value="${storeName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">剂型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dosageForm" placeholder="剂型" th:value="${dosageForm}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批次:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batch" placeholder="批次" th:value="${batch}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">库区:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storageArea" placeholder="库区" th:value="${storageArea}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">是否拆零商品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="isDispensed" placeholder="是否拆零商品" th:value="${isDispensed}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">拆零因子:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dispenseFactor" placeholder="拆零因子" th:value="${dispenseFactor}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">源单据号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="sourceDocumentNumber" placeholder="源单据号" th:value="${sourceDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单据编号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="documentNumber" placeholder="单据编号" th:value="${documentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单据类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="documentType" placeholder="单据类型" th:value="${documentType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">库存改变数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inventoryChangeQuantity" placeholder="库存改变数量" th:value="${inventoryChangeQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">变动前库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inventoryBeforeChange" placeholder="变动前库存" th:value="${inventoryBeforeChange}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">成本单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="costUnitPrice" placeholder="成本单价" th:value="${costUnitPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">成本金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="costAmount" placeholder="成本金额" th:value="${costAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">瞬时结余库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="instantRemainingInventory" placeholder="瞬时结余库存" th:value="${instantRemainingInventory}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单据时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="documentTime" placeholder="单据时间" th:value="${documentTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">库存变动时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inventoryChangeTime" placeholder="库存变动时间" th:value="${inventoryChangeTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "kc/skcbbjxcspmxstoreinventorychanges";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbJxcspmxStoreinventorychanges-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/sKcBbJxcspmxStoreinventorychangesEdit", data);
+        }
+    }
+</script>

+ 193 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsAdd.html

@@ -0,0 +1,193 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('养护记录报表新增')" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-role-add">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-3 control-label">养护级别:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="maintenanceLevel" id="maintenanceLevel" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productCode" id="productCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productName" id="productName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">养护单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="maintenanceOrderNumber" id="maintenanceOrderNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">规格:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="specification" id="specification" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产厂家:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="manufacturer" id="manufacturer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="batchNumber" id="batchNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productionDate" id="productionDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">有效日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="expiryDate" id="expiryDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">库存数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inventoryQuantity" id="inventoryQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">检查数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inspectionQuantity" id="inspectionQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">合格数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="qualifiedQuantity" id="qualifiedQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">不合格数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="unqualifiedQuantity" id="unqualifiedQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">结论:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="conclusion" id="conclusion" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">处理措施:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="handlingMeasures" id="handlingMeasures" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">检查日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inspectionDate" id="inspectionDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">检查人:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inspector" id="inspector" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">养护人:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="maintainer" id="maintainer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: ztree-js" />
+<script type="text/javascript">
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            add();
+        }
+    }
+
+    function add() {
+           var maintenanceLevel = $("input[name='maintenanceLevel']").val();
+           var productCode = $("input[name='productCode']").val();
+           var productName = $("input[name='productName']").val();
+           var maintenanceOrderNumber = $("input[name='maintenanceOrderNumber']").val();
+           var specification = $("input[name='specification']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var batchNumber = $("input[name='batchNumber']").val();
+           var productionDate = $("input[name='productionDate']").val();
+           var expiryDate = $("input[name='expiryDate']").val();
+           var inventoryQuantity = $("input[name='inventoryQuantity']").val();
+           var inspectionQuantity = $("input[name='inspectionQuantity']").val();
+           var qualifiedQuantity = $("input[name='qualifiedQuantity']").val();
+           var unqualifiedQuantity = $("input[name='unqualifiedQuantity']").val();
+           var conclusion = $("input[name='conclusion']").val();
+           var handlingMeasures = $("input[name='handlingMeasures']").val();
+           var inspectionDate = $("input[name='inspectionDate']").val();
+           var inspector = $("input[name='inspector']").val();
+           var maintainer = $("input[name='maintainer']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbmaintenanceorderitems/sKcBbMaintenanceorderitemsAdd",
+            data : {
+                "maintenanceLevel": maintenanceLevel,
+                "productCode": productCode,
+                "productName": productName,
+                "maintenanceOrderNumber": maintenanceOrderNumber,
+                "specification": specification,
+                "manufacturer": manufacturer,
+                "batchNumber": batchNumber,
+                "productionDate": productionDate,
+                "expiryDate": expiryDate,
+                "inventoryQuantity": inventoryQuantity,
+                "inspectionQuantity": inspectionQuantity,
+                "qualifiedQuantity": qualifiedQuantity,
+                "unqualifiedQuantity": unqualifiedQuantity,
+                "conclusion": conclusion,
+                "handlingMeasures": handlingMeasures,
+                "inspectionDate": inspectionDate,
+                "inspector": inspector,
+                "maintainer": maintainer,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 168 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsEdit.html

@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('养护记录报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbMaintenanceorderitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">养护级别:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="maintenanceLevel" placeholder="养护级别" th:value="${maintenanceLevel}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">养护单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="maintenanceOrderNumber" placeholder="养护单号" th:value="${maintenanceOrderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productionDate" placeholder="生产日期" th:value="${productionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">有效日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expiryDate" placeholder="有效日期" th:value="${expiryDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">库存数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inventoryQuantity" placeholder="库存数量" th:value="${inventoryQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">检查数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspectionQuantity" placeholder="检查数量" th:value="${inspectionQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">合格数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="qualifiedQuantity" placeholder="合格数量" th:value="${qualifiedQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">不合格数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unqualifiedQuantity" placeholder="不合格数量" th:value="${unqualifiedQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">结论:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="conclusion" placeholder="结论" th:value="${conclusion}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">处理措施:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="handlingMeasures" placeholder="处理措施" th:value="${handlingMeasures}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">检查日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspectionDate" placeholder="检查日期" th:value="${inspectionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">检查人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspector" placeholder="检查人" th:value="${inspector}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">养护人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="maintainer" placeholder="养护人" th:value="${maintainer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <!--<button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>-->
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function edit() {
+        var data = $("#form-SKcBbMaintenanceorderitems-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbmaintenanceorderitems/sKcBbMaintenanceorderitemsEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 265 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsList.html

@@ -0,0 +1,265 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <meta charset="UTF-8">
+    <meta name="format-detection" content="telephone=no">
+    <th:block th:include="include :: header('养护记录报表')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<style>
+    /* 设置 ul 的基本样式 */
+    ul {
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+    }
+    ul-list ul{
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+    }
+    ul-list ul li{
+        /*padding: 10px;*/ /* 内边距 */
+        text-align: left; /* 文本居中 */
+    }
+
+    /* 设置 li 的基本样式 */
+    li {
+        /*background-color: lightblue; *//* 背景颜色 */
+        /*padding: 1px; !* 内边距 *!*/
+        text-align: right; /* 文本居中 */
+    }
+</style>
+
+<body class="gray-bg">
+<div class="ui-layout-center">
+    <div class="container-div">
+        <div class="row">
+            <div class="col-sm-12 search-collapse" >
+                <form id="SKcBbMaintenanceorderitems-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                养护级别:<input type="text" class="styled-input" name="maintenanceLevel" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                养护单号:<input type="text" class="styled-input" name="maintenanceOrderNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                规格:<input type="text" class="styled-input" name="specification" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产厂家:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批号:<input type="text" class="styled-input" name="batchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产日期:<input type="text" class="styled-input" name="productionDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                有效日期:<input type="text" class="styled-input" name="expiryDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                库存数量:<input type="text" class="styled-input" name="inventoryQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                检查数量:<input type="text" class="styled-input" name="inspectionQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                合格数量:<input type="text" class="styled-input" name="qualifiedQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                不合格数量:<input type="text" class="styled-input" name="unqualifiedQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                结论:<input type="text" class="styled-input" name="conclusion" autocomplete="off"/>
+                            </li>
+                            <li>
+                                处理措施:<input type="text" class="styled-input" name="handlingMeasures" autocomplete="off"/>
+                            </li>
+                            <li>
+                                检查日期:<input type="text" class="styled-input" name="inspectionDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                检查人:<input type="text" class="styled-input" name="inspector" autocomplete="off"/>
+                            </li>
+                            <li>
+                                养护人:<input type="text" class="styled-input" name="maintainer" autocomplete="off"/>
+                            </li>
+                            <li style="text-align: center">
+                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                                <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+                            </li>
+                        </ul>
+                    </div>
+
+                </form>
+            </div>
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:user:add">
+                    <i class="fa fa-plus"></i> 新增
+                </a>
+                 <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:user:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+                    <i class="fa fa-upload"></i> 导入
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+    var prefix = ctx + "kc/skcbbmaintenanceorderitems";
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryArchivesList();
+    });
+
+    function queryArchivesList() {
+        var options = {
+            url: prefix + "/sKcBbMaintenanceorderitemsList",
+            viewUrl: prefix + "/sKcBbMaintenanceorderitemsView/{id}",
+            createUrl: prefix + "/sKcBbMaintenanceorderitemsAdd",
+            updateUrl: prefix + "/sKcBbMaintenanceorderitemsEdit/{id}",
+            removeUrl: prefix + "/sKcBbMaintenanceorderitemsRemove",
+            /*exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",*/
+            sortName: "id",
+            sortOrder: "asc",
+            modalName: "养护记录报表",
+            fitColumns: true,
+            striped: true,
+            autoRowHeight: true,
+            rowNumbers: true,
+            showFooter:true,  //是否显示表格底部区域。
+            clickToSelect: true, //是否启用点击行时选中整行的功能。
+            singleSelect: true, //是否仅允许选择一行
+            columns: [{
+                checkbox: true
+            },
+                { field: 'id', title: '主键', align: 'center' ,visible:false},
+                    { field: 'maintenanceLevel', title: '养护级别', align: 'center' },
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'maintenanceOrderNumber', title: '养护单号', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂家', align: 'center' },
+                    { field: 'batchNumber', title: '批号', align: 'center' },
+                    { field: 'productionDate', title: '生产日期', align: 'center' },
+                    { field: 'expiryDate', title: '有效日期', align: 'center' },
+                    { field: 'inventoryQuantity', title: '库存数量', align: 'center' },
+                    { field: 'inspectionQuantity', title: '检查数量', align: 'center' },
+                    { field: 'qualifiedQuantity', title: '合格数量', align: 'center' },
+                    { field: 'unqualifiedQuantity', title: '不合格数量', align: 'center' },
+                    { field: 'conclusion', title: '结论', align: 'center' },
+                    { field: 'handlingMeasures', title: '处理措施', align: 'center' },
+                    { field: 'inspectionDate', title: '检查日期', align: 'center' },
+                    { field: 'inspector', title: '检查人', align: 'center' },
+                    { field: 'maintainer', title: '养护人', align: 'center' },
+
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        if (row.serviceId != 1) {
+                            var actions = [];
+                            actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="edit_page(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                            actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+                            var more = [];
+                            /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+                            more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+                            actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+                            return actions.join('');
+                        } else {
+                            return "";
+                        }
+                    }
+                }]
+        };
+        $.table.init(options);
+    }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#SKcBbMaintenanceorderitems-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbMaintenanceorderitems-form');
+        resetButton.addEventListener('click', function() {
+            _refresh();
+        });
+    }
+    function edit_page(id){
+        table.set();
+        var url = "/404.html";
+        if ($.common.isNotEmpty(id)) {
+            url = table.options.updateUrl.replace("{id}", id);
+        } else {
+            var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
+            if (id.length == 0) {
+                $.modal.alertWarning("请至少选择一条记录");
+                return;
+            }
+            url = table.options.updateUrl.replace("{id}", id);
+        }
+        $.modal.openTab("修改" + table.options.modalName, url + "?status=1" );
+    }
+
+    /* 用户状态显示 */
+    function statusTools(row) {
+        if (row.status == 1) {
+            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+        } else {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+        }
+    }
+</script>
+</body>
+
+</html>

+ 159 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsPageEdit.html

@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('养护记录报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbMaintenanceorderitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">养护级别:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="maintenanceLevel" placeholder="养护级别" th:value="${maintenanceLevel}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">养护单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="maintenanceOrderNumber" placeholder="养护单号" th:value="${maintenanceOrderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productionDate" placeholder="生产日期" th:value="${productionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">有效日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expiryDate" placeholder="有效日期" th:value="${expiryDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">库存数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inventoryQuantity" placeholder="库存数量" th:value="${inventoryQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">检查数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspectionQuantity" placeholder="检查数量" th:value="${inspectionQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">合格数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="qualifiedQuantity" placeholder="合格数量" th:value="${qualifiedQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">不合格数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unqualifiedQuantity" placeholder="不合格数量" th:value="${unqualifiedQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">结论:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="conclusion" placeholder="结论" th:value="${conclusion}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">处理措施:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="handlingMeasures" placeholder="处理措施" th:value="${handlingMeasures}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">检查日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspectionDate" placeholder="检查日期" th:value="${inspectionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">检查人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspector" placeholder="检查人" th:value="${inspector}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">养护人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="maintainer" placeholder="养护人" th:value="${maintainer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "kc/skcbbmaintenanceorderitems";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbMaintenanceorderitems-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/sKcBbMaintenanceorderitemsEdit", data);
+        }
+    }
+</script>

+ 241 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionAdd.html

@@ -0,0 +1,241 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('验收入库报表新增')" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-role-add">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-3 control-label">商品编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productCode" id="productCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">门店简称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeShortName" id="storeShortName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productName" id="productName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">验收单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inspectionDocumentNumber" id="inspectionDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">剂型:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="dosageForm" id="dosageForm" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">规格:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="specification" id="specification" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">单位:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="unit" id="unit" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">条形码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="barcode" id="barcode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">经营范围:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="businessScope" id="businessScope" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批准文号/注册证号/生产许可证号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="approvalNumber" id="approvalNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="batchNumber" id="batchNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批次:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="batch" id="batch" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">验收日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inspectionDate" id="inspectionDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productionDate" id="productionDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">有效期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="validityPeriod" id="validityPeriod" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产厂商:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="manufacturer" id="manufacturer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">供货单位:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="supplier" id="supplier" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">到货数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="arrivalQuantity" id="arrivalQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">验收合格数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inspectionQualifiedQuantity" id="inspectionQualifiedQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">成本价/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="costPrice" id="costPrice" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="costAmount" id="costAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">SAP配送单单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="sapDeliveryDocumentNumber" id="sapDeliveryDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">委托配送单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="consignmentDeliveryDocumentNumber" id="consignmentDeliveryDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">验收员:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inspector" id="inspector" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: ztree-js" />
+<script type="text/javascript">
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            add();
+        }
+    }
+
+    function add() {
+           var productCode = $("input[name='productCode']").val();
+           var storeShortName = $("input[name='storeShortName']").val();
+           var productName = $("input[name='productName']").val();
+           var inspectionDocumentNumber = $("input[name='inspectionDocumentNumber']").val();
+           var dosageForm = $("input[name='dosageForm']").val();
+           var specification = $("input[name='specification']").val();
+           var unit = $("input[name='unit']").val();
+           var barcode = $("input[name='barcode']").val();
+           var businessScope = $("input[name='businessScope']").val();
+           var approvalNumber = $("input[name='approvalNumber']").val();
+           var batchNumber = $("input[name='batchNumber']").val();
+           var batch = $("input[name='batch']").val();
+           var inspectionDate = $("input[name='inspectionDate']").val();
+           var productionDate = $("input[name='productionDate']").val();
+           var validityPeriod = $("input[name='validityPeriod']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var supplier = $("input[name='supplier']").val();
+           var arrivalQuantity = $("input[name='arrivalQuantity']").val();
+           var inspectionQualifiedQuantity = $("input[name='inspectionQualifiedQuantity']").val();
+           var costPrice = $("input[name='costPrice']").val();
+           var costAmount = $("input[name='costAmount']").val();
+           var sapDeliveryDocumentNumber = $("input[name='sapDeliveryDocumentNumber']").val();
+           var consignmentDeliveryDocumentNumber = $("input[name='consignmentDeliveryDocumentNumber']").val();
+           var inspector = $("input[name='inspector']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbproductinspection/sKcBbProductinspectionAdd",
+            data : {
+                "productCode": productCode,
+                "storeShortName": storeShortName,
+                "productName": productName,
+                "inspectionDocumentNumber": inspectionDocumentNumber,
+                "dosageForm": dosageForm,
+                "specification": specification,
+                "unit": unit,
+                "barcode": barcode,
+                "businessScope": businessScope,
+                "approvalNumber": approvalNumber,
+                "batchNumber": batchNumber,
+                "batch": batch,
+                "inspectionDate": inspectionDate,
+                "productionDate": productionDate,
+                "validityPeriod": validityPeriod,
+                "manufacturer": manufacturer,
+                "supplier": supplier,
+                "arrivalQuantity": arrivalQuantity,
+                "inspectionQualifiedQuantity": inspectionQualifiedQuantity,
+                "costPrice": costPrice,
+                "costAmount": costAmount,
+                "sapDeliveryDocumentNumber": sapDeliveryDocumentNumber,
+                "consignmentDeliveryDocumentNumber": consignmentDeliveryDocumentNumber,
+                "inspector": inspector,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 204 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionEdit.html

@@ -0,0 +1,204 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('验收入库报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbProductinspection-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店简称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeShortName" placeholder="门店简称" th:value="${storeShortName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">验收单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspectionDocumentNumber" placeholder="验收单号" th:value="${inspectionDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">剂型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dosageForm" placeholder="剂型" th:value="${dosageForm}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">条形码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="barcode" placeholder="条形码" th:value="${barcode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">经营范围:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="businessScope" placeholder="经营范围" th:value="${businessScope}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批准文号/注册证号/生产许可证号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="approvalNumber" placeholder="批准文号/注册证号/生产许可证号" th:value="${approvalNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批次:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batch" placeholder="批次" th:value="${batch}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">验收日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspectionDate" placeholder="验收日期" th:value="${inspectionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productionDate" placeholder="生产日期" th:value="${productionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">有效期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="validityPeriod" placeholder="有效期" th:value="${validityPeriod}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂商:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂商" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">供货单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="supplier" placeholder="供货单位" th:value="${supplier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">到货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="arrivalQuantity" placeholder="到货数量" th:value="${arrivalQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">验收合格数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspectionQualifiedQuantity" placeholder="验收合格数量" th:value="${inspectionQualifiedQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">成本价/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="costPrice" placeholder="成本价/元" th:value="${costPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="costAmount" placeholder="成本金额/元" th:value="${costAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">SAP配送单单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="sapDeliveryDocumentNumber" placeholder="SAP配送单单号" th:value="${sapDeliveryDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">委托配送单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="consignmentDeliveryDocumentNumber" placeholder="委托配送单号" th:value="${consignmentDeliveryDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">验收员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspector" placeholder="验收员" th:value="${inspector}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <!--<button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>-->
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function edit() {
+        var data = $("#form-SKcBbProductinspection-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbproductinspection/sKcBbProductinspectionEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 289 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionList.html

@@ -0,0 +1,289 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <meta charset="UTF-8">
+    <meta name="format-detection" content="telephone=no">
+    <th:block th:include="include :: header('验收入库报表')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<style>
+    /* 设置 ul 的基本样式 */
+    ul {
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+    }
+    ul-list ul{
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+    }
+    ul-list ul li{
+        /*padding: 10px;*/ /* 内边距 */
+        text-align: left; /* 文本居中 */
+    }
+
+    /* 设置 li 的基本样式 */
+    li {
+        /*background-color: lightblue; *//* 背景颜色 */
+        /*padding: 1px; !* 内边距 *!*/
+        text-align: right; /* 文本居中 */
+    }
+</style>
+
+<body class="gray-bg">
+<div class="ui-layout-center">
+    <div class="container-div">
+        <div class="row">
+            <div class="col-sm-12 search-collapse" >
+                <form id="SKcBbProductinspection-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店简称:<input type="text" class="styled-input" name="storeShortName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                验收单号:<input type="text" class="styled-input" name="inspectionDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                剂型:<input type="text" class="styled-input" name="dosageForm" autocomplete="off"/>
+                            </li>
+                            <li>
+                                规格:<input type="text" class="styled-input" name="specification" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单位:<input type="text" class="styled-input" name="unit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                条形码:<input type="text" class="styled-input" name="barcode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                经营范围:<input type="text" class="styled-input" name="businessScope" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批准文号/注册证号/生产许可证号:<input type="text" class="styled-input" name="approvalNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批号:<input type="text" class="styled-input" name="batchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批次:<input type="text" class="styled-input" name="batch" autocomplete="off"/>
+                            </li>
+                            <li>
+                                验收日期:<input type="text" class="styled-input" name="inspectionDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产日期:<input type="text" class="styled-input" name="productionDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                有效期:<input type="text" class="styled-input" name="validityPeriod" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产厂商:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                供货单位:<input type="text" class="styled-input" name="supplier" autocomplete="off"/>
+                            </li>
+                            <li>
+                                到货数量:<input type="text" class="styled-input" name="arrivalQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                验收合格数量:<input type="text" class="styled-input" name="inspectionQualifiedQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                成本价/元:<input type="text" class="styled-input" name="costPrice" autocomplete="off"/>
+                            </li>
+                            <li>
+                                成本金额/元:<input type="text" class="styled-input" name="costAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                SAP配送单单号:<input type="text" class="styled-input" name="sapDeliveryDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                委托配送单号:<input type="text" class="styled-input" name="consignmentDeliveryDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                验收员:<input type="text" class="styled-input" name="inspector" autocomplete="off"/>
+                            </li>
+                            <li style="text-align: center">
+                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                                <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+                            </li>
+                        </ul>
+                    </div>
+
+                </form>
+            </div>
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:user:add">
+                    <i class="fa fa-plus"></i> 新增
+                </a>
+                 <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:user:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+                    <i class="fa fa-upload"></i> 导入
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+    var prefix = ctx + "kc/skcbbproductinspection";
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryArchivesList();
+    });
+
+    function queryArchivesList() {
+        var options = {
+            url: prefix + "/sKcBbProductinspectionList",
+            viewUrl: prefix + "/sKcBbProductinspectionView/{id}",
+            createUrl: prefix + "/sKcBbProductinspectionAdd",
+            updateUrl: prefix + "/sKcBbProductinspectionEdit/{id}",
+            removeUrl: prefix + "/sKcBbProductinspectionRemove",
+            /*exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",*/
+            sortName: "id",
+            sortOrder: "asc",
+            modalName: "验收入库报表",
+            fitColumns: true,
+            striped: true,
+            autoRowHeight: true,
+            rowNumbers: true,
+            showFooter:true,  //是否显示表格底部区域。
+            clickToSelect: true, //是否启用点击行时选中整行的功能。
+            singleSelect: true, //是否仅允许选择一行
+            columns: [{
+                checkbox: true
+            },
+                { field: 'id', title: '主键', align: 'center' ,visible:false},
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'storeShortName', title: '门店简称', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'inspectionDocumentNumber', title: '验收单号', align: 'center' },
+                    { field: 'dosageForm', title: '剂型', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'unit', title: '单位', align: 'center' },
+                    { field: 'barcode', title: '条形码', align: 'center' },
+                    { field: 'businessScope', title: '经营范围', align: 'center' },
+                    { field: 'approvalNumber', title: '批准文号/注册证号/生产许可证号', align: 'center' },
+                    { field: 'batchNumber', title: '批号', align: 'center' },
+                    { field: 'batch', title: '批次', align: 'center' },
+                    { field: 'inspectionDate', title: '验收日期', align: 'center' },
+                    { field: 'productionDate', title: '生产日期', align: 'center' },
+                    { field: 'validityPeriod', title: '有效期', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂商', align: 'center' },
+                    { field: 'supplier', title: '供货单位', align: 'center' },
+                    { field: 'arrivalQuantity', title: '到货数量', align: 'center' },
+                    { field: 'inspectionQualifiedQuantity', title: '验收合格数量', align: 'center' },
+                    { field: 'costPrice', title: '成本价/元', align: 'center' },
+                    { field: 'costAmount', title: '成本金额/元', align: 'center' },
+                    { field: 'sapDeliveryDocumentNumber', title: 'SAP配送单单号', align: 'center' },
+                    { field: 'consignmentDeliveryDocumentNumber', title: '委托配送单号', align: 'center' },
+                    { field: 'inspector', title: '验收员', align: 'center' },
+
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        if (row.serviceId != 1) {
+                            var actions = [];
+                            actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="edit_page(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                            actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+                            var more = [];
+                            /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+                            more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+                            actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+                            return actions.join('');
+                        } else {
+                            return "";
+                        }
+                    }
+                }]
+        };
+        $.table.init(options);
+    }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#SKcBbProductinspection-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbProductinspection-form');
+        resetButton.addEventListener('click', function() {
+            _refresh();
+        });
+    }
+    function edit_page(id){
+        table.set();
+        var url = "/404.html";
+        if ($.common.isNotEmpty(id)) {
+            url = table.options.updateUrl.replace("{id}", id);
+        } else {
+            var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
+            if (id.length == 0) {
+                $.modal.alertWarning("请至少选择一条记录");
+                return;
+            }
+            url = table.options.updateUrl.replace("{id}", id);
+        }
+        $.modal.openTab("修改" + table.options.modalName, url + "?status=1" );
+    }
+
+    /* 用户状态显示 */
+    function statusTools(row) {
+        if (row.status == 1) {
+            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+        } else {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+        }
+    }
+</script>
+</body>
+
+</html>

+ 195 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionPageEdit.html

@@ -0,0 +1,195 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('验收入库报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbProductinspection-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店简称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeShortName" placeholder="门店简称" th:value="${storeShortName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">验收单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspectionDocumentNumber" placeholder="验收单号" th:value="${inspectionDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">剂型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dosageForm" placeholder="剂型" th:value="${dosageForm}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">条形码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="barcode" placeholder="条形码" th:value="${barcode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">经营范围:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="businessScope" placeholder="经营范围" th:value="${businessScope}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批准文号/注册证号/生产许可证号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="approvalNumber" placeholder="批准文号/注册证号/生产许可证号" th:value="${approvalNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批次:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batch" placeholder="批次" th:value="${batch}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">验收日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspectionDate" placeholder="验收日期" th:value="${inspectionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productionDate" placeholder="生产日期" th:value="${productionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">有效期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="validityPeriod" placeholder="有效期" th:value="${validityPeriod}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂商:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂商" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">供货单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="supplier" placeholder="供货单位" th:value="${supplier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">到货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="arrivalQuantity" placeholder="到货数量" th:value="${arrivalQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">验收合格数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspectionQualifiedQuantity" placeholder="验收合格数量" th:value="${inspectionQualifiedQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">成本价/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="costPrice" placeholder="成本价/元" th:value="${costPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="costAmount" placeholder="成本金额/元" th:value="${costAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">SAP配送单单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="sapDeliveryDocumentNumber" placeholder="SAP配送单单号" th:value="${sapDeliveryDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">委托配送单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="consignmentDeliveryDocumentNumber" placeholder="委托配送单号" th:value="${consignmentDeliveryDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">验收员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inspector" placeholder="验收员" th:value="${inspector}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "kc/skcbbproductinspection";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbProductinspection-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/sKcBbProductinspectionEdit", data);
+        }
+    }
+</script>

+ 129 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsAdd.html

@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('清斗报表新增')" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-role-add">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-3 control-label">清斗日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="cleaningDate" id="cleaningDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productCode" id="productCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productName" id="productName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">清斗单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="cleaningDocumentNumber" id="cleaningDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产厂家:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="manufacturer" id="manufacturer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="batchNumber" id="batchNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">清斗前数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="quantityBeforeCleaning" id="quantityBeforeCleaning" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">清斗后数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="quantityAfterCleaning" id="quantityAfterCleaning" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">单位:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="unit" id="unit" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">清斗人:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="cleaner" id="cleaner" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: ztree-js" />
+<script type="text/javascript">
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            add();
+        }
+    }
+
+    function add() {
+           var cleaningDate = $("input[name='cleaningDate']").val();
+           var productCode = $("input[name='productCode']").val();
+           var productName = $("input[name='productName']").val();
+           var cleaningDocumentNumber = $("input[name='cleaningDocumentNumber']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var batchNumber = $("input[name='batchNumber']").val();
+           var quantityBeforeCleaning = $("input[name='quantityBeforeCleaning']").val();
+           var quantityAfterCleaning = $("input[name='quantityAfterCleaning']").val();
+           var unit = $("input[name='unit']").val();
+           var cleaner = $("input[name='cleaner']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbqdjlcleaningitems/sKcBbQdjlCleaningitemsAdd",
+            data : {
+                "cleaningDate": cleaningDate,
+                "productCode": productCode,
+                "productName": productName,
+                "cleaningDocumentNumber": cleaningDocumentNumber,
+                "manufacturer": manufacturer,
+                "batchNumber": batchNumber,
+                "quantityBeforeCleaning": quantityBeforeCleaning,
+                "quantityAfterCleaning": quantityAfterCleaning,
+                "unit": unit,
+                "cleaner": cleaner,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 120 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsEdit.html

@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('清斗报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbQdjlCleaningitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">清斗日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cleaningDate" placeholder="清斗日期" th:value="${cleaningDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">清斗单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cleaningDocumentNumber" placeholder="清斗单号" th:value="${cleaningDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">清斗前数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="quantityBeforeCleaning" placeholder="清斗前数量" th:value="${quantityBeforeCleaning}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">清斗后数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="quantityAfterCleaning" placeholder="清斗后数量" th:value="${quantityAfterCleaning}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">清斗人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cleaner" placeholder="清斗人" th:value="${cleaner}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <!--<button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>-->
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function edit() {
+        var data = $("#form-SKcBbQdjlCleaningitems-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbqdjlcleaningitems/sKcBbQdjlCleaningitemsEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 233 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsList.html

@@ -0,0 +1,233 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <meta charset="UTF-8">
+    <meta name="format-detection" content="telephone=no">
+    <th:block th:include="include :: header('清斗报表')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<style>
+    /* 设置 ul 的基本样式 */
+    ul {
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+    }
+    ul-list ul{
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+    }
+    ul-list ul li{
+        /*padding: 10px;*/ /* 内边距 */
+        text-align: left; /* 文本居中 */
+    }
+
+    /* 设置 li 的基本样式 */
+    li {
+        /*background-color: lightblue; *//* 背景颜色 */
+        /*padding: 1px; !* 内边距 *!*/
+        text-align: right; /* 文本居中 */
+    }
+</style>
+
+<body class="gray-bg">
+<div class="ui-layout-center">
+    <div class="container-div">
+        <div class="row">
+            <div class="col-sm-12 search-collapse" >
+                <form id="SKcBbQdjlCleaningitems-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                清斗日期:<input type="text" class="styled-input" name="cleaningDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                清斗单号:<input type="text" class="styled-input" name="cleaningDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产厂家:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批号:<input type="text" class="styled-input" name="batchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                清斗前数量:<input type="text" class="styled-input" name="quantityBeforeCleaning" autocomplete="off"/>
+                            </li>
+                            <li>
+                                清斗后数量:<input type="text" class="styled-input" name="quantityAfterCleaning" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单位:<input type="text" class="styled-input" name="unit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                清斗人:<input type="text" class="styled-input" name="cleaner" autocomplete="off"/>
+                            </li>
+                            <li style="text-align: center">
+                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                                <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+                            </li>
+                        </ul>
+                    </div>
+
+                </form>
+            </div>
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:user:add">
+                    <i class="fa fa-plus"></i> 新增
+                </a>
+                 <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:user:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+                    <i class="fa fa-upload"></i> 导入
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+    var prefix = ctx + "kc/skcbbqdjlcleaningitems";
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryArchivesList();
+    });
+
+    function queryArchivesList() {
+        var options = {
+            url: prefix + "/sKcBbQdjlCleaningitemsList",
+            viewUrl: prefix + "/sKcBbQdjlCleaningitemsView/{id}",
+            createUrl: prefix + "/sKcBbQdjlCleaningitemsAdd",
+            updateUrl: prefix + "/sKcBbQdjlCleaningitemsEdit/{id}",
+            removeUrl: prefix + "/sKcBbQdjlCleaningitemsRemove",
+            /*exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",*/
+            sortName: "id",
+            sortOrder: "asc",
+            modalName: "清斗报表",
+            fitColumns: true,
+            striped: true,
+            autoRowHeight: true,
+            rowNumbers: true,
+            showFooter:true,  //是否显示表格底部区域。
+            clickToSelect: true, //是否启用点击行时选中整行的功能。
+            singleSelect: true, //是否仅允许选择一行
+            columns: [{
+                checkbox: true
+            },
+                { field: 'id', title: '主键', align: 'center' ,visible:false},
+                    { field: 'cleaningDate', title: '清斗日期', align: 'center' },
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'cleaningDocumentNumber', title: '清斗单号', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂家', align: 'center' },
+                    { field: 'batchNumber', title: '批号', align: 'center' },
+                    { field: 'quantityBeforeCleaning', title: '清斗前数量', align: 'center' },
+                    { field: 'quantityAfterCleaning', title: '清斗后数量', align: 'center' },
+                    { field: 'unit', title: '单位', align: 'center' },
+                    { field: 'cleaner', title: '清斗人', align: 'center' },
+
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        if (row.serviceId != 1) {
+                            var actions = [];
+                            actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="edit_page(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                            actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+                            var more = [];
+                            /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+                            more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+                            actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+                            return actions.join('');
+                        } else {
+                            return "";
+                        }
+                    }
+                }]
+        };
+        $.table.init(options);
+    }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#SKcBbQdjlCleaningitems-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbQdjlCleaningitems-form');
+        resetButton.addEventListener('click', function() {
+            _refresh();
+        });
+    }
+    function edit_page(id){
+        table.set();
+        var url = "/404.html";
+        if ($.common.isNotEmpty(id)) {
+            url = table.options.updateUrl.replace("{id}", id);
+        } else {
+            var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
+            if (id.length == 0) {
+                $.modal.alertWarning("请至少选择一条记录");
+                return;
+            }
+            url = table.options.updateUrl.replace("{id}", id);
+        }
+        $.modal.openTab("修改" + table.options.modalName, url + "?status=1" );
+    }
+
+    /* 用户状态显示 */
+    function statusTools(row) {
+        if (row.status == 1) {
+            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+        } else {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+        }
+    }
+</script>
+</body>
+
+</html>

+ 111 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsPageEdit.html

@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('清斗报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbQdjlCleaningitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">清斗日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cleaningDate" placeholder="清斗日期" th:value="${cleaningDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">清斗单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cleaningDocumentNumber" placeholder="清斗单号" th:value="${cleaningDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">清斗前数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="quantityBeforeCleaning" placeholder="清斗前数量" th:value="${quantityBeforeCleaning}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">清斗后数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="quantityAfterCleaning" placeholder="清斗后数量" th:value="${quantityAfterCleaning}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">清斗人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cleaner" placeholder="清斗人" th:value="${cleaner}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "kc/skcbbqdjlcleaningitems";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbQdjlCleaningitems-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/sKcBbQdjlCleaningitemsEdit", data);
+        }
+    }
+</script>

+ 169 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsAdd.html

@@ -0,0 +1,169 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('可疑商品报表新增')" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-role-add">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-3 control-label">商品编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productCode" id="productCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productName" id="productName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">报告单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="reportDocumentNumber" id="reportDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">规格:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="specification" id="specification" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产厂家:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="manufacturer" id="manufacturer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产批号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productionBatchNumber" id="productionBatchNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">报告日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="reportDate" id="reportDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productionDate" id="productionDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">有效期至:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="expirationDate" id="expirationDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="quantity" id="quantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">单位:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="unit" id="unit" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">原因:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="reason" id="reason" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">结论:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="conclusion" id="conclusion" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">处理措施:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="handlingMeasures" id="handlingMeasures" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">报告人:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="reporter" id="reporter" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: ztree-js" />
+<script type="text/javascript">
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            add();
+        }
+    }
+
+    function add() {
+           var productCode = $("input[name='productCode']").val();
+           var productName = $("input[name='productName']").val();
+           var reportDocumentNumber = $("input[name='reportDocumentNumber']").val();
+           var specification = $("input[name='specification']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var productionBatchNumber = $("input[name='productionBatchNumber']").val();
+           var reportDate = $("input[name='reportDate']").val();
+           var productionDate = $("input[name='productionDate']").val();
+           var expirationDate = $("input[name='expirationDate']").val();
+           var quantity = $("input[name='quantity']").val();
+           var unit = $("input[name='unit']").val();
+           var reason = $("input[name='reason']").val();
+           var conclusion = $("input[name='conclusion']").val();
+           var handlingMeasures = $("input[name='handlingMeasures']").val();
+           var reporter = $("input[name='reporter']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbqualityreportitems/sKcBbQualityreportitemsAdd",
+            data : {
+                "productCode": productCode,
+                "productName": productName,
+                "reportDocumentNumber": reportDocumentNumber,
+                "specification": specification,
+                "manufacturer": manufacturer,
+                "productionBatchNumber": productionBatchNumber,
+                "reportDate": reportDate,
+                "productionDate": productionDate,
+                "expirationDate": expirationDate,
+                "quantity": quantity,
+                "unit": unit,
+                "reason": reason,
+                "conclusion": conclusion,
+                "handlingMeasures": handlingMeasures,
+                "reporter": reporter,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 150 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsEdit.html

@@ -0,0 +1,150 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('可疑商品报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbQualityreportitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报告单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reportDocumentNumber" placeholder="报告单号" th:value="${reportDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productionBatchNumber" placeholder="生产批号" th:value="${productionBatchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报告日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reportDate" placeholder="报告日期" th:value="${reportDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productionDate" placeholder="生产日期" th:value="${productionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">有效期至:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expirationDate" placeholder="有效期至" th:value="${expirationDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="quantity" placeholder="数量" th:value="${quantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">原因:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reason" placeholder="原因" th:value="${reason}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">结论:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="conclusion" placeholder="结论" th:value="${conclusion}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">处理措施:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="handlingMeasures" placeholder="处理措施" th:value="${handlingMeasures}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报告人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reporter" placeholder="报告人" th:value="${reporter}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <!--<button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>-->
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function edit() {
+        var data = $("#form-SKcBbQualityreportitems-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbqualityreportitems/sKcBbQualityreportitemsEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 253 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsList.html

@@ -0,0 +1,253 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <meta charset="UTF-8">
+    <meta name="format-detection" content="telephone=no">
+    <th:block th:include="include :: header('可疑商品报表')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<style>
+    /* 设置 ul 的基本样式 */
+    ul {
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+    }
+    ul-list ul{
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+    }
+    ul-list ul li{
+        /*padding: 10px;*/ /* 内边距 */
+        text-align: left; /* 文本居中 */
+    }
+
+    /* 设置 li 的基本样式 */
+    li {
+        /*background-color: lightblue; *//* 背景颜色 */
+        /*padding: 1px; !* 内边距 *!*/
+        text-align: right; /* 文本居中 */
+    }
+</style>
+
+<body class="gray-bg">
+<div class="ui-layout-center">
+    <div class="container-div">
+        <div class="row">
+            <div class="col-sm-12 search-collapse" >
+                <form id="SKcBbQualityreportitems-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                报告单号:<input type="text" class="styled-input" name="reportDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                规格:<input type="text" class="styled-input" name="specification" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产厂家:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产批号:<input type="text" class="styled-input" name="productionBatchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                报告日期:<input type="text" class="styled-input" name="reportDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产日期:<input type="text" class="styled-input" name="productionDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                有效期至:<input type="text" class="styled-input" name="expirationDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                数量:<input type="text" class="styled-input" name="quantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单位:<input type="text" class="styled-input" name="unit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                原因:<input type="text" class="styled-input" name="reason" autocomplete="off"/>
+                            </li>
+                            <li>
+                                结论:<input type="text" class="styled-input" name="conclusion" autocomplete="off"/>
+                            </li>
+                            <li>
+                                处理措施:<input type="text" class="styled-input" name="handlingMeasures" autocomplete="off"/>
+                            </li>
+                            <li>
+                                报告人:<input type="text" class="styled-input" name="reporter" autocomplete="off"/>
+                            </li>
+                            <li style="text-align: center">
+                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                                <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+                            </li>
+                        </ul>
+                    </div>
+
+                </form>
+            </div>
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:user:add">
+                    <i class="fa fa-plus"></i> 新增
+                </a>
+                 <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:user:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+                    <i class="fa fa-upload"></i> 导入
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+    var prefix = ctx + "kc/skcbbqualityreportitems";
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryArchivesList();
+    });
+
+    function queryArchivesList() {
+        var options = {
+            url: prefix + "/sKcBbQualityreportitemsList",
+            viewUrl: prefix + "/sKcBbQualityreportitemsView/{id}",
+            createUrl: prefix + "/sKcBbQualityreportitemsAdd",
+            updateUrl: prefix + "/sKcBbQualityreportitemsEdit/{id}",
+            removeUrl: prefix + "/sKcBbQualityreportitemsRemove",
+            /*exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",*/
+            sortName: "id",
+            sortOrder: "asc",
+            modalName: "可疑商品报表",
+            fitColumns: true,
+            striped: true,
+            autoRowHeight: true,
+            rowNumbers: true,
+            showFooter:true,  //是否显示表格底部区域。
+            clickToSelect: true, //是否启用点击行时选中整行的功能。
+            singleSelect: true, //是否仅允许选择一行
+            columns: [{
+                checkbox: true
+            },
+                { field: 'id', title: '主键', align: 'center' ,visible:false},
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'reportDocumentNumber', title: '报告单号', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂家', align: 'center' },
+                    { field: 'productionBatchNumber', title: '生产批号', align: 'center' },
+                    { field: 'reportDate', title: '报告日期', align: 'center' },
+                    { field: 'productionDate', title: '生产日期', align: 'center' },
+                    { field: 'expirationDate', title: '有效期至', align: 'center' },
+                    { field: 'quantity', title: '数量', align: 'center' },
+                    { field: 'unit', title: '单位', align: 'center' },
+                    { field: 'reason', title: '原因', align: 'center' },
+                    { field: 'conclusion', title: '结论', align: 'center' },
+                    { field: 'handlingMeasures', title: '处理措施', align: 'center' },
+                    { field: 'reporter', title: '报告人', align: 'center' },
+
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        if (row.serviceId != 1) {
+                            var actions = [];
+                            actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="edit_page(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                            actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+                            var more = [];
+                            /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+                            more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+                            actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+                            return actions.join('');
+                        } else {
+                            return "";
+                        }
+                    }
+                }]
+        };
+        $.table.init(options);
+    }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#SKcBbQualityreportitems-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbQualityreportitems-form');
+        resetButton.addEventListener('click', function() {
+            _refresh();
+        });
+    }
+    function edit_page(id){
+        table.set();
+        var url = "/404.html";
+        if ($.common.isNotEmpty(id)) {
+            url = table.options.updateUrl.replace("{id}", id);
+        } else {
+            var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
+            if (id.length == 0) {
+                $.modal.alertWarning("请至少选择一条记录");
+                return;
+            }
+            url = table.options.updateUrl.replace("{id}", id);
+        }
+        $.modal.openTab("修改" + table.options.modalName, url + "?status=1" );
+    }
+
+    /* 用户状态显示 */
+    function statusTools(row) {
+        if (row.status == 1) {
+            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+        } else {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+        }
+    }
+</script>
+</body>
+
+</html>

+ 141 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsPageEdit.html

@@ -0,0 +1,141 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('可疑商品报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbQualityreportitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报告单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reportDocumentNumber" placeholder="报告单号" th:value="${reportDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productionBatchNumber" placeholder="生产批号" th:value="${productionBatchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报告日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reportDate" placeholder="报告日期" th:value="${reportDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productionDate" placeholder="生产日期" th:value="${productionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">有效期至:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expirationDate" placeholder="有效期至" th:value="${expirationDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="quantity" placeholder="数量" th:value="${quantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">原因:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reason" placeholder="原因" th:value="${reason}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">结论:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="conclusion" placeholder="结论" th:value="${conclusion}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">处理措施:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="handlingMeasures" placeholder="处理措施" th:value="${handlingMeasures}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">报告人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reporter" placeholder="报告人" th:value="${reporter}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "kc/skcbbqualityreportitems";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbQualityreportitems-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/sKcBbQualityreportitemsEdit", data);
+        }
+    }
+</script>

+ 193 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsAdd.html

@@ -0,0 +1,193 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('收货报表新增')" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-role-add">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-3 control-label">供货单位:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="supplier" id="supplier" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productCode" id="productCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productName" id="productName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">收货单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="receiptDocumentNumber" id="receiptDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">收货日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="receiptDate" id="receiptDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">剂型:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="dosageForm" id="dosageForm" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">规格:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="specification" id="specification" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产厂家:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="manufacturer" id="manufacturer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">产地:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="origin" id="origin" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">单位:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="unit" id="unit" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">发货数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="shipmentQuantity" id="shipmentQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">启运时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="departureTime" id="departureTime" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">启运温度:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="departureTemperature" id="departureTemperature" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">运输方式:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="transportationMode" id="transportationMode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">到货时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="arrivalTime" id="arrivalTime" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">到货温度:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="arrivalTemperature" id="arrivalTemperature" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">收货数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="receiptQuantity" id="receiptQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">收货人:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="receiver" id="receiver" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: ztree-js" />
+<script type="text/javascript">
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            add();
+        }
+    }
+
+    function add() {
+           var supplier = $("input[name='supplier']").val();
+           var productCode = $("input[name='productCode']").val();
+           var productName = $("input[name='productName']").val();
+           var receiptDocumentNumber = $("input[name='receiptDocumentNumber']").val();
+           var receiptDate = $("input[name='receiptDate']").val();
+           var dosageForm = $("input[name='dosageForm']").val();
+           var specification = $("input[name='specification']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var origin = $("input[name='origin']").val();
+           var unit = $("input[name='unit']").val();
+           var shipmentQuantity = $("input[name='shipmentQuantity']").val();
+           var departureTime = $("input[name='departureTime']").val();
+           var departureTemperature = $("input[name='departureTemperature']").val();
+           var transportationMode = $("input[name='transportationMode']").val();
+           var arrivalTime = $("input[name='arrivalTime']").val();
+           var arrivalTemperature = $("input[name='arrivalTemperature']").val();
+           var receiptQuantity = $("input[name='receiptQuantity']").val();
+           var receiver = $("input[name='receiver']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbreceiptorderitems/sKcBbReceiptorderitemsAdd",
+            data : {
+                "supplier": supplier,
+                "productCode": productCode,
+                "productName": productName,
+                "receiptDocumentNumber": receiptDocumentNumber,
+                "receiptDate": receiptDate,
+                "dosageForm": dosageForm,
+                "specification": specification,
+                "manufacturer": manufacturer,
+                "origin": origin,
+                "unit": unit,
+                "shipmentQuantity": shipmentQuantity,
+                "departureTime": departureTime,
+                "departureTemperature": departureTemperature,
+                "transportationMode": transportationMode,
+                "arrivalTime": arrivalTime,
+                "arrivalTemperature": arrivalTemperature,
+                "receiptQuantity": receiptQuantity,
+                "receiver": receiver,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 168 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsEdit.html

@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('收货报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbReceiptorderitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">供货单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="supplier" placeholder="供货单位" th:value="${supplier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收货单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="receiptDocumentNumber" placeholder="收货单号" th:value="${receiptDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收货日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="receiptDate" placeholder="收货日期" th:value="${receiptDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">剂型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dosageForm" placeholder="剂型" th:value="${dosageForm}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">产地:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="origin" placeholder="产地" th:value="${origin}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">发货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="shipmentQuantity" placeholder="发货数量" th:value="${shipmentQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">启运时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="departureTime" placeholder="启运时间" th:value="${departureTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">启运温度:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="departureTemperature" placeholder="启运温度" th:value="${departureTemperature}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">运输方式:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="transportationMode" placeholder="运输方式" th:value="${transportationMode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">到货时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="arrivalTime" placeholder="到货时间" th:value="${arrivalTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">到货温度:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="arrivalTemperature" placeholder="到货温度" th:value="${arrivalTemperature}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="receiptQuantity" placeholder="收货数量" th:value="${receiptQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收货人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="receiver" placeholder="收货人" th:value="${receiver}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <!--<button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>-->
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function edit() {
+        var data = $("#form-SKcBbReceiptorderitems-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbreceiptorderitems/sKcBbReceiptorderitemsEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 265 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsList.html

@@ -0,0 +1,265 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <meta charset="UTF-8">
+    <meta name="format-detection" content="telephone=no">
+    <th:block th:include="include :: header('收货报表')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<style>
+    /* 设置 ul 的基本样式 */
+    ul {
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+    }
+    ul-list ul{
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+    }
+    ul-list ul li{
+        /*padding: 10px;*/ /* 内边距 */
+        text-align: left; /* 文本居中 */
+    }
+
+    /* 设置 li 的基本样式 */
+    li {
+        /*background-color: lightblue; *//* 背景颜色 */
+        /*padding: 1px; !* 内边距 *!*/
+        text-align: right; /* 文本居中 */
+    }
+</style>
+
+<body class="gray-bg">
+<div class="ui-layout-center">
+    <div class="container-div">
+        <div class="row">
+            <div class="col-sm-12 search-collapse" >
+                <form id="SKcBbReceiptorderitems-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                供货单位:<input type="text" class="styled-input" name="supplier" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                收货单号:<input type="text" class="styled-input" name="receiptDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                收货日期:<input type="text" class="styled-input" name="receiptDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                剂型:<input type="text" class="styled-input" name="dosageForm" autocomplete="off"/>
+                            </li>
+                            <li>
+                                规格:<input type="text" class="styled-input" name="specification" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产厂家:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                产地:<input type="text" class="styled-input" name="origin" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单位:<input type="text" class="styled-input" name="unit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                发货数量:<input type="text" class="styled-input" name="shipmentQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                启运时间:<input type="text" class="styled-input" name="departureTime" autocomplete="off"/>
+                            </li>
+                            <li>
+                                启运温度:<input type="text" class="styled-input" name="departureTemperature" autocomplete="off"/>
+                            </li>
+                            <li>
+                                运输方式:<input type="text" class="styled-input" name="transportationMode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                到货时间:<input type="text" class="styled-input" name="arrivalTime" autocomplete="off"/>
+                            </li>
+                            <li>
+                                到货温度:<input type="text" class="styled-input" name="arrivalTemperature" autocomplete="off"/>
+                            </li>
+                            <li>
+                                收货数量:<input type="text" class="styled-input" name="receiptQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                收货人:<input type="text" class="styled-input" name="receiver" autocomplete="off"/>
+                            </li>
+                            <li style="text-align: center">
+                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                                <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+                            </li>
+                        </ul>
+                    </div>
+
+                </form>
+            </div>
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:user:add">
+                    <i class="fa fa-plus"></i> 新增
+                </a>
+                 <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:user:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+                    <i class="fa fa-upload"></i> 导入
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+    var prefix = ctx + "kc/skcbbreceiptorderitems";
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryArchivesList();
+    });
+
+    function queryArchivesList() {
+        var options = {
+            url: prefix + "/sKcBbReceiptorderitemsList",
+            viewUrl: prefix + "/sKcBbReceiptorderitemsView/{id}",
+            createUrl: prefix + "/sKcBbReceiptorderitemsAdd",
+            updateUrl: prefix + "/sKcBbReceiptorderitemsEdit/{id}",
+            removeUrl: prefix + "/sKcBbReceiptorderitemsRemove",
+            /*exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",*/
+            sortName: "id",
+            sortOrder: "asc",
+            modalName: "收货报表",
+            fitColumns: true,
+            striped: true,
+            autoRowHeight: true,
+            rowNumbers: true,
+            showFooter:true,  //是否显示表格底部区域。
+            clickToSelect: true, //是否启用点击行时选中整行的功能。
+            singleSelect: true, //是否仅允许选择一行
+            columns: [{
+                checkbox: true
+            },
+                { field: 'id', title: '主键', align: 'center' ,visible:false},
+                    { field: 'supplier', title: '供货单位', align: 'center' },
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'receiptDocumentNumber', title: '收货单号', align: 'center' },
+                    { field: 'receiptDate', title: '收货日期', align: 'center' },
+                    { field: 'dosageForm', title: '剂型', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂家', align: 'center' },
+                    { field: 'origin', title: '产地', align: 'center' },
+                    { field: 'unit', title: '单位', align: 'center' },
+                    { field: 'shipmentQuantity', title: '发货数量', align: 'center' },
+                    { field: 'departureTime', title: '启运时间', align: 'center' },
+                    { field: 'departureTemperature', title: '启运温度', align: 'center' },
+                    { field: 'transportationMode', title: '运输方式', align: 'center' },
+                    { field: 'arrivalTime', title: '到货时间', align: 'center' },
+                    { field: 'arrivalTemperature', title: '到货温度', align: 'center' },
+                    { field: 'receiptQuantity', title: '收货数量', align: 'center' },
+                    { field: 'receiver', title: '收货人', align: 'center' },
+
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        if (row.serviceId != 1) {
+                            var actions = [];
+                            actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="edit_page(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                            actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+                            var more = [];
+                            /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+                            more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+                            actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+                            return actions.join('');
+                        } else {
+                            return "";
+                        }
+                    }
+                }]
+        };
+        $.table.init(options);
+    }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#SKcBbReceiptorderitems-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbReceiptorderitems-form');
+        resetButton.addEventListener('click', function() {
+            _refresh();
+        });
+    }
+    function edit_page(id){
+        table.set();
+        var url = "/404.html";
+        if ($.common.isNotEmpty(id)) {
+            url = table.options.updateUrl.replace("{id}", id);
+        } else {
+            var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
+            if (id.length == 0) {
+                $.modal.alertWarning("请至少选择一条记录");
+                return;
+            }
+            url = table.options.updateUrl.replace("{id}", id);
+        }
+        $.modal.openTab("修改" + table.options.modalName, url + "?status=1" );
+    }
+
+    /* 用户状态显示 */
+    function statusTools(row) {
+        if (row.status == 1) {
+            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+        } else {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+        }
+    }
+</script>
+</body>
+
+</html>

+ 159 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsPageEdit.html

@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('收货报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbReceiptorderitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">供货单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="supplier" placeholder="供货单位" th:value="${supplier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收货单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="receiptDocumentNumber" placeholder="收货单号" th:value="${receiptDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收货日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="receiptDate" placeholder="收货日期" th:value="${receiptDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">剂型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dosageForm" placeholder="剂型" th:value="${dosageForm}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">产地:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="origin" placeholder="产地" th:value="${origin}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">发货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="shipmentQuantity" placeholder="发货数量" th:value="${shipmentQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">启运时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="departureTime" placeholder="启运时间" th:value="${departureTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">启运温度:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="departureTemperature" placeholder="启运温度" th:value="${departureTemperature}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">运输方式:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="transportationMode" placeholder="运输方式" th:value="${transportationMode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">到货时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="arrivalTime" placeholder="到货时间" th:value="${arrivalTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">到货温度:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="arrivalTemperature" placeholder="到货温度" th:value="${arrivalTemperature}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="receiptQuantity" placeholder="收货数量" th:value="${receiptQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收货人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="receiver" placeholder="收货人" th:value="${receiver}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "kc/skcbbreceiptorderitems";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbReceiptorderitems-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/sKcBbReceiptorderitemsEdit", data);
+        }
+    }
+</script>

+ 137 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsAdd.html

@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('装斗报表新增')" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-role-add">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-3 control-label">装斗日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="refillingDate" id="refillingDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productCode" id="productCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productName" id="productName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">装斗单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="refillingDocumentNumber" id="refillingDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产厂家:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="manufacturer" id="manufacturer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="batchNumber" id="batchNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">装斗数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="refillingQuantity" id="refillingQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">单位:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="unit" id="unit" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">质量状况:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="qualityStatus" id="qualityStatus" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">装斗人:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="refiller" id="refiller" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">复核人:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="verifier" id="verifier" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: ztree-js" />
+<script type="text/javascript">
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            add();
+        }
+    }
+
+    function add() {
+           var refillingDate = $("input[name='refillingDate']").val();
+           var productCode = $("input[name='productCode']").val();
+           var productName = $("input[name='productName']").val();
+           var refillingDocumentNumber = $("input[name='refillingDocumentNumber']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var batchNumber = $("input[name='batchNumber']").val();
+           var refillingQuantity = $("input[name='refillingQuantity']").val();
+           var unit = $("input[name='unit']").val();
+           var qualityStatus = $("input[name='qualityStatus']").val();
+           var refiller = $("input[name='refiller']").val();
+           var verifier = $("input[name='verifier']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbrefillingitems/sKcBbRefillingitemsAdd",
+            data : {
+                "refillingDate": refillingDate,
+                "productCode": productCode,
+                "productName": productName,
+                "refillingDocumentNumber": refillingDocumentNumber,
+                "manufacturer": manufacturer,
+                "batchNumber": batchNumber,
+                "refillingQuantity": refillingQuantity,
+                "unit": unit,
+                "qualityStatus": qualityStatus,
+                "refiller": refiller,
+                "verifier": verifier,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 126 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsEdit.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('装斗报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbRefillingitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">装斗日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="refillingDate" placeholder="装斗日期" th:value="${refillingDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">装斗单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="refillingDocumentNumber" placeholder="装斗单号" th:value="${refillingDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">装斗数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="refillingQuantity" placeholder="装斗数量" th:value="${refillingQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">质量状况:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="qualityStatus" placeholder="质量状况" th:value="${qualityStatus}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">装斗人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="refiller" placeholder="装斗人" th:value="${refiller}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">复核人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="verifier" placeholder="复核人" th:value="${verifier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <!--<button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>-->
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function edit() {
+        var data = $("#form-SKcBbRefillingitems-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbrefillingitems/sKcBbRefillingitemsEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 237 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsList.html

@@ -0,0 +1,237 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <meta charset="UTF-8">
+    <meta name="format-detection" content="telephone=no">
+    <th:block th:include="include :: header('装斗报表')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<style>
+    /* 设置 ul 的基本样式 */
+    ul {
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+    }
+    ul-list ul{
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+    }
+    ul-list ul li{
+        /*padding: 10px;*/ /* 内边距 */
+        text-align: left; /* 文本居中 */
+    }
+
+    /* 设置 li 的基本样式 */
+    li {
+        /*background-color: lightblue; *//* 背景颜色 */
+        /*padding: 1px; !* 内边距 *!*/
+        text-align: right; /* 文本居中 */
+    }
+</style>
+
+<body class="gray-bg">
+<div class="ui-layout-center">
+    <div class="container-div">
+        <div class="row">
+            <div class="col-sm-12 search-collapse" >
+                <form id="SKcBbRefillingitems-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                装斗日期:<input type="text" class="styled-input" name="refillingDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                装斗单号:<input type="text" class="styled-input" name="refillingDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产厂家:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批号:<input type="text" class="styled-input" name="batchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                装斗数量:<input type="text" class="styled-input" name="refillingQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单位:<input type="text" class="styled-input" name="unit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                质量状况:<input type="text" class="styled-input" name="qualityStatus" autocomplete="off"/>
+                            </li>
+                            <li>
+                                装斗人:<input type="text" class="styled-input" name="refiller" autocomplete="off"/>
+                            </li>
+                            <li>
+                                复核人:<input type="text" class="styled-input" name="verifier" autocomplete="off"/>
+                            </li>
+                            <li style="text-align: center">
+                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                                <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+                            </li>
+                        </ul>
+                    </div>
+
+                </form>
+            </div>
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:user:add">
+                    <i class="fa fa-plus"></i> 新增
+                </a>
+                 <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:user:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+                    <i class="fa fa-upload"></i> 导入
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+    var prefix = ctx + "kc/skcbbrefillingitems";
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryArchivesList();
+    });
+
+    function queryArchivesList() {
+        var options = {
+            url: prefix + "/sKcBbRefillingitemsList",
+            viewUrl: prefix + "/sKcBbRefillingitemsView/{id}",
+            createUrl: prefix + "/sKcBbRefillingitemsAdd",
+            updateUrl: prefix + "/sKcBbRefillingitemsEdit/{id}",
+            removeUrl: prefix + "/sKcBbRefillingitemsRemove",
+            /*exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",*/
+            sortName: "id",
+            sortOrder: "asc",
+            modalName: "装斗报表",
+            fitColumns: true,
+            striped: true,
+            autoRowHeight: true,
+            rowNumbers: true,
+            showFooter:true,  //是否显示表格底部区域。
+            clickToSelect: true, //是否启用点击行时选中整行的功能。
+            singleSelect: true, //是否仅允许选择一行
+            columns: [{
+                checkbox: true
+            },
+                { field: 'id', title: '主键', align: 'center' ,visible:false},
+                    { field: 'refillingDate', title: '装斗日期', align: 'center' },
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'refillingDocumentNumber', title: '装斗单号', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂家', align: 'center' },
+                    { field: 'batchNumber', title: '批号', align: 'center' },
+                    { field: 'refillingQuantity', title: '装斗数量', align: 'center' },
+                    { field: 'unit', title: '单位', align: 'center' },
+                    { field: 'qualityStatus', title: '质量状况', align: 'center' },
+                    { field: 'refiller', title: '装斗人', align: 'center' },
+                    { field: 'verifier', title: '复核人', align: 'center' },
+
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        if (row.serviceId != 1) {
+                            var actions = [];
+                            actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="edit_page(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                            actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+                            var more = [];
+                            /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+                            more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+                            actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+                            return actions.join('');
+                        } else {
+                            return "";
+                        }
+                    }
+                }]
+        };
+        $.table.init(options);
+    }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#SKcBbRefillingitems-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbRefillingitems-form');
+        resetButton.addEventListener('click', function() {
+            _refresh();
+        });
+    }
+    function edit_page(id){
+        table.set();
+        var url = "/404.html";
+        if ($.common.isNotEmpty(id)) {
+            url = table.options.updateUrl.replace("{id}", id);
+        } else {
+            var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
+            if (id.length == 0) {
+                $.modal.alertWarning("请至少选择一条记录");
+                return;
+            }
+            url = table.options.updateUrl.replace("{id}", id);
+        }
+        $.modal.openTab("修改" + table.options.modalName, url + "?status=1" );
+    }
+
+    /* 用户状态显示 */
+    function statusTools(row) {
+        if (row.status == 1) {
+            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+        } else {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+        }
+    }
+</script>
+</body>
+
+</html>

+ 117 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsPageEdit.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('装斗报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbRefillingitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">装斗日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="refillingDate" placeholder="装斗日期" th:value="${refillingDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">装斗单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="refillingDocumentNumber" placeholder="装斗单号" th:value="${refillingDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂家:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂家" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">装斗数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="refillingQuantity" placeholder="装斗数量" th:value="${refillingQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="unit" placeholder="单位" th:value="${unit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">质量状况:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="qualityStatus" placeholder="质量状况" th:value="${qualityStatus}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">装斗人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="refiller" placeholder="装斗人" th:value="${refiller}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">复核人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="verifier" placeholder="复核人" th:value="${verifier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "kc/skcbbrefillingitems";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbRefillingitems-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/sKcBbRefillingitemsEdit", data);
+        }
+    }
+</script>

+ 145 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsAdd.html

@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('请货报表新增')" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-role-add">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-3 control-label">商品编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productCode" id="productCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">门店简称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeShortName" id="storeShortName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productName" id="productName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">请货单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="requisitionOrderNumber" id="requisitionOrderNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">剂型:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="dosageForm" id="dosageForm" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">规格:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="specification" id="specification" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产厂商:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="manufacturer" id="manufacturer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">供货单位:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="supplier" id="supplier" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="quantity" id="quantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">请货日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="requisitionDate" id="requisitionDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">产地:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="origin" id="origin" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">请货员(采购员):</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="requisitioner" id="requisitioner" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: ztree-js" />
+<script type="text/javascript">
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            add();
+        }
+    }
+
+    function add() {
+           var productCode = $("input[name='productCode']").val();
+           var storeShortName = $("input[name='storeShortName']").val();
+           var productName = $("input[name='productName']").val();
+           var requisitionOrderNumber = $("input[name='requisitionOrderNumber']").val();
+           var dosageForm = $("input[name='dosageForm']").val();
+           var specification = $("input[name='specification']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var supplier = $("input[name='supplier']").val();
+           var quantity = $("input[name='quantity']").val();
+           var requisitionDate = $("input[name='requisitionDate']").val();
+           var origin = $("input[name='origin']").val();
+           var requisitioner = $("input[name='requisitioner']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbrequisitionorderitems/sKcBbRequisitionorderitemsAdd",
+            data : {
+                "productCode": productCode,
+                "storeShortName": storeShortName,
+                "productName": productName,
+                "requisitionOrderNumber": requisitionOrderNumber,
+                "dosageForm": dosageForm,
+                "specification": specification,
+                "manufacturer": manufacturer,
+                "supplier": supplier,
+                "quantity": quantity,
+                "requisitionDate": requisitionDate,
+                "origin": origin,
+                "requisitioner": requisitioner,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 132 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsEdit.html

@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('请货报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbRequisitionorderitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店简称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeShortName" placeholder="门店简称" th:value="${storeShortName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">请货单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="requisitionOrderNumber" placeholder="请货单号" th:value="${requisitionOrderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">剂型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dosageForm" placeholder="剂型" th:value="${dosageForm}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂商:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂商" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">供货单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="supplier" placeholder="供货单位" th:value="${supplier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="quantity" placeholder="数量" th:value="${quantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">请货日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="requisitionDate" placeholder="请货日期" th:value="${requisitionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">产地:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="origin" placeholder="产地" th:value="${origin}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">请货员(采购员):</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="requisitioner" placeholder="请货员(采购员)" th:value="${requisitioner}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <!--<button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>-->
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function edit() {
+        var data = $("#form-SKcBbRequisitionorderitems-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbrequisitionorderitems/sKcBbRequisitionorderitemsEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 241 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsList.html

@@ -0,0 +1,241 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <meta charset="UTF-8">
+    <meta name="format-detection" content="telephone=no">
+    <th:block th:include="include :: header('请货报表')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<style>
+    /* 设置 ul 的基本样式 */
+    ul {
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+    }
+    ul-list ul{
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+    }
+    ul-list ul li{
+        /*padding: 10px;*/ /* 内边距 */
+        text-align: left; /* 文本居中 */
+    }
+
+    /* 设置 li 的基本样式 */
+    li {
+        /*background-color: lightblue; *//* 背景颜色 */
+        /*padding: 1px; !* 内边距 *!*/
+        text-align: right; /* 文本居中 */
+    }
+</style>
+
+<body class="gray-bg">
+<div class="ui-layout-center">
+    <div class="container-div">
+        <div class="row">
+            <div class="col-sm-12 search-collapse" >
+                <form id="SKcBbRequisitionorderitems-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店简称:<input type="text" class="styled-input" name="storeShortName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                请货单号:<input type="text" class="styled-input" name="requisitionOrderNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                剂型:<input type="text" class="styled-input" name="dosageForm" autocomplete="off"/>
+                            </li>
+                            <li>
+                                规格:<input type="text" class="styled-input" name="specification" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产厂商:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                供货单位:<input type="text" class="styled-input" name="supplier" autocomplete="off"/>
+                            </li>
+                            <li>
+                                数量:<input type="text" class="styled-input" name="quantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                请货日期:<input type="text" class="styled-input" name="requisitionDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                产地:<input type="text" class="styled-input" name="origin" autocomplete="off"/>
+                            </li>
+                            <li>
+                                请货员(采购员):<input type="text" class="styled-input" name="requisitioner" autocomplete="off"/>
+                            </li>
+                            <li style="text-align: center">
+                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                                <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+                            </li>
+                        </ul>
+                    </div>
+
+                </form>
+            </div>
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:user:add">
+                    <i class="fa fa-plus"></i> 新增
+                </a>
+                 <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:user:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+                    <i class="fa fa-upload"></i> 导入
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+    var prefix = ctx + "kc/skcbbrequisitionorderitems";
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryArchivesList();
+    });
+
+    function queryArchivesList() {
+        var options = {
+            url: prefix + "/sKcBbRequisitionorderitemsList",
+            viewUrl: prefix + "/sKcBbRequisitionorderitemsView/{id}",
+            createUrl: prefix + "/sKcBbRequisitionorderitemsAdd",
+            updateUrl: prefix + "/sKcBbRequisitionorderitemsEdit/{id}",
+            removeUrl: prefix + "/sKcBbRequisitionorderitemsRemove",
+            /*exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",*/
+            sortName: "id",
+            sortOrder: "asc",
+            modalName: "请货报表",
+            fitColumns: true,
+            striped: true,
+            autoRowHeight: true,
+            rowNumbers: true,
+            showFooter:true,  //是否显示表格底部区域。
+            clickToSelect: true, //是否启用点击行时选中整行的功能。
+            singleSelect: true, //是否仅允许选择一行
+            columns: [{
+                checkbox: true
+            },
+                { field: 'id', title: '主键', align: 'center' ,visible:false},
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'storeShortName', title: '门店简称', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'requisitionOrderNumber', title: '请货单号', align: 'center' },
+                    { field: 'dosageForm', title: '剂型', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂商', align: 'center' },
+                    { field: 'supplier', title: '供货单位', align: 'center' },
+                    { field: 'quantity', title: '数量', align: 'center' },
+                    { field: 'requisitionDate', title: '请货日期', align: 'center' },
+                    { field: 'origin', title: '产地', align: 'center' },
+                    { field: 'requisitioner', title: '请货员(采购员)', align: 'center' },
+
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        if (row.serviceId != 1) {
+                            var actions = [];
+                            actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="edit_page(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                            actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+                            var more = [];
+                            /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+                            more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+                            actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+                            return actions.join('');
+                        } else {
+                            return "";
+                        }
+                    }
+                }]
+        };
+        $.table.init(options);
+    }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#SKcBbRequisitionorderitems-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbRequisitionorderitems-form');
+        resetButton.addEventListener('click', function() {
+            _refresh();
+        });
+    }
+    function edit_page(id){
+        table.set();
+        var url = "/404.html";
+        if ($.common.isNotEmpty(id)) {
+            url = table.options.updateUrl.replace("{id}", id);
+        } else {
+            var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
+            if (id.length == 0) {
+                $.modal.alertWarning("请至少选择一条记录");
+                return;
+            }
+            url = table.options.updateUrl.replace("{id}", id);
+        }
+        $.modal.openTab("修改" + table.options.modalName, url + "?status=1" );
+    }
+
+    /* 用户状态显示 */
+    function statusTools(row) {
+        if (row.status == 1) {
+            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+        } else {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+        }
+    }
+</script>
+</body>
+
+</html>

+ 123 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsPageEdit.html

@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('请货报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbRequisitionorderitems-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店简称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeShortName" placeholder="门店简称" th:value="${storeShortName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">请货单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="requisitionOrderNumber" placeholder="请货单号" th:value="${requisitionOrderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">剂型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dosageForm" placeholder="剂型" th:value="${dosageForm}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂商:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂商" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">供货单位:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="supplier" placeholder="供货单位" th:value="${supplier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="quantity" placeholder="数量" th:value="${quantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">请货日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="requisitionDate" placeholder="请货日期" th:value="${requisitionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">产地:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="origin" placeholder="产地" th:value="${origin}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">请货员(采购员):</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="requisitioner" placeholder="请货员(采购员)" th:value="${requisitioner}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "kc/skcbbrequisitionorderitems";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbRequisitionorderitems-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/sKcBbRequisitionorderitemsEdit", data);
+        }
+    }
+</script>

+ 161 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesAdd.html

@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('零售报表新增')" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-role-add">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-3 control-label">商品编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productCode" id="productCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">门店简称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeShortName" id="storeShortName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">销售日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="saleDate" id="saleDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productName" id="productName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">零售单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="retailDocumentNumber" id="retailDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产厂商:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="manufacturer" id="manufacturer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">销售数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="saleQuantity" id="saleQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">价格:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="price" id="price" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="batchNumber" id="batchNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">生产日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productionDate" id="productionDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">销售金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="saleAmount" id="saleAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">规格:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="specification" id="specification" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">批准文号/注册证号/生产许可证号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="approvalNumber" id="approvalNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">有效期至:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="expirationDate" id="expirationDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: ztree-js" />
+<script type="text/javascript">
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            add();
+        }
+    }
+
+    function add() {
+           var productCode = $("input[name='productCode']").val();
+           var storeShortName = $("input[name='storeShortName']").val();
+           var saleDate = $("input[name='saleDate']").val();
+           var productName = $("input[name='productName']").val();
+           var retailDocumentNumber = $("input[name='retailDocumentNumber']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var saleQuantity = $("input[name='saleQuantity']").val();
+           var price = $("input[name='price']").val();
+           var batchNumber = $("input[name='batchNumber']").val();
+           var productionDate = $("input[name='productionDate']").val();
+           var saleAmount = $("input[name='saleAmount']").val();
+           var specification = $("input[name='specification']").val();
+           var approvalNumber = $("input[name='approvalNumber']").val();
+           var expirationDate = $("input[name='expirationDate']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbretailsales/sKcBbRetailsalesAdd",
+            data : {
+                "productCode": productCode,
+                "storeShortName": storeShortName,
+                "saleDate": saleDate,
+                "productName": productName,
+                "retailDocumentNumber": retailDocumentNumber,
+                "manufacturer": manufacturer,
+                "saleQuantity": saleQuantity,
+                "price": price,
+                "batchNumber": batchNumber,
+                "productionDate": productionDate,
+                "saleAmount": saleAmount,
+                "specification": specification,
+                "approvalNumber": approvalNumber,
+                "expirationDate": expirationDate,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 144 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesEdit.html

@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('零售报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbRetailsales-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店简称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeShortName" placeholder="门店简称" th:value="${storeShortName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="saleDate" placeholder="销售日期" th:value="${saleDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">零售单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="retailDocumentNumber" placeholder="零售单号" th:value="${retailDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂商:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂商" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="saleQuantity" placeholder="销售数量" th:value="${saleQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">价格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="price" placeholder="价格" th:value="${price}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productionDate" placeholder="生产日期" th:value="${productionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="saleAmount" placeholder="销售金额/元" th:value="${saleAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批准文号/注册证号/生产许可证号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="approvalNumber" placeholder="批准文号/注册证号/生产许可证号" th:value="${approvalNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">有效期至:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expirationDate" placeholder="有效期至" th:value="${expirationDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <!--<button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>-->
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function edit() {
+        var data = $("#form-SKcBbRetailsales-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbretailsales/sKcBbRetailsalesEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 249 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesList.html

@@ -0,0 +1,249 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <meta charset="UTF-8">
+    <meta name="format-detection" content="telephone=no">
+    <th:block th:include="include :: header('零售报表')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+</head>
+<style>
+    /* 设置 ul 的基本样式 */
+    ul {
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+    }
+    ul-list ul{
+        list-style-type: none; /* 去掉项目符号 */
+        padding: 0; /* 去掉默认的内边距 */
+        display: grid; /* 使用网格布局 */
+        grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+    }
+    ul-list ul li{
+        /*padding: 10px;*/ /* 内边距 */
+        text-align: left; /* 文本居中 */
+    }
+
+    /* 设置 li 的基本样式 */
+    li {
+        /*background-color: lightblue; *//* 背景颜色 */
+        /*padding: 1px; !* 内边距 *!*/
+        text-align: right; /* 文本居中 */
+    }
+</style>
+
+<body class="gray-bg">
+<div class="ui-layout-center">
+    <div class="container-div">
+        <div class="row">
+            <div class="col-sm-12 search-collapse" >
+                <form id="SKcBbRetailsales-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店简称:<input type="text" class="styled-input" name="storeShortName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售日期:<input type="text" class="styled-input" name="saleDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                零售单号:<input type="text" class="styled-input" name="retailDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产厂商:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售数量:<input type="text" class="styled-input" name="saleQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                价格:<input type="text" class="styled-input" name="price" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批号:<input type="text" class="styled-input" name="batchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产日期:<input type="text" class="styled-input" name="productionDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售金额/元:<input type="text" class="styled-input" name="saleAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                规格:<input type="text" class="styled-input" name="specification" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批准文号/注册证号/生产许可证号:<input type="text" class="styled-input" name="approvalNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                有效期至:<input type="text" class="styled-input" name="expirationDate" autocomplete="off"/>
+                            </li>
+                            <li style="text-align: center">
+                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                                <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+                            </li>
+                        </ul>
+                    </div>
+
+                </form>
+            </div>
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:user:add">
+                    <i class="fa fa-plus"></i> 新增
+                </a>
+                 <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:user:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+                    <i class="fa fa-upload"></i> 导入
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+    var prefix = ctx + "kc/skcbbretailsales";
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryArchivesList();
+    });
+
+    function queryArchivesList() {
+        var options = {
+            url: prefix + "/sKcBbRetailsalesList",
+            viewUrl: prefix + "/sKcBbRetailsalesView/{id}",
+            createUrl: prefix + "/sKcBbRetailsalesAdd",
+            updateUrl: prefix + "/sKcBbRetailsalesEdit/{id}",
+            removeUrl: prefix + "/sKcBbRetailsalesRemove",
+            /*exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",*/
+            sortName: "id",
+            sortOrder: "asc",
+            modalName: "零售报表",
+            fitColumns: true,
+            striped: true,
+            autoRowHeight: true,
+            rowNumbers: true,
+            showFooter:true,  //是否显示表格底部区域。
+            clickToSelect: true, //是否启用点击行时选中整行的功能。
+            singleSelect: true, //是否仅允许选择一行
+            columns: [{
+                checkbox: true
+            },
+                { field: 'id', title: '主键', align: 'center' ,visible:false},
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'storeShortName', title: '门店简称', align: 'center' },
+                    { field: 'saleDate', title: '销售日期', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'retailDocumentNumber', title: '零售单号', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂商', align: 'center' },
+                    { field: 'saleQuantity', title: '销售数量', align: 'center' },
+                    { field: 'price', title: '价格', align: 'center' },
+                    { field: 'batchNumber', title: '批号', align: 'center' },
+                    { field: 'productionDate', title: '生产日期', align: 'center' },
+                    { field: 'saleAmount', title: '销售金额/元', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'approvalNumber', title: '批准文号/注册证号/生产许可证号', align: 'center' },
+                    { field: 'expirationDate', title: '有效期至', align: 'center' },
+
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        if (row.serviceId != 1) {
+                            var actions = [];
+                            actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="edit_page(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                            actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+                            var more = [];
+                            /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+                            more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+                            actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+                            return actions.join('');
+                        } else {
+                            return "";
+                        }
+                    }
+                }]
+        };
+        $.table.init(options);
+    }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#SKcBbRetailsales-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbRetailsales-form');
+        resetButton.addEventListener('click', function() {
+            _refresh();
+        });
+    }
+    function edit_page(id){
+        table.set();
+        var url = "/404.html";
+        if ($.common.isNotEmpty(id)) {
+            url = table.options.updateUrl.replace("{id}", id);
+        } else {
+            var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
+            if (id.length == 0) {
+                $.modal.alertWarning("请至少选择一条记录");
+                return;
+            }
+            url = table.options.updateUrl.replace("{id}", id);
+        }
+        $.modal.openTab("修改" + table.options.modalName, url + "?status=1" );
+    }
+
+    /* 用户状态显示 */
+    function statusTools(row) {
+        if (row.status == 1) {
+            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+        } else {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+        }
+    }
+</script>
+</body>
+
+</html>

+ 135 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesPageEdit.html

@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('零售报表修改')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+<div class="ui-layout-center">
+    <form class="form-horizontal" id="form-SKcBbRetailsales-edit" th:object="${user}">
+        <h4 class="form-header h4">基本信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="form-group">
+                    <!--is-required 增加星号 显示为必填-->
+                    <label class="col-sm-1 control-label">商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCode" placeholder="商品编码" th:value="${productCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店简称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeShortName" placeholder="门店简称" th:value="${storeShortName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="saleDate" placeholder="销售日期" th:value="${saleDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productName" placeholder="商品名称" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">零售单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="retailDocumentNumber" placeholder="零售单号" th:value="${retailDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产厂商:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="manufacturer" placeholder="生产厂商" th:value="${manufacturer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="saleQuantity" placeholder="销售数量" th:value="${saleQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">价格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="price" placeholder="价格" th:value="${price}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="batchNumber" placeholder="批号" th:value="${batchNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">生产日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productionDate" placeholder="生产日期" th:value="${productionDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="saleAmount" placeholder="销售金额/元" th:value="${saleAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">规格:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="specification" placeholder="规格" th:value="${specification}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">批准文号/注册证号/生产许可证号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="approvalNumber" placeholder="批准文号/注册证号/生产许可证号" th:value="${approvalNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">有效期至:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expirationDate" placeholder="有效期至" th:value="${expirationDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "kc/skcbbretailsales";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbRetailsales-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/sKcBbRetailsalesEdit", data);
+        }
+    }
+</script>

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.