瀏覽代碼

add 新增菜单(库存管理
库内业务
盘点任务
盘点统计
货位管理
装斗记录
清斗记录
陈列养护
可疑商品处理
转库区管理
报损报溢申请
参数设置预警
滞销预警
连锁库存查询
门店库存查询
库区移动
出入库管理
门店请货申请
门店收货
店采申请
店采订单
店采收货
验收入库
退货申请
退货
出库
收货
门店请货单
门店请货满足率
收货差异
店采退货
电子验收单据
电子验收配置
报表
请货报表
收货报表
退货记录报表
养护记录报表
可疑商品报表
装斗报表
清斗报表
门店进销存月报表
门店进销存月报汇总
零售报表
拆零报表
验收入库报表
进销存商品明细)

bzd_lxf 5 月之前
父節點
當前提交
c1dd0dd56d
共有 100 個文件被更改,包括 17290 次插入18 次删除
  1. 108 18
      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. 92 0
      health-admin/src/main/resources/templates/dtp/followUpEvaluation/followUpEvaluationEdit.html
  47. 205 0
      health-admin/src/main/resources/templates/dtp/followUpEvaluation/followUpEvaluationList.html
  48. 369 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationAdd.html
  49. 300 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationEdit.html
  50. 353 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationList.html
  51. 291 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbInventoryvariationPageEdit.html
  52. 233 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesAdd.html
  53. 198 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesEdit.html
  54. 285 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesList.html
  55. 189 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbJxcspmxStoreinventorychangesPageEdit.html
  56. 193 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsAdd.html
  57. 168 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsEdit.html
  58. 265 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsList.html
  59. 159 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbMaintenanceorderitemsPageEdit.html
  60. 241 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionAdd.html
  61. 204 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionEdit.html
  62. 289 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionList.html
  63. 195 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbProductinspectionPageEdit.html
  64. 129 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsAdd.html
  65. 120 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsEdit.html
  66. 233 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsList.html
  67. 111 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQdjlCleaningitemsPageEdit.html
  68. 169 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsAdd.html
  69. 150 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsEdit.html
  70. 253 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsList.html
  71. 141 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbQualityreportitemsPageEdit.html
  72. 193 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsAdd.html
  73. 168 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsEdit.html
  74. 265 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsList.html
  75. 159 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReceiptorderitemsPageEdit.html
  76. 137 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsAdd.html
  77. 126 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsEdit.html
  78. 237 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsList.html
  79. 117 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRefillingitemsPageEdit.html
  80. 145 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsAdd.html
  81. 132 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsEdit.html
  82. 241 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsList.html
  83. 123 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRequisitionorderitemsPageEdit.html
  84. 161 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesAdd.html
  85. 144 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesEdit.html
  86. 249 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesList.html
  87. 135 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbRetailsalesPageEdit.html
  88. 153 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReturnorderitemsAdd.html
  89. 138 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReturnorderitemsEdit.html
  90. 245 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReturnorderitemsList.html
  91. 129 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbReturnorderitemsPageEdit.html
  92. 161 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbSalesanddispensingAdd.html
  93. 144 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbSalesanddispensingEdit.html
  94. 249 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbSalesanddispensingList.html
  95. 135 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbSalesanddispensingPageEdit.html
  96. 145 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbStoreinventorycostAdd.html
  97. 132 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbStoreinventorycostEdit.html
  98. 241 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbStoreinventorycostList.html
  99. 123 0
      health-admin/src/main/resources/templates/kc/bb/SKcBbStoreinventorycostPageEdit.html
  100. 121 0
      health-admin/src/main/resources/templates/kc/crk/SKcCrkArrivalinfoAdd.html

+ 108 - 18
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;
@@ -38,6 +35,9 @@ public class PharmaceuticalServiceController extends BaseController {
     //患者咨询
     private String prefix_patient_counseling = "dtp/patientCounseling";
 
+    //患者咨询
+    private String prefix_followUp_evaluation = "dtp/followUpEvaluation";
+
     @Autowired
     private PharmaceuticalService pharmaceuticalService;
 
@@ -79,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);
     }
@@ -94,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);
@@ -165,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) {
@@ -193,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);
@@ -264,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) {
@@ -290,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";
@@ -363,8 +357,7 @@ public class PharmaceuticalServiceController extends BaseController {
     @PostMapping("/patientCounselingRemove")
     @ResponseBody
     public AjaxResult patientCounselingRemove() throws Exception {
-        PageData pd = new PageData();
-        pd = this.getPageData();
+        PageData pd = this.getPageData();
         try {
             Integer deleteResult = pharmaceuticalService.patientCounselingRemove(pd);
             if (deleteResult == 1) {
@@ -391,7 +384,6 @@ public class PharmaceuticalServiceController extends BaseController {
     @RequiresPermissions("dtp:pmService:edit")
     @GetMapping("/patientCounselingEdit/{patientCounselingId}")
     public String patientCounselingView(@PathVariable("patientCounselingId") Long patientCounselingId, ModelMap mmap) throws Exception {
-        ObjectMapper mapper = new ObjectMapper();
         PageData pd = this.getPageData();
         pd.put("id", patientCounselingId);
         PageData pageData = pharmaceuticalService.findPatientCounselingList(pd).get(0);
@@ -425,4 +417,102 @@ public class PharmaceuticalServiceController extends BaseController {
             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; /* 文本居中 */
+}

+ 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>

+ 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>

+ 153 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbReturnorderitemsAdd.html

@@ -0,0 +1,153 @@
+<!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="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="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="returnOrderNumber" id="returnOrderNumber" 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="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="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="returnQuantity" id="returnQuantity" 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="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="creationDate" id="creationDate" 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="returnDate" id="returnDate" 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="returner" id="returner" 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 productName = $("input[name='productName']").val();
+           var productCode = $("input[name='productCode']").val();
+           var returnOrderNumber = $("input[name='returnOrderNumber']").val();
+           var specification = $("input[name='specification']").val();
+           var productionBatchNumber = $("input[name='productionBatchNumber']").val();
+           var batch = $("input[name='batch']").val();
+           var returnQuantity = $("input[name='returnQuantity']").val();
+           var unit = $("input[name='unit']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var costAmount = $("input[name='costAmount']").val();
+           var creationDate = $("input[name='creationDate']").val();
+           var returnDate = $("input[name='returnDate']").val();
+           var returner = $("input[name='returner']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbreturnorderitems/sKcBbReturnorderitemsAdd",
+            data : {
+                "productName": productName,
+                "productCode": productCode,
+                "returnOrderNumber": returnOrderNumber,
+                "specification": specification,
+                "productionBatchNumber": productionBatchNumber,
+                "batch": batch,
+                "returnQuantity": returnQuantity,
+                "unit": unit,
+                "manufacturer": manufacturer,
+                "costAmount": costAmount,
+                "creationDate": creationDate,
+                "returnDate": returnDate,
+                "returner": returner,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 138 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbReturnorderitemsEdit.html

@@ -0,0 +1,138 @@
+<!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-SKcBbReturnorderitems-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="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="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="returnOrderNumber" placeholder="退货单号" th:value="${returnOrderNumber}" class="styled-input" type="text" 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="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="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="returnQuantity" placeholder="退货数量" th:value="${returnQuantity}" class="styled-input" type="text" 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="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="creationDate" placeholder="制单日期" th:value="${creationDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退货日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="returnDate" placeholder="退货日期" th:value="${returnDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退货人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="returner" placeholder="退货人" th:value="${returner}" 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-SKcBbReturnorderitems-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbreturnorderitems/sKcBbReturnorderitemsEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 245 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbReturnorderitemsList.html

@@ -0,0 +1,245 @@
+<!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="SKcBbReturnorderitems-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="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退货单号:<input type="text" class="styled-input" name="returnOrderNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                规格:<input type="text" class="styled-input" name="specification" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产批号:<input type="text" class="styled-input" name="productionBatchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批次:<input type="text" class="styled-input" name="batch" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退货数量:<input type="text" class="styled-input" name="returnQuantity" 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="costAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                制单日期:<input type="text" class="styled-input" name="creationDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退货日期:<input type="text" class="styled-input" name="returnDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退货人:<input type="text" class="styled-input" name="returner" 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/skcbbreturnorderitems";
+    $(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 + "/sKcBbReturnorderitemsList",
+            viewUrl: prefix + "/sKcBbReturnorderitemsView/{id}",
+            createUrl: prefix + "/sKcBbReturnorderitemsAdd",
+            updateUrl: prefix + "/sKcBbReturnorderitemsEdit/{id}",
+            removeUrl: prefix + "/sKcBbReturnorderitemsRemove",
+            /*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: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'returnOrderNumber', title: '退货单号', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'productionBatchNumber', title: '生产批号', align: 'center' },
+                    { field: 'batch', title: '批次', align: 'center' },
+                    { field: 'returnQuantity', title: '退货数量', align: 'center' },
+                    { field: 'unit', title: '单位', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂商', align: 'center' },
+                    { field: 'costAmount', title: '成本金额', align: 'center' },
+                    { field: 'creationDate', title: '制单日期', align: 'center' },
+                    { field: 'returnDate', title: '退货日期', align: 'center' },
+                    { field: 'returner', 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();
+        $("#SKcBbReturnorderitems-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbReturnorderitems-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>

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

@@ -0,0 +1,129 @@
+<!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-SKcBbReturnorderitems-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="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="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="returnOrderNumber" placeholder="退货单号" th:value="${returnOrderNumber}" class="styled-input" type="text" 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="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="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="returnQuantity" placeholder="退货数量" th:value="${returnQuantity}" class="styled-input" type="text" 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="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="creationDate" placeholder="制单日期" th:value="${creationDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退货日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="returnDate" placeholder="退货日期" th:value="${returnDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退货人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="returner" placeholder="退货人" th:value="${returner}" 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/skcbbreturnorderitems";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbReturnorderitems-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 + "/sKcBbReturnorderitemsEdit", data);
+        }
+    }
+</script>

+ 161 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbSalesanddispensingAdd.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="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="genericName" id="genericName" 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="saleDocumentNumber" id="saleDocumentNumber" 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="firstDispenseDate" id="firstDispenseDate" 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="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="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="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="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="dispenseUnit" id="dispenseUnit" 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="dispenser" id="dispenser" 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 saleDate = $("input[name='saleDate']").val();
+           var productName = $("input[name='productName']").val();
+           var genericName = $("input[name='genericName']").val();
+           var productCode = $("input[name='productCode']").val();
+           var saleDocumentNumber = $("input[name='saleDocumentNumber']").val();
+           var firstDispenseDate = $("input[name='firstDispenseDate']").val();
+           var specification = $("input[name='specification']").val();
+           var batchNumber = $("input[name='batchNumber']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var expirationDate = $("input[name='expirationDate']").val();
+           var saleQuantity = $("input[name='saleQuantity']").val();
+           var dispenseUnit = $("input[name='dispenseUnit']").val();
+           var dispenser = $("input[name='dispenser']").val();
+           var verifier = $("input[name='verifier']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbsalesanddispensing/sKcBbSalesanddispensingAdd",
+            data : {
+                "saleDate": saleDate,
+                "productName": productName,
+                "genericName": genericName,
+                "productCode": productCode,
+                "saleDocumentNumber": saleDocumentNumber,
+                "firstDispenseDate": firstDispenseDate,
+                "specification": specification,
+                "batchNumber": batchNumber,
+                "manufacturer": manufacturer,
+                "expirationDate": expirationDate,
+                "saleQuantity": saleQuantity,
+                "dispenseUnit": dispenseUnit,
+                "dispenser": dispenser,
+                "verifier": verifier,
+            },
+            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/SKcBbSalesanddispensingEdit.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-SKcBbSalesanddispensing-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="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="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="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="saleDocumentNumber" placeholder="销售单号" th:value="${saleDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">首拆日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="firstDispenseDate" placeholder="首拆日期" th:value="${firstDispenseDate}" class="styled-input" type="text" 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="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="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="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="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="dispenseUnit" placeholder="拆零单位" th:value="${dispenseUnit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">分拆人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dispenser" placeholder="分拆人" th:value="${dispenser}" class="styled-input" type="text" 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-SKcBbSalesanddispensing-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbsalesanddispensing/sKcBbSalesanddispensingEdit",
+            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/SKcBbSalesanddispensingList.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="SKcBbSalesanddispensing-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="saleDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                通用名称:<input type="text" class="styled-input" name="genericName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品编码:<input type="text" class="styled-input" name="productCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售单号:<input type="text" class="styled-input" name="saleDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                首拆日期:<input type="text" class="styled-input" name="firstDispenseDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                规格:<input type="text" class="styled-input" name="specification" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批号:<input type="text" class="styled-input" name="batchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产厂商:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                有效期至:<input type="text" class="styled-input" name="expirationDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售数量:<input type="text" class="styled-input" name="saleQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                拆零单位:<input type="text" class="styled-input" name="dispenseUnit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                分拆人:<input type="text" class="styled-input" name="dispenser" 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/skcbbsalesanddispensing";
+    $(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 + "/sKcBbSalesanddispensingList",
+            viewUrl: prefix + "/sKcBbSalesanddispensingView/{id}",
+            createUrl: prefix + "/sKcBbSalesanddispensingAdd",
+            updateUrl: prefix + "/sKcBbSalesanddispensingEdit/{id}",
+            removeUrl: prefix + "/sKcBbSalesanddispensingRemove",
+            /*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: 'saleDate', title: '销售日期', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'genericName', title: '通用名称', align: 'center' },
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'saleDocumentNumber', title: '销售单号', align: 'center' },
+                    { field: 'firstDispenseDate', title: '首拆日期', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'batchNumber', title: '批号', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂商', align: 'center' },
+                    { field: 'expirationDate', title: '有效期至', align: 'center' },
+                    { field: 'saleQuantity', title: '销售数量', align: 'center' },
+                    { field: 'dispenseUnit', title: '拆零单位', align: 'center' },
+                    { field: 'dispenser', 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();
+        $("#SKcBbSalesanddispensing-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbSalesanddispensing-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/SKcBbSalesanddispensingPageEdit.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-SKcBbSalesanddispensing-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="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="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="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="saleDocumentNumber" placeholder="销售单号" th:value="${saleDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">首拆日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="firstDispenseDate" placeholder="首拆日期" th:value="${firstDispenseDate}" class="styled-input" type="text" 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="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="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="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="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="dispenseUnit" placeholder="拆零单位" th:value="${dispenseUnit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">分拆人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dispenser" placeholder="分拆人" th:value="${dispenser}" class="styled-input" type="text" 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/skcbbsalesanddispensing";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbSalesanddispensing-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 + "/sKcBbSalesanddispensingEdit", data);
+        }
+    }
+</script>

+ 145 - 0
health-admin/src/main/resources/templates/kc/bb/SKcBbStoreinventorycostAdd.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="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">门店ID:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="storeId" id="storeId" 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="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="deliveryCost" id="deliveryCost" 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="returnWarehouseCost" id="returnWarehouseCost" 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="salesCost" id="salesCost" 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="salesReturnAmount" id="salesReturnAmount" 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="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="finalStockCost" id="finalStockCost" 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 storeId = $("input[name='storeId']").val();
+           var storeName = $("input[name='storeName']").val();
+           var initialStockCost = $("input[name='initialStockCost']").val();
+           var deliveryCost = $("input[name='deliveryCost']").val();
+           var returnWarehouseCost = $("input[name='returnWarehouseCost']").val();
+           var salesCost = $("input[name='salesCost']").val();
+           var salesReturnAmount = $("input[name='salesReturnAmount']").val();
+           var lossCost = $("input[name='lossCost']").val();
+           var gainCost = $("input[name='gainCost']").val();
+           var finalStockCost = $("input[name='finalStockCost']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbstoreinventorycost/sKcBbStoreinventorycostAdd",
+            data : {
+                "sequenceNumber": sequenceNumber,
+                "period": period,
+                "storeId": storeId,
+                "storeName": storeName,
+                "initialStockCost": initialStockCost,
+                "deliveryCost": deliveryCost,
+                "returnWarehouseCost": returnWarehouseCost,
+                "salesCost": salesCost,
+                "salesReturnAmount": salesReturnAmount,
+                "lossCost": lossCost,
+                "gainCost": gainCost,
+                "finalStockCost": finalStockCost,
+            },
+            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/SKcBbStoreinventorycostEdit.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-SKcBbStoreinventorycost-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">门店ID:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeId" placeholder="门店ID" th:value="${storeId}" class="styled-input" type="text" 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="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="deliveryCost" placeholder="配送成本金额/元" th:value="${deliveryCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退仓成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="returnWarehouseCost" placeholder="退仓成本金额/元" th:value="${returnWarehouseCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesCost" placeholder="销售成本金额/元" th:value="${salesCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售退货金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesReturnAmount" placeholder="销售退货金额/元" th:value="${salesReturnAmount}" class="styled-input" type="text" 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="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="finalStockCost" placeholder="期末库存成本金额/元" th:value="${finalStockCost}" 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-SKcBbStoreinventorycost-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skcbbstoreinventorycost/sKcBbStoreinventorycostEdit",
+            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/SKcBbStoreinventorycostList.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="SKcBbStoreinventorycost-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>
+                                门店ID:<input type="text" class="styled-input" name="storeId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店名称:<input type="text" class="styled-input" name="storeName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                期初库存成本金额/元:<input type="text" class="styled-input" name="initialStockCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                配送成本金额/元:<input type="text" class="styled-input" name="deliveryCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退仓成本金额/元:<input type="text" class="styled-input" name="returnWarehouseCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售成本金额/元:<input type="text" class="styled-input" name="salesCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售退货金额/元:<input type="text" class="styled-input" name="salesReturnAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                报损成本金额/元:<input type="text" class="styled-input" name="lossCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                报溢成本金额/元:<input type="text" class="styled-input" name="gainCost" autocomplete="off"/>
+                            </li>
+                            <li>
+                                期末库存成本金额/元:<input type="text" class="styled-input" name="finalStockCost" 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/skcbbstoreinventorycost";
+    $(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 + "/sKcBbStoreinventorycostList",
+            viewUrl: prefix + "/sKcBbStoreinventorycostView/{id}",
+            createUrl: prefix + "/sKcBbStoreinventorycostAdd",
+            updateUrl: prefix + "/sKcBbStoreinventorycostEdit/{id}",
+            removeUrl: prefix + "/sKcBbStoreinventorycostRemove",
+            /*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: 'storeId', title: '门店ID', align: 'center' },
+                    { field: 'storeName', title: '门店名称', align: 'center' },
+                    { field: 'initialStockCost', title: '期初库存成本金额/元', align: 'center' },
+                    { field: 'deliveryCost', title: '配送成本金额/元', align: 'center' },
+                    { field: 'returnWarehouseCost', title: '退仓成本金额/元', align: 'center' },
+                    { field: 'salesCost', title: '销售成本金额/元', align: 'center' },
+                    { field: 'salesReturnAmount', title: '销售退货金额/元', align: 'center' },
+                    { field: 'lossCost', title: '报损成本金额/元', align: 'center' },
+                    { field: 'gainCost', title: '报溢成本金额/元', align: 'center' },
+                    { field: 'finalStockCost', 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();
+        $("#SKcBbStoreinventorycost-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SKcBbStoreinventorycost-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/SKcBbStoreinventorycostPageEdit.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-SKcBbStoreinventorycost-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">门店ID:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="storeId" placeholder="门店ID" th:value="${storeId}" class="styled-input" type="text" 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="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="deliveryCost" placeholder="配送成本金额/元" th:value="${deliveryCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退仓成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="returnWarehouseCost" placeholder="退仓成本金额/元" th:value="${returnWarehouseCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesCost" placeholder="销售成本金额/元" th:value="${salesCost}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售退货金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesReturnAmount" placeholder="销售退货金额/元" th:value="${salesReturnAmount}" class="styled-input" type="text" 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="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="finalStockCost" placeholder="期末库存成本金额/元" th:value="${finalStockCost}" 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/skcbbstoreinventorycost";
+        if ($.validate.form()) {
+            var data = $("#form-SKcBbStoreinventorycost-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 + "/sKcBbStoreinventorycostEdit", data);
+        }
+    }
+</script>

+ 121 - 0
health-admin/src/main/resources/templates/kc/crk/SKcCrkArrivalinfoAdd.html

@@ -0,0 +1,121 @@
+<!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="arrivalStore" id="arrivalStore" 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="arrivalDocumentNumber" id="arrivalDocumentNumber" 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">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="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="submissionTime" id="submissionTime" 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="arrivalItemCount" id="arrivalItemCount" 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="discrepancyItemCount" id="discrepancyItemCount" 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 arrivalStore = $("input[name='arrivalStore']").val();
+           var arrivalDocumentNumber = $("input[name='arrivalDocumentNumber']").val();
+           var sourceDocumentNumber = $("input[name='sourceDocumentNumber']").val();
+           var sapDeliveryDocumentNumber = $("input[name='sapDeliveryDocumentNumber']").val();
+           var arrivalTime = $("input[name='arrivalTime']").val();
+           var submissionTime = $("input[name='submissionTime']").val();
+           var arrivalItemCount = $("input[name='arrivalItemCount']").val();
+           var discrepancyItemCount = $("input[name='discrepancyItemCount']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "kc/skccrkarrivalinfo/sKcCrkArrivalinfoAdd",
+            data : {
+                "sequenceNumber": sequenceNumber,
+                "arrivalStore": arrivalStore,
+                "arrivalDocumentNumber": arrivalDocumentNumber,
+                "sourceDocumentNumber": sourceDocumentNumber,
+                "sapDeliveryDocumentNumber": sapDeliveryDocumentNumber,
+                "arrivalTime": arrivalTime,
+                "submissionTime": submissionTime,
+                "arrivalItemCount": arrivalItemCount,
+                "discrepancyItemCount": discrepancyItemCount,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

Some files were not shown because too many files changed in this diff