Kaynağa Gözat

外观指标,物料指标节点,销售订单相关接口,质量检验相关接口

xuezizhuo 1 yıl önce
ebeveyn
işleme
37059d0983
33 değiştirilmiş dosya ile 4468 ekleme ve 0 silme
  1. 113 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/InspectionListController.java
  2. 113 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/InspectionListInfoController.java
  3. 113 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleCraftController.java
  4. 122 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleOrderController.java
  5. 113 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleProductsController.java
  6. 198 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/InspectionList.java
  7. 195 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/InspectionListInfo.java
  8. 251 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleCraft.java
  9. 407 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleOrder.java
  10. 307 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleProducts.java
  11. 353 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/vo/SaleOrderVO.java
  12. 75 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/InspectionListInfoMapper.java
  13. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/InspectionListMapper.java
  14. 69 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SaleCraftMapper.java
  15. 69 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SaleOrderMapper.java
  16. 68 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SaleProductsMapper.java
  17. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/IInspectionListInfoService.java
  18. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/IInspectionListService.java
  19. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/ISaleCraftService.java
  20. 69 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/ISaleOrderService.java
  21. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/ISaleProductsService.java
  22. 96 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/InspectionListInfoServiceImpl.java
  23. 155 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/InspectionListServiceImpl.java
  24. 96 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleCraftServiceImpl.java
  25. 158 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleOrderServiceImpl.java
  26. 96 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleProductsServiceImpl.java
  27. 134 0
      zkqy-custom-business/src/main/resources/mapper/business/InspectionListInfoMapper.xml
  28. 110 0
      zkqy-custom-business/src/main/resources/mapper/business/InspectionListMapper.xml
  29. 152 0
      zkqy-custom-business/src/main/resources/mapper/business/SaleCraftMapper.xml
  30. 206 0
      zkqy-custom-business/src/main/resources/mapper/business/SaleOrderMapper.xml
  31. 169 0
      zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml
  32. 79 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/chemicalfiber/AppearanceIndex.java
  33. 77 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/chemicalfiber/PhysicalIndex.java

+ 113 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/InspectionListController.java

@@ -0,0 +1,113 @@
+package com.zkqy.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zkqy.common.annotation.Log;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
+import com.zkqy.business.domain.InspectionList;
+import com.zkqy.business.service.IInspectionListService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 检验单Controller
+ *
+ * @author zkqy
+ * @date 2024-03-15
+ */
+@RestController
+@RequestMapping("/system/inspectionList")
+@Api(value = "/system/list", description = "检验单-接口")
+public class InspectionListController extends BaseController
+{
+    @Autowired
+    private IInspectionListService inspectionListService;
+
+/**
+ * 查询检验单列表
+ */
+@PreAuthorize("@ss.hasPermi('system:list:list')")
+@GetMapping("/list")
+@ApiOperation(value = "查询检验单列表")
+    public TableDataInfo list(InspectionList inspectionList)
+    {
+        startPage();
+        List<InspectionList> list = inspectionListService.selectInspectionListList(inspectionList);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出检验单列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:list:export')")
+    @Log(title = "检验单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出检验单列表")
+    public void export(HttpServletResponse response, InspectionList inspectionList)
+    {
+        List<InspectionList> list = inspectionListService.selectInspectionListList(inspectionList);
+        ExcelUtil<InspectionList> util = new ExcelUtil<InspectionList>(InspectionList.class);
+        util.exportExcel(response, list, "检验单数据");
+    }
+
+    /**
+     * 获取检验单详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:list:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取检验单详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(inspectionListService.selectInspectionListById(id));
+    }
+
+    /**
+     * 新增检验单
+     */
+    @PreAuthorize("@ss.hasPermi('system:list:add')")
+    @Log(title = "检验单", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "新增检验单")
+    public AjaxResult add(@RequestBody InspectionList inspectionList)
+    {
+        return toAjax(inspectionListService.insertInspectionList(inspectionList));
+    }
+
+    /**
+     * 修改检验单
+     */
+    @PreAuthorize("@ss.hasPermi('system:list:edit')")
+    @Log(title = "检验单", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation(value = "修改检验单")
+    public AjaxResult edit(@RequestBody InspectionList inspectionList)
+    {
+        return toAjax(inspectionListService.updateInspectionList(inspectionList));
+    }
+
+    /**
+     * 删除检验单
+     */
+    @PreAuthorize("@ss.hasPermi('system:list:remove')")
+    @Log(title = "检验单", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除检验单")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(inspectionListService.deleteInspectionListByIds(ids));
+    }
+}

+ 113 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/InspectionListInfoController.java

@@ -0,0 +1,113 @@
+package com.zkqy.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zkqy.common.annotation.Log;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
+import com.zkqy.business.domain.InspectionListInfo;
+import com.zkqy.business.service.IInspectionListInfoService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 检验单详情Controller
+ *
+ * @author zkqy
+ * @date 2024-03-15
+ */
+@RestController
+@RequestMapping("/system/inspectionListInfo")
+@Api(value = "/system/info", description = "检验单详情-接口")
+public class InspectionListInfoController extends BaseController
+{
+    @Autowired
+    private IInspectionListInfoService inspectionListInfoService;
+
+/**
+ * 查询检验单详情列表
+ */
+    @PreAuthorize("@ss.hasPermi('system:info:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "查询检验单详情列表")
+    public TableDataInfo list(InspectionListInfo inspectionListInfo)
+    {
+        startPage();
+        List<InspectionListInfo> list = inspectionListInfoService.selectInspectionListInfoList(inspectionListInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出检验单详情列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:info:export')")
+    @Log(title = "检验单详情", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出检验单详情列表")
+    public void export(HttpServletResponse response, InspectionListInfo inspectionListInfo)
+    {
+        List<InspectionListInfo> list = inspectionListInfoService.selectInspectionListInfoList(inspectionListInfo);
+        ExcelUtil<InspectionListInfo> util = new ExcelUtil<InspectionListInfo>(InspectionListInfo.class);
+        util.exportExcel(response, list, "检验单详情数据");
+    }
+
+    /**
+     * 获取检验单详情详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:info:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取检验单详情详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(inspectionListInfoService.selectInspectionListInfoById(id));
+    }
+
+    /**
+     * 新增检验单详情
+     */
+    @PreAuthorize("@ss.hasPermi('system:info:add')")
+    @Log(title = "检验单详情", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "新增检验单详情")
+    public AjaxResult add(@RequestBody InspectionListInfo inspectionListInfo)
+    {
+        return toAjax(inspectionListInfoService.insertInspectionListInfo(inspectionListInfo));
+    }
+
+    /**
+     * 修改检验单详情
+     */
+    @PreAuthorize("@ss.hasPermi('system:info:edit')")
+    @Log(title = "检验单详情", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation(value = "修改检验单详情")
+    public AjaxResult edit(@RequestBody InspectionListInfo inspectionListInfo)
+    {
+        return toAjax(inspectionListInfoService.updateInspectionListInfo(inspectionListInfo));
+    }
+
+    /**
+     * 删除检验单详情
+     */
+    @PreAuthorize("@ss.hasPermi('system:info:remove')")
+    @Log(title = "检验单详情", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除检验单详情")
+    public AjaxResult remove(@PathVariable List<Long> ids)
+    {
+        return toAjax(inspectionListInfoService.deleteInspectionListInfoByIds(ids));
+    }
+}

+ 113 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleCraftController.java

@@ -0,0 +1,113 @@
+package com.zkqy.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zkqy.common.annotation.Log;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
+import com.zkqy.business.domain.SaleCraft;
+import com.zkqy.business.service.ISaleCraftService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 销售工艺要求Controller
+ *
+ * @author zkqy
+ * @date 2024-03-14
+ */
+@RestController
+@RequestMapping("/system/craft")
+@Api(value = "/system/craft", description = "销售工艺要求-接口")
+public class SaleCraftController extends BaseController
+{
+    @Autowired
+    private ISaleCraftService saleCraftService;
+
+/**
+ * 查询销售工艺要求列表
+ */
+@PreAuthorize("@ss.hasPermi('system:craft:list')")
+@GetMapping("/list")
+@ApiOperation(value = "查询销售工艺要求列表")
+    public TableDataInfo list(SaleCraft saleCraft)
+    {
+        startPage();
+        List<SaleCraft> list = saleCraftService.selectSaleCraftList(saleCraft);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出销售工艺要求列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:craft:export')")
+    @Log(title = "销售工艺要求", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出销售工艺要求列表")
+    public void export(HttpServletResponse response, SaleCraft saleCraft)
+    {
+        List<SaleCraft> list = saleCraftService.selectSaleCraftList(saleCraft);
+        ExcelUtil<SaleCraft> util = new ExcelUtil<SaleCraft>(SaleCraft.class);
+        util.exportExcel(response, list, "销售工艺要求数据");
+    }
+
+    /**
+     * 获取销售工艺要求详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:craft:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取销售工艺要求详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(saleCraftService.selectSaleCraftById(id));
+    }
+
+    /**
+     * 新增销售工艺要求
+     */
+    @PreAuthorize("@ss.hasPermi('system:craft:add')")
+    @Log(title = "销售工艺要求", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "新增销售工艺要求")
+    public AjaxResult add(@RequestBody SaleCraft saleCraft)
+    {
+        return toAjax(saleCraftService.insertSaleCraft(saleCraft));
+    }
+
+    /**
+     * 修改销售工艺要求
+     */
+    @PreAuthorize("@ss.hasPermi('system:craft:edit')")
+    @Log(title = "销售工艺要求", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation(value = "修改销售工艺要求")
+    public AjaxResult edit(@RequestBody SaleCraft saleCraft)
+    {
+        return toAjax(saleCraftService.updateSaleCraft(saleCraft));
+    }
+
+    /**
+     * 删除销售工艺要求
+     */
+    @PreAuthorize("@ss.hasPermi('system:craft:remove')")
+    @Log(title = "销售工艺要求", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除销售工艺要求")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(saleCraftService.deleteSaleCraftByIds(ids));
+    }
+}

+ 122 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleOrderController.java

@@ -0,0 +1,122 @@
+package com.zkqy.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zkqy.business.domain.vo.SaleOrderVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.zkqy.common.annotation.Log;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
+import com.zkqy.business.domain.SaleOrder;
+import com.zkqy.business.service.ISaleOrderService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 销售订单Controller
+ *
+ * @author zkqy
+ * @date 2024-03-14
+ */
+@RestController
+@RequestMapping("/system/order")
+@Api(value = "/system/order", description = "销售订单-接口")
+public class SaleOrderController extends BaseController
+{
+    @Autowired
+    private ISaleOrderService saleOrderService;
+
+/**
+ * 查询销售订单列表
+ */
+@PreAuthorize("@ss.hasPermi('system:order:list')")
+@GetMapping("/list")
+@ApiOperation(value = "查询销售订单列表")
+    public TableDataInfo list(SaleOrder saleOrder)
+    {
+        startPage();
+        List<SaleOrder> list = saleOrderService.selectSaleOrderList(saleOrder);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出销售订单列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:order:export')")
+    @Log(title = "销售订单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出销售订单列表")
+    public void export(HttpServletResponse response, SaleOrder saleOrder)
+    {
+        List<SaleOrder> list = saleOrderService.selectSaleOrderList(saleOrder);
+        ExcelUtil<SaleOrder> util = new ExcelUtil<SaleOrder>(SaleOrder.class);
+        util.exportExcel(response, list, "销售订单数据");
+    }
+
+    /**
+     * 获取销售订单详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:order:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取销售订单详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(saleOrderService.selectSaleOrderById(id));
+    }
+
+    /**
+     * 新增销售订单
+     */
+    @PreAuthorize("@ss.hasPermi('system:order:add')")
+    @Log(title = "销售订单", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "新增销售订单")
+    public AjaxResult add(@RequestBody SaleOrder saleOrder)
+    {
+        return toAjax(saleOrderService.insertSaleOrder(saleOrder));
+    }
+
+//    /**
+//     * 修改销售订单
+//     */
+//    @PreAuthorize("@ss.hasPermi('system:order:edit')")
+//    @Log(title = "销售订单", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    @ApiOperation(value = "修改销售订单")
+//    public AjaxResult edit(@RequestBody SaleOrderVO vo)
+//    {
+//        return toAjax(saleOrderService.updateSaleOrder(vo));
+//    }
+
+    /**
+     * 删除销售订单
+     */
+    @PreAuthorize("@ss.hasPermi('system:order:remove')")
+    @Log(title = "销售订单", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除销售订单")
+    public AjaxResult remove(@PathVariable List<Long> ids)
+    {
+        saleOrderService.deleteSaleOrderByIds(ids);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 销售单合同号校验
+     */
+    @GetMapping(value = "/checkContractNo")
+    @ApiOperation(value = "销售单合同号校验")
+    public AjaxResult checkContractNo(@RequestParam(required = false) Long id,@RequestParam String saleNo)
+    {
+        return AjaxResult.success(saleOrderService.checkContractNo(id,saleNo));
+    }
+
+
+
+}

+ 113 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleProductsController.java

@@ -0,0 +1,113 @@
+package com.zkqy.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zkqy.common.annotation.Log;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
+import com.zkqy.business.domain.SaleProducts;
+import com.zkqy.business.service.ISaleProductsService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 销售产品Controller
+ *
+ * @author zkqy
+ * @date 2024-03-14
+ */
+@RestController
+@RequestMapping("/system/products")
+@Api(value = "/system/products", description = "销售产品-接口")
+public class SaleProductsController extends BaseController
+{
+    @Autowired
+    private ISaleProductsService saleProductsService;
+
+/**
+ * 查询销售产品列表
+ */
+@PreAuthorize("@ss.hasPermi('system:products:list')")
+@GetMapping("/list")
+@ApiOperation(value = "查询销售产品列表")
+    public TableDataInfo list(SaleProducts saleProducts)
+    {
+        startPage();
+        List<SaleProducts> list = saleProductsService.selectSaleProductsList(saleProducts);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出销售产品列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:products:export')")
+    @Log(title = "销售产品", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出销售产品列表")
+    public void export(HttpServletResponse response, SaleProducts saleProducts)
+    {
+        List<SaleProducts> list = saleProductsService.selectSaleProductsList(saleProducts);
+        ExcelUtil<SaleProducts> util = new ExcelUtil<SaleProducts>(SaleProducts.class);
+        util.exportExcel(response, list, "销售产品数据");
+    }
+
+    /**
+     * 获取销售产品详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:products:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取销售产品详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(saleProductsService.selectSaleProductsById(id));
+    }
+
+    /**
+     * 新增销售产品
+     */
+    @PreAuthorize("@ss.hasPermi('system:products:add')")
+    @Log(title = "销售产品", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "新增销售产品")
+    public AjaxResult add(@RequestBody SaleProducts saleProducts)
+    {
+        return toAjax(saleProductsService.insertSaleProducts(saleProducts));
+    }
+
+    /**
+     * 修改销售产品
+     */
+    @PreAuthorize("@ss.hasPermi('system:products:edit')")
+    @Log(title = "销售产品", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation(value = "修改销售产品")
+    public AjaxResult edit(@RequestBody SaleProducts saleProducts)
+    {
+        return toAjax(saleProductsService.updateSaleProducts(saleProducts));
+    }
+
+    /**
+     * 删除销售产品
+     */
+    @PreAuthorize("@ss.hasPermi('system:products:remove')")
+    @Log(title = "销售产品", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除销售产品")
+    public AjaxResult remove(@PathVariable List<Long> ids)
+    {
+        return toAjax(saleProductsService.deleteSaleProductsByIds(ids));
+    }
+}

+ 198 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/InspectionList.java

@@ -0,0 +1,198 @@
+package com.zkqy.business.domain;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+
+/**
+ * 检验单对象 inspection_list
+ * 
+ * @author zkqy
+ * @date 2024-03-15
+ */
+public class InspectionList extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    private Long id;
+
+    /** 检验单编号 */
+    @Excel(name = "检验单编号")
+    private String inspectionListNo;
+
+    /** 销售产品编号 */
+    @Excel(name = "销售产品编号")
+    private String saleProductNo;
+
+    /** 检验时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "检验时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date inspectionTime;
+
+    /** 检验人员 */
+    @Excel(name = "检验人员")
+    private String inspectionPersonnel;
+
+    /** 创建者id */
+    @Excel(name = "创建者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 任务编码 */
+    @Excel(name = "任务编码")
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    @Excel(name = "任务节点编码")
+    private String taskNodeKey;
+
+    /** 指标类型(1:物理指标;2:外观指标) */
+    @Excel(name = "指标类型", readConverterExp = "1=:物理指标;2:外观指标")
+    private String indexType;
+
+    /** 检验单详情 */
+    private List<InspectionListInfo> inspectionListInfoList;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setInspectionListNo(String inspectionListNo) 
+    {
+        this.inspectionListNo = inspectionListNo;
+    }
+
+    public String getInspectionListNo() 
+    {
+        return inspectionListNo;
+    }
+    public void setSaleProductNo(String saleProductNo) 
+    {
+        this.saleProductNo = saleProductNo;
+    }
+
+    public String getSaleProductNo() 
+    {
+        return saleProductNo;
+    }
+    public void setInspectionTime(Date inspectionTime) 
+    {
+        this.inspectionTime = inspectionTime;
+    }
+
+    public Date getInspectionTime() 
+    {
+        return inspectionTime;
+    }
+    public void setInspectionPersonnel(String inspectionPersonnel) 
+    {
+        this.inspectionPersonnel = inspectionPersonnel;
+    }
+
+    public String getInspectionPersonnel() 
+    {
+        return inspectionPersonnel;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setTaskProcessKey(String taskProcessKey) 
+    {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskProcessKey() 
+    {
+        return taskProcessKey;
+    }
+    public void setTaskNodeKey(String taskNodeKey) 
+    {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskNodeKey() 
+    {
+        return taskNodeKey;
+    }
+    public void setIndexType(String indexType) 
+    {
+        this.indexType = indexType;
+    }
+
+    public String getIndexType() 
+    {
+        return indexType;
+    }
+
+    public List<InspectionListInfo> getInspectionListInfoList() {
+        return inspectionListInfoList;
+    }
+
+    public void setInspectionListInfoList(List<InspectionListInfo> inspectionListInfoList) {
+        this.inspectionListInfoList = inspectionListInfoList;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("inspectionListNo", getInspectionListNo())
+            .append("saleProductNo", getSaleProductNo())
+            .append("inspectionTime", getInspectionTime())
+            .append("inspectionPersonnel", getInspectionPersonnel())
+            .append("remark", getRemark())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("taskProcessKey", getTaskProcessKey())
+            .append("taskNodeKey", getTaskNodeKey())
+            .append("indexType", getIndexType())
+            .append("inspectionListInfoList",getInspectionListInfoList())
+            .toString();
+    }
+}

+ 195 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/InspectionListInfo.java

@@ -0,0 +1,195 @@
+package com.zkqy.business.domain;
+
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+
+/**
+ * 检验单详情对象 inspection_list_info
+ * 
+ * @author zkqy
+ * @date 2024-03-15
+ */
+public class InspectionListInfo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    private Long id;
+
+    /** 检验单编号 */
+    @Excel(name = "检验单编号")
+    private String inspectionListNo;
+
+    /** 产品编号 */
+    @Excel(name = "产品编号")
+    private String productNo;
+
+    /** 产品名称 */
+    @Excel(name = "产品名称")
+    private String productName;
+
+    /** 指标类型(1:物理指标;2:外观指标) */
+    @Excel(name = "指标类型", readConverterExp = "1=:物理指标;2:外观指标")
+    private String indexType;
+
+    /** 指标名称(对应字典物理指标/外观指标) */
+    @Excel(name = "指标名称", readConverterExp = "对=应字典物理指标/外观指标")
+    private String indexName;
+
+    /** 指标内容 */
+    @Excel(name = "指标内容")
+    private String indexContent;
+
+    /** 创建者id */
+    @Excel(name = "创建者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 任务编码 */
+    @Excel(name = "任务编码")
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    @Excel(name = "任务节点编码")
+    private String taskNodeKey;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setInspectionListNo(String inspectionListNo) 
+    {
+        this.inspectionListNo = inspectionListNo;
+    }
+
+    public String getInspectionListNo() 
+    {
+        return inspectionListNo;
+    }
+    public void setProductNo(String productNo) 
+    {
+        this.productNo = productNo;
+    }
+
+    public String getProductNo() 
+    {
+        return productNo;
+    }
+    public void setProductName(String productName) 
+    {
+        this.productName = productName;
+    }
+
+    public String getProductName() 
+    {
+        return productName;
+    }
+    public void setIndexType(String indexType) 
+    {
+        this.indexType = indexType;
+    }
+
+    public String getIndexType() 
+    {
+        return indexType;
+    }
+    public void setIndexName(String indexName) 
+    {
+        this.indexName = indexName;
+    }
+
+    public String getIndexName() 
+    {
+        return indexName;
+    }
+    public void setIndexContent(String indexContent) 
+    {
+        this.indexContent = indexContent;
+    }
+
+    public String getIndexContent() 
+    {
+        return indexContent;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setTaskProcessKey(String taskProcessKey) 
+    {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskProcessKey() 
+    {
+        return taskProcessKey;
+    }
+    public void setTaskNodeKey(String taskNodeKey) 
+    {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskNodeKey() 
+    {
+        return taskNodeKey;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("inspectionListNo", getInspectionListNo())
+            .append("productNo", getProductNo())
+            .append("productName", getProductName())
+            .append("indexType", getIndexType())
+            .append("indexName", getIndexName())
+            .append("indexContent", getIndexContent())
+            .append("remark", getRemark())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("taskProcessKey", getTaskProcessKey())
+            .append("taskNodeKey", getTaskNodeKey())
+            .toString();
+    }
+}

+ 251 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleCraft.java

@@ -0,0 +1,251 @@
+package com.zkqy.business.domain;
+
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+
+/**
+ * 销售工艺要求对象 sale_craft
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+public class SaleCraft extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 销售单编号 */
+    @Excel(name = "销售单编号")
+    private String saleOrderNo;
+
+    /** 销售工艺编号 */
+    @Excel(name = "销售工艺编号")
+    private String saleCraftNo;
+
+    /** 网格 */
+    @Excel(name = "网格")
+    private String craftGrid;
+
+    /** 油剂 */
+    @Excel(name = "油剂")
+    private String craftOil;
+
+    /** 卷装 */
+    @Excel(name = "卷装")
+    private String craftPackage;
+
+    /** 色牢度 */
+    @Excel(name = "色牢度")
+    private String craftColorFastness;
+
+    /** 其他工艺要求 */
+    @Excel(name = "其他工艺要求")
+    private String craftOther;
+
+    /** 包装/贴唛 */
+    @Excel(name = "包装/贴唛")
+    private String craftMark;
+
+    /** 装运方式 */
+    @Excel(name = "装运方式")
+    private String shippingMethod;
+
+    /** 创建者id */
+    @Excel(name = "创建者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 任务编码 */
+    @Excel(name = "任务编码")
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    @Excel(name = "任务节点编码")
+    private String taskNodeKey;
+
+    /** 捻向 */
+    @Excel(name = "捻向")
+    private String directionOfTwist;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setSaleOrderNo(String saleOrderNo) 
+    {
+        this.saleOrderNo = saleOrderNo;
+    }
+
+    public String getSaleOrderNo() 
+    {
+        return saleOrderNo;
+    }
+    public void setSaleCraftNo(String saleCraftNo) 
+    {
+        this.saleCraftNo = saleCraftNo;
+    }
+
+    public String getSaleCraftNo() 
+    {
+        return saleCraftNo;
+    }
+    public void setCraftGrid(String craftGrid) 
+    {
+        this.craftGrid = craftGrid;
+    }
+
+    public String getCraftGrid() 
+    {
+        return craftGrid;
+    }
+    public void setCraftOil(String craftOil) 
+    {
+        this.craftOil = craftOil;
+    }
+
+    public String getCraftOil() 
+    {
+        return craftOil;
+    }
+    public void setCraftPackage(String craftPackage) 
+    {
+        this.craftPackage = craftPackage;
+    }
+
+    public String getCraftPackage() 
+    {
+        return craftPackage;
+    }
+    public void setCraftColorFastness(String craftColorFastness) 
+    {
+        this.craftColorFastness = craftColorFastness;
+    }
+
+    public String getCraftColorFastness() 
+    {
+        return craftColorFastness;
+    }
+    public void setCraftOther(String craftOther) 
+    {
+        this.craftOther = craftOther;
+    }
+
+    public String getCraftOther() 
+    {
+        return craftOther;
+    }
+    public void setCraftMark(String craftMark) 
+    {
+        this.craftMark = craftMark;
+    }
+
+    public String getCraftMark() 
+    {
+        return craftMark;
+    }
+    public void setShippingMethod(String shippingMethod) 
+    {
+        this.shippingMethod = shippingMethod;
+    }
+
+    public String getShippingMethod() 
+    {
+        return shippingMethod;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setTaskProcessKey(String taskProcessKey) 
+    {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskProcessKey() 
+    {
+        return taskProcessKey;
+    }
+    public void setTaskNodeKey(String taskNodeKey) 
+    {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskNodeKey() 
+    {
+        return taskNodeKey;
+    }
+    public void setDirectionOfTwist(String directionOfTwist) 
+    {
+        this.directionOfTwist = directionOfTwist;
+    }
+
+    public String getDirectionOfTwist() 
+    {
+        return directionOfTwist;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("saleOrderNo", getSaleOrderNo())
+            .append("saleCraftNo", getSaleCraftNo())
+            .append("craftGrid", getCraftGrid())
+            .append("craftOil", getCraftOil())
+            .append("craftPackage", getCraftPackage())
+            .append("craftColorFastness", getCraftColorFastness())
+            .append("craftOther", getCraftOther())
+            .append("craftMark", getCraftMark())
+            .append("shippingMethod", getShippingMethod())
+            .append("remark", getRemark())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("taskProcessKey", getTaskProcessKey())
+            .append("taskNodeKey", getTaskNodeKey())
+            .append("directionOfTwist", getDirectionOfTwist())
+            .toString();
+    }
+}

+ 407 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleOrder.java

@@ -0,0 +1,407 @@
+package com.zkqy.business.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+
+/**
+ * 销售订单对象 sale_order
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+public class SaleOrder extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 销售编号(合同号) */
+    @Excel(name = "销售编号", readConverterExp = "合=同号")
+    private String saleNo;
+
+    /** 客户编号 */
+    @Excel(name = "客户编号")
+    private String saleCustomNo;
+
+    /** 销售单日期 */
+    @Excel(name = "销售单日期")
+    private String saleDate;
+
+    /** 预计下单时间(未使用) */
+    @Excel(name = "预计下单时间", readConverterExp = "未=使用")
+    private Date saleEstimatedTime;
+
+    /** 交货日期 */
+    @Excel(name = "交货日期")
+    private String saleLeadTime;
+
+    /** 订单销售产品集合编号 */
+    @Excel(name = "订单销售产品集合编号")
+    private String saleProductsNo;
+
+    /** 合计金额(小写) */
+    @Excel(name = "合计金额", readConverterExp = "小=写")
+    private Long saleAmounts;
+
+    /** 合计金额(大写) */
+    @Excel(name = "合计金额", readConverterExp = "大=写")
+    private String saleAmountInWords;
+
+    /** 付款方式 */
+    @Excel(name = "付款方式")
+    private String salePayType;
+
+    /** 预计下单时间 */
+    @Excel(name = "预计下单时间")
+    private String saleOrderEstimatedTime;
+
+    /** 订单工艺要求编号 */
+    @Excel(name = "订单工艺要求编号")
+    private String saleOrderTechnologyNo;
+
+    /** 业务员 */
+    @Excel(name = "业务员")
+    private String salesman;
+
+    /** 业务主管 */
+    @Excel(name = "业务主管")
+    private String saleLeader;
+
+    /** 财务部 */
+    @Excel(name = "财务部")
+    private String finance;
+
+    /** 生产部 */
+    @Excel(name = "生产部")
+    private String production;
+
+    /** 批准人 */
+    @Excel(name = "批准人")
+    private String saleApprover;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private String status;
+
+    /** 订单类型 */
+    @Excel(name = "订单类型")
+    private String orderType;
+
+    /** 创建者id */
+    @Excel(name = "创建者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 任务编码 */
+    @Excel(name = "任务编码")
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    @Excel(name = "任务节点编码")
+    private String taskNodeKey;
+
+    /** 流程编码 */
+    @Excel(name = "流程编码")
+    private String processKey;
+
+    /** 定金 */
+    @Excel(name = "定金")
+    private String earnestMoney;
+
+    /** 交货日期 */
+    @Excel(name = "交货日期")
+    private String deliveryDate;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setSaleNo(String saleNo) 
+    {
+        this.saleNo = saleNo;
+    }
+
+    public String getSaleNo() 
+    {
+        return saleNo;
+    }
+    public void setSaleCustomNo(String saleCustomNo) 
+    {
+        this.saleCustomNo = saleCustomNo;
+    }
+
+    public String getSaleCustomNo() 
+    {
+        return saleCustomNo;
+    }
+    public void setSaleDate(String saleDate) 
+    {
+        this.saleDate = saleDate;
+    }
+
+    public String getSaleDate() 
+    {
+        return saleDate;
+    }
+    public void setSaleEstimatedTime(Date saleEstimatedTime) 
+    {
+        this.saleEstimatedTime = saleEstimatedTime;
+    }
+
+    public Date getSaleEstimatedTime() 
+    {
+        return saleEstimatedTime;
+    }
+    public void setSaleLeadTime(String saleLeadTime) 
+    {
+        this.saleLeadTime = saleLeadTime;
+    }
+
+    public String getSaleLeadTime() 
+    {
+        return saleLeadTime;
+    }
+    public void setSaleProductsNo(String saleProductsNo) 
+    {
+        this.saleProductsNo = saleProductsNo;
+    }
+
+    public String getSaleProductsNo() 
+    {
+        return saleProductsNo;
+    }
+    public void setSaleAmounts(Long saleAmounts) 
+    {
+        this.saleAmounts = saleAmounts;
+    }
+
+    public Long getSaleAmounts() 
+    {
+        return saleAmounts;
+    }
+    public void setSaleAmountInWords(String saleAmountInWords) 
+    {
+        this.saleAmountInWords = saleAmountInWords;
+    }
+
+    public String getSaleAmountInWords() 
+    {
+        return saleAmountInWords;
+    }
+    public void setSalePayType(String salePayType) 
+    {
+        this.salePayType = salePayType;
+    }
+
+    public String getSalePayType() 
+    {
+        return salePayType;
+    }
+    public void setSaleOrderEstimatedTime(String saleOrderEstimatedTime) 
+    {
+        this.saleOrderEstimatedTime = saleOrderEstimatedTime;
+    }
+
+    public String getSaleOrderEstimatedTime() 
+    {
+        return saleOrderEstimatedTime;
+    }
+    public void setSaleOrderTechnologyNo(String saleOrderTechnologyNo) 
+    {
+        this.saleOrderTechnologyNo = saleOrderTechnologyNo;
+    }
+
+    public String getSaleOrderTechnologyNo() 
+    {
+        return saleOrderTechnologyNo;
+    }
+    public void setSalesman(String salesman) 
+    {
+        this.salesman = salesman;
+    }
+
+    public String getSalesman() 
+    {
+        return salesman;
+    }
+    public void setSaleLeader(String saleLeader) 
+    {
+        this.saleLeader = saleLeader;
+    }
+
+    public String getSaleLeader() 
+    {
+        return saleLeader;
+    }
+    public void setFinance(String finance) 
+    {
+        this.finance = finance;
+    }
+
+    public String getFinance() 
+    {
+        return finance;
+    }
+    public void setProduction(String production) 
+    {
+        this.production = production;
+    }
+
+    public String getProduction() 
+    {
+        return production;
+    }
+    public void setSaleApprover(String saleApprover) 
+    {
+        this.saleApprover = saleApprover;
+    }
+
+    public String getSaleApprover() 
+    {
+        return saleApprover;
+    }
+    public void setStatus(String status) 
+    {
+        this.status = status;
+    }
+
+    public String getStatus() 
+    {
+        return status;
+    }
+    public void setOrderType(String orderType) 
+    {
+        this.orderType = orderType;
+    }
+
+    public String getOrderType() 
+    {
+        return orderType;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setTaskProcessKey(String taskProcessKey) 
+    {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskProcessKey() 
+    {
+        return taskProcessKey;
+    }
+    public void setTaskNodeKey(String taskNodeKey) 
+    {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskNodeKey() 
+    {
+        return taskNodeKey;
+    }
+    public void setProcessKey(String processKey) 
+    {
+        this.processKey = processKey;
+    }
+
+    public String getProcessKey() 
+    {
+        return processKey;
+    }
+    public void setEarnestMoney(String earnestMoney) 
+    {
+        this.earnestMoney = earnestMoney;
+    }
+
+    public String getEarnestMoney() 
+    {
+        return earnestMoney;
+    }
+    public void setDeliveryDate(String deliveryDate) 
+    {
+        this.deliveryDate = deliveryDate;
+    }
+
+    public String getDeliveryDate() 
+    {
+        return deliveryDate;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("saleNo", getSaleNo())
+            .append("saleCustomNo", getSaleCustomNo())
+            .append("saleDate", getSaleDate())
+            .append("saleEstimatedTime", getSaleEstimatedTime())
+            .append("saleLeadTime", getSaleLeadTime())
+            .append("saleProductsNo", getSaleProductsNo())
+            .append("saleAmounts", getSaleAmounts())
+            .append("saleAmountInWords", getSaleAmountInWords())
+            .append("salePayType", getSalePayType())
+            .append("saleOrderEstimatedTime", getSaleOrderEstimatedTime())
+            .append("saleOrderTechnologyNo", getSaleOrderTechnologyNo())
+            .append("salesman", getSalesman())
+            .append("saleLeader", getSaleLeader())
+            .append("finance", getFinance())
+            .append("production", getProduction())
+            .append("saleApprover", getSaleApprover())
+            .append("status", getStatus())
+            .append("orderType", getOrderType())
+            .append("remark", getRemark())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("taskProcessKey", getTaskProcessKey())
+            .append("taskNodeKey", getTaskNodeKey())
+            .append("processKey", getProcessKey())
+            .append("earnestMoney", getEarnestMoney())
+            .append("deliveryDate", getDeliveryDate())
+            .toString();
+    }
+}

+ 307 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/SaleProducts.java

@@ -0,0 +1,307 @@
+package com.zkqy.business.domain;
+
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+
+/**
+ * 销售产品对象 sale_products
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+public class SaleProducts extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 销售产品编号 */
+    @Excel(name = "销售产品编号")
+    private String saleProductNo;
+
+    /** 销售单编号 */
+    @Excel(name = "销售单编号")
+    private String saleOrderNo;
+
+    /** 货品编号 */
+    @Excel(name = "货品编号")
+    private String productNo;
+
+    /** 货品名称 */
+    @Excel(name = "货品名称")
+    private String productName;
+
+    /** 销售数量 */
+    @Excel(name = "销售数量")
+    private Long productNumber;
+
+    /** 销售重量 kg */
+    @Excel(name = "销售重量 kg")
+    private String productWeight;
+
+    /** 货品单价 */
+    @Excel(name = "货品单价")
+    private String productUnitPrice;
+
+    /** 货品金额 */
+    @Excel(name = "货品金额")
+    private String productAmounts;
+
+    /** 货品备注 */
+    @Excel(name = "货品备注")
+    private String productNotes;
+
+    /** 创建者id */
+    @Excel(name = "创建者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 任务编码 */
+    @Excel(name = "任务编码")
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    @Excel(name = "任务节点编码")
+    private String taskNodeKey;
+
+    /** 流程编码 */
+    @Excel(name = "流程编码")
+    private String processKey;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private String status;
+
+    /** 产线编号 */
+    @Excel(name = "产线编号")
+    private String productionLineNo;
+
+    /** 切片型号 */
+    @Excel(name = "切片型号")
+    private String sliceType;
+
+    /** 色号 */
+    @Excel(name = "色号")
+    private String colourNumber;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setSaleProductNo(String saleProductNo) 
+    {
+        this.saleProductNo = saleProductNo;
+    }
+
+    public String getSaleProductNo() 
+    {
+        return saleProductNo;
+    }
+    public void setSaleOrderNo(String saleOrderNo) 
+    {
+        this.saleOrderNo = saleOrderNo;
+    }
+
+    public String getSaleOrderNo() 
+    {
+        return saleOrderNo;
+    }
+    public void setProductNo(String productNo) 
+    {
+        this.productNo = productNo;
+    }
+
+    public String getProductNo() 
+    {
+        return productNo;
+    }
+    public void setProductName(String productName) 
+    {
+        this.productName = productName;
+    }
+
+    public String getProductName() 
+    {
+        return productName;
+    }
+    public void setProductNumber(Long productNumber) 
+    {
+        this.productNumber = productNumber;
+    }
+
+    public Long getProductNumber() 
+    {
+        return productNumber;
+    }
+    public void setProductWeight(String productWeight) 
+    {
+        this.productWeight = productWeight;
+    }
+
+    public String getProductWeight() 
+    {
+        return productWeight;
+    }
+    public void setProductUnitPrice(String productUnitPrice) 
+    {
+        this.productUnitPrice = productUnitPrice;
+    }
+
+    public String getProductUnitPrice() 
+    {
+        return productUnitPrice;
+    }
+    public void setProductAmounts(String productAmounts) 
+    {
+        this.productAmounts = productAmounts;
+    }
+
+    public String getProductAmounts() 
+    {
+        return productAmounts;
+    }
+    public void setProductNotes(String productNotes) 
+    {
+        this.productNotes = productNotes;
+    }
+
+    public String getProductNotes() 
+    {
+        return productNotes;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setTaskProcessKey(String taskProcessKey) 
+    {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskProcessKey() 
+    {
+        return taskProcessKey;
+    }
+    public void setTaskNodeKey(String taskNodeKey) 
+    {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskNodeKey() 
+    {
+        return taskNodeKey;
+    }
+    public void setProcessKey(String processKey) 
+    {
+        this.processKey = processKey;
+    }
+
+    public String getProcessKey() 
+    {
+        return processKey;
+    }
+    public void setStatus(String status) 
+    {
+        this.status = status;
+    }
+
+    public String getStatus() 
+    {
+        return status;
+    }
+    public void setProductionLineNo(String productionLineNo) 
+    {
+        this.productionLineNo = productionLineNo;
+    }
+
+    public String getProductionLineNo() 
+    {
+        return productionLineNo;
+    }
+    public void setSliceType(String sliceType) 
+    {
+        this.sliceType = sliceType;
+    }
+
+    public String getSliceType() 
+    {
+        return sliceType;
+    }
+    public void setColourNumber(String colourNumber) 
+    {
+        this.colourNumber = colourNumber;
+    }
+
+    public String getColourNumber() 
+    {
+        return colourNumber;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("saleProductNo", getSaleProductNo())
+            .append("saleOrderNo", getSaleOrderNo())
+            .append("productNo", getProductNo())
+            .append("productName", getProductName())
+            .append("productNumber", getProductNumber())
+            .append("productWeight", getProductWeight())
+            .append("productUnitPrice", getProductUnitPrice())
+            .append("productAmounts", getProductAmounts())
+            .append("productNotes", getProductNotes())
+            .append("remark", getRemark())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("taskProcessKey", getTaskProcessKey())
+            .append("taskNodeKey", getTaskNodeKey())
+            .append("processKey", getProcessKey())
+            .append("status", getStatus())
+            .append("productionLineNo", getProductionLineNo())
+            .append("sliceType", getSliceType())
+            .append("colourNumber", getColourNumber())
+            .toString();
+    }
+}

+ 353 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/vo/SaleOrderVO.java

@@ -0,0 +1,353 @@
+package com.zkqy.business.domain.vo;
+
+import com.zkqy.business.domain.SaleCraft;
+import com.zkqy.business.domain.SaleProducts;
+import com.zkqy.common.annotation.Excel;
+
+import java.util.Date;
+import java.util.List;
+
+public class SaleOrderVO {
+
+    /** 主键 */
+    private Long id;
+
+    /** 销售编号(合同号) */
+    private String saleNo;
+
+    /** 客户编号 */
+    private String saleCustomNo;
+
+    /** 销售单日期 */
+    private String saleDate;
+
+    /** 预计下单时间(未使用) */
+    private Date saleEstimatedTime;
+
+    /** 交货日期 */
+    private String saleLeadTime;
+
+    /** 订单销售产品集合编号 */
+    private String saleProductsNo;
+
+    /** 合计金额(小写) */
+    private Long saleAmounts;
+
+    /** 合计金额(大写) */
+    private String saleAmountInWords;
+
+    /** 付款方式 */
+    private String salePayType;
+
+    /** 预计下单时间 */
+    private String saleOrderEstimatedTime;
+
+    /** 订单工艺要求编号 */
+    private String saleOrderTechnologyNo;
+
+    /** 业务员 */
+    private String salesman;
+
+    /** 业务主管 */
+    private String saleLeader;
+
+    /** 财务部 */
+    private String finance;
+
+    /** 生产部 */
+    private String production;
+
+    /** 批准人 */
+    private String saleApprover;
+
+    /** 状态 */
+    private String status;
+
+    /** 订单类型 */
+    private String orderType;
+
+    /** 创建者id */
+    private Long createById;
+
+    /** 更新者id */
+    private Long updateById;
+
+    /** 任务编码 */
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    private String taskNodeKey;
+
+    /** 流程编码 */
+    private String processKey;
+
+    /** 定金 */
+    private String earnestMoney;
+
+    /** 交货日期 */
+    private String deliveryDate;
+
+    /** 销售货品明细 */
+    private List<SaleProducts> saleProductsList;
+
+    /** 销售工艺要求 */
+    private SaleCraft saleCraft;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getSaleNo() {
+        return saleNo;
+    }
+
+    public void setSaleNo(String saleNo) {
+        this.saleNo = saleNo;
+    }
+
+    public String getSaleCustomNo() {
+        return saleCustomNo;
+    }
+
+    public void setSaleCustomNo(String saleCustomNo) {
+        this.saleCustomNo = saleCustomNo;
+    }
+
+    public String getSaleDate() {
+        return saleDate;
+    }
+
+    public void setSaleDate(String saleDate) {
+        this.saleDate = saleDate;
+    }
+
+    public Date getSaleEstimatedTime() {
+        return saleEstimatedTime;
+    }
+
+    public void setSaleEstimatedTime(Date saleEstimatedTime) {
+        this.saleEstimatedTime = saleEstimatedTime;
+    }
+
+    public String getSaleLeadTime() {
+        return saleLeadTime;
+    }
+
+    public void setSaleLeadTime(String saleLeadTime) {
+        this.saleLeadTime = saleLeadTime;
+    }
+
+    public String getSaleProductsNo() {
+        return saleProductsNo;
+    }
+
+    public void setSaleProductsNo(String saleProductsNo) {
+        this.saleProductsNo = saleProductsNo;
+    }
+
+    public Long getSaleAmounts() {
+        return saleAmounts;
+    }
+
+    public void setSaleAmounts(Long saleAmounts) {
+        this.saleAmounts = saleAmounts;
+    }
+
+    public String getSaleAmountInWords() {
+        return saleAmountInWords;
+    }
+
+    public void setSaleAmountInWords(String saleAmountInWords) {
+        this.saleAmountInWords = saleAmountInWords;
+    }
+
+    public String getSalePayType() {
+        return salePayType;
+    }
+
+    public void setSalePayType(String salePayType) {
+        this.salePayType = salePayType;
+    }
+
+    public String getSaleOrderEstimatedTime() {
+        return saleOrderEstimatedTime;
+    }
+
+    public void setSaleOrderEstimatedTime(String saleOrderEstimatedTime) {
+        this.saleOrderEstimatedTime = saleOrderEstimatedTime;
+    }
+
+    public String getSaleOrderTechnologyNo() {
+        return saleOrderTechnologyNo;
+    }
+
+    public void setSaleOrderTechnologyNo(String saleOrderTechnologyNo) {
+        this.saleOrderTechnologyNo = saleOrderTechnologyNo;
+    }
+
+    public String getSalesman() {
+        return salesman;
+    }
+
+    public void setSalesman(String salesman) {
+        this.salesman = salesman;
+    }
+
+    public String getSaleLeader() {
+        return saleLeader;
+    }
+
+    public void setSaleLeader(String saleLeader) {
+        this.saleLeader = saleLeader;
+    }
+
+    public String getFinance() {
+        return finance;
+    }
+
+    public void setFinance(String finance) {
+        this.finance = finance;
+    }
+
+    public String getProduction() {
+        return production;
+    }
+
+    public void setProduction(String production) {
+        this.production = production;
+    }
+
+    public String getSaleApprover() {
+        return saleApprover;
+    }
+
+    public void setSaleApprover(String saleApprover) {
+        this.saleApprover = saleApprover;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(String orderType) {
+        this.orderType = orderType;
+    }
+
+    public Long getCreateById() {
+        return createById;
+    }
+
+    public void setCreateById(Long createById) {
+        this.createById = createById;
+    }
+
+    public Long getUpdateById() {
+        return updateById;
+    }
+
+    public void setUpdateById(Long updateById) {
+        this.updateById = updateById;
+    }
+
+    public String getTaskProcessKey() {
+        return taskProcessKey;
+    }
+
+    public void setTaskProcessKey(String taskProcessKey) {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskNodeKey() {
+        return taskNodeKey;
+    }
+
+    public void setTaskNodeKey(String taskNodeKey) {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getProcessKey() {
+        return processKey;
+    }
+
+    public void setProcessKey(String processKey) {
+        this.processKey = processKey;
+    }
+
+    public String getEarnestMoney() {
+        return earnestMoney;
+    }
+
+    public void setEarnestMoney(String earnestMoney) {
+        this.earnestMoney = earnestMoney;
+    }
+
+    public String getDeliveryDate() {
+        return deliveryDate;
+    }
+
+    public void setDeliveryDate(String deliveryDate) {
+        this.deliveryDate = deliveryDate;
+    }
+
+    public List<SaleProducts> getSaleProductsList() {
+        return saleProductsList;
+    }
+
+    public void setSaleProductsList(List<SaleProducts> saleProductsList) {
+        this.saleProductsList = saleProductsList;
+    }
+
+    public SaleCraft getSaleCraft() {
+        return saleCraft;
+    }
+
+    public void setSaleCraft(SaleCraft saleCraft) {
+        this.saleCraft = saleCraft;
+    }
+
+    @Override
+    public String toString() {
+        return "SaleOrderVO{" +
+                "id=" + id +
+                ", saleNo='" + saleNo + '\'' +
+                ", saleCustomNo='" + saleCustomNo + '\'' +
+                ", saleDate='" + saleDate + '\'' +
+                ", saleEstimatedTime=" + saleEstimatedTime +
+                ", saleLeadTime='" + saleLeadTime + '\'' +
+                ", saleProductsNo='" + saleProductsNo + '\'' +
+                ", saleAmounts=" + saleAmounts +
+                ", saleAmountInWords='" + saleAmountInWords + '\'' +
+                ", salePayType='" + salePayType + '\'' +
+                ", saleOrderEstimatedTime='" + saleOrderEstimatedTime + '\'' +
+                ", saleOrderTechnologyNo='" + saleOrderTechnologyNo + '\'' +
+                ", salesman='" + salesman + '\'' +
+                ", saleLeader='" + saleLeader + '\'' +
+                ", finance='" + finance + '\'' +
+                ", production='" + production + '\'' +
+                ", saleApprover='" + saleApprover + '\'' +
+                ", status='" + status + '\'' +
+                ", orderType='" + orderType + '\'' +
+                ", createById=" + createById +
+                ", updateById=" + updateById +
+                ", taskProcessKey='" + taskProcessKey + '\'' +
+                ", taskNodeKey='" + taskNodeKey + '\'' +
+                ", processKey='" + processKey + '\'' +
+                ", earnestMoney='" + earnestMoney + '\'' +
+                ", deliveryDate='" + deliveryDate + '\'' +
+                ", saleProductsList=" + saleProductsList +
+                ", saleCraft=" + saleCraft +
+                '}';
+    }
+}

+ 75 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/InspectionListInfoMapper.java

@@ -0,0 +1,75 @@
+package com.zkqy.business.mapper;
+
+import java.util.List;
+import com.zkqy.business.domain.InspectionListInfo;
+
+/**
+ * 检验单详情Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-03-15
+ */
+public interface InspectionListInfoMapper 
+{
+    /**
+     * 查询检验单详情
+     * 
+     * @param id 检验单详情主键
+     * @return 检验单详情
+     */
+    public InspectionListInfo selectInspectionListInfoById(Long id);
+
+    /**
+     * 查询检验单详情列表
+     * 
+     * @param inspectionListInfo 检验单详情
+     * @return 检验单详情集合
+     */
+    public List<InspectionListInfo> selectInspectionListInfoList(InspectionListInfo inspectionListInfo);
+
+    /**
+     * 新增检验单详情
+     * 
+     * @param inspectionListInfo 检验单详情
+     * @return 结果
+     */
+    public int insertInspectionListInfo(InspectionListInfo inspectionListInfo);
+
+    /**
+     * 修改检验单详情
+     * 
+     * @param inspectionListInfo 检验单详情
+     * @return 结果
+     */
+    int updateInspectionListInfo(InspectionListInfo inspectionListInfo);
+
+    /**
+     * 删除检验单详情
+     * 
+     * @param id 检验单详情主键
+     * @return 结果
+     */
+    public int deleteInspectionListInfoById(Long id);
+
+    /**
+     * 批量删除检验单详情
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteInspectionListInfoByIds(List<Long> ids);
+
+    /**
+     * 批量新增
+     * @param inspectionListInfoList
+     * @return
+     */
+    int batchInsert(List<InspectionListInfo> inspectionListInfoList);
+
+    /**
+     * 根据检验单号查询检验单详情id
+     * @param inspectionListNo 检验单编号
+     * @return
+     */
+    List<Long> selectIdsByInspectionListNo(String inspectionListNo);
+}

+ 61 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/InspectionListMapper.java

@@ -0,0 +1,61 @@
+package com.zkqy.business.mapper;
+
+import java.util.List;
+import com.zkqy.business.domain.InspectionList;
+
+/**
+ * 检验单Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-03-15
+ */
+public interface InspectionListMapper 
+{
+    /**
+     * 查询检验单
+     * 
+     * @param id 检验单主键
+     * @return 检验单
+     */
+    public InspectionList selectInspectionListById(Long id);
+
+    /**
+     * 查询检验单列表
+     * 
+     * @param inspectionList 检验单
+     * @return 检验单集合
+     */
+    public List<InspectionList> selectInspectionListList(InspectionList inspectionList);
+
+    /**
+     * 新增检验单
+     * 
+     * @param inspectionList 检验单
+     * @return 结果
+     */
+    int insertInspectionList(InspectionList inspectionList);
+
+    /**
+     * 修改检验单
+     * 
+     * @param inspectionList 检验单
+     * @return 结果
+     */
+    int updateInspectionList(InspectionList inspectionList);
+
+    /**
+     * 删除检验单
+     * 
+     * @param id 检验单主键
+     * @return 结果
+     */
+    public int deleteInspectionListById(Long id);
+
+    /**
+     * 批量删除检验单
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteInspectionListByIds(Long[] ids);
+}

+ 69 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SaleCraftMapper.java

@@ -0,0 +1,69 @@
+package com.zkqy.business.mapper;
+
+import java.util.List;
+import com.zkqy.business.domain.SaleCraft;
+
+/**
+ * 销售工艺要求Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+public interface SaleCraftMapper 
+{
+    /**
+     * 查询销售工艺要求
+     * 
+     * @param id 销售工艺要求主键
+     * @return 销售工艺要求
+     */
+    public SaleCraft selectSaleCraftById(Long id);
+
+    /**
+     * 查询销售工艺要求列表
+     * 
+     * @param saleCraft 销售工艺要求
+     * @return 销售工艺要求集合
+     */
+    public List<SaleCraft> selectSaleCraftList(SaleCraft saleCraft);
+
+    /**
+     * 新增销售工艺要求
+     * 
+     * @param saleCraft 销售工艺要求
+     * @return 结果
+     */
+    public int insertSaleCraft(SaleCraft saleCraft);
+
+    /**
+     * 修改销售工艺要求
+     * 
+     * @param saleCraft 销售工艺要求
+     * @return 结果
+     */
+    public int updateSaleCraft(SaleCraft saleCraft);
+
+    /**
+     * 删除销售工艺要求
+     * 
+     * @param id 销售工艺要求主键
+     * @return 结果
+     */
+    public int deleteSaleCraftById(Long id);
+
+    /**
+     * 批量删除销售工艺要求
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteSaleCraftByIds(Long[] ids);
+
+    /**
+     * 批量删除销售工艺要求
+     *
+     * @param saleOrderNos 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteSaleCraftBysaleOrderNos(List<String> saleOrderNos);
+}

+ 69 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SaleOrderMapper.java

@@ -0,0 +1,69 @@
+package com.zkqy.business.mapper;
+
+import java.util.List;
+import com.zkqy.business.domain.SaleOrder;
+
+/**
+ * 销售订单Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+public interface SaleOrderMapper 
+{
+    /**
+     * 查询销售订单
+     * 
+     * @param id 销售订单主键
+     * @return 销售订单
+     */
+    public SaleOrder selectSaleOrderById(Long id);
+
+    /**
+     * 查询销售订单列表
+     * 
+     * @param saleOrder 销售订单
+     * @return 销售订单集合
+     */
+    public List<SaleOrder> selectSaleOrderList(SaleOrder saleOrder);
+
+    /**
+     * 新增销售订单
+     * 
+     * @param saleOrder 销售订单
+     * @return 结果
+     */
+    public int insertSaleOrder(SaleOrder saleOrder);
+
+    /**
+     * 修改销售订单
+     * 
+     * @param saleOrder 销售订单
+     * @return 结果
+     */
+    public int updateSaleOrder(SaleOrder saleOrder);
+
+    /**
+     * 删除销售订单
+     * 
+     * @param id 销售订单主键
+     * @return 结果
+     */
+    public int deleteSaleOrderById(Long id);
+
+    /**
+     * 批量删除销售订单
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteSaleOrderByIds(List<Long> ids);
+
+    /**
+     * 查询销售订单
+     *
+     * @param saleNo 销售订单编号
+     * @return 销售订单
+     */
+    SaleOrder selectSaleOrderBySaleNo(String saleNo);
+}

+ 68 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SaleProductsMapper.java

@@ -0,0 +1,68 @@
+package com.zkqy.business.mapper;
+
+import java.util.List;
+import com.zkqy.business.domain.SaleProducts;
+
+/**
+ * 销售产品Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+public interface SaleProductsMapper 
+{
+    /**
+     * 查询销售产品
+     * 
+     * @param id 销售产品主键
+     * @return 销售产品
+     */
+    public SaleProducts selectSaleProductsById(Long id);
+
+    /**
+     * 查询销售产品列表
+     * 
+     * @param saleProducts 销售产品
+     * @return 销售产品集合
+     */
+    public List<SaleProducts> selectSaleProductsList(SaleProducts saleProducts);
+
+    /**
+     * 新增销售产品
+     * 
+     * @param saleProducts 销售产品
+     * @return 结果
+     */
+    public int insertSaleProducts(SaleProducts saleProducts);
+
+    /**
+     * 修改销售产品
+     * 
+     * @param saleProducts 销售产品
+     * @return 结果
+     */
+    public int updateSaleProducts(SaleProducts saleProducts);
+
+    /**
+     * 删除销售产品
+     * 
+     * @param id 销售产品主键
+     * @return 结果
+     */
+    public int deleteSaleProductsById(Long id);
+
+    /**
+     * 批量删除销售产品
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteSaleProductsByIds(List<Long> ids);
+
+    /**
+     * 查询销售产品编号
+     * @param saleOrderNo 销售单编号
+     * @return
+     */
+    List<Long> selectSaleProductsIds(String saleOrderNo);
+}

+ 61 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/IInspectionListInfoService.java

@@ -0,0 +1,61 @@
+package com.zkqy.business.service;
+
+import java.util.List;
+import com.zkqy.business.domain.InspectionListInfo;
+
+/**
+ * 检验单详情Service接口
+ * 
+ * @author zkqy
+ * @date 2024-03-15
+ */
+public interface IInspectionListInfoService 
+{
+    /**
+     * 查询检验单详情
+     * 
+     * @param id 检验单详情主键
+     * @return 检验单详情
+     */
+    public InspectionListInfo selectInspectionListInfoById(Long id);
+
+    /**
+     * 查询检验单详情列表
+     * 
+     * @param inspectionListInfo 检验单详情
+     * @return 检验单详情集合
+     */
+    public List<InspectionListInfo> selectInspectionListInfoList(InspectionListInfo inspectionListInfo);
+
+    /**
+     * 新增检验单详情
+     * 
+     * @param inspectionListInfo 检验单详情
+     * @return 结果
+     */
+    public int insertInspectionListInfo(InspectionListInfo inspectionListInfo);
+
+    /**
+     * 修改检验单详情
+     * 
+     * @param inspectionListInfo 检验单详情
+     * @return 结果
+     */
+    public int updateInspectionListInfo(InspectionListInfo inspectionListInfo);
+
+    /**
+     * 批量删除检验单详情
+     * 
+     * @param ids 需要删除的检验单详情主键集合
+     * @return 结果
+     */
+    public int deleteInspectionListInfoByIds(List<Long> ids);
+
+    /**
+     * 删除检验单详情信息
+     * 
+     * @param id 检验单详情主键
+     * @return 结果
+     */
+    public int deleteInspectionListInfoById(Long id);
+}

+ 61 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/IInspectionListService.java

@@ -0,0 +1,61 @@
+package com.zkqy.business.service;
+
+import java.util.List;
+import com.zkqy.business.domain.InspectionList;
+
+/**
+ * 检验单Service接口
+ * 
+ * @author zkqy
+ * @date 2024-03-15
+ */
+public interface IInspectionListService 
+{
+    /**
+     * 查询检验单
+     * 
+     * @param id 检验单主键
+     * @return 检验单
+     */
+    public InspectionList selectInspectionListById(Long id);
+
+    /**
+     * 查询检验单列表
+     * 
+     * @param inspectionList 检验单
+     * @return 检验单集合
+     */
+    public List<InspectionList> selectInspectionListList(InspectionList inspectionList);
+
+    /**
+     * 新增检验单
+     * 
+     * @param inspectionList 检验单
+     * @return 结果
+     */
+    int insertInspectionList(InspectionList inspectionList);
+
+    /**
+     * 修改检验单
+     * 
+     * @param inspectionList 检验单
+     * @return 结果
+     */
+    int updateInspectionList(InspectionList inspectionList);
+
+    /**
+     * 批量删除检验单
+     * 
+     * @param ids 需要删除的检验单主键集合
+     * @return 结果
+     */
+    public int deleteInspectionListByIds(Long[] ids);
+
+    /**
+     * 删除检验单信息
+     * 
+     * @param id 检验单主键
+     * @return 结果
+     */
+    public int deleteInspectionListById(Long id);
+}

+ 61 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/ISaleCraftService.java

@@ -0,0 +1,61 @@
+package com.zkqy.business.service;
+
+import java.util.List;
+import com.zkqy.business.domain.SaleCraft;
+
+/**
+ * 销售工艺要求Service接口
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+public interface ISaleCraftService 
+{
+    /**
+     * 查询销售工艺要求
+     * 
+     * @param id 销售工艺要求主键
+     * @return 销售工艺要求
+     */
+    public SaleCraft selectSaleCraftById(Long id);
+
+    /**
+     * 查询销售工艺要求列表
+     * 
+     * @param saleCraft 销售工艺要求
+     * @return 销售工艺要求集合
+     */
+    public List<SaleCraft> selectSaleCraftList(SaleCraft saleCraft);
+
+    /**
+     * 新增销售工艺要求
+     * 
+     * @param saleCraft 销售工艺要求
+     * @return 结果
+     */
+    public int insertSaleCraft(SaleCraft saleCraft);
+
+    /**
+     * 修改销售工艺要求
+     * 
+     * @param saleCraft 销售工艺要求
+     * @return 结果
+     */
+    public int updateSaleCraft(SaleCraft saleCraft);
+
+    /**
+     * 批量删除销售工艺要求
+     * 
+     * @param ids 需要删除的销售工艺要求主键集合
+     * @return 结果
+     */
+    public int deleteSaleCraftByIds(Long[] ids);
+
+    /**
+     * 删除销售工艺要求信息
+     * 
+     * @param id 销售工艺要求主键
+     * @return 结果
+     */
+    public int deleteSaleCraftById(Long id);
+}

+ 69 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/ISaleOrderService.java

@@ -0,0 +1,69 @@
+package com.zkqy.business.service;
+
+import java.util.List;
+import com.zkqy.business.domain.SaleOrder;
+import com.zkqy.business.domain.vo.SaleOrderVO;
+
+/**
+ * 销售订单Service接口
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+public interface ISaleOrderService 
+{
+    /**
+     * 查询销售订单
+     * 
+     * @param id 销售订单主键
+     * @return 销售订单
+     */
+    public SaleOrder selectSaleOrderById(Long id);
+
+    /**
+     * 查询销售订单列表
+     * 
+     * @param saleOrder 销售订单
+     * @return 销售订单集合
+     */
+    public List<SaleOrder> selectSaleOrderList(SaleOrder saleOrder);
+
+    /**
+     * 新增销售订单
+     * 
+     * @param saleOrder 销售订单
+     * @return 结果
+     */
+    public int insertSaleOrder(SaleOrder saleOrder);
+
+    /**
+     * 修改销售订单
+     * 
+     * @param vo 销售订单
+     * @return 结果
+     */
+//    int updateSaleOrder(SaleOrderVO vo);
+
+    /**
+     * 批量删除销售订单/货品明细/销售工艺
+     * 
+     * @param ids 需要删除的销售订单主键集合
+     * @return 结果
+     */
+    void deleteSaleOrderByIds(List<Long> ids);
+
+    /**
+     * 删除销售订单信息
+     * 
+     * @param id 销售订单主键
+     * @return 结果
+     */
+    public int deleteSaleOrderById(Long id);
+
+    /**
+     * 销售单合同号校验
+     */
+    boolean checkContractNo(Long id,String saleNo);
+
+
+}

+ 61 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/ISaleProductsService.java

@@ -0,0 +1,61 @@
+package com.zkqy.business.service;
+
+import java.util.List;
+import com.zkqy.business.domain.SaleProducts;
+
+/**
+ * 销售产品Service接口
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+public interface ISaleProductsService 
+{
+    /**
+     * 查询销售产品
+     * 
+     * @param id 销售产品主键
+     * @return 销售产品
+     */
+    public SaleProducts selectSaleProductsById(Long id);
+
+    /**
+     * 查询销售产品列表
+     * 
+     * @param saleProducts 销售产品
+     * @return 销售产品集合
+     */
+    public List<SaleProducts> selectSaleProductsList(SaleProducts saleProducts);
+
+    /**
+     * 新增销售产品
+     * 
+     * @param saleProducts 销售产品
+     * @return 结果
+     */
+    public int insertSaleProducts(SaleProducts saleProducts);
+
+    /**
+     * 修改销售产品
+     * 
+     * @param saleProducts 销售产品
+     * @return 结果
+     */
+    public int updateSaleProducts(SaleProducts saleProducts);
+
+    /**
+     * 批量删除销售产品
+     * 
+     * @param ids 需要删除的销售产品主键集合
+     * @return 结果
+     */
+    int deleteSaleProductsByIds(List<Long> ids);
+
+    /**
+     * 删除销售产品信息
+     * 
+     * @param id 销售产品主键
+     * @return 结果
+     */
+    public int deleteSaleProductsById(Long id);
+}

+ 96 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/InspectionListInfoServiceImpl.java

@@ -0,0 +1,96 @@
+package com.zkqy.business.service.impl;
+
+import java.util.List;
+import com.zkqy.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.business.mapper.InspectionListInfoMapper;
+import com.zkqy.business.domain.InspectionListInfo;
+import com.zkqy.business.service.IInspectionListInfoService;
+
+/**
+ * 检验单详情Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-03-15
+ */
+@Service
+public class InspectionListInfoServiceImpl implements IInspectionListInfoService 
+{
+    @Autowired
+    private InspectionListInfoMapper inspectionListInfoMapper;
+
+    /**
+     * 查询检验单详情
+     * 
+     * @param id 检验单详情主键
+     * @return 检验单详情
+     */
+    @Override
+    public InspectionListInfo selectInspectionListInfoById(Long id)
+    {
+        return inspectionListInfoMapper.selectInspectionListInfoById(id);
+    }
+
+    /**
+     * 查询检验单详情列表
+     * 
+     * @param inspectionListInfo 检验单详情
+     * @return 检验单详情
+     */
+    @Override
+    public List<InspectionListInfo> selectInspectionListInfoList(InspectionListInfo inspectionListInfo)
+    {
+        return inspectionListInfoMapper.selectInspectionListInfoList(inspectionListInfo);
+    }
+
+    /**
+     * 新增检验单详情
+     * 
+     * @param inspectionListInfo 检验单详情
+     * @return 结果
+     */
+    @Override
+    public int insertInspectionListInfo(InspectionListInfo inspectionListInfo)
+    {
+        inspectionListInfo.setCreateTime(DateUtils.getNowDate());
+        return inspectionListInfoMapper.insertInspectionListInfo(inspectionListInfo);
+    }
+
+    /**
+     * 修改检验单详情
+     * 
+     * @param inspectionListInfo 检验单详情
+     * @return 结果
+     */
+    @Override
+    public int updateInspectionListInfo(InspectionListInfo inspectionListInfo)
+    {
+        inspectionListInfo.setUpdateTime(DateUtils.getNowDate());
+        return inspectionListInfoMapper.updateInspectionListInfo(inspectionListInfo);
+    }
+
+    /**
+     * 批量删除检验单详情
+     * 
+     * @param ids 需要删除的检验单详情主键
+     * @return 结果
+     */
+    @Override
+    public int deleteInspectionListInfoByIds(List<Long> ids)
+    {
+        return inspectionListInfoMapper.deleteInspectionListInfoByIds(ids);
+    }
+
+    /**
+     * 删除检验单详情信息
+     * 
+     * @param id 检验单详情主键
+     * @return 结果
+     */
+    @Override
+    public int deleteInspectionListInfoById(Long id)
+    {
+        return inspectionListInfoMapper.deleteInspectionListInfoById(id);
+    }
+}

+ 155 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/InspectionListServiceImpl.java

@@ -0,0 +1,155 @@
+package com.zkqy.business.service.impl;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
+import com.zkqy.business.domain.InspectionListInfo;
+import com.zkqy.business.mapper.InspectionListInfoMapper;
+import com.zkqy.common.utils.DateUtils;
+import com.zkqy.common.utils.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.business.mapper.InspectionListMapper;
+import com.zkqy.business.domain.InspectionList;
+import com.zkqy.business.service.IInspectionListService;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 检验单Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-03-15
+ */
+@Service
+public class InspectionListServiceImpl implements IInspectionListService 
+{
+    @Autowired
+    private InspectionListMapper inspectionListMapper;
+
+    @Autowired
+    private InspectionListInfoMapper inspectionListInfoMapper;
+
+    /**
+     * 查询检验单
+     * 
+     * @param id 检验单主键
+     * @return 检验单
+     */
+    @Override
+    public InspectionList selectInspectionListById(Long id)
+    {
+        return inspectionListMapper.selectInspectionListById(id);
+    }
+
+    /**
+     * 查询检验单列表
+     * 
+     * @param inspectionList 检验单
+     * @return 检验单
+     */
+    @Override
+    public List<InspectionList> selectInspectionListList(InspectionList inspectionList)
+    {
+        return inspectionListMapper.selectInspectionListList(inspectionList);
+    }
+
+    /**
+     * 新增检验单
+     * 
+     * @param inspectionList 检验单
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int insertInspectionList(InspectionList inspectionList)
+    {
+        inspectionList.getInspectionListInfoList().forEach(item -> {
+            item.setCreateById(SecurityUtils.getUserId());
+            item.setCreateTime(DateUtils.getNowDate());
+            item.setCreateBy(SecurityUtils.getUsername());
+        });
+        inspectionListInfoMapper.batchInsert(inspectionList.getInspectionListInfoList());
+        inspectionList.setCreateTime(DateUtils.getNowDate());
+        inspectionList.setCreateById(SecurityUtils.getUserId());
+        inspectionList.setUpdateBy(SecurityUtils.getUsername());
+        return inspectionListMapper.insertInspectionList(inspectionList);
+    }
+
+    /**
+     * 修改检验单
+     * 
+     * @param inspectionList 检验单
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int updateInspectionList(InspectionList inspectionList)
+    {
+        List<InspectionListInfo> editList = new ArrayList<>();
+        List<InspectionListInfo> addList = new ArrayList<>();
+        LinkedList<Long> removeIdList = new LinkedList<>();
+
+        inspectionList.getInspectionListInfoList().forEach(item -> {
+            if(item.getId() != null){
+                editList.add(item);
+                removeIdList.add(item.getId());
+            }else {
+                addList.add(item);
+            }
+        });
+        List<Long> ids = new ArrayList<>();
+        ids.removeAll(removeIdList);
+        // remove
+        if(ids.size() > 0){
+            inspectionListInfoMapper.deleteInspectionListInfoByIds(ids);
+        }
+        // add
+        if(addList.size() > 0){
+            addList.forEach(item -> {
+                item.setCreateById(SecurityUtils.getUserId());
+                item.setCreateTime(DateUtils.getNowDate());
+                item.setCreateBy(SecurityUtils.getUsername());
+            });
+            inspectionListInfoMapper.batchInsert(addList);
+        }
+        // edit
+        if(editList.size() > 0){
+            editList.forEach(item -> {
+                item.setUpdateTime(DateUtils.getNowDate());
+                item.setUpdateById(SecurityUtils.getUserId());
+                item.setUpdateBy(SecurityUtils.getUsername());
+                inspectionListInfoMapper.updateInspectionListInfo(item);
+            });
+
+        }
+        inspectionList.setUpdateTime(DateUtils.getNowDate());
+        inspectionList.setUpdateById(SecurityUtils.getUserId());
+        inspectionList.setUpdateBy(SecurityUtils.getUsername());
+        return inspectionListMapper.updateInspectionList(inspectionList);
+    }
+
+    /**
+     * 批量删除检验单
+     * 
+     * @param ids 需要删除的检验单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteInspectionListByIds(Long[] ids)
+    {
+        return inspectionListMapper.deleteInspectionListByIds(ids);
+    }
+
+    /**
+     * 删除检验单信息
+     * 
+     * @param id 检验单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteInspectionListById(Long id)
+    {
+        return inspectionListMapper.deleteInspectionListById(id);
+    }
+}

+ 96 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleCraftServiceImpl.java

@@ -0,0 +1,96 @@
+package com.zkqy.business.service.impl;
+
+import java.util.List;
+import com.zkqy.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.business.mapper.SaleCraftMapper;
+import com.zkqy.business.domain.SaleCraft;
+import com.zkqy.business.service.ISaleCraftService;
+
+/**
+ * 销售工艺要求Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+@Service
+public class SaleCraftServiceImpl implements ISaleCraftService 
+{
+    @Autowired
+    private SaleCraftMapper saleCraftMapper;
+
+    /**
+     * 查询销售工艺要求
+     * 
+     * @param id 销售工艺要求主键
+     * @return 销售工艺要求
+     */
+    @Override
+    public SaleCraft selectSaleCraftById(Long id)
+    {
+        return saleCraftMapper.selectSaleCraftById(id);
+    }
+
+    /**
+     * 查询销售工艺要求列表
+     * 
+     * @param saleCraft 销售工艺要求
+     * @return 销售工艺要求
+     */
+    @Override
+    public List<SaleCraft> selectSaleCraftList(SaleCraft saleCraft)
+    {
+        return saleCraftMapper.selectSaleCraftList(saleCraft);
+    }
+
+    /**
+     * 新增销售工艺要求
+     * 
+     * @param saleCraft 销售工艺要求
+     * @return 结果
+     */
+    @Override
+    public int insertSaleCraft(SaleCraft saleCraft)
+    {
+        saleCraft.setCreateTime(DateUtils.getNowDate());
+        return saleCraftMapper.insertSaleCraft(saleCraft);
+    }
+
+    /**
+     * 修改销售工艺要求
+     * 
+     * @param saleCraft 销售工艺要求
+     * @return 结果
+     */
+    @Override
+    public int updateSaleCraft(SaleCraft saleCraft)
+    {
+        saleCraft.setUpdateTime(DateUtils.getNowDate());
+        return saleCraftMapper.updateSaleCraft(saleCraft);
+    }
+
+    /**
+     * 批量删除销售工艺要求
+     * 
+     * @param ids 需要删除的销售工艺要求主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSaleCraftByIds(Long[] ids)
+    {
+        return saleCraftMapper.deleteSaleCraftByIds(ids);
+    }
+
+    /**
+     * 删除销售工艺要求信息
+     * 
+     * @param id 销售工艺要求主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSaleCraftById(Long id)
+    {
+        return saleCraftMapper.deleteSaleCraftById(id);
+    }
+}

+ 158 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleOrderServiceImpl.java

@@ -0,0 +1,158 @@
+package com.zkqy.business.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.zkqy.business.domain.SaleProducts;
+import com.zkqy.business.domain.vo.SaleOrderVO;
+import com.zkqy.business.mapper.SaleCraftMapper;
+import com.zkqy.business.mapper.SaleProductsMapper;
+import com.zkqy.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.business.mapper.SaleOrderMapper;
+import com.zkqy.business.domain.SaleOrder;
+import com.zkqy.business.service.ISaleOrderService;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 销售订单Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+@Service
+public class SaleOrderServiceImpl implements ISaleOrderService 
+{
+    @Autowired
+    private SaleOrderMapper saleOrderMapper;
+
+    @Autowired
+    private SaleProductsMapper saleProductsMapper;
+
+    @Autowired
+    private SaleCraftMapper saleCraftMapper;
+
+    /**
+     * 查询销售订单
+     * 
+     * @param id 销售订单主键
+     * @return 销售订单
+     */
+    @Override
+    public SaleOrder selectSaleOrderById(Long id)
+    {
+        return saleOrderMapper.selectSaleOrderById(id);
+    }
+
+    /**
+     * 查询销售订单列表
+     * 
+     * @param saleOrder 销售订单
+     * @return 销售订单
+     */
+    @Override
+    public List<SaleOrder> selectSaleOrderList(SaleOrder saleOrder)
+    {
+        return saleOrderMapper.selectSaleOrderList(saleOrder);
+    }
+
+    /**
+     * 新增销售订单
+     * 
+     * @param saleOrder 销售订单
+     * @return 结果
+     */
+    @Override
+    public int insertSaleOrder(SaleOrder saleOrder)
+    {
+        saleOrder.setCreateTime(DateUtils.getNowDate());
+        return saleOrderMapper.insertSaleOrder(saleOrder);
+    }
+
+    /**
+     * 修改销售订单
+     * 
+     * @param vo 销售订单
+     * @return 结果
+     */
+//    @Override
+//    @Transactional
+//    public int updateSaleOrder(SaleOrderVO vo)
+//    {
+//        //修改销售单
+//
+//
+//        //修改
+//
+//
+//        saleOrder.setUpdateTime(DateUtils.getNowDate());
+//        return saleOrderMapper.updateSaleOrder(saleOrder);
+//    }
+
+    /**
+     * 批量删除销售订单
+     * 
+     * @param ids 需要删除的销售订单主键
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public void deleteSaleOrderByIds(List<Long> ids)
+    {
+        List<String> saleOrderNos = new ArrayList<>();
+        ids.forEach(id -> {
+            //查询销售单编号
+            SaleOrder saleOrder = saleOrderMapper.selectSaleOrderById(id);
+            //删除货品明细
+            List<Long> saleProductsIds = saleProductsMapper.selectSaleProductsIds(saleOrder.getSaleNo());
+            if(saleProductsIds.size() > 0){
+                saleProductsMapper.deleteSaleProductsByIds(saleProductsIds);
+            }
+        });
+        //删除销售工艺
+        if(saleOrderNos.size() > 0){
+            saleCraftMapper.deleteSaleCraftBysaleOrderNos(saleOrderNos);
+        }
+        //删除销售单
+        saleOrderMapper.deleteSaleOrderByIds(ids);
+
+    }
+
+    /**
+     * 删除销售订单信息
+     * 
+     * @param id 销售订单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSaleOrderById(Long id)
+    {
+        return saleOrderMapper.deleteSaleOrderById(id);
+    }
+
+    @Override
+    public boolean checkContractNo(Long id, String saleNo) {
+        //判断新增还是修改
+        if(id != null){
+            SaleOrder saleOrder = saleOrderMapper.selectSaleOrderById(id);
+            if(saleOrder.getSaleNo().equals(saleNo)){
+                return true;
+            }else {
+                SaleOrder saleOrder1 = saleOrderMapper.selectSaleOrderBySaleNo(saleNo);
+                if(saleOrder1 != null){
+                    return false;
+                }else {
+                    return true;
+                }
+            }
+        }else {
+            SaleOrder saleOrder1 = saleOrderMapper.selectSaleOrderBySaleNo(saleNo);
+            if(saleOrder1 != null){
+                return false;
+            }else {
+                return true;
+            }
+        }
+    }
+}

+ 96 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleProductsServiceImpl.java

@@ -0,0 +1,96 @@
+package com.zkqy.business.service.impl;
+
+import java.util.List;
+import com.zkqy.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.business.mapper.SaleProductsMapper;
+import com.zkqy.business.domain.SaleProducts;
+import com.zkqy.business.service.ISaleProductsService;
+
+/**
+ * 销售产品Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-03-14
+ */
+@Service
+public class SaleProductsServiceImpl implements ISaleProductsService 
+{
+    @Autowired
+    private SaleProductsMapper saleProductsMapper;
+
+    /**
+     * 查询销售产品
+     * 
+     * @param id 销售产品主键
+     * @return 销售产品
+     */
+    @Override
+    public SaleProducts selectSaleProductsById(Long id)
+    {
+        return saleProductsMapper.selectSaleProductsById(id);
+    }
+
+    /**
+     * 查询销售产品列表
+     * 
+     * @param saleProducts 销售产品
+     * @return 销售产品
+     */
+    @Override
+    public List<SaleProducts> selectSaleProductsList(SaleProducts saleProducts)
+    {
+        return saleProductsMapper.selectSaleProductsList(saleProducts);
+    }
+
+    /**
+     * 新增销售产品
+     * 
+     * @param saleProducts 销售产品
+     * @return 结果
+     */
+    @Override
+    public int insertSaleProducts(SaleProducts saleProducts)
+    {
+        saleProducts.setCreateTime(DateUtils.getNowDate());
+        return saleProductsMapper.insertSaleProducts(saleProducts);
+    }
+
+    /**
+     * 修改销售产品
+     * 
+     * @param saleProducts 销售产品
+     * @return 结果
+     */
+    @Override
+    public int updateSaleProducts(SaleProducts saleProducts)
+    {
+        saleProducts.setUpdateTime(DateUtils.getNowDate());
+        return saleProductsMapper.updateSaleProducts(saleProducts);
+    }
+
+    /**
+     * 批量删除销售产品
+     * 
+     * @param ids 需要删除的销售产品主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSaleProductsByIds(List<Long> ids)
+    {
+        return saleProductsMapper.deleteSaleProductsByIds(ids);
+    }
+
+    /**
+     * 删除销售产品信息
+     * 
+     * @param id 销售产品主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSaleProductsById(Long id)
+    {
+        return saleProductsMapper.deleteSaleProductsById(id);
+    }
+}

+ 134 - 0
zkqy-custom-business/src/main/resources/mapper/business/InspectionListInfoMapper.xml

@@ -0,0 +1,134 @@
+<?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="com.zkqy.business.mapper.InspectionListInfoMapper">
+    
+    <resultMap type="com.zkqy.business.domain.InspectionListInfo" id="InspectionListInfoResult">
+        <result property="id"    column="id"    />
+        <result property="inspectionListNo"    column="inspection_list_no"    />
+        <result property="productNo"    column="product_no"    />
+        <result property="productName"    column="product_name"    />
+        <result property="indexType"    column="index_type"    />
+        <result property="indexName"    column="index_name"    />
+        <result property="indexContent"    column="index_content"    />
+        <result property="remark"    column="remark"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="taskProcessKey"    column="task_process_key"    />
+        <result property="taskNodeKey"    column="task_node_key"    />
+    </resultMap>
+
+    <sql id="selectInspectionListInfoVo">
+        select id, inspection_list_no, product_no, product_name, index_type, index_name, index_content, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, task_process_key, task_node_key from {DBNAME}.inspection_list_info
+    </sql>
+
+    <select id="selectInspectionListInfoList" parameterType="com.zkqy.business.domain.InspectionListInfo" resultMap="InspectionListInfoResult">
+        <include refid="selectInspectionListInfoVo"/>
+        where del_flag = '0'
+            <if test="inspectionListNo != null  and inspectionListNo != ''"> and inspection_list_no = #{inspectionListNo}</if>
+            <if test="productNo != null  and productNo != ''"> and product_no = #{productNo}</if>
+            <if test="productName != null  and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
+            <if test="indexType != null  and indexType != ''"> and index_type = #{indexType}</if>
+            <if test="indexName != null  and indexName != ''"> and index_name like concat('%', #{indexName}, '%')</if>
+            <if test="indexContent != null  and indexContent != ''"> and index_content = #{indexContent}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+
+    </select>
+    
+    <select id="selectInspectionListInfoById" parameterType="Long" resultMap="InspectionListInfoResult">
+        <include refid="selectInspectionListInfoVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertInspectionListInfo" parameterType="com.zkqy.business.domain.InspectionListInfo" useGeneratedKeys="true" keyProperty="id">
+        insert into inspection_list_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="inspectionListNo != null">inspection_list_no,</if>
+            <if test="productNo != null">product_no,</if>
+            <if test="productName != null">product_name,</if>
+            <if test="indexType != null">index_type,</if>
+            <if test="indexName != null">index_name,</if>
+            <if test="indexContent != null">index_content,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="taskProcessKey != null">task_process_key,</if>
+            <if test="taskNodeKey != null">task_node_key,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="inspectionListNo != null">#{inspectionListNo},</if>
+            <if test="productNo != null">#{productNo},</if>
+            <if test="productName != null">#{productName},</if>
+            <if test="indexType != null">#{indexType},</if>
+            <if test="indexName != null">#{indexName},</if>
+            <if test="indexContent != null">#{indexContent},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="taskProcessKey != null">#{taskProcessKey},</if>
+            <if test="taskNodeKey != null">#{taskNodeKey},</if>
+         </trim>
+    </insert>
+
+    <update id="updateInspectionListInfo" parameterType="com.zkqy.business.domain.InspectionListInfo">
+        update {DBNAME}.inspection_list_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="inspectionListNo != null">inspection_list_no = #{inspectionListNo},</if>
+            <if test="productNo != null">product_no = #{productNo},</if>
+            <if test="productName != null">product_name = #{productName},</if>
+            <if test="indexType != null">index_type = #{indexType},</if>
+            <if test="indexName != null">index_name = #{indexName},</if>
+            <if test="indexContent != null">index_content = #{indexContent},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="updateById != null">update_by_id = #{updateById},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteInspectionListInfoById" parameterType="Long">
+        delete from inspection_list_info where id = #{id}
+    </delete>
+
+    <delete id="deleteInspectionListInfoByIds">
+        update {DBNAME}.inspection_list_info set del_flag = '2' where id in
+        <foreach item="id" collection="list" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <insert id="batchInsert">
+        insert into {DBNAME}.inspection_list_info
+            (inspection_list_no, product_no, product_name, index_type, index_name, index_content, remark, create_by_id, create_by, create_time, del_flag)
+        values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.inspectionListNo}, #{item.productNo}, #{item.productName}, #{item.indexType}, #{item.indexName}, #{item.indexContent}, #{item.remark}, #{item.createById}, #{item.createBy}, #{item.createTime}, '0')
+        </foreach>
+    </insert>
+
+    <select id="selectIdsByInspectionListNo" resultType="long">
+        select id from {DBNAME}.inspection_list_info where inspection_list_no = #{inspectionListNo} and del_flag = '0'
+    </select>
+</mapper>

+ 110 - 0
zkqy-custom-business/src/main/resources/mapper/business/InspectionListMapper.xml

@@ -0,0 +1,110 @@
+<?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="com.zkqy.business.mapper.InspectionListMapper">
+    
+    <resultMap type="com.zkqy.business.domain.InspectionList" id="InspectionListResult">
+        <result property="id"    column="id"    />
+        <result property="inspectionListNo"    column="inspection_list_no"    />
+        <result property="saleProductNo"    column="sale_product_no"    />
+        <result property="inspectionTime"    column="inspection_time"    />
+        <result property="inspectionPersonnel"    column="inspection_personnel"    />
+        <result property="remark"    column="remark"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="taskProcessKey"    column="task_process_key"    />
+        <result property="taskNodeKey"    column="task_node_key"    />
+        <result property="indexType"    column="index_type"    />
+    </resultMap>
+
+    <sql id="selectInspectionListVo">
+        select id, inspection_list_no, sale_product_no, inspection_time, inspection_personnel, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, task_process_key, task_node_key, index_type from {DBNAME}.inspection_list
+    </sql>
+
+    <select id="selectInspectionListList" parameterType="com.zkqy.business.domain.InspectionList" resultMap="InspectionListResult">
+        <include refid="selectInspectionListVo"/>
+        <where>  
+            <if test="inspectionListNo != null  and inspectionListNo != ''"> and inspection_list_no = #{inspectionListNo}</if>
+            <if test="saleProductNo != null  and saleProductNo != ''"> and sale_product_no = #{saleProductNo}</if>
+            <if test="inspectionTime != null "> and inspection_time = #{inspectionTime}</if>
+            <if test="inspectionPersonnel != null  and inspectionPersonnel != ''"> and inspection_personnel = #{inspectionPersonnel}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            <if test="indexType != null  and indexType != ''"> and index_type = #{indexType}</if>
+        </where>
+    </select>
+    
+    <select id="selectInspectionListById" parameterType="Long" resultMap="InspectionListResult">
+        <include refid="selectInspectionListVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertInspectionList" parameterType="com.zkqy.business.domain.InspectionList" useGeneratedKeys="true" keyProperty="id">
+        insert into {DBNAME}.inspection_list
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="inspectionListNo != null">inspection_list_no,</if>
+            <if test="saleProductNo != null">sale_product_no,</if>
+            <if test="inspectionTime != null">inspection_time,</if>
+            <if test="inspectionPersonnel != null">inspection_personnel,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="taskProcessKey != null">task_process_key,</if>
+            <if test="taskNodeKey != null">task_node_key,</if>
+            <if test="indexType != null">index_type,</if>
+            del_flag
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="inspectionListNo != null">#{inspectionListNo},</if>
+            <if test="saleProductNo != null">#{saleProductNo},</if>
+            <if test="inspectionTime != null">#{inspectionTime},</if>
+            <if test="inspectionPersonnel != null">#{inspectionPersonnel},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="taskProcessKey != null">#{taskProcessKey},</if>
+            <if test="taskNodeKey != null">#{taskNodeKey},</if>
+            <if test="indexType != null">#{indexType},</if>
+            '0'
+         </trim>
+    </insert>
+
+    <update id="updateInspectionList" parameterType="com.zkqy.business.domain.InspectionList">
+        update {DBNAME}.inspection_list
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="inspectionListNo != null">inspection_list_no = #{inspectionListNo},</if>
+            <if test="saleProductNo != null">sale_product_no = #{saleProductNo},</if>
+            <if test="inspectionTime != null">inspection_time = #{inspectionTime},</if>
+            <if test="inspectionPersonnel != null">inspection_personnel = #{inspectionPersonnel},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="updateById != null">update_by_id = #{updateById},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="indexType != null">index_type = #{indexType},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteInspectionListById" parameterType="Long">
+        delete from inspection_list where id = #{id}
+    </delete>
+
+    <delete id="deleteInspectionListByIds" parameterType="String">
+        delete from inspection_list where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 152 - 0
zkqy-custom-business/src/main/resources/mapper/business/SaleCraftMapper.xml

@@ -0,0 +1,152 @@
+<?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="com.zkqy.business.mapper.SaleCraftMapper">
+    
+    <resultMap type="com.zkqy.business.domain.SaleCraft" id="SaleCraftResult">
+        <result property="id"    column="id"    />
+        <result property="saleOrderNo"    column="sale_order_no"    />
+        <result property="saleCraftNo"    column="sale_craft_no"    />
+        <result property="craftGrid"    column="craft_grid"    />
+        <result property="craftOil"    column="craft_oil"    />
+        <result property="craftPackage"    column="craft_package"    />
+        <result property="craftColorFastness"    column="craft_color_fastness"    />
+        <result property="craftOther"    column="craft_other"    />
+        <result property="craftMark"    column="craft_mark"    />
+        <result property="shippingMethod"    column="shipping_method"    />
+        <result property="remark"    column="remark"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="taskProcessKey"    column="task_process_key"    />
+        <result property="taskNodeKey"    column="task_node_key"    />
+        <result property="directionOfTwist"    column="direction_of_twist"    />
+    </resultMap>
+
+    <sql id="selectSaleCraftVo">
+        select id, sale_order_no, sale_craft_no, craft_grid, craft_oil, craft_package, craft_color_fastness, craft_other, craft_mark, shipping_method, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, task_process_key, task_node_key, direction_of_twist from sale_craft
+    </sql>
+
+    <select id="selectSaleCraftList" parameterType="com.zkqy.business.domain.SaleCraft" resultMap="SaleCraftResult">
+        <include refid="selectSaleCraftVo"/>
+        <where>  
+            <if test="saleOrderNo != null  and saleOrderNo != ''"> and sale_order_no = #{saleOrderNo}</if>
+            <if test="saleCraftNo != null  and saleCraftNo != ''"> and sale_craft_no = #{saleCraftNo}</if>
+            <if test="craftGrid != null  and craftGrid != ''"> and craft_grid = #{craftGrid}</if>
+            <if test="craftOil != null  and craftOil != ''"> and craft_oil = #{craftOil}</if>
+            <if test="craftPackage != null  and craftPackage != ''"> and craft_package = #{craftPackage}</if>
+            <if test="craftColorFastness != null  and craftColorFastness != ''"> and craft_color_fastness = #{craftColorFastness}</if>
+            <if test="craftOther != null  and craftOther != ''"> and craft_other = #{craftOther}</if>
+            <if test="craftMark != null  and craftMark != ''"> and craft_mark = #{craftMark}</if>
+            <if test="shippingMethod != null  and shippingMethod != ''"> and shipping_method = #{shippingMethod}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            <if test="directionOfTwist != null  and directionOfTwist != ''"> and direction_of_twist = #{directionOfTwist}</if>
+        </where>
+    </select>
+    
+    <select id="selectSaleCraftById" parameterType="Long" resultMap="SaleCraftResult">
+        <include refid="selectSaleCraftVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertSaleCraft" parameterType="com.zkqy.business.domain.SaleCraft" useGeneratedKeys="true" keyProperty="id">
+        insert into sale_craft
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="saleOrderNo != null">sale_order_no,</if>
+            <if test="saleCraftNo != null">sale_craft_no,</if>
+            <if test="craftGrid != null">craft_grid,</if>
+            <if test="craftOil != null">craft_oil,</if>
+            <if test="craftPackage != null">craft_package,</if>
+            <if test="craftColorFastness != null">craft_color_fastness,</if>
+            <if test="craftOther != null">craft_other,</if>
+            <if test="craftMark != null">craft_mark,</if>
+            <if test="shippingMethod != null">shipping_method,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="taskProcessKey != null">task_process_key,</if>
+            <if test="taskNodeKey != null">task_node_key,</if>
+            <if test="directionOfTwist != null">direction_of_twist,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="saleOrderNo != null">#{saleOrderNo},</if>
+            <if test="saleCraftNo != null">#{saleCraftNo},</if>
+            <if test="craftGrid != null">#{craftGrid},</if>
+            <if test="craftOil != null">#{craftOil},</if>
+            <if test="craftPackage != null">#{craftPackage},</if>
+            <if test="craftColorFastness != null">#{craftColorFastness},</if>
+            <if test="craftOther != null">#{craftOther},</if>
+            <if test="craftMark != null">#{craftMark},</if>
+            <if test="shippingMethod != null">#{shippingMethod},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="taskProcessKey != null">#{taskProcessKey},</if>
+            <if test="taskNodeKey != null">#{taskNodeKey},</if>
+            <if test="directionOfTwist != null">#{directionOfTwist},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSaleCraft" parameterType="com.zkqy.business.domain.SaleCraft">
+        update sale_craft
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="saleOrderNo != null">sale_order_no = #{saleOrderNo},</if>
+            <if test="saleCraftNo != null">sale_craft_no = #{saleCraftNo},</if>
+            <if test="craftGrid != null">craft_grid = #{craftGrid},</if>
+            <if test="craftOil != null">craft_oil = #{craftOil},</if>
+            <if test="craftPackage != null">craft_package = #{craftPackage},</if>
+            <if test="craftColorFastness != null">craft_color_fastness = #{craftColorFastness},</if>
+            <if test="craftOther != null">craft_other = #{craftOther},</if>
+            <if test="craftMark != null">craft_mark = #{craftMark},</if>
+            <if test="shippingMethod != null">shipping_method = #{shippingMethod},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createById != null">create_by_id = #{createById},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateById != null">update_by_id = #{updateById},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="directionOfTwist != null">direction_of_twist = #{directionOfTwist},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteSaleCraftById" parameterType="Long">
+        delete from sale_craft where id = #{id}
+    </delete>
+
+    <delete id="deleteSaleCraftByIds" parameterType="String">
+        delete from sale_craft where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <update id="deleteSaleCraftBysaleOrderNos" parameterType="String">
+        update {DBNAME}.sale_craft set del_flag = '2' where sale_order_no in
+        <foreach item="saleOrderNo" collection="list" open="(" separator="," close=")">
+            #{saleOrderNo}
+        </foreach>
+    </update>
+</mapper>

+ 206 - 0
zkqy-custom-business/src/main/resources/mapper/business/SaleOrderMapper.xml

@@ -0,0 +1,206 @@
+<?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="com.zkqy.business.mapper.SaleOrderMapper">
+    
+    <resultMap type="com.zkqy.business.domain.SaleOrder" id="SaleOrderResult">
+        <result property="id"    column="id"    />
+        <result property="saleNo"    column="sale_no"    />
+        <result property="saleCustomNo"    column="sale_custom_no"    />
+        <result property="saleDate"    column="sale_date"    />
+        <result property="saleEstimatedTime"    column="sale_estimated_time"    />
+        <result property="saleLeadTime"    column="sale_lead_time"    />
+        <result property="saleProductsNo"    column="sale_products_no"    />
+        <result property="saleAmounts"    column="sale_amounts"    />
+        <result property="saleAmountInWords"    column="sale_amount_in_words"    />
+        <result property="salePayType"    column="sale_pay_type"    />
+        <result property="saleOrderEstimatedTime"    column="sale_order_estimated_time"    />
+        <result property="saleOrderTechnologyNo"    column="sale_order_technology_no"    />
+        <result property="salesman"    column="salesman"    />
+        <result property="saleLeader"    column="sale_leader"    />
+        <result property="finance"    column="finance"    />
+        <result property="production"    column="production"    />
+        <result property="saleApprover"    column="sale_approver"    />
+        <result property="status"    column="status"    />
+        <result property="orderType"    column="order_type"    />
+        <result property="remark"    column="remark"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="taskProcessKey"    column="task_process_key"    />
+        <result property="taskNodeKey"    column="task_node_key"    />
+        <result property="processKey"    column="process_key"    />
+        <result property="earnestMoney"    column="earnest_money"    />
+        <result property="deliveryDate"    column="delivery_date"    />
+    </resultMap>
+
+    <sql id="selectSaleOrderVo">
+        select id, sale_no, sale_custom_no, sale_date, sale_estimated_time, sale_lead_time, sale_products_no, sale_amounts, sale_amount_in_words, sale_pay_type, sale_order_estimated_time, sale_order_technology_no, salesman, sale_leader, finance, production, sale_approver, status, order_type, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, task_process_key, task_node_key, process_key, earnest_money, delivery_date from {DBNAME}.sale_order
+    </sql>
+
+    <select id="selectSaleOrderList" parameterType="com.zkqy.business.domain.SaleOrder" resultMap="SaleOrderResult">
+        <include refid="selectSaleOrderVo"/>
+        <where>  
+            <if test="saleNo != null  and saleNo != ''"> and sale_no = #{saleNo}</if>
+            <if test="saleCustomNo != null  and saleCustomNo != ''"> and sale_custom_no = #{saleCustomNo}</if>
+            <if test="saleDate != null  and saleDate != ''"> and sale_date = #{saleDate}</if>
+            <if test="saleEstimatedTime != null "> and sale_estimated_time = #{saleEstimatedTime}</if>
+            <if test="saleLeadTime != null  and saleLeadTime != ''"> and sale_lead_time = #{saleLeadTime}</if>
+            <if test="saleProductsNo != null  and saleProductsNo != ''"> and sale_products_no = #{saleProductsNo}</if>
+            <if test="saleAmounts != null "> and sale_amounts = #{saleAmounts}</if>
+            <if test="saleAmountInWords != null  and saleAmountInWords != ''"> and sale_amount_in_words = #{saleAmountInWords}</if>
+            <if test="salePayType != null  and salePayType != ''"> and sale_pay_type = #{salePayType}</if>
+            <if test="saleOrderEstimatedTime != null  and saleOrderEstimatedTime != ''"> and sale_order_estimated_time = #{saleOrderEstimatedTime}</if>
+            <if test="saleOrderTechnologyNo != null  and saleOrderTechnologyNo != ''"> and sale_order_technology_no = #{saleOrderTechnologyNo}</if>
+            <if test="salesman != null  and salesman != ''"> and salesman = #{salesman}</if>
+            <if test="saleLeader != null  and saleLeader != ''"> and sale_leader = #{saleLeader}</if>
+            <if test="finance != null  and finance != ''"> and finance = #{finance}</if>
+            <if test="production != null  and production != ''"> and production = #{production}</if>
+            <if test="saleApprover != null  and saleApprover != ''"> and sale_approver = #{saleApprover}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+            <if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
+            <if test="earnestMoney != null  and earnestMoney != ''"> and earnest_money = #{earnestMoney}</if>
+            <if test="deliveryDate != null  and deliveryDate != ''"> and delivery_date = #{deliveryDate}</if>
+        </where>
+    </select>
+    
+    <select id="selectSaleOrderById" parameterType="Long" resultMap="SaleOrderResult">
+        <include refid="selectSaleOrderVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertSaleOrder" parameterType="com.zkqy.business.domain.SaleOrder" useGeneratedKeys="true" keyProperty="id">
+        insert into sale_order
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="saleNo != null">sale_no,</if>
+            <if test="saleCustomNo != null">sale_custom_no,</if>
+            <if test="saleDate != null">sale_date,</if>
+            <if test="saleEstimatedTime != null">sale_estimated_time,</if>
+            <if test="saleLeadTime != null">sale_lead_time,</if>
+            <if test="saleProductsNo != null">sale_products_no,</if>
+            <if test="saleAmounts != null">sale_amounts,</if>
+            <if test="saleAmountInWords != null">sale_amount_in_words,</if>
+            <if test="salePayType != null">sale_pay_type,</if>
+            <if test="saleOrderEstimatedTime != null">sale_order_estimated_time,</if>
+            <if test="saleOrderTechnologyNo != null">sale_order_technology_no,</if>
+            <if test="salesman != null">salesman,</if>
+            <if test="saleLeader != null">sale_leader,</if>
+            <if test="finance != null">finance,</if>
+            <if test="production != null">production,</if>
+            <if test="saleApprover != null">sale_approver,</if>
+            <if test="status != null">status,</if>
+            <if test="orderType != null">order_type,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="taskProcessKey != null">task_process_key,</if>
+            <if test="taskNodeKey != null">task_node_key,</if>
+            <if test="processKey != null">process_key,</if>
+            <if test="earnestMoney != null">earnest_money,</if>
+            <if test="deliveryDate != null">delivery_date,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="saleNo != null">#{saleNo},</if>
+            <if test="saleCustomNo != null">#{saleCustomNo},</if>
+            <if test="saleDate != null">#{saleDate},</if>
+            <if test="saleEstimatedTime != null">#{saleEstimatedTime},</if>
+            <if test="saleLeadTime != null">#{saleLeadTime},</if>
+            <if test="saleProductsNo != null">#{saleProductsNo},</if>
+            <if test="saleAmounts != null">#{saleAmounts},</if>
+            <if test="saleAmountInWords != null">#{saleAmountInWords},</if>
+            <if test="salePayType != null">#{salePayType},</if>
+            <if test="saleOrderEstimatedTime != null">#{saleOrderEstimatedTime},</if>
+            <if test="saleOrderTechnologyNo != null">#{saleOrderTechnologyNo},</if>
+            <if test="salesman != null">#{salesman},</if>
+            <if test="saleLeader != null">#{saleLeader},</if>
+            <if test="finance != null">#{finance},</if>
+            <if test="production != null">#{production},</if>
+            <if test="saleApprover != null">#{saleApprover},</if>
+            <if test="status != null">#{status},</if>
+            <if test="orderType != null">#{orderType},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="taskProcessKey != null">#{taskProcessKey},</if>
+            <if test="taskNodeKey != null">#{taskNodeKey},</if>
+            <if test="processKey != null">#{processKey},</if>
+            <if test="earnestMoney != null">#{earnestMoney},</if>
+            <if test="deliveryDate != null">#{deliveryDate},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSaleOrder" parameterType="com.zkqy.business.domain.SaleOrder">
+        update sale_order
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="saleNo != null">sale_no = #{saleNo},</if>
+            <if test="saleCustomNo != null">sale_custom_no = #{saleCustomNo},</if>
+            <if test="saleDate != null">sale_date = #{saleDate},</if>
+            <if test="saleEstimatedTime != null">sale_estimated_time = #{saleEstimatedTime},</if>
+            <if test="saleLeadTime != null">sale_lead_time = #{saleLeadTime},</if>
+            <if test="saleProductsNo != null">sale_products_no = #{saleProductsNo},</if>
+            <if test="saleAmounts != null">sale_amounts = #{saleAmounts},</if>
+            <if test="saleAmountInWords != null">sale_amount_in_words = #{saleAmountInWords},</if>
+            <if test="salePayType != null">sale_pay_type = #{salePayType},</if>
+            <if test="saleOrderEstimatedTime != null">sale_order_estimated_time = #{saleOrderEstimatedTime},</if>
+            <if test="saleOrderTechnologyNo != null">sale_order_technology_no = #{saleOrderTechnologyNo},</if>
+            <if test="salesman != null">salesman = #{salesman},</if>
+            <if test="saleLeader != null">sale_leader = #{saleLeader},</if>
+            <if test="finance != null">finance = #{finance},</if>
+            <if test="production != null">production = #{production},</if>
+            <if test="saleApprover != null">sale_approver = #{saleApprover},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="orderType != null">order_type = #{orderType},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createById != null">create_by_id = #{createById},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateById != null">update_by_id = #{updateById},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="processKey != null">process_key = #{processKey},</if>
+            <if test="earnestMoney != null">earnest_money = #{earnestMoney},</if>
+            <if test="deliveryDate != null">delivery_date = #{deliveryDate},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteSaleOrderById" parameterType="Long">
+        delete from sale_order where id = #{id}
+    </delete>
+
+    <update id="deleteSaleOrderByIds" parameterType="String">
+        update {DBNAME}.sale_order set del_flag = '2' where id in
+        <foreach item="id" collection="list" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <select id="selectSaleOrderBySaleNo" parameterType="String" resultMap="SaleOrderResult">
+        <include refid="selectSaleOrderVo"/>
+        where sale_no = #{saleNo} and del_flag = '0'
+    </select>
+
+</mapper>

+ 169 - 0
zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml

@@ -0,0 +1,169 @@
+<?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="com.zkqy.business.mapper.SaleProductsMapper">
+    
+    <resultMap type="com.zkqy.business.domain.SaleProducts" id="SaleProductsResult">
+        <result property="id"    column="id"    />
+        <result property="saleProductNo"    column="sale_product_no"    />
+        <result property="saleOrderNo"    column="sale_order_no"    />
+        <result property="productNo"    column="product_no"    />
+        <result property="productName"    column="product_name"    />
+        <result property="productNumber"    column="product_number"    />
+        <result property="productWeight"    column="product_weight"    />
+        <result property="productUnitPrice"    column="product_unit_price"    />
+        <result property="productAmounts"    column="product_amounts"    />
+        <result property="productNotes"    column="product_notes"    />
+        <result property="remark"    column="remark"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="taskProcessKey"    column="task_process_key"    />
+        <result property="taskNodeKey"    column="task_node_key"    />
+        <result property="processKey"    column="process_key"    />
+        <result property="status"    column="status"    />
+        <result property="productionLineNo"    column="production_line_no"    />
+        <result property="sliceType"    column="slice_type"    />
+        <result property="colourNumber"    column="colour_number"    />
+    </resultMap>
+
+    <sql id="selectSaleProductsVo">
+        select id, sale_product_no, sale_order_no, product_no, product_name, product_number, product_weight, product_unit_price, product_amounts, product_notes, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, task_process_key, task_node_key, process_key, status, production_line_no, slice_type, colour_number from {DBNAME}.sale_products
+    </sql>
+
+    <select id="selectSaleProductsList" parameterType="com.zkqy.business.domain.SaleProducts" resultMap="SaleProductsResult">
+        <include refid="selectSaleProductsVo"/>
+        <where>  
+            <if test="saleProductNo != null  and saleProductNo != ''"> and sale_product_no = #{saleProductNo}</if>
+            <if test="saleOrderNo != null  and saleOrderNo != ''"> and sale_order_no = #{saleOrderNo}</if>
+            <if test="productNo != null  and productNo != ''"> and product_no = #{productNo}</if>
+            <if test="productName != null  and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
+            <if test="productNumber != null "> and product_number = #{productNumber}</if>
+            <if test="productWeight != null  and productWeight != ''"> and product_weight = #{productWeight}</if>
+            <if test="productUnitPrice != null  and productUnitPrice != ''"> and product_unit_price = #{productUnitPrice}</if>
+            <if test="productAmounts != null  and productAmounts != ''"> and product_amounts = #{productAmounts}</if>
+            <if test="productNotes != null  and productNotes != ''"> and product_notes = #{productNotes}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+            <if test="productionLineNo != null  and productionLineNo != ''"> and production_line_no = #{productionLineNo}</if>
+            <if test="sliceType != null  and sliceType != ''"> and slice_type = #{sliceType}</if>
+            <if test="colourNumber != null  and colourNumber != ''"> and colour_number = #{colourNumber}</if>
+        </where>
+    </select>
+    
+    <select id="selectSaleProductsById" parameterType="Long" resultMap="SaleProductsResult">
+        <include refid="selectSaleProductsVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertSaleProducts" parameterType="com.zkqy.business.domain.SaleProducts" useGeneratedKeys="true" keyProperty="id">
+        insert into sale_products
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="saleProductNo != null">sale_product_no,</if>
+            <if test="saleOrderNo != null">sale_order_no,</if>
+            <if test="productNo != null">product_no,</if>
+            <if test="productName != null">product_name,</if>
+            <if test="productNumber != null">product_number,</if>
+            <if test="productWeight != null">product_weight,</if>
+            <if test="productUnitPrice != null">product_unit_price,</if>
+            <if test="productAmounts != null">product_amounts,</if>
+            <if test="productNotes != null">product_notes,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="taskProcessKey != null">task_process_key,</if>
+            <if test="taskNodeKey != null">task_node_key,</if>
+            <if test="processKey != null">process_key,</if>
+            <if test="status != null">status,</if>
+            <if test="productionLineNo != null">production_line_no,</if>
+            <if test="sliceType != null">slice_type,</if>
+            <if test="colourNumber != null">colour_number,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="saleProductNo != null">#{saleProductNo},</if>
+            <if test="saleOrderNo != null">#{saleOrderNo},</if>
+            <if test="productNo != null">#{productNo},</if>
+            <if test="productName != null">#{productName},</if>
+            <if test="productNumber != null">#{productNumber},</if>
+            <if test="productWeight != null">#{productWeight},</if>
+            <if test="productUnitPrice != null">#{productUnitPrice},</if>
+            <if test="productAmounts != null">#{productAmounts},</if>
+            <if test="productNotes != null">#{productNotes},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="taskProcessKey != null">#{taskProcessKey},</if>
+            <if test="taskNodeKey != null">#{taskNodeKey},</if>
+            <if test="processKey != null">#{processKey},</if>
+            <if test="status != null">#{status},</if>
+            <if test="productionLineNo != null">#{productionLineNo},</if>
+            <if test="sliceType != null">#{sliceType},</if>
+            <if test="colourNumber != null">#{colourNumber},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSaleProducts" parameterType="com.zkqy.business.domain.SaleProducts">
+        update sale_products
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="saleProductNo != null">sale_product_no = #{saleProductNo},</if>
+            <if test="saleOrderNo != null">sale_order_no = #{saleOrderNo},</if>
+            <if test="productNo != null">product_no = #{productNo},</if>
+            <if test="productName != null">product_name = #{productName},</if>
+            <if test="productNumber != null">product_number = #{productNumber},</if>
+            <if test="productWeight != null">product_weight = #{productWeight},</if>
+            <if test="productUnitPrice != null">product_unit_price = #{productUnitPrice},</if>
+            <if test="productAmounts != null">product_amounts = #{productAmounts},</if>
+            <if test="productNotes != null">product_notes = #{productNotes},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createById != null">create_by_id = #{createById},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateById != null">update_by_id = #{updateById},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="processKey != null">process_key = #{processKey},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="productionLineNo != null">production_line_no = #{productionLineNo},</if>
+            <if test="sliceType != null">slice_type = #{sliceType},</if>
+            <if test="colourNumber != null">colour_number = #{colourNumber},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteSaleProductsById" parameterType="Long">
+        delete from sale_products where id = #{id}
+    </delete>
+
+    <update id="deleteSaleProductsByIds">
+        update {DBNAME}.sale_products set del_flag = '2' where id in
+        <foreach item="id" collection="list" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <select id="selectSaleProductsIds" resultType="long">
+        select id from {DBNAME}.sale_products where sale_order_no = #{saleOrderNo}
+    </select>
+</mapper>

+ 79 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/chemicalfiber/AppearanceIndex.java

@@ -0,0 +1,79 @@
+package com.zkqy.execution.produce.dispersed.service.impl.runbpm.chemicalfiber;
+
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.execution.produce.dispersed.entity.CommonEntity;
+import com.zkqy.execution.produce.dispersed.entity.runbpm.BpmRunNodeFromVo;
+import com.zkqy.execution.produce.dispersed.entity.runbpm.IRunBPMEntity;
+import com.zkqy.execution.produce.dispersed.service.ICommonService;
+import com.zkqy.execution.produce.dispersed.service.IRunBPMService;
+import com.zkqy.execution.produce.utils.EchoNodeFormData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PreDestroy;
+import java.util.List;
+
+/**
+ * 化纤外观指标-正常节点
+ */
+@Service("60440961-eaf1-442c-82db-ef66dc1e492e")
+@Scope("prototype")
+public class AppearanceIndex implements IRunBPMService {
+
+    @Autowired
+    private ICommonService commonService;
+
+    @Override
+    public CommonEntity getNodeFormData(BpmRunNodeFromVo bpmRunNodeFromVo) {
+        //根据id查询货品详情
+        CommonEntity saleProductsParam = new CommonEntity();
+        saleProductsParam.getBasicMap().put("tableName","sale_products");
+        saleProductsParam.getConditionMap().put("id",bpmRunNodeFromVo.getTaskPlanKey());
+        CommonEntity saleProducts = commonService.getInfoById(saleProductsParam);
+        //根据货品编号得到质检单信息
+        CommonEntity inspectionListParam = new CommonEntity();
+        inspectionListParam.getBasicMap().put("tableName","inspection_list");
+        inspectionListParam.getConditionMap().put("sale_product_no",saleProducts.getResultMap().get("sale_product_no"));
+        inspectionListParam.getConditionMap().put("index_type","2");
+        CommonEntity inspectionList = commonService.getInfoById(inspectionListParam);
+        //根据质检单编号得到质检单详情
+        CommonEntity inspectionListInfoParam = new CommonEntity();
+        inspectionListInfoParam.getBasicMap().put("tableName","inspection_list_info");
+        inspectionListInfoParam.getQueryMap().put("inspection_list_no",inspectionList.getResultMap().get("inspection_list_no"));
+        inspectionListInfoParam.getQueryMap().put("del_flag","0");
+        List<CommonEntity> inspectionListInfoList = commonService.selectList(inspectionListInfoParam);
+        CommonEntity result = new CommonEntity();
+        result.getResultMap().put("saleProducts",saleProducts);
+        result.getResultMap().put("inspectionList",inspectionList);
+        result.getResultMap().put("inspectionListInfo",inspectionListInfoList);
+        return result;
+    }
+
+    @Override
+    public AjaxResult preValidation(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult executeNode(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult afterValidation(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    @Override
+    public boolean isVerificationMethod() {
+        return true;
+    }
+
+    @Override
+    @PreDestroy
+    public boolean preDestroy() {
+        return true;
+    }
+
+}

+ 77 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/chemicalfiber/PhysicalIndex.java

@@ -0,0 +1,77 @@
+package com.zkqy.execution.produce.dispersed.service.impl.runbpm.chemicalfiber;
+
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.execution.produce.dispersed.entity.CommonEntity;
+import com.zkqy.execution.produce.dispersed.entity.runbpm.BpmRunNodeFromVo;
+import com.zkqy.execution.produce.dispersed.entity.runbpm.IRunBPMEntity;
+import com.zkqy.execution.produce.dispersed.service.ICommonService;
+import com.zkqy.execution.produce.dispersed.service.IRunBPMService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PreDestroy;
+import java.util.List;
+
+/**
+ * 化纤物理指标-正常节点
+ */
+@Service("02d93bfa-51db-4edf-90bf-08ffc44eacbf")
+@Scope("prototype")
+public class PhysicalIndex implements IRunBPMService {
+
+    @Autowired
+    private ICommonService commonService;
+
+    @Override
+    public CommonEntity getNodeFormData(BpmRunNodeFromVo bpmRunNodeFromVo) {
+        //根据id查询货品详情
+        CommonEntity saleProductsParam = new CommonEntity();
+        saleProductsParam.getBasicMap().put("tableName","sale_products");
+        saleProductsParam.getConditionMap().put("id",bpmRunNodeFromVo.getTaskPlanKey());
+        CommonEntity saleProducts = commonService.getInfoById(saleProductsParam);
+        //根据货品编号得到质检单信息
+        CommonEntity inspectionListParam = new CommonEntity();
+        inspectionListParam.getBasicMap().put("tableName","inspection_list");
+        inspectionListParam.getConditionMap().put("sale_product_no",saleProducts.getResultMap().get("sale_product_no"));
+        inspectionListParam.getConditionMap().put("index_type","1");
+        CommonEntity inspectionList = commonService.getInfoById(inspectionListParam);
+        //根据质检单编号得到质检单详情
+        CommonEntity inspectionListInfoParam = new CommonEntity();
+        inspectionListInfoParam.getBasicMap().put("tableName","inspection_list_info");
+        inspectionListInfoParam.getQueryMap().put("inspection_list_no",inspectionList.getResultMap().get("inspection_list_no"));
+        inspectionListInfoParam.getQueryMap().put("del_flag","0");
+        List<CommonEntity> inspectionListInfoList = commonService.selectList(inspectionListInfoParam);
+        CommonEntity result = new CommonEntity();
+        result.getResultMap().put("saleProducts",saleProducts);
+        result.getResultMap().put("inspectionList",inspectionList);
+        result.getResultMap().put("inspectionListInfo",inspectionListInfoList);
+        return result;
+    }
+
+    @Override
+    public AjaxResult preValidation(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult executeNode(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult afterValidation(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    @Override
+    public boolean isVerificationMethod() {
+        return true;
+    }
+
+    @Override
+    @PreDestroy
+    public boolean preDestroy() {
+        return true;
+    }
+}