瀏覽代碼

订单原材料显示上面货品,打印显示下单颜色,应收明细排序,入库权限,

LiangtongHe 2 月之前
父節點
當前提交
f9e363fa91
共有 36 個文件被更改,包括 3931 次插入32 次删除
  1. 104 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/LineSideCabinController.java
  2. 104 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/OperationLogController.java
  3. 29 3
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductCodeListController.java
  4. 104 0
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/SilkcartController.java
  5. 319 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/LineSideCabin.java
  6. 289 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/OperationLog.java
  7. 93 0
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/Silkcart.java
  8. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/LineSideCabinMapper.java
  9. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/OperationLogMapper.java
  10. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SilkcartMapper.java
  11. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/ILineSideCabinService.java
  12. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/IOperationLogService.java
  13. 61 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/ISilkcartService.java
  14. 112 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/LineSideCabinServiceImpl.java
  15. 93 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/OperationLogServiceImpl.java
  16. 93 0
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SilkcartServiceImpl.java
  17. 183 0
      zkqy-custom-business/src/main/resources/mapper/business/LineSideCabinMapper.xml
  18. 143 0
      zkqy-custom-business/src/main/resources/mapper/business/OperationLogMapper.xml
  19. 7 6
      zkqy-custom-business/src/main/resources/mapper/business/ProductCodeListMapper.xml
  20. 1 1
      zkqy-custom-business/src/main/resources/mapper/business/SaleAccountsReceivableDetailMapper.xml
  21. 71 0
      zkqy-custom-business/src/main/resources/mapper/business/SilkcartMapper.xml
  22. 74 0
      zkqy-ui/src/api/lineSideCabin/lineSideCabin.js
  23. 44 0
      zkqy-ui/src/api/operationLog/operationLog.js
  24. 44 0
      zkqy-ui/src/api/silkcart/silkcart.js
  25. 9 3
      zkqy-ui/src/lang/zh.js
  26. 5 2
      zkqy-ui/src/utils/print/outBoundPrint.js
  27. 1 1
      zkqy-ui/src/views/orderMange/approve.vue
  28. 7 5
      zkqy-ui/src/views/orderMange/codeListManage/index.vue
  29. 5 0
      zkqy-ui/src/views/orderMange/components/dialogForm/OutBound.vue
  30. 42 8
      zkqy-ui/src/views/orderMange/index.vue
  31. 476 0
      zkqy-ui/src/views/orderMange/lineSideCabin/InboundManagement.vue
  32. 470 0
      zkqy-ui/src/views/orderMange/lineSideCabin/index.vue
  33. 374 0
      zkqy-ui/src/views/orderMange/operationLog/index.vue
  34. 2 2
      zkqy-ui/src/views/orderMange/productcodelog/index.vue
  35. 4 1
      zkqy-ui/src/views/orderMange/retailMange/index.vue
  36. 263 0
      zkqy-ui/src/views/orderMange/silkcart/index.vue

+ 104 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/LineSideCabinController.java

@@ -0,0 +1,104 @@
+package com.zkqy.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+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.LineSideCabin;
+import com.zkqy.business.service.ILineSideCabinService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 线边舱库存Controller
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+@RestController
+@RequestMapping("/lineSideCabin/lineSideCabin")
+public class LineSideCabinController extends BaseController
+{
+    @Autowired
+    private ILineSideCabinService lineSideCabinService;
+
+    /**
+     * 查询线边舱库存列表
+     */
+    @PreAuthorize("@ss.hasPermi('lineSideCabin:lineSideCabin:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(LineSideCabin lineSideCabin)
+    {
+        startPage();
+        List<LineSideCabin> list = lineSideCabinService.selectLineSideCabinList(lineSideCabin);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出线边舱库存列表
+     */
+    @PreAuthorize("@ss.hasPermi('lineSideCabin:lineSideCabin:export')")
+    @Log(title = "线边舱库存", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, LineSideCabin lineSideCabin)
+    {
+        List<LineSideCabin> list = lineSideCabinService.selectLineSideCabinList(lineSideCabin);
+        ExcelUtil<LineSideCabin> util = new ExcelUtil<LineSideCabin>(LineSideCabin.class);
+        util.exportExcel(response, list, "线边舱库存数据");
+    }
+
+    /**
+     * 获取线边舱库存详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('lineSideCabin:lineSideCabin:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(lineSideCabinService.selectLineSideCabinById(id));
+    }
+
+    /**
+     * 新增线边舱库存
+     */
+    @PreAuthorize("@ss.hasPermi('lineSideCabin:lineSideCabin:add')")
+    @Log(title = "线边舱库存", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody LineSideCabin lineSideCabin)
+    {
+        return toAjax(lineSideCabinService.insertLineSideCabin(lineSideCabin));
+    }
+
+    /**
+     * 修改线边舱库存
+     */
+    @PreAuthorize("@ss.hasPermi('lineSideCabin:lineSideCabin:edit')")
+    @Log(title = "线边舱库存", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody LineSideCabin lineSideCabin)
+    {
+        return toAjax(lineSideCabinService.updateLineSideCabin(lineSideCabin));
+    }
+
+    /**
+     * 删除线边舱库存
+     */
+    @PreAuthorize("@ss.hasPermi('lineSideCabin:lineSideCabin:remove')")
+    @Log(title = "线边舱库存", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(lineSideCabinService.deleteLineSideCabinByIds(ids));
+    }
+}

+ 104 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/OperationLogController.java

@@ -0,0 +1,104 @@
+package com.zkqy.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+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.OperationLog;
+import com.zkqy.business.service.IOperationLogService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 流转日志Controller
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+@RestController
+@RequestMapping("/operationLog/operationLog")
+public class OperationLogController extends BaseController
+{
+    @Autowired
+    private IOperationLogService operationLogService;
+
+    /**
+     * 查询流转日志列表
+     */
+    @PreAuthorize("@ss.hasPermi('operationLog:operationLog:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(OperationLog operationLog)
+    {
+        startPage();
+        List<OperationLog> list = operationLogService.selectOperationLogList(operationLog);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出流转日志列表
+     */
+    @PreAuthorize("@ss.hasPermi('operationLog:operationLog:export')")
+    @Log(title = "流转日志", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, OperationLog operationLog)
+    {
+        List<OperationLog> list = operationLogService.selectOperationLogList(operationLog);
+        ExcelUtil<OperationLog> util = new ExcelUtil<OperationLog>(OperationLog.class);
+        util.exportExcel(response, list, "流转日志数据");
+    }
+
+    /**
+     * 获取流转日志详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('operationLog:operationLog:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(operationLogService.selectOperationLogById(id));
+    }
+
+    /**
+     * 新增流转日志
+     */
+    @PreAuthorize("@ss.hasPermi('operationLog:operationLog:add')")
+    @Log(title = "流转日志", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody OperationLog operationLog)
+    {
+        return toAjax(operationLogService.insertOperationLog(operationLog));
+    }
+
+    /**
+     * 修改流转日志
+     */
+    @PreAuthorize("@ss.hasPermi('operationLog:operationLog:edit')")
+    @Log(title = "流转日志", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody OperationLog operationLog)
+    {
+        return toAjax(operationLogService.updateOperationLog(operationLog));
+    }
+
+    /**
+     * 删除流转日志
+     */
+    @PreAuthorize("@ss.hasPermi('operationLog:operationLog:remove')")
+    @Log(title = "流转日志", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(operationLogService.deleteOperationLogByIds(ids));
+    }
+}

+ 29 - 3
zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductCodeListController.java

@@ -1,14 +1,18 @@
 package com.zkqy.business.controller;
 
+import java.util.Date;
 import java.util.List;
 
+import com.zkqy.business.domain.ProductCodeAList;
+import com.zkqy.business.domain.ProductCodeLog;
 import com.zkqy.business.domain.ProductWarehousingRecord;
 import com.zkqy.business.domain.vo.NewOldProductCodeListVO;
 import com.zkqy.business.domain.vo.ProductCodeListVO;
-import com.zkqy.business.service.IProductOutboundRecordService;
-import com.zkqy.business.service.IProductWarehousingRecordService;
+import com.zkqy.business.service.*;
+import com.zkqy.common.utils.SecurityUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
@@ -17,7 +21,6 @@ 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.ProductCodeList;
-import com.zkqy.business.service.IProductCodeListService;
 import com.zkqy.common.core.page.TableDataInfo;
 
 /**
@@ -39,6 +42,11 @@ public class ProductCodeListController extends BaseController {
     @Autowired // 出库记录
     private IProductOutboundRecordService productOutboundRecordService;
 
+    @Autowired
+    private IProductCodeAListService productCodeAListService;
+
+    @Autowired // 修改日志
+    private IProductCodeLogService productCodeLogService;
     /**
      * 查询产品码单列表
      */
@@ -182,6 +190,24 @@ public class ProductCodeListController extends BaseController {
     @DeleteMapping("/{ids}")
     @ApiOperation(value = "删除产品码单")
     public AjaxResult remove(@PathVariable String[] ids) {
+        if (ids.length > 0){
+            for(int i = 0;i<ids.length;i++){
+                Long id = Long.valueOf(ids[i]);
+                ProductCodeAList historyproductCodeAList = productCodeAListService.selectProductCodeAListById(id);
+                ProductCodeLog productCodeLog = new ProductCodeLog();
+                BeanUtils.copyProperties(historyproductCodeAList,productCodeLog);
+                productCodeLog.setId(null);
+                productCodeLog.setFatherid(historyproductCodeAList.getId());
+                productCodeLog.setCreateBy(historyproductCodeAList.getCreateBy());
+                productCodeLog.setCreateById(historyproductCodeAList.getCreateById());
+                productCodeLog.setCreateTime(historyproductCodeAList.getCreateTime());
+                productCodeLog.setUpdateBy(SecurityUtils.getUsername()+"删除日志");
+                productCodeLog.setUpdateTime(new Date());
+                productCodeLog.setUpdateById(SecurityUtils.getUserId());
+                productCodeLogService.insertProductCodeLog(productCodeLog);
+            }
+        }
+
         return toAjax(productCodeListService.deleteProductCodeListByIds(ids));
     }
 

+ 104 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/SilkcartController.java

@@ -0,0 +1,104 @@
+package com.zkqy.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+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.Silkcart;
+import com.zkqy.business.service.ISilkcartService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 丝车字典Controller
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+@RestController
+@RequestMapping("/silkcart/silkcart")
+public class SilkcartController extends BaseController
+{
+    @Autowired
+    private ISilkcartService silkcartService;
+
+    /**
+     * 查询丝车字典列表
+     */
+    @PreAuthorize("@ss.hasPermi('silkcart:silkcart:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(Silkcart silkcart)
+    {
+        startPage();
+        List<Silkcart> list = silkcartService.selectSilkcartList(silkcart);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出丝车字典列表
+     */
+    @PreAuthorize("@ss.hasPermi('silkcart:silkcart:export')")
+    @Log(title = "丝车字典", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, Silkcart silkcart)
+    {
+        List<Silkcart> list = silkcartService.selectSilkcartList(silkcart);
+        ExcelUtil<Silkcart> util = new ExcelUtil<Silkcart>(Silkcart.class);
+        util.exportExcel(response, list, "丝车字典数据");
+    }
+
+    /**
+     * 获取丝车字典详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('silkcart:silkcart:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(silkcartService.selectSilkcartById(id));
+    }
+
+    /**
+     * 新增丝车字典
+     */
+    @PreAuthorize("@ss.hasPermi('silkcart:silkcart:add')")
+    @Log(title = "丝车字典", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Silkcart silkcart)
+    {
+        return toAjax(silkcartService.insertSilkcart(silkcart));
+    }
+
+    /**
+     * 修改丝车字典
+     */
+    @PreAuthorize("@ss.hasPermi('silkcart:silkcart:edit')")
+    @Log(title = "丝车字典", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Silkcart silkcart)
+    {
+        return toAjax(silkcartService.updateSilkcart(silkcart));
+    }
+
+    /**
+     * 删除丝车字典
+     */
+    @PreAuthorize("@ss.hasPermi('silkcart:silkcart:remove')")
+    @Log(title = "丝车字典", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(silkcartService.deleteSilkcartByIds(ids));
+    }
+}

+ 319 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/LineSideCabin.java

@@ -0,0 +1,319 @@
+package com.zkqy.business.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+import com.zkqy.common.core.domain.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 线边舱库存对象 lineSideCabin
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+public class LineSideCabin extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    private Long id;
+
+    /** 产品编号 */
+    @Excel(name = "产品编号")
+    private Long productNo;
+
+    /** 品名 */
+    @Excel(name = "品名")
+    private String productName;
+
+    /** 产品规格 */
+    @Excel(name = "产品规格")
+    private String productSpecifications;
+
+    public String getProductId() {
+        return productId;
+    }
+
+    public void setProductId(String productId) {
+        this.productId = productId;
+    }
+
+    /** 类型 */
+    @Excel(name = "产品id")
+    private String productId;
+
+    public String getBatchNumber() {
+        return batchNumber;
+    }
+
+    public void setBatchNumber(String batchNumber) {
+        this.batchNumber = batchNumber;
+    }
+
+    /** 批号 */
+    @Excel(name = "批号")
+    private String batchNumber;
+
+    /** 色泽 */
+    @Excel(name = "色泽")
+    private String colours;
+
+    public String getMachineTool() {
+        return machineTool;
+    }
+
+    public void setMachineTool(String machineTool) {
+        this.machineTool = machineTool;
+    }
+
+    /** 机台 */
+    @Excel(name = "机台")
+    private String machineTool;
+
+    /** 卷数 */
+    @Excel(name = "卷数")
+    private String js;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private String status;
+
+    /** 毛重 */
+    @Excel(name = "毛重")
+    private String standby;
+
+    /** 皮重 */
+    @Excel(name = "皮重")
+    private String standby1;
+
+    /** 净重 */
+    @Excel(name = "净重")
+    private String standby2;
+
+    /** 任务号 */
+    @Excel(name = "任务号")
+    private String standby3;
+
+    /** 领料车间 */
+    @Excel(name = "领料车间")
+    private String workshop;
+
+    /** 领料人 */
+    @Excel(name = "领料人")
+    private String recipient;
+
+    /** 领料时间 */
+    @Excel(name = "领料时间")
+    private String collectTime;
+
+    /** 确认人 */
+    @Excel(name = "确认人")
+    private String confirm;
+
+    /** 确认时间 */
+    @Excel(name = "确认时间")
+    private String confirmTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @Override
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    private String createBy;
+
+    public String getScid() {
+        return scid;
+    }
+
+    public void setScid(String scid) {
+        this.scid = scid;
+    }
+
+    /** 丝车id */
+    private String scid;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setProductNo(Long productNo) 
+    {
+        this.productNo = productNo;
+    }
+
+    public Long getProductNo() 
+    {
+        return productNo;
+    }
+    public void setProductName(String productName) 
+    {
+        this.productName = productName;
+    }
+
+    public String getProductName() 
+    {
+        return productName;
+    }
+    public void setProductSpecifications(String productSpecifications) 
+    {
+        this.productSpecifications = productSpecifications;
+    }
+
+    public String getProductSpecifications() 
+    {
+        return productSpecifications;
+    }
+
+    public void setColours(String colours) 
+    {
+        this.colours = colours;
+    }
+
+    public String getColours() 
+    {
+        return colours;
+    }
+
+    public void setJs(String js) 
+    {
+        this.js = js;
+    }
+
+    public String getJs() 
+    {
+        return js;
+    }
+    public void setStatus(String status) 
+    {
+        this.status = status;
+    }
+
+    public String getStatus() 
+    {
+        return status;
+    }
+    public void setStandby(String standby) 
+    {
+        this.standby = standby;
+    }
+
+    public String getStandby() 
+    {
+        return standby;
+    }
+    public void setStandby1(String standby1) 
+    {
+        this.standby1 = standby1;
+    }
+
+    public String getStandby1() 
+    {
+        return standby1;
+    }
+    public void setStandby2(String standby2) 
+    {
+        this.standby2 = standby2;
+    }
+
+    public String getStandby2() 
+    {
+        return standby2;
+    }
+    public void setStandby3(String standby3) 
+    {
+        this.standby3 = standby3;
+    }
+
+    public String getStandby3() 
+    {
+        return standby3;
+    }
+    public void setWorkshop(String workshop) 
+    {
+        this.workshop = workshop;
+    }
+
+    public String getWorkshop() 
+    {
+        return workshop;
+    }
+    public void setRecipient(String recipient) 
+    {
+        this.recipient = recipient;
+    }
+
+    public String getRecipient() 
+    {
+        return recipient;
+    }
+    public void setCollectTime(String collectTime) 
+    {
+        this.collectTime = collectTime;
+    }
+
+    public String getCollectTime() 
+    {
+        return collectTime;
+    }
+    public void setConfirm(String confirm) 
+    {
+        this.confirm = confirm;
+    }
+
+    public String getConfirm() 
+    {
+        return confirm;
+    }
+    public void setConfirmTime(String confirmTime) 
+    {
+        this.confirmTime = confirmTime;
+    }
+
+    public String getConfirmTime() 
+    {
+        return confirmTime;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("productNo", getProductNo())
+            .append("productName", getProductName())
+            .append("productSpecifications", getProductSpecifications())
+            .append("productId", getProductId())
+            .append("batchNumber", getBatchNumber())
+            .append("colours", getColours())
+            .append("machineTool", getMachineTool())
+            .append("js", getJs())
+            .append("status", getStatus())
+            .append("standby", getStandby())
+            .append("standby1", getStandby1())
+            .append("standby2", getStandby2())
+            .append("standby3", getStandby3())
+            .append("workshop", getWorkshop())
+            .append("recipient", getRecipient())
+            .append("collectTime", getCollectTime())
+            .append("confirm", getConfirm())
+            .append("confirmTime", getConfirmTime())
+            .append("scid", getScid())
+            .toString();
+    }
+}

+ 289 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/OperationLog.java

@@ -0,0 +1,289 @@
+package com.zkqy.business.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+import com.zkqy.common.core.domain.BaseEntity;
+
+/**
+ * 流转日志对象 operationLog
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+public class OperationLog extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    private Long id;
+
+    /** 产品编号 */
+    @Excel(name = "产品编号")
+    private Long productNo;
+
+    /** 品名 */
+    @Excel(name = "品名")
+    private String productName;
+
+    /** 产品规格 */
+    @Excel(name = "产品规格")
+    private String productSpecifications;
+
+    /** 类型 */
+    @Excel(name = "类型")
+    private String productType;
+
+    /** 批号 */
+    @Excel(name = "批号")
+    private Long batchNumber;
+
+    /** 色泽 */
+    @Excel(name = "色泽")
+    private String colours;
+
+    /** 机台 */
+    @Excel(name = "机台")
+    private String jt;
+
+    /** 卷数 */
+    @Excel(name = "卷数")
+    private String js;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private String status;
+
+    /** 毛重 */
+    @Excel(name = "毛重")
+    private String standby;
+
+    /** 皮重 */
+    @Excel(name = "皮重")
+    private String standby1;
+
+    /** 净重 */
+    @Excel(name = "净重")
+    private String standby2;
+
+    /** 任务号 */
+    @Excel(name = "任务号")
+    private String standby3;
+
+    /** 领料车间 */
+    @Excel(name = "领料车间")
+    private String workshop;
+
+    /** 领料人 */
+    @Excel(name = "领料人")
+    private String recipient;
+
+    /** 领料时间 */
+    @Excel(name = "领料时间")
+    private String collectTime;
+
+    /** 确认人 */
+    @Excel(name = "确认人")
+    private String confirm;
+
+    /** 确认时间 */
+    @Excel(name = "确认时间")
+    private String confirmTime;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setProductNo(Long productNo) 
+    {
+        this.productNo = productNo;
+    }
+
+    public Long getProductNo() 
+    {
+        return productNo;
+    }
+    public void setProductName(String productName) 
+    {
+        this.productName = productName;
+    }
+
+    public String getProductName() 
+    {
+        return productName;
+    }
+    public void setProductSpecifications(String productSpecifications) 
+    {
+        this.productSpecifications = productSpecifications;
+    }
+
+    public String getProductSpecifications() 
+    {
+        return productSpecifications;
+    }
+    public void setProductType(String productType) 
+    {
+        this.productType = productType;
+    }
+
+    public String getProductType() 
+    {
+        return productType;
+    }
+    public void setBatchNumber(Long batchNumber) 
+    {
+        this.batchNumber = batchNumber;
+    }
+
+    public Long getBatchNumber() 
+    {
+        return batchNumber;
+    }
+    public void setColours(String colours) 
+    {
+        this.colours = colours;
+    }
+
+    public String getColours() 
+    {
+        return colours;
+    }
+    public void setJt(String jt) 
+    {
+        this.jt = jt;
+    }
+
+    public String getJt() 
+    {
+        return jt;
+    }
+    public void setJs(String js) 
+    {
+        this.js = js;
+    }
+
+    public String getJs() 
+    {
+        return js;
+    }
+    public void setStatus(String status) 
+    {
+        this.status = status;
+    }
+
+    public String getStatus() 
+    {
+        return status;
+    }
+    public void setStandby(String standby) 
+    {
+        this.standby = standby;
+    }
+
+    public String getStandby() 
+    {
+        return standby;
+    }
+    public void setStandby1(String standby1) 
+    {
+        this.standby1 = standby1;
+    }
+
+    public String getStandby1() 
+    {
+        return standby1;
+    }
+    public void setStandby2(String standby2) 
+    {
+        this.standby2 = standby2;
+    }
+
+    public String getStandby2() 
+    {
+        return standby2;
+    }
+    public void setStandby3(String standby3) 
+    {
+        this.standby3 = standby3;
+    }
+
+    public String getStandby3() 
+    {
+        return standby3;
+    }
+    public void setWorkshop(String workshop) 
+    {
+        this.workshop = workshop;
+    }
+
+    public String getWorkshop() 
+    {
+        return workshop;
+    }
+    public void setRecipient(String recipient) 
+    {
+        this.recipient = recipient;
+    }
+
+    public String getRecipient() 
+    {
+        return recipient;
+    }
+    public void setCollectTime(String collectTime) 
+    {
+        this.collectTime = collectTime;
+    }
+
+    public String getCollectTime() 
+    {
+        return collectTime;
+    }
+    public void setConfirm(String confirm) 
+    {
+        this.confirm = confirm;
+    }
+
+    public String getConfirm() 
+    {
+        return confirm;
+    }
+    public void setConfirmTime(String confirmTime) 
+    {
+        this.confirmTime = confirmTime;
+    }
+
+    public String getConfirmTime() 
+    {
+        return confirmTime;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("productNo", getProductNo())
+            .append("productName", getProductName())
+            .append("productSpecifications", getProductSpecifications())
+            .append("productType", getProductType())
+            .append("batchNumber", getBatchNumber())
+            .append("colours", getColours())
+            .append("jt", getJt())
+            .append("js", getJs())
+            .append("status", getStatus())
+            .append("standby", getStandby())
+            .append("standby1", getStandby1())
+            .append("standby2", getStandby2())
+            .append("standby3", getStandby3())
+            .append("workshop", getWorkshop())
+            .append("recipient", getRecipient())
+            .append("collectTime", getCollectTime())
+            .append("confirm", getConfirm())
+            .append("confirmTime", getConfirmTime())
+            .toString();
+    }
+}

+ 93 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/Silkcart.java

@@ -0,0 +1,93 @@
+package com.zkqy.business.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+import com.zkqy.common.core.domain.BaseEntity;
+
+/**
+ * 丝车字典对象 silkcart
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+public class Silkcart extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 车号 */
+    @Excel(name = "车号")
+    private String scname;
+
+    /** 车重 */
+    @Excel(name = "车重")
+    private String scWeight;
+
+    /** 备用1 */
+    @Excel(name = "备用1")
+    private String standby1;
+
+    /** 备用2 */
+    @Excel(name = "备用2")
+    private String standby2;
+
+    public String getScWeight() {
+        return scWeight;
+    }
+
+    public void setScWeight(String scWeight) {
+        this.scWeight = scWeight;
+    }
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setScname(String scname) 
+    {
+        this.scname = scname;
+    }
+
+    public String getScname()
+    {
+        return scname;
+    }
+
+    public void setStandby1(String standby1) 
+    {
+        this.standby1 = standby1;
+    }
+
+    public String getStandby1() 
+    {
+        return standby1;
+    }
+    public void setStandby2(String standby2) 
+    {
+        this.standby2 = standby2;
+    }
+
+    public String getStandby2() 
+    {
+        return standby2;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("scname", getScname())
+            .append("scWeight", getScWeight())
+            .append("standby1", getStandby1())
+            .append("standby2", getStandby2())
+            .toString();
+    }
+}

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

@@ -0,0 +1,61 @@
+package com.zkqy.business.mapper;
+
+import java.util.List;
+import com.zkqy.business.domain.LineSideCabin;
+
+/**
+ * 线边舱库存Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+public interface LineSideCabinMapper 
+{
+    /**
+     * 查询线边舱库存
+     * 
+     * @param id 线边舱库存主键
+     * @return 线边舱库存
+     */
+    public LineSideCabin selectLineSideCabinById(Long id);
+
+    /**
+     * 查询线边舱库存列表
+     * 
+     * @param lineSideCabin 线边舱库存
+     * @return 线边舱库存集合
+     */
+    public List<LineSideCabin> selectLineSideCabinList(LineSideCabin lineSideCabin);
+
+    /**
+     * 新增线边舱库存
+     * 
+     * @param lineSideCabin 线边舱库存
+     * @return 结果
+     */
+    public int insertLineSideCabin(LineSideCabin lineSideCabin);
+
+    /**
+     * 修改线边舱库存
+     * 
+     * @param lineSideCabin 线边舱库存
+     * @return 结果
+     */
+    public int updateLineSideCabin(LineSideCabin lineSideCabin);
+
+    /**
+     * 删除线边舱库存
+     * 
+     * @param id 线边舱库存主键
+     * @return 结果
+     */
+    public int deleteLineSideCabinById(Long id);
+
+    /**
+     * 批量删除线边舱库存
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteLineSideCabinByIds(Long[] ids);
+}

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

@@ -0,0 +1,61 @@
+package com.zkqy.business.mapper;
+
+import java.util.List;
+import com.zkqy.business.domain.OperationLog;
+
+/**
+ * 流转日志Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+public interface OperationLogMapper 
+{
+    /**
+     * 查询流转日志
+     * 
+     * @param id 流转日志主键
+     * @return 流转日志
+     */
+    public OperationLog selectOperationLogById(Long id);
+
+    /**
+     * 查询流转日志列表
+     * 
+     * @param operationLog 流转日志
+     * @return 流转日志集合
+     */
+    public List<OperationLog> selectOperationLogList(OperationLog operationLog);
+
+    /**
+     * 新增流转日志
+     * 
+     * @param operationLog 流转日志
+     * @return 结果
+     */
+    public int insertOperationLog(OperationLog operationLog);
+
+    /**
+     * 修改流转日志
+     * 
+     * @param operationLog 流转日志
+     * @return 结果
+     */
+    public int updateOperationLog(OperationLog operationLog);
+
+    /**
+     * 删除流转日志
+     * 
+     * @param id 流转日志主键
+     * @return 结果
+     */
+    public int deleteOperationLogById(Long id);
+
+    /**
+     * 批量删除流转日志
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteOperationLogByIds(Long[] ids);
+}

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

@@ -0,0 +1,61 @@
+package com.zkqy.business.mapper;
+
+import java.util.List;
+import com.zkqy.business.domain.Silkcart;
+
+/**
+ * 丝车字典Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+public interface SilkcartMapper 
+{
+    /**
+     * 查询丝车字典
+     * 
+     * @param id 丝车字典主键
+     * @return 丝车字典
+     */
+    public Silkcart selectSilkcartById(Long id);
+
+    /**
+     * 查询丝车字典列表
+     * 
+     * @param silkcart 丝车字典
+     * @return 丝车字典集合
+     */
+    public List<Silkcart> selectSilkcartList(Silkcart silkcart);
+
+    /**
+     * 新增丝车字典
+     * 
+     * @param silkcart 丝车字典
+     * @return 结果
+     */
+    public int insertSilkcart(Silkcart silkcart);
+
+    /**
+     * 修改丝车字典
+     * 
+     * @param silkcart 丝车字典
+     * @return 结果
+     */
+    public int updateSilkcart(Silkcart silkcart);
+
+    /**
+     * 删除丝车字典
+     * 
+     * @param id 丝车字典主键
+     * @return 结果
+     */
+    public int deleteSilkcartById(Long id);
+
+    /**
+     * 批量删除丝车字典
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteSilkcartByIds(Long[] ids);
+}

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

@@ -0,0 +1,61 @@
+package com.zkqy.business.service;
+
+import java.util.List;
+import com.zkqy.business.domain.LineSideCabin;
+
+/**
+ * 线边舱库存Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+public interface ILineSideCabinService 
+{
+    /**
+     * 查询线边舱库存
+     * 
+     * @param id 线边舱库存主键
+     * @return 线边舱库存
+     */
+    public LineSideCabin selectLineSideCabinById(Long id);
+
+    /**
+     * 查询线边舱库存列表
+     * 
+     * @param lineSideCabin 线边舱库存
+     * @return 线边舱库存集合
+     */
+    public List<LineSideCabin> selectLineSideCabinList(LineSideCabin lineSideCabin);
+
+    /**
+     * 新增线边舱库存
+     * 
+     * @param lineSideCabin 线边舱库存
+     * @return 结果
+     */
+    public int insertLineSideCabin(LineSideCabin lineSideCabin);
+
+    /**
+     * 修改线边舱库存
+     * 
+     * @param lineSideCabin 线边舱库存
+     * @return 结果
+     */
+    public int updateLineSideCabin(LineSideCabin lineSideCabin);
+
+    /**
+     * 批量删除线边舱库存
+     * 
+     * @param ids 需要删除的线边舱库存主键集合
+     * @return 结果
+     */
+    public int deleteLineSideCabinByIds(Long[] ids);
+
+    /**
+     * 删除线边舱库存信息
+     * 
+     * @param id 线边舱库存主键
+     * @return 结果
+     */
+    public int deleteLineSideCabinById(Long id);
+}

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

@@ -0,0 +1,61 @@
+package com.zkqy.business.service;
+
+import java.util.List;
+import com.zkqy.business.domain.OperationLog;
+
+/**
+ * 流转日志Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+public interface IOperationLogService 
+{
+    /**
+     * 查询流转日志
+     * 
+     * @param id 流转日志主键
+     * @return 流转日志
+     */
+    public OperationLog selectOperationLogById(Long id);
+
+    /**
+     * 查询流转日志列表
+     * 
+     * @param operationLog 流转日志
+     * @return 流转日志集合
+     */
+    public List<OperationLog> selectOperationLogList(OperationLog operationLog);
+
+    /**
+     * 新增流转日志
+     * 
+     * @param operationLog 流转日志
+     * @return 结果
+     */
+    public int insertOperationLog(OperationLog operationLog);
+
+    /**
+     * 修改流转日志
+     * 
+     * @param operationLog 流转日志
+     * @return 结果
+     */
+    public int updateOperationLog(OperationLog operationLog);
+
+    /**
+     * 批量删除流转日志
+     * 
+     * @param ids 需要删除的流转日志主键集合
+     * @return 结果
+     */
+    public int deleteOperationLogByIds(Long[] ids);
+
+    /**
+     * 删除流转日志信息
+     * 
+     * @param id 流转日志主键
+     * @return 结果
+     */
+    public int deleteOperationLogById(Long id);
+}

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

@@ -0,0 +1,61 @@
+package com.zkqy.business.service;
+
+import java.util.List;
+import com.zkqy.business.domain.Silkcart;
+
+/**
+ * 丝车字典Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+public interface ISilkcartService 
+{
+    /**
+     * 查询丝车字典
+     * 
+     * @param id 丝车字典主键
+     * @return 丝车字典
+     */
+    public Silkcart selectSilkcartById(Long id);
+
+    /**
+     * 查询丝车字典列表
+     * 
+     * @param silkcart 丝车字典
+     * @return 丝车字典集合
+     */
+    public List<Silkcart> selectSilkcartList(Silkcart silkcart);
+
+    /**
+     * 新增丝车字典
+     * 
+     * @param silkcart 丝车字典
+     * @return 结果
+     */
+    public int insertSilkcart(Silkcart silkcart);
+
+    /**
+     * 修改丝车字典
+     * 
+     * @param silkcart 丝车字典
+     * @return 结果
+     */
+    public int updateSilkcart(Silkcart silkcart);
+
+    /**
+     * 批量删除丝车字典
+     * 
+     * @param ids 需要删除的丝车字典主键集合
+     * @return 结果
+     */
+    public int deleteSilkcartByIds(Long[] ids);
+
+    /**
+     * 删除丝车字典信息
+     * 
+     * @param id 丝车字典主键
+     * @return 结果
+     */
+    public int deleteSilkcartById(Long id);
+}

+ 112 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/LineSideCabinServiceImpl.java

@@ -0,0 +1,112 @@
+package com.zkqy.business.service.impl;
+
+import java.util.Date;
+import java.util.List;
+
+import com.zkqy.business.domain.Silkcart;
+import com.zkqy.business.mapper.SilkcartMapper;
+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.LineSideCabinMapper;
+import com.zkqy.business.domain.LineSideCabin;
+import com.zkqy.business.service.ILineSideCabinService;
+
+/**
+ * 线边舱库存Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+@Service
+public class LineSideCabinServiceImpl implements ILineSideCabinService 
+{
+    @Autowired
+    private LineSideCabinMapper lineSideCabinMapper;
+
+    @Autowired
+    private SilkcartMapper silkcartMapper;
+
+    /**
+     * 查询线边舱库存
+     * 
+     * @param id 线边舱库存主键
+     * @return 线边舱库存
+     */
+    @Override
+    public LineSideCabin selectLineSideCabinById(Long id)
+    {
+        return lineSideCabinMapper.selectLineSideCabinById(id);
+    }
+
+    /**
+     * 查询线边舱库存列表
+     * 
+     * @param lineSideCabin 线边舱库存
+     * @return 线边舱库存
+     */
+    @Override
+    public List<LineSideCabin> selectLineSideCabinList(LineSideCabin lineSideCabin)
+    {
+        return lineSideCabinMapper.selectLineSideCabinList(lineSideCabin);
+    }
+
+    /**
+     * 新增线边舱库存
+     * 
+     * @param lineSideCabin 线边舱库存
+     * @return 结果
+     */
+    @Override
+    public int insertLineSideCabin(LineSideCabin lineSideCabin)
+    {
+        /** 根据前端选择的丝车id取得丝车数据计算净重 */
+        Silkcart silkcart = new Silkcart();
+        silkcart = silkcartMapper.selectSilkcartById(Long.parseLong(lineSideCabin.getScid()));
+        Double mz = Double.parseDouble(lineSideCabin.getStandby());//毛重
+        Double pz = Double.parseDouble(silkcart.getScWeight());//皮重
+        Double jz = mz - pz;//计算净重
+        lineSideCabin.setStandby2(jz.toString());//赋值净重
+        lineSideCabin.setStandby1(pz.toString());//赋值皮重
+        lineSideCabin.setCreateTime(DateUtils.getNowDate());//新增时间
+        lineSideCabin.setCreateBy(SecurityUtils.getUsername());//创建人
+        return lineSideCabinMapper.insertLineSideCabin(lineSideCabin);
+    }
+
+    /**
+     * 修改线边舱库存
+     * 
+     * @param lineSideCabin 线边舱库存
+     * @return 结果
+     */
+    @Override
+    public int updateLineSideCabin(LineSideCabin lineSideCabin)
+    {
+        return lineSideCabinMapper.updateLineSideCabin(lineSideCabin);
+    }
+
+    /**
+     * 批量删除线边舱库存
+     * 
+     * @param ids 需要删除的线边舱库存主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLineSideCabinByIds(Long[] ids)
+    {
+        return lineSideCabinMapper.deleteLineSideCabinByIds(ids);
+    }
+
+    /**
+     * 删除线边舱库存信息
+     * 
+     * @param id 线边舱库存主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLineSideCabinById(Long id)
+    {
+        return lineSideCabinMapper.deleteLineSideCabinById(id);
+    }
+}

+ 93 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/OperationLogServiceImpl.java

@@ -0,0 +1,93 @@
+package com.zkqy.business.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.business.mapper.OperationLogMapper;
+import com.zkqy.business.domain.OperationLog;
+import com.zkqy.business.service.IOperationLogService;
+
+/**
+ * 流转日志Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+@Service
+public class OperationLogServiceImpl implements IOperationLogService 
+{
+    @Autowired
+    private OperationLogMapper operationLogMapper;
+
+    /**
+     * 查询流转日志
+     * 
+     * @param id 流转日志主键
+     * @return 流转日志
+     */
+    @Override
+    public OperationLog selectOperationLogById(Long id)
+    {
+        return operationLogMapper.selectOperationLogById(id);
+    }
+
+    /**
+     * 查询流转日志列表
+     * 
+     * @param operationLog 流转日志
+     * @return 流转日志
+     */
+    @Override
+    public List<OperationLog> selectOperationLogList(OperationLog operationLog)
+    {
+        return operationLogMapper.selectOperationLogList(operationLog);
+    }
+
+    /**
+     * 新增流转日志
+     * 
+     * @param operationLog 流转日志
+     * @return 结果
+     */
+    @Override
+    public int insertOperationLog(OperationLog operationLog)
+    {
+        return operationLogMapper.insertOperationLog(operationLog);
+    }
+
+    /**
+     * 修改流转日志
+     * 
+     * @param operationLog 流转日志
+     * @return 结果
+     */
+    @Override
+    public int updateOperationLog(OperationLog operationLog)
+    {
+        return operationLogMapper.updateOperationLog(operationLog);
+    }
+
+    /**
+     * 批量删除流转日志
+     * 
+     * @param ids 需要删除的流转日志主键
+     * @return 结果
+     */
+    @Override
+    public int deleteOperationLogByIds(Long[] ids)
+    {
+        return operationLogMapper.deleteOperationLogByIds(ids);
+    }
+
+    /**
+     * 删除流转日志信息
+     * 
+     * @param id 流转日志主键
+     * @return 结果
+     */
+    @Override
+    public int deleteOperationLogById(Long id)
+    {
+        return operationLogMapper.deleteOperationLogById(id);
+    }
+}

+ 93 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SilkcartServiceImpl.java

@@ -0,0 +1,93 @@
+package com.zkqy.business.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.business.mapper.SilkcartMapper;
+import com.zkqy.business.domain.Silkcart;
+import com.zkqy.business.service.ISilkcartService;
+
+/**
+ * 丝车字典Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-05-20
+ */
+@Service
+public class SilkcartServiceImpl implements ISilkcartService 
+{
+    @Autowired
+    private SilkcartMapper silkcartMapper;
+
+    /**
+     * 查询丝车字典
+     * 
+     * @param id 丝车字典主键
+     * @return 丝车字典
+     */
+    @Override
+    public Silkcart selectSilkcartById(Long id)
+    {
+        return silkcartMapper.selectSilkcartById(id);
+    }
+
+    /**
+     * 查询丝车字典列表
+     * 
+     * @param silkcart 丝车字典
+     * @return 丝车字典
+     */
+    @Override
+    public List<Silkcart> selectSilkcartList(Silkcart silkcart)
+    {
+        return silkcartMapper.selectSilkcartList(silkcart);
+    }
+
+    /**
+     * 新增丝车字典
+     * 
+     * @param silkcart 丝车字典
+     * @return 结果
+     */
+    @Override
+    public int insertSilkcart(Silkcart silkcart)
+    {
+        return silkcartMapper.insertSilkcart(silkcart);
+    }
+
+    /**
+     * 修改丝车字典
+     * 
+     * @param silkcart 丝车字典
+     * @return 结果
+     */
+    @Override
+    public int updateSilkcart(Silkcart silkcart)
+    {
+        return silkcartMapper.updateSilkcart(silkcart);
+    }
+
+    /**
+     * 批量删除丝车字典
+     * 
+     * @param ids 需要删除的丝车字典主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSilkcartByIds(Long[] ids)
+    {
+        return silkcartMapper.deleteSilkcartByIds(ids);
+    }
+
+    /**
+     * 删除丝车字典信息
+     * 
+     * @param id 丝车字典主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSilkcartById(Long id)
+    {
+        return silkcartMapper.deleteSilkcartById(id);
+    }
+}

+ 183 - 0
zkqy-custom-business/src/main/resources/mapper/business/LineSideCabinMapper.xml

@@ -0,0 +1,183 @@
+<?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.LineSideCabinMapper">
+    
+    <resultMap type="com.zkqy.business.domain.LineSideCabin" id="LineSideCabinResult">
+        <result property="id"    column="id"    />
+        <result property="productNo"    column="product_no"    />
+        <result property="productName"    column="product_name"    />
+        <result property="productSpecifications"    column="product_specifications"    />
+        <result property="productId"    column="product_id"    />
+        <result property="batchNumber"    column="batchNumber"    />
+        <result property="colours"    column="colours"    />
+        <result property="machineTool"    column="machineTool"    />
+        <result property="js"    column="js"    />
+        <result property="status"    column="status"    />
+        <result property="standby"    column="standby"    />
+        <result property="standby1"    column="standby1"    />
+        <result property="standby2"    column="standby2"    />
+        <result property="standby3"    column="standby3"    />
+        <result property="workshop"    column="workshop"    />
+        <result property="recipient"    column="recipient"    />
+        <result property="collectTime"    column="collectTime"    />
+        <result property="confirm"    column="confirm"    />
+        <result property="confirmTime"    column="confirmTime"    />
+        <result property="scid"    column="scid"    />
+        <result property="createTime"    column="createTime"    />
+        <result property="createBy"    column="createBy"    />
+
+    </resultMap>
+
+    <sql id="selectLineSideCabinVo">
+        SELECT
+            a.id,
+            a.product_no,
+            a.product_name,
+            a.product_specifications,
+            a.product_id,
+            a.batchNumber,
+            a.colours,
+            c.production_line_name as machineTool,
+            a.js,
+            a.STATUS,
+            a.standby,
+            a.standby1,
+            a.standby2,
+            a.standby3,
+            a.workshop,
+            a.recipient,
+            a.collectTime,
+            a.confirm,
+            a.confirmTime,
+            b.scname as scid,
+            a.createTime,
+            a.createBy
+        FROM
+            {DBNAME}.lineSideCabin as a
+        LEFT JOIN {DBNAME}.silkcart b ON a.scid = b.id
+        LEFT JOIN {DBNAME}.production_line c ON a.machineTool = c.id
+    </sql>
+
+    <select id="selectLineSideCabinList" parameterType="com.zkqy.business.domain.LineSideCabin" resultMap="LineSideCabinResult">
+        <include refid="selectLineSideCabinVo"/>
+        <where>  
+            <if test="productNo != null "> and product_no = #{productNo}</if>
+            <if test="productName != null  and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
+            <if test="productSpecifications != null  and productSpecifications != ''"> and product_specifications = #{productSpecifications}</if>
+            <if test="productId != null  and productId != ''"> and product_id = #{productId}</if>
+            <if test="batchNumber != null "> and batchNumber = #{batchNumber}</if>
+            <if test="colours != null  and colours != ''"> and colours = #{colours}</if>
+            <if test="machineTool != null  and machineTool != ''"> and machineTool = #{machineTool}</if>
+            <if test="js != null  and js != ''"> and js = #{js}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+            <if test="standby != null  and standby != ''"> and standby = #{standby}</if>
+            <if test="standby1 != null  and standby1 != ''"> and standby1 = #{standby1}</if>
+            <if test="standby2 != null  and standby2 != ''"> and standby2 = #{standby2}</if>
+            <if test="standby3 != null  and standby3 != ''"> and standby3 = #{standby3}</if>
+            <if test="workshop != null  and workshop != ''"> and workshop = #{workshop}</if>
+            <if test="recipient != null  and recipient != ''"> and recipient = #{recipient}</if>
+            <if test="collectTime != null  and collectTime != ''"> and collectTime = #{collectTime}</if>
+            <if test="confirm != null  and confirm != ''"> and confirm = #{confirm}</if>
+            <if test="confirmTime != null  and confirmTime != ''"> and confirmTime = #{confirmTime}</if>
+            <if test="createTime != null  and createTime != ''"> and createTime = #{createTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectLineSideCabinById" parameterType="Long" resultMap="LineSideCabinResult">
+        <include refid="selectLineSideCabinVo"/>
+        where a.id = #{id}
+    </select>
+
+    <insert id="insertLineSideCabin" parameterType="com.zkqy.business.domain.LineSideCabin">
+        insert into {DBNAME}.lineSideCabin
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="productNo != null">product_no,</if>
+            <if test="productName != null">product_name,</if>
+            <if test="productSpecifications != null">product_specifications,</if>
+            <if test="productId != null">product_id,</if>
+            <if test="batchNumber != null">batchNumber,</if>
+            <if test="colours != null">colours,</if>
+            <if test="machineTool != null">machineTool,</if>
+            <if test="js != null">js,</if>
+            <if test="status != null">status,</if>
+            <if test="standby != null">standby,</if>
+            <if test="standby1 != null">standby1,</if>
+            <if test="standby2 != null">standby2,</if>
+            <if test="standby3 != null">standby3,</if>
+            <if test="workshop != null">workshop,</if>
+            <if test="recipient != null">recipient,</if>
+            <if test="collectTime != null">collectTime,</if>
+            <if test="confirm != null">confirm,</if>
+            <if test="confirmTime != null">confirmTime,</if>
+            <if test="scid != null">scid,</if>
+            <if test="createTime != null">createTime,</if>
+            <if test="createBy != null">createBy,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="productNo != null">#{productNo},</if>
+            <if test="productName != null">#{productName},</if>
+            <if test="productSpecifications != null">#{productSpecifications},</if>
+            <if test="productId != null">#{productId},</if>
+            <if test="batchNumber != null">#{batchNumber},</if>
+            <if test="colours != null">#{colours},</if>
+            <if test="machineTool != null">#{machineTool},</if>
+            <if test="js != null">#{js},</if>
+            <if test="status != null">#{status},</if>
+            <if test="standby != null">#{standby},</if>
+            <if test="standby1 != null">#{standby1},</if>
+            <if test="standby2 != null">#{standby2},</if>
+            <if test="standby3 != null">#{standby3},</if>
+            <if test="workshop != null">#{workshop},</if>
+            <if test="recipient != null">#{recipient},</if>
+            <if test="collectTime != null">#{collectTime},</if>
+            <if test="confirm != null">#{confirm},</if>
+            <if test="confirmTime != null">#{confirmTime},</if>
+            <if test="scid != null">#{scid},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+         </trim>
+    </insert>
+
+    <update id="updateLineSideCabin" parameterType="com.zkqy.business.domain.LineSideCabin">
+        update {DBNAME}.lineSideCabin
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="productNo != null">product_no = #{productNo},</if>
+            <if test="productName != null">product_name = #{productName},</if>
+            <if test="productSpecifications != null">product_specifications = #{productSpecifications},</if>
+            <if test="productId != null">product_id = #{productId},</if>
+            <if test="batchNumber != null">batchNumber = #{batchNumber},</if>
+            <if test="colours != null">colours = #{colours},</if>
+            <if test="machineTool != null">machineTool = #{machineTool},</if>
+            <if test="js != null">js = #{js},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="standby != null">standby = #{standby},</if>
+            <if test="standby1 != null">standby1 = #{standby1},</if>
+            <if test="standby2 != null">standby2 = #{standby2},</if>
+            <if test="standby3 != null">standby3 = #{standby3},</if>
+            <if test="workshop != null">workshop = #{workshop},</if>
+            <if test="recipient != null">recipient = #{recipient},</if>
+            <if test="collectTime != null">collectTime = #{collectTime},</if>
+            <if test="confirm != null">confirm = #{confirm},</if>
+            <if test="confirmTime != null">confirmTime = #{confirmTime},</if>
+            <if test="scid != null">scid = #{scid},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteLineSideCabinById" parameterType="Long">
+        delete from {DBNAME}.lineSideCabin where id = #{id}
+    </delete>
+
+    <delete id="deleteLineSideCabinByIds" parameterType="String">
+        delete from {DBNAME}.lineSideCabin where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 143 - 0
zkqy-custom-business/src/main/resources/mapper/business/OperationLogMapper.xml

@@ -0,0 +1,143 @@
+<?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.OperationLogMapper">
+    
+    <resultMap type="com.zkqy.business.domain.OperationLog" id="OperationLogResult">
+        <result property="id"    column="id"    />
+        <result property="productNo"    column="product_no"    />
+        <result property="productName"    column="product_name"    />
+        <result property="productSpecifications"    column="product_specifications"    />
+        <result property="productType"    column="product_type"    />
+        <result property="batchNumber"    column="batchNumber"    />
+        <result property="colours"    column="colours"    />
+        <result property="jt"    column="jt"    />
+        <result property="js"    column="js"    />
+        <result property="status"    column="status"    />
+        <result property="standby"    column="standby"    />
+        <result property="standby1"    column="standby1"    />
+        <result property="standby2"    column="standby2"    />
+        <result property="standby3"    column="standby3"    />
+        <result property="workshop"    column="workshop"    />
+        <result property="recipient"    column="recipient"    />
+        <result property="collectTime"    column="collectTime"    />
+        <result property="confirm"    column="confirm"    />
+        <result property="confirmTime"    column="confirmTime"    />
+    </resultMap>
+
+    <sql id="selectOperationLogVo">
+        select id, product_no, product_name, product_specifications, product_type, batchNumber, colours, jt, js, status, standby, standby1, standby2, standby3, workshop, recipient, collectTime, confirm, confirmTime from {DBNAME}.operationLog
+    </sql>
+
+    <select id="selectOperationLogList" parameterType="com.zkqy.business.domain.OperationLog" resultMap="OperationLogResult">
+        <include refid="selectOperationLogVo"/>
+        <where>  
+            <if test="productNo != null "> and product_no = #{productNo}</if>
+            <if test="productName != null  and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
+            <if test="productSpecifications != null  and productSpecifications != ''"> and product_specifications = #{productSpecifications}</if>
+            <if test="productType != null  and productType != ''"> and product_type = #{productType}</if>
+            <if test="batchNumber != null "> and batchNumber = #{batchNumber}</if>
+            <if test="colours != null  and colours != ''"> and colours = #{colours}</if>
+            <if test="jt != null  and jt != ''"> and jt = #{jt}</if>
+            <if test="js != null  and js != ''"> and js = #{js}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+            <if test="standby != null  and standby != ''"> and standby = #{standby}</if>
+            <if test="standby1 != null  and standby1 != ''"> and standby1 = #{standby1}</if>
+            <if test="standby2 != null  and standby2 != ''"> and standby2 = #{standby2}</if>
+            <if test="standby3 != null  and standby3 != ''"> and standby3 = #{standby3}</if>
+            <if test="workshop != null  and workshop != ''"> and workshop = #{workshop}</if>
+            <if test="recipient != null  and recipient != ''"> and recipient = #{recipient}</if>
+            <if test="collectTime != null  and collectTime != ''"> and collectTime = #{collectTime}</if>
+            <if test="confirm != null  and confirm != ''"> and confirm = #{confirm}</if>
+            <if test="confirmTime != null  and confirmTime != ''"> and confirmTime = #{confirmTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectOperationLogById" parameterType="Long" resultMap="OperationLogResult">
+        <include refid="selectOperationLogVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertOperationLog" parameterType="com.zkqy.business.domain.OperationLog">
+        insert into {DBNAME}.operationLog
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="productNo != null">product_no,</if>
+            <if test="productName != null">product_name,</if>
+            <if test="productSpecifications != null">product_specifications,</if>
+            <if test="productType != null">product_type,</if>
+            <if test="batchNumber != null">batchNumber,</if>
+            <if test="colours != null">colours,</if>
+            <if test="jt != null">jt,</if>
+            <if test="js != null">js,</if>
+            <if test="status != null">status,</if>
+            <if test="standby != null">standby,</if>
+            <if test="standby1 != null">standby1,</if>
+            <if test="standby2 != null">standby2,</if>
+            <if test="standby3 != null">standby3,</if>
+            <if test="workshop != null">workshop,</if>
+            <if test="recipient != null">recipient,</if>
+            <if test="collectTime != null">collectTime,</if>
+            <if test="confirm != null">confirm,</if>
+            <if test="confirmTime != null">confirmTime,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="productNo != null">#{productNo},</if>
+            <if test="productName != null">#{productName},</if>
+            <if test="productSpecifications != null">#{productSpecifications},</if>
+            <if test="productType != null">#{productType},</if>
+            <if test="batchNumber != null">#{batchNumber},</if>
+            <if test="colours != null">#{colours},</if>
+            <if test="jt != null">#{jt},</if>
+            <if test="js != null">#{js},</if>
+            <if test="status != null">#{status},</if>
+            <if test="standby != null">#{standby},</if>
+            <if test="standby1 != null">#{standby1},</if>
+            <if test="standby2 != null">#{standby2},</if>
+            <if test="standby3 != null">#{standby3},</if>
+            <if test="workshop != null">#{workshop},</if>
+            <if test="recipient != null">#{recipient},</if>
+            <if test="collectTime != null">#{collectTime},</if>
+            <if test="confirm != null">#{confirm},</if>
+            <if test="confirmTime != null">#{confirmTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateOperationLog" parameterType="com.zkqy.business.domain.OperationLog">
+        update {DBNAME}.operationLog
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="productNo != null">product_no = #{productNo},</if>
+            <if test="productName != null">product_name = #{productName},</if>
+            <if test="productSpecifications != null">product_specifications = #{productSpecifications},</if>
+            <if test="productType != null">product_type = #{productType},</if>
+            <if test="batchNumber != null">batchNumber = #{batchNumber},</if>
+            <if test="colours != null">colours = #{colours},</if>
+            <if test="jt != null">jt = #{jt},</if>
+            <if test="js != null">js = #{js},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="standby != null">standby = #{standby},</if>
+            <if test="standby1 != null">standby1 = #{standby1},</if>
+            <if test="standby2 != null">standby2 = #{standby2},</if>
+            <if test="standby3 != null">standby3 = #{standby3},</if>
+            <if test="workshop != null">workshop = #{workshop},</if>
+            <if test="recipient != null">recipient = #{recipient},</if>
+            <if test="collectTime != null">collectTime = #{collectTime},</if>
+            <if test="confirm != null">confirm = #{confirm},</if>
+            <if test="confirmTime != null">confirmTime = #{confirmTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteOperationLogById" parameterType="Long">
+        delete from {DBNAME}.operationLog where id = #{id}
+    </delete>
+
+    <delete id="deleteOperationLogByIds" parameterType="String">
+        delete from {DBNAME}.operationLog where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 7 - 6
zkqy-custom-business/src/main/resources/mapper/business/ProductCodeListMapper.xml

@@ -451,17 +451,18 @@
     </update>
 
     <delete id="deleteProductCodeListById" parameterType="Long">
-        update {DBNAME}.product_code_list
-        set del_flag = '2'
+        delete
+        from  {DBNAME}.product_code_list
         where id = #{id}
     </delete>
 
-    <update id="deleteProductCodeListByIds" parameterType="String">
-        update {DBNAME}.product_code_list set del_flag = '2' where qr_code in
+    <delete id="deleteProductCodeListByIds" parameterType="String">
+        delete from {DBNAME}.product_code_list where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
-    </update>
+    </delete>
+
 
     <!-- 加弹点击称重打印列表 -->
     <select id="selectFinishedProduct" resultType="com.zkqy.business.domain.vo.ProductCodeListVO">
@@ -502,7 +503,7 @@
         sp.lot_number AS lotNum,
         p.product_name AS productName,
         p.product_specifications AS productSpecifications,
-        concat(ml.materie_encoding,ml.materie_color_number) AS productColor,
+        sp.colours AS productColor,
         p.id AS productId,
         sc.direction_of_twist AS directionOfTwist,
         p.product_no AS productNo,

+ 1 - 1
zkqy-custom-business/src/main/resources/mapper/business/SaleAccountsReceivableDetailMapper.xml

@@ -130,7 +130,7 @@
         <if test="returnReceipt != null  and returnReceipt != ''">and sard.return_receipt = #{returnReceipt}</if>
         <if test="status != null and status != ''">and sard.status in ( #{status} )</if>
         and 1=1
-        <if test="orderBy != null and orderBy != ''">ORDER BY sard.id ${orderBy}</if>
+        <if test="orderBy != null and orderBy != ''">ORDER BY sard.accounts_receivable_date ${orderBy}</if>
     </select>
 
     <select id="selectSaleAccountsReceivableDetailById" parameterType="Long"

+ 71 - 0
zkqy-custom-business/src/main/resources/mapper/business/SilkcartMapper.xml

@@ -0,0 +1,71 @@
+<?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.SilkcartMapper">
+    
+    <resultMap type="com.zkqy.business.domain.Silkcart" id="SilkcartResult">
+        <result property="id"    column="id"    />
+        <result property="scname"    column="scname"    />
+        <result property="scWeight"    column="scWeight"    />
+        <result property="standby1"    column="standby1"    />
+        <result property="standby2"    column="standby2"    />
+    </resultMap>
+
+    <sql id="selectSilkcartVo">
+        select id, scname, scWeight, standby1, standby2 from {DBNAME}.silkcart
+    </sql>
+
+    <select id="selectSilkcartList" parameterType="com.zkqy.business.domain.Silkcart" resultMap="SilkcartResult">
+        <include refid="selectSilkcartVo"/>
+        <where>  
+            <if test="scname != null  and scname != ''"> and scname like concat('%', #{scname}, '%')</if>
+            <if test="scWeight != null  and scWeight != ''"> and scWeight = #{scWeight}</if>
+            <if test="standby1 != null  and standby1 != ''"> and standby1 = #{standby1}</if>
+            <if test="standby2 != null  and standby2 != ''"> and standby2 = #{standby2}</if>
+        </where>
+    </select>
+    
+    <select id="selectSilkcartById" parameterType="Long" resultMap="SilkcartResult">
+        <include refid="selectSilkcartVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertSilkcart" parameterType="com.zkqy.business.domain.Silkcart" useGeneratedKeys="true" keyProperty="id">
+        insert into {DBNAME}.silkcart
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="scname != null">scname,</if>
+            <if test="scWeight != null">scWeight,</if>
+            <if test="standby1 != null">standby1,</if>
+            <if test="standby2 != null">standby2,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="scname != null">#{scname},</if>
+            <if test="scWeight != null">#{scWeight},</if>
+            <if test="standby1 != null">#{standby1},</if>
+            <if test="standby2 != null">#{standby2},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSilkcart" parameterType="com.zkqy.business.domain.Silkcart">
+        update {DBNAME}.silkcart
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="scname != null">scname = #{scname},</if>
+            <if test="scWeight != null">scWeight = #{scWeight},</if>
+            <if test="standby1 != null">standby1 = #{standby1},</if>
+            <if test="standby2 != null">standby2 = #{standby2},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteSilkcartById" parameterType="Long">
+        delete from {DBNAME}.silkcart where id = #{id}
+    </delete>
+
+    <delete id="deleteSilkcartByIds" parameterType="String">
+        delete from {DBNAME}.silkcart where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 74 - 0
zkqy-ui/src/api/lineSideCabin/lineSideCabin.js

@@ -0,0 +1,74 @@
+import request from '@/utils/request'
+
+
+// 获取机台选项数据
+export function getLineOptionLsit(query) {
+  return request({
+    url: '/system/line/list',
+    method: 'get',
+    params: query,
+    //baseURL: process.env.VUE_APP_BASE_API1
+  })
+}
+
+// 获取完成产品列表
+export function finishedProductList(params) {
+  return request({
+    url: '/system/productCodeList/finishedProductList',
+    method: 'get',
+    params
+    //baseURL: process.env.VUE_APP_BASE_API1
+  })
+}
+
+// 查询丝车字典列表
+export function listSilkcart(query) {
+  return request({
+    url: '/silkcart/silkcart/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询线边舱库存列表
+export function listLineSideCabin(query) {
+  return request({
+    url: '/lineSideCabin/lineSideCabin/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询线边舱库存详细
+export function getLineSideCabin(id) {
+  return request({
+    url: '/lineSideCabin/lineSideCabin/' + id,
+    method: 'get'
+  })
+}
+
+// 新增线边舱库存
+export function addLineSideCabin(data) {
+  return request({
+    url: '/lineSideCabin/lineSideCabin',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改线边舱库存
+export function updateLineSideCabin(data) {
+  return request({
+    url: '/lineSideCabin/lineSideCabin',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除线边舱库存
+export function delLineSideCabin(id) {
+  return request({
+    url: '/lineSideCabin/lineSideCabin/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
zkqy-ui/src/api/operationLog/operationLog.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询流转日志列表
+export function listOperationLog(query) {
+  return request({
+    url: '/operationLog/operationLog/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询流转日志详细
+export function getOperationLog(id) {
+  return request({
+    url: '/operationLog/operationLog/' + id,
+    method: 'get'
+  })
+}
+
+// 新增流转日志
+export function addOperationLog(data) {
+  return request({
+    url: '/operationLog/operationLog',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改流转日志
+export function updateOperationLog(data) {
+  return request({
+    url: '/operationLog/operationLog',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除流转日志
+export function delOperationLog(id) {
+  return request({
+    url: '/operationLog/operationLog/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
zkqy-ui/src/api/silkcart/silkcart.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询丝车字典列表
+export function listSilkcart(query) {
+  return request({
+    url: '/silkcart/silkcart/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询丝车字典详细
+export function getSilkcart(id) {
+  return request({
+    url: '/silkcart/silkcart/' + id,
+    method: 'get'
+  })
+}
+
+// 新增丝车字典
+export function addSilkcart(data) {
+  return request({
+    url: '/silkcart/silkcart',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改丝车字典
+export function updateSilkcart(data) {
+  return request({
+    url: '/silkcart/silkcart',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除丝车字典
+export function delSilkcart(id) {
+  return request({
+    url: '/silkcart/silkcart/' + id,
+    method: 'delete'
+  })
+}

+ 9 - 3
zkqy-ui/src/lang/zh.js

@@ -964,6 +964,8 @@ export default {
       approve: "审批",
       search: "搜索",
       reset: "重置",
+      reject:"驳回",
+      confirm:"确认",
       interestSubsidy: "贴息",
       pleaseEnterInterestSubsidy: "请输入",
       billDueDate: "票据到期日",
@@ -1379,7 +1381,9 @@ export default {
       title: "操作",
       process: "处理",
       approve: "审批",
-      detail: "详情"
+      detail: "详情",
+      confirm:"确认",
+      cancel:"取消"
     },
     detail: {
       title: "详情",
@@ -1418,7 +1422,8 @@ export default {
       packaging: "包装/贴唛",
       shippingMethod: "运输方式",
       auditorInfo: "审计人员数据",
-      salesman: "业务员"
+      salesman: "业务员",
+      salesManager:"业务员"
     },
     validation: {
       orderTypeRequired: "请选择订单类型"
@@ -2260,7 +2265,8 @@ export default {
       grossWeight: "毛重",
       netWeight: "净重",
       qrCode: "码单号",
-      boxNumber: "箱号"
+      boxNumber: "箱号",
+      title:"提示"
     },
     validation: {
       deliveryDate: "请选择发货日期",

+ 5 - 2
zkqy-ui/src/utils/print/outBoundPrint.js

@@ -27,6 +27,7 @@ function outBoundPrint(data, domId, isRetail = false) {
     tableHeader = `<td style="width: 100px;">名称</td>
         <td style="width: 100px;">规格</td>
         <td style="width: 100px;">批号</td>
+        <td style="width: 100px;">色泽</td>
         <td style="width: 100px;">等级</td>
         <td style="width: 100px;">单位</td>
         <td style="width: 100px;">数量</td>
@@ -54,7 +55,7 @@ function outBoundPrint(data, domId, isRetail = false) {
   let totalPrice = 0, totalWeight = 0;
   for (let i = 0; i < tableData.length; i++) {
     let item = tableData[i];
-    let { productName, productSpecifications, lotNumber, unit, productNumber, productUnitPrice, productAmounts, productLevel } = item
+    let { productName, productSpecifications, lotNumber,productColour, unit, productNumber, productUnitPrice, productAmounts, productLevel } = item
     if (Number(productAmounts)) {
       totalPrice += Number(productAmounts);
     }
@@ -65,6 +66,7 @@ function outBoundPrint(data, domId, isRetail = false) {
       <td>${productName}</td>
       <td>${productSpecifications}</td>
       ${isRetail ? '' : '<td>' + lotNumber + '</td>'}
+      <td>${productColour}</td>
       ${isRetail ? '' : '<td>' + productLevel + '</td>'}
       <td>${unit}</td>
       <td>${productNumber}</td>
@@ -75,7 +77,8 @@ function outBoundPrint(data, domId, isRetail = false) {
   totalPrice = totalPrice.toFixed(2);
   totalWeight = totalWeight.toFixed(2);
   printContent += `<tr style="text-align: center;border: none;">
-        <td style="width: 100px;">合计</td>
+        <td style="width: 100px;">合计:</td>
+        <td style="width: 100px;"></td>
         <td style="width: 100px;"></td>
         ${isRetail ? '' : '<td style="width: 100px;"></td>'}
         ${isRetail ? '' : '<td style="width: 100px;"></td>'}

+ 1 - 1
zkqy-ui/src/views/orderMange/approve.vue

@@ -607,7 +607,7 @@
             </el-col>
             <el-col :span="12">
               <el-form-item :label="$t('approve.form.salesManager')">
-                {{ formData.saleLeader }}
+                {{ formData.salesman }}
               </el-form-item>
             </el-col>
             <!-- <el-col :span="12">

+ 7 - 5
zkqy-ui/src/views/orderMange/codeListManage/index.vue

@@ -120,7 +120,6 @@
             icon="el-icon-circle-plus-outline"
             size="mini"
             @click="rk"
-            v-hasPermi="['system:productCodeList:export']"
           >入库
           </el-button>
         </el-col>
@@ -761,9 +760,10 @@ export default {
           console.log("发送入库请求")
           let res = await selectCodeListWarehousing(this.rKPayLoad);
           if (res.code == 200) {
-            this.$message.success("请先选择入库数据");
+            this.$message.success("入库成功");
+            this.getList();
           } else {
-            this.$message.error("请先选择入库数据");
+            this.$message.error("入库失败网络异常");
           }
           this.cKdialogVisible=false;
         })
@@ -1937,9 +1937,11 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const ids = row.qrCode || this.ids;
+      console.log("---------------------",row)
+      const ids = row.id;
+      console.log("---------------------",ids)
       this.$modal
-        .confirm(this.$t('codeListManage.deleteConfirm') + '"' + ids + '"' + this.$t('codeListManage.deleteConfirmEnd'))
+        .confirm(this.$t('codeListManage.deleteConfirm') + '"' + ids )
         .then(function () {
           return delProductCodeList(ids);
         })

+ 5 - 0
zkqy-ui/src/views/orderMange/components/dialogForm/OutBound.vue

@@ -86,6 +86,11 @@
         label="批号"
         prop="lotNumber"
       ></el-table-column>
+      <el-table-column
+        v-if="!isRetail"
+        label="色泽"
+        prop="productColour"
+      ></el-table-column>
       <el-table-column
         v-if="!isRetail"
         label="等级"

+ 42 - 8
zkqy-ui/src/views/orderMange/index.vue

@@ -556,7 +556,7 @@
                   {{ scope.row.productAmounts }}
                 </template>
               </el-table-column>
-              <el-table-column prop="sliceType" label="切片型号">
+              <el-table-column prop="sliceType" label="原材料">
                 <template slot-scope="scope">
                   <el-form-item
                     :prop="'sliceType-' + scope.$index"
@@ -572,9 +572,9 @@
                     >
                       <el-option
                         v-for="item in sliceTypeOptions"
-                        :key="item.materielCode"
+                        :key="item.materielName"
                         :label="item.materielName"
-                        :value="item.materielCode"
+                        :value="item.materielName"
                       >
                       </el-option>
                     </el-select>
@@ -1282,7 +1282,8 @@ export default {
         row.inventoryWeight = res.data.inventoryWeight || 0;
         row.inventoryBoxNum = res.data.inventoryBoxNum || 0;
       } else {
-        // console.log(res);
+        row.inventoryWeight =  0;
+        row.inventoryBoxNum =  0;
       }
     },
     // 规格变化回调
@@ -1304,7 +1305,7 @@ export default {
     // 新的产品改变回调
     async newProductChange(productName, row) {
       // 发请求获取对应的规格数据
-      //this.updateStorage(row);
+      this.updateStorage(row);
       if (!productName) {
         row.specificationsList = [];
         (row.productNo = ""), (row.productType = "");
@@ -1603,6 +1604,16 @@ export default {
     },
     // 货品表格数据新增回调
     addProduct() {
+      //追加原材料
+      if(this.productionTableData.length >0){
+        this.productionTableData.forEach(itme=>{
+          this.sliceTypeOptions.push({
+            materielName:itme.productName,
+            materielCode:itme.productName+"-"+itme.productSpecifications
+          })
+        })
+      }
+
       this.productionTableData.push({
         saleProductNo: uuidv4(),
         productNo: "", //货品编号
@@ -1612,7 +1623,7 @@ export default {
         productWeight: 0, //销售重量kg
         productUnitPrice: 0, //单价
         productAmounts: "", //金额
-        sliceType: "022", //切片类型
+        sliceType: "切片", //切片类型
         sliceTypeLabel: "",
         colourNumberLabel: "",
         colours: "", //色号
@@ -1706,6 +1717,29 @@ export default {
     },
     //审计新增
     async addHandler() {
+      this.sliceTypeOptions = [];
+      try {
+        let payLoad = [
+          {
+            basicMap: {
+              tableName: "materiel",
+            },
+            conditionMap: {
+              materiel_species: ["6"],
+            },
+          },
+        ];
+        let res = await queryDropDownBoxData(payLoad);
+        if (res.code == 200) {
+          // console.log(res.data.resultMap);
+          let { materiel } = res.data.resultMap;
+          this.sliceTypeOptions = materiel || [];
+        } else {
+          throw Error("获取下拉框数据失败");
+        }
+      } catch (error) {
+        console.log(error);
+      }
       this.isEdit = false;
       // await this.getDropDownData();
       this.resetFormData();
@@ -3519,7 +3553,7 @@ export default {
                     <td width="150px">数量/kg</td>
                     <td width="150px">单价</td>
                     <td width="150px">金额</td>
-                    <td width="150px">切片型号</td>
+                    <td width="150px">原材料</td>
                     <td width="150px">备注</td>
                 </tr>`;
         let amountTotal = 0,
@@ -3558,7 +3592,7 @@ export default {
                     <td>${item.productNumber}</td>
                     <td>${item.productUnitPrice}</td>
                     <td>${item.productAmounts}</td>
-                    <td>${item.sliceTypeLabel}</td>
+                    <td>${item.sliceType}</td>
                     <td>${item.remark}</td>
                 </tr>`;
         }

+ 476 - 0
zkqy-ui/src/views/orderMange/lineSideCabin/InboundManagement.vue

@@ -0,0 +1,476 @@
+<template>
+  <el-card shadow="always" :body-style="{ padding: '10px' }">
+    <div class="app-container">
+      <div class="main-wrap">
+        <div class="right">
+          <div class="table-wrap">
+            <el-table
+              ref="proTableRef"
+              :data="batchTableData"
+              border
+              stripe
+              width="100%"
+              max-height="260"
+              highlight-current-row
+              @row-click="handleCurrentChange"
+            >
+              <!-- <el-table-column
+                  type="index"
+                  label="序号"
+                  width="50"
+                ></el-table-column> -->
+              <el-table-column
+                v-for="col in columns"
+                :prop="col.id"
+                :key="col.id"
+                :label="col.label"
+              >
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </div>
+
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item prop="machineTool" label="机台">
+          <el-select
+            v-model="form.machineTool"
+            filterable
+            size="mini"
+            @change="machineToolChange"
+          >
+            <el-option
+              v-for="(item, index) in lineOptions"
+              :key="index"
+              :label="item.productionLineName"
+              :value="item.id"
+            >
+              <span class="discribe" style="float: left">{{item.productionLineName }}</span>
+              <span
+                style="float: right; color: #8492a6; font-size: 13px"
+              >{{ item.productionLineDepartment }}</span
+              >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="scid" label="丝车">
+          <el-select
+            v-model="form.scid"
+            filterable
+            size="mini"
+          >
+            <el-option
+              v-for="(item, index) in silkcartList"
+              :key="index"
+              :label="item.scname"
+              :value="item.id"
+            >
+              <span class="discribe" style="float: left">{{item.scname }}</span>
+              <span
+                style="float: right; color: #8492a6; font-size: 13px"
+              >{{ item.scWeight }}</span
+              >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="卷数" prop="js">
+          <el-input v-model="form.js" placeholder="请输入卷数" />
+        </el-form-item>
+        <el-form-item label="毛重" prop="standby">
+          <el-input v-model="form.standby" placeholder="请输入毛重" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+
+
+
+      <pagination
+        v-show="total>0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+
+      <!-- 添加或修改线边舱库存对话框 -->
+
+    </div>
+  </el-card>
+</template>
+
+<script>
+import { listLineSideCabin, getLineSideCabin, delLineSideCabin, addLineSideCabin, updateLineSideCabin,  getLineOptionLsit,  finishedProductList, listSilkcart,} from "@/api/lineSideCabin/lineSideCabin";
+import {getSilkcart} from "@/api/silkcart/silkcart";
+
+export default {
+  name: "LineSideCabin",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 线边舱库存表格数据
+      lineSideCabinList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        productNo: null,
+        productName: null,
+        productSpecifications: null,
+        productType: null,
+        batchNumber: null,
+        colours: null,
+        machineTool: null,
+        js: null,
+        status: null,
+        standby: null,
+        standby1: null,
+        standby2: null,
+        standby3: null,
+        workshop: null,
+        recipient: null,
+        collectTime: null,
+        confirm: null,
+        confirmTime: null,
+        scid:null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      },
+      batchData: [], //所有批号数据
+      batchTableData: [], //批号表格数据
+      lineOptions: [], //机台选项数据
+      silkcartList: [], //丝车列表
+      xzbatchTableData: [], //选中的批号表格数据
+      columns: [
+        {
+          id: "productNo",
+          label: this.$t('printIndex.columns.productNo'),
+        },
+        {
+          id: "productName",
+          label: this.$t('printIndex.columns.productName'),
+        },
+        {
+          id: "productSpecifications",
+          label: this.$t('printIndex.columns.productSpecifications'),
+        },
+        {
+          id: "lotNum",
+          label: this.$t('printIndex.columns.lotNum'),
+        },
+        {
+          id: "productColor",
+          label: this.$t('printIndex.columns.productColor'),
+        },
+        // {
+        //   id: "productName",
+        //   label: "订单号",
+        // },
+      ],
+    };
+  },
+  created() {
+    this.getList();
+  },
+  mounted() {
+    this.getLineOptionLsit(); //获取机台选项数据
+  },
+  methods: {
+    /** 查询线边舱库存列表 */
+    getList() {
+      this.loading = true;
+      listLineSideCabin(this.queryParams).then(response => {
+        this.lineSideCabinList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        productNo: null,
+        productName: null,
+        productSpecifications: null,
+        productType: null,
+        batchNumber: null,
+        colours: null,
+        machineTool: null,//机台号
+        js: null,
+        status: null,
+        standby: null,
+        standby1: null,
+        standby2: null,
+        standby3: null,
+        workshop: null,
+        recipient: null,
+        collectTime: null,
+        confirm: null,
+        confirmTime: null,
+        scid:null
+      };
+      this.resetForm("form");
+    },
+    /** 机台相关 */
+    // 机台改变回调
+    machineToolChange(id) {
+      console.log("================选中机台")
+      if (id) {
+        this.form.machineToolNo = this.lineOptions.find(
+          (item) => item.id == id
+        ).productionLineNo;
+      }
+      this.getAllBatchData(id);
+    },
+    // 获取机台选项数据
+    async getLineOptionLsit() {
+      let payLoad = {
+        isEnablePaging: false,
+      };
+      try {
+        let res = await getLineOptionLsit(payLoad);
+        let scres = await listSilkcart(payLoad);
+        if (res.code == 200) {
+          this.lineOptions = res.rows;
+          this.silkcartList = scres.rows;
+          if (this.lineOptions.length > 0 && this.excuteType == 1) {
+            this.form.machineTool = this.lineOptions[0].id;
+            this.machineToolChange(this.form.machineTool);
+          }
+        } else {
+        }
+      } catch (error) {}
+
+      console.log("------------------",this.silkcartList)
+    },
+    // 获取所有批次数据
+    async getAllBatchData(id) {
+
+      try {
+        console.log('===================获取批次数据')
+        let payload = { machineTool: id };
+        let res = await finishedProductList(payload);
+        if (res.code == 200) {
+          this.batchData = res.data;
+          this.batchTableData = res.data;
+        } else {
+        }
+      } catch (error) {}
+    },
+    // 表格点击回调
+    async handleCurrentChange(val) {
+
+      this.xzbatchTableData = val;
+      console.log("表格点击回调",this.xzbatchTableData)
+      //判断是否为纺丝部如果是则不做处理
+      if( val?.productionlinedepartment && val.productionlinedepartment !== undefined && val.productionlinedepartment !== "纺丝部" && val.productionlinedepartment !== ""){
+        this.form.tubeColor = val.tubeColor;//管色
+        this.form.boxWeight = val.boxWeight;//箱重
+        this.form.canisterWeight = val.canisterWeight;//筒重
+      }
+
+      if (!val) return;
+      if (this.isStartReadNum || this.excuteType != 1) {
+        this.$refs.proTableRef.setCurrentRow(this.currentRow);
+        return;
+      }
+      if (val.id != this.currentRow.id) {
+        this.tableData = [];
+        // this.$refs.form.resetFields();
+        this.nowWeight = 0;
+        // if (!this.printAuto) {
+        // 手动打印  获取码单号
+        this.getQrCodeHandle();
+        // }
+        this.summertId = new Date().getTime(); //总码单id重新生成
+      }
+      this.currentRow = val;
+      // this.continuePrintHandler(); //产品选择后,自动执行接续逻辑
+    },
+    /** 机台相关 */
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加线边舱库存";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getLineSideCabin(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改线边舱库存";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        this.form.productNo = this.xzbatchTableData.productNo;
+        this.form.productName = this.xzbatchTableData.productName;
+        this.form.productSpecifications = this.xzbatchTableData.productSpecifications;
+        this.form.productType = this.xzbatchTableData.productId;//类型字段变更为存储产品id
+        this.form.batchNumber = this.xzbatchTableData.lotNum;
+        this.form.colours = this.xzbatchTableData.productColor;
+        this.form.standby3 = this.xzbatchTableData.id;//任务id
+        if (valid) {
+          if (this.form.id != null) {
+            updateLineSideCabin(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLineSideCabin(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除线边舱库存编号为"' + ids + '"的数据项?').then(function() {
+        return delLineSideCabin(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('lineSideCabin/lineSideCabin/export', {
+        ...this.queryParams
+      }, `lineSideCabin_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.main-wrap {
+  width: 100%;
+  display: flex;
+  justify-content: space-between;
+
+  .left {
+    width: 58%;
+
+    .top-area {
+      display: flex;
+      justify-content: space-between;
+
+      .msg {
+        display: flex;
+        align-items: center;
+        font-size: 16px;
+        font-weight: 700;
+      }
+
+      .btn-list {
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+      }
+    }
+
+    .count-area {
+      display: flex;
+      flex-wrap: wrap;
+
+      .count-item {
+        display: flex;
+        margin-bottom: 10px;
+        width: 50%;
+      }
+    }
+  }
+
+  .right {
+    width: 60%;
+    // flex: 1;
+    .queryForm {
+      width: 100%;
+      padding: 0 10px;
+      display: flex;
+
+      .label {
+        text-align: right;
+        color: #606266;
+        line-height: 30px;
+        display: block;
+        width: 100px;
+        font-weight: 700;
+        text-decoration: aliceblue;
+        margin-right: 10px;
+      }
+    }
+
+    .table-wrap {
+      margin-top: 5px;
+      width: 100%;
+      overflow-x: scroll;
+    }
+  }
+}
+
+::v-deep .el-date-editor.el-input {
+  width: 100%;
+}
+
+::v-deep .el-input-number--mini {
+  width: 99%;
+}
+
+::v-deep .el-table .current-row {
+  background-color: #55e905 !important;
+}
+
+::v-deep .el-table__body tr.current-row > td.el-table__cell {
+  background-color: #55e905 !important;
+}
+</style>

+ 470 - 0
zkqy-ui/src/views/orderMange/lineSideCabin/index.vue

@@ -0,0 +1,470 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="产品编号" prop="productNo">
+        <el-input
+          v-model="queryParams.productNo"
+          placeholder="请输入产品编号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="品名" prop="productName">
+        <el-input
+          v-model="queryParams.productName"
+          placeholder="请输入品名"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+<!--      <el-form-item label="产品规格" prop="productSpecifications">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.productSpecifications"-->
+<!--          placeholder="请输入产品规格"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+      <el-form-item label="批号" prop="batchNumber">
+        <el-input
+          v-model="queryParams.batchNumber"
+          placeholder="请输入批号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="色泽" prop="colours">
+        <el-input
+          v-model="queryParams.colours"
+          placeholder="请输入色泽"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="机台" prop="machineTool">
+        <el-input
+          v-model="queryParams.machineTool"
+          placeholder="请输入机台"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+<!--      <el-form-item label="卷数" prop="js">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.js"-->
+<!--          placeholder="请输入卷数"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="毛重" prop="standby">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.standby"-->
+<!--          placeholder="请输入毛重"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="皮重" prop="standby1">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.standby1"-->
+<!--          placeholder="请输入皮重"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="净重" prop="standby2">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.standby2"-->
+<!--          placeholder="请输入净重"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="任务号" prop="standby3">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.standby3"-->
+<!--          placeholder="请输入任务号"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="领料车间" prop="workshop">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.workshop"-->
+<!--          placeholder="请输入领料车间"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="领料人" prop="recipient">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.recipient"-->
+<!--          placeholder="请输入领料人"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="领料时间" prop="collectTime">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.collectTime"-->
+<!--          placeholder="请输入领料时间"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="确认人" prop="confirm">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.confirm"-->
+<!--          placeholder="请输入确认人"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="确认时间" prop="confirmTime">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.confirmTime"-->
+<!--          placeholder="请输入确认时间"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+<!--    <el-row :gutter="10" class="mb8">-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="primary"-->
+<!--          plain-->
+<!--          icon="el-icon-plus"-->
+<!--          size="mini"-->
+<!--          @click="handleAdd"-->
+<!--          v-hasPermi="['lineSideCabin:lineSideCabin:add']"-->
+<!--        >新增</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="single"-->
+<!--          @click="handleUpdate"-->
+<!--          v-hasPermi="['lineSideCabin:lineSideCabin:edit']"-->
+<!--        >修改</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="danger"-->
+<!--          plain-->
+<!--          icon="el-icon-delete"-->
+<!--          size="mini"-->
+<!--          :disabled="multiple"-->
+<!--          @click="handleDelete"-->
+<!--          v-hasPermi="['lineSideCabin:lineSideCabin:remove']"-->
+<!--        >删除</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['lineSideCabin:lineSideCabin:export']"-->
+<!--        >导出</el-button>-->
+<!--      </el-col>-->
+<!--      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
+<!--    </el-row>-->
+
+    <el-table v-loading="loading" :data="lineSideCabinList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="编号" align="center" prop="id" />
+      <el-table-column label="产品编号" align="center" prop="productNo" />
+      <el-table-column label="品名" align="center" prop="productName" />
+      <el-table-column label="产品规格" align="center" prop="productSpecifications" />
+<!--      <el-table-column label="类型" align="center" prop="productType" />-->
+      <el-table-column label="批号" align="center" prop="batchNumber" />
+      <el-table-column label="色泽" align="center" prop="colours" />
+      <el-table-column label="机台" align="center" prop="machineTool" />
+      <el-table-column label="卷数" align="center" prop="js" />
+<!--      <el-table-column label="状态" align="center" prop="status" />-->
+      <el-table-column label="毛重" align="center" prop="standby" />
+      <el-table-column label="皮重" align="center" prop="standby1" />
+      <el-table-column label="净重" align="center" prop="standby2" />
+      <el-table-column label="丝车号" align="center" prop="scid" />
+<!--      <el-table-column label="任务号" align="center" prop="standby3" />-->
+      <el-table-column label="领料车间" align="center" prop="workshop" />
+      <el-table-column label="领料人" align="center" prop="recipient" />
+      <el-table-column label="领料时间" align="center" prop="collectTime" />
+      <el-table-column label="确认人" align="center" prop="confirm" />
+      <el-table-column label="确认时间" align="center" prop="confirmTime" />
+      <el-table-column label="入库时间" align="center" prop="createTime" />
+      <el-table-column label="操作人" align="center" prop="createBy" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['lineSideCabin:lineSideCabin:edit']"
+          >修改</el-button>
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-delete"-->
+<!--            @click="handleDelete(scope.row)"-->
+<!--            v-hasPermi="['lineSideCabin:lineSideCabin:remove']"-->
+<!--          >删除</el-button>-->
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改线边舱库存对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="产品编号" prop="productNo">
+          <el-input v-model="form.productNo" placeholder="请输入产品编号" />
+        </el-form-item>
+        <el-form-item label="品名" prop="productName">
+          <el-input v-model="form.productName" placeholder="请输入品名" />
+        </el-form-item>
+        <el-form-item label="产品规格" prop="productSpecifications">
+          <el-input v-model="form.productSpecifications" placeholder="请输入产品规格" />
+        </el-form-item>
+        <el-form-item label="批号" prop="batchNumber">
+          <el-input v-model="form.batchNumber" placeholder="请输入批号" />
+        </el-form-item>
+        <el-form-item label="色泽" prop="colours">
+          <el-input v-model="form.colours" placeholder="请输入色泽" />
+        </el-form-item>
+        <el-form-item label="机台" prop="machineTool">
+          <el-input v-model="form.machineTool" placeholder="请输入机台" />
+        </el-form-item>
+        <el-form-item label="卷数" prop="js">
+          <el-input v-model="form.js" placeholder="请输入卷数" />
+        </el-form-item>
+        <el-form-item label="毛重" prop="standby">
+          <el-input v-model="form.standby" placeholder="请输入毛重" />
+        </el-form-item>
+        <el-form-item label="皮重" prop="standby1">
+          <el-input v-model="form.standby1" placeholder="请输入皮重" />
+        </el-form-item>
+        <el-form-item label="净重" prop="standby2">
+          <el-input v-model="form.standby2" placeholder="请输入净重" />
+        </el-form-item>
+        <el-form-item label="任务号" prop="standby3">
+          <el-input v-model="form.standby3" placeholder="请输入任务号" />
+        </el-form-item>
+        <el-form-item label="领料车间" prop="workshop">
+          <el-input v-model="form.workshop" placeholder="请输入领料车间" />
+        </el-form-item>
+        <el-form-item label="领料人" prop="recipient">
+          <el-input v-model="form.recipient" placeholder="请输入领料人" />
+        </el-form-item>
+        <el-form-item label="领料时间" prop="collectTime">
+          <el-input v-model="form.collectTime" placeholder="请输入领料时间" />
+        </el-form-item>
+        <el-form-item label="确认人" prop="confirm">
+          <el-input v-model="form.confirm" placeholder="请输入确认人" />
+        </el-form-item>
+        <el-form-item label="确认时间" prop="confirmTime">
+          <el-input v-model="form.confirmTime" placeholder="请输入确认时间" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listLineSideCabin, getLineSideCabin, delLineSideCabin, addLineSideCabin, updateLineSideCabin } from "@/api/lineSideCabin/lineSideCabin";
+
+export default {
+  name: "LineSideCabin",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 线边舱库存表格数据
+      lineSideCabinList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        productNo: null,
+        productName: null,
+        productSpecifications: null,
+        productType: null,
+        batchNumber: null,
+        colours: null,
+        machineTool: null,
+        js: null,
+        status: null,
+        standby: null,
+        standby1: null,
+        standby2: null,
+        standby3: null,
+        workshop: null,
+        recipient: null,
+        collectTime: null,
+        confirm: null,
+        confirmTime: null,
+        scid:null,
+        createTime:null,
+        createBy:null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询线边舱库存列表 */
+    getList() {
+      this.loading = true;
+      listLineSideCabin(this.queryParams).then(response => {
+        this.lineSideCabinList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        productNo: null,
+        productName: null,
+        productSpecifications: null,
+        productType: null,
+        batchNumber: null,
+        colours: null,
+        machineTool: null,
+        js: null,
+        status: null,
+        standby: null,
+        standby1: null,
+        standby2: null,
+        standby3: null,
+        workshop: null,
+        recipient: null,
+        collectTime: null,
+        confirm: null,
+        confirmTime: null,
+        scid:null,
+        createTime:null,
+        createBy:null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加线边舱库存";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getLineSideCabin(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改线边舱库存";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateLineSideCabin(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLineSideCabin(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除线边舱库存编号为"' + ids + '"的数据项?').then(function() {
+        return delLineSideCabin(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('lineSideCabin/lineSideCabin/export', {
+        ...this.queryParams
+      }, `lineSideCabin_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 374 - 0
zkqy-ui/src/views/orderMange/operationLog/index.vue

@@ -0,0 +1,374 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="产品编号" prop="productNo">
+        <el-input
+          v-model="queryParams.productNo"
+          placeholder="请输入产品编号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="品名" prop="productName">
+        <el-input
+          v-model="queryParams.productName"
+          placeholder="请输入品名"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="批号" prop="batchNumber">
+        <el-input
+          v-model="queryParams.batchNumber"
+          placeholder="请输入批号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="色泽" prop="colours">
+        <el-input
+          v-model="queryParams.colours"
+          placeholder="请输入色泽"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="机台" prop="jt">
+        <el-input
+          v-model="queryParams.jt"
+          placeholder="请输入机台"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+<!--    <el-row :gutter="10" class="mb8">-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="primary"-->
+<!--          plain-->
+<!--          icon="el-icon-plus"-->
+<!--          size="mini"-->
+<!--          @click="handleAdd"-->
+<!--          v-hasPermi="['operationLog:operationLog:add']"-->
+<!--        >新增</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="single"-->
+<!--          @click="handleUpdate"-->
+<!--          v-hasPermi="['operationLog:operationLog:edit']"-->
+<!--        >修改</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="danger"-->
+<!--          plain-->
+<!--          icon="el-icon-delete"-->
+<!--          size="mini"-->
+<!--          :disabled="multiple"-->
+<!--          @click="handleDelete"-->
+<!--          v-hasPermi="['operationLog:operationLog:remove']"-->
+<!--        >删除</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['operationLog:operationLog:export']"-->
+<!--        >导出</el-button>-->
+<!--      </el-col>-->
+<!--      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
+<!--    </el-row>-->
+
+    <el-table v-loading="loading" :data="operationLogList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="编号" align="center" prop="id" />
+      <el-table-column label="任务号" align="center" prop="standby3" />
+      <el-table-column label="产品编号" align="center" prop="productNo" />
+      <el-table-column label="品名" align="center" prop="productName" />
+      <el-table-column label="产品规格" align="center" prop="productSpecifications" />
+      <el-table-column label="类型" align="center" prop="productType" />
+      <el-table-column label="批号" align="center" prop="batchNumber" />
+      <el-table-column label="色泽" align="center" prop="colours" />
+      <el-table-column label="机台" align="center" prop="jt" />
+      <el-table-column label="卷数" align="center" prop="js" />
+<!--      <el-table-column label="状态" align="center" prop="status" />-->
+      <el-table-column label="毛重" align="center" prop="standby" />
+      <el-table-column label="皮重" align="center" prop="standby1" />
+      <el-table-column label="净重" align="center" prop="standby2" />
+      <el-table-column label="领料车间" align="center" prop="workshop" />
+      <el-table-column label="领料人" align="center" prop="recipient" />
+      <el-table-column label="领料时间" align="center" prop="collectTime" />
+      <el-table-column label="确认人" align="center" prop="confirm" />
+      <el-table-column label="确认时间" align="center" prop="confirmTime" />
+<!--      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
+<!--        <template slot-scope="scope">-->
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-edit"-->
+<!--            @click="handleUpdate(scope.row)"-->
+<!--            v-hasPermi="['operationLog:operationLog:edit']"-->
+<!--          >修改</el-button>-->
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-delete"-->
+<!--            @click="handleDelete(scope.row)"-->
+<!--            v-hasPermi="['operationLog:operationLog:remove']"-->
+<!--          >删除</el-button>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改流转日志对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="产品编号" prop="productNo">
+          <el-input v-model="form.productNo" placeholder="请输入产品编号" />
+        </el-form-item>
+        <el-form-item label="品名" prop="productName">
+          <el-input v-model="form.productName" placeholder="请输入品名" />
+        </el-form-item>
+        <el-form-item label="产品规格" prop="productSpecifications">
+          <el-input v-model="form.productSpecifications" placeholder="请输入产品规格" />
+        </el-form-item>
+        <el-form-item label="批号" prop="batchNumber">
+          <el-input v-model="form.batchNumber" placeholder="请输入批号" />
+        </el-form-item>
+        <el-form-item label="色泽" prop="colours">
+          <el-input v-model="form.colours" placeholder="请输入色泽" />
+        </el-form-item>
+        <el-form-item label="机台" prop="jt">
+          <el-input v-model="form.jt" placeholder="请输入机台" />
+        </el-form-item>
+        <el-form-item label="卷数" prop="js">
+          <el-input v-model="form.js" placeholder="请输入卷数" />
+        </el-form-item>
+<!--        <el-form-item label="备用" prop="standby">-->
+<!--          <el-input v-model="form.standby" placeholder="请输入备用" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="备用1" prop="standby1">-->
+<!--          <el-input v-model="form.standby1" placeholder="请输入备用1" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="备用2" prop="standby2">-->
+<!--          <el-input v-model="form.standby2" placeholder="请输入备用2" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="备用2" prop="standby3">-->
+<!--          <el-input v-model="form.standby3" placeholder="请输入备用2" />-->
+<!--        </el-form-item>-->
+        <el-form-item label="领料车间" prop="workshop">
+          <el-input v-model="form.workshop" placeholder="请输入领料车间" />
+        </el-form-item>
+        <el-form-item label="领料人" prop="recipient">
+          <el-input v-model="form.recipient" placeholder="请输入领料人" />
+        </el-form-item>
+        <el-form-item label="领料时间" prop="collectTime">
+          <el-input v-model="form.collectTime" placeholder="请输入领料时间" />
+        </el-form-item>
+        <el-form-item label="确认人" prop="confirm">
+          <el-input v-model="form.confirm" placeholder="请输入确认人" />
+        </el-form-item>
+        <el-form-item label="确认时间" prop="confirmTime">
+          <el-input v-model="form.confirmTime" placeholder="请输入确认时间" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listOperationLog, getOperationLog, delOperationLog, addOperationLog, updateOperationLog } from "@/api/operationLog/operationLog";
+
+export default {
+  name: "OperationLog",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 流转日志表格数据
+      operationLogList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        productNo: null,
+        productName: null,
+        productSpecifications: null,
+        productType: null,
+        batchNumber: null,
+        colours: null,
+        jt: null,
+        js: null,
+        status: null,
+        standby: null,
+        standby1: null,
+        standby2: null,
+        standby3: null,
+        workshop: null,
+        recipient: null,
+        collectTime: null,
+        confirm: null,
+        confirmTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询流转日志列表 */
+    getList() {
+      this.loading = true;
+      listOperationLog(this.queryParams).then(response => {
+        this.operationLogList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        productNo: null,
+        productName: null,
+        productSpecifications: null,
+        productType: null,
+        batchNumber: null,
+        colours: null,
+        jt: null,
+        js: null,
+        status: null,
+        standby: null,
+        standby1: null,
+        standby2: null,
+        standby3: null,
+        workshop: null,
+        recipient: null,
+        collectTime: null,
+        confirm: null,
+        confirmTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加流转日志";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getOperationLog(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改流转日志";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateOperationLog(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addOperationLog(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除流转日志编号为"' + ids + '"的数据项?').then(function() {
+        return delOperationLog(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('operationLog/operationLog/export', {
+        ...this.queryParams
+      }, `operationLog_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 2 - 2
zkqy-ui/src/views/orderMange/productcodelog/index.vue

@@ -336,10 +336,10 @@
       <el-table-column :label="$t('productcodelog.table.canisterWeight')" align="center" prop="canisterWeight" />
       <el-table-column :label="$t('productcodelog.table.boxWeight')" align="center" prop="boxWeight" />
       <el-table-column :label="$t('productcodelog.table.tubeColor')" align="center" prop="tubeColor" />
-      <el-table-column :label="$t('productcodelog.table.createById')" align="center" prop="createById" />
+<!--      <el-table-column :label="$t('productcodelog.table.createById')" align="center" prop="createById" />-->
       <el-table-column :label="$t('productcodelog.table.createBy')" align="center" prop="createBy" />
       <el-table-column :label="$t('productcodelog.table.createTime')" align="center" prop="createTime" />
-      <el-table-column :label="$t('productcodelog.table.fatherid')" align="center" prop="fatherid" />
+<!--      <el-table-column :label="$t('productcodelog.table.fatherid')" align="center" prop="fatherid" />-->
 <!--      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
 <!--        <template slot-scope="scope">-->
 <!--          <el-button-->

+ 4 - 1
zkqy-ui/src/views/orderMange/retailMange/index.vue

@@ -1189,7 +1189,8 @@ export default {
         row.inventoryWeight = res.data.inventoryWeight || 0;
         row.inventoryBoxNum = res.data.inventoryBoxNum || 0;
       } else {
-        console.log(res);
+        row.inventoryWeight =  0;
+        row.inventoryBoxNum =  0;
       }
     },
     // 规格变化回调
@@ -3115,6 +3116,8 @@ export default {
     },
     // 色号改变回调
     colourNumberChangeHandler(row) {
+      //获得库存箱数和重量
+      this.updateStorage(row);
       let { colours } = row;
       if (colours) {
         let target = this.colourNumberOptions.find(

+ 263 - 0
zkqy-ui/src/views/orderMange/silkcart/index.vue

@@ -0,0 +1,263 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="车号" prop="scname">
+        <el-input
+          v-model="queryParams.scname"
+          placeholder="请输入车号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="车重" prop="scWeight">
+        <el-input
+          v-model="queryParams.scWeight"
+          placeholder="请输入车重"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['silkcart:silkcart:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['silkcart:silkcart:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['silkcart:silkcart:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['silkcart:silkcart:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="silkcartList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="编号" align="center" prop="id" />
+      <el-table-column label="车号" align="center" prop="scname" />
+      <el-table-column label="车重" align="center" prop="scWeight" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['silkcart:silkcart:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['silkcart:silkcart:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改丝车字典对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="车号" prop="scname">
+          <el-input v-model="form.scname" placeholder="请输入车号" />
+        </el-form-item>
+        <el-form-item label="车重" prop="scWeight">
+          <el-input v-model="form.scWeight" placeholder="请输入车重" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listSilkcart, getSilkcart, delSilkcart, addSilkcart, updateSilkcart } from "@/api/silkcart/silkcart";
+
+export default {
+  name: "Silkcart",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 丝车字典表格数据
+      silkcartList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        scname: null,
+        scWeight: null,
+        standby1: null,
+        standby2: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询丝车字典列表 */
+    getList() {
+      this.loading = true;
+      listSilkcart(this.queryParams).then(response => {
+        this.silkcartList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        scname: null,
+        scWeight: null,
+        standby1: null,
+        standby2: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加丝车字典";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSilkcart(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改丝车字典";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSilkcart(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSilkcart(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除丝车字典编号为"' + ids + '"的数据项?').then(function() {
+        return delSilkcart(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('silkcart/silkcart/export', {
+        ...this.queryParams
+      }, `silkcart_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>