Эх сурвалжийг харах

add 新增菜单组 报表分析 服务管理 销售管理

bzd_lxf 6 сар өмнө
parent
commit
879db82671
100 өөрчлөгдсөн 17775 нэмэгдсэн , 0 устгасан
  1. 158 0
      health-admin/src/main/java/com/bzd/web/controller/bbfx/SBbfxKcbbInventoryShortageDetailController.java
  2. 158 0
      health-admin/src/main/java/com/bzd/web/controller/bbfx/SBbfxKcbbJgkcmxController.java
  3. 158 0
      health-admin/src/main/java/com/bzd/web/controller/fwgl/SFwglServercommissionrewardinfoController.java
  4. 158 0
      health-admin/src/main/java/com/bzd/web/controller/fwgl/SFwglServerinfoController.java
  5. 158 0
      health-admin/src/main/java/com/bzd/web/controller/fwgl/SFwglServerorderinfoController.java
  6. 158 0
      health-admin/src/main/java/com/bzd/web/controller/fwgl/SFwglServicepackageinfoController.java
  7. 158 0
      health-admin/src/main/java/com/bzd/web/controller/fwgl/SFwglServicetypeinfoController.java
  8. 158 0
      health-admin/src/main/java/com/bzd/web/controller/hygl/SHyglHyxxJzyxMarketingplaninfoController.java
  9. 158 0
      health-admin/src/main/java/com/bzd/web/controller/xsgl/SXsglMdlsSalesinventoryinfoController.java
  10. 158 0
      health-admin/src/main/java/com/bzd/web/controller/xsgl/SXsglMdlsrbbYgSalesperformanceinfoController.java
  11. 158 0
      health-admin/src/main/java/com/bzd/web/controller/xsgl/SXsglReturninfoController.java
  12. 158 0
      health-admin/src/main/java/com/bzd/web/controller/xsgl/SXsglReturnproductinfoController.java
  13. 158 0
      health-admin/src/main/java/com/bzd/web/controller/xsgl/SXsglXsmxDdmxSalesorderinfoController.java
  14. 158 0
      health-admin/src/main/java/com/bzd/web/controller/xsgl/SXsglXsmxSpmxSalesdetailinfoController.java
  15. 158 0
      health-admin/src/main/java/com/bzd/web/controller/xsgl/SXsglXsmxZkmxSalesdiscountinfoController.java
  16. 137 0
      health-admin/src/main/resources/templates/bbfx/SBbfxKcbbInventoryShortageDetailAdd.html
  17. 126 0
      health-admin/src/main/resources/templates/bbfx/SBbfxKcbbInventoryShortageDetailEdit.html
  18. 237 0
      health-admin/src/main/resources/templates/bbfx/SBbfxKcbbInventoryShortageDetailList.html
  19. 117 0
      health-admin/src/main/resources/templates/bbfx/SBbfxKcbbInventoryShortageDetailPageEdit.html
  20. 137 0
      health-admin/src/main/resources/templates/bbfx/SBbfxKcbbJgkcmxAdd.html
  21. 126 0
      health-admin/src/main/resources/templates/bbfx/SBbfxKcbbJgkcmxEdit.html
  22. 237 0
      health-admin/src/main/resources/templates/bbfx/SBbfxKcbbJgkcmxList.html
  23. 117 0
      health-admin/src/main/resources/templates/bbfx/SBbfxKcbbJgkcmxPageEdit.html
  24. 161 0
      health-admin/src/main/resources/templates/fwgl/SFwglServercommissionrewardinfoAdd.html
  25. 144 0
      health-admin/src/main/resources/templates/fwgl/SFwglServercommissionrewardinfoEdit.html
  26. 249 0
      health-admin/src/main/resources/templates/fwgl/SFwglServercommissionrewardinfoList.html
  27. 135 0
      health-admin/src/main/resources/templates/fwgl/SFwglServercommissionrewardinfoPageEdit.html
  28. 129 0
      health-admin/src/main/resources/templates/fwgl/SFwglServerinfoAdd.html
  29. 120 0
      health-admin/src/main/resources/templates/fwgl/SFwglServerinfoEdit.html
  30. 233 0
      health-admin/src/main/resources/templates/fwgl/SFwglServerinfoList.html
  31. 111 0
      health-admin/src/main/resources/templates/fwgl/SFwglServerinfoPageEdit.html
  32. 185 0
      health-admin/src/main/resources/templates/fwgl/SFwglServerorderinfoAdd.html
  33. 162 0
      health-admin/src/main/resources/templates/fwgl/SFwglServerorderinfoEdit.html
  34. 261 0
      health-admin/src/main/resources/templates/fwgl/SFwglServerorderinfoList.html
  35. 153 0
      health-admin/src/main/resources/templates/fwgl/SFwglServerorderinfoPageEdit.html
  36. 145 0
      health-admin/src/main/resources/templates/fwgl/SFwglServicepackageinfoAdd.html
  37. 132 0
      health-admin/src/main/resources/templates/fwgl/SFwglServicepackageinfoEdit.html
  38. 241 0
      health-admin/src/main/resources/templates/fwgl/SFwglServicepackageinfoList.html
  39. 123 0
      health-admin/src/main/resources/templates/fwgl/SFwglServicepackageinfoPageEdit.html
  40. 89 0
      health-admin/src/main/resources/templates/fwgl/SFwglServicetypeinfoAdd.html
  41. 90 0
      health-admin/src/main/resources/templates/fwgl/SFwglServicetypeinfoEdit.html
  42. 213 0
      health-admin/src/main/resources/templates/fwgl/SFwglServicetypeinfoList.html
  43. 81 0
      health-admin/src/main/resources/templates/fwgl/SFwglServicetypeinfoPageEdit.html
  44. 161 0
      health-admin/src/main/resources/templates/hygl/SHyglHyxxJzyxMarketingplaninfoAdd.html
  45. 144 0
      health-admin/src/main/resources/templates/hygl/SHyglHyxxJzyxMarketingplaninfoEdit.html
  46. 249 0
      health-admin/src/main/resources/templates/hygl/SHyglHyxxJzyxMarketingplaninfoList.html
  47. 135 0
      health-admin/src/main/resources/templates/hygl/SHyglHyxxJzyxMarketingplaninfoPageEdit.html
  48. 417 0
      health-admin/src/main/resources/templates/xsgl/SXsglMdlsSalesinventoryinfoAdd.html
  49. 336 0
      health-admin/src/main/resources/templates/xsgl/SXsglMdlsSalesinventoryinfoEdit.html
  50. 377 0
      health-admin/src/main/resources/templates/xsgl/SXsglMdlsSalesinventoryinfoList.html
  51. 327 0
      health-admin/src/main/resources/templates/xsgl/SXsglMdlsSalesinventoryinfoPageEdit.html
  52. 401 0
      health-admin/src/main/resources/templates/xsgl/SXsglMdlsrbbYgSalesperformanceinfoAdd.html
  53. 324 0
      health-admin/src/main/resources/templates/xsgl/SXsglMdlsrbbYgSalesperformanceinfoEdit.html
  54. 369 0
      health-admin/src/main/resources/templates/xsgl/SXsglMdlsrbbYgSalesperformanceinfoList.html
  55. 315 0
      health-admin/src/main/resources/templates/xsgl/SXsglMdlsrbbYgSalesperformanceinfoPageEdit.html
  56. 145 0
      health-admin/src/main/resources/templates/xsgl/SXsglReturninfoAdd.html
  57. 132 0
      health-admin/src/main/resources/templates/xsgl/SXsglReturninfoEdit.html
  58. 241 0
      health-admin/src/main/resources/templates/xsgl/SXsglReturninfoList.html
  59. 123 0
      health-admin/src/main/resources/templates/xsgl/SXsglReturninfoPageEdit.html
  60. 129 0
      health-admin/src/main/resources/templates/xsgl/SXsglReturnproductinfoAdd.html
  61. 120 0
      health-admin/src/main/resources/templates/xsgl/SXsglReturnproductinfoEdit.html
  62. 233 0
      health-admin/src/main/resources/templates/xsgl/SXsglReturnproductinfoList.html
  63. 111 0
      health-admin/src/main/resources/templates/xsgl/SXsglReturnproductinfoPageEdit.html
  64. 145 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxDdmxSalesorderinfoAdd.html
  65. 132 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxDdmxSalesorderinfoEdit.html
  66. 241 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxDdmxSalesorderinfoList.html
  67. 123 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxDdmxSalesorderinfoPageEdit.html
  68. 385 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxSpmxSalesdetailinfoAdd.html
  69. 312 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxSpmxSalesdetailinfoEdit.html
  70. 361 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxSpmxSalesdetailinfoList.html
  71. 303 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxSpmxSalesdetailinfoPageEdit.html
  72. 225 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxZkmxSalesdiscountinfoAdd.html
  73. 192 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxZkmxSalesdiscountinfoEdit.html
  74. 281 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxZkmxSalesdiscountinfoList.html
  75. 183 0
      health-admin/src/main/resources/templates/xsgl/SXsglXsmxZkmxSalesdiscountinfoPageEdit.html
  76. 47 0
      health-system/src/main/java/com/bzd/system/service/bbfx/SBbfxKcbbInventoryShortageDetailService.java
  77. 47 0
      health-system/src/main/java/com/bzd/system/service/bbfx/SBbfxKcbbJgkcmxService.java
  78. 47 0
      health-system/src/main/java/com/bzd/system/service/fwgl/SFwglServercommissionrewardinfoService.java
  79. 47 0
      health-system/src/main/java/com/bzd/system/service/fwgl/SFwglServerinfoService.java
  80. 47 0
      health-system/src/main/java/com/bzd/system/service/fwgl/SFwglServerorderinfoService.java
  81. 47 0
      health-system/src/main/java/com/bzd/system/service/fwgl/SFwglServicepackageinfoService.java
  82. 47 0
      health-system/src/main/java/com/bzd/system/service/fwgl/SFwglServicetypeinfoService.java
  83. 47 0
      health-system/src/main/java/com/bzd/system/service/hygl/SHyglHyxxJzyxMarketingplaninfoService.java
  84. 47 0
      health-system/src/main/java/com/bzd/system/service/xsgl/SXsglMdlsSalesinventoryinfoService.java
  85. 47 0
      health-system/src/main/java/com/bzd/system/service/xsgl/SXsglMdlsrbbYgSalesperformanceinfoService.java
  86. 47 0
      health-system/src/main/java/com/bzd/system/service/xsgl/SXsglReturninfoService.java
  87. 47 0
      health-system/src/main/java/com/bzd/system/service/xsgl/SXsglReturnproductinfoService.java
  88. 47 0
      health-system/src/main/java/com/bzd/system/service/xsgl/SXsglXsmxDdmxSalesorderinfoService.java
  89. 47 0
      health-system/src/main/java/com/bzd/system/service/xsgl/SXsglXsmxSpmxSalesdetailinfoService.java
  90. 47 0
      health-system/src/main/java/com/bzd/system/service/xsgl/SXsglXsmxZkmxSalesdiscountinfoService.java
  91. 177 0
      health-system/src/main/resources/mapper/bbfx/SBbfxKcbbInventoryShortageDetailMapper.xml
  92. 177 0
      health-system/src/main/resources/mapper/bbfx/SBbfxKcbbJgkcmxMapper.xml
  93. 210 0
      health-system/src/main/resources/mapper/fwgl/SFwglServercommissionrewardinfoMapper.xml
  94. 162 0
      health-system/src/main/resources/mapper/fwgl/SFwglServerinfoMapper.xml
  95. 246 0
      health-system/src/main/resources/mapper/fwgl/SFwglServerorderinfoMapper.xml
  96. 186 0
      health-system/src/main/resources/mapper/fwgl/SFwglServicepackageinfoMapper.xml
  97. 105 0
      health-system/src/main/resources/mapper/fwgl/SFwglServicetypeinfoMapper.xml
  98. 210 0
      health-system/src/main/resources/mapper/hygl/SHyglHyxxJzyxMarketingplaninfoMapper.xml
  99. 594 0
      health-system/src/main/resources/mapper/xsgl/SXsglMdlsSalesinventoryinfoMapper.xml
  100. 570 0
      health-system/src/main/resources/mapper/xsgl/SXsglMdlsrbbYgSalesperformanceinfoMapper.xml

+ 158 - 0
health-admin/src/main/java/com/bzd/web/controller/bbfx/SBbfxKcbbInventoryShortageDetailController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.bbfx;
+
+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.bbfx.SBbfxKcbbInventoryShortageDetailService;
+
+import java.util.List;
+
+/**
+*
+* 商品缺货明细表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "bbfx/sbbfxkcbbinventoryshortagedetail")
+public class SBbfxKcbbInventoryShortageDetailController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "bbfx";
+
+    @Autowired
+    private SBbfxKcbbInventoryShortageDetailService sBbfxKcbbInventoryShortageDetailService;
+
+    /**
+    * 商品缺货明细表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("bbfx:bb:view")
+    @GetMapping("/sBbfxKcbbInventoryShortageDetailAdd")
+    public String add() {
+        return prefix + "/SBbfxKcbbInventoryShortageDetailAdd";
+    }
+
+    /**
+    * 商品缺货明细表 新增
+    *
+    * @return
+    */
+    @Log(title = "商品缺货明细表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sBbfxKcbbInventoryShortageDetailAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sBbfxKcbbInventoryShortageDetailService.addSBbfxKcbbInventoryShortageDetail(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("bbfx:bb:view")
+    @GetMapping("/sBbfxKcbbInventoryShortageDetailView")
+    public String sbbfxkcbbinventoryshortagedetailListView() {
+        return prefix + "/SBbfxKcbbInventoryShortageDetailList";
+    }
+
+    /**
+    * 商品缺货明细表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("bbfx:bb:sBbfxKcbbInventoryShortageDetailList")
+    @PostMapping("/sBbfxKcbbInventoryShortageDetailList")
+    @ResponseBody
+    public TableDataInfo sbbfxkcbbinventoryshortagedetailList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sBbfxKcbbInventoryShortageDetailService.findSBbfxKcbbInventoryShortageDetailList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 商品缺货明细表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("bbfx:bb:remove")
+    @Log(title = "商品缺货明细表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sBbfxKcbbInventoryShortageDetailRemove")
+    @ResponseBody
+    public AjaxResult sbbfxkcbbinventoryshortagedetailRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sBbfxKcbbInventoryShortageDetailService.SBbfxKcbbInventoryShortageDetailRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 商品缺货明细表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("bbfx:bb:edit")
+    @GetMapping("/sBbfxKcbbInventoryShortageDetailEdit/{id}")
+    public String sbbfxkcbbinventoryshortagedetailView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sBbfxKcbbInventoryShortageDetailService.findSBbfxKcbbInventoryShortageDetailList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sbbfxkcbbinventoryshortagedetailPageEdit";
+        }
+        return prefix+ "/sbbfxkcbbinventoryshortagedetailEdit";
+    }
+
+    /**
+    * 商品缺货明细表保存修改的数据
+    */
+    @RequiresPermissions("bbfx:bb:edit")
+    @Log(title = "商品缺货明细表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sBbfxKcbbInventoryShortageDetailEdit")
+    @ResponseBody
+    public AjaxResult sbbfxkcbbinventoryshortagedetailEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sBbfxKcbbInventoryShortageDetailService.updateSBbfxKcbbInventoryShortageDetail(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sbbfxkcbbinventoryshortagedetail with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sbbfxkcbbinventoryshortagedetail 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/bbfx/SBbfxKcbbJgkcmxController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.bbfx;
+
+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.bbfx.SBbfxKcbbJgkcmxService;
+
+import java.util.List;
+
+/**
+*
+* 机构库存表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "bbfx/sbbfxkcbbjgkcmx")
+public class SBbfxKcbbJgkcmxController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "bbfx";
+
+    @Autowired
+    private SBbfxKcbbJgkcmxService sBbfxKcbbJgkcmxService;
+
+    /**
+    * 机构库存表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("bbfx:bb:view")
+    @GetMapping("/sBbfxKcbbJgkcmxAdd")
+    public String add() {
+        return prefix + "/SBbfxKcbbJgkcmxAdd";
+    }
+
+    /**
+    * 机构库存表 新增
+    *
+    * @return
+    */
+    @Log(title = "机构库存表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sBbfxKcbbJgkcmxAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sBbfxKcbbJgkcmxService.addSBbfxKcbbJgkcmx(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("bbfx:bb:view")
+    @GetMapping("/sBbfxKcbbJgkcmxView")
+    public String sbbfxkcbbjgkcmxListView() {
+        return prefix + "/SBbfxKcbbJgkcmxList";
+    }
+
+    /**
+    * 机构库存表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("bbfx:bb:sBbfxKcbbJgkcmxList")
+    @PostMapping("/sBbfxKcbbJgkcmxList")
+    @ResponseBody
+    public TableDataInfo sbbfxkcbbjgkcmxList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sBbfxKcbbJgkcmxService.findSBbfxKcbbJgkcmxList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 机构库存表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("bbfx:bb:remove")
+    @Log(title = "机构库存表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sBbfxKcbbJgkcmxRemove")
+    @ResponseBody
+    public AjaxResult sbbfxkcbbjgkcmxRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sBbfxKcbbJgkcmxService.SBbfxKcbbJgkcmxRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 机构库存表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("bbfx:bb:edit")
+    @GetMapping("/sBbfxKcbbJgkcmxEdit/{id}")
+    public String sbbfxkcbbjgkcmxView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sBbfxKcbbJgkcmxService.findSBbfxKcbbJgkcmxList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sbbfxkcbbjgkcmxPageEdit";
+        }
+        return prefix+ "/sbbfxkcbbjgkcmxEdit";
+    }
+
+    /**
+    * 机构库存表保存修改的数据
+    */
+    @RequiresPermissions("bbfx:bb:edit")
+    @Log(title = "机构库存表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sBbfxKcbbJgkcmxEdit")
+    @ResponseBody
+    public AjaxResult sbbfxkcbbjgkcmxEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sBbfxKcbbJgkcmxService.updateSBbfxKcbbJgkcmx(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sbbfxkcbbjgkcmx with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sbbfxkcbbjgkcmx 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/fwgl/SFwglServercommissionrewardinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.fwgl;
+
+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.fwgl.SFwglServercommissionrewardinfoService;
+
+import java.util.List;
+
+/**
+*
+* 服务包提成发放失败明细 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "fwgl/sfwglservercommissionrewardinfo")
+public class SFwglServercommissionrewardinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "fwgl";
+
+    @Autowired
+    private SFwglServercommissionrewardinfoService sFwglServercommissionrewardinfoService;
+
+    /**
+    * 服务包提成发放失败明细 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("fwgl:fw:view")
+    @GetMapping("/sFwglServercommissionrewardinfoAdd")
+    public String add() {
+        return prefix + "/SFwglServercommissionrewardinfoAdd";
+    }
+
+    /**
+    * 服务包提成发放失败明细 新增
+    *
+    * @return
+    */
+    @Log(title = "服务包提成发放失败明细新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sFwglServercommissionrewardinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sFwglServercommissionrewardinfoService.addSFwglServercommissionrewardinfo(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("fwgl:fw:view")
+    @GetMapping("/sFwglServercommissionrewardinfoView")
+    public String sfwglservercommissionrewardinfoListView() {
+        return prefix + "/SFwglServercommissionrewardinfoList";
+    }
+
+    /**
+    * 服务包提成发放失败明细 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:sFwglServercommissionrewardinfoList")
+    @PostMapping("/sFwglServercommissionrewardinfoList")
+    @ResponseBody
+    public TableDataInfo sfwglservercommissionrewardinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sFwglServercommissionrewardinfoService.findSFwglServercommissionrewardinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 服务包提成发放失败明细 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:remove")
+    @Log(title = "服务包提成发放失败明细删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sFwglServercommissionrewardinfoRemove")
+    @ResponseBody
+    public AjaxResult sfwglservercommissionrewardinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sFwglServercommissionrewardinfoService.SFwglServercommissionrewardinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 服务包提成发放失败明细 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:edit")
+    @GetMapping("/sFwglServercommissionrewardinfoEdit/{id}")
+    public String sfwglservercommissionrewardinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sFwglServercommissionrewardinfoService.findSFwglServercommissionrewardinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sfwglservercommissionrewardinfoPageEdit";
+        }
+        return prefix+ "/sfwglservercommissionrewardinfoEdit";
+    }
+
+    /**
+    * 服务包提成发放失败明细保存修改的数据
+    */
+    @RequiresPermissions("fwgl:fw:edit")
+    @Log(title = "服务包提成发放失败明细修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sFwglServercommissionrewardinfoEdit")
+    @ResponseBody
+    public AjaxResult sfwglservercommissionrewardinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sFwglServercommissionrewardinfoService.updateSFwglServercommissionrewardinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sfwglservercommissionrewardinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sfwglservercommissionrewardinfo 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/fwgl/SFwglServerinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.fwgl;
+
+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.fwgl.SFwglServerinfoService;
+
+import java.util.List;
+
+/**
+*
+* 服务包列表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "fwgl/sfwglserverinfo")
+public class SFwglServerinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "fwgl";
+
+    @Autowired
+    private SFwglServerinfoService sFwglServerinfoService;
+
+    /**
+    * 服务包列表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("fwgl:fw:view")
+    @GetMapping("/sFwglServerinfoAdd")
+    public String add() {
+        return prefix + "/SFwglServerinfoAdd";
+    }
+
+    /**
+    * 服务包列表 新增
+    *
+    * @return
+    */
+    @Log(title = "服务包列表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sFwglServerinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sFwglServerinfoService.addSFwglServerinfo(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("fwgl:fw:view")
+    @GetMapping("/sFwglServerinfoView")
+    public String sfwglserverinfoListView() {
+        return prefix + "/SFwglServerinfoList";
+    }
+
+    /**
+    * 服务包列表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:sFwglServerinfoList")
+    @PostMapping("/sFwglServerinfoList")
+    @ResponseBody
+    public TableDataInfo sfwglserverinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sFwglServerinfoService.findSFwglServerinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 服务包列表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:remove")
+    @Log(title = "服务包列表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sFwglServerinfoRemove")
+    @ResponseBody
+    public AjaxResult sfwglserverinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sFwglServerinfoService.SFwglServerinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 服务包列表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:edit")
+    @GetMapping("/sFwglServerinfoEdit/{id}")
+    public String sfwglserverinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sFwglServerinfoService.findSFwglServerinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sfwglserverinfoPageEdit";
+        }
+        return prefix+ "/sfwglserverinfoEdit";
+    }
+
+    /**
+    * 服务包列表保存修改的数据
+    */
+    @RequiresPermissions("fwgl:fw:edit")
+    @Log(title = "服务包列表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sFwglServerinfoEdit")
+    @ResponseBody
+    public AjaxResult sfwglserverinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sFwglServerinfoService.updateSFwglServerinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sfwglserverinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sfwglserverinfo 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/fwgl/SFwglServerorderinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.fwgl;
+
+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.fwgl.SFwglServerorderinfoService;
+
+import java.util.List;
+
+/**
+*
+* 服务包订单 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "fwgl/sfwglserverorderinfo")
+public class SFwglServerorderinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "fwgl";
+
+    @Autowired
+    private SFwglServerorderinfoService sFwglServerorderinfoService;
+
+    /**
+    * 服务包订单 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("fwgl:fw:view")
+    @GetMapping("/sFwglServerorderinfoAdd")
+    public String add() {
+        return prefix + "/SFwglServerorderinfoAdd";
+    }
+
+    /**
+    * 服务包订单 新增
+    *
+    * @return
+    */
+    @Log(title = "服务包订单新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sFwglServerorderinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sFwglServerorderinfoService.addSFwglServerorderinfo(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("fwgl:fw:view")
+    @GetMapping("/sFwglServerorderinfoView")
+    public String sfwglserverorderinfoListView() {
+        return prefix + "/SFwglServerorderinfoList";
+    }
+
+    /**
+    * 服务包订单 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:sFwglServerorderinfoList")
+    @PostMapping("/sFwglServerorderinfoList")
+    @ResponseBody
+    public TableDataInfo sfwglserverorderinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sFwglServerorderinfoService.findSFwglServerorderinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 服务包订单 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:remove")
+    @Log(title = "服务包订单删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sFwglServerorderinfoRemove")
+    @ResponseBody
+    public AjaxResult sfwglserverorderinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sFwglServerorderinfoService.SFwglServerorderinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 服务包订单 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:edit")
+    @GetMapping("/sFwglServerorderinfoEdit/{id}")
+    public String sfwglserverorderinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sFwglServerorderinfoService.findSFwglServerorderinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sfwglserverorderinfoPageEdit";
+        }
+        return prefix+ "/sfwglserverorderinfoEdit";
+    }
+
+    /**
+    * 服务包订单保存修改的数据
+    */
+    @RequiresPermissions("fwgl:fw:edit")
+    @Log(title = "服务包订单修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sFwglServerorderinfoEdit")
+    @ResponseBody
+    public AjaxResult sfwglserverorderinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sFwglServerorderinfoService.updateSFwglServerorderinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sfwglserverorderinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sfwglserverorderinfo 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/fwgl/SFwglServicepackageinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.fwgl;
+
+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.fwgl.SFwglServicepackageinfoService;
+
+import java.util.List;
+
+/**
+*
+* 扫码提成列表查询 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "fwgl/sfwglservicepackageinfo")
+public class SFwglServicepackageinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "fwgl";
+
+    @Autowired
+    private SFwglServicepackageinfoService sFwglServicepackageinfoService;
+
+    /**
+    * 扫码提成列表查询 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("fwgl:fw:view")
+    @GetMapping("/sFwglServicepackageinfoAdd")
+    public String add() {
+        return prefix + "/SFwglServicepackageinfoAdd";
+    }
+
+    /**
+    * 扫码提成列表查询 新增
+    *
+    * @return
+    */
+    @Log(title = "扫码提成列表查询新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sFwglServicepackageinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sFwglServicepackageinfoService.addSFwglServicepackageinfo(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("fwgl:fw:view")
+    @GetMapping("/sFwglServicepackageinfoView")
+    public String sfwglservicepackageinfoListView() {
+        return prefix + "/SFwglServicepackageinfoList";
+    }
+
+    /**
+    * 扫码提成列表查询 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:sFwglServicepackageinfoList")
+    @PostMapping("/sFwglServicepackageinfoList")
+    @ResponseBody
+    public TableDataInfo sfwglservicepackageinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sFwglServicepackageinfoService.findSFwglServicepackageinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 扫码提成列表查询 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:remove")
+    @Log(title = "扫码提成列表查询删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sFwglServicepackageinfoRemove")
+    @ResponseBody
+    public AjaxResult sfwglservicepackageinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sFwglServicepackageinfoService.SFwglServicepackageinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 扫码提成列表查询 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:edit")
+    @GetMapping("/sFwglServicepackageinfoEdit/{id}")
+    public String sfwglservicepackageinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sFwglServicepackageinfoService.findSFwglServicepackageinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sfwglservicepackageinfoPageEdit";
+        }
+        return prefix+ "/sfwglservicepackageinfoEdit";
+    }
+
+    /**
+    * 扫码提成列表查询保存修改的数据
+    */
+    @RequiresPermissions("fwgl:fw:edit")
+    @Log(title = "扫码提成列表查询修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sFwglServicepackageinfoEdit")
+    @ResponseBody
+    public AjaxResult sfwglservicepackageinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sFwglServicepackageinfoService.updateSFwglServicepackageinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sfwglservicepackageinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sfwglservicepackageinfo 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/fwgl/SFwglServicetypeinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.fwgl;
+
+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.fwgl.SFwglServicetypeinfoService;
+
+import java.util.List;
+
+/**
+*
+* 服务管理 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "fwgl/sfwglservicetypeinfo")
+public class SFwglServicetypeinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "fwgl";
+
+    @Autowired
+    private SFwglServicetypeinfoService sFwglServicetypeinfoService;
+
+    /**
+    * 服务管理 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("fwgl:fw:view")
+    @GetMapping("/sFwglServicetypeinfoAdd")
+    public String add() {
+        return prefix + "/SFwglServicetypeinfoAdd";
+    }
+
+    /**
+    * 服务管理 新增
+    *
+    * @return
+    */
+    @Log(title = "服务管理新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sFwglServicetypeinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sFwglServicetypeinfoService.addSFwglServicetypeinfo(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("fwgl:fw:view")
+    @GetMapping("/sFwglServicetypeinfoView")
+    public String sfwglservicetypeinfoListView() {
+        return prefix + "/SFwglServicetypeinfoList";
+    }
+
+    /**
+    * 服务管理 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:sFwglServicetypeinfoList")
+    @PostMapping("/sFwglServicetypeinfoList")
+    @ResponseBody
+    public TableDataInfo sfwglservicetypeinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sFwglServicetypeinfoService.findSFwglServicetypeinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 服务管理 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:remove")
+    @Log(title = "服务管理删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sFwglServicetypeinfoRemove")
+    @ResponseBody
+    public AjaxResult sfwglservicetypeinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sFwglServicetypeinfoService.SFwglServicetypeinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 服务管理 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("fwgl:fw:edit")
+    @GetMapping("/sFwglServicetypeinfoEdit/{id}")
+    public String sfwglservicetypeinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sFwglServicetypeinfoService.findSFwglServicetypeinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sfwglservicetypeinfoPageEdit";
+        }
+        return prefix+ "/sfwglservicetypeinfoEdit";
+    }
+
+    /**
+    * 服务管理保存修改的数据
+    */
+    @RequiresPermissions("fwgl:fw:edit")
+    @Log(title = "服务管理修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sFwglServicetypeinfoEdit")
+    @ResponseBody
+    public AjaxResult sfwglservicetypeinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sFwglServicetypeinfoService.updateSFwglServicetypeinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sfwglservicetypeinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sfwglservicetypeinfo 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/hygl/SHyglHyxxJzyxMarketingplaninfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.hygl;
+
+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.hygl.SHyglHyxxJzyxMarketingplaninfoService;
+
+import java.util.List;
+
+/**
+*
+* 人群运营计划看板 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "hygl/shyglhyxxjzyxmarketingplaninfo")
+public class SHyglHyxxJzyxMarketingplaninfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "hygl";
+
+    @Autowired
+    private SHyglHyxxJzyxMarketingplaninfoService sHyglHyxxJzyxMarketingplaninfoService;
+
+    /**
+    * 人群运营计划看板 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("hygl:hy:view")
+    @GetMapping("/sHyglHyxxJzyxMarketingplaninfoAdd")
+    public String add() {
+        return prefix + "/SHyglHyxxJzyxMarketingplaninfoAdd";
+    }
+
+    /**
+    * 人群运营计划看板 新增
+    *
+    * @return
+    */
+    @Log(title = "人群运营计划看板新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sHyglHyxxJzyxMarketingplaninfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sHyglHyxxJzyxMarketingplaninfoService.addSHyglHyxxJzyxMarketingplaninfo(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("hygl:hy:view")
+    @GetMapping("/sHyglHyxxJzyxMarketingplaninfoView")
+    public String shyglhyxxjzyxmarketingplaninfoListView() {
+        return prefix + "/SHyglHyxxJzyxMarketingplaninfoList";
+    }
+
+    /**
+    * 人群运营计划看板 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("hygl:hy:sHyglHyxxJzyxMarketingplaninfoList")
+    @PostMapping("/sHyglHyxxJzyxMarketingplaninfoList")
+    @ResponseBody
+    public TableDataInfo shyglhyxxjzyxmarketingplaninfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sHyglHyxxJzyxMarketingplaninfoService.findSHyglHyxxJzyxMarketingplaninfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 人群运营计划看板 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("hygl:hy:remove")
+    @Log(title = "人群运营计划看板删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sHyglHyxxJzyxMarketingplaninfoRemove")
+    @ResponseBody
+    public AjaxResult shyglhyxxjzyxmarketingplaninfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sHyglHyxxJzyxMarketingplaninfoService.SHyglHyxxJzyxMarketingplaninfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 人群运营计划看板 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("hygl:hy:edit")
+    @GetMapping("/sHyglHyxxJzyxMarketingplaninfoEdit/{id}")
+    public String shyglhyxxjzyxmarketingplaninfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sHyglHyxxJzyxMarketingplaninfoService.findSHyglHyxxJzyxMarketingplaninfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/shyglhyxxjzyxmarketingplaninfoPageEdit";
+        }
+        return prefix+ "/shyglhyxxjzyxmarketingplaninfoEdit";
+    }
+
+    /**
+    * 人群运营计划看板保存修改的数据
+    */
+    @RequiresPermissions("hygl:hy:edit")
+    @Log(title = "人群运营计划看板修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sHyglHyxxJzyxMarketingplaninfoEdit")
+    @ResponseBody
+    public AjaxResult shyglhyxxjzyxmarketingplaninfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sHyglHyxxJzyxMarketingplaninfoService.updateSHyglHyxxJzyxMarketingplaninfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表shyglhyxxjzyxmarketingplaninfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表shyglhyxxjzyxmarketingplaninfo 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/xsgl/SXsglMdlsSalesinventoryinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.xsgl;
+
+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.xsgl.SXsglMdlsSalesinventoryinfoService;
+
+import java.util.List;
+
+/**
+*
+* 门店零售日报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "xsgl/sxsglmdlssalesinventoryinfo")
+public class SXsglMdlsSalesinventoryinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "xsgl";
+
+    @Autowired
+    private SXsglMdlsSalesinventoryinfoService sXsglMdlsSalesinventoryinfoService;
+
+    /**
+    * 门店零售日报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("xsgl:xs:view")
+    @GetMapping("/sXsglMdlsSalesinventoryinfoAdd")
+    public String add() {
+        return prefix + "/SXsglMdlsSalesinventoryinfoAdd";
+    }
+
+    /**
+    * 门店零售日报表 新增
+    *
+    * @return
+    */
+    @Log(title = "门店零售日报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sXsglMdlsSalesinventoryinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sXsglMdlsSalesinventoryinfoService.addSXsglMdlsSalesinventoryinfo(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("xsgl:xs:view")
+    @GetMapping("/sXsglMdlsSalesinventoryinfoView")
+    public String sxsglmdlssalesinventoryinfoListView() {
+        return prefix + "/SXsglMdlsSalesinventoryinfoList";
+    }
+
+    /**
+    * 门店零售日报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:sXsglMdlsSalesinventoryinfoList")
+    @PostMapping("/sXsglMdlsSalesinventoryinfoList")
+    @ResponseBody
+    public TableDataInfo sxsglmdlssalesinventoryinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sXsglMdlsSalesinventoryinfoService.findSXsglMdlsSalesinventoryinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 门店零售日报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:remove")
+    @Log(title = "门店零售日报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sXsglMdlsSalesinventoryinfoRemove")
+    @ResponseBody
+    public AjaxResult sxsglmdlssalesinventoryinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sXsglMdlsSalesinventoryinfoService.SXsglMdlsSalesinventoryinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 门店零售日报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @GetMapping("/sXsglMdlsSalesinventoryinfoEdit/{id}")
+    public String sxsglmdlssalesinventoryinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sXsglMdlsSalesinventoryinfoService.findSXsglMdlsSalesinventoryinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sxsglmdlssalesinventoryinfoPageEdit";
+        }
+        return prefix+ "/sxsglmdlssalesinventoryinfoEdit";
+    }
+
+    /**
+    * 门店零售日报表保存修改的数据
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @Log(title = "门店零售日报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sXsglMdlsSalesinventoryinfoEdit")
+    @ResponseBody
+    public AjaxResult sxsglmdlssalesinventoryinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sXsglMdlsSalesinventoryinfoService.updateSXsglMdlsSalesinventoryinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sxsglmdlssalesinventoryinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sxsglmdlssalesinventoryinfo 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/xsgl/SXsglMdlsrbbYgSalesperformanceinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.xsgl;
+
+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.xsgl.SXsglMdlsrbbYgSalesperformanceinfoService;
+
+import java.util.List;
+
+/**
+*
+* 零售员工日报表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "xsgl/sxsglmdlsrbbygsalesperformanceinfo")
+public class SXsglMdlsrbbYgSalesperformanceinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "xsgl";
+
+    @Autowired
+    private SXsglMdlsrbbYgSalesperformanceinfoService sXsglMdlsrbbYgSalesperformanceinfoService;
+
+    /**
+    * 零售员工日报表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("xsgl:xs:view")
+    @GetMapping("/sXsglMdlsrbbYgSalesperformanceinfoAdd")
+    public String add() {
+        return prefix + "/SXsglMdlsrbbYgSalesperformanceinfoAdd";
+    }
+
+    /**
+    * 零售员工日报表 新增
+    *
+    * @return
+    */
+    @Log(title = "零售员工日报表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sXsglMdlsrbbYgSalesperformanceinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sXsglMdlsrbbYgSalesperformanceinfoService.addSXsglMdlsrbbYgSalesperformanceinfo(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("xsgl:xs:view")
+    @GetMapping("/sXsglMdlsrbbYgSalesperformanceinfoView")
+    public String sxsglmdlsrbbygsalesperformanceinfoListView() {
+        return prefix + "/SXsglMdlsrbbYgSalesperformanceinfoList";
+    }
+
+    /**
+    * 零售员工日报表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:sXsglMdlsrbbYgSalesperformanceinfoList")
+    @PostMapping("/sXsglMdlsrbbYgSalesperformanceinfoList")
+    @ResponseBody
+    public TableDataInfo sxsglmdlsrbbygsalesperformanceinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sXsglMdlsrbbYgSalesperformanceinfoService.findSXsglMdlsrbbYgSalesperformanceinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 零售员工日报表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:remove")
+    @Log(title = "零售员工日报表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sXsglMdlsrbbYgSalesperformanceinfoRemove")
+    @ResponseBody
+    public AjaxResult sxsglmdlsrbbygsalesperformanceinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sXsglMdlsrbbYgSalesperformanceinfoService.SXsglMdlsrbbYgSalesperformanceinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 零售员工日报表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @GetMapping("/sXsglMdlsrbbYgSalesperformanceinfoEdit/{id}")
+    public String sxsglmdlsrbbygsalesperformanceinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sXsglMdlsrbbYgSalesperformanceinfoService.findSXsglMdlsrbbYgSalesperformanceinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sxsglmdlsrbbygsalesperformanceinfoPageEdit";
+        }
+        return prefix+ "/sxsglmdlsrbbygsalesperformanceinfoEdit";
+    }
+
+    /**
+    * 零售员工日报表保存修改的数据
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @Log(title = "零售员工日报表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sXsglMdlsrbbYgSalesperformanceinfoEdit")
+    @ResponseBody
+    public AjaxResult sxsglmdlsrbbygsalesperformanceinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sXsglMdlsrbbYgSalesperformanceinfoService.updateSXsglMdlsrbbYgSalesperformanceinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sxsglmdlsrbbygsalesperformanceinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sxsglmdlsrbbygsalesperformanceinfo 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/xsgl/SXsglReturninfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.xsgl;
+
+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.xsgl.SXsglReturninfoService;
+
+import java.util.List;
+
+/**
+*
+* 销售退回 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "xsgl/sxsglreturninfo")
+public class SXsglReturninfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "xsgl";
+
+    @Autowired
+    private SXsglReturninfoService sXsglReturninfoService;
+
+    /**
+    * 销售退回 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("xsgl:xs:view")
+    @GetMapping("/sXsglReturninfoAdd")
+    public String add() {
+        return prefix + "/SXsglReturninfoAdd";
+    }
+
+    /**
+    * 销售退回 新增
+    *
+    * @return
+    */
+    @Log(title = "销售退回新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sXsglReturninfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sXsglReturninfoService.addSXsglReturninfo(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("xsgl:xs:view")
+    @GetMapping("/sXsglReturninfoView")
+    public String sxsglreturninfoListView() {
+        return prefix + "/SXsglReturninfoList";
+    }
+
+    /**
+    * 销售退回 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:sXsglReturninfoList")
+    @PostMapping("/sXsglReturninfoList")
+    @ResponseBody
+    public TableDataInfo sxsglreturninfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sXsglReturninfoService.findSXsglReturninfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 销售退回 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:remove")
+    @Log(title = "销售退回删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sXsglReturninfoRemove")
+    @ResponseBody
+    public AjaxResult sxsglreturninfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sXsglReturninfoService.SXsglReturninfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 销售退回 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @GetMapping("/sXsglReturninfoEdit/{id}")
+    public String sxsglreturninfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sXsglReturninfoService.findSXsglReturninfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sxsglreturninfoPageEdit";
+        }
+        return prefix+ "/sxsglreturninfoEdit";
+    }
+
+    /**
+    * 销售退回保存修改的数据
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @Log(title = "销售退回修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sXsglReturninfoEdit")
+    @ResponseBody
+    public AjaxResult sxsglreturninfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sXsglReturninfoService.updateSXsglReturninfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sxsglreturninfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sxsglreturninfo 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/xsgl/SXsglReturnproductinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.xsgl;
+
+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.xsgl.SXsglReturnproductinfoService;
+
+import java.util.List;
+
+/**
+*
+* 负号销售表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "xsgl/sxsglreturnproductinfo")
+public class SXsglReturnproductinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "xsgl";
+
+    @Autowired
+    private SXsglReturnproductinfoService sXsglReturnproductinfoService;
+
+    /**
+    * 负号销售表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("xsgl:xs:view")
+    @GetMapping("/sXsglReturnproductinfoAdd")
+    public String add() {
+        return prefix + "/SXsglReturnproductinfoAdd";
+    }
+
+    /**
+    * 负号销售表 新增
+    *
+    * @return
+    */
+    @Log(title = "负号销售表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sXsglReturnproductinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sXsglReturnproductinfoService.addSXsglReturnproductinfo(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("xsgl:xs:view")
+    @GetMapping("/sXsglReturnproductinfoView")
+    public String sxsglreturnproductinfoListView() {
+        return prefix + "/SXsglReturnproductinfoList";
+    }
+
+    /**
+    * 负号销售表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:sXsglReturnproductinfoList")
+    @PostMapping("/sXsglReturnproductinfoList")
+    @ResponseBody
+    public TableDataInfo sxsglreturnproductinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sXsglReturnproductinfoService.findSXsglReturnproductinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 负号销售表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:remove")
+    @Log(title = "负号销售表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sXsglReturnproductinfoRemove")
+    @ResponseBody
+    public AjaxResult sxsglreturnproductinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sXsglReturnproductinfoService.SXsglReturnproductinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 负号销售表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @GetMapping("/sXsglReturnproductinfoEdit/{id}")
+    public String sxsglreturnproductinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sXsglReturnproductinfoService.findSXsglReturnproductinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sxsglreturnproductinfoPageEdit";
+        }
+        return prefix+ "/sxsglreturnproductinfoEdit";
+    }
+
+    /**
+    * 负号销售表保存修改的数据
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @Log(title = "负号销售表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sXsglReturnproductinfoEdit")
+    @ResponseBody
+    public AjaxResult sxsglreturnproductinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sXsglReturnproductinfoService.updateSXsglReturnproductinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sxsglreturnproductinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sxsglreturnproductinfo 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/xsgl/SXsglXsmxDdmxSalesorderinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.xsgl;
+
+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.xsgl.SXsglXsmxDdmxSalesorderinfoService;
+
+import java.util.List;
+
+/**
+*
+* 销售订单明细表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "xsgl/sxsglxsmxddmxsalesorderinfo")
+public class SXsglXsmxDdmxSalesorderinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "xsgl";
+
+    @Autowired
+    private SXsglXsmxDdmxSalesorderinfoService sXsglXsmxDdmxSalesorderinfoService;
+
+    /**
+    * 销售订单明细表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("xsgl:xs:view")
+    @GetMapping("/sXsglXsmxDdmxSalesorderinfoAdd")
+    public String add() {
+        return prefix + "/SXsglXsmxDdmxSalesorderinfoAdd";
+    }
+
+    /**
+    * 销售订单明细表 新增
+    *
+    * @return
+    */
+    @Log(title = "销售订单明细表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sXsglXsmxDdmxSalesorderinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sXsglXsmxDdmxSalesorderinfoService.addSXsglXsmxDdmxSalesorderinfo(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("xsgl:xs:view")
+    @GetMapping("/sXsglXsmxDdmxSalesorderinfoView")
+    public String sxsglxsmxddmxsalesorderinfoListView() {
+        return prefix + "/SXsglXsmxDdmxSalesorderinfoList";
+    }
+
+    /**
+    * 销售订单明细表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:sXsglXsmxDdmxSalesorderinfoList")
+    @PostMapping("/sXsglXsmxDdmxSalesorderinfoList")
+    @ResponseBody
+    public TableDataInfo sxsglxsmxddmxsalesorderinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sXsglXsmxDdmxSalesorderinfoService.findSXsglXsmxDdmxSalesorderinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 销售订单明细表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:remove")
+    @Log(title = "销售订单明细表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sXsglXsmxDdmxSalesorderinfoRemove")
+    @ResponseBody
+    public AjaxResult sxsglxsmxddmxsalesorderinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sXsglXsmxDdmxSalesorderinfoService.SXsglXsmxDdmxSalesorderinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 销售订单明细表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @GetMapping("/sXsglXsmxDdmxSalesorderinfoEdit/{id}")
+    public String sxsglxsmxddmxsalesorderinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sXsglXsmxDdmxSalesorderinfoService.findSXsglXsmxDdmxSalesorderinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sxsglxsmxddmxsalesorderinfoPageEdit";
+        }
+        return prefix+ "/sxsglxsmxddmxsalesorderinfoEdit";
+    }
+
+    /**
+    * 销售订单明细表保存修改的数据
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @Log(title = "销售订单明细表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sXsglXsmxDdmxSalesorderinfoEdit")
+    @ResponseBody
+    public AjaxResult sxsglxsmxddmxsalesorderinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sXsglXsmxDdmxSalesorderinfoService.updateSXsglXsmxDdmxSalesorderinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sxsglxsmxddmxsalesorderinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sxsglxsmxddmxsalesorderinfo 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/xsgl/SXsglXsmxSpmxSalesdetailinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.xsgl;
+
+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.xsgl.SXsglXsmxSpmxSalesdetailinfoService;
+
+import java.util.List;
+
+/**
+*
+* 销售商品明细表 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "xsgl/sxsglxsmxspmxsalesdetailinfo")
+public class SXsglXsmxSpmxSalesdetailinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "xsgl";
+
+    @Autowired
+    private SXsglXsmxSpmxSalesdetailinfoService sXsglXsmxSpmxSalesdetailinfoService;
+
+    /**
+    * 销售商品明细表 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("xsgl:xs:view")
+    @GetMapping("/sXsglXsmxSpmxSalesdetailinfoAdd")
+    public String add() {
+        return prefix + "/SXsglXsmxSpmxSalesdetailinfoAdd";
+    }
+
+    /**
+    * 销售商品明细表 新增
+    *
+    * @return
+    */
+    @Log(title = "销售商品明细表新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sXsglXsmxSpmxSalesdetailinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sXsglXsmxSpmxSalesdetailinfoService.addSXsglXsmxSpmxSalesdetailinfo(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("xsgl:xs:view")
+    @GetMapping("/sXsglXsmxSpmxSalesdetailinfoView")
+    public String sxsglxsmxspmxsalesdetailinfoListView() {
+        return prefix + "/SXsglXsmxSpmxSalesdetailinfoList";
+    }
+
+    /**
+    * 销售商品明细表 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:sXsglXsmxSpmxSalesdetailinfoList")
+    @PostMapping("/sXsglXsmxSpmxSalesdetailinfoList")
+    @ResponseBody
+    public TableDataInfo sxsglxsmxspmxsalesdetailinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sXsglXsmxSpmxSalesdetailinfoService.findSXsglXsmxSpmxSalesdetailinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 销售商品明细表 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:remove")
+    @Log(title = "销售商品明细表删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sXsglXsmxSpmxSalesdetailinfoRemove")
+    @ResponseBody
+    public AjaxResult sxsglxsmxspmxsalesdetailinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sXsglXsmxSpmxSalesdetailinfoService.SXsglXsmxSpmxSalesdetailinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 销售商品明细表 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @GetMapping("/sXsglXsmxSpmxSalesdetailinfoEdit/{id}")
+    public String sxsglxsmxspmxsalesdetailinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sXsglXsmxSpmxSalesdetailinfoService.findSXsglXsmxSpmxSalesdetailinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sxsglxsmxspmxsalesdetailinfoPageEdit";
+        }
+        return prefix+ "/sxsglxsmxspmxsalesdetailinfoEdit";
+    }
+
+    /**
+    * 销售商品明细表保存修改的数据
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @Log(title = "销售商品明细表修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sXsglXsmxSpmxSalesdetailinfoEdit")
+    @ResponseBody
+    public AjaxResult sxsglxsmxspmxsalesdetailinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sXsglXsmxSpmxSalesdetailinfoService.updateSXsglXsmxSpmxSalesdetailinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sxsglxsmxspmxsalesdetailinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sxsglxsmxspmxsalesdetailinfo 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/xsgl/SXsglXsmxZkmxSalesdiscountinfoController.java

@@ -0,0 +1,158 @@
+package com.bzd.web.controller.xsgl;
+
+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.xsgl.SXsglXsmxZkmxSalesdiscountinfoService;
+
+import java.util.List;
+
+/**
+*
+* 销售折扣明细 前端控制器Controller
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+@Controller
+@RequestMapping(value = "xsgl/sxsglxsmxzkmxsalesdiscountinfo")
+public class SXsglXsmxZkmxSalesdiscountinfoController extends BaseController {
+
+    // 页面跳转前缀
+    private String prefix = "xsgl";
+
+    @Autowired
+    private SXsglXsmxZkmxSalesdiscountinfoService sXsglXsmxZkmxSalesdiscountinfoService;
+
+    /**
+    * 销售折扣明细 新增页面跳转
+    *
+    * @return
+    */
+    @RequiresPermissions("xsgl:xs:view")
+    @GetMapping("/sXsglXsmxZkmxSalesdiscountinfoAdd")
+    public String add() {
+        return prefix + "/SXsglXsmxZkmxSalesdiscountinfoAdd";
+    }
+
+    /**
+    * 销售折扣明细 新增
+    *
+    * @return
+    */
+    @Log(title = "销售折扣明细新增", businessType = BusinessType.INSERT)
+    @PostMapping("/sXsglXsmxZkmxSalesdiscountinfoAdd")
+    @ResponseBody
+    public AjaxResult addSave() throws Exception {
+        PageData pd = this.getPageData();
+        try {
+            Integer result = sXsglXsmxZkmxSalesdiscountinfoService.addSXsglXsmxZkmxSalesdiscountinfo(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("xsgl:xs:view")
+    @GetMapping("/sXsglXsmxZkmxSalesdiscountinfoView")
+    public String sxsglxsmxzkmxsalesdiscountinfoListView() {
+        return prefix + "/SXsglXsmxZkmxSalesdiscountinfoList";
+    }
+
+    /**
+    * 销售折扣明细 数据查询
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:sXsglXsmxZkmxSalesdiscountinfoList")
+    @PostMapping("/sXsglXsmxZkmxSalesdiscountinfoList")
+    @ResponseBody
+    public TableDataInfo sxsglxsmxzkmxsalesdiscountinfoList() throws Exception {
+    PageData pd = this.getPageData();
+    startPage();
+    List<PageData> pageData = sXsglXsmxZkmxSalesdiscountinfoService.findSXsglXsmxZkmxSalesdiscountinfoList(pd);
+        return getDataTable(pageData);
+    }
+
+    /**
+    * 销售折扣明细 数据删除 根据id
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:remove")
+    @Log(title = "销售折扣明细删除", businessType = BusinessType.DELETE)
+    @PostMapping("/sXsglXsmxZkmxSalesdiscountinfoRemove")
+    @ResponseBody
+    public AjaxResult sxsglxsmxzkmxsalesdiscountinfoRemove() throws Exception {
+        PageData pd = this.getPageData();
+        Integer integer = sXsglXsmxZkmxSalesdiscountinfoService.SXsglXsmxZkmxSalesdiscountinfoRemove(pd);
+        return toAjax(integer);
+    }
+
+    /**
+    * 销售折扣明细 数据修改
+    *
+    * @return
+    * @throws Exception
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @GetMapping("/sXsglXsmxZkmxSalesdiscountinfoEdit/{id}")
+    public String sxsglxsmxzkmxsalesdiscountinfoView(@PathVariable("id") Long id, ModelMap mmap) throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("id", id);
+        PageData pageData = sXsglXsmxZkmxSalesdiscountinfoService.findSXsglXsmxZkmxSalesdiscountinfoList(pd).get(0);
+        mmap.putAll(pageData);
+        if(null!=pd.getString("status")){
+            return prefix+ "/sxsglxsmxzkmxsalesdiscountinfoPageEdit";
+        }
+        return prefix+ "/sxsglxsmxzkmxsalesdiscountinfoEdit";
+    }
+
+    /**
+    * 销售折扣明细保存修改的数据
+    */
+    @RequiresPermissions("xsgl:xs:edit")
+    @Log(title = "销售折扣明细修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/sXsglXsmxZkmxSalesdiscountinfoEdit")
+    @ResponseBody
+    public AjaxResult sxsglxsmxzkmxsalesdiscountinfoEditSave() throws Exception {
+        PageData pd = this.getPageData();
+        pd.put("up", "up");
+        try {
+            Integer updateResult = sXsglXsmxZkmxSalesdiscountinfoService.updateSXsglXsmxZkmxSalesdiscountinfo(pd);
+            if (updateResult == 1) {
+                // 成功更新
+                return AjaxResult.success("修改成功");
+            } else {
+                // 更新失败
+                logger.error("Failed to update 表sxsglxsmxzkmxsalesdiscountinfo with ID: {}", pd.get("id"));
+                return AjaxResult.error("修改失败");
+            }
+        } catch (Exception e) {
+            // 异常处理
+            logger.error("Error occurred while updating 表sxsglxsmxzkmxsalesdiscountinfo with ID: {}, Exception: {}", pd.get("id"), e.getMessage(), e);
+            return AjaxResult.error("系统异常:" + e.getMessage());
+        }
+    }
+}

+ 137 - 0
health-admin/src/main/resources/templates/bbfx/SBbfxKcbbInventoryShortageDetailAdd.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">商品ID:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productId" id="productId" class="styled-input" type="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="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="category" id="category" class="styled-input" type="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="stockQuantity" id="stockQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">再订货水平:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="reorderLevel" id="reorderLevel" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">缺货数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="shortageQuantity" id="shortageQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">最后库存检查时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lastStockCheckTime" id="lastStockCheckTime" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">最后编辑人:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lastEditor" id="lastEditor" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">最后编辑时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lastEditTime" id="lastEditTime" 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 productId = $("input[name='productId']").val();
+           var productName = $("input[name='productName']").val();
+           var productCode = $("input[name='productCode']").val();
+           var category = $("input[name='category']").val();
+           var supplier = $("input[name='supplier']").val();
+           var stockQuantity = $("input[name='stockQuantity']").val();
+           var reorderLevel = $("input[name='reorderLevel']").val();
+           var shortageQuantity = $("input[name='shortageQuantity']").val();
+           var lastStockCheckTime = $("input[name='lastStockCheckTime']").val();
+           var lastEditor = $("input[name='lastEditor']").val();
+           var lastEditTime = $("input[name='lastEditTime']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "bbfx/sbbfxkcbbinventoryshortagedetail/sBbfxKcbbInventoryShortageDetailAdd",
+            data : {
+                "productId": productId,
+                "productName": productName,
+                "productCode": productCode,
+                "category": category,
+                "supplier": supplier,
+                "stockQuantity": stockQuantity,
+                "reorderLevel": reorderLevel,
+                "shortageQuantity": shortageQuantity,
+                "lastStockCheckTime": lastStockCheckTime,
+                "lastEditor": lastEditor,
+                "lastEditTime": lastEditTime,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 126 - 0
health-admin/src/main/resources/templates/bbfx/SBbfxKcbbInventoryShortageDetailEdit.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-SBbfxKcbbInventoryShortageDetail-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">商品ID:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productId" placeholder="商品ID" th:value="${productId}" class="styled-input" type="text" 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="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="category" placeholder="商品类别" th:value="${category}" class="styled-input" type="text" 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="stockQuantity" placeholder="库存数量" th:value="${stockQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">再订货水平:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reorderLevel" placeholder="再订货水平" th:value="${reorderLevel}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">缺货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="shortageQuantity" placeholder="缺货数量" th:value="${shortageQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后库存检查时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastStockCheckTime" placeholder="最后库存检查时间" th:value="${lastStockCheckTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后编辑人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastEditor" placeholder="最后编辑人" th:value="${lastEditor}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后编辑时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastEditTime" placeholder="最后编辑时间" th:value="${lastEditTime}" 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-SBbfxKcbbInventoryShortageDetail-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "bbfx/sbbfxkcbbinventoryshortagedetail/sBbfxKcbbInventoryShortageDetailEdit",
+            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/bbfx/SBbfxKcbbInventoryShortageDetailList.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="SBbfxKcbbInventoryShortageDetail-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                商品ID:<input type="text" class="styled-input" name="productId" autocomplete="off"/>
+                            </li>
+                            <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="category" autocomplete="off"/>
+                            </li>
+                            <li>
+                                供应商:<input type="text" class="styled-input" name="supplier" autocomplete="off"/>
+                            </li>
+                            <li>
+                                库存数量:<input type="text" class="styled-input" name="stockQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                再订货水平:<input type="text" class="styled-input" name="reorderLevel" autocomplete="off"/>
+                            </li>
+                            <li>
+                                缺货数量:<input type="text" class="styled-input" name="shortageQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                最后库存检查时间:<input type="text" class="styled-input" name="lastStockCheckTime" autocomplete="off"/>
+                            </li>
+                            <li>
+                                最后编辑人:<input type="text" class="styled-input" name="lastEditor" autocomplete="off"/>
+                            </li>
+                            <li>
+                                最后编辑时间:<input type="text" class="styled-input" name="lastEditTime" 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 + "bbfx/sbbfxkcbbinventoryshortagedetail";
+    $(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 + "/sBbfxKcbbInventoryShortageDetailList",
+            viewUrl: prefix + "/sBbfxKcbbInventoryShortageDetailView/{id}",
+            createUrl: prefix + "/sBbfxKcbbInventoryShortageDetailAdd",
+            updateUrl: prefix + "/sBbfxKcbbInventoryShortageDetailEdit/{id}",
+            removeUrl: prefix + "/sBbfxKcbbInventoryShortageDetailRemove",
+            /*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: 'productId', title: '商品ID', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'category', title: '商品类别', align: 'center' },
+                    { field: 'supplier', title: '供应商', align: 'center' },
+                    { field: 'stockQuantity', title: '库存数量', align: 'center' },
+                    { field: 'reorderLevel', title: '再订货水平', align: 'center' },
+                    { field: 'shortageQuantity', title: '缺货数量', align: 'center' },
+                    { field: 'lastStockCheckTime', title: '最后库存检查时间', align: 'center' },
+                    { field: 'lastEditor', title: '最后编辑人', align: 'center' },
+                    { field: 'lastEditTime', 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();
+        $("#SBbfxKcbbInventoryShortageDetail-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SBbfxKcbbInventoryShortageDetail-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/bbfx/SBbfxKcbbInventoryShortageDetailPageEdit.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-SBbfxKcbbInventoryShortageDetail-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">商品ID:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productId" placeholder="商品ID" th:value="${productId}" class="styled-input" type="text" 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="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="category" placeholder="商品类别" th:value="${category}" class="styled-input" type="text" 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="stockQuantity" placeholder="库存数量" th:value="${stockQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">再订货水平:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reorderLevel" placeholder="再订货水平" th:value="${reorderLevel}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">缺货数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="shortageQuantity" placeholder="缺货数量" th:value="${shortageQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后库存检查时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastStockCheckTime" placeholder="最后库存检查时间" th:value="${lastStockCheckTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后编辑人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastEditor" placeholder="最后编辑人" th:value="${lastEditor}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后编辑时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastEditTime" placeholder="最后编辑时间" th:value="${lastEditTime}" 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 + "bbfx/sbbfxkcbbinventoryshortagedetail";
+        if ($.validate.form()) {
+            var data = $("#form-SBbfxKcbbInventoryShortageDetail-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 + "/sBbfxKcbbInventoryShortageDetailEdit", data);
+        }
+    }
+</script>

+ 137 - 0
health-admin/src/main/resources/templates/bbfx/SBbfxKcbbJgkcmxAdd.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">机构ID:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="organizationId" id="organizationId" 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="productId" id="productId" class="styled-input" type="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="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="category" id="category" class="styled-input" type="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="stockQuantity" id="stockQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">再订货水平:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="reorderLevel" id="reorderLevel" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">最后库存检查时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lastStockCheckTime" id="lastStockCheckTime" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">最后编辑人:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lastEditor" id="lastEditor" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">最后编辑时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lastEditTime" id="lastEditTime" 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 organizationId = $("input[name='organizationId']").val();
+           var productId = $("input[name='productId']").val();
+           var productName = $("input[name='productName']").val();
+           var productCode = $("input[name='productCode']").val();
+           var category = $("input[name='category']").val();
+           var supplier = $("input[name='supplier']").val();
+           var stockQuantity = $("input[name='stockQuantity']").val();
+           var reorderLevel = $("input[name='reorderLevel']").val();
+           var lastStockCheckTime = $("input[name='lastStockCheckTime']").val();
+           var lastEditor = $("input[name='lastEditor']").val();
+           var lastEditTime = $("input[name='lastEditTime']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "bbfx/sbbfxkcbbjgkcmx/sBbfxKcbbJgkcmxAdd",
+            data : {
+                "organizationId": organizationId,
+                "productId": productId,
+                "productName": productName,
+                "productCode": productCode,
+                "category": category,
+                "supplier": supplier,
+                "stockQuantity": stockQuantity,
+                "reorderLevel": reorderLevel,
+                "lastStockCheckTime": lastStockCheckTime,
+                "lastEditor": lastEditor,
+                "lastEditTime": lastEditTime,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 126 - 0
health-admin/src/main/resources/templates/bbfx/SBbfxKcbbJgkcmxEdit.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-SBbfxKcbbJgkcmx-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">机构ID:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="organizationId" placeholder="机构ID" th:value="${organizationId}" 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="productId" placeholder="商品ID" th:value="${productId}" class="styled-input" type="text" 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="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="category" placeholder="商品类别" th:value="${category}" class="styled-input" type="text" 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="stockQuantity" placeholder="库存数量" th:value="${stockQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">再订货水平:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reorderLevel" placeholder="再订货水平" th:value="${reorderLevel}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后库存检查时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastStockCheckTime" placeholder="最后库存检查时间" th:value="${lastStockCheckTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后编辑人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastEditor" placeholder="最后编辑人" th:value="${lastEditor}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后编辑时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastEditTime" placeholder="最后编辑时间" th:value="${lastEditTime}" 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-SBbfxKcbbJgkcmx-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "bbfx/sbbfxkcbbjgkcmx/sBbfxKcbbJgkcmxEdit",
+            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/bbfx/SBbfxKcbbJgkcmxList.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="SBbfxKcbbJgkcmx-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                机构ID:<input type="text" class="styled-input" name="organizationId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品ID:<input type="text" class="styled-input" name="productId" autocomplete="off"/>
+                            </li>
+                            <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="category" autocomplete="off"/>
+                            </li>
+                            <li>
+                                供应商:<input type="text" class="styled-input" name="supplier" autocomplete="off"/>
+                            </li>
+                            <li>
+                                库存数量:<input type="text" class="styled-input" name="stockQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                再订货水平:<input type="text" class="styled-input" name="reorderLevel" autocomplete="off"/>
+                            </li>
+                            <li>
+                                最后库存检查时间:<input type="text" class="styled-input" name="lastStockCheckTime" autocomplete="off"/>
+                            </li>
+                            <li>
+                                最后编辑人:<input type="text" class="styled-input" name="lastEditor" autocomplete="off"/>
+                            </li>
+                            <li>
+                                最后编辑时间:<input type="text" class="styled-input" name="lastEditTime" 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 + "bbfx/sbbfxkcbbjgkcmx";
+    $(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 + "/sBbfxKcbbJgkcmxList",
+            viewUrl: prefix + "/sBbfxKcbbJgkcmxView/{id}",
+            createUrl: prefix + "/sBbfxKcbbJgkcmxAdd",
+            updateUrl: prefix + "/sBbfxKcbbJgkcmxEdit/{id}",
+            removeUrl: prefix + "/sBbfxKcbbJgkcmxRemove",
+            /*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: 'organizationId', title: '机构ID', align: 'center' },
+                    { field: 'productId', title: '商品ID', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'productCode', title: '商品编码', align: 'center' },
+                    { field: 'category', title: '商品类别', align: 'center' },
+                    { field: 'supplier', title: '供应商', align: 'center' },
+                    { field: 'stockQuantity', title: '库存数量', align: 'center' },
+                    { field: 'reorderLevel', title: '再订货水平', align: 'center' },
+                    { field: 'lastStockCheckTime', title: '最后库存检查时间', align: 'center' },
+                    { field: 'lastEditor', title: '最后编辑人', align: 'center' },
+                    { field: 'lastEditTime', 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();
+        $("#SBbfxKcbbJgkcmx-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SBbfxKcbbJgkcmx-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/bbfx/SBbfxKcbbJgkcmxPageEdit.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-SBbfxKcbbJgkcmx-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">机构ID:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="organizationId" placeholder="机构ID" th:value="${organizationId}" 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="productId" placeholder="商品ID" th:value="${productId}" class="styled-input" type="text" 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="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="category" placeholder="商品类别" th:value="${category}" class="styled-input" type="text" 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="stockQuantity" placeholder="库存数量" th:value="${stockQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">再订货水平:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reorderLevel" placeholder="再订货水平" th:value="${reorderLevel}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后库存检查时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastStockCheckTime" placeholder="最后库存检查时间" th:value="${lastStockCheckTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后编辑人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastEditor" placeholder="最后编辑人" th:value="${lastEditor}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">最后编辑时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lastEditTime" placeholder="最后编辑时间" th:value="${lastEditTime}" 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 + "bbfx/sbbfxkcbbjgkcmx";
+        if ($.validate.form()) {
+            var data = $("#form-SBbfxKcbbJgkcmx-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 + "/sBbfxKcbbJgkcmxEdit", data);
+        }
+    }
+</script>

+ 161 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServercommissionrewardinfoAdd.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="commissionSource" id="commissionSource" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">奖励类型:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="rewardType" id="rewardType" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">发生时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="occurrenceTime" id="occurrenceTime" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">服务包订单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="servicePackageOrderNumber" id="servicePackageOrderNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">券核销订单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="voucherRedemptionOrderNumber" id="voucherRedemptionOrderNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">连锁:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="chain" id="chain" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">门店:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="store" id="store" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">券码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="voucherCode" id="voucherCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">店员工号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="staffNumber" id="staffNumber" 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="staffID" id="staffID" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">店员姓名:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="staffName" id="staffName" 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="contractID" id="contractID" 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="contractOrderID" id="contractOrderID" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">状态:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="status" id="status" 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 commissionSource = $("input[name='commissionSource']").val();
+           var rewardType = $("input[name='rewardType']").val();
+           var occurrenceTime = $("input[name='occurrenceTime']").val();
+           var servicePackageOrderNumber = $("input[name='servicePackageOrderNumber']").val();
+           var voucherRedemptionOrderNumber = $("input[name='voucherRedemptionOrderNumber']").val();
+           var chain = $("input[name='chain']").val();
+           var store = $("input[name='store']").val();
+           var voucherCode = $("input[name='voucherCode']").val();
+           var staffNumber = $("input[name='staffNumber']").val();
+           var staffID = $("input[name='staffID']").val();
+           var staffName = $("input[name='staffName']").val();
+           var contractID = $("input[name='contractID']").val();
+           var contractOrderID = $("input[name='contractOrderID']").val();
+           var status = $("input[name='status']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "fwgl/sfwglservercommissionrewardinfo/sFwglServercommissionrewardinfoAdd",
+            data : {
+                "commissionSource": commissionSource,
+                "rewardType": rewardType,
+                "occurrenceTime": occurrenceTime,
+                "servicePackageOrderNumber": servicePackageOrderNumber,
+                "voucherRedemptionOrderNumber": voucherRedemptionOrderNumber,
+                "chain": chain,
+                "store": store,
+                "voucherCode": voucherCode,
+                "staffNumber": staffNumber,
+                "staffID": staffID,
+                "staffName": staffName,
+                "contractID": contractID,
+                "contractOrderID": contractOrderID,
+                "status": status,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 144 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServercommissionrewardinfoEdit.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-SFwglServercommissionrewardinfo-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="commissionSource" placeholder="提成来源" th:value="${commissionSource}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">奖励类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="rewardType" placeholder="奖励类型" th:value="${rewardType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">发生时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="occurrenceTime" placeholder="发生时间" th:value="${occurrenceTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">服务包订单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="servicePackageOrderNumber" placeholder="服务包订单号" th:value="${servicePackageOrderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">券核销订单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="voucherRedemptionOrderNumber" placeholder="券核销订单号" th:value="${voucherRedemptionOrderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">连锁:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="chain" placeholder="连锁" th:value="${chain}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="store" placeholder="门店" th:value="${store}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">券码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="voucherCode" placeholder="券码" th:value="${voucherCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店员工号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="staffNumber" placeholder="店员工号" th:value="${staffNumber}" 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="staffID" placeholder="店员ID" th:value="${staffID}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店员姓名:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="staffName" placeholder="店员姓名" th:value="${staffName}" 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="contractID" placeholder="合约ID" th:value="${contractID}" 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="contractOrderID" placeholder="合约单ID" th:value="${contractOrderID}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="status" placeholder="状态" th:value="${status}" 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-SFwglServercommissionrewardinfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "fwgl/sfwglservercommissionrewardinfo/sFwglServercommissionrewardinfoEdit",
+            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/fwgl/SFwglServercommissionrewardinfoList.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="SFwglServercommissionrewardinfo-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="commissionSource" autocomplete="off"/>
+                            </li>
+                            <li>
+                                奖励类型:<input type="text" class="styled-input" name="rewardType" autocomplete="off"/>
+                            </li>
+                            <li>
+                                发生时间:<input type="text" class="styled-input" name="occurrenceTime" autocomplete="off"/>
+                            </li>
+                            <li>
+                                服务包订单号:<input type="text" class="styled-input" name="servicePackageOrderNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                券核销订单号:<input type="text" class="styled-input" name="voucherRedemptionOrderNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                连锁:<input type="text" class="styled-input" name="chain" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店:<input type="text" class="styled-input" name="store" autocomplete="off"/>
+                            </li>
+                            <li>
+                                券码:<input type="text" class="styled-input" name="voucherCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                店员工号:<input type="text" class="styled-input" name="staffNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                店员ID:<input type="text" class="styled-input" name="staffID" autocomplete="off"/>
+                            </li>
+                            <li>
+                                店员姓名:<input type="text" class="styled-input" name="staffName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                合约ID:<input type="text" class="styled-input" name="contractID" autocomplete="off"/>
+                            </li>
+                            <li>
+                                合约单ID:<input type="text" class="styled-input" name="contractOrderID" autocomplete="off"/>
+                            </li>
+                            <li>
+                                状态:<input type="text" class="styled-input" name="status" 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 + "fwgl/sfwglservercommissionrewardinfo";
+    $(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 + "/sFwglServercommissionrewardinfoList",
+            viewUrl: prefix + "/sFwglServercommissionrewardinfoView/{id}",
+            createUrl: prefix + "/sFwglServercommissionrewardinfoAdd",
+            updateUrl: prefix + "/sFwglServercommissionrewardinfoEdit/{id}",
+            removeUrl: prefix + "/sFwglServercommissionrewardinfoRemove",
+            /*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: 'commissionSource', title: '提成来源', align: 'center' },
+                    { field: 'rewardType', title: '奖励类型', align: 'center' },
+                    { field: 'occurrenceTime', title: '发生时间', align: 'center' },
+                    { field: 'servicePackageOrderNumber', title: '服务包订单号', align: 'center' },
+                    { field: 'voucherRedemptionOrderNumber', title: '券核销订单号', align: 'center' },
+                    { field: 'chain', title: '连锁', align: 'center' },
+                    { field: 'store', title: '门店', align: 'center' },
+                    { field: 'voucherCode', title: '券码', align: 'center' },
+                    { field: 'staffNumber', title: '店员工号', align: 'center' },
+                    { field: 'staffID', title: '店员ID', align: 'center' },
+                    { field: 'staffName', title: '店员姓名', align: 'center' },
+                    { field: 'contractID', title: '合约ID', align: 'center' },
+                    { field: 'contractOrderID', title: '合约单ID', align: 'center' },
+                    { field: 'status', 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();
+        $("#SFwglServercommissionrewardinfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SFwglServercommissionrewardinfo-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/fwgl/SFwglServercommissionrewardinfoPageEdit.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-SFwglServercommissionrewardinfo-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="commissionSource" placeholder="提成来源" th:value="${commissionSource}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">奖励类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="rewardType" placeholder="奖励类型" th:value="${rewardType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">发生时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="occurrenceTime" placeholder="发生时间" th:value="${occurrenceTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">服务包订单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="servicePackageOrderNumber" placeholder="服务包订单号" th:value="${servicePackageOrderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">券核销订单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="voucherRedemptionOrderNumber" placeholder="券核销订单号" th:value="${voucherRedemptionOrderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">连锁:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="chain" placeholder="连锁" th:value="${chain}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">门店:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="store" placeholder="门店" th:value="${store}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">券码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="voucherCode" placeholder="券码" th:value="${voucherCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店员工号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="staffNumber" placeholder="店员工号" th:value="${staffNumber}" 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="staffID" placeholder="店员ID" th:value="${staffID}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">店员姓名:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="staffName" placeholder="店员姓名" th:value="${staffName}" 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="contractID" placeholder="合约ID" th:value="${contractID}" 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="contractOrderID" placeholder="合约单ID" th:value="${contractOrderID}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="status" placeholder="状态" th:value="${status}" 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 + "fwgl/sfwglservercommissionrewardinfo";
+        if ($.validate.form()) {
+            var data = $("#form-SFwglServercommissionrewardinfo-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 + "/sFwglServercommissionrewardinfoEdit", data);
+        }
+    }
+</script>

+ 129 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServerinfoAdd.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="productName" id="productName" 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="productId" id="productId" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">MDM商品编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="mdmProductCode" id="mdmProductCode" class="styled-input" type="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="productType" id="productType" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">库存:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="stock" id="stock" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品类目:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productCategory" id="productCategory" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">审核状态:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="auditStatus" id="auditStatus" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">状态:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="status" id="status" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">创建时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="creationTime" id="creationTime" 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 productId = $("input[name='productId']").val();
+           var mdmProductCode = $("input[name='mdmProductCode']").val();
+           var price = $("input[name='price']").val();
+           var productType = $("input[name='productType']").val();
+           var stock = $("input[name='stock']").val();
+           var productCategory = $("input[name='productCategory']").val();
+           var auditStatus = $("input[name='auditStatus']").val();
+           var status = $("input[name='status']").val();
+           var creationTime = $("input[name='creationTime']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "fwgl/sfwglserverinfo/sFwglServerinfoAdd",
+            data : {
+                "productName": productName,
+                "productId": productId,
+                "mdmProductCode": mdmProductCode,
+                "price": price,
+                "productType": productType,
+                "stock": stock,
+                "productCategory": productCategory,
+                "auditStatus": auditStatus,
+                "status": status,
+                "creationTime": creationTime,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 120 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServerinfoEdit.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-SFwglServerinfo-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">商品ID:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productId" placeholder="商品ID" th:value="${productId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">MDM商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="mdmProductCode" placeholder="MDM商品编码" th:value="${mdmProductCode}" class="styled-input" type="text" 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="productType" placeholder="商品类型" th:value="${productType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="stock" placeholder="库存" th:value="${stock}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品类目:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCategory" placeholder="商品类目" th:value="${productCategory}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">审核状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="auditStatus" placeholder="审核状态" th:value="${auditStatus}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="status" placeholder="状态" th:value="${status}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">创建时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="creationTime" placeholder="创建时间" th:value="${creationTime}" 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-SFwglServerinfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "fwgl/sfwglserverinfo/sFwglServerinfoEdit",
+            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/fwgl/SFwglServerinfoList.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="SFwglServerinfo-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>
+                                商品ID:<input type="text" class="styled-input" name="productId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                MDM商品编码:<input type="text" class="styled-input" name="mdmProductCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                价格:<input type="text" class="styled-input" name="price" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品类型:<input type="text" class="styled-input" name="productType" autocomplete="off"/>
+                            </li>
+                            <li>
+                                库存:<input type="text" class="styled-input" name="stock" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品类目:<input type="text" class="styled-input" name="productCategory" autocomplete="off"/>
+                            </li>
+                            <li>
+                                审核状态:<input type="text" class="styled-input" name="auditStatus" autocomplete="off"/>
+                            </li>
+                            <li>
+                                状态:<input type="text" class="styled-input" name="status" autocomplete="off"/>
+                            </li>
+                            <li>
+                                创建时间:<input type="text" class="styled-input" name="creationTime" 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 + "fwgl/sfwglserverinfo";
+    $(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 + "/sFwglServerinfoList",
+            viewUrl: prefix + "/sFwglServerinfoView/{id}",
+            createUrl: prefix + "/sFwglServerinfoAdd",
+            updateUrl: prefix + "/sFwglServerinfoEdit/{id}",
+            removeUrl: prefix + "/sFwglServerinfoRemove",
+            /*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: 'productId', title: '商品ID', align: 'center' },
+                    { field: 'mdmProductCode', title: 'MDM商品编码', align: 'center' },
+                    { field: 'price', title: '价格', align: 'center' },
+                    { field: 'productType', title: '商品类型', align: 'center' },
+                    { field: 'stock', title: '库存', align: 'center' },
+                    { field: 'productCategory', title: '商品类目', align: 'center' },
+                    { field: 'auditStatus', title: '审核状态', align: 'center' },
+                    { field: 'status', title: '状态', align: 'center' },
+                    { field: 'creationTime', 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();
+        $("#SFwglServerinfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SFwglServerinfo-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/fwgl/SFwglServerinfoPageEdit.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-SFwglServerinfo-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">商品ID:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productId" placeholder="商品ID" th:value="${productId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">MDM商品编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="mdmProductCode" placeholder="MDM商品编码" th:value="${mdmProductCode}" class="styled-input" type="text" 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="productType" placeholder="商品类型" th:value="${productType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="stock" placeholder="库存" th:value="${stock}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品类目:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productCategory" placeholder="商品类目" th:value="${productCategory}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">审核状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="auditStatus" placeholder="审核状态" th:value="${auditStatus}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="status" placeholder="状态" th:value="${status}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">创建时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="creationTime" placeholder="创建时间" th:value="${creationTime}" 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 + "fwgl/sfwglserverinfo";
+        if ($.validate.form()) {
+            var data = $("#form-SFwglServerinfo-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 + "/sFwglServerinfoEdit", data);
+        }
+    }
+</script>

+ 185 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServerorderinfoAdd.html

@@ -0,0 +1,185 @@
+<!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="orderNumber" id="orderNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品类型:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productType" id="productType" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">商品企业:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="productEnterprise" id="productEnterprise" class="styled-input" type="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="orderTime" id="orderTime" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">订单金额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderAmount" id="orderAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">订单来源:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderSource" id="orderSource" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">订单状态:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderStatus" id="orderStatus" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">下单账户:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderingAccount" id="orderingAccount" 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="userId" id="userId" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">下单手机号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderingPhone" id="orderingPhone" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">下单门店:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderingStore" id="orderingStore" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <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="refundOperator" id="refundOperator" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">优惠券是否已使用:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="couponUsed" id="couponUsed" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">实物兑换是否已使用:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="physicalRedemptionUsed" id="physicalRedemptionUsed" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">销售渠道:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="salesChannel" id="salesChannel" 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 orderNumber = $("input[name='orderNumber']").val();
+           var productType = $("input[name='productType']").val();
+           var productEnterprise = $("input[name='productEnterprise']").val();
+           var productName = $("input[name='productName']").val();
+           var orderTime = $("input[name='orderTime']").val();
+           var orderAmount = $("input[name='orderAmount']").val();
+           var orderSource = $("input[name='orderSource']").val();
+           var orderStatus = $("input[name='orderStatus']").val();
+           var orderingAccount = $("input[name='orderingAccount']").val();
+           var userId = $("input[name='userId']").val();
+           var orderingPhone = $("input[name='orderingPhone']").val();
+           var orderingStore = $("input[name='orderingStore']").val();
+           var storeCode = $("input[name='storeCode']").val();
+           var refundOperator = $("input[name='refundOperator']").val();
+           var couponUsed = $("input[name='couponUsed']").val();
+           var physicalRedemptionUsed = $("input[name='physicalRedemptionUsed']").val();
+           var salesChannel = $("input[name='salesChannel']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "fwgl/sfwglserverorderinfo/sFwglServerorderinfoAdd",
+            data : {
+                "orderNumber": orderNumber,
+                "productType": productType,
+                "productEnterprise": productEnterprise,
+                "productName": productName,
+                "orderTime": orderTime,
+                "orderAmount": orderAmount,
+                "orderSource": orderSource,
+                "orderStatus": orderStatus,
+                "orderingAccount": orderingAccount,
+                "userId": userId,
+                "orderingPhone": orderingPhone,
+                "orderingStore": orderingStore,
+                "storeCode": storeCode,
+                "refundOperator": refundOperator,
+                "couponUsed": couponUsed,
+                "physicalRedemptionUsed": physicalRedemptionUsed,
+                "salesChannel": salesChannel,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 162 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServerorderinfoEdit.html

@@ -0,0 +1,162 @@
+<!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-SFwglServerorderinfo-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="orderNumber" placeholder="订单编号" th:value="${orderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productType" placeholder="商品类型" th:value="${productType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品企业:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productEnterprise" placeholder="商品企业" th:value="${productEnterprise}" class="styled-input" type="text" 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="orderTime" placeholder="下单时间" th:value="${orderTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderAmount" placeholder="订单金额" th:value="${orderAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单来源:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderSource" placeholder="订单来源" th:value="${orderSource}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderStatus" placeholder="订单状态" th:value="${orderStatus}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单账户:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderingAccount" placeholder="下单账户" th:value="${orderingAccount}" 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="userId" placeholder="用户ID" th:value="${userId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单手机号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderingPhone" placeholder="下单手机号" th:value="${orderingPhone}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单门店:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderingStore" placeholder="下单门店" th:value="${orderingStore}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <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="refundOperator" placeholder="退款操作人" th:value="${refundOperator}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">优惠券是否已使用:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="couponUsed" placeholder="优惠券是否已使用" th:value="${couponUsed}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实物兑换是否已使用:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="physicalRedemptionUsed" placeholder="实物兑换是否已使用" th:value="${physicalRedemptionUsed}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售渠道:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesChannel" placeholder="销售渠道" th:value="${salesChannel}" 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-SFwglServerorderinfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "fwgl/sfwglserverorderinfo/sFwglServerorderinfoEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 261 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServerorderinfoList.html

@@ -0,0 +1,261 @@
+<!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="SFwglServerorderinfo-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="orderNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品类型:<input type="text" class="styled-input" name="productType" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品企业:<input type="text" class="styled-input" name="productEnterprise" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                下单时间:<input type="text" class="styled-input" name="orderTime" autocomplete="off"/>
+                            </li>
+                            <li>
+                                订单金额:<input type="text" class="styled-input" name="orderAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                订单来源:<input type="text" class="styled-input" name="orderSource" autocomplete="off"/>
+                            </li>
+                            <li>
+                                订单状态:<input type="text" class="styled-input" name="orderStatus" autocomplete="off"/>
+                            </li>
+                            <li>
+                                下单账户:<input type="text" class="styled-input" name="orderingAccount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                用户ID:<input type="text" class="styled-input" name="userId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                下单手机号:<input type="text" class="styled-input" name="orderingPhone" autocomplete="off"/>
+                            </li>
+                            <li>
+                                下单门店:<input type="text" class="styled-input" name="orderingStore" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店编码:<input type="text" class="styled-input" name="storeCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退款操作人:<input type="text" class="styled-input" name="refundOperator" autocomplete="off"/>
+                            </li>
+                            <li>
+                                优惠券是否已使用:<input type="text" class="styled-input" name="couponUsed" autocomplete="off"/>
+                            </li>
+                            <li>
+                                实物兑换是否已使用:<input type="text" class="styled-input" name="physicalRedemptionUsed" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售渠道:<input type="text" class="styled-input" name="salesChannel" 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 + "fwgl/sfwglserverorderinfo";
+    $(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 + "/sFwglServerorderinfoList",
+            viewUrl: prefix + "/sFwglServerorderinfoView/{id}",
+            createUrl: prefix + "/sFwglServerorderinfoAdd",
+            updateUrl: prefix + "/sFwglServerorderinfoEdit/{id}",
+            removeUrl: prefix + "/sFwglServerorderinfoRemove",
+            /*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: 'orderNumber', title: '订单编号', align: 'center' },
+                    { field: 'productType', title: '商品类型', align: 'center' },
+                    { field: 'productEnterprise', title: '商品企业', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'orderTime', title: '下单时间', align: 'center' },
+                    { field: 'orderAmount', title: '订单金额', align: 'center' },
+                    { field: 'orderSource', title: '订单来源', align: 'center' },
+                    { field: 'orderStatus', title: '订单状态', align: 'center' },
+                    { field: 'orderingAccount', title: '下单账户', align: 'center' },
+                    { field: 'userId', title: '用户ID', align: 'center' },
+                    { field: 'orderingPhone', title: '下单手机号', align: 'center' },
+                    { field: 'orderingStore', title: '下单门店', align: 'center' },
+                    { field: 'storeCode', title: '门店编码', align: 'center' },
+                    { field: 'refundOperator', title: '退款操作人', align: 'center' },
+                    { field: 'couponUsed', title: '优惠券是否已使用', align: 'center' },
+                    { field: 'physicalRedemptionUsed', title: '实物兑换是否已使用', align: 'center' },
+                    { field: 'salesChannel', 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();
+        $("#SFwglServerorderinfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SFwglServerorderinfo-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>

+ 153 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServerorderinfoPageEdit.html

@@ -0,0 +1,153 @@
+<!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-SFwglServerorderinfo-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="orderNumber" placeholder="订单编号" th:value="${orderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productType" placeholder="商品类型" th:value="${productType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">商品企业:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="productEnterprise" placeholder="商品企业" th:value="${productEnterprise}" class="styled-input" type="text" 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="orderTime" placeholder="下单时间" th:value="${orderTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderAmount" placeholder="订单金额" th:value="${orderAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单来源:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderSource" placeholder="订单来源" th:value="${orderSource}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderStatus" placeholder="订单状态" th:value="${orderStatus}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单账户:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderingAccount" placeholder="下单账户" th:value="${orderingAccount}" 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="userId" placeholder="用户ID" th:value="${userId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单手机号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderingPhone" placeholder="下单手机号" th:value="${orderingPhone}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单门店:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderingStore" placeholder="下单门店" th:value="${orderingStore}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <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="refundOperator" placeholder="退款操作人" th:value="${refundOperator}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">优惠券是否已使用:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="couponUsed" placeholder="优惠券是否已使用" th:value="${couponUsed}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实物兑换是否已使用:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="physicalRedemptionUsed" placeholder="实物兑换是否已使用" th:value="${physicalRedemptionUsed}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售渠道:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesChannel" placeholder="销售渠道" th:value="${salesChannel}" 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 + "fwgl/sfwglserverorderinfo";
+        if ($.validate.form()) {
+            var data = $("#form-SFwglServerorderinfo-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 + "/sFwglServerorderinfoEdit", data);
+        }
+    }
+</script>

+ 145 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServicepackageinfoAdd.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="orderNumber" id="orderNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">连锁:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="chain" id="chain" 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="servicePackageId" id="servicePackageId" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">服务包名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="servicePackageName" id="servicePackageName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">下单时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderTime" id="orderTime" 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="userId" id="userId" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">下单手机号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderingPhone" id="orderingPhone" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">订单状态:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderStatus" id="orderStatus" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">下单门店:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderingStore" id="orderingStore" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">扫码提成员工工号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="scanningStaffNumber" id="scanningStaffNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">扫码提成员工姓名:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="scanningStaffName" id="scanningStaffName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">扫码时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="scanningTime" id="scanningTime" 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 orderNumber = $("input[name='orderNumber']").val();
+           var chain = $("input[name='chain']").val();
+           var servicePackageId = $("input[name='servicePackageId']").val();
+           var servicePackageName = $("input[name='servicePackageName']").val();
+           var orderTime = $("input[name='orderTime']").val();
+           var userId = $("input[name='userId']").val();
+           var orderingPhone = $("input[name='orderingPhone']").val();
+           var orderStatus = $("input[name='orderStatus']").val();
+           var orderingStore = $("input[name='orderingStore']").val();
+           var scanningStaffNumber = $("input[name='scanningStaffNumber']").val();
+           var scanningStaffName = $("input[name='scanningStaffName']").val();
+           var scanningTime = $("input[name='scanningTime']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "fwgl/sfwglservicepackageinfo/sFwglServicepackageinfoAdd",
+            data : {
+                "orderNumber": orderNumber,
+                "chain": chain,
+                "servicePackageId": servicePackageId,
+                "servicePackageName": servicePackageName,
+                "orderTime": orderTime,
+                "userId": userId,
+                "orderingPhone": orderingPhone,
+                "orderStatus": orderStatus,
+                "orderingStore": orderingStore,
+                "scanningStaffNumber": scanningStaffNumber,
+                "scanningStaffName": scanningStaffName,
+                "scanningTime": scanningTime,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 132 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServicepackageinfoEdit.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-SFwglServicepackageinfo-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="orderNumber" placeholder="订单编号" th:value="${orderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">连锁:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="chain" placeholder="连锁" th:value="${chain}" 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="servicePackageId" placeholder="服务包ID" th:value="${servicePackageId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">服务包名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="servicePackageName" placeholder="服务包名称" th:value="${servicePackageName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderTime" placeholder="下单时间" th:value="${orderTime}" 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="userId" placeholder="用户ID" th:value="${userId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单手机号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderingPhone" placeholder="下单手机号" th:value="${orderingPhone}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderStatus" placeholder="订单状态" th:value="${orderStatus}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单门店:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderingStore" placeholder="下单门店" th:value="${orderingStore}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">扫码提成员工工号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="scanningStaffNumber" placeholder="扫码提成员工工号" th:value="${scanningStaffNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">扫码提成员工姓名:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="scanningStaffName" placeholder="扫码提成员工姓名" th:value="${scanningStaffName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">扫码时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="scanningTime" placeholder="扫码时间" th:value="${scanningTime}" 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-SFwglServicepackageinfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "fwgl/sfwglservicepackageinfo/sFwglServicepackageinfoEdit",
+            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/fwgl/SFwglServicepackageinfoList.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="SFwglServicepackageinfo-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="orderNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                连锁:<input type="text" class="styled-input" name="chain" autocomplete="off"/>
+                            </li>
+                            <li>
+                                服务包ID:<input type="text" class="styled-input" name="servicePackageId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                服务包名称:<input type="text" class="styled-input" name="servicePackageName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                下单时间:<input type="text" class="styled-input" name="orderTime" autocomplete="off"/>
+                            </li>
+                            <li>
+                                用户ID:<input type="text" class="styled-input" name="userId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                下单手机号:<input type="text" class="styled-input" name="orderingPhone" autocomplete="off"/>
+                            </li>
+                            <li>
+                                订单状态:<input type="text" class="styled-input" name="orderStatus" autocomplete="off"/>
+                            </li>
+                            <li>
+                                下单门店:<input type="text" class="styled-input" name="orderingStore" autocomplete="off"/>
+                            </li>
+                            <li>
+                                扫码提成员工工号:<input type="text" class="styled-input" name="scanningStaffNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                扫码提成员工姓名:<input type="text" class="styled-input" name="scanningStaffName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                扫码时间:<input type="text" class="styled-input" name="scanningTime" 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 + "fwgl/sfwglservicepackageinfo";
+    $(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 + "/sFwglServicepackageinfoList",
+            viewUrl: prefix + "/sFwglServicepackageinfoView/{id}",
+            createUrl: prefix + "/sFwglServicepackageinfoAdd",
+            updateUrl: prefix + "/sFwglServicepackageinfoEdit/{id}",
+            removeUrl: prefix + "/sFwglServicepackageinfoRemove",
+            /*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: 'orderNumber', title: '订单编号', align: 'center' },
+                    { field: 'chain', title: '连锁', align: 'center' },
+                    { field: 'servicePackageId', title: '服务包ID', align: 'center' },
+                    { field: 'servicePackageName', title: '服务包名称', align: 'center' },
+                    { field: 'orderTime', title: '下单时间', align: 'center' },
+                    { field: 'userId', title: '用户ID', align: 'center' },
+                    { field: 'orderingPhone', title: '下单手机号', align: 'center' },
+                    { field: 'orderStatus', title: '订单状态', align: 'center' },
+                    { field: 'orderingStore', title: '下单门店', align: 'center' },
+                    { field: 'scanningStaffNumber', title: '扫码提成员工工号', align: 'center' },
+                    { field: 'scanningStaffName', title: '扫码提成员工姓名', align: 'center' },
+                    { field: 'scanningTime', 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();
+        $("#SFwglServicepackageinfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SFwglServicepackageinfo-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/fwgl/SFwglServicepackageinfoPageEdit.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-SFwglServicepackageinfo-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="orderNumber" placeholder="订单编号" th:value="${orderNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">连锁:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="chain" placeholder="连锁" th:value="${chain}" 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="servicePackageId" placeholder="服务包ID" th:value="${servicePackageId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">服务包名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="servicePackageName" placeholder="服务包名称" th:value="${servicePackageName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderTime" placeholder="下单时间" th:value="${orderTime}" 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="userId" placeholder="用户ID" th:value="${userId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单手机号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderingPhone" placeholder="下单手机号" th:value="${orderingPhone}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderStatus" placeholder="订单状态" th:value="${orderStatus}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">下单门店:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderingStore" placeholder="下单门店" th:value="${orderingStore}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">扫码提成员工工号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="scanningStaffNumber" placeholder="扫码提成员工工号" th:value="${scanningStaffNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">扫码提成员工姓名:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="scanningStaffName" placeholder="扫码提成员工姓名" th:value="${scanningStaffName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">扫码时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="scanningTime" placeholder="扫码时间" th:value="${scanningTime}" 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 + "fwgl/sfwglservicepackageinfo";
+        if ($.validate.form()) {
+            var data = $("#form-SFwglServicepackageinfo-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 + "/sFwglServicepackageinfoEdit", data);
+        }
+    }
+</script>

+ 89 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServicetypeinfoAdd.html

@@ -0,0 +1,89 @@
+<!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="serviceTypeNumber" id="serviceTypeNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">服务类型名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="serviceTypeName" id="serviceTypeName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">服务类型描述:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="serviceTypeDescription" id="serviceTypeDescription" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">履约方:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="fulfillmentParty" id="fulfillmentParty" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="create_time" id="create_time" 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 serviceTypeNumber = $("input[name='serviceTypeNumber']").val();
+           var serviceTypeName = $("input[name='serviceTypeName']").val();
+           var serviceTypeDescription = $("input[name='serviceTypeDescription']").val();
+           var fulfillmentParty = $("input[name='fulfillmentParty']").val();
+           var create_time = $("input[name='create_time']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "fwgl/sfwglservicetypeinfo/sFwglServicetypeinfoAdd",
+            data : {
+                "serviceTypeNumber": serviceTypeNumber,
+                "serviceTypeName": serviceTypeName,
+                "serviceTypeDescription": serviceTypeDescription,
+                "fulfillmentParty": fulfillmentParty,
+                "create_time": create_time,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 90 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServicetypeinfoEdit.html

@@ -0,0 +1,90 @@
+<!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-SFwglServicetypeinfo-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="serviceTypeNumber" placeholder="服务类型编号" th:value="${serviceTypeNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">服务类型名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="serviceTypeName" placeholder="服务类型名称" th:value="${serviceTypeName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">服务类型描述:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="serviceTypeDescription" placeholder="服务类型描述" th:value="${serviceTypeDescription}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">履约方:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="fulfillmentParty" placeholder="履约方" th:value="${fulfillmentParty}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="create_time" placeholder="" th:value="${create_time}" 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-SFwglServicetypeinfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "fwgl/sfwglservicetypeinfo/sFwglServicetypeinfoEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 213 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServicetypeinfoList.html

@@ -0,0 +1,213 @@
+<!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="SFwglServicetypeinfo-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="serviceTypeNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                服务类型名称:<input type="text" class="styled-input" name="serviceTypeName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                服务类型描述:<input type="text" class="styled-input" name="serviceTypeDescription" autocomplete="off"/>
+                            </li>
+                            <li>
+                                履约方:<input type="text" class="styled-input" name="fulfillmentParty" autocomplete="off"/>
+                            </li>
+                            <li>
+                                :<input type="text" class="styled-input" name="create_time" 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 + "fwgl/sfwglservicetypeinfo";
+    $(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 + "/sFwglServicetypeinfoList",
+            viewUrl: prefix + "/sFwglServicetypeinfoView/{id}",
+            createUrl: prefix + "/sFwglServicetypeinfoAdd",
+            updateUrl: prefix + "/sFwglServicetypeinfoEdit/{id}",
+            removeUrl: prefix + "/sFwglServicetypeinfoRemove",
+            /*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: 'serviceTypeNumber', title: '服务类型编号', align: 'center' },
+                    { field: 'serviceTypeName', title: '服务类型名称', align: 'center' },
+                    { field: 'serviceTypeDescription', title: '服务类型描述', align: 'center' },
+                    { field: 'fulfillmentParty', title: '履约方', align: 'center' },
+                    { field: 'create_time', 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();
+        $("#SFwglServicetypeinfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SFwglServicetypeinfo-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>

+ 81 - 0
health-admin/src/main/resources/templates/fwgl/SFwglServicetypeinfoPageEdit.html

@@ -0,0 +1,81 @@
+<!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-SFwglServicetypeinfo-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="serviceTypeNumber" placeholder="服务类型编号" th:value="${serviceTypeNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">服务类型名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="serviceTypeName" placeholder="服务类型名称" th:value="${serviceTypeName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">服务类型描述:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="serviceTypeDescription" placeholder="服务类型描述" th:value="${serviceTypeDescription}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">履约方:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="fulfillmentParty" placeholder="履约方" th:value="${fulfillmentParty}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="create_time" placeholder="" th:value="${create_time}" 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 + "fwgl/sfwglservicetypeinfo";
+        if ($.validate.form()) {
+            var data = $("#form-SFwglServicetypeinfo-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 + "/sFwglServicetypeinfoEdit", data);
+        }
+    }
+</script>

+ 161 - 0
health-admin/src/main/resources/templates/hygl/SHyglHyxxJzyxMarketingplaninfoAdd.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="planUniqueIdentifier" id="planUniqueIdentifier" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">计划的名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="planName" id="planName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">计划的目标人群描述:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="targetAudienceDescription" id="targetAudienceDescription" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">执行计划的方法:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="executionMethods" id="executionMethods" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">推广计划所使用的渠道:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="promotionChannels" id="promotionChannels" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">计划的开始日期:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="startDate" id="startDate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">具体任务的执行时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="taskExecutionTime" id="taskExecutionTime" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">计划所属的分组名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="groupBelongingName" id="groupBelongingName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">预计参与的会员数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="estimatedParticipants" id="estimatedParticipants" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">实际成功参与的会员数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="actualParticipants" id="actualParticipants" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">任务推送的进度百分比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="taskPushProgress" id="taskPushProgress" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">任务完成的进度百分比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="taskCompletionProgress" id="taskCompletionProgress" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">计划的状态:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="planStatus" id="planStatus" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">创建计划的用户:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="createdByUser" id="createdByUser" 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 planUniqueIdentifier = $("input[name='planUniqueIdentifier']").val();
+           var planName = $("input[name='planName']").val();
+           var targetAudienceDescription = $("input[name='targetAudienceDescription']").val();
+           var executionMethods = $("input[name='executionMethods']").val();
+           var promotionChannels = $("input[name='promotionChannels']").val();
+           var startDate = $("input[name='startDate']").val();
+           var taskExecutionTime = $("input[name='taskExecutionTime']").val();
+           var groupBelongingName = $("input[name='groupBelongingName']").val();
+           var estimatedParticipants = $("input[name='estimatedParticipants']").val();
+           var actualParticipants = $("input[name='actualParticipants']").val();
+           var taskPushProgress = $("input[name='taskPushProgress']").val();
+           var taskCompletionProgress = $("input[name='taskCompletionProgress']").val();
+           var planStatus = $("input[name='planStatus']").val();
+           var createdByUser = $("input[name='createdByUser']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "hygl/shyglhyxxjzyxmarketingplaninfo/sHyglHyxxJzyxMarketingplaninfoAdd",
+            data : {
+                "planUniqueIdentifier": planUniqueIdentifier,
+                "planName": planName,
+                "targetAudienceDescription": targetAudienceDescription,
+                "executionMethods": executionMethods,
+                "promotionChannels": promotionChannels,
+                "startDate": startDate,
+                "taskExecutionTime": taskExecutionTime,
+                "groupBelongingName": groupBelongingName,
+                "estimatedParticipants": estimatedParticipants,
+                "actualParticipants": actualParticipants,
+                "taskPushProgress": taskPushProgress,
+                "taskCompletionProgress": taskCompletionProgress,
+                "planStatus": planStatus,
+                "createdByUser": createdByUser,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 144 - 0
health-admin/src/main/resources/templates/hygl/SHyglHyxxJzyxMarketingplaninfoEdit.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-SHyglHyxxJzyxMarketingplaninfo-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="planUniqueIdentifier" placeholder="计划的唯一标识符" th:value="${planUniqueIdentifier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">计划的名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="planName" placeholder="计划的名称" th:value="${planName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">计划的目标人群描述:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="targetAudienceDescription" placeholder="计划的目标人群描述" th:value="${targetAudienceDescription}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">执行计划的方法:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="executionMethods" placeholder="执行计划的方法" th:value="${executionMethods}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">推广计划所使用的渠道:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="promotionChannels" placeholder="推广计划所使用的渠道" th:value="${promotionChannels}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">计划的开始日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="startDate" placeholder="计划的开始日期" th:value="${startDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">具体任务的执行时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="taskExecutionTime" placeholder="具体任务的执行时间" th:value="${taskExecutionTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">计划所属的分组名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="groupBelongingName" placeholder="计划所属的分组名称" th:value="${groupBelongingName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">预计参与的会员数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="estimatedParticipants" placeholder="预计参与的会员数量" th:value="${estimatedParticipants}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实际成功参与的会员数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualParticipants" placeholder="实际成功参与的会员数量" th:value="${actualParticipants}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">任务推送的进度百分比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="taskPushProgress" placeholder="任务推送的进度百分比" th:value="${taskPushProgress}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">任务完成的进度百分比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="taskCompletionProgress" placeholder="任务完成的进度百分比" th:value="${taskCompletionProgress}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">计划的状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="planStatus" placeholder="计划的状态" th:value="${planStatus}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">创建计划的用户:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="createdByUser" placeholder="创建计划的用户" th:value="${createdByUser}" 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-SHyglHyxxJzyxMarketingplaninfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "hygl/shyglhyxxjzyxmarketingplaninfo/sHyglHyxxJzyxMarketingplaninfoEdit",
+            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/hygl/SHyglHyxxJzyxMarketingplaninfoList.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="SHyglHyxxJzyxMarketingplaninfo-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="planUniqueIdentifier" autocomplete="off"/>
+                            </li>
+                            <li>
+                                计划的名称:<input type="text" class="styled-input" name="planName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                计划的目标人群描述:<input type="text" class="styled-input" name="targetAudienceDescription" autocomplete="off"/>
+                            </li>
+                            <li>
+                                执行计划的方法:<input type="text" class="styled-input" name="executionMethods" autocomplete="off"/>
+                            </li>
+                            <li>
+                                推广计划所使用的渠道:<input type="text" class="styled-input" name="promotionChannels" autocomplete="off"/>
+                            </li>
+                            <li>
+                                计划的开始日期:<input type="text" class="styled-input" name="startDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                具体任务的执行时间:<input type="text" class="styled-input" name="taskExecutionTime" autocomplete="off"/>
+                            </li>
+                            <li>
+                                计划所属的分组名称:<input type="text" class="styled-input" name="groupBelongingName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                预计参与的会员数量:<input type="text" class="styled-input" name="estimatedParticipants" autocomplete="off"/>
+                            </li>
+                            <li>
+                                实际成功参与的会员数量:<input type="text" class="styled-input" name="actualParticipants" autocomplete="off"/>
+                            </li>
+                            <li>
+                                任务推送的进度百分比:<input type="text" class="styled-input" name="taskPushProgress" autocomplete="off"/>
+                            </li>
+                            <li>
+                                任务完成的进度百分比:<input type="text" class="styled-input" name="taskCompletionProgress" autocomplete="off"/>
+                            </li>
+                            <li>
+                                计划的状态:<input type="text" class="styled-input" name="planStatus" autocomplete="off"/>
+                            </li>
+                            <li>
+                                创建计划的用户:<input type="text" class="styled-input" name="createdByUser" 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 + "hygl/shyglhyxxjzyxmarketingplaninfo";
+    $(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 + "/sHyglHyxxJzyxMarketingplaninfoList",
+            viewUrl: prefix + "/sHyglHyxxJzyxMarketingplaninfoView/{id}",
+            createUrl: prefix + "/sHyglHyxxJzyxMarketingplaninfoAdd",
+            updateUrl: prefix + "/sHyglHyxxJzyxMarketingplaninfoEdit/{id}",
+            removeUrl: prefix + "/sHyglHyxxJzyxMarketingplaninfoRemove",
+            /*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: 'planUniqueIdentifier', title: '计划的唯一标识符', align: 'center' },
+                    { field: 'planName', title: '计划的名称', align: 'center' },
+                    { field: 'targetAudienceDescription', title: '计划的目标人群描述', align: 'center' },
+                    { field: 'executionMethods', title: '执行计划的方法', align: 'center' },
+                    { field: 'promotionChannels', title: '推广计划所使用的渠道', align: 'center' },
+                    { field: 'startDate', title: '计划的开始日期', align: 'center' },
+                    { field: 'taskExecutionTime', title: '具体任务的执行时间', align: 'center' },
+                    { field: 'groupBelongingName', title: '计划所属的分组名称', align: 'center' },
+                    { field: 'estimatedParticipants', title: '预计参与的会员数量', align: 'center' },
+                    { field: 'actualParticipants', title: '实际成功参与的会员数量', align: 'center' },
+                    { field: 'taskPushProgress', title: '任务推送的进度百分比', align: 'center' },
+                    { field: 'taskCompletionProgress', title: '任务完成的进度百分比', align: 'center' },
+                    { field: 'planStatus', title: '计划的状态', align: 'center' },
+                    { field: 'createdByUser', 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();
+        $("#SHyglHyxxJzyxMarketingplaninfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SHyglHyxxJzyxMarketingplaninfo-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/hygl/SHyglHyxxJzyxMarketingplaninfoPageEdit.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-SHyglHyxxJzyxMarketingplaninfo-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="planUniqueIdentifier" placeholder="计划的唯一标识符" th:value="${planUniqueIdentifier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">计划的名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="planName" placeholder="计划的名称" th:value="${planName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">计划的目标人群描述:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="targetAudienceDescription" placeholder="计划的目标人群描述" th:value="${targetAudienceDescription}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">执行计划的方法:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="executionMethods" placeholder="执行计划的方法" th:value="${executionMethods}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">推广计划所使用的渠道:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="promotionChannels" placeholder="推广计划所使用的渠道" th:value="${promotionChannels}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">计划的开始日期:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="startDate" placeholder="计划的开始日期" th:value="${startDate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">具体任务的执行时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="taskExecutionTime" placeholder="具体任务的执行时间" th:value="${taskExecutionTime}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">计划所属的分组名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="groupBelongingName" placeholder="计划所属的分组名称" th:value="${groupBelongingName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">预计参与的会员数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="estimatedParticipants" placeholder="预计参与的会员数量" th:value="${estimatedParticipants}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实际成功参与的会员数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualParticipants" placeholder="实际成功参与的会员数量" th:value="${actualParticipants}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">任务推送的进度百分比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="taskPushProgress" placeholder="任务推送的进度百分比" th:value="${taskPushProgress}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">任务完成的进度百分比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="taskCompletionProgress" placeholder="任务完成的进度百分比" th:value="${taskCompletionProgress}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">计划的状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="planStatus" placeholder="计划的状态" th:value="${planStatus}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">创建计划的用户:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="createdByUser" placeholder="创建计划的用户" th:value="${createdByUser}" 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 + "hygl/shyglhyxxjzyxmarketingplaninfo";
+        if ($.validate.form()) {
+            var data = $("#form-SHyglHyxxJzyxMarketingplaninfo-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 + "/sHyglHyxxJzyxMarketingplaninfoEdit", data);
+        }
+    }
+</script>

+ 417 - 0
health-admin/src/main/resources/templates/xsgl/SXsglMdlsSalesinventoryinfoAdd.html

@@ -0,0 +1,417 @@
+<!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">连锁Id:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="chainId" id="chainId" 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="organizationId" id="organizationId" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">组织名称:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="organizationName" id="organizationName" 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="date" id="date" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">实际金额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="actualAmount" id="actualAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">销售额预算值:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="salesBudget" id="salesBudget" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">毛利额预算:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="grossProfitBudget" id="grossProfitBudget" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">毛利额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="grossProfitAmount" id="grossProfitAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">毛利率:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="grossProfitMargin" id="grossProfitMargin" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">近效期数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="nearExpiryQuantity" id="nearExpiryQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">三月不动效数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="threeMonthInactiveQuantity" id="threeMonthInactiveQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">来客数:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="customerVisits" id="customerVisits" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">会员销售金额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="memberSalesAmount" id="memberSalesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">会员销售毛利:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="memberSalesGrossProfit" id="memberSalesGrossProfit" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">会员客户数:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="memberCustomerCount" id="memberCustomerCount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">保健品:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="healthSupplements" id="healthSupplements" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">OTC:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="otc" id="otc" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">其他:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="others" id="others" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">处方:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="prescription" id="prescription" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">中药参茸:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="chineseMedicineAndGinseng" id="chineseMedicineAndGinseng" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">中西成药:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="chineseAndWesternMedicines" id="chineseAndWesternMedicines" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">便利食品:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="convenienceFood" id="convenienceFood" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">日化用品:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="dailyChemicals" id="dailyChemicals" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">服务与非卖品:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="servicesAndNonSellableItems" id="servicesAndNonSellableItems" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">母婴用品:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="maternityProducts" id="maternityProducts" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">消杀用品:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="disinfectionSupplies" id="disinfectionSupplies" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A1:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="categoryA1" id="categoryA1" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A2:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="categoryA2" id="categoryA2" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A3:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="categoryA3" id="categoryA3" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A4:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="categoryA4" id="categoryA4" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">AA:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="categoryAA" id="categoryAA" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">其它营销级别:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="otherMarketingLevels" id="otherMarketingLevels" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">低毛利:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lowProfit" id="lowProfit" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">微毛利:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="marginalProfit" id="marginalProfit" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">负毛利:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="negativeProfit" id="negativeProfit" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">淘汰:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="elimination" id="elimination" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">一月不动销剩余库存:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="oneMonthInactiveStock" id="oneMonthInactiveStock" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">三月不动效剩余库存:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="threeMonthInactiveStock" id="threeMonthInactiveStock" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">近效期剩余库存:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="nearExpiryRemainingStock" id="nearExpiryRemainingStock" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">环境标识:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="environmentIdentifier" id="environmentIdentifier" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">记录状态:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="recordStatus" id="recordStatus" 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="creatorId" id="creatorId" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">创建时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="createTime" id="createTime" 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="updaterId" id="updaterId" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">更新时间:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="updateTime" id="updateTime" 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 chainId = $("input[name='chainId']").val();
+           var organizationId = $("input[name='organizationId']").val();
+           var organizationName = $("input[name='organizationName']").val();
+           var storeId = $("input[name='storeId']").val();
+           var date = $("input[name='date']").val();
+           var actualAmount = $("input[name='actualAmount']").val();
+           var salesBudget = $("input[name='salesBudget']").val();
+           var grossProfitBudget = $("input[name='grossProfitBudget']").val();
+           var grossProfitAmount = $("input[name='grossProfitAmount']").val();
+           var grossProfitMargin = $("input[name='grossProfitMargin']").val();
+           var nearExpiryQuantity = $("input[name='nearExpiryQuantity']").val();
+           var threeMonthInactiveQuantity = $("input[name='threeMonthInactiveQuantity']").val();
+           var customerVisits = $("input[name='customerVisits']").val();
+           var memberSalesAmount = $("input[name='memberSalesAmount']").val();
+           var memberSalesGrossProfit = $("input[name='memberSalesGrossProfit']").val();
+           var memberCustomerCount = $("input[name='memberCustomerCount']").val();
+           var healthSupplements = $("input[name='healthSupplements']").val();
+           var otc = $("input[name='otc']").val();
+           var others = $("input[name='others']").val();
+           var prescription = $("input[name='prescription']").val();
+           var chineseMedicineAndGinseng = $("input[name='chineseMedicineAndGinseng']").val();
+           var chineseAndWesternMedicines = $("input[name='chineseAndWesternMedicines']").val();
+           var convenienceFood = $("input[name='convenienceFood']").val();
+           var dailyChemicals = $("input[name='dailyChemicals']").val();
+           var servicesAndNonSellableItems = $("input[name='servicesAndNonSellableItems']").val();
+           var maternityProducts = $("input[name='maternityProducts']").val();
+           var disinfectionSupplies = $("input[name='disinfectionSupplies']").val();
+           var categoryA1 = $("input[name='categoryA1']").val();
+           var categoryA2 = $("input[name='categoryA2']").val();
+           var categoryA3 = $("input[name='categoryA3']").val();
+           var categoryA4 = $("input[name='categoryA4']").val();
+           var categoryAA = $("input[name='categoryAA']").val();
+           var otherMarketingLevels = $("input[name='otherMarketingLevels']").val();
+           var lowProfit = $("input[name='lowProfit']").val();
+           var marginalProfit = $("input[name='marginalProfit']").val();
+           var negativeProfit = $("input[name='negativeProfit']").val();
+           var elimination = $("input[name='elimination']").val();
+           var oneMonthInactiveStock = $("input[name='oneMonthInactiveStock']").val();
+           var threeMonthInactiveStock = $("input[name='threeMonthInactiveStock']").val();
+           var nearExpiryRemainingStock = $("input[name='nearExpiryRemainingStock']").val();
+           var environmentIdentifier = $("input[name='environmentIdentifier']").val();
+           var recordStatus = $("input[name='recordStatus']").val();
+           var creatorId = $("input[name='creatorId']").val();
+           var createTime = $("input[name='createTime']").val();
+           var updaterId = $("input[name='updaterId']").val();
+           var updateTime = $("input[name='updateTime']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglmdlssalesinventoryinfo/sXsglMdlsSalesinventoryinfoAdd",
+            data : {
+                "chainId": chainId,
+                "organizationId": organizationId,
+                "organizationName": organizationName,
+                "storeId": storeId,
+                "date": date,
+                "actualAmount": actualAmount,
+                "salesBudget": salesBudget,
+                "grossProfitBudget": grossProfitBudget,
+                "grossProfitAmount": grossProfitAmount,
+                "grossProfitMargin": grossProfitMargin,
+                "nearExpiryQuantity": nearExpiryQuantity,
+                "threeMonthInactiveQuantity": threeMonthInactiveQuantity,
+                "customerVisits": customerVisits,
+                "memberSalesAmount": memberSalesAmount,
+                "memberSalesGrossProfit": memberSalesGrossProfit,
+                "memberCustomerCount": memberCustomerCount,
+                "healthSupplements": healthSupplements,
+                "otc": otc,
+                "others": others,
+                "prescription": prescription,
+                "chineseMedicineAndGinseng": chineseMedicineAndGinseng,
+                "chineseAndWesternMedicines": chineseAndWesternMedicines,
+                "convenienceFood": convenienceFood,
+                "dailyChemicals": dailyChemicals,
+                "servicesAndNonSellableItems": servicesAndNonSellableItems,
+                "maternityProducts": maternityProducts,
+                "disinfectionSupplies": disinfectionSupplies,
+                "categoryA1": categoryA1,
+                "categoryA2": categoryA2,
+                "categoryA3": categoryA3,
+                "categoryA4": categoryA4,
+                "categoryAA": categoryAA,
+                "otherMarketingLevels": otherMarketingLevels,
+                "lowProfit": lowProfit,
+                "marginalProfit": marginalProfit,
+                "negativeProfit": negativeProfit,
+                "elimination": elimination,
+                "oneMonthInactiveStock": oneMonthInactiveStock,
+                "threeMonthInactiveStock": threeMonthInactiveStock,
+                "nearExpiryRemainingStock": nearExpiryRemainingStock,
+                "environmentIdentifier": environmentIdentifier,
+                "recordStatus": recordStatus,
+                "creatorId": creatorId,
+                "createTime": createTime,
+                "updaterId": updaterId,
+                "updateTime": updateTime,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 336 - 0
health-admin/src/main/resources/templates/xsgl/SXsglMdlsSalesinventoryinfoEdit.html

@@ -0,0 +1,336 @@
+<!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-SXsglMdlsSalesinventoryinfo-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">连锁Id:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="chainId" placeholder="连锁Id" th:value="${chainId}" 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="organizationId" placeholder="组织Id" th:value="${organizationId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">组织名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="organizationName" placeholder="组织名称" th:value="${organizationName}" 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="date" placeholder="日期" th:value="${date}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实际金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualAmount" placeholder="实际金额" th:value="${actualAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售额预算值:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesBudget" placeholder="销售额预算值" th:value="${salesBudget}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利额预算:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitBudget" placeholder="毛利额预算" th:value="${grossProfitBudget}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitAmount" placeholder="毛利额" th:value="${grossProfitAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利率:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitMargin" placeholder="毛利率" th:value="${grossProfitMargin}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">近效期数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="nearExpiryQuantity" placeholder="近效期数量" th:value="${nearExpiryQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">三月不动效数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="threeMonthInactiveQuantity" placeholder="三月不动效数量" th:value="${threeMonthInactiveQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">来客数:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="customerVisits" placeholder="来客数" th:value="${customerVisits}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">会员销售金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="memberSalesAmount" placeholder="会员销售金额" th:value="${memberSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">会员销售毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="memberSalesGrossProfit" placeholder="会员销售毛利" th:value="${memberSalesGrossProfit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">会员客户数:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="memberCustomerCount" placeholder="会员客户数" th:value="${memberCustomerCount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">保健品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="healthSupplements" placeholder="保健品" th:value="${healthSupplements}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">OTC:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="otc" placeholder="OTC" th:value="${otc}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">其他:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="others" placeholder="其他" th:value="${others}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">处方:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="prescription" placeholder="处方" th:value="${prescription}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">中药参茸:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="chineseMedicineAndGinseng" placeholder="中药参茸" th:value="${chineseMedicineAndGinseng}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">中西成药:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="chineseAndWesternMedicines" placeholder="中西成药" th:value="${chineseAndWesternMedicines}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">便利食品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="convenienceFood" placeholder="便利食品" th:value="${convenienceFood}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">日化用品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dailyChemicals" placeholder="日化用品" th:value="${dailyChemicals}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">服务与非卖品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="servicesAndNonSellableItems" placeholder="服务与非卖品" th:value="${servicesAndNonSellableItems}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">母婴用品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="maternityProducts" placeholder="母婴用品" th:value="${maternityProducts}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">消杀用品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="disinfectionSupplies" placeholder="消杀用品" th:value="${disinfectionSupplies}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A1:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="categoryA1" placeholder="A1" th:value="${categoryA1}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A2:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="categoryA2" placeholder="A2" th:value="${categoryA2}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A3:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="categoryA3" placeholder="A3" th:value="${categoryA3}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A4:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="categoryA4" placeholder="A4" th:value="${categoryA4}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">AA:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="categoryAA" placeholder="AA" th:value="${categoryAA}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">其它营销级别:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="otherMarketingLevels" placeholder="其它营销级别" th:value="${otherMarketingLevels}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">低毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lowProfit" placeholder="低毛利" th:value="${lowProfit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">微毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="marginalProfit" placeholder="微毛利" th:value="${marginalProfit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">负毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="negativeProfit" placeholder="负毛利" th:value="${negativeProfit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">淘汰:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="elimination" placeholder="淘汰" th:value="${elimination}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">一月不动销剩余库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="oneMonthInactiveStock" placeholder="一月不动销剩余库存" th:value="${oneMonthInactiveStock}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">三月不动效剩余库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="threeMonthInactiveStock" placeholder="三月不动效剩余库存" th:value="${threeMonthInactiveStock}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">近效期剩余库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="nearExpiryRemainingStock" placeholder="近效期剩余库存" th:value="${nearExpiryRemainingStock}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">环境标识:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="environmentIdentifier" placeholder="环境标识" th:value="${environmentIdentifier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">记录状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="recordStatus" placeholder="记录状态" th:value="${recordStatus}" 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="creatorId" placeholder="创建人id" th:value="${creatorId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">创建时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="createTime" placeholder="创建时间" th:value="${createTime}" 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="updaterId" placeholder="更新人id" th:value="${updaterId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">更新时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="updateTime" placeholder="更新时间" th:value="${updateTime}" 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-SXsglMdlsSalesinventoryinfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglmdlssalesinventoryinfo/sXsglMdlsSalesinventoryinfoEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 377 - 0
health-admin/src/main/resources/templates/xsgl/SXsglMdlsSalesinventoryinfoList.html

@@ -0,0 +1,377 @@
+<!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="SXsglMdlsSalesinventoryinfo-form">
+                    <input type="hidden" id="deptId" name="deptId">
+                    <input type="hidden" id="parentId" name="parentId">
+                    <div class="select-list" >
+                        <ul>
+                            <li>
+                                连锁Id:<input type="text" class="styled-input" name="chainId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                组织Id:<input type="text" class="styled-input" name="organizationId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                组织名称:<input type="text" class="styled-input" name="organizationName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店Id:<input type="text" class="styled-input" name="storeId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                日期:<input type="text" class="styled-input" name="date" autocomplete="off"/>
+                            </li>
+                            <li>
+                                实际金额:<input type="text" class="styled-input" name="actualAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售额预算值:<input type="text" class="styled-input" name="salesBudget" autocomplete="off"/>
+                            </li>
+                            <li>
+                                毛利额预算:<input type="text" class="styled-input" name="grossProfitBudget" autocomplete="off"/>
+                            </li>
+                            <li>
+                                毛利额:<input type="text" class="styled-input" name="grossProfitAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                毛利率:<input type="text" class="styled-input" name="grossProfitMargin" autocomplete="off"/>
+                            </li>
+                            <li>
+                                近效期数量:<input type="text" class="styled-input" name="nearExpiryQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                三月不动效数量:<input type="text" class="styled-input" name="threeMonthInactiveQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                来客数:<input type="text" class="styled-input" name="customerVisits" autocomplete="off"/>
+                            </li>
+                            <li>
+                                会员销售金额:<input type="text" class="styled-input" name="memberSalesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                会员销售毛利:<input type="text" class="styled-input" name="memberSalesGrossProfit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                会员客户数:<input type="text" class="styled-input" name="memberCustomerCount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                保健品:<input type="text" class="styled-input" name="healthSupplements" autocomplete="off"/>
+                            </li>
+                            <li>
+                                OTC:<input type="text" class="styled-input" name="otc" autocomplete="off"/>
+                            </li>
+                            <li>
+                                其他:<input type="text" class="styled-input" name="others" autocomplete="off"/>
+                            </li>
+                            <li>
+                                处方:<input type="text" class="styled-input" name="prescription" autocomplete="off"/>
+                            </li>
+                            <li>
+                                中药参茸:<input type="text" class="styled-input" name="chineseMedicineAndGinseng" autocomplete="off"/>
+                            </li>
+                            <li>
+                                中西成药:<input type="text" class="styled-input" name="chineseAndWesternMedicines" autocomplete="off"/>
+                            </li>
+                            <li>
+                                便利食品:<input type="text" class="styled-input" name="convenienceFood" autocomplete="off"/>
+                            </li>
+                            <li>
+                                日化用品:<input type="text" class="styled-input" name="dailyChemicals" autocomplete="off"/>
+                            </li>
+                            <li>
+                                服务与非卖品:<input type="text" class="styled-input" name="servicesAndNonSellableItems" autocomplete="off"/>
+                            </li>
+                            <li>
+                                母婴用品:<input type="text" class="styled-input" name="maternityProducts" autocomplete="off"/>
+                            </li>
+                            <li>
+                                消杀用品:<input type="text" class="styled-input" name="disinfectionSupplies" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A1:<input type="text" class="styled-input" name="categoryA1" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A2:<input type="text" class="styled-input" name="categoryA2" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A3:<input type="text" class="styled-input" name="categoryA3" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A4:<input type="text" class="styled-input" name="categoryA4" autocomplete="off"/>
+                            </li>
+                            <li>
+                                AA:<input type="text" class="styled-input" name="categoryAA" autocomplete="off"/>
+                            </li>
+                            <li>
+                                其它营销级别:<input type="text" class="styled-input" name="otherMarketingLevels" autocomplete="off"/>
+                            </li>
+                            <li>
+                                低毛利:<input type="text" class="styled-input" name="lowProfit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                微毛利:<input type="text" class="styled-input" name="marginalProfit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                负毛利:<input type="text" class="styled-input" name="negativeProfit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                淘汰:<input type="text" class="styled-input" name="elimination" autocomplete="off"/>
+                            </li>
+                            <li>
+                                一月不动销剩余库存:<input type="text" class="styled-input" name="oneMonthInactiveStock" autocomplete="off"/>
+                            </li>
+                            <li>
+                                三月不动效剩余库存:<input type="text" class="styled-input" name="threeMonthInactiveStock" autocomplete="off"/>
+                            </li>
+                            <li>
+                                近效期剩余库存:<input type="text" class="styled-input" name="nearExpiryRemainingStock" autocomplete="off"/>
+                            </li>
+                            <li>
+                                环境标识:<input type="text" class="styled-input" name="environmentIdentifier" autocomplete="off"/>
+                            </li>
+                            <li>
+                                记录状态:<input type="text" class="styled-input" name="recordStatus" autocomplete="off"/>
+                            </li>
+                            <li>
+                                创建人id:<input type="text" class="styled-input" name="creatorId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                创建时间:<input type="text" class="styled-input" name="createTime" autocomplete="off"/>
+                            </li>
+                            <li>
+                                更新人id:<input type="text" class="styled-input" name="updaterId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                更新时间:<input type="text" class="styled-input" name="updateTime" 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 + "xsgl/sxsglmdlssalesinventoryinfo";
+    $(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 + "/sXsglMdlsSalesinventoryinfoList",
+            viewUrl: prefix + "/sXsglMdlsSalesinventoryinfoView/{id}",
+            createUrl: prefix + "/sXsglMdlsSalesinventoryinfoAdd",
+            updateUrl: prefix + "/sXsglMdlsSalesinventoryinfoEdit/{id}",
+            removeUrl: prefix + "/sXsglMdlsSalesinventoryinfoRemove",
+            /*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: 'chainId', title: '连锁Id', align: 'center' },
+                    { field: 'organizationId', title: '组织Id', align: 'center' },
+                    { field: 'organizationName', title: '组织名称', align: 'center' },
+                    { field: 'storeId', title: '门店Id', align: 'center' },
+                    { field: 'date', title: '日期', align: 'center' },
+                    { field: 'actualAmount', title: '实际金额', align: 'center' },
+                    { field: 'salesBudget', title: '销售额预算值', align: 'center' },
+                    { field: 'grossProfitBudget', title: '毛利额预算', align: 'center' },
+                    { field: 'grossProfitAmount', title: '毛利额', align: 'center' },
+                    { field: 'grossProfitMargin', title: '毛利率', align: 'center' },
+                    { field: 'nearExpiryQuantity', title: '近效期数量', align: 'center' },
+                    { field: 'threeMonthInactiveQuantity', title: '三月不动效数量', align: 'center' },
+                    { field: 'customerVisits', title: '来客数', align: 'center' },
+                    { field: 'memberSalesAmount', title: '会员销售金额', align: 'center' },
+                    { field: 'memberSalesGrossProfit', title: '会员销售毛利', align: 'center' },
+                    { field: 'memberCustomerCount', title: '会员客户数', align: 'center' },
+                    { field: 'healthSupplements', title: '保健品', align: 'center' },
+                    { field: 'otc', title: 'OTC', align: 'center' },
+                    { field: 'others', title: '其他', align: 'center' },
+                    { field: 'prescription', title: '处方', align: 'center' },
+                    { field: 'chineseMedicineAndGinseng', title: '中药参茸', align: 'center' },
+                    { field: 'chineseAndWesternMedicines', title: '中西成药', align: 'center' },
+                    { field: 'convenienceFood', title: '便利食品', align: 'center' },
+                    { field: 'dailyChemicals', title: '日化用品', align: 'center' },
+                    { field: 'servicesAndNonSellableItems', title: '服务与非卖品', align: 'center' },
+                    { field: 'maternityProducts', title: '母婴用品', align: 'center' },
+                    { field: 'disinfectionSupplies', title: '消杀用品', align: 'center' },
+                    { field: 'categoryA1', title: 'A1', align: 'center' },
+                    { field: 'categoryA2', title: 'A2', align: 'center' },
+                    { field: 'categoryA3', title: 'A3', align: 'center' },
+                    { field: 'categoryA4', title: 'A4', align: 'center' },
+                    { field: 'categoryAA', title: 'AA', align: 'center' },
+                    { field: 'otherMarketingLevels', title: '其它营销级别', align: 'center' },
+                    { field: 'lowProfit', title: '低毛利', align: 'center' },
+                    { field: 'marginalProfit', title: '微毛利', align: 'center' },
+                    { field: 'negativeProfit', title: '负毛利', align: 'center' },
+                    { field: 'elimination', title: '淘汰', align: 'center' },
+                    { field: 'oneMonthInactiveStock', title: '一月不动销剩余库存', align: 'center' },
+                    { field: 'threeMonthInactiveStock', title: '三月不动效剩余库存', align: 'center' },
+                    { field: 'nearExpiryRemainingStock', title: '近效期剩余库存', align: 'center' },
+                    { field: 'environmentIdentifier', title: '环境标识', align: 'center' },
+                    { field: 'recordStatus', title: '记录状态', align: 'center' },
+                    { field: 'creatorId', title: '创建人id', align: 'center' },
+                    { field: 'createTime', title: '创建时间', align: 'center' },
+                    { field: 'updaterId', title: '更新人id', align: 'center' },
+                    { field: 'updateTime', 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();
+        $("#SXsglMdlsSalesinventoryinfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SXsglMdlsSalesinventoryinfo-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>

+ 327 - 0
health-admin/src/main/resources/templates/xsgl/SXsglMdlsSalesinventoryinfoPageEdit.html

@@ -0,0 +1,327 @@
+<!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-SXsglMdlsSalesinventoryinfo-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">连锁Id:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="chainId" placeholder="连锁Id" th:value="${chainId}" 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="organizationId" placeholder="组织Id" th:value="${organizationId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">组织名称:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="organizationName" placeholder="组织名称" th:value="${organizationName}" 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="date" placeholder="日期" th:value="${date}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实际金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualAmount" placeholder="实际金额" th:value="${actualAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售额预算值:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesBudget" placeholder="销售额预算值" th:value="${salesBudget}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利额预算:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitBudget" placeholder="毛利额预算" th:value="${grossProfitBudget}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitAmount" placeholder="毛利额" th:value="${grossProfitAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利率:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitMargin" placeholder="毛利率" th:value="${grossProfitMargin}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">近效期数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="nearExpiryQuantity" placeholder="近效期数量" th:value="${nearExpiryQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">三月不动效数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="threeMonthInactiveQuantity" placeholder="三月不动效数量" th:value="${threeMonthInactiveQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">来客数:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="customerVisits" placeholder="来客数" th:value="${customerVisits}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">会员销售金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="memberSalesAmount" placeholder="会员销售金额" th:value="${memberSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">会员销售毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="memberSalesGrossProfit" placeholder="会员销售毛利" th:value="${memberSalesGrossProfit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">会员客户数:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="memberCustomerCount" placeholder="会员客户数" th:value="${memberCustomerCount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">保健品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="healthSupplements" placeholder="保健品" th:value="${healthSupplements}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">OTC:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="otc" placeholder="OTC" th:value="${otc}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">其他:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="others" placeholder="其他" th:value="${others}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">处方:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="prescription" placeholder="处方" th:value="${prescription}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">中药参茸:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="chineseMedicineAndGinseng" placeholder="中药参茸" th:value="${chineseMedicineAndGinseng}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">中西成药:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="chineseAndWesternMedicines" placeholder="中西成药" th:value="${chineseAndWesternMedicines}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">便利食品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="convenienceFood" placeholder="便利食品" th:value="${convenienceFood}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">日化用品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="dailyChemicals" placeholder="日化用品" th:value="${dailyChemicals}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">服务与非卖品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="servicesAndNonSellableItems" placeholder="服务与非卖品" th:value="${servicesAndNonSellableItems}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">母婴用品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="maternityProducts" placeholder="母婴用品" th:value="${maternityProducts}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">消杀用品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="disinfectionSupplies" placeholder="消杀用品" th:value="${disinfectionSupplies}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A1:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="categoryA1" placeholder="A1" th:value="${categoryA1}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A2:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="categoryA2" placeholder="A2" th:value="${categoryA2}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A3:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="categoryA3" placeholder="A3" th:value="${categoryA3}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A4:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="categoryA4" placeholder="A4" th:value="${categoryA4}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">AA:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="categoryAA" placeholder="AA" th:value="${categoryAA}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">其它营销级别:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="otherMarketingLevels" placeholder="其它营销级别" th:value="${otherMarketingLevels}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">低毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lowProfit" placeholder="低毛利" th:value="${lowProfit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">微毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="marginalProfit" placeholder="微毛利" th:value="${marginalProfit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">负毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="negativeProfit" placeholder="负毛利" th:value="${negativeProfit}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">淘汰:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="elimination" placeholder="淘汰" th:value="${elimination}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">一月不动销剩余库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="oneMonthInactiveStock" placeholder="一月不动销剩余库存" th:value="${oneMonthInactiveStock}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">三月不动效剩余库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="threeMonthInactiveStock" placeholder="三月不动效剩余库存" th:value="${threeMonthInactiveStock}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">近效期剩余库存:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="nearExpiryRemainingStock" placeholder="近效期剩余库存" th:value="${nearExpiryRemainingStock}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">环境标识:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="environmentIdentifier" placeholder="环境标识" th:value="${environmentIdentifier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">记录状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="recordStatus" placeholder="记录状态" th:value="${recordStatus}" 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="creatorId" placeholder="创建人id" th:value="${creatorId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">创建时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="createTime" placeholder="创建时间" th:value="${createTime}" 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="updaterId" placeholder="更新人id" th:value="${updaterId}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">更新时间:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="updateTime" placeholder="更新时间" th:value="${updateTime}" 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 + "xsgl/sxsglmdlssalesinventoryinfo";
+        if ($.validate.form()) {
+            var data = $("#form-SXsglMdlsSalesinventoryinfo-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 + "/sXsglMdlsSalesinventoryinfoEdit", data);
+        }
+    }
+</script>

+ 401 - 0
health-admin/src/main/resources/templates/xsgl/SXsglMdlsrbbYgSalesperformanceinfoAdd.html

@@ -0,0 +1,401 @@
+<!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="name" id="name" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">销售额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="salesAmount" id="salesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">销售额占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="salesRatio" id="salesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">销售额任务达成:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="salesTargetAchievement" id="salesTargetAchievement" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">毛利额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="grossProfitAmount" id="grossProfitAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">毛利额占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="grossProfitRatio" id="grossProfitRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">毛利额任务达成:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="grossProfitTargetAchievement" id="grossProfitTargetAchievement" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">毛利率:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="grossProfitMargin" id="grossProfitMargin" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">来客数:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="customerVisits" id="customerVisits" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">来客数占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="customerVisitsRatio" id="customerVisitsRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">客单价:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="averageTransactionValue" id="averageTransactionValue" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">AA销售额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="aaSalesAmount" id="aaSalesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">AA销售额占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="aaSalesRatio" id="aaSalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">AA达成:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="aaTargetAchievement" id="aaTargetAchievement" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A1销售额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="a1SalesAmount" id="a1SalesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A1销售额占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="a1SalesRatio" id="a1SalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A1达成:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="a1TargetAchievement" id="a1TargetAchievement" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A2销售额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="a2SalesAmount" id="a2SalesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">低毛利:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lowProfitSalesAmount" id="lowProfitSalesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">微毛利:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="marginalProfitSalesAmount" id="marginalProfitSalesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">负毛利:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="negativeProfitSalesAmount" id="negativeProfitSalesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">淘汰:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="eliminationSalesAmount" id="eliminationSalesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A2销售额占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="a2SalesRatio" id="a2SalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A3销售额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="a3SalesAmount" id="a3SalesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A3销售额占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="a3SalesRatio" id="a3SalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A4销售额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="a4SalesAmount" id="a4SalesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">A4销售额占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="a4SalesRatio" id="a4SalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">低毛销售额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lowProfitSales" id="lowProfitSales" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">低毛销售额占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lowProfitSalesRatio" id="lowProfitSalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">微毛销售额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="marginalProfitSales" id="marginalProfitSales" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">微毛销售额占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="marginalProfitSalesRatio" id="marginalProfitSalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">负毛销售额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="negativeProfitSales" id="negativeProfitSales" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">负毛销售额占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="negativeProfitSalesRatio" id="negativeProfitSalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">其它销售额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="otherSalesAmount" id="otherSalesAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">其它销售额占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="otherSalesRatio" id="otherSalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">效期商品销量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="expiryProductSales" id="expiryProductSales" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">效期商品销量占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="expiryProductSalesRatio" id="expiryProductSalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">效期商品任务达成:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="expiryProductTargetAchievement" id="expiryProductTargetAchievement" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">淘汰商品销量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="eliminationProductSales" id="eliminationProductSales" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">淘汰商品销量占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="eliminationProductSalesRatio" id="eliminationProductSalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">淘汰商品达成:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="eliminationProductTargetAchievement" id="eliminationProductTargetAchievement" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">不动销销量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inactiveProductSales" id="inactiveProductSales" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">不动销销量占比:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inactiveProductSalesRatio" id="inactiveProductSalesRatio" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">不动销任务达成:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="inactiveProductTargetAchievement" id="inactiveProductTargetAchievement" 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 name = $("input[name='name']").val();
+           var salesAmount = $("input[name='salesAmount']").val();
+           var salesRatio = $("input[name='salesRatio']").val();
+           var salesTargetAchievement = $("input[name='salesTargetAchievement']").val();
+           var grossProfitAmount = $("input[name='grossProfitAmount']").val();
+           var grossProfitRatio = $("input[name='grossProfitRatio']").val();
+           var grossProfitTargetAchievement = $("input[name='grossProfitTargetAchievement']").val();
+           var grossProfitMargin = $("input[name='grossProfitMargin']").val();
+           var customerVisits = $("input[name='customerVisits']").val();
+           var customerVisitsRatio = $("input[name='customerVisitsRatio']").val();
+           var averageTransactionValue = $("input[name='averageTransactionValue']").val();
+           var aaSalesAmount = $("input[name='aaSalesAmount']").val();
+           var aaSalesRatio = $("input[name='aaSalesRatio']").val();
+           var aaTargetAchievement = $("input[name='aaTargetAchievement']").val();
+           var a1SalesAmount = $("input[name='a1SalesAmount']").val();
+           var a1SalesRatio = $("input[name='a1SalesRatio']").val();
+           var a1TargetAchievement = $("input[name='a1TargetAchievement']").val();
+           var a2SalesAmount = $("input[name='a2SalesAmount']").val();
+           var lowProfitSalesAmount = $("input[name='lowProfitSalesAmount']").val();
+           var marginalProfitSalesAmount = $("input[name='marginalProfitSalesAmount']").val();
+           var negativeProfitSalesAmount = $("input[name='negativeProfitSalesAmount']").val();
+           var eliminationSalesAmount = $("input[name='eliminationSalesAmount']").val();
+           var a2SalesRatio = $("input[name='a2SalesRatio']").val();
+           var a3SalesAmount = $("input[name='a3SalesAmount']").val();
+           var a3SalesRatio = $("input[name='a3SalesRatio']").val();
+           var a4SalesAmount = $("input[name='a4SalesAmount']").val();
+           var a4SalesRatio = $("input[name='a4SalesRatio']").val();
+           var lowProfitSales = $("input[name='lowProfitSales']").val();
+           var lowProfitSalesRatio = $("input[name='lowProfitSalesRatio']").val();
+           var marginalProfitSales = $("input[name='marginalProfitSales']").val();
+           var marginalProfitSalesRatio = $("input[name='marginalProfitSalesRatio']").val();
+           var negativeProfitSales = $("input[name='negativeProfitSales']").val();
+           var negativeProfitSalesRatio = $("input[name='negativeProfitSalesRatio']").val();
+           var otherSalesAmount = $("input[name='otherSalesAmount']").val();
+           var otherSalesRatio = $("input[name='otherSalesRatio']").val();
+           var expiryProductSales = $("input[name='expiryProductSales']").val();
+           var expiryProductSalesRatio = $("input[name='expiryProductSalesRatio']").val();
+           var expiryProductTargetAchievement = $("input[name='expiryProductTargetAchievement']").val();
+           var eliminationProductSales = $("input[name='eliminationProductSales']").val();
+           var eliminationProductSalesRatio = $("input[name='eliminationProductSalesRatio']").val();
+           var eliminationProductTargetAchievement = $("input[name='eliminationProductTargetAchievement']").val();
+           var inactiveProductSales = $("input[name='inactiveProductSales']").val();
+           var inactiveProductSalesRatio = $("input[name='inactiveProductSalesRatio']").val();
+           var inactiveProductTargetAchievement = $("input[name='inactiveProductTargetAchievement']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglmdlsrbbygsalesperformanceinfo/sXsglMdlsrbbYgSalesperformanceinfoAdd",
+            data : {
+                "name": name,
+                "salesAmount": salesAmount,
+                "salesRatio": salesRatio,
+                "salesTargetAchievement": salesTargetAchievement,
+                "grossProfitAmount": grossProfitAmount,
+                "grossProfitRatio": grossProfitRatio,
+                "grossProfitTargetAchievement": grossProfitTargetAchievement,
+                "grossProfitMargin": grossProfitMargin,
+                "customerVisits": customerVisits,
+                "customerVisitsRatio": customerVisitsRatio,
+                "averageTransactionValue": averageTransactionValue,
+                "aaSalesAmount": aaSalesAmount,
+                "aaSalesRatio": aaSalesRatio,
+                "aaTargetAchievement": aaTargetAchievement,
+                "a1SalesAmount": a1SalesAmount,
+                "a1SalesRatio": a1SalesRatio,
+                "a1TargetAchievement": a1TargetAchievement,
+                "a2SalesAmount": a2SalesAmount,
+                "lowProfitSalesAmount": lowProfitSalesAmount,
+                "marginalProfitSalesAmount": marginalProfitSalesAmount,
+                "negativeProfitSalesAmount": negativeProfitSalesAmount,
+                "eliminationSalesAmount": eliminationSalesAmount,
+                "a2SalesRatio": a2SalesRatio,
+                "a3SalesAmount": a3SalesAmount,
+                "a3SalesRatio": a3SalesRatio,
+                "a4SalesAmount": a4SalesAmount,
+                "a4SalesRatio": a4SalesRatio,
+                "lowProfitSales": lowProfitSales,
+                "lowProfitSalesRatio": lowProfitSalesRatio,
+                "marginalProfitSales": marginalProfitSales,
+                "marginalProfitSalesRatio": marginalProfitSalesRatio,
+                "negativeProfitSales": negativeProfitSales,
+                "negativeProfitSalesRatio": negativeProfitSalesRatio,
+                "otherSalesAmount": otherSalesAmount,
+                "otherSalesRatio": otherSalesRatio,
+                "expiryProductSales": expiryProductSales,
+                "expiryProductSalesRatio": expiryProductSalesRatio,
+                "expiryProductTargetAchievement": expiryProductTargetAchievement,
+                "eliminationProductSales": eliminationProductSales,
+                "eliminationProductSalesRatio": eliminationProductSalesRatio,
+                "eliminationProductTargetAchievement": eliminationProductTargetAchievement,
+                "inactiveProductSales": inactiveProductSales,
+                "inactiveProductSalesRatio": inactiveProductSalesRatio,
+                "inactiveProductTargetAchievement": inactiveProductTargetAchievement,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 324 - 0
health-admin/src/main/resources/templates/xsgl/SXsglMdlsrbbYgSalesperformanceinfoEdit.html

@@ -0,0 +1,324 @@
+<!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-SXsglMdlsrbbYgSalesperformanceinfo-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="name" placeholder="姓名" th:value="${name}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesAmount" placeholder="销售额" th:value="${salesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesRatio" placeholder="销售额占比" th:value="${salesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售额任务达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesTargetAchievement" placeholder="销售额任务达成" th:value="${salesTargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitAmount" placeholder="毛利额" th:value="${grossProfitAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitRatio" placeholder="毛利额占比" th:value="${grossProfitRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利额任务达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitTargetAchievement" placeholder="毛利额任务达成" th:value="${grossProfitTargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利率:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitMargin" placeholder="毛利率" th:value="${grossProfitMargin}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">来客数:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="customerVisits" placeholder="来客数" th:value="${customerVisits}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">来客数占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="customerVisitsRatio" placeholder="来客数占比" th:value="${customerVisitsRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">客单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="averageTransactionValue" placeholder="客单价" th:value="${averageTransactionValue}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">AA销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="aaSalesAmount" placeholder="AA销售额" th:value="${aaSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">AA销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="aaSalesRatio" placeholder="AA销售额占比" th:value="${aaSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">AA达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="aaTargetAchievement" placeholder="AA达成" th:value="${aaTargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A1销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a1SalesAmount" placeholder="A1销售额" th:value="${a1SalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A1销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a1SalesRatio" placeholder="A1销售额占比" th:value="${a1SalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A1达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a1TargetAchievement" placeholder="A1达成" th:value="${a1TargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A2销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a2SalesAmount" placeholder="A2销售额" th:value="${a2SalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">低毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lowProfitSalesAmount" placeholder="低毛利" th:value="${lowProfitSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">微毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="marginalProfitSalesAmount" placeholder="微毛利" th:value="${marginalProfitSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">负毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="negativeProfitSalesAmount" placeholder="负毛利" th:value="${negativeProfitSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">淘汰:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="eliminationSalesAmount" placeholder="淘汰" th:value="${eliminationSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A2销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a2SalesRatio" placeholder="A2销售额占比" th:value="${a2SalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A3销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a3SalesAmount" placeholder="A3销售额" th:value="${a3SalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A3销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a3SalesRatio" placeholder="A3销售额占比" th:value="${a3SalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A4销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a4SalesAmount" placeholder="A4销售额" th:value="${a4SalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A4销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a4SalesRatio" placeholder="A4销售额占比" th:value="${a4SalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">低毛销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lowProfitSales" placeholder="低毛销售额" th:value="${lowProfitSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">低毛销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lowProfitSalesRatio" placeholder="低毛销售额占比" th:value="${lowProfitSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">微毛销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="marginalProfitSales" placeholder="微毛销售额" th:value="${marginalProfitSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">微毛销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="marginalProfitSalesRatio" placeholder="微毛销售额占比" th:value="${marginalProfitSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">负毛销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="negativeProfitSales" placeholder="负毛销售额" th:value="${negativeProfitSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">负毛销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="negativeProfitSalesRatio" placeholder="负毛销售额占比" th:value="${negativeProfitSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">其它销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="otherSalesAmount" placeholder="其它销售额" th:value="${otherSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">其它销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="otherSalesRatio" placeholder="其它销售额占比" th:value="${otherSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">效期商品销量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expiryProductSales" placeholder="效期商品销量" th:value="${expiryProductSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">效期商品销量占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expiryProductSalesRatio" placeholder="效期商品销量占比" th:value="${expiryProductSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">效期商品任务达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expiryProductTargetAchievement" placeholder="效期商品任务达成" th:value="${expiryProductTargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">淘汰商品销量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="eliminationProductSales" placeholder="淘汰商品销量" th:value="${eliminationProductSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">淘汰商品销量占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="eliminationProductSalesRatio" placeholder="淘汰商品销量占比" th:value="${eliminationProductSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">淘汰商品达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="eliminationProductTargetAchievement" placeholder="淘汰商品达成" th:value="${eliminationProductTargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">不动销销量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inactiveProductSales" placeholder="不动销销量" th:value="${inactiveProductSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">不动销销量占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inactiveProductSalesRatio" placeholder="不动销销量占比" th:value="${inactiveProductSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">不动销任务达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inactiveProductTargetAchievement" placeholder="不动销任务达成" th:value="${inactiveProductTargetAchievement}" 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-SXsglMdlsrbbYgSalesperformanceinfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglmdlsrbbygsalesperformanceinfo/sXsglMdlsrbbYgSalesperformanceinfoEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 369 - 0
health-admin/src/main/resources/templates/xsgl/SXsglMdlsrbbYgSalesperformanceinfoList.html

@@ -0,0 +1,369 @@
+<!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="SXsglMdlsrbbYgSalesperformanceinfo-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="name" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售额:<input type="text" class="styled-input" name="salesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售额占比:<input type="text" class="styled-input" name="salesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售额任务达成:<input type="text" class="styled-input" name="salesTargetAchievement" autocomplete="off"/>
+                            </li>
+                            <li>
+                                毛利额:<input type="text" class="styled-input" name="grossProfitAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                毛利额占比:<input type="text" class="styled-input" name="grossProfitRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                毛利额任务达成:<input type="text" class="styled-input" name="grossProfitTargetAchievement" autocomplete="off"/>
+                            </li>
+                            <li>
+                                毛利率:<input type="text" class="styled-input" name="grossProfitMargin" autocomplete="off"/>
+                            </li>
+                            <li>
+                                来客数:<input type="text" class="styled-input" name="customerVisits" autocomplete="off"/>
+                            </li>
+                            <li>
+                                来客数占比:<input type="text" class="styled-input" name="customerVisitsRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                客单价:<input type="text" class="styled-input" name="averageTransactionValue" autocomplete="off"/>
+                            </li>
+                            <li>
+                                AA销售额:<input type="text" class="styled-input" name="aaSalesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                AA销售额占比:<input type="text" class="styled-input" name="aaSalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                AA达成:<input type="text" class="styled-input" name="aaTargetAchievement" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A1销售额:<input type="text" class="styled-input" name="a1SalesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A1销售额占比:<input type="text" class="styled-input" name="a1SalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A1达成:<input type="text" class="styled-input" name="a1TargetAchievement" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A2销售额:<input type="text" class="styled-input" name="a2SalesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                低毛利:<input type="text" class="styled-input" name="lowProfitSalesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                微毛利:<input type="text" class="styled-input" name="marginalProfitSalesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                负毛利:<input type="text" class="styled-input" name="negativeProfitSalesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                淘汰:<input type="text" class="styled-input" name="eliminationSalesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A2销售额占比:<input type="text" class="styled-input" name="a2SalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A3销售额:<input type="text" class="styled-input" name="a3SalesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A3销售额占比:<input type="text" class="styled-input" name="a3SalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A4销售额:<input type="text" class="styled-input" name="a4SalesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                A4销售额占比:<input type="text" class="styled-input" name="a4SalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                低毛销售额:<input type="text" class="styled-input" name="lowProfitSales" autocomplete="off"/>
+                            </li>
+                            <li>
+                                低毛销售额占比:<input type="text" class="styled-input" name="lowProfitSalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                微毛销售额:<input type="text" class="styled-input" name="marginalProfitSales" autocomplete="off"/>
+                            </li>
+                            <li>
+                                微毛销售额占比:<input type="text" class="styled-input" name="marginalProfitSalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                负毛销售额:<input type="text" class="styled-input" name="negativeProfitSales" autocomplete="off"/>
+                            </li>
+                            <li>
+                                负毛销售额占比:<input type="text" class="styled-input" name="negativeProfitSalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                其它销售额:<input type="text" class="styled-input" name="otherSalesAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                其它销售额占比:<input type="text" class="styled-input" name="otherSalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                效期商品销量:<input type="text" class="styled-input" name="expiryProductSales" autocomplete="off"/>
+                            </li>
+                            <li>
+                                效期商品销量占比:<input type="text" class="styled-input" name="expiryProductSalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                效期商品任务达成:<input type="text" class="styled-input" name="expiryProductTargetAchievement" autocomplete="off"/>
+                            </li>
+                            <li>
+                                淘汰商品销量:<input type="text" class="styled-input" name="eliminationProductSales" autocomplete="off"/>
+                            </li>
+                            <li>
+                                淘汰商品销量占比:<input type="text" class="styled-input" name="eliminationProductSalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                淘汰商品达成:<input type="text" class="styled-input" name="eliminationProductTargetAchievement" autocomplete="off"/>
+                            </li>
+                            <li>
+                                不动销销量:<input type="text" class="styled-input" name="inactiveProductSales" autocomplete="off"/>
+                            </li>
+                            <li>
+                                不动销销量占比:<input type="text" class="styled-input" name="inactiveProductSalesRatio" autocomplete="off"/>
+                            </li>
+                            <li>
+                                不动销任务达成:<input type="text" class="styled-input" name="inactiveProductTargetAchievement" 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 + "xsgl/sxsglmdlsrbbygsalesperformanceinfo";
+    $(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 + "/sXsglMdlsrbbYgSalesperformanceinfoList",
+            viewUrl: prefix + "/sXsglMdlsrbbYgSalesperformanceinfoView/{id}",
+            createUrl: prefix + "/sXsglMdlsrbbYgSalesperformanceinfoAdd",
+            updateUrl: prefix + "/sXsglMdlsrbbYgSalesperformanceinfoEdit/{id}",
+            removeUrl: prefix + "/sXsglMdlsrbbYgSalesperformanceinfoRemove",
+            /*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: 'name', title: '姓名', align: 'center' },
+                    { field: 'salesAmount', title: '销售额', align: 'center' },
+                    { field: 'salesRatio', title: '销售额占比', align: 'center' },
+                    { field: 'salesTargetAchievement', title: '销售额任务达成', align: 'center' },
+                    { field: 'grossProfitAmount', title: '毛利额', align: 'center' },
+                    { field: 'grossProfitRatio', title: '毛利额占比', align: 'center' },
+                    { field: 'grossProfitTargetAchievement', title: '毛利额任务达成', align: 'center' },
+                    { field: 'grossProfitMargin', title: '毛利率', align: 'center' },
+                    { field: 'customerVisits', title: '来客数', align: 'center' },
+                    { field: 'customerVisitsRatio', title: '来客数占比', align: 'center' },
+                    { field: 'averageTransactionValue', title: '客单价', align: 'center' },
+                    { field: 'aaSalesAmount', title: 'AA销售额', align: 'center' },
+                    { field: 'aaSalesRatio', title: 'AA销售额占比', align: 'center' },
+                    { field: 'aaTargetAchievement', title: 'AA达成', align: 'center' },
+                    { field: 'a1SalesAmount', title: 'A1销售额', align: 'center' },
+                    { field: 'a1SalesRatio', title: 'A1销售额占比', align: 'center' },
+                    { field: 'a1TargetAchievement', title: 'A1达成', align: 'center' },
+                    { field: 'a2SalesAmount', title: 'A2销售额', align: 'center' },
+                    { field: 'lowProfitSalesAmount', title: '低毛利', align: 'center' },
+                    { field: 'marginalProfitSalesAmount', title: '微毛利', align: 'center' },
+                    { field: 'negativeProfitSalesAmount', title: '负毛利', align: 'center' },
+                    { field: 'eliminationSalesAmount', title: '淘汰', align: 'center' },
+                    { field: 'a2SalesRatio', title: 'A2销售额占比', align: 'center' },
+                    { field: 'a3SalesAmount', title: 'A3销售额', align: 'center' },
+                    { field: 'a3SalesRatio', title: 'A3销售额占比', align: 'center' },
+                    { field: 'a4SalesAmount', title: 'A4销售额', align: 'center' },
+                    { field: 'a4SalesRatio', title: 'A4销售额占比', align: 'center' },
+                    { field: 'lowProfitSales', title: '低毛销售额', align: 'center' },
+                    { field: 'lowProfitSalesRatio', title: '低毛销售额占比', align: 'center' },
+                    { field: 'marginalProfitSales', title: '微毛销售额', align: 'center' },
+                    { field: 'marginalProfitSalesRatio', title: '微毛销售额占比', align: 'center' },
+                    { field: 'negativeProfitSales', title: '负毛销售额', align: 'center' },
+                    { field: 'negativeProfitSalesRatio', title: '负毛销售额占比', align: 'center' },
+                    { field: 'otherSalesAmount', title: '其它销售额', align: 'center' },
+                    { field: 'otherSalesRatio', title: '其它销售额占比', align: 'center' },
+                    { field: 'expiryProductSales', title: '效期商品销量', align: 'center' },
+                    { field: 'expiryProductSalesRatio', title: '效期商品销量占比', align: 'center' },
+                    { field: 'expiryProductTargetAchievement', title: '效期商品任务达成', align: 'center' },
+                    { field: 'eliminationProductSales', title: '淘汰商品销量', align: 'center' },
+                    { field: 'eliminationProductSalesRatio', title: '淘汰商品销量占比', align: 'center' },
+                    { field: 'eliminationProductTargetAchievement', title: '淘汰商品达成', align: 'center' },
+                    { field: 'inactiveProductSales', title: '不动销销量', align: 'center' },
+                    { field: 'inactiveProductSalesRatio', title: '不动销销量占比', align: 'center' },
+                    { field: 'inactiveProductTargetAchievement', 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();
+        $("#SXsglMdlsrbbYgSalesperformanceinfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SXsglMdlsrbbYgSalesperformanceinfo-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>

+ 315 - 0
health-admin/src/main/resources/templates/xsgl/SXsglMdlsrbbYgSalesperformanceinfoPageEdit.html

@@ -0,0 +1,315 @@
+<!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-SXsglMdlsrbbYgSalesperformanceinfo-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="name" placeholder="姓名" th:value="${name}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesAmount" placeholder="销售额" th:value="${salesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesRatio" placeholder="销售额占比" th:value="${salesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售额任务达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesTargetAchievement" placeholder="销售额任务达成" th:value="${salesTargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitAmount" placeholder="毛利额" th:value="${grossProfitAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitRatio" placeholder="毛利额占比" th:value="${grossProfitRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利额任务达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitTargetAchievement" placeholder="毛利额任务达成" th:value="${grossProfitTargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利率:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitMargin" placeholder="毛利率" th:value="${grossProfitMargin}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">来客数:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="customerVisits" placeholder="来客数" th:value="${customerVisits}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">来客数占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="customerVisitsRatio" placeholder="来客数占比" th:value="${customerVisitsRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">客单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="averageTransactionValue" placeholder="客单价" th:value="${averageTransactionValue}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">AA销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="aaSalesAmount" placeholder="AA销售额" th:value="${aaSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">AA销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="aaSalesRatio" placeholder="AA销售额占比" th:value="${aaSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">AA达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="aaTargetAchievement" placeholder="AA达成" th:value="${aaTargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A1销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a1SalesAmount" placeholder="A1销售额" th:value="${a1SalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A1销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a1SalesRatio" placeholder="A1销售额占比" th:value="${a1SalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A1达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a1TargetAchievement" placeholder="A1达成" th:value="${a1TargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A2销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a2SalesAmount" placeholder="A2销售额" th:value="${a2SalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">低毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lowProfitSalesAmount" placeholder="低毛利" th:value="${lowProfitSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">微毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="marginalProfitSalesAmount" placeholder="微毛利" th:value="${marginalProfitSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">负毛利:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="negativeProfitSalesAmount" placeholder="负毛利" th:value="${negativeProfitSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">淘汰:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="eliminationSalesAmount" placeholder="淘汰" th:value="${eliminationSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A2销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a2SalesRatio" placeholder="A2销售额占比" th:value="${a2SalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A3销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a3SalesAmount" placeholder="A3销售额" th:value="${a3SalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A3销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a3SalesRatio" placeholder="A3销售额占比" th:value="${a3SalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A4销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a4SalesAmount" placeholder="A4销售额" th:value="${a4SalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">A4销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="a4SalesRatio" placeholder="A4销售额占比" th:value="${a4SalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">低毛销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lowProfitSales" placeholder="低毛销售额" th:value="${lowProfitSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">低毛销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lowProfitSalesRatio" placeholder="低毛销售额占比" th:value="${lowProfitSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">微毛销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="marginalProfitSales" placeholder="微毛销售额" th:value="${marginalProfitSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">微毛销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="marginalProfitSalesRatio" placeholder="微毛销售额占比" th:value="${marginalProfitSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">负毛销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="negativeProfitSales" placeholder="负毛销售额" th:value="${negativeProfitSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">负毛销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="negativeProfitSalesRatio" placeholder="负毛销售额占比" th:value="${negativeProfitSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">其它销售额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="otherSalesAmount" placeholder="其它销售额" th:value="${otherSalesAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">其它销售额占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="otherSalesRatio" placeholder="其它销售额占比" th:value="${otherSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">效期商品销量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expiryProductSales" placeholder="效期商品销量" th:value="${expiryProductSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">效期商品销量占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expiryProductSalesRatio" placeholder="效期商品销量占比" th:value="${expiryProductSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">效期商品任务达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="expiryProductTargetAchievement" placeholder="效期商品任务达成" th:value="${expiryProductTargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">淘汰商品销量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="eliminationProductSales" placeholder="淘汰商品销量" th:value="${eliminationProductSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">淘汰商品销量占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="eliminationProductSalesRatio" placeholder="淘汰商品销量占比" th:value="${eliminationProductSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">淘汰商品达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="eliminationProductTargetAchievement" placeholder="淘汰商品达成" th:value="${eliminationProductTargetAchievement}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">不动销销量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inactiveProductSales" placeholder="不动销销量" th:value="${inactiveProductSales}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">不动销销量占比:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inactiveProductSalesRatio" placeholder="不动销销量占比" th:value="${inactiveProductSalesRatio}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">不动销任务达成:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="inactiveProductTargetAchievement" placeholder="不动销任务达成" th:value="${inactiveProductTargetAchievement}" 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 + "xsgl/sxsglmdlsrbbygsalesperformanceinfo";
+        if ($.validate.form()) {
+            var data = $("#form-SXsglMdlsrbbYgSalesperformanceinfo-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 + "/sXsglMdlsrbbYgSalesperformanceinfoEdit", data);
+        }
+    }
+</script>

+ 145 - 0
health-admin/src/main/resources/templates/xsgl/SXsglReturninfoAdd.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="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="returnDocumentNumber" id="returnDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">订单来源:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderSource" id="orderSource" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">原单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="originalDocumentNumber" id="originalDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">退货订单类型:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="returnType" id="returnType" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">退货原因:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="returnReason" id="returnReason" class="styled-input" type="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="actualRefundAmount" id="actualRefundAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">会员名:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="memberName" id="memberName" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">退款员:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="refundAgent" id="refundAgent" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">审核人:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="reviewer" id="reviewer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">备注:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="remarks" id="remarks" 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 returnDate = $("input[name='returnDate']").val();
+           var returnDocumentNumber = $("input[name='returnDocumentNumber']").val();
+           var orderSource = $("input[name='orderSource']").val();
+           var originalDocumentNumber = $("input[name='originalDocumentNumber']").val();
+           var returnType = $("input[name='returnType']").val();
+           var returnReason = $("input[name='returnReason']").val();
+           var returnQuantity = $("input[name='returnQuantity']").val();
+           var actualRefundAmount = $("input[name='actualRefundAmount']").val();
+           var memberName = $("input[name='memberName']").val();
+           var refundAgent = $("input[name='refundAgent']").val();
+           var reviewer = $("input[name='reviewer']").val();
+           var remarks = $("input[name='remarks']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglreturninfo/sXsglReturninfoAdd",
+            data : {
+                "returnDate": returnDate,
+                "returnDocumentNumber": returnDocumentNumber,
+                "orderSource": orderSource,
+                "originalDocumentNumber": originalDocumentNumber,
+                "returnType": returnType,
+                "returnReason": returnReason,
+                "returnQuantity": returnQuantity,
+                "actualRefundAmount": actualRefundAmount,
+                "memberName": memberName,
+                "refundAgent": refundAgent,
+                "reviewer": reviewer,
+                "remarks": remarks,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 132 - 0
health-admin/src/main/resources/templates/xsgl/SXsglReturninfoEdit.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-SXsglReturninfo-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="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="returnDocumentNumber" placeholder="退货单号" th:value="${returnDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单来源:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderSource" placeholder="订单来源" th:value="${orderSource}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">原单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="originalDocumentNumber" placeholder="原单号" th:value="${originalDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退货订单类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="returnType" placeholder="退货订单类型" th:value="${returnType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退货原因:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="returnReason" placeholder="退货原因" th:value="${returnReason}" class="styled-input" type="text" 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="actualRefundAmount" placeholder="实退金额" th:value="${actualRefundAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">会员名:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="memberName" placeholder="会员名" th:value="${memberName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退款员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="refundAgent" placeholder="退款员" th:value="${refundAgent}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">审核人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reviewer" placeholder="审核人" th:value="${reviewer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">备注:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="remarks" placeholder="备注" th:value="${remarks}" 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-SXsglReturninfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglreturninfo/sXsglReturninfoEdit",
+            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/xsgl/SXsglReturninfoList.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="SXsglReturninfo-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="returnDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退货单号:<input type="text" class="styled-input" name="returnDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                订单来源:<input type="text" class="styled-input" name="orderSource" autocomplete="off"/>
+                            </li>
+                            <li>
+                                原单号:<input type="text" class="styled-input" name="originalDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退货订单类型:<input type="text" class="styled-input" name="returnType" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退货原因:<input type="text" class="styled-input" name="returnReason" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退货数量:<input type="text" class="styled-input" name="returnQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                实退金额:<input type="text" class="styled-input" name="actualRefundAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                会员名:<input type="text" class="styled-input" name="memberName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退款员:<input type="text" class="styled-input" name="refundAgent" autocomplete="off"/>
+                            </li>
+                            <li>
+                                审核人:<input type="text" class="styled-input" name="reviewer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                备注:<input type="text" class="styled-input" name="remarks" 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 + "xsgl/sxsglreturninfo";
+    $(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 + "/sXsglReturninfoList",
+            viewUrl: prefix + "/sXsglReturninfoView/{id}",
+            createUrl: prefix + "/sXsglReturninfoAdd",
+            updateUrl: prefix + "/sXsglReturninfoEdit/{id}",
+            removeUrl: prefix + "/sXsglReturninfoRemove",
+            /*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: 'returnDate', title: '退货日期', align: 'center' },
+                    { field: 'returnDocumentNumber', title: '退货单号', align: 'center' },
+                    { field: 'orderSource', title: '订单来源', align: 'center' },
+                    { field: 'originalDocumentNumber', title: '原单号', align: 'center' },
+                    { field: 'returnType', title: '退货订单类型', align: 'center' },
+                    { field: 'returnReason', title: '退货原因', align: 'center' },
+                    { field: 'returnQuantity', title: '退货数量', align: 'center' },
+                    { field: 'actualRefundAmount', title: '实退金额', align: 'center' },
+                    { field: 'memberName', title: '会员名', align: 'center' },
+                    { field: 'refundAgent', title: '退款员', align: 'center' },
+                    { field: 'reviewer', title: '审核人', align: 'center' },
+                    { field: 'remarks', 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();
+        $("#SXsglReturninfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SXsglReturninfo-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/xsgl/SXsglReturninfoPageEdit.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-SXsglReturninfo-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="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="returnDocumentNumber" placeholder="退货单号" th:value="${returnDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单来源:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderSource" placeholder="订单来源" th:value="${orderSource}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">原单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="originalDocumentNumber" placeholder="原单号" th:value="${originalDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退货订单类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="returnType" placeholder="退货订单类型" th:value="${returnType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退货原因:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="returnReason" placeholder="退货原因" th:value="${returnReason}" class="styled-input" type="text" 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="actualRefundAmount" placeholder="实退金额" th:value="${actualRefundAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">会员名:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="memberName" placeholder="会员名" th:value="${memberName}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">退款员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="refundAgent" placeholder="退款员" th:value="${refundAgent}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">审核人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="reviewer" placeholder="审核人" th:value="${reviewer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">备注:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="remarks" placeholder="备注" th:value="${remarks}" 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 + "xsgl/sxsglreturninfo";
+        if ($.validate.form()) {
+            var data = $("#form-SXsglReturninfo-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 + "/sXsglReturninfoEdit", data);
+        }
+    }
+</script>

+ 129 - 0
health-admin/src/main/resources/templates/xsgl/SXsglReturnproductinfoAdd.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="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="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="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="salesperson" id="salesperson" class="styled-input" type="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="refundAmount" id="refundAmount" class="styled-input" type="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="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>
+                </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 genericName = $("input[name='genericName']").val();
+           var specification = $("input[name='specification']").val();
+           var unit = $("input[name='unit']").val();
+           var salesperson = $("input[name='salesperson']").val();
+           var returnQuantity = $("input[name='returnQuantity']").val();
+           var refundAmount = $("input[name='refundAmount']").val();
+           var productionBatchNumber = $("input[name='productionBatchNumber']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var origin = $("input[name='origin']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglreturnproductinfo/sXsglReturnproductinfoAdd",
+            data : {
+                "productCode": productCode,
+                "genericName": genericName,
+                "specification": specification,
+                "unit": unit,
+                "salesperson": salesperson,
+                "returnQuantity": returnQuantity,
+                "refundAmount": refundAmount,
+                "productionBatchNumber": productionBatchNumber,
+                "manufacturer": manufacturer,
+                "origin": origin,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 120 - 0
health-admin/src/main/resources/templates/xsgl/SXsglReturnproductinfoEdit.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-SXsglReturnproductinfo-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="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="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="salesperson" placeholder="销售员" th:value="${salesperson}" class="styled-input" type="text" 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="refundAmount" placeholder="应退金额/元" th:value="${refundAmount}" class="styled-input" type="text" 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="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>
+                </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-SXsglReturnproductinfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglreturnproductinfo/sXsglReturnproductinfoEdit",
+            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/xsgl/SXsglReturnproductinfoList.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="SXsglReturnproductinfo-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="genericName" 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="salesperson" autocomplete="off"/>
+                            </li>
+                            <li>
+                                退货数量:<input type="text" class="styled-input" name="returnQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                应退金额/元:<input type="text" class="styled-input" name="refundAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产批号/批次号:<input type="text" class="styled-input" name="productionBatchNumber" 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 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 + "xsgl/sxsglreturnproductinfo";
+    $(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 + "/sXsglReturnproductinfoList",
+            viewUrl: prefix + "/sXsglReturnproductinfoView/{id}",
+            createUrl: prefix + "/sXsglReturnproductinfoAdd",
+            updateUrl: prefix + "/sXsglReturnproductinfoEdit/{id}",
+            removeUrl: prefix + "/sXsglReturnproductinfoRemove",
+            /*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: 'genericName', title: '通用名', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'unit', title: '单位', align: 'center' },
+                    { field: 'salesperson', title: '销售员', align: 'center' },
+                    { field: 'returnQuantity', title: '退货数量', align: 'center' },
+                    { field: 'refundAmount', title: '应退金额/元', align: 'center' },
+                    { field: 'productionBatchNumber', title: '生产批号/批次号', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂家', align: 'center' },
+                    { field: 'origin', 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();
+        $("#SXsglReturnproductinfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SXsglReturnproductinfo-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/xsgl/SXsglReturnproductinfoPageEdit.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-SXsglReturnproductinfo-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="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="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="salesperson" placeholder="销售员" th:value="${salesperson}" class="styled-input" type="text" 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="refundAmount" placeholder="应退金额/元" th:value="${refundAmount}" class="styled-input" type="text" 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="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>
+                </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 + "xsgl/sxsglreturnproductinfo";
+        if ($.validate.form()) {
+            var data = $("#form-SXsglReturnproductinfo-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 + "/sXsglReturnproductinfoEdit", data);
+        }
+    }
+</script>

+ 145 - 0
health-admin/src/main/resources/templates/xsgl/SXsglXsmxDdmxSalesorderinfoAdd.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="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="orderStatus" id="orderStatus" class="styled-input" type="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="transferStatus" id="transferStatus" class="styled-input" type="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="member" id="member" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">收银员:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="cashier" id="cashier" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">拣货员:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="picker" id="picker" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">拣货员编码:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="pickerCode" id="pickerCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">订单来源:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderSource" id="orderSource" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">渠道单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="channelDocumentNumber" id="channelDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">备注或附加信息:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="om" id="om" 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 saleDocumentNumber = $("input[name='saleDocumentNumber']").val();
+           var orderStatus = $("input[name='orderStatus']").val();
+           var storeName = $("input[name='storeName']").val();
+           var transferStatus = $("input[name='transferStatus']").val();
+           var saleDate = $("input[name='saleDate']").val();
+           var member = $("input[name='member']").val();
+           var cashier = $("input[name='cashier']").val();
+           var picker = $("input[name='picker']").val();
+           var pickerCode = $("input[name='pickerCode']").val();
+           var orderSource = $("input[name='orderSource']").val();
+           var channelDocumentNumber = $("input[name='channelDocumentNumber']").val();
+           var om = $("input[name='om']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglxsmxddmxsalesorderinfo/sXsglXsmxDdmxSalesorderinfoAdd",
+            data : {
+                "saleDocumentNumber": saleDocumentNumber,
+                "orderStatus": orderStatus,
+                "storeName": storeName,
+                "transferStatus": transferStatus,
+                "saleDate": saleDate,
+                "member": member,
+                "cashier": cashier,
+                "picker": picker,
+                "pickerCode": pickerCode,
+                "orderSource": orderSource,
+                "channelDocumentNumber": channelDocumentNumber,
+                "om": om,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 132 - 0
health-admin/src/main/resources/templates/xsgl/SXsglXsmxDdmxSalesorderinfoEdit.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-SXsglXsmxDdmxSalesorderinfo-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="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="orderStatus" placeholder="订单状态" th:value="${orderStatus}" class="styled-input" type="text" 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="transferStatus" placeholder="转单状态" th:value="${transferStatus}" class="styled-input" type="text" 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="member" placeholder="会员" th:value="${member}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收银员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cashier" placeholder="收银员" th:value="${cashier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">拣货员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="picker" placeholder="拣货员" th:value="${picker}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">拣货员编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="pickerCode" placeholder="拣货员编码" th:value="${pickerCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单来源:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderSource" placeholder="订单来源" th:value="${orderSource}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">渠道单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="channelDocumentNumber" placeholder="渠道单号" th:value="${channelDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">备注或附加信息:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="om" placeholder="备注或附加信息" th:value="${om}" 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-SXsglXsmxDdmxSalesorderinfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglxsmxddmxsalesorderinfo/sXsglXsmxDdmxSalesorderinfoEdit",
+            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/xsgl/SXsglXsmxDdmxSalesorderinfoList.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="SXsglXsmxDdmxSalesorderinfo-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="saleDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                订单状态:<input type="text" class="styled-input" name="orderStatus" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店名称:<input type="text" class="styled-input" name="storeName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                转单状态:<input type="text" class="styled-input" name="transferStatus" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售日期:<input type="text" class="styled-input" name="saleDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                会员:<input type="text" class="styled-input" name="member" autocomplete="off"/>
+                            </li>
+                            <li>
+                                收银员:<input type="text" class="styled-input" name="cashier" autocomplete="off"/>
+                            </li>
+                            <li>
+                                拣货员:<input type="text" class="styled-input" name="picker" autocomplete="off"/>
+                            </li>
+                            <li>
+                                拣货员编码:<input type="text" class="styled-input" name="pickerCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                订单来源:<input type="text" class="styled-input" name="orderSource" autocomplete="off"/>
+                            </li>
+                            <li>
+                                渠道单号:<input type="text" class="styled-input" name="channelDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                备注或附加信息:<input type="text" class="styled-input" name="om" 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 + "xsgl/sxsglxsmxddmxsalesorderinfo";
+    $(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 + "/sXsglXsmxDdmxSalesorderinfoList",
+            viewUrl: prefix + "/sXsglXsmxDdmxSalesorderinfoView/{id}",
+            createUrl: prefix + "/sXsglXsmxDdmxSalesorderinfoAdd",
+            updateUrl: prefix + "/sXsglXsmxDdmxSalesorderinfoEdit/{id}",
+            removeUrl: prefix + "/sXsglXsmxDdmxSalesorderinfoRemove",
+            /*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: 'saleDocumentNumber', title: '销售单号', align: 'center' },
+                    { field: 'orderStatus', title: '订单状态', align: 'center' },
+                    { field: 'storeName', title: '门店名称', align: 'center' },
+                    { field: 'transferStatus', title: '转单状态', align: 'center' },
+                    { field: 'saleDate', title: '销售日期', align: 'center' },
+                    { field: 'member', title: '会员', align: 'center' },
+                    { field: 'cashier', title: '收银员', align: 'center' },
+                    { field: 'picker', title: '拣货员', align: 'center' },
+                    { field: 'pickerCode', title: '拣货员编码', align: 'center' },
+                    { field: 'orderSource', title: '订单来源', align: 'center' },
+                    { field: 'channelDocumentNumber', title: '渠道单号', align: 'center' },
+                    { field: 'om', 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();
+        $("#SXsglXsmxDdmxSalesorderinfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SXsglXsmxDdmxSalesorderinfo-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/xsgl/SXsglXsmxDdmxSalesorderinfoPageEdit.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-SXsglXsmxDdmxSalesorderinfo-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="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="orderStatus" placeholder="订单状态" th:value="${orderStatus}" class="styled-input" type="text" 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="transferStatus" placeholder="转单状态" th:value="${transferStatus}" class="styled-input" type="text" 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="member" placeholder="会员" th:value="${member}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收银员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cashier" placeholder="收银员" th:value="${cashier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">拣货员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="picker" placeholder="拣货员" th:value="${picker}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">拣货员编码:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="pickerCode" placeholder="拣货员编码" th:value="${pickerCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单来源:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderSource" placeholder="订单来源" th:value="${orderSource}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">渠道单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="channelDocumentNumber" placeholder="渠道单号" th:value="${channelDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">备注或附加信息:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="om" placeholder="备注或附加信息" th:value="${om}" 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 + "xsgl/sxsglxsmxddmxsalesorderinfo";
+        if ($.validate.form()) {
+            var data = $("#form-SXsglXsmxDdmxSalesorderinfo-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 + "/sXsglXsmxDdmxSalesorderinfoEdit", data);
+        }
+    }
+</script>

+ 385 - 0
health-admin/src/main/resources/templates/xsgl/SXsglXsmxSpmxSalesdetailinfoAdd.html

@@ -0,0 +1,385 @@
+<!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="productId" id="productId" class="styled-input" type="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="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="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="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="member" id="member" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">订单状态:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderStatus" id="orderStatus" class="styled-input" type="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="marketingCategory" id="marketingCategory" class="styled-input" type="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="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="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="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="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="retailPrice" id="retailPrice" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">实际售价/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="actualSalePrice" id="actualSalePrice" class="styled-input" type="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="discountRate" id="discountRate" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">应收金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="receivableAmount" id="receivableAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">营业员:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="salesperson" id="salesperson" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">收银员:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="cashier" id="cashier" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">授权人:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="authorizer" id="authorizer" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">销售属性:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="saleAttribute" id="saleAttribute" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">是否赠品:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="isGift" id="isGift" class="styled-input" type="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="promotionDocumentNumber" id="promotionDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">优惠券码-满额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="couponCode" id="couponCode" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">优惠券分摊金额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="couponAllocationAmount" id="couponAllocationAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">成本还原类型:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="costRecoveryType" id="costRecoveryType" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">返利单价:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="rebateUnitPrice" id="rebateUnitPrice" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">返利协议号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="rebateAgreementNumber" id="rebateAgreementNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">返利供应商:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="rebateSupplier" id="rebateSupplier" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">预估成本单价:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="estimatedCostUnitPrice" id="estimatedCostUnitPrice" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">毛利单价:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="grossProfitUnitPrice" id="grossProfitUnitPrice" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">折扣金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="discountAmount" id="discountAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">实收金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="actualReceiptAmount" id="actualReceiptAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">预估成本金额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="estimatedCostAmount" id="estimatedCostAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">毛利金额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="grossProfitAmount" id="grossProfitAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">单品折扣备注:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="singleProductDiscountRemark" id="singleProductDiscountRemark" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">实价备注:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="actualPriceRemark" id="actualPriceRemark" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">整单折扣备注:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="entireOrderDiscountRemark" id="entireOrderDiscountRemark" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">订单备注:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="orderRemark" id="orderRemark" 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 productId = $("input[name='productId']").val();
+           var productName = $("input[name='productName']").val();
+           var storeName = $("input[name='storeName']").val();
+           var saleDate = $("input[name='saleDate']").val();
+           var saleDocumentNumber = $("input[name='saleDocumentNumber']").val();
+           var member = $("input[name='member']").val();
+           var orderStatus = $("input[name='orderStatus']").val();
+           var specification = $("input[name='specification']").val();
+           var marketingCategory = $("input[name='marketingCategory']").val();
+           var manufacturer = $("input[name='manufacturer']").val();
+           var unit = $("input[name='unit']").val();
+           var dosageForm = $("input[name='dosageForm']").val();
+           var productionBatchNumber = $("input[name='productionBatchNumber']").val();
+           var batchNumber = $("input[name='batchNumber']").val();
+           var retailPrice = $("input[name='retailPrice']").val();
+           var actualSalePrice = $("input[name='actualSalePrice']").val();
+           var quantity = $("input[name='quantity']").val();
+           var discountRate = $("input[name='discountRate']").val();
+           var receivableAmount = $("input[name='receivableAmount']").val();
+           var salesperson = $("input[name='salesperson']").val();
+           var cashier = $("input[name='cashier']").val();
+           var authorizer = $("input[name='authorizer']").val();
+           var saleAttribute = $("input[name='saleAttribute']").val();
+           var isGift = $("input[name='isGift']").val();
+           var isDispensed = $("input[name='isDispensed']").val();
+           var promotionDocumentNumber = $("input[name='promotionDocumentNumber']").val();
+           var couponCode = $("input[name='couponCode']").val();
+           var couponAllocationAmount = $("input[name='couponAllocationAmount']").val();
+           var costRecoveryType = $("input[name='costRecoveryType']").val();
+           var rebateUnitPrice = $("input[name='rebateUnitPrice']").val();
+           var rebateAgreementNumber = $("input[name='rebateAgreementNumber']").val();
+           var rebateSupplier = $("input[name='rebateSupplier']").val();
+           var estimatedCostUnitPrice = $("input[name='estimatedCostUnitPrice']").val();
+           var grossProfitUnitPrice = $("input[name='grossProfitUnitPrice']").val();
+           var discountAmount = $("input[name='discountAmount']").val();
+           var actualReceiptAmount = $("input[name='actualReceiptAmount']").val();
+           var estimatedCostAmount = $("input[name='estimatedCostAmount']").val();
+           var grossProfitAmount = $("input[name='grossProfitAmount']").val();
+           var singleProductDiscountRemark = $("input[name='singleProductDiscountRemark']").val();
+           var actualPriceRemark = $("input[name='actualPriceRemark']").val();
+           var entireOrderDiscountRemark = $("input[name='entireOrderDiscountRemark']").val();
+           var orderRemark = $("input[name='orderRemark']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglxsmxspmxsalesdetailinfo/sXsglXsmxSpmxSalesdetailinfoAdd",
+            data : {
+                "productId": productId,
+                "productName": productName,
+                "storeName": storeName,
+                "saleDate": saleDate,
+                "saleDocumentNumber": saleDocumentNumber,
+                "member": member,
+                "orderStatus": orderStatus,
+                "specification": specification,
+                "marketingCategory": marketingCategory,
+                "manufacturer": manufacturer,
+                "unit": unit,
+                "dosageForm": dosageForm,
+                "productionBatchNumber": productionBatchNumber,
+                "batchNumber": batchNumber,
+                "retailPrice": retailPrice,
+                "actualSalePrice": actualSalePrice,
+                "quantity": quantity,
+                "discountRate": discountRate,
+                "receivableAmount": receivableAmount,
+                "salesperson": salesperson,
+                "cashier": cashier,
+                "authorizer": authorizer,
+                "saleAttribute": saleAttribute,
+                "isGift": isGift,
+                "isDispensed": isDispensed,
+                "promotionDocumentNumber": promotionDocumentNumber,
+                "couponCode": couponCode,
+                "couponAllocationAmount": couponAllocationAmount,
+                "costRecoveryType": costRecoveryType,
+                "rebateUnitPrice": rebateUnitPrice,
+                "rebateAgreementNumber": rebateAgreementNumber,
+                "rebateSupplier": rebateSupplier,
+                "estimatedCostUnitPrice": estimatedCostUnitPrice,
+                "grossProfitUnitPrice": grossProfitUnitPrice,
+                "discountAmount": discountAmount,
+                "actualReceiptAmount": actualReceiptAmount,
+                "estimatedCostAmount": estimatedCostAmount,
+                "grossProfitAmount": grossProfitAmount,
+                "singleProductDiscountRemark": singleProductDiscountRemark,
+                "actualPriceRemark": actualPriceRemark,
+                "entireOrderDiscountRemark": entireOrderDiscountRemark,
+                "orderRemark": orderRemark,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 312 - 0
health-admin/src/main/resources/templates/xsgl/SXsglXsmxSpmxSalesdetailinfoEdit.html

@@ -0,0 +1,312 @@
+<!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-SXsglXsmxSpmxSalesdetailinfo-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="productId" placeholder="商品编码" th:value="${productId}" class="styled-input" type="text" 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="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="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="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="member" placeholder="会员" th:value="${member}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderStatus" placeholder="订单状态" th:value="${orderStatus}" class="styled-input" type="text" 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="marketingCategory" placeholder="营销分类" th:value="${marketingCategory}" class="styled-input" type="text" 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="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="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="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="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="retailPrice" placeholder="零售价/元" th:value="${retailPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实际售价/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualSalePrice" placeholder="实际售价/元" th:value="${actualSalePrice}" class="styled-input" type="text" 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="discountRate" placeholder="折扣率%" th:value="${discountRate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">应收金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="receivableAmount" placeholder="应收金额/元" th:value="${receivableAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">营业员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesperson" placeholder="营业员" th:value="${salesperson}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收银员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cashier" placeholder="收银员" th:value="${cashier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">授权人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="authorizer" placeholder="授权人" th:value="${authorizer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售属性:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="saleAttribute" placeholder="销售属性" th:value="${saleAttribute}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">是否赠品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="isGift" placeholder="是否赠品" th:value="${isGift}" class="styled-input" type="text" 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="promotionDocumentNumber" placeholder="促销单号-档位" th:value="${promotionDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">优惠券码-满额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="couponCode" placeholder="优惠券码-满额" th:value="${couponCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">优惠券分摊金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="couponAllocationAmount" placeholder="优惠券分摊金额" th:value="${couponAllocationAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">成本还原类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="costRecoveryType" placeholder="成本还原类型" th:value="${costRecoveryType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">返利单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="rebateUnitPrice" placeholder="返利单价" th:value="${rebateUnitPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">返利协议号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="rebateAgreementNumber" placeholder="返利协议号" th:value="${rebateAgreementNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">返利供应商:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="rebateSupplier" placeholder="返利供应商" th:value="${rebateSupplier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">预估成本单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="estimatedCostUnitPrice" placeholder="预估成本单价" th:value="${estimatedCostUnitPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitUnitPrice" placeholder="毛利单价" th:value="${grossProfitUnitPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountAmount" placeholder="折扣金额/元" th:value="${discountAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实收金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualReceiptAmount" placeholder="实收金额/元" th:value="${actualReceiptAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">预估成本金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="estimatedCostAmount" placeholder="预估成本金额" th:value="${estimatedCostAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitAmount" placeholder="毛利金额" th:value="${grossProfitAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单品折扣备注:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="singleProductDiscountRemark" placeholder="单品折扣备注" th:value="${singleProductDiscountRemark}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实价备注:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualPriceRemark" placeholder="实价备注" th:value="${actualPriceRemark}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">整单折扣备注:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="entireOrderDiscountRemark" placeholder="整单折扣备注" th:value="${entireOrderDiscountRemark}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单备注:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderRemark" placeholder="订单备注" th:value="${orderRemark}" 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-SXsglXsmxSpmxSalesdetailinfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglxsmxspmxsalesdetailinfo/sXsglXsmxSpmxSalesdetailinfoEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 361 - 0
health-admin/src/main/resources/templates/xsgl/SXsglXsmxSpmxSalesdetailinfoList.html

@@ -0,0 +1,361 @@
+<!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="SXsglXsmxSpmxSalesdetailinfo-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="productId" autocomplete="off"/>
+                            </li>
+                            <li>
+                                商品名称:<input type="text" class="styled-input" name="productName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                门店名称:<input type="text" class="styled-input" name="storeName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售日期:<input type="text" class="styled-input" name="saleDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售单号:<input type="text" class="styled-input" name="saleDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                会员:<input type="text" class="styled-input" name="member" autocomplete="off"/>
+                            </li>
+                            <li>
+                                订单状态:<input type="text" class="styled-input" name="orderStatus" autocomplete="off"/>
+                            </li>
+                            <li>
+                                规格:<input type="text" class="styled-input" name="specification" autocomplete="off"/>
+                            </li>
+                            <li>
+                                营销分类:<input type="text" class="styled-input" name="marketingCategory" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产厂家:<input type="text" class="styled-input" name="manufacturer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单位:<input type="text" class="styled-input" name="unit" autocomplete="off"/>
+                            </li>
+                            <li>
+                                剂型:<input type="text" class="styled-input" name="dosageForm" autocomplete="off"/>
+                            </li>
+                            <li>
+                                生产批号:<input type="text" class="styled-input" name="productionBatchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                批次号:<input type="text" class="styled-input" name="batchNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                零售价/元:<input type="text" class="styled-input" name="retailPrice" autocomplete="off"/>
+                            </li>
+                            <li>
+                                实际售价/元:<input type="text" class="styled-input" name="actualSalePrice" autocomplete="off"/>
+                            </li>
+                            <li>
+                                数量:<input type="text" class="styled-input" name="quantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                折扣率%:<input type="text" class="styled-input" name="discountRate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                应收金额/元:<input type="text" class="styled-input" name="receivableAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                营业员:<input type="text" class="styled-input" name="salesperson" autocomplete="off"/>
+                            </li>
+                            <li>
+                                收银员:<input type="text" class="styled-input" name="cashier" autocomplete="off"/>
+                            </li>
+                            <li>
+                                授权人:<input type="text" class="styled-input" name="authorizer" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售属性:<input type="text" class="styled-input" name="saleAttribute" autocomplete="off"/>
+                            </li>
+                            <li>
+                                是否赠品:<input type="text" class="styled-input" name="isGift" autocomplete="off"/>
+                            </li>
+                            <li>
+                                是否拆零:<input type="text" class="styled-input" name="isDispensed" autocomplete="off"/>
+                            </li>
+                            <li>
+                                促销单号-档位:<input type="text" class="styled-input" name="promotionDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                优惠券码-满额:<input type="text" class="styled-input" name="couponCode" autocomplete="off"/>
+                            </li>
+                            <li>
+                                优惠券分摊金额:<input type="text" class="styled-input" name="couponAllocationAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                成本还原类型:<input type="text" class="styled-input" name="costRecoveryType" autocomplete="off"/>
+                            </li>
+                            <li>
+                                返利单价:<input type="text" class="styled-input" name="rebateUnitPrice" autocomplete="off"/>
+                            </li>
+                            <li>
+                                返利协议号:<input type="text" class="styled-input" name="rebateAgreementNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                返利供应商:<input type="text" class="styled-input" name="rebateSupplier" autocomplete="off"/>
+                            </li>
+                            <li>
+                                预估成本单价:<input type="text" class="styled-input" name="estimatedCostUnitPrice" autocomplete="off"/>
+                            </li>
+                            <li>
+                                毛利单价:<input type="text" class="styled-input" name="grossProfitUnitPrice" autocomplete="off"/>
+                            </li>
+                            <li>
+                                折扣金额/元:<input type="text" class="styled-input" name="discountAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                实收金额/元:<input type="text" class="styled-input" name="actualReceiptAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                预估成本金额:<input type="text" class="styled-input" name="estimatedCostAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                毛利金额:<input type="text" class="styled-input" name="grossProfitAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                单品折扣备注:<input type="text" class="styled-input" name="singleProductDiscountRemark" autocomplete="off"/>
+                            </li>
+                            <li>
+                                实价备注:<input type="text" class="styled-input" name="actualPriceRemark" autocomplete="off"/>
+                            </li>
+                            <li>
+                                整单折扣备注:<input type="text" class="styled-input" name="entireOrderDiscountRemark" autocomplete="off"/>
+                            </li>
+                            <li>
+                                订单备注:<input type="text" class="styled-input" name="orderRemark" 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 + "xsgl/sxsglxsmxspmxsalesdetailinfo";
+    $(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 + "/sXsglXsmxSpmxSalesdetailinfoList",
+            viewUrl: prefix + "/sXsglXsmxSpmxSalesdetailinfoView/{id}",
+            createUrl: prefix + "/sXsglXsmxSpmxSalesdetailinfoAdd",
+            updateUrl: prefix + "/sXsglXsmxSpmxSalesdetailinfoEdit/{id}",
+            removeUrl: prefix + "/sXsglXsmxSpmxSalesdetailinfoRemove",
+            /*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: 'productId', title: '商品编码', align: 'center' },
+                    { field: 'productName', title: '商品名称', align: 'center' },
+                    { field: 'storeName', title: '门店名称', align: 'center' },
+                    { field: 'saleDate', title: '销售日期', align: 'center' },
+                    { field: 'saleDocumentNumber', title: '销售单号', align: 'center' },
+                    { field: 'member', title: '会员', align: 'center' },
+                    { field: 'orderStatus', title: '订单状态', align: 'center' },
+                    { field: 'specification', title: '规格', align: 'center' },
+                    { field: 'marketingCategory', title: '营销分类', align: 'center' },
+                    { field: 'manufacturer', title: '生产厂家', align: 'center' },
+                    { field: 'unit', title: '单位', align: 'center' },
+                    { field: 'dosageForm', title: '剂型', align: 'center' },
+                    { field: 'productionBatchNumber', title: '生产批号', align: 'center' },
+                    { field: 'batchNumber', title: '批次号', align: 'center' },
+                    { field: 'retailPrice', title: '零售价/元', align: 'center' },
+                    { field: 'actualSalePrice', title: '实际售价/元', align: 'center' },
+                    { field: 'quantity', title: '数量', align: 'center' },
+                    { field: 'discountRate', title: '折扣率%', align: 'center' },
+                    { field: 'receivableAmount', title: '应收金额/元', align: 'center' },
+                    { field: 'salesperson', title: '营业员', align: 'center' },
+                    { field: 'cashier', title: '收银员', align: 'center' },
+                    { field: 'authorizer', title: '授权人', align: 'center' },
+                    { field: 'saleAttribute', title: '销售属性', align: 'center' },
+                    { field: 'isGift', title: '是否赠品', align: 'center' },
+                    { field: 'isDispensed', title: '是否拆零', align: 'center' },
+                    { field: 'promotionDocumentNumber', title: '促销单号-档位', align: 'center' },
+                    { field: 'couponCode', title: '优惠券码-满额', align: 'center' },
+                    { field: 'couponAllocationAmount', title: '优惠券分摊金额', align: 'center' },
+                    { field: 'costRecoveryType', title: '成本还原类型', align: 'center' },
+                    { field: 'rebateUnitPrice', title: '返利单价', align: 'center' },
+                    { field: 'rebateAgreementNumber', title: '返利协议号', align: 'center' },
+                    { field: 'rebateSupplier', title: '返利供应商', align: 'center' },
+                    { field: 'estimatedCostUnitPrice', title: '预估成本单价', align: 'center' },
+                    { field: 'grossProfitUnitPrice', title: '毛利单价', align: 'center' },
+                    { field: 'discountAmount', title: '折扣金额/元', align: 'center' },
+                    { field: 'actualReceiptAmount', title: '实收金额/元', align: 'center' },
+                    { field: 'estimatedCostAmount', title: '预估成本金额', align: 'center' },
+                    { field: 'grossProfitAmount', title: '毛利金额', align: 'center' },
+                    { field: 'singleProductDiscountRemark', title: '单品折扣备注', align: 'center' },
+                    { field: 'actualPriceRemark', title: '实价备注', align: 'center' },
+                    { field: 'entireOrderDiscountRemark', title: '整单折扣备注', align: 'center' },
+                    { field: 'orderRemark', 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();
+        $("#SXsglXsmxSpmxSalesdetailinfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SXsglXsmxSpmxSalesdetailinfo-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>

+ 303 - 0
health-admin/src/main/resources/templates/xsgl/SXsglXsmxSpmxSalesdetailinfoPageEdit.html

@@ -0,0 +1,303 @@
+<!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-SXsglXsmxSpmxSalesdetailinfo-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="productId" placeholder="商品编码" th:value="${productId}" class="styled-input" type="text" 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="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="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="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="member" placeholder="会员" th:value="${member}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单状态:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderStatus" placeholder="订单状态" th:value="${orderStatus}" class="styled-input" type="text" 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="marketingCategory" placeholder="营销分类" th:value="${marketingCategory}" class="styled-input" type="text" 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="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="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="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="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="retailPrice" placeholder="零售价/元" th:value="${retailPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实际售价/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualSalePrice" placeholder="实际售价/元" th:value="${actualSalePrice}" class="styled-input" type="text" 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="discountRate" placeholder="折扣率%" th:value="${discountRate}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">应收金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="receivableAmount" placeholder="应收金额/元" th:value="${receivableAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">营业员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="salesperson" placeholder="营业员" th:value="${salesperson}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收银员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cashier" placeholder="收银员" th:value="${cashier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">授权人:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="authorizer" placeholder="授权人" th:value="${authorizer}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">销售属性:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="saleAttribute" placeholder="销售属性" th:value="${saleAttribute}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">是否赠品:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="isGift" placeholder="是否赠品" th:value="${isGift}" class="styled-input" type="text" 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="promotionDocumentNumber" placeholder="促销单号-档位" th:value="${promotionDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">优惠券码-满额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="couponCode" placeholder="优惠券码-满额" th:value="${couponCode}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">优惠券分摊金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="couponAllocationAmount" placeholder="优惠券分摊金额" th:value="${couponAllocationAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">成本还原类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="costRecoveryType" placeholder="成本还原类型" th:value="${costRecoveryType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">返利单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="rebateUnitPrice" placeholder="返利单价" th:value="${rebateUnitPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">返利协议号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="rebateAgreementNumber" placeholder="返利协议号" th:value="${rebateAgreementNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">返利供应商:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="rebateSupplier" placeholder="返利供应商" th:value="${rebateSupplier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">预估成本单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="estimatedCostUnitPrice" placeholder="预估成本单价" th:value="${estimatedCostUnitPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitUnitPrice" placeholder="毛利单价" th:value="${grossProfitUnitPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountAmount" placeholder="折扣金额/元" th:value="${discountAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实收金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualReceiptAmount" placeholder="实收金额/元" th:value="${actualReceiptAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">预估成本金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="estimatedCostAmount" placeholder="预估成本金额" th:value="${estimatedCostAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitAmount" placeholder="毛利金额" th:value="${grossProfitAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">单品折扣备注:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="singleProductDiscountRemark" placeholder="单品折扣备注" th:value="${singleProductDiscountRemark}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实价备注:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualPriceRemark" placeholder="实价备注" th:value="${actualPriceRemark}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">整单折扣备注:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="entireOrderDiscountRemark" placeholder="整单折扣备注" th:value="${entireOrderDiscountRemark}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">订单备注:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="orderRemark" placeholder="订单备注" th:value="${orderRemark}" 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 + "xsgl/sxsglxsmxspmxsalesdetailinfo";
+        if ($.validate.form()) {
+            var data = $("#form-SXsglXsmxSpmxSalesdetailinfo-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 + "/sXsglXsmxSpmxSalesdetailinfoEdit", data);
+        }
+    }
+</script>

+ 225 - 0
health-admin/src/main/resources/templates/xsgl/SXsglXsmxZkmxSalesdiscountinfoAdd.html

@@ -0,0 +1,225 @@
+<!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="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="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="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="member" id="member" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">收银员:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="cashier" id="cashier" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">零售价/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="retailPrice" id="retailPrice" class="styled-input" type="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="actualSalePrice" id="actualSalePrice" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">实收金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="actualReceiptAmount" id="actualReceiptAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">预估成本金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="estimatedCostAmount" id="estimatedCostAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">毛利金额/元:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="grossProfitAmount" id="grossProfitAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">购物车行号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="cartLineNo" id="cartLineNo" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">行数量:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="lineQuantity" id="lineQuantity" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">折扣类型:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="discountType" id="discountType" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">折扣单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="discountDocumentNumber" id="discountDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">折扣子单号:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="discountSubDocumentNumber" id="discountSubDocumentNumber" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">折扣单价:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="discountUnitPrice" id="discountUnitPrice" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">折扣金额:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="discountAmount" id="discountAmount" class="styled-input" type="text" maxlength="255" >
+                                </div>
+                            </div>
+                            <label class="col-sm-3 control-label">积分:</label>
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <input name="points" id="points" 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 storeName = $("input[name='storeName']").val();
+           var saleDate = $("input[name='saleDate']").val();
+           var saleDocumentNumber = $("input[name='saleDocumentNumber']").val();
+           var member = $("input[name='member']").val();
+           var cashier = $("input[name='cashier']").val();
+           var retailPrice = $("input[name='retailPrice']").val();
+           var batchNumber = $("input[name='batchNumber']").val();
+           var batch = $("input[name='batch']").val();
+           var actualSalePrice = $("input[name='actualSalePrice']").val();
+           var actualReceiptAmount = $("input[name='actualReceiptAmount']").val();
+           var estimatedCostAmount = $("input[name='estimatedCostAmount']").val();
+           var grossProfitAmount = $("input[name='grossProfitAmount']").val();
+           var cartLineNo = $("input[name='cartLineNo']").val();
+           var lineQuantity = $("input[name='lineQuantity']").val();
+           var discountType = $("input[name='discountType']").val();
+           var discountDocumentNumber = $("input[name='discountDocumentNumber']").val();
+           var discountSubDocumentNumber = $("input[name='discountSubDocumentNumber']").val();
+           var discountUnitPrice = $("input[name='discountUnitPrice']").val();
+           var discountAmount = $("input[name='discountAmount']").val();
+           var points = $("input[name='points']").val();
+
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglxsmxzkmxsalesdiscountinfo/sXsglXsmxZkmxSalesdiscountinfoAdd",
+            data : {
+                "productCode": productCode,
+                "productName": productName,
+                "storeName": storeName,
+                "saleDate": saleDate,
+                "saleDocumentNumber": saleDocumentNumber,
+                "member": member,
+                "cashier": cashier,
+                "retailPrice": retailPrice,
+                "batchNumber": batchNumber,
+                "batch": batch,
+                "actualSalePrice": actualSalePrice,
+                "actualReceiptAmount": actualReceiptAmount,
+                "estimatedCostAmount": estimatedCostAmount,
+                "grossProfitAmount": grossProfitAmount,
+                "cartLineNo": cartLineNo,
+                "lineQuantity": lineQuantity,
+                "discountType": discountType,
+                "discountDocumentNumber": discountDocumentNumber,
+                "discountSubDocumentNumber": discountSubDocumentNumber,
+                "discountUnitPrice": discountUnitPrice,
+                "discountAmount": discountAmount,
+                "points": points,
+            },
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 192 - 0
health-admin/src/main/resources/templates/xsgl/SXsglXsmxZkmxSalesdiscountinfoEdit.html

@@ -0,0 +1,192 @@
+<!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-SXsglXsmxZkmxSalesdiscountinfo-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="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="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="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="member" placeholder="会员" th:value="${member}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收银员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cashier" placeholder="收银员" th:value="${cashier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">零售价/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="retailPrice" placeholder="零售价/元" th:value="${retailPrice}" class="styled-input" type="text" 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="actualSalePrice" placeholder="实际售价/元" th:value="${actualSalePrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实收金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualReceiptAmount" placeholder="实收金额/元" th:value="${actualReceiptAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">预估成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="estimatedCostAmount" placeholder="预估成本金额/元" th:value="${estimatedCostAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitAmount" placeholder="毛利金额/元" th:value="${grossProfitAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">购物车行号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cartLineNo" placeholder="购物车行号" th:value="${cartLineNo}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">行数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lineQuantity" placeholder="行数量" th:value="${lineQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountType" placeholder="折扣类型" th:value="${discountType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountDocumentNumber" placeholder="折扣单号" th:value="${discountDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣子单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountSubDocumentNumber" placeholder="折扣子单号" th:value="${discountSubDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountUnitPrice" placeholder="折扣单价" th:value="${discountUnitPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountAmount" placeholder="折扣金额" th:value="${discountAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">积分:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="points" placeholder="积分" th:value="${points}" 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-SXsglXsmxZkmxSalesdiscountinfo-edit").serializeArray();
+        $.ajax({
+            cache : true,
+            type : "POST",
+            url : ctx + "xsgl/sxsglxsmxzkmxsalesdiscountinfo/sXsglXsmxZkmxSalesdiscountinfoEdit",
+            data : data,
+            async : false,
+            error : function(request) {
+                $.modal.alertError("系统错误");
+            },
+            success : function(data) {
+                $.operate.successCallback(data);
+            }
+        });
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            edit();
+        }
+    }
+</script>

+ 281 - 0
health-admin/src/main/resources/templates/xsgl/SXsglXsmxZkmxSalesdiscountinfoList.html

@@ -0,0 +1,281 @@
+<!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="SXsglXsmxZkmxSalesdiscountinfo-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="storeName" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售日期:<input type="text" class="styled-input" name="saleDate" autocomplete="off"/>
+                            </li>
+                            <li>
+                                销售单号:<input type="text" class="styled-input" name="saleDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                会员:<input type="text" class="styled-input" name="member" autocomplete="off"/>
+                            </li>
+                            <li>
+                                收银员:<input type="text" class="styled-input" name="cashier" autocomplete="off"/>
+                            </li>
+                            <li>
+                                零售价/元:<input type="text" class="styled-input" name="retailPrice" 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="actualSalePrice" autocomplete="off"/>
+                            </li>
+                            <li>
+                                实收金额/元:<input type="text" class="styled-input" name="actualReceiptAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                预估成本金额/元:<input type="text" class="styled-input" name="estimatedCostAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                毛利金额/元:<input type="text" class="styled-input" name="grossProfitAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                购物车行号:<input type="text" class="styled-input" name="cartLineNo" autocomplete="off"/>
+                            </li>
+                            <li>
+                                行数量:<input type="text" class="styled-input" name="lineQuantity" autocomplete="off"/>
+                            </li>
+                            <li>
+                                折扣类型:<input type="text" class="styled-input" name="discountType" autocomplete="off"/>
+                            </li>
+                            <li>
+                                折扣单号:<input type="text" class="styled-input" name="discountDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                折扣子单号:<input type="text" class="styled-input" name="discountSubDocumentNumber" autocomplete="off"/>
+                            </li>
+                            <li>
+                                折扣单价:<input type="text" class="styled-input" name="discountUnitPrice" autocomplete="off"/>
+                            </li>
+                            <li>
+                                折扣金额:<input type="text" class="styled-input" name="discountAmount" autocomplete="off"/>
+                            </li>
+                            <li>
+                                积分:<input type="text" class="styled-input" name="points" 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 + "xsgl/sxsglxsmxzkmxsalesdiscountinfo";
+    $(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 + "/sXsglXsmxZkmxSalesdiscountinfoList",
+            viewUrl: prefix + "/sXsglXsmxZkmxSalesdiscountinfoView/{id}",
+            createUrl: prefix + "/sXsglXsmxZkmxSalesdiscountinfoAdd",
+            updateUrl: prefix + "/sXsglXsmxZkmxSalesdiscountinfoEdit/{id}",
+            removeUrl: prefix + "/sXsglXsmxZkmxSalesdiscountinfoRemove",
+            /*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: 'storeName', title: '门店名称', align: 'center' },
+                    { field: 'saleDate', title: '销售日期', align: 'center' },
+                    { field: 'saleDocumentNumber', title: '销售单号', align: 'center' },
+                    { field: 'member', title: '会员', align: 'center' },
+                    { field: 'cashier', title: '收银员', align: 'center' },
+                    { field: 'retailPrice', title: '零售价/元', align: 'center' },
+                    { field: 'batchNumber', title: '批号', align: 'center' },
+                    { field: 'batch', title: '批次', align: 'center' },
+                    { field: 'actualSalePrice', title: '实际售价/元', align: 'center' },
+                    { field: 'actualReceiptAmount', title: '实收金额/元', align: 'center' },
+                    { field: 'estimatedCostAmount', title: '预估成本金额/元', align: 'center' },
+                    { field: 'grossProfitAmount', title: '毛利金额/元', align: 'center' },
+                    { field: 'cartLineNo', title: '购物车行号', align: 'center' },
+                    { field: 'lineQuantity', title: '行数量', align: 'center' },
+                    { field: 'discountType', title: '折扣类型', align: 'center' },
+                    { field: 'discountDocumentNumber', title: '折扣单号', align: 'center' },
+                    { field: 'discountSubDocumentNumber', title: '折扣子单号', align: 'center' },
+                    { field: 'discountUnitPrice', title: '折扣单价', align: 'center' },
+                    { field: 'discountAmount', title: '折扣金额', align: 'center' },
+                    { field: 'points', 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();
+        $("#SXsglXsmxZkmxSalesdiscountinfo-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+        var resetButton = document.getElementById('SXsglXsmxZkmxSalesdiscountinfo-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>

+ 183 - 0
health-admin/src/main/resources/templates/xsgl/SXsglXsmxZkmxSalesdiscountinfoPageEdit.html

@@ -0,0 +1,183 @@
+<!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-SXsglXsmxZkmxSalesdiscountinfo-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="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="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="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="member" placeholder="会员" th:value="${member}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">收银员:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cashier" placeholder="收银员" th:value="${cashier}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">零售价/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="retailPrice" placeholder="零售价/元" th:value="${retailPrice}" class="styled-input" type="text" 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="actualSalePrice" placeholder="实际售价/元" th:value="${actualSalePrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">实收金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="actualReceiptAmount" placeholder="实收金额/元" th:value="${actualReceiptAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">预估成本金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="estimatedCostAmount" placeholder="预估成本金额/元" th:value="${estimatedCostAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">毛利金额/元:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="grossProfitAmount" placeholder="毛利金额/元" th:value="${grossProfitAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">购物车行号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="cartLineNo" placeholder="购物车行号" th:value="${cartLineNo}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">行数量:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="lineQuantity" placeholder="行数量" th:value="${lineQuantity}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣类型:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountType" placeholder="折扣类型" th:value="${discountType}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountDocumentNumber" placeholder="折扣单号" th:value="${discountDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣子单号:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountSubDocumentNumber" placeholder="折扣子单号" th:value="${discountSubDocumentNumber}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣单价:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountUnitPrice" placeholder="折扣单价" th:value="${discountUnitPrice}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">折扣金额:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="discountAmount" placeholder="折扣金额" th:value="${discountAmount}" class="styled-input" type="text" maxlength="255" required>
+                        </div>
+                    </div>
+                    <label class="col-sm-1 control-label">积分:</label>
+                    <div class="col-sm-2">
+                        <div class="input-group">
+                            <input name="points" placeholder="积分" th:value="${points}" 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 + "xsgl/sxsglxsmxzkmxsalesdiscountinfo";
+        if ($.validate.form()) {
+            var data = $("#form-SXsglXsmxZkmxSalesdiscountinfo-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 + "/sXsglXsmxZkmxSalesdiscountinfoEdit", data);
+        }
+    }
+</script>

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/bbfx/SBbfxKcbbInventoryShortageDetailService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.bbfx;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 商品缺货明细表 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SBbfxKcbbInventoryShortageDetailService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSBbfxKcbbInventoryShortageDetail(PageData pd)throws Exception {
+        return daoSupport.update("SBbfxKcbbInventoryShortageDetailMapper.addSBbfxKcbbInventoryShortageDetail", pd);
+    }
+
+    public List<PageData> findSBbfxKcbbInventoryShortageDetailList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SBbfxKcbbInventoryShortageDetailMapper.selectSBbfxKcbbInventoryShortageDetailList", pd);
+    }
+
+    public Integer SBbfxKcbbInventoryShortageDetailRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SBbfxKcbbInventoryShortageDetailMapper.SBbfxKcbbInventoryShortageDetailRemove", pd);
+    }
+
+
+    public Integer updateSBbfxKcbbInventoryShortageDetail(PageData pd)throws Exception {
+        return daoSupport.update("SBbfxKcbbInventoryShortageDetailMapper.updateSBbfxKcbbInventoryShortageDetail", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/bbfx/SBbfxKcbbJgkcmxService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.bbfx;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 机构库存表 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SBbfxKcbbJgkcmxService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSBbfxKcbbJgkcmx(PageData pd)throws Exception {
+        return daoSupport.update("SBbfxKcbbJgkcmxMapper.addSBbfxKcbbJgkcmx", pd);
+    }
+
+    public List<PageData> findSBbfxKcbbJgkcmxList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SBbfxKcbbJgkcmxMapper.selectSBbfxKcbbJgkcmxList", pd);
+    }
+
+    public Integer SBbfxKcbbJgkcmxRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SBbfxKcbbJgkcmxMapper.SBbfxKcbbJgkcmxRemove", pd);
+    }
+
+
+    public Integer updateSBbfxKcbbJgkcmx(PageData pd)throws Exception {
+        return daoSupport.update("SBbfxKcbbJgkcmxMapper.updateSBbfxKcbbJgkcmx", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/fwgl/SFwglServercommissionrewardinfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.fwgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 服务包提成发放失败明细 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SFwglServercommissionrewardinfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSFwglServercommissionrewardinfo(PageData pd)throws Exception {
+        return daoSupport.update("SFwglServercommissionrewardinfoMapper.addSFwglServercommissionrewardinfo", pd);
+    }
+
+    public List<PageData> findSFwglServercommissionrewardinfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SFwglServercommissionrewardinfoMapper.selectSFwglServercommissionrewardinfoList", pd);
+    }
+
+    public Integer SFwglServercommissionrewardinfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SFwglServercommissionrewardinfoMapper.SFwglServercommissionrewardinfoRemove", pd);
+    }
+
+
+    public Integer updateSFwglServercommissionrewardinfo(PageData pd)throws Exception {
+        return daoSupport.update("SFwglServercommissionrewardinfoMapper.updateSFwglServercommissionrewardinfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/fwgl/SFwglServerinfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.fwgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 服务包列表 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SFwglServerinfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSFwglServerinfo(PageData pd)throws Exception {
+        return daoSupport.update("SFwglServerinfoMapper.addSFwglServerinfo", pd);
+    }
+
+    public List<PageData> findSFwglServerinfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SFwglServerinfoMapper.selectSFwglServerinfoList", pd);
+    }
+
+    public Integer SFwglServerinfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SFwglServerinfoMapper.SFwglServerinfoRemove", pd);
+    }
+
+
+    public Integer updateSFwglServerinfo(PageData pd)throws Exception {
+        return daoSupport.update("SFwglServerinfoMapper.updateSFwglServerinfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/fwgl/SFwglServerorderinfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.fwgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 服务包订单 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SFwglServerorderinfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSFwglServerorderinfo(PageData pd)throws Exception {
+        return daoSupport.update("SFwglServerorderinfoMapper.addSFwglServerorderinfo", pd);
+    }
+
+    public List<PageData> findSFwglServerorderinfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SFwglServerorderinfoMapper.selectSFwglServerorderinfoList", pd);
+    }
+
+    public Integer SFwglServerorderinfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SFwglServerorderinfoMapper.SFwglServerorderinfoRemove", pd);
+    }
+
+
+    public Integer updateSFwglServerorderinfo(PageData pd)throws Exception {
+        return daoSupport.update("SFwglServerorderinfoMapper.updateSFwglServerorderinfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/fwgl/SFwglServicepackageinfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.fwgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 扫码提成列表查询 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SFwglServicepackageinfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSFwglServicepackageinfo(PageData pd)throws Exception {
+        return daoSupport.update("SFwglServicepackageinfoMapper.addSFwglServicepackageinfo", pd);
+    }
+
+    public List<PageData> findSFwglServicepackageinfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SFwglServicepackageinfoMapper.selectSFwglServicepackageinfoList", pd);
+    }
+
+    public Integer SFwglServicepackageinfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SFwglServicepackageinfoMapper.SFwglServicepackageinfoRemove", pd);
+    }
+
+
+    public Integer updateSFwglServicepackageinfo(PageData pd)throws Exception {
+        return daoSupport.update("SFwglServicepackageinfoMapper.updateSFwglServicepackageinfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/fwgl/SFwglServicetypeinfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.fwgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 服务管理 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SFwglServicetypeinfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSFwglServicetypeinfo(PageData pd)throws Exception {
+        return daoSupport.update("SFwglServicetypeinfoMapper.addSFwglServicetypeinfo", pd);
+    }
+
+    public List<PageData> findSFwglServicetypeinfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SFwglServicetypeinfoMapper.selectSFwglServicetypeinfoList", pd);
+    }
+
+    public Integer SFwglServicetypeinfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SFwglServicetypeinfoMapper.SFwglServicetypeinfoRemove", pd);
+    }
+
+
+    public Integer updateSFwglServicetypeinfo(PageData pd)throws Exception {
+        return daoSupport.update("SFwglServicetypeinfoMapper.updateSFwglServicetypeinfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/hygl/SHyglHyxxJzyxMarketingplaninfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.hygl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 人群运营计划看板 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SHyglHyxxJzyxMarketingplaninfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSHyglHyxxJzyxMarketingplaninfo(PageData pd)throws Exception {
+        return daoSupport.update("SHyglHyxxJzyxMarketingplaninfoMapper.addSHyglHyxxJzyxMarketingplaninfo", pd);
+    }
+
+    public List<PageData> findSHyglHyxxJzyxMarketingplaninfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SHyglHyxxJzyxMarketingplaninfoMapper.selectSHyglHyxxJzyxMarketingplaninfoList", pd);
+    }
+
+    public Integer SHyglHyxxJzyxMarketingplaninfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SHyglHyxxJzyxMarketingplaninfoMapper.SHyglHyxxJzyxMarketingplaninfoRemove", pd);
+    }
+
+
+    public Integer updateSHyglHyxxJzyxMarketingplaninfo(PageData pd)throws Exception {
+        return daoSupport.update("SHyglHyxxJzyxMarketingplaninfoMapper.updateSHyglHyxxJzyxMarketingplaninfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/xsgl/SXsglMdlsSalesinventoryinfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.xsgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 门店零售日报表 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SXsglMdlsSalesinventoryinfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSXsglMdlsSalesinventoryinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglMdlsSalesinventoryinfoMapper.addSXsglMdlsSalesinventoryinfo", pd);
+    }
+
+    public List<PageData> findSXsglMdlsSalesinventoryinfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SXsglMdlsSalesinventoryinfoMapper.selectSXsglMdlsSalesinventoryinfoList", pd);
+    }
+
+    public Integer SXsglMdlsSalesinventoryinfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SXsglMdlsSalesinventoryinfoMapper.SXsglMdlsSalesinventoryinfoRemove", pd);
+    }
+
+
+    public Integer updateSXsglMdlsSalesinventoryinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglMdlsSalesinventoryinfoMapper.updateSXsglMdlsSalesinventoryinfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/xsgl/SXsglMdlsrbbYgSalesperformanceinfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.xsgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 零售员工日报表 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SXsglMdlsrbbYgSalesperformanceinfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSXsglMdlsrbbYgSalesperformanceinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglMdlsrbbYgSalesperformanceinfoMapper.addSXsglMdlsrbbYgSalesperformanceinfo", pd);
+    }
+
+    public List<PageData> findSXsglMdlsrbbYgSalesperformanceinfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SXsglMdlsrbbYgSalesperformanceinfoMapper.selectSXsglMdlsrbbYgSalesperformanceinfoList", pd);
+    }
+
+    public Integer SXsglMdlsrbbYgSalesperformanceinfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SXsglMdlsrbbYgSalesperformanceinfoMapper.SXsglMdlsrbbYgSalesperformanceinfoRemove", pd);
+    }
+
+
+    public Integer updateSXsglMdlsrbbYgSalesperformanceinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglMdlsrbbYgSalesperformanceinfoMapper.updateSXsglMdlsrbbYgSalesperformanceinfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/xsgl/SXsglReturninfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.xsgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 销售退回 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SXsglReturninfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSXsglReturninfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglReturninfoMapper.addSXsglReturninfo", pd);
+    }
+
+    public List<PageData> findSXsglReturninfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SXsglReturninfoMapper.selectSXsglReturninfoList", pd);
+    }
+
+    public Integer SXsglReturninfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SXsglReturninfoMapper.SXsglReturninfoRemove", pd);
+    }
+
+
+    public Integer updateSXsglReturninfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglReturninfoMapper.updateSXsglReturninfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/xsgl/SXsglReturnproductinfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.xsgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 负号销售表 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SXsglReturnproductinfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSXsglReturnproductinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglReturnproductinfoMapper.addSXsglReturnproductinfo", pd);
+    }
+
+    public List<PageData> findSXsglReturnproductinfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SXsglReturnproductinfoMapper.selectSXsglReturnproductinfoList", pd);
+    }
+
+    public Integer SXsglReturnproductinfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SXsglReturnproductinfoMapper.SXsglReturnproductinfoRemove", pd);
+    }
+
+
+    public Integer updateSXsglReturnproductinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglReturnproductinfoMapper.updateSXsglReturnproductinfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/xsgl/SXsglXsmxDdmxSalesorderinfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.xsgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 销售订单明细表 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SXsglXsmxDdmxSalesorderinfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSXsglXsmxDdmxSalesorderinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglXsmxDdmxSalesorderinfoMapper.addSXsglXsmxDdmxSalesorderinfo", pd);
+    }
+
+    public List<PageData> findSXsglXsmxDdmxSalesorderinfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SXsglXsmxDdmxSalesorderinfoMapper.selectSXsglXsmxDdmxSalesorderinfoList", pd);
+    }
+
+    public Integer SXsglXsmxDdmxSalesorderinfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SXsglXsmxDdmxSalesorderinfoMapper.SXsglXsmxDdmxSalesorderinfoRemove", pd);
+    }
+
+
+    public Integer updateSXsglXsmxDdmxSalesorderinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglXsmxDdmxSalesorderinfoMapper.updateSXsglXsmxDdmxSalesorderinfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/xsgl/SXsglXsmxSpmxSalesdetailinfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.xsgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 销售商品明细表 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SXsglXsmxSpmxSalesdetailinfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSXsglXsmxSpmxSalesdetailinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglXsmxSpmxSalesdetailinfoMapper.addSXsglXsmxSpmxSalesdetailinfo", pd);
+    }
+
+    public List<PageData> findSXsglXsmxSpmxSalesdetailinfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SXsglXsmxSpmxSalesdetailinfoMapper.selectSXsglXsmxSpmxSalesdetailinfoList", pd);
+    }
+
+    public Integer SXsglXsmxSpmxSalesdetailinfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SXsglXsmxSpmxSalesdetailinfoMapper.SXsglXsmxSpmxSalesdetailinfoRemove", pd);
+    }
+
+
+    public Integer updateSXsglXsmxSpmxSalesdetailinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglXsmxSpmxSalesdetailinfoMapper.updateSXsglXsmxSpmxSalesdetailinfo", pd);
+    }
+
+}

+ 47 - 0
health-system/src/main/java/com/bzd/system/service/xsgl/SXsglXsmxZkmxSalesdiscountinfoService.java

@@ -0,0 +1,47 @@
+package com.bzd.system.service.xsgl;
+
+import com.bzd.common.config.dao.DaoBase;
+import com.bzd.common.config.dao.DaoSupport;
+import com.bzd.common.config.dao.PageData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+*
+* 销售折扣明细 service
+* @author LiXiangFei
+* @since 2024-10-15
+*/
+
+@Service
+public class SXsglXsmxZkmxSalesdiscountinfoService {
+
+    @Autowired
+    private DaoBase dao;
+
+    @Resource(name = "daoSupport")
+    private DaoSupport daoSupport;
+
+    public Integer addSXsglXsmxZkmxSalesdiscountinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglXsmxZkmxSalesdiscountinfoMapper.addSXsglXsmxZkmxSalesdiscountinfo", pd);
+    }
+
+    public List<PageData> findSXsglXsmxZkmxSalesdiscountinfoList(PageData pd) throws Exception{
+        return (List<PageData>) daoSupport.findForList("SXsglXsmxZkmxSalesdiscountinfoMapper.selectSXsglXsmxZkmxSalesdiscountinfoList", pd);
+    }
+
+    public Integer SXsglXsmxZkmxSalesdiscountinfoRemove(PageData pd)throws Exception {
+        return daoSupport.delete("SXsglXsmxZkmxSalesdiscountinfoMapper.SXsglXsmxZkmxSalesdiscountinfoRemove", pd);
+    }
+
+
+    public Integer updateSXsglXsmxZkmxSalesdiscountinfo(PageData pd)throws Exception {
+        return daoSupport.update("SXsglXsmxZkmxSalesdiscountinfoMapper.updateSXsglXsmxZkmxSalesdiscountinfo", pd);
+    }
+
+}

+ 177 - 0
health-system/src/main/resources/mapper/bbfx/SBbfxKcbbInventoryShortageDetailMapper.xml

@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="SBbfxKcbbInventoryShortageDetailMapper" >
+    <!-- 通用查询映射结果 -->
+
+    <select id="selectSBbfxKcbbInventoryShortageDetailList" parameterType="pd" resultType="pd">
+        select * from s_bbfx_kcbb_inventory_shortage_detail where 1=1
+        <if test="id !=null and id !='' ">
+            and id = #{id}
+        </if>
+        <if test="productId !=null and productId !='' ">
+            and productId = #{productId}
+        </if>
+        <if test="productName !=null and productName !='' ">
+            and productName = #{productName}
+        </if>
+        <if test="productCode !=null and productCode !='' ">
+            and productCode = #{productCode}
+        </if>
+        <if test="category !=null and category !='' ">
+            and category = #{category}
+        </if>
+        <if test="supplier !=null and supplier !='' ">
+            and supplier = #{supplier}
+        </if>
+        <if test="stockQuantity !=null and stockQuantity !='' ">
+            and stockQuantity = #{stockQuantity}
+        </if>
+        <if test="reorderLevel !=null and reorderLevel !='' ">
+            and reorderLevel = #{reorderLevel}
+        </if>
+        <if test="shortageQuantity !=null and shortageQuantity !='' ">
+            and shortageQuantity = #{shortageQuantity}
+        </if>
+        <if test="lastStockCheckTime !=null and lastStockCheckTime !='' ">
+            and lastStockCheckTime = #{lastStockCheckTime}
+        </if>
+        <if test="lastEditor !=null and lastEditor !='' ">
+            and lastEditor = #{lastEditor}
+        </if>
+        <if test="lastEditTime !=null and lastEditTime !='' ">
+            and lastEditTime = #{lastEditTime}
+        </if>
+    </select>
+
+
+    <update id="updateSBbfxKcbbInventoryShortageDetail" parameterType="pd" >
+        update s_bbfx_kcbb_inventory_shortage_detail
+        <trim prefix=" SET " suffix="" prefixOverrides="," suffixOverrides=",">
+        <if test="productId !=null and productId !='' ">
+            productId = #{productId},
+        </if>
+        <if test="productName !=null and productName !='' ">
+            productName = #{productName},
+        </if>
+        <if test="productCode !=null and productCode !='' ">
+            productCode = #{productCode},
+        </if>
+        <if test="category !=null and category !='' ">
+            category = #{category},
+        </if>
+        <if test="supplier !=null and supplier !='' ">
+            supplier = #{supplier},
+        </if>
+        <if test="stockQuantity !=null and stockQuantity !='' ">
+            stockQuantity = #{stockQuantity},
+        </if>
+        <if test="reorderLevel !=null and reorderLevel !='' ">
+            reorderLevel = #{reorderLevel},
+        </if>
+        <if test="shortageQuantity !=null and shortageQuantity !='' ">
+            shortageQuantity = #{shortageQuantity},
+        </if>
+        <if test="lastStockCheckTime !=null and lastStockCheckTime !='' ">
+            lastStockCheckTime = #{lastStockCheckTime},
+        </if>
+        <if test="lastEditor !=null and lastEditor !='' ">
+            lastEditor = #{lastEditor},
+        </if>
+        <if test="lastEditTime !=null and lastEditTime !='' ">
+            lastEditTime = #{lastEditTime},
+        </if>
+        </trim>
+        <if test="up != null and up!=''">
+            <if test="id != null and id!=''">
+                where id=#{id}
+            </if>
+        </if>
+    </update>
+
+    <delete id="SBbfxKcbbInventoryShortageDetailRemove" parameterType="pd">
+        <if test="ids != null">
+            delete from s_bbfx_kcbb_inventory_shortage_detail where
+            <if test="ids != null">
+                id in(${ids})
+            </if>
+        </if>
+    </delete>
+
+    <insert id="addSBbfxKcbbInventoryShortageDetail" parameterType="pd" >
+
+        insert into s_bbfx_kcbb_inventory_shortage_detail
+        <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
+
+        <if test="productId !=null and productId !='' ">
+            productId,
+        </if>
+        <if test="productName !=null and productName !='' ">
+            productName,
+        </if>
+        <if test="productCode !=null and productCode !='' ">
+            productCode,
+        </if>
+        <if test="category !=null and category !='' ">
+            category,
+        </if>
+        <if test="supplier !=null and supplier !='' ">
+            supplier,
+        </if>
+        <if test="stockQuantity !=null and stockQuantity !='' ">
+            stockQuantity,
+        </if>
+        <if test="reorderLevel !=null and reorderLevel !='' ">
+            reorderLevel,
+        </if>
+        <if test="shortageQuantity !=null and shortageQuantity !='' ">
+            shortageQuantity,
+        </if>
+        <if test="lastStockCheckTime !=null and lastStockCheckTime !='' ">
+            lastStockCheckTime,
+        </if>
+        <if test="lastEditor !=null and lastEditor !='' ">
+            lastEditor,
+        </if>
+        <if test="lastEditTime !=null and lastEditTime !='' ">
+            lastEditTime,
+        </if>
+        </trim>
+        <trim prefix=" VALUES (" suffix=")" prefixOverrides="," suffixOverrides=",">
+        <if test="productId !=null and productId !='' ">
+             #{productId},
+        </if>
+        <if test="productName !=null and productName !='' ">
+             #{productName},
+        </if>
+        <if test="productCode !=null and productCode !='' ">
+             #{productCode},
+        </if>
+        <if test="category !=null and category !='' ">
+             #{category},
+        </if>
+        <if test="supplier !=null and supplier !='' ">
+             #{supplier},
+        </if>
+        <if test="stockQuantity !=null and stockQuantity !='' ">
+             #{stockQuantity},
+        </if>
+        <if test="reorderLevel !=null and reorderLevel !='' ">
+             #{reorderLevel},
+        </if>
+        <if test="shortageQuantity !=null and shortageQuantity !='' ">
+             #{shortageQuantity},
+        </if>
+        <if test="lastStockCheckTime !=null and lastStockCheckTime !='' ">
+             #{lastStockCheckTime},
+        </if>
+        <if test="lastEditor !=null and lastEditor !='' ">
+             #{lastEditor},
+        </if>
+        <if test="lastEditTime !=null and lastEditTime !='' ">
+             #{lastEditTime},
+        </if>
+        </trim>
+
+    </insert>
+
+</mapper>

+ 177 - 0
health-system/src/main/resources/mapper/bbfx/SBbfxKcbbJgkcmxMapper.xml

@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="SBbfxKcbbJgkcmxMapper" >
+    <!-- 通用查询映射结果 -->
+
+    <select id="selectSBbfxKcbbJgkcmxList" parameterType="pd" resultType="pd">
+        select * from s_bbfx_kcbb_jgkcmx where 1=1
+        <if test="id !=null and id !='' ">
+            and id = #{id}
+        </if>
+        <if test="organizationId !=null and organizationId !='' ">
+            and organizationId = #{organizationId}
+        </if>
+        <if test="productId !=null and productId !='' ">
+            and productId = #{productId}
+        </if>
+        <if test="productName !=null and productName !='' ">
+            and productName = #{productName}
+        </if>
+        <if test="productCode !=null and productCode !='' ">
+            and productCode = #{productCode}
+        </if>
+        <if test="category !=null and category !='' ">
+            and category = #{category}
+        </if>
+        <if test="supplier !=null and supplier !='' ">
+            and supplier = #{supplier}
+        </if>
+        <if test="stockQuantity !=null and stockQuantity !='' ">
+            and stockQuantity = #{stockQuantity}
+        </if>
+        <if test="reorderLevel !=null and reorderLevel !='' ">
+            and reorderLevel = #{reorderLevel}
+        </if>
+        <if test="lastStockCheckTime !=null and lastStockCheckTime !='' ">
+            and lastStockCheckTime = #{lastStockCheckTime}
+        </if>
+        <if test="lastEditor !=null and lastEditor !='' ">
+            and lastEditor = #{lastEditor}
+        </if>
+        <if test="lastEditTime !=null and lastEditTime !='' ">
+            and lastEditTime = #{lastEditTime}
+        </if>
+    </select>
+
+
+    <update id="updateSBbfxKcbbJgkcmx" parameterType="pd" >
+        update s_bbfx_kcbb_jgkcmx
+        <trim prefix=" SET " suffix="" prefixOverrides="," suffixOverrides=",">
+        <if test="organizationId !=null and organizationId !='' ">
+            organizationId = #{organizationId},
+        </if>
+        <if test="productId !=null and productId !='' ">
+            productId = #{productId},
+        </if>
+        <if test="productName !=null and productName !='' ">
+            productName = #{productName},
+        </if>
+        <if test="productCode !=null and productCode !='' ">
+            productCode = #{productCode},
+        </if>
+        <if test="category !=null and category !='' ">
+            category = #{category},
+        </if>
+        <if test="supplier !=null and supplier !='' ">
+            supplier = #{supplier},
+        </if>
+        <if test="stockQuantity !=null and stockQuantity !='' ">
+            stockQuantity = #{stockQuantity},
+        </if>
+        <if test="reorderLevel !=null and reorderLevel !='' ">
+            reorderLevel = #{reorderLevel},
+        </if>
+        <if test="lastStockCheckTime !=null and lastStockCheckTime !='' ">
+            lastStockCheckTime = #{lastStockCheckTime},
+        </if>
+        <if test="lastEditor !=null and lastEditor !='' ">
+            lastEditor = #{lastEditor},
+        </if>
+        <if test="lastEditTime !=null and lastEditTime !='' ">
+            lastEditTime = #{lastEditTime},
+        </if>
+        </trim>
+        <if test="up != null and up!=''">
+            <if test="id != null and id!=''">
+                where id=#{id}
+            </if>
+        </if>
+    </update>
+
+    <delete id="SBbfxKcbbJgkcmxRemove" parameterType="pd">
+        <if test="ids != null">
+            delete from s_bbfx_kcbb_jgkcmx where
+            <if test="ids != null">
+                id in(${ids})
+            </if>
+        </if>
+    </delete>
+
+    <insert id="addSBbfxKcbbJgkcmx" parameterType="pd" >
+
+        insert into s_bbfx_kcbb_jgkcmx
+        <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
+
+        <if test="organizationId !=null and organizationId !='' ">
+            organizationId,
+        </if>
+        <if test="productId !=null and productId !='' ">
+            productId,
+        </if>
+        <if test="productName !=null and productName !='' ">
+            productName,
+        </if>
+        <if test="productCode !=null and productCode !='' ">
+            productCode,
+        </if>
+        <if test="category !=null and category !='' ">
+            category,
+        </if>
+        <if test="supplier !=null and supplier !='' ">
+            supplier,
+        </if>
+        <if test="stockQuantity !=null and stockQuantity !='' ">
+            stockQuantity,
+        </if>
+        <if test="reorderLevel !=null and reorderLevel !='' ">
+            reorderLevel,
+        </if>
+        <if test="lastStockCheckTime !=null and lastStockCheckTime !='' ">
+            lastStockCheckTime,
+        </if>
+        <if test="lastEditor !=null and lastEditor !='' ">
+            lastEditor,
+        </if>
+        <if test="lastEditTime !=null and lastEditTime !='' ">
+            lastEditTime,
+        </if>
+        </trim>
+        <trim prefix=" VALUES (" suffix=")" prefixOverrides="," suffixOverrides=",">
+        <if test="organizationId !=null and organizationId !='' ">
+             #{organizationId},
+        </if>
+        <if test="productId !=null and productId !='' ">
+             #{productId},
+        </if>
+        <if test="productName !=null and productName !='' ">
+             #{productName},
+        </if>
+        <if test="productCode !=null and productCode !='' ">
+             #{productCode},
+        </if>
+        <if test="category !=null and category !='' ">
+             #{category},
+        </if>
+        <if test="supplier !=null and supplier !='' ">
+             #{supplier},
+        </if>
+        <if test="stockQuantity !=null and stockQuantity !='' ">
+             #{stockQuantity},
+        </if>
+        <if test="reorderLevel !=null and reorderLevel !='' ">
+             #{reorderLevel},
+        </if>
+        <if test="lastStockCheckTime !=null and lastStockCheckTime !='' ">
+             #{lastStockCheckTime},
+        </if>
+        <if test="lastEditor !=null and lastEditor !='' ">
+             #{lastEditor},
+        </if>
+        <if test="lastEditTime !=null and lastEditTime !='' ">
+             #{lastEditTime},
+        </if>
+        </trim>
+
+    </insert>
+
+</mapper>

+ 210 - 0
health-system/src/main/resources/mapper/fwgl/SFwglServercommissionrewardinfoMapper.xml

@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="SFwglServercommissionrewardinfoMapper" >
+    <!-- 通用查询映射结果 -->
+
+    <select id="selectSFwglServercommissionrewardinfoList" parameterType="pd" resultType="pd">
+        select * from s_fwgl_servercommissionrewardinfo where 1=1
+        <if test="commissionSource !=null and commissionSource !='' ">
+            and commissionSource = #{commissionSource}
+        </if>
+        <if test="rewardType !=null and rewardType !='' ">
+            and rewardType = #{rewardType}
+        </if>
+        <if test="occurrenceTime !=null and occurrenceTime !='' ">
+            and occurrenceTime = #{occurrenceTime}
+        </if>
+        <if test="servicePackageOrderNumber !=null and servicePackageOrderNumber !='' ">
+            and servicePackageOrderNumber = #{servicePackageOrderNumber}
+        </if>
+        <if test="voucherRedemptionOrderNumber !=null and voucherRedemptionOrderNumber !='' ">
+            and voucherRedemptionOrderNumber = #{voucherRedemptionOrderNumber}
+        </if>
+        <if test="chain !=null and chain !='' ">
+            and chain = #{chain}
+        </if>
+        <if test="store !=null and store !='' ">
+            and store = #{store}
+        </if>
+        <if test="voucherCode !=null and voucherCode !='' ">
+            and voucherCode = #{voucherCode}
+        </if>
+        <if test="staffNumber !=null and staffNumber !='' ">
+            and staffNumber = #{staffNumber}
+        </if>
+        <if test="staffID !=null and staffID !='' ">
+            and staffID = #{staffID}
+        </if>
+        <if test="staffName !=null and staffName !='' ">
+            and staffName = #{staffName}
+        </if>
+        <if test="contractID !=null and contractID !='' ">
+            and contractID = #{contractID}
+        </if>
+        <if test="contractOrderID !=null and contractOrderID !='' ">
+            and contractOrderID = #{contractOrderID}
+        </if>
+        <if test="status !=null and status !='' ">
+            and status = #{status}
+        </if>
+    </select>
+
+
+    <update id="updateSFwglServercommissionrewardinfo" parameterType="pd" >
+        update s_fwgl_servercommissionrewardinfo
+        <trim prefix=" SET " suffix="" prefixOverrides="," suffixOverrides=",">
+        <if test="commissionSource !=null and commissionSource !='' ">
+            commissionSource = #{commissionSource},
+        </if>
+        <if test="rewardType !=null and rewardType !='' ">
+            rewardType = #{rewardType},
+        </if>
+        <if test="occurrenceTime !=null and occurrenceTime !='' ">
+            occurrenceTime = #{occurrenceTime},
+        </if>
+        <if test="servicePackageOrderNumber !=null and servicePackageOrderNumber !='' ">
+            servicePackageOrderNumber = #{servicePackageOrderNumber},
+        </if>
+        <if test="voucherRedemptionOrderNumber !=null and voucherRedemptionOrderNumber !='' ">
+            voucherRedemptionOrderNumber = #{voucherRedemptionOrderNumber},
+        </if>
+        <if test="chain !=null and chain !='' ">
+            chain = #{chain},
+        </if>
+        <if test="store !=null and store !='' ">
+            store = #{store},
+        </if>
+        <if test="voucherCode !=null and voucherCode !='' ">
+            voucherCode = #{voucherCode},
+        </if>
+        <if test="staffNumber !=null and staffNumber !='' ">
+            staffNumber = #{staffNumber},
+        </if>
+        <if test="staffID !=null and staffID !='' ">
+            staffID = #{staffID},
+        </if>
+        <if test="staffName !=null and staffName !='' ">
+            staffName = #{staffName},
+        </if>
+        <if test="contractID !=null and contractID !='' ">
+            contractID = #{contractID},
+        </if>
+        <if test="contractOrderID !=null and contractOrderID !='' ">
+            contractOrderID = #{contractOrderID},
+        </if>
+        <if test="status !=null and status !='' ">
+            status = #{status},
+        </if>
+        </trim>
+        <if test="up != null and up!=''">
+            <if test="id != null and id!=''">
+                where id=#{id}
+            </if>
+        </if>
+    </update>
+
+    <delete id="SFwglServercommissionrewardinfoRemove" parameterType="pd">
+        <if test="ids != null">
+            delete from s_fwgl_servercommissionrewardinfo where
+            <if test="ids != null">
+                id in(${ids})
+            </if>
+        </if>
+    </delete>
+
+    <insert id="addSFwglServercommissionrewardinfo" parameterType="pd" >
+
+        insert into s_fwgl_servercommissionrewardinfo
+        <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
+
+        <if test="commissionSource !=null and commissionSource !='' ">
+            commissionSource,
+        </if>
+        <if test="rewardType !=null and rewardType !='' ">
+            rewardType,
+        </if>
+        <if test="occurrenceTime !=null and occurrenceTime !='' ">
+            occurrenceTime,
+        </if>
+        <if test="servicePackageOrderNumber !=null and servicePackageOrderNumber !='' ">
+            servicePackageOrderNumber,
+        </if>
+        <if test="voucherRedemptionOrderNumber !=null and voucherRedemptionOrderNumber !='' ">
+            voucherRedemptionOrderNumber,
+        </if>
+        <if test="chain !=null and chain !='' ">
+            chain,
+        </if>
+        <if test="store !=null and store !='' ">
+            store,
+        </if>
+        <if test="voucherCode !=null and voucherCode !='' ">
+            voucherCode,
+        </if>
+        <if test="staffNumber !=null and staffNumber !='' ">
+            staffNumber,
+        </if>
+        <if test="staffID !=null and staffID !='' ">
+            staffID,
+        </if>
+        <if test="staffName !=null and staffName !='' ">
+            staffName,
+        </if>
+        <if test="contractID !=null and contractID !='' ">
+            contractID,
+        </if>
+        <if test="contractOrderID !=null and contractOrderID !='' ">
+            contractOrderID,
+        </if>
+        <if test="status !=null and status !='' ">
+            status,
+        </if>
+        </trim>
+        <trim prefix=" VALUES (" suffix=")" prefixOverrides="," suffixOverrides=",">
+        <if test="commissionSource !=null and commissionSource !='' ">
+             #{commissionSource},
+        </if>
+        <if test="rewardType !=null and rewardType !='' ">
+             #{rewardType},
+        </if>
+        <if test="occurrenceTime !=null and occurrenceTime !='' ">
+             #{occurrenceTime},
+        </if>
+        <if test="servicePackageOrderNumber !=null and servicePackageOrderNumber !='' ">
+             #{servicePackageOrderNumber},
+        </if>
+        <if test="voucherRedemptionOrderNumber !=null and voucherRedemptionOrderNumber !='' ">
+             #{voucherRedemptionOrderNumber},
+        </if>
+        <if test="chain !=null and chain !='' ">
+             #{chain},
+        </if>
+        <if test="store !=null and store !='' ">
+             #{store},
+        </if>
+        <if test="voucherCode !=null and voucherCode !='' ">
+             #{voucherCode},
+        </if>
+        <if test="staffNumber !=null and staffNumber !='' ">
+             #{staffNumber},
+        </if>
+        <if test="staffID !=null and staffID !='' ">
+             #{staffID},
+        </if>
+        <if test="staffName !=null and staffName !='' ">
+             #{staffName},
+        </if>
+        <if test="contractID !=null and contractID !='' ">
+             #{contractID},
+        </if>
+        <if test="contractOrderID !=null and contractOrderID !='' ">
+             #{contractOrderID},
+        </if>
+        <if test="status !=null and status !='' ">
+             #{status},
+        </if>
+        </trim>
+
+    </insert>
+
+</mapper>

+ 162 - 0
health-system/src/main/resources/mapper/fwgl/SFwglServerinfoMapper.xml

@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="SFwglServerinfoMapper" >
+    <!-- 通用查询映射结果 -->
+
+    <select id="selectSFwglServerinfoList" parameterType="pd" resultType="pd">
+        select * from s_fwgl_serverinfo where 1=1
+        <if test="productName !=null and productName !='' ">
+            and productName = #{productName}
+        </if>
+        <if test="productId !=null and productId !='' ">
+            and productId = #{productId}
+        </if>
+        <if test="mdmProductCode !=null and mdmProductCode !='' ">
+            and mdmProductCode = #{mdmProductCode}
+        </if>
+        <if test="price !=null and price !='' ">
+            and price = #{price}
+        </if>
+        <if test="productType !=null and productType !='' ">
+            and productType = #{productType}
+        </if>
+        <if test="stock !=null and stock !='' ">
+            and stock = #{stock}
+        </if>
+        <if test="productCategory !=null and productCategory !='' ">
+            and productCategory = #{productCategory}
+        </if>
+        <if test="auditStatus !=null and auditStatus !='' ">
+            and auditStatus = #{auditStatus}
+        </if>
+        <if test="status !=null and status !='' ">
+            and status = #{status}
+        </if>
+        <if test="creationTime !=null and creationTime !='' ">
+            and creationTime = #{creationTime}
+        </if>
+    </select>
+
+
+    <update id="updateSFwglServerinfo" parameterType="pd" >
+        update s_fwgl_serverinfo
+        <trim prefix=" SET " suffix="" prefixOverrides="," suffixOverrides=",">
+        <if test="productName !=null and productName !='' ">
+            productName = #{productName},
+        </if>
+        <if test="productId !=null and productId !='' ">
+            productId = #{productId},
+        </if>
+        <if test="mdmProductCode !=null and mdmProductCode !='' ">
+            mdmProductCode = #{mdmProductCode},
+        </if>
+        <if test="price !=null and price !='' ">
+            price = #{price},
+        </if>
+        <if test="productType !=null and productType !='' ">
+            productType = #{productType},
+        </if>
+        <if test="stock !=null and stock !='' ">
+            stock = #{stock},
+        </if>
+        <if test="productCategory !=null and productCategory !='' ">
+            productCategory = #{productCategory},
+        </if>
+        <if test="auditStatus !=null and auditStatus !='' ">
+            auditStatus = #{auditStatus},
+        </if>
+        <if test="status !=null and status !='' ">
+            status = #{status},
+        </if>
+        <if test="creationTime !=null and creationTime !='' ">
+            creationTime = #{creationTime},
+        </if>
+        </trim>
+        <if test="up != null and up!=''">
+            <if test="id != null and id!=''">
+                where id=#{id}
+            </if>
+        </if>
+    </update>
+
+    <delete id="SFwglServerinfoRemove" parameterType="pd">
+        <if test="ids != null">
+            delete from s_fwgl_serverinfo where
+            <if test="ids != null">
+                id in(${ids})
+            </if>
+        </if>
+    </delete>
+
+    <insert id="addSFwglServerinfo" parameterType="pd" >
+
+        insert into s_fwgl_serverinfo
+        <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
+
+        <if test="productName !=null and productName !='' ">
+            productName,
+        </if>
+        <if test="productId !=null and productId !='' ">
+            productId,
+        </if>
+        <if test="mdmProductCode !=null and mdmProductCode !='' ">
+            mdmProductCode,
+        </if>
+        <if test="price !=null and price !='' ">
+            price,
+        </if>
+        <if test="productType !=null and productType !='' ">
+            productType,
+        </if>
+        <if test="stock !=null and stock !='' ">
+            stock,
+        </if>
+        <if test="productCategory !=null and productCategory !='' ">
+            productCategory,
+        </if>
+        <if test="auditStatus !=null and auditStatus !='' ">
+            auditStatus,
+        </if>
+        <if test="status !=null and status !='' ">
+            status,
+        </if>
+        <if test="creationTime !=null and creationTime !='' ">
+            creationTime,
+        </if>
+        </trim>
+        <trim prefix=" VALUES (" suffix=")" prefixOverrides="," suffixOverrides=",">
+        <if test="productName !=null and productName !='' ">
+             #{productName},
+        </if>
+        <if test="productId !=null and productId !='' ">
+             #{productId},
+        </if>
+        <if test="mdmProductCode !=null and mdmProductCode !='' ">
+             #{mdmProductCode},
+        </if>
+        <if test="price !=null and price !='' ">
+             #{price},
+        </if>
+        <if test="productType !=null and productType !='' ">
+             #{productType},
+        </if>
+        <if test="stock !=null and stock !='' ">
+             #{stock},
+        </if>
+        <if test="productCategory !=null and productCategory !='' ">
+             #{productCategory},
+        </if>
+        <if test="auditStatus !=null and auditStatus !='' ">
+             #{auditStatus},
+        </if>
+        <if test="status !=null and status !='' ">
+             #{status},
+        </if>
+        <if test="creationTime !=null and creationTime !='' ">
+             #{creationTime},
+        </if>
+        </trim>
+
+    </insert>
+
+</mapper>

+ 246 - 0
health-system/src/main/resources/mapper/fwgl/SFwglServerorderinfoMapper.xml

@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="SFwglServerorderinfoMapper" >
+    <!-- 通用查询映射结果 -->
+
+    <select id="selectSFwglServerorderinfoList" parameterType="pd" resultType="pd">
+        select * from s_fwgl_serverorderinfo where 1=1
+        <if test="orderNumber !=null and orderNumber !='' ">
+            and orderNumber = #{orderNumber}
+        </if>
+        <if test="productType !=null and productType !='' ">
+            and productType = #{productType}
+        </if>
+        <if test="productEnterprise !=null and productEnterprise !='' ">
+            and productEnterprise = #{productEnterprise}
+        </if>
+        <if test="productName !=null and productName !='' ">
+            and productName = #{productName}
+        </if>
+        <if test="orderTime !=null and orderTime !='' ">
+            and orderTime = #{orderTime}
+        </if>
+        <if test="orderAmount !=null and orderAmount !='' ">
+            and orderAmount = #{orderAmount}
+        </if>
+        <if test="orderSource !=null and orderSource !='' ">
+            and orderSource = #{orderSource}
+        </if>
+        <if test="orderStatus !=null and orderStatus !='' ">
+            and orderStatus = #{orderStatus}
+        </if>
+        <if test="orderingAccount !=null and orderingAccount !='' ">
+            and orderingAccount = #{orderingAccount}
+        </if>
+        <if test="userId !=null and userId !='' ">
+            and userId = #{userId}
+        </if>
+        <if test="orderingPhone !=null and orderingPhone !='' ">
+            and orderingPhone = #{orderingPhone}
+        </if>
+        <if test="orderingStore !=null and orderingStore !='' ">
+            and orderingStore = #{orderingStore}
+        </if>
+        <if test="storeCode !=null and storeCode !='' ">
+            and storeCode = #{storeCode}
+        </if>
+        <if test="refundOperator !=null and refundOperator !='' ">
+            and refundOperator = #{refundOperator}
+        </if>
+        <if test="couponUsed !=null and couponUsed !='' ">
+            and couponUsed = #{couponUsed}
+        </if>
+        <if test="physicalRedemptionUsed !=null and physicalRedemptionUsed !='' ">
+            and physicalRedemptionUsed = #{physicalRedemptionUsed}
+        </if>
+        <if test="salesChannel !=null and salesChannel !='' ">
+            and salesChannel = #{salesChannel}
+        </if>
+    </select>
+
+
+    <update id="updateSFwglServerorderinfo" parameterType="pd" >
+        update s_fwgl_serverorderinfo
+        <trim prefix=" SET " suffix="" prefixOverrides="," suffixOverrides=",">
+        <if test="orderNumber !=null and orderNumber !='' ">
+            orderNumber = #{orderNumber},
+        </if>
+        <if test="productType !=null and productType !='' ">
+            productType = #{productType},
+        </if>
+        <if test="productEnterprise !=null and productEnterprise !='' ">
+            productEnterprise = #{productEnterprise},
+        </if>
+        <if test="productName !=null and productName !='' ">
+            productName = #{productName},
+        </if>
+        <if test="orderTime !=null and orderTime !='' ">
+            orderTime = #{orderTime},
+        </if>
+        <if test="orderAmount !=null and orderAmount !='' ">
+            orderAmount = #{orderAmount},
+        </if>
+        <if test="orderSource !=null and orderSource !='' ">
+            orderSource = #{orderSource},
+        </if>
+        <if test="orderStatus !=null and orderStatus !='' ">
+            orderStatus = #{orderStatus},
+        </if>
+        <if test="orderingAccount !=null and orderingAccount !='' ">
+            orderingAccount = #{orderingAccount},
+        </if>
+        <if test="userId !=null and userId !='' ">
+            userId = #{userId},
+        </if>
+        <if test="orderingPhone !=null and orderingPhone !='' ">
+            orderingPhone = #{orderingPhone},
+        </if>
+        <if test="orderingStore !=null and orderingStore !='' ">
+            orderingStore = #{orderingStore},
+        </if>
+        <if test="storeCode !=null and storeCode !='' ">
+            storeCode = #{storeCode},
+        </if>
+        <if test="refundOperator !=null and refundOperator !='' ">
+            refundOperator = #{refundOperator},
+        </if>
+        <if test="couponUsed !=null and couponUsed !='' ">
+            couponUsed = #{couponUsed},
+        </if>
+        <if test="physicalRedemptionUsed !=null and physicalRedemptionUsed !='' ">
+            physicalRedemptionUsed = #{physicalRedemptionUsed},
+        </if>
+        <if test="salesChannel !=null and salesChannel !='' ">
+            salesChannel = #{salesChannel},
+        </if>
+        </trim>
+        <if test="up != null and up!=''">
+            <if test="id != null and id!=''">
+                where id=#{id}
+            </if>
+        </if>
+    </update>
+
+    <delete id="SFwglServerorderinfoRemove" parameterType="pd">
+        <if test="ids != null">
+            delete from s_fwgl_serverorderinfo where
+            <if test="ids != null">
+                id in(${ids})
+            </if>
+        </if>
+    </delete>
+
+    <insert id="addSFwglServerorderinfo" parameterType="pd" >
+
+        insert into s_fwgl_serverorderinfo
+        <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
+
+        <if test="orderNumber !=null and orderNumber !='' ">
+            orderNumber,
+        </if>
+        <if test="productType !=null and productType !='' ">
+            productType,
+        </if>
+        <if test="productEnterprise !=null and productEnterprise !='' ">
+            productEnterprise,
+        </if>
+        <if test="productName !=null and productName !='' ">
+            productName,
+        </if>
+        <if test="orderTime !=null and orderTime !='' ">
+            orderTime,
+        </if>
+        <if test="orderAmount !=null and orderAmount !='' ">
+            orderAmount,
+        </if>
+        <if test="orderSource !=null and orderSource !='' ">
+            orderSource,
+        </if>
+        <if test="orderStatus !=null and orderStatus !='' ">
+            orderStatus,
+        </if>
+        <if test="orderingAccount !=null and orderingAccount !='' ">
+            orderingAccount,
+        </if>
+        <if test="userId !=null and userId !='' ">
+            userId,
+        </if>
+        <if test="orderingPhone !=null and orderingPhone !='' ">
+            orderingPhone,
+        </if>
+        <if test="orderingStore !=null and orderingStore !='' ">
+            orderingStore,
+        </if>
+        <if test="storeCode !=null and storeCode !='' ">
+            storeCode,
+        </if>
+        <if test="refundOperator !=null and refundOperator !='' ">
+            refundOperator,
+        </if>
+        <if test="couponUsed !=null and couponUsed !='' ">
+            couponUsed,
+        </if>
+        <if test="physicalRedemptionUsed !=null and physicalRedemptionUsed !='' ">
+            physicalRedemptionUsed,
+        </if>
+        <if test="salesChannel !=null and salesChannel !='' ">
+            salesChannel,
+        </if>
+        </trim>
+        <trim prefix=" VALUES (" suffix=")" prefixOverrides="," suffixOverrides=",">
+        <if test="orderNumber !=null and orderNumber !='' ">
+             #{orderNumber},
+        </if>
+        <if test="productType !=null and productType !='' ">
+             #{productType},
+        </if>
+        <if test="productEnterprise !=null and productEnterprise !='' ">
+             #{productEnterprise},
+        </if>
+        <if test="productName !=null and productName !='' ">
+             #{productName},
+        </if>
+        <if test="orderTime !=null and orderTime !='' ">
+             #{orderTime},
+        </if>
+        <if test="orderAmount !=null and orderAmount !='' ">
+             #{orderAmount},
+        </if>
+        <if test="orderSource !=null and orderSource !='' ">
+             #{orderSource},
+        </if>
+        <if test="orderStatus !=null and orderStatus !='' ">
+             #{orderStatus},
+        </if>
+        <if test="orderingAccount !=null and orderingAccount !='' ">
+             #{orderingAccount},
+        </if>
+        <if test="userId !=null and userId !='' ">
+             #{userId},
+        </if>
+        <if test="orderingPhone !=null and orderingPhone !='' ">
+             #{orderingPhone},
+        </if>
+        <if test="orderingStore !=null and orderingStore !='' ">
+             #{orderingStore},
+        </if>
+        <if test="storeCode !=null and storeCode !='' ">
+             #{storeCode},
+        </if>
+        <if test="refundOperator !=null and refundOperator !='' ">
+             #{refundOperator},
+        </if>
+        <if test="couponUsed !=null and couponUsed !='' ">
+             #{couponUsed},
+        </if>
+        <if test="physicalRedemptionUsed !=null and physicalRedemptionUsed !='' ">
+             #{physicalRedemptionUsed},
+        </if>
+        <if test="salesChannel !=null and salesChannel !='' ">
+             #{salesChannel},
+        </if>
+        </trim>
+
+    </insert>
+
+</mapper>

+ 186 - 0
health-system/src/main/resources/mapper/fwgl/SFwglServicepackageinfoMapper.xml

@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="SFwglServicepackageinfoMapper" >
+    <!-- 通用查询映射结果 -->
+
+    <select id="selectSFwglServicepackageinfoList" parameterType="pd" resultType="pd">
+        select * from s_fwgl_servicepackageinfo where 1=1
+        <if test="orderNumber !=null and orderNumber !='' ">
+            and orderNumber = #{orderNumber}
+        </if>
+        <if test="chain !=null and chain !='' ">
+            and chain = #{chain}
+        </if>
+        <if test="servicePackageId !=null and servicePackageId !='' ">
+            and servicePackageId = #{servicePackageId}
+        </if>
+        <if test="servicePackageName !=null and servicePackageName !='' ">
+            and servicePackageName = #{servicePackageName}
+        </if>
+        <if test="orderTime !=null and orderTime !='' ">
+            and orderTime = #{orderTime}
+        </if>
+        <if test="userId !=null and userId !='' ">
+            and userId = #{userId}
+        </if>
+        <if test="orderingPhone !=null and orderingPhone !='' ">
+            and orderingPhone = #{orderingPhone}
+        </if>
+        <if test="orderStatus !=null and orderStatus !='' ">
+            and orderStatus = #{orderStatus}
+        </if>
+        <if test="orderingStore !=null and orderingStore !='' ">
+            and orderingStore = #{orderingStore}
+        </if>
+        <if test="scanningStaffNumber !=null and scanningStaffNumber !='' ">
+            and scanningStaffNumber = #{scanningStaffNumber}
+        </if>
+        <if test="scanningStaffName !=null and scanningStaffName !='' ">
+            and scanningStaffName = #{scanningStaffName}
+        </if>
+        <if test="scanningTime !=null and scanningTime !='' ">
+            and scanningTime = #{scanningTime}
+        </if>
+    </select>
+
+
+    <update id="updateSFwglServicepackageinfo" parameterType="pd" >
+        update s_fwgl_servicepackageinfo
+        <trim prefix=" SET " suffix="" prefixOverrides="," suffixOverrides=",">
+        <if test="orderNumber !=null and orderNumber !='' ">
+            orderNumber = #{orderNumber},
+        </if>
+        <if test="chain !=null and chain !='' ">
+            chain = #{chain},
+        </if>
+        <if test="servicePackageId !=null and servicePackageId !='' ">
+            servicePackageId = #{servicePackageId},
+        </if>
+        <if test="servicePackageName !=null and servicePackageName !='' ">
+            servicePackageName = #{servicePackageName},
+        </if>
+        <if test="orderTime !=null and orderTime !='' ">
+            orderTime = #{orderTime},
+        </if>
+        <if test="userId !=null and userId !='' ">
+            userId = #{userId},
+        </if>
+        <if test="orderingPhone !=null and orderingPhone !='' ">
+            orderingPhone = #{orderingPhone},
+        </if>
+        <if test="orderStatus !=null and orderStatus !='' ">
+            orderStatus = #{orderStatus},
+        </if>
+        <if test="orderingStore !=null and orderingStore !='' ">
+            orderingStore = #{orderingStore},
+        </if>
+        <if test="scanningStaffNumber !=null and scanningStaffNumber !='' ">
+            scanningStaffNumber = #{scanningStaffNumber},
+        </if>
+        <if test="scanningStaffName !=null and scanningStaffName !='' ">
+            scanningStaffName = #{scanningStaffName},
+        </if>
+        <if test="scanningTime !=null and scanningTime !='' ">
+            scanningTime = #{scanningTime},
+        </if>
+        </trim>
+        <if test="up != null and up!=''">
+            <if test="id != null and id!=''">
+                where id=#{id}
+            </if>
+        </if>
+    </update>
+
+    <delete id="SFwglServicepackageinfoRemove" parameterType="pd">
+        <if test="ids != null">
+            delete from s_fwgl_servicepackageinfo where
+            <if test="ids != null">
+                id in(${ids})
+            </if>
+        </if>
+    </delete>
+
+    <insert id="addSFwglServicepackageinfo" parameterType="pd" >
+
+        insert into s_fwgl_servicepackageinfo
+        <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
+
+        <if test="orderNumber !=null and orderNumber !='' ">
+            orderNumber,
+        </if>
+        <if test="chain !=null and chain !='' ">
+            chain,
+        </if>
+        <if test="servicePackageId !=null and servicePackageId !='' ">
+            servicePackageId,
+        </if>
+        <if test="servicePackageName !=null and servicePackageName !='' ">
+            servicePackageName,
+        </if>
+        <if test="orderTime !=null and orderTime !='' ">
+            orderTime,
+        </if>
+        <if test="userId !=null and userId !='' ">
+            userId,
+        </if>
+        <if test="orderingPhone !=null and orderingPhone !='' ">
+            orderingPhone,
+        </if>
+        <if test="orderStatus !=null and orderStatus !='' ">
+            orderStatus,
+        </if>
+        <if test="orderingStore !=null and orderingStore !='' ">
+            orderingStore,
+        </if>
+        <if test="scanningStaffNumber !=null and scanningStaffNumber !='' ">
+            scanningStaffNumber,
+        </if>
+        <if test="scanningStaffName !=null and scanningStaffName !='' ">
+            scanningStaffName,
+        </if>
+        <if test="scanningTime !=null and scanningTime !='' ">
+            scanningTime,
+        </if>
+        </trim>
+        <trim prefix=" VALUES (" suffix=")" prefixOverrides="," suffixOverrides=",">
+        <if test="orderNumber !=null and orderNumber !='' ">
+             #{orderNumber},
+        </if>
+        <if test="chain !=null and chain !='' ">
+             #{chain},
+        </if>
+        <if test="servicePackageId !=null and servicePackageId !='' ">
+             #{servicePackageId},
+        </if>
+        <if test="servicePackageName !=null and servicePackageName !='' ">
+             #{servicePackageName},
+        </if>
+        <if test="orderTime !=null and orderTime !='' ">
+             #{orderTime},
+        </if>
+        <if test="userId !=null and userId !='' ">
+             #{userId},
+        </if>
+        <if test="orderingPhone !=null and orderingPhone !='' ">
+             #{orderingPhone},
+        </if>
+        <if test="orderStatus !=null and orderStatus !='' ">
+             #{orderStatus},
+        </if>
+        <if test="orderingStore !=null and orderingStore !='' ">
+             #{orderingStore},
+        </if>
+        <if test="scanningStaffNumber !=null and scanningStaffNumber !='' ">
+             #{scanningStaffNumber},
+        </if>
+        <if test="scanningStaffName !=null and scanningStaffName !='' ">
+             #{scanningStaffName},
+        </if>
+        <if test="scanningTime !=null and scanningTime !='' ">
+             #{scanningTime},
+        </if>
+        </trim>
+
+    </insert>
+
+</mapper>

+ 105 - 0
health-system/src/main/resources/mapper/fwgl/SFwglServicetypeinfoMapper.xml

@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="SFwglServicetypeinfoMapper" >
+    <!-- 通用查询映射结果 -->
+
+    <select id="selectSFwglServicetypeinfoList" parameterType="pd" resultType="pd">
+        select * from s_fwgl_servicetypeinfo where 1=1
+        <if test="serviceId !=null and serviceId !='' ">
+            and serviceId = #{serviceId}
+        </if>
+        <if test="serviceTypeNumber !=null and serviceTypeNumber !='' ">
+            and serviceTypeNumber = #{serviceTypeNumber}
+        </if>
+        <if test="serviceTypeName !=null and serviceTypeName !='' ">
+            and serviceTypeName = #{serviceTypeName}
+        </if>
+        <if test="serviceTypeDescription !=null and serviceTypeDescription !='' ">
+            and serviceTypeDescription = #{serviceTypeDescription}
+        </if>
+        <if test="fulfillmentParty !=null and fulfillmentParty !='' ">
+            and fulfillmentParty = #{fulfillmentParty}
+        </if>
+        <if test="createTime !=null and createTime !='' ">
+            and create_time = #{createTime}
+        </if>
+    </select>
+
+
+    <update id="updateSFwglServicetypeinfo" parameterType="pd" >
+        update s_fwgl_servicetypeinfo
+        <trim prefix=" SET " suffix="" prefixOverrides="," suffixOverrides=",">
+        <if test="serviceTypeNumber !=null and serviceTypeNumber !='' ">
+            serviceTypeNumber = #{serviceTypeNumber},
+        </if>
+        <if test="serviceTypeName !=null and serviceTypeName !='' ">
+            serviceTypeName = #{serviceTypeName},
+        </if>
+        <if test="serviceTypeDescription !=null and serviceTypeDescription !='' ">
+            serviceTypeDescription = #{serviceTypeDescription},
+        </if>
+        <if test="fulfillmentParty !=null and fulfillmentParty !='' ">
+            fulfillmentParty = #{fulfillmentParty},
+        </if>
+        <if test="createTime !=null and createTime !='' ">
+            create_time = #{createTime},
+        </if>
+        </trim>
+        <if test="up != null and up!=''">
+            <if test="id != null and id!=''">
+                where id=#{id}
+            </if>
+        </if>
+    </update>
+
+    <delete id="SFwglServicetypeinfoRemove" parameterType="pd">
+        <if test="ids != null">
+            delete from s_fwgl_servicetypeinfo where
+            <if test="ids != null">
+                id in(${ids})
+            </if>
+        </if>
+    </delete>
+
+    <insert id="addSFwglServicetypeinfo" parameterType="pd" >
+
+        insert into s_fwgl_servicetypeinfo
+        <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
+
+        <if test="serviceTypeNumber !=null and serviceTypeNumber !='' ">
+            serviceTypeNumber,
+        </if>
+        <if test="serviceTypeName !=null and serviceTypeName !='' ">
+            serviceTypeName,
+        </if>
+        <if test="serviceTypeDescription !=null and serviceTypeDescription !='' ">
+            serviceTypeDescription,
+        </if>
+        <if test="fulfillmentParty !=null and fulfillmentParty !='' ">
+            fulfillmentParty,
+        </if>
+        <if test="createTime !=null and createTime !='' ">
+            create_time,
+        </if>
+        </trim>
+        <trim prefix=" VALUES (" suffix=")" prefixOverrides="," suffixOverrides=",">
+        <if test="serviceTypeNumber !=null and serviceTypeNumber !='' ">
+             #{serviceTypeNumber},
+        </if>
+        <if test="serviceTypeName !=null and serviceTypeName !='' ">
+             #{serviceTypeName},
+        </if>
+        <if test="serviceTypeDescription !=null and serviceTypeDescription !='' ">
+             #{serviceTypeDescription},
+        </if>
+        <if test="fulfillmentParty !=null and fulfillmentParty !='' ">
+             #{fulfillmentParty},
+        </if>
+        <if test="createTime !=null and createTime !='' ">
+             #{createTime},
+        </if>
+        </trim>
+
+    </insert>
+
+</mapper>

+ 210 - 0
health-system/src/main/resources/mapper/hygl/SHyglHyxxJzyxMarketingplaninfoMapper.xml

@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="SHyglHyxxJzyxMarketingplaninfoMapper" >
+    <!-- 通用查询映射结果 -->
+
+    <select id="selectSHyglHyxxJzyxMarketingplaninfoList" parameterType="pd" resultType="pd">
+        select * from s_hygl_hyxx_jzyx_marketingplaninfo where 1=1
+        <if test="planUniqueIdentifier !=null and planUniqueIdentifier !='' ">
+            and planUniqueIdentifier = #{planUniqueIdentifier}
+        </if>
+        <if test="planName !=null and planName !='' ">
+            and planName = #{planName}
+        </if>
+        <if test="targetAudienceDescription !=null and targetAudienceDescription !='' ">
+            and targetAudienceDescription = #{targetAudienceDescription}
+        </if>
+        <if test="executionMethods !=null and executionMethods !='' ">
+            and executionMethods = #{executionMethods}
+        </if>
+        <if test="promotionChannels !=null and promotionChannels !='' ">
+            and promotionChannels = #{promotionChannels}
+        </if>
+        <if test="startDate !=null and startDate !='' ">
+            and startDate = #{startDate}
+        </if>
+        <if test="taskExecutionTime !=null and taskExecutionTime !='' ">
+            and taskExecutionTime = #{taskExecutionTime}
+        </if>
+        <if test="groupBelongingName !=null and groupBelongingName !='' ">
+            and groupBelongingName = #{groupBelongingName}
+        </if>
+        <if test="estimatedParticipants !=null and estimatedParticipants !='' ">
+            and estimatedParticipants = #{estimatedParticipants}
+        </if>
+        <if test="actualParticipants !=null and actualParticipants !='' ">
+            and actualParticipants = #{actualParticipants}
+        </if>
+        <if test="taskPushProgress !=null and taskPushProgress !='' ">
+            and taskPushProgress = #{taskPushProgress}
+        </if>
+        <if test="taskCompletionProgress !=null and taskCompletionProgress !='' ">
+            and taskCompletionProgress = #{taskCompletionProgress}
+        </if>
+        <if test="planStatus !=null and planStatus !='' ">
+            and planStatus = #{planStatus}
+        </if>
+        <if test="createdByUser !=null and createdByUser !='' ">
+            and createdByUser = #{createdByUser}
+        </if>
+    </select>
+
+
+    <update id="updateSHyglHyxxJzyxMarketingplaninfo" parameterType="pd" >
+        update s_hygl_hyxx_jzyx_marketingplaninfo
+        <trim prefix=" SET " suffix="" prefixOverrides="," suffixOverrides=",">
+        <if test="planUniqueIdentifier !=null and planUniqueIdentifier !='' ">
+            planUniqueIdentifier = #{planUniqueIdentifier},
+        </if>
+        <if test="planName !=null and planName !='' ">
+            planName = #{planName},
+        </if>
+        <if test="targetAudienceDescription !=null and targetAudienceDescription !='' ">
+            targetAudienceDescription = #{targetAudienceDescription},
+        </if>
+        <if test="executionMethods !=null and executionMethods !='' ">
+            executionMethods = #{executionMethods},
+        </if>
+        <if test="promotionChannels !=null and promotionChannels !='' ">
+            promotionChannels = #{promotionChannels},
+        </if>
+        <if test="startDate !=null and startDate !='' ">
+            startDate = #{startDate},
+        </if>
+        <if test="taskExecutionTime !=null and taskExecutionTime !='' ">
+            taskExecutionTime = #{taskExecutionTime},
+        </if>
+        <if test="groupBelongingName !=null and groupBelongingName !='' ">
+            groupBelongingName = #{groupBelongingName},
+        </if>
+        <if test="estimatedParticipants !=null and estimatedParticipants !='' ">
+            estimatedParticipants = #{estimatedParticipants},
+        </if>
+        <if test="actualParticipants !=null and actualParticipants !='' ">
+            actualParticipants = #{actualParticipants},
+        </if>
+        <if test="taskPushProgress !=null and taskPushProgress !='' ">
+            taskPushProgress = #{taskPushProgress},
+        </if>
+        <if test="taskCompletionProgress !=null and taskCompletionProgress !='' ">
+            taskCompletionProgress = #{taskCompletionProgress},
+        </if>
+        <if test="planStatus !=null and planStatus !='' ">
+            planStatus = #{planStatus},
+        </if>
+        <if test="createdByUser !=null and createdByUser !='' ">
+            createdByUser = #{createdByUser},
+        </if>
+        </trim>
+        <if test="up != null and up!=''">
+            <if test="id != null and id!=''">
+                where id=#{id}
+            </if>
+        </if>
+    </update>
+
+    <delete id="SHyglHyxxJzyxMarketingplaninfoRemove" parameterType="pd">
+        <if test="ids != null">
+            delete from s_hygl_hyxx_jzyx_marketingplaninfo where
+            <if test="ids != null">
+                id in(${ids})
+            </if>
+        </if>
+    </delete>
+
+    <insert id="addSHyglHyxxJzyxMarketingplaninfo" parameterType="pd" >
+
+        insert into s_hygl_hyxx_jzyx_marketingplaninfo
+        <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
+
+        <if test="planUniqueIdentifier !=null and planUniqueIdentifier !='' ">
+            planUniqueIdentifier,
+        </if>
+        <if test="planName !=null and planName !='' ">
+            planName,
+        </if>
+        <if test="targetAudienceDescription !=null and targetAudienceDescription !='' ">
+            targetAudienceDescription,
+        </if>
+        <if test="executionMethods !=null and executionMethods !='' ">
+            executionMethods,
+        </if>
+        <if test="promotionChannels !=null and promotionChannels !='' ">
+            promotionChannels,
+        </if>
+        <if test="startDate !=null and startDate !='' ">
+            startDate,
+        </if>
+        <if test="taskExecutionTime !=null and taskExecutionTime !='' ">
+            taskExecutionTime,
+        </if>
+        <if test="groupBelongingName !=null and groupBelongingName !='' ">
+            groupBelongingName,
+        </if>
+        <if test="estimatedParticipants !=null and estimatedParticipants !='' ">
+            estimatedParticipants,
+        </if>
+        <if test="actualParticipants !=null and actualParticipants !='' ">
+            actualParticipants,
+        </if>
+        <if test="taskPushProgress !=null and taskPushProgress !='' ">
+            taskPushProgress,
+        </if>
+        <if test="taskCompletionProgress !=null and taskCompletionProgress !='' ">
+            taskCompletionProgress,
+        </if>
+        <if test="planStatus !=null and planStatus !='' ">
+            planStatus,
+        </if>
+        <if test="createdByUser !=null and createdByUser !='' ">
+            createdByUser,
+        </if>
+        </trim>
+        <trim prefix=" VALUES (" suffix=")" prefixOverrides="," suffixOverrides=",">
+        <if test="planUniqueIdentifier !=null and planUniqueIdentifier !='' ">
+             #{planUniqueIdentifier},
+        </if>
+        <if test="planName !=null and planName !='' ">
+             #{planName},
+        </if>
+        <if test="targetAudienceDescription !=null and targetAudienceDescription !='' ">
+             #{targetAudienceDescription},
+        </if>
+        <if test="executionMethods !=null and executionMethods !='' ">
+             #{executionMethods},
+        </if>
+        <if test="promotionChannels !=null and promotionChannels !='' ">
+             #{promotionChannels},
+        </if>
+        <if test="startDate !=null and startDate !='' ">
+             #{startDate},
+        </if>
+        <if test="taskExecutionTime !=null and taskExecutionTime !='' ">
+             #{taskExecutionTime},
+        </if>
+        <if test="groupBelongingName !=null and groupBelongingName !='' ">
+             #{groupBelongingName},
+        </if>
+        <if test="estimatedParticipants !=null and estimatedParticipants !='' ">
+             #{estimatedParticipants},
+        </if>
+        <if test="actualParticipants !=null and actualParticipants !='' ">
+             #{actualParticipants},
+        </if>
+        <if test="taskPushProgress !=null and taskPushProgress !='' ">
+             #{taskPushProgress},
+        </if>
+        <if test="taskCompletionProgress !=null and taskCompletionProgress !='' ">
+             #{taskCompletionProgress},
+        </if>
+        <if test="planStatus !=null and planStatus !='' ">
+             #{planStatus},
+        </if>
+        <if test="createdByUser !=null and createdByUser !='' ">
+             #{createdByUser},
+        </if>
+        </trim>
+
+    </insert>
+
+</mapper>

+ 594 - 0
health-system/src/main/resources/mapper/xsgl/SXsglMdlsSalesinventoryinfoMapper.xml

@@ -0,0 +1,594 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="SXsglMdlsSalesinventoryinfoMapper" >
+    <!-- 通用查询映射结果 -->
+
+    <select id="selectSXsglMdlsSalesinventoryinfoList" parameterType="pd" resultType="pd">
+        select * from s_xsgl_mdls_salesinventoryinfo where 1=1
+        <if test="chainId !=null and chainId !='' ">
+            and chainId = #{chainId}
+        </if>
+        <if test="organizationId !=null and organizationId !='' ">
+            and organizationId = #{organizationId}
+        </if>
+        <if test="organizationName !=null and organizationName !='' ">
+            and organizationName = #{organizationName}
+        </if>
+        <if test="storeId !=null and storeId !='' ">
+            and storeId = #{storeId}
+        </if>
+        <if test="date !=null and date !='' ">
+            and date = #{date}
+        </if>
+        <if test="actualAmount !=null and actualAmount !='' ">
+            and actualAmount = #{actualAmount}
+        </if>
+        <if test="salesBudget !=null and salesBudget !='' ">
+            and salesBudget = #{salesBudget}
+        </if>
+        <if test="grossProfitBudget !=null and grossProfitBudget !='' ">
+            and grossProfitBudget = #{grossProfitBudget}
+        </if>
+        <if test="grossProfitAmount !=null and grossProfitAmount !='' ">
+            and grossProfitAmount = #{grossProfitAmount}
+        </if>
+        <if test="grossProfitMargin !=null and grossProfitMargin !='' ">
+            and grossProfitMargin = #{grossProfitMargin}
+        </if>
+        <if test="nearExpiryQuantity !=null and nearExpiryQuantity !='' ">
+            and nearExpiryQuantity = #{nearExpiryQuantity}
+        </if>
+        <if test="threeMonthInactiveQuantity !=null and threeMonthInactiveQuantity !='' ">
+            and threeMonthInactiveQuantity = #{threeMonthInactiveQuantity}
+        </if>
+        <if test="customerVisits !=null and customerVisits !='' ">
+            and customerVisits = #{customerVisits}
+        </if>
+        <if test="memberSalesAmount !=null and memberSalesAmount !='' ">
+            and memberSalesAmount = #{memberSalesAmount}
+        </if>
+        <if test="memberSalesGrossProfit !=null and memberSalesGrossProfit !='' ">
+            and memberSalesGrossProfit = #{memberSalesGrossProfit}
+        </if>
+        <if test="memberCustomerCount !=null and memberCustomerCount !='' ">
+            and memberCustomerCount = #{memberCustomerCount}
+        </if>
+        <if test="healthSupplements !=null and healthSupplements !='' ">
+            and healthSupplements = #{healthSupplements}
+        </if>
+        <if test="otc !=null and otc !='' ">
+            and otc = #{otc}
+        </if>
+        <if test="others !=null and others !='' ">
+            and others = #{others}
+        </if>
+        <if test="prescription !=null and prescription !='' ">
+            and prescription = #{prescription}
+        </if>
+        <if test="chineseMedicineAndGinseng !=null and chineseMedicineAndGinseng !='' ">
+            and chineseMedicineAndGinseng = #{chineseMedicineAndGinseng}
+        </if>
+        <if test="chineseAndWesternMedicines !=null and chineseAndWesternMedicines !='' ">
+            and chineseAndWesternMedicines = #{chineseAndWesternMedicines}
+        </if>
+        <if test="convenienceFood !=null and convenienceFood !='' ">
+            and convenienceFood = #{convenienceFood}
+        </if>
+        <if test="dailyChemicals !=null and dailyChemicals !='' ">
+            and dailyChemicals = #{dailyChemicals}
+        </if>
+        <if test="servicesAndNonSellableItems !=null and servicesAndNonSellableItems !='' ">
+            and servicesAndNonSellableItems = #{servicesAndNonSellableItems}
+        </if>
+        <if test="maternityProducts !=null and maternityProducts !='' ">
+            and maternityProducts = #{maternityProducts}
+        </if>
+        <if test="disinfectionSupplies !=null and disinfectionSupplies !='' ">
+            and disinfectionSupplies = #{disinfectionSupplies}
+        </if>
+        <if test="categoryA1 !=null and categoryA1 !='' ">
+            and categoryA1 = #{categoryA1}
+        </if>
+        <if test="categoryA2 !=null and categoryA2 !='' ">
+            and categoryA2 = #{categoryA2}
+        </if>
+        <if test="categoryA3 !=null and categoryA3 !='' ">
+            and categoryA3 = #{categoryA3}
+        </if>
+        <if test="categoryA4 !=null and categoryA4 !='' ">
+            and categoryA4 = #{categoryA4}
+        </if>
+        <if test="categoryAA !=null and categoryAA !='' ">
+            and categoryAA = #{categoryAA}
+        </if>
+        <if test="otherMarketingLevels !=null and otherMarketingLevels !='' ">
+            and otherMarketingLevels = #{otherMarketingLevels}
+        </if>
+        <if test="lowProfit !=null and lowProfit !='' ">
+            and lowProfit = #{lowProfit}
+        </if>
+        <if test="marginalProfit !=null and marginalProfit !='' ">
+            and marginalProfit = #{marginalProfit}
+        </if>
+        <if test="negativeProfit !=null and negativeProfit !='' ">
+            and negativeProfit = #{negativeProfit}
+        </if>
+        <if test="elimination !=null and elimination !='' ">
+            and elimination = #{elimination}
+        </if>
+        <if test="oneMonthInactiveStock !=null and oneMonthInactiveStock !='' ">
+            and oneMonthInactiveStock = #{oneMonthInactiveStock}
+        </if>
+        <if test="threeMonthInactiveStock !=null and threeMonthInactiveStock !='' ">
+            and threeMonthInactiveStock = #{threeMonthInactiveStock}
+        </if>
+        <if test="nearExpiryRemainingStock !=null and nearExpiryRemainingStock !='' ">
+            and nearExpiryRemainingStock = #{nearExpiryRemainingStock}
+        </if>
+        <if test="environmentIdentifier !=null and environmentIdentifier !='' ">
+            and environmentIdentifier = #{environmentIdentifier}
+        </if>
+        <if test="recordStatus !=null and recordStatus !='' ">
+            and recordStatus = #{recordStatus}
+        </if>
+        <if test="creatorId !=null and creatorId !='' ">
+            and creatorId = #{creatorId}
+        </if>
+        <if test="createTime !=null and createTime !='' ">
+            and createTime = #{createTime}
+        </if>
+        <if test="updaterId !=null and updaterId !='' ">
+            and updaterId = #{updaterId}
+        </if>
+        <if test="updateTime !=null and updateTime !='' ">
+            and updateTime = #{updateTime}
+        </if>
+    </select>
+
+
+    <update id="updateSXsglMdlsSalesinventoryinfo" parameterType="pd" >
+        update s_xsgl_mdls_salesinventoryinfo
+        <trim prefix=" SET " suffix="" prefixOverrides="," suffixOverrides=",">
+        <if test="chainId !=null and chainId !='' ">
+            chainId = #{chainId},
+        </if>
+        <if test="organizationId !=null and organizationId !='' ">
+            organizationId = #{organizationId},
+        </if>
+        <if test="organizationName !=null and organizationName !='' ">
+            organizationName = #{organizationName},
+        </if>
+        <if test="storeId !=null and storeId !='' ">
+            storeId = #{storeId},
+        </if>
+        <if test="date !=null and date !='' ">
+            date = #{date},
+        </if>
+        <if test="actualAmount !=null and actualAmount !='' ">
+            actualAmount = #{actualAmount},
+        </if>
+        <if test="salesBudget !=null and salesBudget !='' ">
+            salesBudget = #{salesBudget},
+        </if>
+        <if test="grossProfitBudget !=null and grossProfitBudget !='' ">
+            grossProfitBudget = #{grossProfitBudget},
+        </if>
+        <if test="grossProfitAmount !=null and grossProfitAmount !='' ">
+            grossProfitAmount = #{grossProfitAmount},
+        </if>
+        <if test="grossProfitMargin !=null and grossProfitMargin !='' ">
+            grossProfitMargin = #{grossProfitMargin},
+        </if>
+        <if test="nearExpiryQuantity !=null and nearExpiryQuantity !='' ">
+            nearExpiryQuantity = #{nearExpiryQuantity},
+        </if>
+        <if test="threeMonthInactiveQuantity !=null and threeMonthInactiveQuantity !='' ">
+            threeMonthInactiveQuantity = #{threeMonthInactiveQuantity},
+        </if>
+        <if test="customerVisits !=null and customerVisits !='' ">
+            customerVisits = #{customerVisits},
+        </if>
+        <if test="memberSalesAmount !=null and memberSalesAmount !='' ">
+            memberSalesAmount = #{memberSalesAmount},
+        </if>
+        <if test="memberSalesGrossProfit !=null and memberSalesGrossProfit !='' ">
+            memberSalesGrossProfit = #{memberSalesGrossProfit},
+        </if>
+        <if test="memberCustomerCount !=null and memberCustomerCount !='' ">
+            memberCustomerCount = #{memberCustomerCount},
+        </if>
+        <if test="healthSupplements !=null and healthSupplements !='' ">
+            healthSupplements = #{healthSupplements},
+        </if>
+        <if test="otc !=null and otc !='' ">
+            otc = #{otc},
+        </if>
+        <if test="others !=null and others !='' ">
+            others = #{others},
+        </if>
+        <if test="prescription !=null and prescription !='' ">
+            prescription = #{prescription},
+        </if>
+        <if test="chineseMedicineAndGinseng !=null and chineseMedicineAndGinseng !='' ">
+            chineseMedicineAndGinseng = #{chineseMedicineAndGinseng},
+        </if>
+        <if test="chineseAndWesternMedicines !=null and chineseAndWesternMedicines !='' ">
+            chineseAndWesternMedicines = #{chineseAndWesternMedicines},
+        </if>
+        <if test="convenienceFood !=null and convenienceFood !='' ">
+            convenienceFood = #{convenienceFood},
+        </if>
+        <if test="dailyChemicals !=null and dailyChemicals !='' ">
+            dailyChemicals = #{dailyChemicals},
+        </if>
+        <if test="servicesAndNonSellableItems !=null and servicesAndNonSellableItems !='' ">
+            servicesAndNonSellableItems = #{servicesAndNonSellableItems},
+        </if>
+        <if test="maternityProducts !=null and maternityProducts !='' ">
+            maternityProducts = #{maternityProducts},
+        </if>
+        <if test="disinfectionSupplies !=null and disinfectionSupplies !='' ">
+            disinfectionSupplies = #{disinfectionSupplies},
+        </if>
+        <if test="categoryA1 !=null and categoryA1 !='' ">
+            categoryA1 = #{categoryA1},
+        </if>
+        <if test="categoryA2 !=null and categoryA2 !='' ">
+            categoryA2 = #{categoryA2},
+        </if>
+        <if test="categoryA3 !=null and categoryA3 !='' ">
+            categoryA3 = #{categoryA3},
+        </if>
+        <if test="categoryA4 !=null and categoryA4 !='' ">
+            categoryA4 = #{categoryA4},
+        </if>
+        <if test="categoryAA !=null and categoryAA !='' ">
+            categoryAA = #{categoryAA},
+        </if>
+        <if test="otherMarketingLevels !=null and otherMarketingLevels !='' ">
+            otherMarketingLevels = #{otherMarketingLevels},
+        </if>
+        <if test="lowProfit !=null and lowProfit !='' ">
+            lowProfit = #{lowProfit},
+        </if>
+        <if test="marginalProfit !=null and marginalProfit !='' ">
+            marginalProfit = #{marginalProfit},
+        </if>
+        <if test="negativeProfit !=null and negativeProfit !='' ">
+            negativeProfit = #{negativeProfit},
+        </if>
+        <if test="elimination !=null and elimination !='' ">
+            elimination = #{elimination},
+        </if>
+        <if test="oneMonthInactiveStock !=null and oneMonthInactiveStock !='' ">
+            oneMonthInactiveStock = #{oneMonthInactiveStock},
+        </if>
+        <if test="threeMonthInactiveStock !=null and threeMonthInactiveStock !='' ">
+            threeMonthInactiveStock = #{threeMonthInactiveStock},
+        </if>
+        <if test="nearExpiryRemainingStock !=null and nearExpiryRemainingStock !='' ">
+            nearExpiryRemainingStock = #{nearExpiryRemainingStock},
+        </if>
+        <if test="environmentIdentifier !=null and environmentIdentifier !='' ">
+            environmentIdentifier = #{environmentIdentifier},
+        </if>
+        <if test="recordStatus !=null and recordStatus !='' ">
+            recordStatus = #{recordStatus},
+        </if>
+        <if test="creatorId !=null and creatorId !='' ">
+            creatorId = #{creatorId},
+        </if>
+        <if test="createTime !=null and createTime !='' ">
+            createTime = #{createTime},
+        </if>
+        <if test="updaterId !=null and updaterId !='' ">
+            updaterId = #{updaterId},
+        </if>
+        <if test="updateTime !=null and updateTime !='' ">
+            updateTime = #{updateTime},
+        </if>
+        </trim>
+        <if test="up != null and up!=''">
+            <if test="id != null and id!=''">
+                where id=#{id}
+            </if>
+        </if>
+    </update>
+
+    <delete id="SXsglMdlsSalesinventoryinfoRemove" parameterType="pd">
+        <if test="ids != null">
+            delete from s_xsgl_mdls_salesinventoryinfo where
+            <if test="ids != null">
+                id in(${ids})
+            </if>
+        </if>
+    </delete>
+
+    <insert id="addSXsglMdlsSalesinventoryinfo" parameterType="pd" >
+
+        insert into s_xsgl_mdls_salesinventoryinfo
+        <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
+
+        <if test="chainId !=null and chainId !='' ">
+            chainId,
+        </if>
+        <if test="organizationId !=null and organizationId !='' ">
+            organizationId,
+        </if>
+        <if test="organizationName !=null and organizationName !='' ">
+            organizationName,
+        </if>
+        <if test="storeId !=null and storeId !='' ">
+            storeId,
+        </if>
+        <if test="date !=null and date !='' ">
+            date,
+        </if>
+        <if test="actualAmount !=null and actualAmount !='' ">
+            actualAmount,
+        </if>
+        <if test="salesBudget !=null and salesBudget !='' ">
+            salesBudget,
+        </if>
+        <if test="grossProfitBudget !=null and grossProfitBudget !='' ">
+            grossProfitBudget,
+        </if>
+        <if test="grossProfitAmount !=null and grossProfitAmount !='' ">
+            grossProfitAmount,
+        </if>
+        <if test="grossProfitMargin !=null and grossProfitMargin !='' ">
+            grossProfitMargin,
+        </if>
+        <if test="nearExpiryQuantity !=null and nearExpiryQuantity !='' ">
+            nearExpiryQuantity,
+        </if>
+        <if test="threeMonthInactiveQuantity !=null and threeMonthInactiveQuantity !='' ">
+            threeMonthInactiveQuantity,
+        </if>
+        <if test="customerVisits !=null and customerVisits !='' ">
+            customerVisits,
+        </if>
+        <if test="memberSalesAmount !=null and memberSalesAmount !='' ">
+            memberSalesAmount,
+        </if>
+        <if test="memberSalesGrossProfit !=null and memberSalesGrossProfit !='' ">
+            memberSalesGrossProfit,
+        </if>
+        <if test="memberCustomerCount !=null and memberCustomerCount !='' ">
+            memberCustomerCount,
+        </if>
+        <if test="healthSupplements !=null and healthSupplements !='' ">
+            healthSupplements,
+        </if>
+        <if test="otc !=null and otc !='' ">
+            otc,
+        </if>
+        <if test="others !=null and others !='' ">
+            others,
+        </if>
+        <if test="prescription !=null and prescription !='' ">
+            prescription,
+        </if>
+        <if test="chineseMedicineAndGinseng !=null and chineseMedicineAndGinseng !='' ">
+            chineseMedicineAndGinseng,
+        </if>
+        <if test="chineseAndWesternMedicines !=null and chineseAndWesternMedicines !='' ">
+            chineseAndWesternMedicines,
+        </if>
+        <if test="convenienceFood !=null and convenienceFood !='' ">
+            convenienceFood,
+        </if>
+        <if test="dailyChemicals !=null and dailyChemicals !='' ">
+            dailyChemicals,
+        </if>
+        <if test="servicesAndNonSellableItems !=null and servicesAndNonSellableItems !='' ">
+            servicesAndNonSellableItems,
+        </if>
+        <if test="maternityProducts !=null and maternityProducts !='' ">
+            maternityProducts,
+        </if>
+        <if test="disinfectionSupplies !=null and disinfectionSupplies !='' ">
+            disinfectionSupplies,
+        </if>
+        <if test="categoryA1 !=null and categoryA1 !='' ">
+            categoryA1,
+        </if>
+        <if test="categoryA2 !=null and categoryA2 !='' ">
+            categoryA2,
+        </if>
+        <if test="categoryA3 !=null and categoryA3 !='' ">
+            categoryA3,
+        </if>
+        <if test="categoryA4 !=null and categoryA4 !='' ">
+            categoryA4,
+        </if>
+        <if test="categoryAA !=null and categoryAA !='' ">
+            categoryAA,
+        </if>
+        <if test="otherMarketingLevels !=null and otherMarketingLevels !='' ">
+            otherMarketingLevels,
+        </if>
+        <if test="lowProfit !=null and lowProfit !='' ">
+            lowProfit,
+        </if>
+        <if test="marginalProfit !=null and marginalProfit !='' ">
+            marginalProfit,
+        </if>
+        <if test="negativeProfit !=null and negativeProfit !='' ">
+            negativeProfit,
+        </if>
+        <if test="elimination !=null and elimination !='' ">
+            elimination,
+        </if>
+        <if test="oneMonthInactiveStock !=null and oneMonthInactiveStock !='' ">
+            oneMonthInactiveStock,
+        </if>
+        <if test="threeMonthInactiveStock !=null and threeMonthInactiveStock !='' ">
+            threeMonthInactiveStock,
+        </if>
+        <if test="nearExpiryRemainingStock !=null and nearExpiryRemainingStock !='' ">
+            nearExpiryRemainingStock,
+        </if>
+        <if test="environmentIdentifier !=null and environmentIdentifier !='' ">
+            environmentIdentifier,
+        </if>
+        <if test="recordStatus !=null and recordStatus !='' ">
+            recordStatus,
+        </if>
+        <if test="creatorId !=null and creatorId !='' ">
+            creatorId,
+        </if>
+        <if test="createTime !=null and createTime !='' ">
+            createTime,
+        </if>
+        <if test="updaterId !=null and updaterId !='' ">
+            updaterId,
+        </if>
+        <if test="updateTime !=null and updateTime !='' ">
+            updateTime,
+        </if>
+        </trim>
+        <trim prefix=" VALUES (" suffix=")" prefixOverrides="," suffixOverrides=",">
+        <if test="chainId !=null and chainId !='' ">
+             #{chainId},
+        </if>
+        <if test="organizationId !=null and organizationId !='' ">
+             #{organizationId},
+        </if>
+        <if test="organizationName !=null and organizationName !='' ">
+             #{organizationName},
+        </if>
+        <if test="storeId !=null and storeId !='' ">
+             #{storeId},
+        </if>
+        <if test="date !=null and date !='' ">
+             #{date},
+        </if>
+        <if test="actualAmount !=null and actualAmount !='' ">
+             #{actualAmount},
+        </if>
+        <if test="salesBudget !=null and salesBudget !='' ">
+             #{salesBudget},
+        </if>
+        <if test="grossProfitBudget !=null and grossProfitBudget !='' ">
+             #{grossProfitBudget},
+        </if>
+        <if test="grossProfitAmount !=null and grossProfitAmount !='' ">
+             #{grossProfitAmount},
+        </if>
+        <if test="grossProfitMargin !=null and grossProfitMargin !='' ">
+             #{grossProfitMargin},
+        </if>
+        <if test="nearExpiryQuantity !=null and nearExpiryQuantity !='' ">
+             #{nearExpiryQuantity},
+        </if>
+        <if test="threeMonthInactiveQuantity !=null and threeMonthInactiveQuantity !='' ">
+             #{threeMonthInactiveQuantity},
+        </if>
+        <if test="customerVisits !=null and customerVisits !='' ">
+             #{customerVisits},
+        </if>
+        <if test="memberSalesAmount !=null and memberSalesAmount !='' ">
+             #{memberSalesAmount},
+        </if>
+        <if test="memberSalesGrossProfit !=null and memberSalesGrossProfit !='' ">
+             #{memberSalesGrossProfit},
+        </if>
+        <if test="memberCustomerCount !=null and memberCustomerCount !='' ">
+             #{memberCustomerCount},
+        </if>
+        <if test="healthSupplements !=null and healthSupplements !='' ">
+             #{healthSupplements},
+        </if>
+        <if test="otc !=null and otc !='' ">
+             #{otc},
+        </if>
+        <if test="others !=null and others !='' ">
+             #{others},
+        </if>
+        <if test="prescription !=null and prescription !='' ">
+             #{prescription},
+        </if>
+        <if test="chineseMedicineAndGinseng !=null and chineseMedicineAndGinseng !='' ">
+             #{chineseMedicineAndGinseng},
+        </if>
+        <if test="chineseAndWesternMedicines !=null and chineseAndWesternMedicines !='' ">
+             #{chineseAndWesternMedicines},
+        </if>
+        <if test="convenienceFood !=null and convenienceFood !='' ">
+             #{convenienceFood},
+        </if>
+        <if test="dailyChemicals !=null and dailyChemicals !='' ">
+             #{dailyChemicals},
+        </if>
+        <if test="servicesAndNonSellableItems !=null and servicesAndNonSellableItems !='' ">
+             #{servicesAndNonSellableItems},
+        </if>
+        <if test="maternityProducts !=null and maternityProducts !='' ">
+             #{maternityProducts},
+        </if>
+        <if test="disinfectionSupplies !=null and disinfectionSupplies !='' ">
+             #{disinfectionSupplies},
+        </if>
+        <if test="categoryA1 !=null and categoryA1 !='' ">
+             #{categoryA1},
+        </if>
+        <if test="categoryA2 !=null and categoryA2 !='' ">
+             #{categoryA2},
+        </if>
+        <if test="categoryA3 !=null and categoryA3 !='' ">
+             #{categoryA3},
+        </if>
+        <if test="categoryA4 !=null and categoryA4 !='' ">
+             #{categoryA4},
+        </if>
+        <if test="categoryAA !=null and categoryAA !='' ">
+             #{categoryAA},
+        </if>
+        <if test="otherMarketingLevels !=null and otherMarketingLevels !='' ">
+             #{otherMarketingLevels},
+        </if>
+        <if test="lowProfit !=null and lowProfit !='' ">
+             #{lowProfit},
+        </if>
+        <if test="marginalProfit !=null and marginalProfit !='' ">
+             #{marginalProfit},
+        </if>
+        <if test="negativeProfit !=null and negativeProfit !='' ">
+             #{negativeProfit},
+        </if>
+        <if test="elimination !=null and elimination !='' ">
+             #{elimination},
+        </if>
+        <if test="oneMonthInactiveStock !=null and oneMonthInactiveStock !='' ">
+             #{oneMonthInactiveStock},
+        </if>
+        <if test="threeMonthInactiveStock !=null and threeMonthInactiveStock !='' ">
+             #{threeMonthInactiveStock},
+        </if>
+        <if test="nearExpiryRemainingStock !=null and nearExpiryRemainingStock !='' ">
+             #{nearExpiryRemainingStock},
+        </if>
+        <if test="environmentIdentifier !=null and environmentIdentifier !='' ">
+             #{environmentIdentifier},
+        </if>
+        <if test="recordStatus !=null and recordStatus !='' ">
+             #{recordStatus},
+        </if>
+        <if test="creatorId !=null and creatorId !='' ">
+             #{creatorId},
+        </if>
+        <if test="createTime !=null and createTime !='' ">
+             #{createTime},
+        </if>
+        <if test="updaterId !=null and updaterId !='' ">
+             #{updaterId},
+        </if>
+        <if test="updateTime !=null and updateTime !='' ">
+             #{updateTime},
+        </if>
+        </trim>
+
+    </insert>
+
+</mapper>

+ 570 - 0
health-system/src/main/resources/mapper/xsgl/SXsglMdlsrbbYgSalesperformanceinfoMapper.xml

@@ -0,0 +1,570 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="SXsglMdlsrbbYgSalesperformanceinfoMapper" >
+    <!-- 通用查询映射结果 -->
+
+    <select id="selectSXsglMdlsrbbYgSalesperformanceinfoList" parameterType="pd" resultType="pd">
+        select * from s_xsgl_mdlsrbb_yg_salesperformanceinfo where 1=1
+        <if test="name !=null and name !='' ">
+            and name = #{name}
+        </if>
+        <if test="salesAmount !=null and salesAmount !='' ">
+            and salesAmount = #{salesAmount}
+        </if>
+        <if test="salesRatio !=null and salesRatio !='' ">
+            and salesRatio = #{salesRatio}
+        </if>
+        <if test="salesTargetAchievement !=null and salesTargetAchievement !='' ">
+            and salesTargetAchievement = #{salesTargetAchievement}
+        </if>
+        <if test="grossProfitAmount !=null and grossProfitAmount !='' ">
+            and grossProfitAmount = #{grossProfitAmount}
+        </if>
+        <if test="grossProfitRatio !=null and grossProfitRatio !='' ">
+            and grossProfitRatio = #{grossProfitRatio}
+        </if>
+        <if test="grossProfitTargetAchievement !=null and grossProfitTargetAchievement !='' ">
+            and grossProfitTargetAchievement = #{grossProfitTargetAchievement}
+        </if>
+        <if test="grossProfitMargin !=null and grossProfitMargin !='' ">
+            and grossProfitMargin = #{grossProfitMargin}
+        </if>
+        <if test="customerVisits !=null and customerVisits !='' ">
+            and customerVisits = #{customerVisits}
+        </if>
+        <if test="customerVisitsRatio !=null and customerVisitsRatio !='' ">
+            and customerVisitsRatio = #{customerVisitsRatio}
+        </if>
+        <if test="averageTransactionValue !=null and averageTransactionValue !='' ">
+            and averageTransactionValue = #{averageTransactionValue}
+        </if>
+        <if test="aaSalesAmount !=null and aaSalesAmount !='' ">
+            and aaSalesAmount = #{aaSalesAmount}
+        </if>
+        <if test="aaSalesRatio !=null and aaSalesRatio !='' ">
+            and aaSalesRatio = #{aaSalesRatio}
+        </if>
+        <if test="aaTargetAchievement !=null and aaTargetAchievement !='' ">
+            and aaTargetAchievement = #{aaTargetAchievement}
+        </if>
+        <if test="a1SalesAmount !=null and a1SalesAmount !='' ">
+            and a1SalesAmount = #{a1SalesAmount}
+        </if>
+        <if test="a1SalesRatio !=null and a1SalesRatio !='' ">
+            and a1SalesRatio = #{a1SalesRatio}
+        </if>
+        <if test="a1TargetAchievement !=null and a1TargetAchievement !='' ">
+            and a1TargetAchievement = #{a1TargetAchievement}
+        </if>
+        <if test="a2SalesAmount !=null and a2SalesAmount !='' ">
+            and a2SalesAmount = #{a2SalesAmount}
+        </if>
+        <if test="lowProfitSalesAmount !=null and lowProfitSalesAmount !='' ">
+            and lowProfitSalesAmount = #{lowProfitSalesAmount}
+        </if>
+        <if test="marginalProfitSalesAmount !=null and marginalProfitSalesAmount !='' ">
+            and marginalProfitSalesAmount = #{marginalProfitSalesAmount}
+        </if>
+        <if test="negativeProfitSalesAmount !=null and negativeProfitSalesAmount !='' ">
+            and negativeProfitSalesAmount = #{negativeProfitSalesAmount}
+        </if>
+        <if test="eliminationSalesAmount !=null and eliminationSalesAmount !='' ">
+            and eliminationSalesAmount = #{eliminationSalesAmount}
+        </if>
+        <if test="a2SalesRatio !=null and a2SalesRatio !='' ">
+            and a2SalesRatio = #{a2SalesRatio}
+        </if>
+        <if test="a3SalesAmount !=null and a3SalesAmount !='' ">
+            and a3SalesAmount = #{a3SalesAmount}
+        </if>
+        <if test="a3SalesRatio !=null and a3SalesRatio !='' ">
+            and a3SalesRatio = #{a3SalesRatio}
+        </if>
+        <if test="a4SalesAmount !=null and a4SalesAmount !='' ">
+            and a4SalesAmount = #{a4SalesAmount}
+        </if>
+        <if test="a4SalesRatio !=null and a4SalesRatio !='' ">
+            and a4SalesRatio = #{a4SalesRatio}
+        </if>
+        <if test="lowProfitSales !=null and lowProfitSales !='' ">
+            and lowProfitSales = #{lowProfitSales}
+        </if>
+        <if test="lowProfitSalesRatio !=null and lowProfitSalesRatio !='' ">
+            and lowProfitSalesRatio = #{lowProfitSalesRatio}
+        </if>
+        <if test="marginalProfitSales !=null and marginalProfitSales !='' ">
+            and marginalProfitSales = #{marginalProfitSales}
+        </if>
+        <if test="marginalProfitSalesRatio !=null and marginalProfitSalesRatio !='' ">
+            and marginalProfitSalesRatio = #{marginalProfitSalesRatio}
+        </if>
+        <if test="negativeProfitSales !=null and negativeProfitSales !='' ">
+            and negativeProfitSales = #{negativeProfitSales}
+        </if>
+        <if test="negativeProfitSalesRatio !=null and negativeProfitSalesRatio !='' ">
+            and negativeProfitSalesRatio = #{negativeProfitSalesRatio}
+        </if>
+        <if test="otherSalesAmount !=null and otherSalesAmount !='' ">
+            and otherSalesAmount = #{otherSalesAmount}
+        </if>
+        <if test="otherSalesRatio !=null and otherSalesRatio !='' ">
+            and otherSalesRatio = #{otherSalesRatio}
+        </if>
+        <if test="expiryProductSales !=null and expiryProductSales !='' ">
+            and expiryProductSales = #{expiryProductSales}
+        </if>
+        <if test="expiryProductSalesRatio !=null and expiryProductSalesRatio !='' ">
+            and expiryProductSalesRatio = #{expiryProductSalesRatio}
+        </if>
+        <if test="expiryProductTargetAchievement !=null and expiryProductTargetAchievement !='' ">
+            and expiryProductTargetAchievement = #{expiryProductTargetAchievement}
+        </if>
+        <if test="eliminationProductSales !=null and eliminationProductSales !='' ">
+            and eliminationProductSales = #{eliminationProductSales}
+        </if>
+        <if test="eliminationProductSalesRatio !=null and eliminationProductSalesRatio !='' ">
+            and eliminationProductSalesRatio = #{eliminationProductSalesRatio}
+        </if>
+        <if test="eliminationProductTargetAchievement !=null and eliminationProductTargetAchievement !='' ">
+            and eliminationProductTargetAchievement = #{eliminationProductTargetAchievement}
+        </if>
+        <if test="inactiveProductSales !=null and inactiveProductSales !='' ">
+            and inactiveProductSales = #{inactiveProductSales}
+        </if>
+        <if test="inactiveProductSalesRatio !=null and inactiveProductSalesRatio !='' ">
+            and inactiveProductSalesRatio = #{inactiveProductSalesRatio}
+        </if>
+        <if test="inactiveProductTargetAchievement !=null and inactiveProductTargetAchievement !='' ">
+            and inactiveProductTargetAchievement = #{inactiveProductTargetAchievement}
+        </if>
+    </select>
+
+
+    <update id="updateSXsglMdlsrbbYgSalesperformanceinfo" parameterType="pd" >
+        update s_xsgl_mdlsrbb_yg_salesperformanceinfo
+        <trim prefix=" SET " suffix="" prefixOverrides="," suffixOverrides=",">
+        <if test="name !=null and name !='' ">
+            name = #{name},
+        </if>
+        <if test="salesAmount !=null and salesAmount !='' ">
+            salesAmount = #{salesAmount},
+        </if>
+        <if test="salesRatio !=null and salesRatio !='' ">
+            salesRatio = #{salesRatio},
+        </if>
+        <if test="salesTargetAchievement !=null and salesTargetAchievement !='' ">
+            salesTargetAchievement = #{salesTargetAchievement},
+        </if>
+        <if test="grossProfitAmount !=null and grossProfitAmount !='' ">
+            grossProfitAmount = #{grossProfitAmount},
+        </if>
+        <if test="grossProfitRatio !=null and grossProfitRatio !='' ">
+            grossProfitRatio = #{grossProfitRatio},
+        </if>
+        <if test="grossProfitTargetAchievement !=null and grossProfitTargetAchievement !='' ">
+            grossProfitTargetAchievement = #{grossProfitTargetAchievement},
+        </if>
+        <if test="grossProfitMargin !=null and grossProfitMargin !='' ">
+            grossProfitMargin = #{grossProfitMargin},
+        </if>
+        <if test="customerVisits !=null and customerVisits !='' ">
+            customerVisits = #{customerVisits},
+        </if>
+        <if test="customerVisitsRatio !=null and customerVisitsRatio !='' ">
+            customerVisitsRatio = #{customerVisitsRatio},
+        </if>
+        <if test="averageTransactionValue !=null and averageTransactionValue !='' ">
+            averageTransactionValue = #{averageTransactionValue},
+        </if>
+        <if test="aaSalesAmount !=null and aaSalesAmount !='' ">
+            aaSalesAmount = #{aaSalesAmount},
+        </if>
+        <if test="aaSalesRatio !=null and aaSalesRatio !='' ">
+            aaSalesRatio = #{aaSalesRatio},
+        </if>
+        <if test="aaTargetAchievement !=null and aaTargetAchievement !='' ">
+            aaTargetAchievement = #{aaTargetAchievement},
+        </if>
+        <if test="a1SalesAmount !=null and a1SalesAmount !='' ">
+            a1SalesAmount = #{a1SalesAmount},
+        </if>
+        <if test="a1SalesRatio !=null and a1SalesRatio !='' ">
+            a1SalesRatio = #{a1SalesRatio},
+        </if>
+        <if test="a1TargetAchievement !=null and a1TargetAchievement !='' ">
+            a1TargetAchievement = #{a1TargetAchievement},
+        </if>
+        <if test="a2SalesAmount !=null and a2SalesAmount !='' ">
+            a2SalesAmount = #{a2SalesAmount},
+        </if>
+        <if test="lowProfitSalesAmount !=null and lowProfitSalesAmount !='' ">
+            lowProfitSalesAmount = #{lowProfitSalesAmount},
+        </if>
+        <if test="marginalProfitSalesAmount !=null and marginalProfitSalesAmount !='' ">
+            marginalProfitSalesAmount = #{marginalProfitSalesAmount},
+        </if>
+        <if test="negativeProfitSalesAmount !=null and negativeProfitSalesAmount !='' ">
+            negativeProfitSalesAmount = #{negativeProfitSalesAmount},
+        </if>
+        <if test="eliminationSalesAmount !=null and eliminationSalesAmount !='' ">
+            eliminationSalesAmount = #{eliminationSalesAmount},
+        </if>
+        <if test="a2SalesRatio !=null and a2SalesRatio !='' ">
+            a2SalesRatio = #{a2SalesRatio},
+        </if>
+        <if test="a3SalesAmount !=null and a3SalesAmount !='' ">
+            a3SalesAmount = #{a3SalesAmount},
+        </if>
+        <if test="a3SalesRatio !=null and a3SalesRatio !='' ">
+            a3SalesRatio = #{a3SalesRatio},
+        </if>
+        <if test="a4SalesAmount !=null and a4SalesAmount !='' ">
+            a4SalesAmount = #{a4SalesAmount},
+        </if>
+        <if test="a4SalesRatio !=null and a4SalesRatio !='' ">
+            a4SalesRatio = #{a4SalesRatio},
+        </if>
+        <if test="lowProfitSales !=null and lowProfitSales !='' ">
+            lowProfitSales = #{lowProfitSales},
+        </if>
+        <if test="lowProfitSalesRatio !=null and lowProfitSalesRatio !='' ">
+            lowProfitSalesRatio = #{lowProfitSalesRatio},
+        </if>
+        <if test="marginalProfitSales !=null and marginalProfitSales !='' ">
+            marginalProfitSales = #{marginalProfitSales},
+        </if>
+        <if test="marginalProfitSalesRatio !=null and marginalProfitSalesRatio !='' ">
+            marginalProfitSalesRatio = #{marginalProfitSalesRatio},
+        </if>
+        <if test="negativeProfitSales !=null and negativeProfitSales !='' ">
+            negativeProfitSales = #{negativeProfitSales},
+        </if>
+        <if test="negativeProfitSalesRatio !=null and negativeProfitSalesRatio !='' ">
+            negativeProfitSalesRatio = #{negativeProfitSalesRatio},
+        </if>
+        <if test="otherSalesAmount !=null and otherSalesAmount !='' ">
+            otherSalesAmount = #{otherSalesAmount},
+        </if>
+        <if test="otherSalesRatio !=null and otherSalesRatio !='' ">
+            otherSalesRatio = #{otherSalesRatio},
+        </if>
+        <if test="expiryProductSales !=null and expiryProductSales !='' ">
+            expiryProductSales = #{expiryProductSales},
+        </if>
+        <if test="expiryProductSalesRatio !=null and expiryProductSalesRatio !='' ">
+            expiryProductSalesRatio = #{expiryProductSalesRatio},
+        </if>
+        <if test="expiryProductTargetAchievement !=null and expiryProductTargetAchievement !='' ">
+            expiryProductTargetAchievement = #{expiryProductTargetAchievement},
+        </if>
+        <if test="eliminationProductSales !=null and eliminationProductSales !='' ">
+            eliminationProductSales = #{eliminationProductSales},
+        </if>
+        <if test="eliminationProductSalesRatio !=null and eliminationProductSalesRatio !='' ">
+            eliminationProductSalesRatio = #{eliminationProductSalesRatio},
+        </if>
+        <if test="eliminationProductTargetAchievement !=null and eliminationProductTargetAchievement !='' ">
+            eliminationProductTargetAchievement = #{eliminationProductTargetAchievement},
+        </if>
+        <if test="inactiveProductSales !=null and inactiveProductSales !='' ">
+            inactiveProductSales = #{inactiveProductSales},
+        </if>
+        <if test="inactiveProductSalesRatio !=null and inactiveProductSalesRatio !='' ">
+            inactiveProductSalesRatio = #{inactiveProductSalesRatio},
+        </if>
+        <if test="inactiveProductTargetAchievement !=null and inactiveProductTargetAchievement !='' ">
+            inactiveProductTargetAchievement = #{inactiveProductTargetAchievement},
+        </if>
+        </trim>
+        <if test="up != null and up!=''">
+            <if test="id != null and id!=''">
+                where id=#{id}
+            </if>
+        </if>
+    </update>
+
+    <delete id="SXsglMdlsrbbYgSalesperformanceinfoRemove" parameterType="pd">
+        <if test="ids != null">
+            delete from s_xsgl_mdlsrbb_yg_salesperformanceinfo where
+            <if test="ids != null">
+                id in(${ids})
+            </if>
+        </if>
+    </delete>
+
+    <insert id="addSXsglMdlsrbbYgSalesperformanceinfo" parameterType="pd" >
+
+        insert into s_xsgl_mdlsrbb_yg_salesperformanceinfo
+        <trim prefix="(" suffix=")" prefixOverrides="," suffixOverrides=",">
+
+        <if test="name !=null and name !='' ">
+            name,
+        </if>
+        <if test="salesAmount !=null and salesAmount !='' ">
+            salesAmount,
+        </if>
+        <if test="salesRatio !=null and salesRatio !='' ">
+            salesRatio,
+        </if>
+        <if test="salesTargetAchievement !=null and salesTargetAchievement !='' ">
+            salesTargetAchievement,
+        </if>
+        <if test="grossProfitAmount !=null and grossProfitAmount !='' ">
+            grossProfitAmount,
+        </if>
+        <if test="grossProfitRatio !=null and grossProfitRatio !='' ">
+            grossProfitRatio,
+        </if>
+        <if test="grossProfitTargetAchievement !=null and grossProfitTargetAchievement !='' ">
+            grossProfitTargetAchievement,
+        </if>
+        <if test="grossProfitMargin !=null and grossProfitMargin !='' ">
+            grossProfitMargin,
+        </if>
+        <if test="customerVisits !=null and customerVisits !='' ">
+            customerVisits,
+        </if>
+        <if test="customerVisitsRatio !=null and customerVisitsRatio !='' ">
+            customerVisitsRatio,
+        </if>
+        <if test="averageTransactionValue !=null and averageTransactionValue !='' ">
+            averageTransactionValue,
+        </if>
+        <if test="aaSalesAmount !=null and aaSalesAmount !='' ">
+            aaSalesAmount,
+        </if>
+        <if test="aaSalesRatio !=null and aaSalesRatio !='' ">
+            aaSalesRatio,
+        </if>
+        <if test="aaTargetAchievement !=null and aaTargetAchievement !='' ">
+            aaTargetAchievement,
+        </if>
+        <if test="a1SalesAmount !=null and a1SalesAmount !='' ">
+            a1SalesAmount,
+        </if>
+        <if test="a1SalesRatio !=null and a1SalesRatio !='' ">
+            a1SalesRatio,
+        </if>
+        <if test="a1TargetAchievement !=null and a1TargetAchievement !='' ">
+            a1TargetAchievement,
+        </if>
+        <if test="a2SalesAmount !=null and a2SalesAmount !='' ">
+            a2SalesAmount,
+        </if>
+        <if test="lowProfitSalesAmount !=null and lowProfitSalesAmount !='' ">
+            lowProfitSalesAmount,
+        </if>
+        <if test="marginalProfitSalesAmount !=null and marginalProfitSalesAmount !='' ">
+            marginalProfitSalesAmount,
+        </if>
+        <if test="negativeProfitSalesAmount !=null and negativeProfitSalesAmount !='' ">
+            negativeProfitSalesAmount,
+        </if>
+        <if test="eliminationSalesAmount !=null and eliminationSalesAmount !='' ">
+            eliminationSalesAmount,
+        </if>
+        <if test="a2SalesRatio !=null and a2SalesRatio !='' ">
+            a2SalesRatio,
+        </if>
+        <if test="a3SalesAmount !=null and a3SalesAmount !='' ">
+            a3SalesAmount,
+        </if>
+        <if test="a3SalesRatio !=null and a3SalesRatio !='' ">
+            a3SalesRatio,
+        </if>
+        <if test="a4SalesAmount !=null and a4SalesAmount !='' ">
+            a4SalesAmount,
+        </if>
+        <if test="a4SalesRatio !=null and a4SalesRatio !='' ">
+            a4SalesRatio,
+        </if>
+        <if test="lowProfitSales !=null and lowProfitSales !='' ">
+            lowProfitSales,
+        </if>
+        <if test="lowProfitSalesRatio !=null and lowProfitSalesRatio !='' ">
+            lowProfitSalesRatio,
+        </if>
+        <if test="marginalProfitSales !=null and marginalProfitSales !='' ">
+            marginalProfitSales,
+        </if>
+        <if test="marginalProfitSalesRatio !=null and marginalProfitSalesRatio !='' ">
+            marginalProfitSalesRatio,
+        </if>
+        <if test="negativeProfitSales !=null and negativeProfitSales !='' ">
+            negativeProfitSales,
+        </if>
+        <if test="negativeProfitSalesRatio !=null and negativeProfitSalesRatio !='' ">
+            negativeProfitSalesRatio,
+        </if>
+        <if test="otherSalesAmount !=null and otherSalesAmount !='' ">
+            otherSalesAmount,
+        </if>
+        <if test="otherSalesRatio !=null and otherSalesRatio !='' ">
+            otherSalesRatio,
+        </if>
+        <if test="expiryProductSales !=null and expiryProductSales !='' ">
+            expiryProductSales,
+        </if>
+        <if test="expiryProductSalesRatio !=null and expiryProductSalesRatio !='' ">
+            expiryProductSalesRatio,
+        </if>
+        <if test="expiryProductTargetAchievement !=null and expiryProductTargetAchievement !='' ">
+            expiryProductTargetAchievement,
+        </if>
+        <if test="eliminationProductSales !=null and eliminationProductSales !='' ">
+            eliminationProductSales,
+        </if>
+        <if test="eliminationProductSalesRatio !=null and eliminationProductSalesRatio !='' ">
+            eliminationProductSalesRatio,
+        </if>
+        <if test="eliminationProductTargetAchievement !=null and eliminationProductTargetAchievement !='' ">
+            eliminationProductTargetAchievement,
+        </if>
+        <if test="inactiveProductSales !=null and inactiveProductSales !='' ">
+            inactiveProductSales,
+        </if>
+        <if test="inactiveProductSalesRatio !=null and inactiveProductSalesRatio !='' ">
+            inactiveProductSalesRatio,
+        </if>
+        <if test="inactiveProductTargetAchievement !=null and inactiveProductTargetAchievement !='' ">
+            inactiveProductTargetAchievement,
+        </if>
+        </trim>
+        <trim prefix=" VALUES (" suffix=")" prefixOverrides="," suffixOverrides=",">
+        <if test="name !=null and name !='' ">
+             #{name},
+        </if>
+        <if test="salesAmount !=null and salesAmount !='' ">
+             #{salesAmount},
+        </if>
+        <if test="salesRatio !=null and salesRatio !='' ">
+             #{salesRatio},
+        </if>
+        <if test="salesTargetAchievement !=null and salesTargetAchievement !='' ">
+             #{salesTargetAchievement},
+        </if>
+        <if test="grossProfitAmount !=null and grossProfitAmount !='' ">
+             #{grossProfitAmount},
+        </if>
+        <if test="grossProfitRatio !=null and grossProfitRatio !='' ">
+             #{grossProfitRatio},
+        </if>
+        <if test="grossProfitTargetAchievement !=null and grossProfitTargetAchievement !='' ">
+             #{grossProfitTargetAchievement},
+        </if>
+        <if test="grossProfitMargin !=null and grossProfitMargin !='' ">
+             #{grossProfitMargin},
+        </if>
+        <if test="customerVisits !=null and customerVisits !='' ">
+             #{customerVisits},
+        </if>
+        <if test="customerVisitsRatio !=null and customerVisitsRatio !='' ">
+             #{customerVisitsRatio},
+        </if>
+        <if test="averageTransactionValue !=null and averageTransactionValue !='' ">
+             #{averageTransactionValue},
+        </if>
+        <if test="aaSalesAmount !=null and aaSalesAmount !='' ">
+             #{aaSalesAmount},
+        </if>
+        <if test="aaSalesRatio !=null and aaSalesRatio !='' ">
+             #{aaSalesRatio},
+        </if>
+        <if test="aaTargetAchievement !=null and aaTargetAchievement !='' ">
+             #{aaTargetAchievement},
+        </if>
+        <if test="a1SalesAmount !=null and a1SalesAmount !='' ">
+             #{a1SalesAmount},
+        </if>
+        <if test="a1SalesRatio !=null and a1SalesRatio !='' ">
+             #{a1SalesRatio},
+        </if>
+        <if test="a1TargetAchievement !=null and a1TargetAchievement !='' ">
+             #{a1TargetAchievement},
+        </if>
+        <if test="a2SalesAmount !=null and a2SalesAmount !='' ">
+             #{a2SalesAmount},
+        </if>
+        <if test="lowProfitSalesAmount !=null and lowProfitSalesAmount !='' ">
+             #{lowProfitSalesAmount},
+        </if>
+        <if test="marginalProfitSalesAmount !=null and marginalProfitSalesAmount !='' ">
+             #{marginalProfitSalesAmount},
+        </if>
+        <if test="negativeProfitSalesAmount !=null and negativeProfitSalesAmount !='' ">
+             #{negativeProfitSalesAmount},
+        </if>
+        <if test="eliminationSalesAmount !=null and eliminationSalesAmount !='' ">
+             #{eliminationSalesAmount},
+        </if>
+        <if test="a2SalesRatio !=null and a2SalesRatio !='' ">
+             #{a2SalesRatio},
+        </if>
+        <if test="a3SalesAmount !=null and a3SalesAmount !='' ">
+             #{a3SalesAmount},
+        </if>
+        <if test="a3SalesRatio !=null and a3SalesRatio !='' ">
+             #{a3SalesRatio},
+        </if>
+        <if test="a4SalesAmount !=null and a4SalesAmount !='' ">
+             #{a4SalesAmount},
+        </if>
+        <if test="a4SalesRatio !=null and a4SalesRatio !='' ">
+             #{a4SalesRatio},
+        </if>
+        <if test="lowProfitSales !=null and lowProfitSales !='' ">
+             #{lowProfitSales},
+        </if>
+        <if test="lowProfitSalesRatio !=null and lowProfitSalesRatio !='' ">
+             #{lowProfitSalesRatio},
+        </if>
+        <if test="marginalProfitSales !=null and marginalProfitSales !='' ">
+             #{marginalProfitSales},
+        </if>
+        <if test="marginalProfitSalesRatio !=null and marginalProfitSalesRatio !='' ">
+             #{marginalProfitSalesRatio},
+        </if>
+        <if test="negativeProfitSales !=null and negativeProfitSales !='' ">
+             #{negativeProfitSales},
+        </if>
+        <if test="negativeProfitSalesRatio !=null and negativeProfitSalesRatio !='' ">
+             #{negativeProfitSalesRatio},
+        </if>
+        <if test="otherSalesAmount !=null and otherSalesAmount !='' ">
+             #{otherSalesAmount},
+        </if>
+        <if test="otherSalesRatio !=null and otherSalesRatio !='' ">
+             #{otherSalesRatio},
+        </if>
+        <if test="expiryProductSales !=null and expiryProductSales !='' ">
+             #{expiryProductSales},
+        </if>
+        <if test="expiryProductSalesRatio !=null and expiryProductSalesRatio !='' ">
+             #{expiryProductSalesRatio},
+        </if>
+        <if test="expiryProductTargetAchievement !=null and expiryProductTargetAchievement !='' ">
+             #{expiryProductTargetAchievement},
+        </if>
+        <if test="eliminationProductSales !=null and eliminationProductSales !='' ">
+             #{eliminationProductSales},
+        </if>
+        <if test="eliminationProductSalesRatio !=null and eliminationProductSalesRatio !='' ">
+             #{eliminationProductSalesRatio},
+        </if>
+        <if test="eliminationProductTargetAchievement !=null and eliminationProductTargetAchievement !='' ">
+             #{eliminationProductTargetAchievement},
+        </if>
+        <if test="inactiveProductSales !=null and inactiveProductSales !='' ">
+             #{inactiveProductSales},
+        </if>
+        <if test="inactiveProductSalesRatio !=null and inactiveProductSalesRatio !='' ">
+             #{inactiveProductSalesRatio},
+        </if>
+        <if test="inactiveProductTargetAchievement !=null and inactiveProductTargetAchievement !='' ">
+             #{inactiveProductTargetAchievement},
+        </if>
+        </trim>
+
+    </insert>
+
+</mapper>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно