瀏覽代碼

Merge branch 'master' of https://gitee.com/houmaochang/mec-cloud_-intelligent-manufacturing_client

# Conflicts:
#	zkqy-ui/.env.development
#	zkqy-ui/vue.config.js
sql715 4 月之前
父節點
當前提交
ce6538ed52
共有 47 個文件被更改,包括 4749 次插入2515 次删除
  1. 二進制
      .git.zip
  2. 32 0
      zkqy-admin/src/main/java/com/zkqy/web/controller/dragForm/DynamicController.java
  3. 4 0
      zkqy-admin/src/main/java/com/zkqy/web/controller/dragForm/TestController.java
  4. 73 0
      zkqy-admin/src/main/java/com/zkqy/web/controller/tool/DynamicBeanRegistrar.java
  5. 32 0
      zkqy-admin/src/main/java/com/zkqy/web/controller/tool/DynamicCompiler.java
  6. 11 0
      zkqy-admin/src/main/resources/abc/TestController.java
  7. 2 1
      zkqy-admin/src/main/resources/application-druid.yml
  8. 2 2
      zkqy-admin/src/main/resources/application.yml
  9. 152 152
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductCodeAListController.java
  10. 104 104
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductCodeLogController.java
  11. 545 545
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/ProductCodeAList.java
  12. 559 559
      zkqy-custom-business/src/main/java/com/zkqy/business/domain/ProductCodeLog.java
  13. 61 61
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductCodeAListMapper.java
  14. 61 61
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductCodeLogMapper.java
  15. 7 0
      zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SaleProductsMapper.java
  16. 62 61
      zkqy-custom-business/src/main/java/com/zkqy/business/service/IProductCodeAListService.java
  17. 62 61
      zkqy-custom-business/src/main/java/com/zkqy/business/service/IProductCodeLogService.java
  18. 5 3
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/DetailsOfTheRefuelingPlanServiceImpl.java
  19. 2 2
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/DetailsOfTheRefuelingPlanSpinningServiceImpl.java
  20. 96 96
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductCodeAListServiceImpl.java
  21. 96 96
      zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductCodeLogServiceImpl.java
  22. 292 292
      zkqy-custom-business/src/main/resources/mapper/business/ProductCodeAListMapper.xml
  23. 294 294
      zkqy-custom-business/src/main/resources/mapper/business/ProductCodeLogMapper.xml
  24. 34 0
      zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml
  25. 13 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/ProductionPlanningManagementController.java
  26. 7 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/PlanTaskDetailsMapper.java
  27. 3 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ProductionCardFlowMapper.java
  28. 7 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ProductionPlanningManagementMapper.java
  29. 7 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IProductionPlanningManagementService.java
  30. 16 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/ProductionPlanningManagementServiceImpl.java
  31. 33 7
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/StationInformationServiceImpl.java
  32. 6 0
      zkqy-fujian-amichi/src/main/resources/mapper/PlanTaskDetailsMapper.xml
  33. 6 0
      zkqy-fujian-amichi/src/main/resources/mapper/ProductionCardFlowMapper.xml
  34. 9 0
      zkqy-fujian-amichi/src/main/resources/mapper/ProductionPlanningManagementMapper.xml
  35. 2 1
      zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationMapper.xml
  36. 7 10
      zkqy-ui/.env.production
  37. 9 1
      zkqy-ui/src/api/amichi/productionCardFlow/productionCardFlow.js
  38. 44 44
      zkqy-ui/src/api/business/productcodelog.js
  39. 44 44
      zkqy-ui/src/api/productcodelog/productcodelog.js
  40. 1156 0
      zkqy-ui/src/views/amichi/planTask/inPlant2.vue
  41. 45 11
      zkqy-ui/src/views/amichi/planTask/salesPlan.vue
  42. 二進制
      zkqy-ui/src/views/amichi/print/2025年1月质量月报表.xlsx
  43. 41 0
      zkqy-ui/src/views/amichi/print/a.html
  44. 331 0
      zkqy-ui/src/views/amichi/print/a.vue
  45. 367 0
      zkqy-ui/src/views/amichi/print/c.vue
  46. 7 7
      zkqy-ui/src/views/orderMange/index.vue
  47. 1 0
      zkqy-ui/vue.config.js

二進制
.git.zip


+ 32 - 0
zkqy-admin/src/main/java/com/zkqy/web/controller/dragForm/DynamicController.java

@@ -0,0 +1,32 @@
+package com.zkqy.web.controller.dragForm;
+
+import com.zkqy.common.annotation.Anonymous;
+import com.zkqy.web.controller.tool.DynamicBeanRegistrar;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.DependsOn;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+//@RestController
+public class DynamicController {
+
+//    @Autowired
+//    @Lazy
+//    private DynamicBeanRegistrar dynamicBeanRegistrar;
+//
+//    @GetMapping("/load-controller")
+//    @Anonymous
+//    public String loadController(@RequestParam String sourceFilePath, @RequestParam String beanName) {
+//        try {
+//            dynamicBeanRegistrar.registerController(sourceFilePath, beanName);
+//            return "Controller loaded successfully!";
+//        } catch (Exception e) {
+//            return "Failed to load controller: " + e.getMessage();
+//        }
+//    }
+}

+ 4 - 0
zkqy-admin/src/main/java/com/zkqy/web/controller/dragForm/TestController.java

@@ -0,0 +1,4 @@
+package com.zkqy.web.controller.dragForm;
+
+public class TestController {
+}

+ 73 - 0
zkqy-admin/src/main/java/com/zkqy/web/controller/tool/DynamicBeanRegistrar.java

@@ -0,0 +1,73 @@
+package com.zkqy.web.controller.tool;
+
+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
+
+import java.io.File;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+public class DynamicBeanRegistrar {
+    private final ApplicationContext applicationContext;
+    private final DynamicCompiler dynamicCompiler;
+
+    public DynamicBeanRegistrar(ApplicationContext applicationContext) {
+        this.applicationContext = applicationContext;
+        this.dynamicCompiler = new DynamicCompiler();
+    }
+
+    /**
+     * 动态加载并注册控制器
+     */
+    public void registerController(String sourceFilePath, String beanName) throws Exception {
+        // 1. 动态编译 .java 文件
+        File classDirectory = dynamicCompiler.compileJavaFile("C:\\Users\\86180\\IdeaProjects\\gsxm\\mec-cloud_-intelligent-manufacturing_client\\zkqy-admin\\src\\main\\resources\\abc\\TestController.java");
+
+        // 2. 加载编译后的类
+        Class<?> controllerClass = loadClassFromFile(classDirectory, sourceFilePath);
+
+        // 3. 获取 ConfigurableListableBeanFactory
+        ConfigurableListableBeanFactory beanFactory = ((org.springframework.context.support.AbstractApplicationContext) applicationContext).getBeanFactory();
+
+        // 4. 注册 Bean 到容器
+        beanFactory.registerSingleton(beanName, controllerClass.getDeclaredConstructor().newInstance());
+
+        // 5. 刷新请求映射(确保新控制器生效)
+        refreshRequestMappings();
+    }
+
+    /**
+     * 加载编译后的类文件
+     */
+    private Class<?> loadClassFromFile(File classDirectory, String sourceFilePath) throws Exception {
+        // 获取类名
+        String className = extractClassNameFromSourcePath(sourceFilePath);
+
+        // 创建自定义 ClassLoader 加载类
+        URLClassLoader classLoader = new URLClassLoader(new URL[]{classDirectory.toURI().toURL()}, getClass().getClassLoader());
+        return Class.forName(className, true, classLoader);
+    }
+
+    /**
+     * 提取类名
+     */
+    private String extractClassNameFromSourcePath(String sourceFilePath) {
+        File sourceFile = new File(sourceFilePath);
+        String fileName = sourceFile.getName();
+        String className = fileName.substring(0, fileName.lastIndexOf('.'));
+        return className;
+    }
+
+    /**
+     * 刷新请求映射
+     */
+    private void refreshRequestMappings() {
+        RequestMappingHandlerMapping requestMappingHandlerMapping = applicationContext.getBean(RequestMappingHandlerMapping.class);
+        try {
+            requestMappingHandlerMapping.afterPropertiesSet();
+        } catch (Exception e) {
+            throw new RuntimeException("Failed to refresh request mappings", e);
+        }
+    }
+}

+ 32 - 0
zkqy-admin/src/main/java/com/zkqy/web/controller/tool/DynamicCompiler.java

@@ -0,0 +1,32 @@
+package com.zkqy.web.controller.tool;
+
+import javax.tools.JavaCompiler;
+import javax.tools.ToolProvider;
+import java.io.File;
+
+public class DynamicCompiler {
+    /**
+     * 动态编译 .java 文件
+     */
+    public File compileJavaFile(String sourceFilePath) throws Exception {
+        // 获取 Java 编译器
+        JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
+
+        if (compiler == null) {
+            throw new IllegalStateException("Java compiler is not available. Ensure you are running with JDK, not JRE.");
+        }
+
+        // 获取源文件对象
+        File sourceFile = new File(sourceFilePath);
+
+        // 编译源文件
+        int compilationResult = compiler.run(null, null, null, sourceFile.getPath());
+
+        if (compilationResult != 0) {
+            throw new Exception("Compilation failed for file: " + sourceFilePath);
+        }
+
+        // 返回生成的 .class 文件所在目录
+        return sourceFile.getParentFile();
+    }
+}

+ 11 - 0
zkqy-admin/src/main/resources/abc/TestController.java

@@ -0,0 +1,11 @@
+package com.zkqy.web.controller.dragForm;
+
+
+
+@RestController
+public class TestController {
+    @GetMapping("/dynamic")
+    public String dynamicEndpoint() {
+        return "This is a dynamically loaded controller!";
+    }
+}

+ 2 - 1
zkqy-admin/src/main/resources/application-druid.yml

@@ -6,7 +6,8 @@ spring:
         druid:
             # 主库数据源 http:///
             master:
-                url: jdbc:mysql://localhost:3306/ry-vue-call?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
+                #url: jdbc:mysql://localhost:3306/ry-vue-call?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
+                url: jdbc:mysql://localhost:3306/hqzk?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
                 #url: jdbc:mysql://192.168.110.15:3306/ry-vue-call?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
                 #url: jdbc:mysql://121.37.234.37:3306/zkqyzk?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
                 username: root

+ 2 - 2
zkqy-admin/src/main/resources/application.yml

@@ -79,13 +79,13 @@ spring:
   # redis 配置
   redis:
     # 地址
-    host: 121.37.234.37
+    host: localhost
     # 端口,默认为6379
     port: 6379
     # 数据库索引
     database: 14
     # 密码
-    password: zkqy@8888888
+    password:
     # 连接超时时间
     timeout: 10s
     lettuce:

+ 152 - 152
zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductCodeAListController.java

@@ -1,152 +1,152 @@
-package com.zkqy.business.controller;
-
-import java.util.Date;
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-
-import com.zkqy.business.domain.ProductInventory;
-import com.zkqy.business.domain.vo.NewOldProductCodeListVO;
-import com.zkqy.business.service.IProductCodeListService;
-import com.zkqy.business.service.IProductCodeLogService;
-import com.zkqy.business.service.IProductInventoryService;
-import com.zkqy.common.utils.SecurityUtils;
-import org.springframework.beans.BeanUtils;
-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.ProductCodeAList;
-import com.zkqy.business.service.IProductCodeAListService;
-import com.zkqy.common.utils.poi.ExcelUtil;
-import com.zkqy.common.core.page.TableDataInfo;
-import com.zkqy.business.domain.ProductCodeLog;
-/**
- * 产品码单Controller
- * 
- * @author ruoyi
- * @date 2025-02-12
- */
-@RestController
-@RequestMapping("/productwolist/productwolist")
-public class ProductCodeAListController extends BaseController
-{
-    @Autowired
-    private IProductInventoryService productInventoryService;
-    @Autowired
-    private IProductCodeLogService productCodeLogService;
-    @Autowired
-    private IProductCodeAListService productCodeAListService;
-
-    /**
-     * 查询产品码单列表
-     */
-    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(ProductCodeAList productCodeAList)
-    {
-        startPage();
-        List<ProductCodeAList> list = productCodeAListService.selectProductCodeAListList(productCodeAList);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出产品码单列表
-     */
-    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:export')")
-    @Log(title = "产品码单", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, ProductCodeAList productCodeAList)
-    {
-        List<ProductCodeAList> list = productCodeAListService.selectProductCodeAListList(productCodeAList);
-        ExcelUtil<ProductCodeAList> util = new ExcelUtil<ProductCodeAList>(ProductCodeAList.class);
-        util.exportExcel(response, list, "产品码单数据");
-    }
-
-    /**
-     * 获取产品码单详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(productCodeAListService.selectProductCodeAListById(id));
-    }
-
-    /**
-     * 新增产品码单
-     */
-    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:add')")
-    @Log(title = "产品码单", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody ProductCodeAList productCodeAList)
-    {
-        return toAjax(productCodeAListService.insertProductCodeAList(productCodeAList));
-    }
-
-    /**
-     * 修改产品码单
-     */
-    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:edit')")
-    @Log(title = "产品码单", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody ProductCodeAList productCodeAList)
-    {
-        ProductCodeAList historyproductCodeAList = productCodeAListService.selectProductCodeAListById(productCodeAList.getId());
-        ProductCodeLog productCodeLog = new ProductCodeLog();
-        BeanUtils.copyProperties(historyproductCodeAList,productCodeLog);
-        productCodeLog.setId(null);
-        productCodeLog.setFatherid(historyproductCodeAList.getId());
-        productCodeLog.setCreateBy(SecurityUtils.getUsername());
-        productCodeLog.setCreateById(SecurityUtils.getUserId());
-        productCodeLog.setCreateTime(new Date());
-        productCodeLogService.insertProductCodeLog(productCodeLog);
-        try {
-            ProductInventory productInventory = new ProductInventory();
-            productInventory.setQrCode(historyproductCodeAList.getQrCode());
-            productInventory.setProductId(historyproductCodeAList.getProductId());
-
-            // 更新库存数据(重新入库)
-            List<ProductInventory> list = productInventoryService.selectProductInventoryList(productInventory);
-            ProductInventory productInventorys = list.get(0);
-            if(historyproductCodeAList.getSuttle() > productCodeAList.getSuttle()){
-                productInventorys.setTotalSuttle(productInventorys.getTotalSuttle() - (historyproductCodeAList.getSuttle() - productCodeAList.getSuttle().doubleValue()));
-            }else if(historyproductCodeAList.getSuttle() < productCodeAList.getSuttle()){
-                productInventorys.setTotalSuttle(productInventorys.getTotalSuttle() + (productCodeAList.getSuttle().doubleValue() - historyproductCodeAList.getSuttle()));
-            }
-
-            if(historyproductCodeAList.getGrossWeight() > productCodeAList.getGrossWeight()){
-                productInventorys.setTotalGrossWeight(productInventorys.getTotalGrossWeight()-(historyproductCodeAList.getGrossWeight()-productCodeAList.getGrossWeight().doubleValue()));
-            }else if(historyproductCodeAList.getGrossWeight() < productCodeAList.getGrossWeight()){
-                productInventorys.setTotalGrossWeight(productInventorys.getTotalGrossWeight()+(productCodeAList.getGrossWeight().doubleValue()-historyproductCodeAList.getGrossWeight()));
-            }
-
-            productInventoryService.updateProductInventory(productInventorys);
-            productCodeAListService.updateProductCodeAList(productCodeAList);
-            return toAjax(true);
-        }catch (Exception e){
-            return toAjax(false);
-        }
-
-    }
-
-    /**
-     * 删除产品码单
-     */
-    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:remove')")
-    @Log(title = "产品码单", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(productCodeAListService.deleteProductCodeAListByIds(ids));
-    }
-}
+package com.zkqy.business.controller;
+
+import java.util.Date;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zkqy.business.domain.ProductInventory;
+import com.zkqy.business.domain.vo.NewOldProductCodeListVO;
+import com.zkqy.business.service.IProductCodeListService;
+import com.zkqy.business.service.IProductCodeLogService;
+import com.zkqy.business.service.IProductInventoryService;
+import com.zkqy.common.utils.SecurityUtils;
+import org.springframework.beans.BeanUtils;
+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.ProductCodeAList;
+import com.zkqy.business.service.IProductCodeAListService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+import com.zkqy.business.domain.ProductCodeLog;
+/**
+ * 产品码单Controller
+ * 
+ * @author ruoyi
+ * @date 2025-02-12
+ */
+@RestController
+@RequestMapping("/productwolist/productwolist")
+public class ProductCodeAListController extends BaseController
+{
+    @Autowired
+    private IProductInventoryService productInventoryService;
+    @Autowired
+    private IProductCodeLogService productCodeLogService;
+    @Autowired
+    private IProductCodeAListService productCodeAListService;
+
+    /**
+     * 查询产品码单列表
+     */
+    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ProductCodeAList productCodeAList)
+    {
+        startPage();
+        List<ProductCodeAList> list = productCodeAListService.selectProductCodeAListList(productCodeAList);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出产品码单列表
+     */
+    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:export')")
+    @Log(title = "产品码单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ProductCodeAList productCodeAList)
+    {
+        List<ProductCodeAList> list = productCodeAListService.selectProductCodeAListList(productCodeAList);
+        ExcelUtil<ProductCodeAList> util = new ExcelUtil<ProductCodeAList>(ProductCodeAList.class);
+        util.exportExcel(response, list, "产品码单数据");
+    }
+
+    /**
+     * 获取产品码单详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(productCodeAListService.selectProductCodeAListById(id));
+    }
+
+    /**
+     * 新增产品码单
+     */
+    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:add')")
+    @Log(title = "产品码单", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ProductCodeAList productCodeAList)
+    {
+        return toAjax(productCodeAListService.insertProductCodeAList(productCodeAList));
+    }
+
+    /**
+     * 修改产品码单
+     */
+    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:edit')")
+    @Log(title = "产品码单", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ProductCodeAList productCodeAList)
+    {
+        ProductCodeAList historyproductCodeAList = productCodeAListService.selectProductCodeAListById(productCodeAList.getId());
+        ProductCodeLog productCodeLog = new ProductCodeLog();
+        BeanUtils.copyProperties(historyproductCodeAList,productCodeLog);
+        productCodeLog.setId(null);
+        productCodeLog.setFatherid(historyproductCodeAList.getId());
+        productCodeLog.setCreateBy(SecurityUtils.getUsername());
+        productCodeLog.setCreateById(SecurityUtils.getUserId());
+        productCodeLog.setCreateTime(new Date());
+        productCodeLogService.insertProductCodeLog(productCodeLog);
+        try {
+            ProductInventory productInventory = new ProductInventory();
+            productInventory.setQrCode(historyproductCodeAList.getQrCode());
+            productInventory.setProductId(historyproductCodeAList.getProductId());
+
+            // 更新库存数据(重新入库)
+            List<ProductInventory> list = productInventoryService.selectProductInventoryList(productInventory);
+            ProductInventory productInventorys = list.get(0);
+            if(historyproductCodeAList.getSuttle() > productCodeAList.getSuttle()){
+                productInventorys.setTotalSuttle(productInventorys.getTotalSuttle() - (historyproductCodeAList.getSuttle() - productCodeAList.getSuttle().doubleValue()));
+            }else if(historyproductCodeAList.getSuttle() < productCodeAList.getSuttle()){
+                productInventorys.setTotalSuttle(productInventorys.getTotalSuttle() + (productCodeAList.getSuttle().doubleValue() - historyproductCodeAList.getSuttle()));
+            }
+
+            if(historyproductCodeAList.getGrossWeight() > productCodeAList.getGrossWeight()){
+                productInventorys.setTotalGrossWeight(productInventorys.getTotalGrossWeight()-(historyproductCodeAList.getGrossWeight()-productCodeAList.getGrossWeight().doubleValue()));
+            }else if(historyproductCodeAList.getGrossWeight() < productCodeAList.getGrossWeight()){
+                productInventorys.setTotalGrossWeight(productInventorys.getTotalGrossWeight()+(productCodeAList.getGrossWeight().doubleValue()-historyproductCodeAList.getGrossWeight()));
+            }
+
+            productInventoryService.updateProductInventory(productInventorys);
+            productCodeAListService.updateProductCodeAList(productCodeAList);
+            return toAjax(true);
+        }catch (Exception e){
+            return toAjax(false);
+        }
+
+    }
+
+    /**
+     * 删除产品码单
+     */
+    @PreAuthorize("@ss.hasPermi('productwolist:productwolist:remove')")
+    @Log(title = "产品码单", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(productCodeAListService.deleteProductCodeAListByIds(ids));
+    }
+}

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

@@ -1,104 +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.ProductCodeLog;
-import com.zkqy.business.service.IProductCodeLogService;
-import com.zkqy.common.utils.poi.ExcelUtil;
-import com.zkqy.common.core.page.TableDataInfo;
-
-/**
- * 产品码修改日志Controller
- * 
- * @author ruoyi
- * @date 2025-03-06
- */
-@RestController
-@RequestMapping("/business/productcodelog")
-public class ProductCodeLogController extends BaseController
-{
-    @Autowired
-    private IProductCodeLogService productCodeLogService;
-
-    /**
-     * 查询产品码修改日志列表
-     */
-    @PreAuthorize("@ss.hasPermi('business:productcodelog:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(ProductCodeLog productCodeLog)
-    {
-        startPage();
-        List<ProductCodeLog> list = productCodeLogService.selectProductCodeLogList(productCodeLog);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出产品码修改日志列表
-     */
-    @PreAuthorize("@ss.hasPermi('business:productcodelog:export')")
-    @Log(title = "产品码修改日志", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, ProductCodeLog productCodeLog)
-    {
-        List<ProductCodeLog> list = productCodeLogService.selectProductCodeLogList(productCodeLog);
-        ExcelUtil<ProductCodeLog> util = new ExcelUtil<ProductCodeLog>(ProductCodeLog.class);
-        util.exportExcel(response, list, "产品码修改日志数据");
-    }
-
-    /**
-     * 获取产品码修改日志详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('business:productcodelog:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(productCodeLogService.selectProductCodeLogById(id));
-    }
-
-    /**
-     * 新增产品码修改日志
-     */
-    @PreAuthorize("@ss.hasPermi('business:productcodelog:add')")
-    @Log(title = "产品码修改日志", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody ProductCodeLog productCodeLog)
-    {
-        return toAjax(productCodeLogService.insertProductCodeLog(productCodeLog));
-    }
-
-    /**
-     * 修改产品码修改日志
-     */
-    @PreAuthorize("@ss.hasPermi('business:productcodelog:edit')")
-    @Log(title = "产品码修改日志", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody ProductCodeLog productCodeLog)
-    {
-        return toAjax(productCodeLogService.updateProductCodeLog(productCodeLog));
-    }
-
-    /**
-     * 删除产品码修改日志
-     */
-    @PreAuthorize("@ss.hasPermi('business:productcodelog:remove')")
-    @Log(title = "产品码修改日志", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(productCodeLogService.deleteProductCodeLogByIds(ids));
-    }
-}
+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.ProductCodeLog;
+import com.zkqy.business.service.IProductCodeLogService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 产品码修改日志Controller
+ * 
+ * @author ruoyi
+ * @date 2025-03-06
+ */
+@RestController
+@RequestMapping("/business/productcodelog")
+public class ProductCodeLogController extends BaseController
+{
+    @Autowired
+    private IProductCodeLogService productCodeLogService;
+
+    /**
+     * 查询产品码修改日志列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:productcodelog:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ProductCodeLog productCodeLog)
+    {
+        startPage();
+        List<ProductCodeLog> list = productCodeLogService.selectProductCodeLogList(productCodeLog);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出产品码修改日志列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:productcodelog:export')")
+    @Log(title = "产品码修改日志", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ProductCodeLog productCodeLog)
+    {
+        List<ProductCodeLog> list = productCodeLogService.selectProductCodeLogList(productCodeLog);
+        ExcelUtil<ProductCodeLog> util = new ExcelUtil<ProductCodeLog>(ProductCodeLog.class);
+        util.exportExcel(response, list, "产品码修改日志数据");
+    }
+
+    /**
+     * 获取产品码修改日志详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('business:productcodelog:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(productCodeLogService.selectProductCodeLogById(id));
+    }
+
+    /**
+     * 新增产品码修改日志
+     */
+    @PreAuthorize("@ss.hasPermi('business:productcodelog:add')")
+    @Log(title = "产品码修改日志", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ProductCodeLog productCodeLog)
+    {
+        return toAjax(productCodeLogService.insertProductCodeLog(productCodeLog));
+    }
+
+    /**
+     * 修改产品码修改日志
+     */
+    @PreAuthorize("@ss.hasPermi('business:productcodelog:edit')")
+    @Log(title = "产品码修改日志", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ProductCodeLog productCodeLog)
+    {
+        return toAjax(productCodeLogService.updateProductCodeLog(productCodeLog));
+    }
+
+    /**
+     * 删除产品码修改日志
+     */
+    @PreAuthorize("@ss.hasPermi('business:productcodelog:remove')")
+    @Log(title = "产品码修改日志", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(productCodeLogService.deleteProductCodeLogByIds(ids));
+    }
+}

+ 545 - 545
zkqy-custom-business/src/main/java/com/zkqy/business/domain/ProductCodeAList.java

@@ -1,545 +1,545 @@
-package com.zkqy.business.domain;
-
-import java.util.Date;
-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;
-
-/**
- * 产品码单对象 product_code_list
- * 
- * @author ruoyi
- * @date 2025-02-12
- */
-public class ProductCodeAList extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 编号 code */
-    private Long id;
-
-    /** 码单号 */
-    @Excel(name = "码单号")
-    private String qrCode;
-
-    /** 批号 */
-    @Excel(name = "批号")
-    private String lotNum;
-
-    /** 货品编号 */
-    @Excel(name = "货品编号")
-    private Long productId;
-
-    public String getProductName() {
-        return productName;
-    }
-
-    public void setProductName(String productName) {
-        this.productName = productName;
-    }
-
-    /** 货品名称 */
-    @Excel(name = "货品名称")
-    private String productName;
-
-    public String getProductspecifications() {
-        return productspecifications;
-    }
-
-    public void setProductspecifications(String productspecifications) {
-        this.productspecifications = productspecifications;
-    }
-
-    /** 货品规格 */
-    @Excel(name = "货品规格")
-    private String productspecifications;
-
-    /** 产品色泽 */
-    @Excel(name = "产品色泽")
-    private String productColour;
-
-    /** 等级 */
-    @Excel(name = "等级")
-    private String levels;
-
-    /** 筒数 */
-    @Excel(name = "筒数")
-    private Long canisterNum;
-
-    /** 箱数(总码单存储多少总箱数) */
-    @Excel(name = "箱数", readConverterExp = "总=码单存储多少总箱数")
-    private Long boxNum;
-
-    /** 净重 */
-    @Excel(name = "净重")
-    private Long suttle;
-
-    /** 生产日期 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
-    private Date productionDate;
-
-    /** 机台 */
-    @Excel(name = "机台")
-    private String machineTool;
-
-    /** 毛重 */
-    @Excel(name = "毛重")
-    private Long grossWeight;
-
-    /** 包装 */
-    @Excel(name = "包装")
-    private String packaging;
-
-    /** 班次 */
-    @Excel(name = "班次")
-    private String workShifts;
-
-    /** 外贸号 */
-    @Excel(name = "外贸号")
-    private String foreignTradeNumber;
-
-    /** 筒重 */
-    @Excel(name = "筒重")
-    private Double canisterWeight;
-
-    /** 箱重/车重 */
-    @Excel(name = "箱重/车重")
-    private Double boxWeight;
-
-    /** 管色 */
-    @Excel(name = "管色")
-    private String tubeColor;
-
-    /** 端口(usb端口号) */
-    @Excel(name = "端口", readConverterExp = "u=sb端口号")
-    private String comPort;
-
-    /** 打印格式(打印二维码格式) */
-    @Excel(name = "打印格式", readConverterExp = "打=印二维码格式")
-    private String printFormat;
-
-    /** 包装类型(暂未使用) */
-    @Excel(name = "包装类型", readConverterExp = "暂=未使用")
-    private String packagingType;
-
-    /** 库位(暂未使用) */
-    @Excel(name = "库位", readConverterExp = "暂=未使用")
-    private String storageLocation;
-
-    /** 区域编号(暂未使用) */
-    @Excel(name = "区域编号", readConverterExp = "暂=未使用")
-    private Long warehouseregionId;
-
-    /** 删除标志(0:否;2:是) */
-    private String delFlag;
-
-    /** 创建者编号 */
-    @Excel(name = "创建者编号")
-    private Long createById;
-
-    /** 更新者编号 */
-    @Excel(name = "更新者编号")
-    private Long updateById;
-
-    /** 合计筒数 */
-    @Excel(name = "合计筒数")
-    private Long totalCanisterNum;
-
-    /** 合计箱数 */
-    @Excel(name = "合计箱数")
-    private Long totalBoxNum;
-
-    /** 合计净重 */
-    @Excel(name = "合计净重")
-    private Long totalSuttle;
-
-    /** 合计毛重 */
-    @Excel(name = "合计毛重")
-    private Long totalGrossWeight;
-
-    /** 退库标识 */
-    @Excel(name = "退库标识")
-    private String withdrawingFlag;
-
-    /** 销售产品ID */
-    @Excel(name = "销售产品ID")
-    private String saleProductId;
-
-    /** 码单状态(0:普通码单1:总码单) */
-    @Excel(name = "码单状态", readConverterExp = "0=:普通码单1:总码单")
-    private String otherStates;
-
-    /** 父级码单ID */
-    @Excel(name = "父级码单ID")
-    private String parentCode;
-
-    /** 二维码唯一标识 */
-    @Excel(name = "二维码唯一标识")
-    private String qrCodeId;
-
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-    public void setQrCode(String qrCode) 
-    {
-        this.qrCode = qrCode;
-    }
-
-    public String getQrCode() 
-    {
-        return qrCode;
-    }
-    public void setLotNum(String lotNum) 
-    {
-        this.lotNum = lotNum;
-    }
-
-    public String getLotNum() 
-    {
-        return lotNum;
-    }
-    public void setProductId(Long productId) 
-    {
-        this.productId = productId;
-    }
-
-    public Long getProductId() 
-    {
-        return productId;
-    }
-    public void setProductColour(String productColour) 
-    {
-        this.productColour = productColour;
-    }
-
-    public String getProductColour() 
-    {
-        return productColour;
-    }
-    public void setLevels(String levels) 
-    {
-        this.levels = levels;
-    }
-
-    public String getLevels() 
-    {
-        return levels;
-    }
-    public void setCanisterNum(Long canisterNum) 
-    {
-        this.canisterNum = canisterNum;
-    }
-
-    public Long getCanisterNum() 
-    {
-        return canisterNum;
-    }
-    public void setBoxNum(Long boxNum) 
-    {
-        this.boxNum = boxNum;
-    }
-
-    public Long getBoxNum() 
-    {
-        return boxNum;
-    }
-    public void setSuttle(Long suttle) 
-    {
-        this.suttle = suttle;
-    }
-
-    public Long getSuttle() 
-    {
-        return suttle;
-    }
-    public void setProductionDate(Date productionDate) 
-    {
-        this.productionDate = productionDate;
-    }
-
-    public Date getProductionDate() 
-    {
-        return productionDate;
-    }
-    public void setMachineTool(String machineTool) 
-    {
-        this.machineTool = machineTool;
-    }
-
-    public String getMachineTool() 
-    {
-        return machineTool;
-    }
-    public void setGrossWeight(Long grossWeight) 
-    {
-        this.grossWeight = grossWeight;
-    }
-
-    public Long getGrossWeight() 
-    {
-        return grossWeight;
-    }
-    public void setPackaging(String packaging) 
-    {
-        this.packaging = packaging;
-    }
-
-    public String getPackaging() 
-    {
-        return packaging;
-    }
-    public void setWorkShifts(String workShifts) 
-    {
-        this.workShifts = workShifts;
-    }
-
-    public String getWorkShifts() 
-    {
-        return workShifts;
-    }
-    public void setForeignTradeNumber(String foreignTradeNumber) 
-    {
-        this.foreignTradeNumber = foreignTradeNumber;
-    }
-
-    public String getForeignTradeNumber() 
-    {
-        return foreignTradeNumber;
-    }
-    public void setCanisterWeight(Double canisterWeight)
-    {
-        this.canisterWeight = canisterWeight;
-    }
-
-    public Double getCanisterWeight()
-    {
-        return canisterWeight;
-    }
-    public void setBoxWeight(Double boxWeight)
-    {
-        this.boxWeight = boxWeight;
-    }
-
-    public Double getBoxWeight()
-    {
-        return boxWeight;
-    }
-    public void setTubeColor(String tubeColor) 
-    {
-        this.tubeColor = tubeColor;
-    }
-
-    public String getTubeColor() 
-    {
-        return tubeColor;
-    }
-    public void setComPort(String comPort) 
-    {
-        this.comPort = comPort;
-    }
-
-    public String getComPort() 
-    {
-        return comPort;
-    }
-    public void setPrintFormat(String printFormat) 
-    {
-        this.printFormat = printFormat;
-    }
-
-    public String getPrintFormat() 
-    {
-        return printFormat;
-    }
-    public void setPackagingType(String packagingType) 
-    {
-        this.packagingType = packagingType;
-    }
-
-    public String getPackagingType() 
-    {
-        return packagingType;
-    }
-    public void setStorageLocation(String storageLocation) 
-    {
-        this.storageLocation = storageLocation;
-    }
-
-    public String getStorageLocation() 
-    {
-        return storageLocation;
-    }
-    public void setWarehouseregionId(Long warehouseregionId) 
-    {
-        this.warehouseregionId = warehouseregionId;
-    }
-
-    public Long getWarehouseregionId() 
-    {
-        return warehouseregionId;
-    }
-    public void setDelFlag(String delFlag) 
-    {
-        this.delFlag = delFlag;
-    }
-
-    public String getDelFlag() 
-    {
-        return delFlag;
-    }
-    public void setCreateById(Long createById) 
-    {
-        this.createById = createById;
-    }
-
-    public Long getCreateById() 
-    {
-        return createById;
-    }
-    public void setUpdateById(Long updateById) 
-    {
-        this.updateById = updateById;
-    }
-
-    public Long getUpdateById() 
-    {
-        return updateById;
-    }
-    public void setTotalCanisterNum(Long totalCanisterNum) 
-    {
-        this.totalCanisterNum = totalCanisterNum;
-    }
-
-    public Long getTotalCanisterNum() 
-    {
-        return totalCanisterNum;
-    }
-    public void setTotalBoxNum(Long totalBoxNum) 
-    {
-        this.totalBoxNum = totalBoxNum;
-    }
-
-    public Long getTotalBoxNum() 
-    {
-        return totalBoxNum;
-    }
-    public void setTotalSuttle(Long totalSuttle) 
-    {
-        this.totalSuttle = totalSuttle;
-    }
-
-    public Long getTotalSuttle() 
-    {
-        return totalSuttle;
-    }
-    public void setTotalGrossWeight(Long totalGrossWeight) 
-    {
-        this.totalGrossWeight = totalGrossWeight;
-    }
-
-    public Long getTotalGrossWeight() 
-    {
-        return totalGrossWeight;
-    }
-    public void setWithdrawingFlag(String withdrawingFlag) 
-    {
-        this.withdrawingFlag = withdrawingFlag;
-    }
-
-    public String getWithdrawingFlag() 
-    {
-        return withdrawingFlag;
-    }
-    public void setSaleProductId(String saleProductId) 
-    {
-        this.saleProductId = saleProductId;
-    }
-
-    public String getSaleProductId() 
-    {
-        return saleProductId;
-    }
-    public void setOtherStates(String otherStates) 
-    {
-        this.otherStates = otherStates;
-    }
-
-    public String getOtherStates() 
-    {
-        return otherStates;
-    }
-    public void setParentCode(String parentCode) 
-    {
-        this.parentCode = parentCode;
-    }
-
-    public String getParentCode() 
-    {
-        return parentCode;
-    }
-    public void setQrCodeId(String qrCodeId) 
-    {
-        this.qrCodeId = qrCodeId;
-    }
-
-    public String getQrCodeId() 
-    {
-        return qrCodeId;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("qrCode", getQrCode())
-            .append("lotNum", getLotNum())
-            .append("productId", getProductId())
-            .append("productNmae",getProductName())
-            .append("productColour", getProductColour())
-            .append("levels", getLevels())
-            .append("canisterNum", getCanisterNum())
-            .append("boxNum", getBoxNum())
-            .append("suttle", getSuttle())
-            .append("productionDate", getProductionDate())
-            .append("machineTool", getMachineTool())
-            .append("grossWeight", getGrossWeight())
-            .append("packaging", getPackaging())
-            .append("workShifts", getWorkShifts())
-            .append("foreignTradeNumber", getForeignTradeNumber())
-            .append("canisterWeight", getCanisterWeight())
-            .append("boxWeight", getBoxWeight())
-            .append("tubeColor", getTubeColor())
-            .append("comPort", getComPort())
-            .append("printFormat", getPrintFormat())
-            .append("packagingType", getPackagingType())
-            .append("storageLocation", getStorageLocation())
-            .append("warehouseregionId", getWarehouseregionId())
-            .append("remark", getRemark())
-            .append("delFlag", getDelFlag())
-            .append("createBy", getCreateBy())
-            .append("createById", getCreateById())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateById", getUpdateById())
-            .append("updateTime", getUpdateTime())
-            .append("totalCanisterNum", getTotalCanisterNum())
-            .append("totalBoxNum", getTotalBoxNum())
-            .append("totalSuttle", getTotalSuttle())
-            .append("totalGrossWeight", getTotalGrossWeight())
-            .append("withdrawingFlag", getWithdrawingFlag())
-            .append("saleProductId", getSaleProductId())
-            .append("otherStates", getOtherStates())
-            .append("parentCode", getParentCode())
-            .append("qrCodeId", getQrCodeId())
-            .toString();
-    }
-}
+package com.zkqy.business.domain;
+
+import java.util.Date;
+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;
+
+/**
+ * 产品码单对象 product_code_list
+ * 
+ * @author ruoyi
+ * @date 2025-02-12
+ */
+public class ProductCodeAList extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 编号 code */
+    private Long id;
+
+    /** 码单号 */
+    @Excel(name = "码单号")
+    private String qrCode;
+
+    /** 批号 */
+    @Excel(name = "批号")
+    private String lotNum;
+
+    /** 货品编号 */
+    @Excel(name = "货品编号")
+    private Long productId;
+
+    public String getProductName() {
+        return productName;
+    }
+
+    public void setProductName(String productName) {
+        this.productName = productName;
+    }
+
+    /** 货品名称 */
+    @Excel(name = "货品名称")
+    private String productName;
+
+    public String getProductspecifications() {
+        return productspecifications;
+    }
+
+    public void setProductspecifications(String productspecifications) {
+        this.productspecifications = productspecifications;
+    }
+
+    /** 货品规格 */
+    @Excel(name = "货品规格")
+    private String productspecifications;
+
+    /** 产品色泽 */
+    @Excel(name = "产品色泽")
+    private String productColour;
+
+    /** 等级 */
+    @Excel(name = "等级")
+    private String levels;
+
+    /** 筒数 */
+    @Excel(name = "筒数")
+    private Long canisterNum;
+
+    /** 箱数(总码单存储多少总箱数) */
+    @Excel(name = "箱数", readConverterExp = "总=码单存储多少总箱数")
+    private Long boxNum;
+
+    /** 净重 */
+    @Excel(name = "净重")
+    private Long suttle;
+
+    /** 生产日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date productionDate;
+
+    /** 机台 */
+    @Excel(name = "机台")
+    private String machineTool;
+
+    /** 毛重 */
+    @Excel(name = "毛重")
+    private Long grossWeight;
+
+    /** 包装 */
+    @Excel(name = "包装")
+    private String packaging;
+
+    /** 班次 */
+    @Excel(name = "班次")
+    private String workShifts;
+
+    /** 外贸号 */
+    @Excel(name = "外贸号")
+    private String foreignTradeNumber;
+
+    /** 筒重 */
+    @Excel(name = "筒重")
+    private Double canisterWeight;
+
+    /** 箱重/车重 */
+    @Excel(name = "箱重/车重")
+    private Double boxWeight;
+
+    /** 管色 */
+    @Excel(name = "管色")
+    private String tubeColor;
+
+    /** 端口(usb端口号) */
+    @Excel(name = "端口", readConverterExp = "u=sb端口号")
+    private String comPort;
+
+    /** 打印格式(打印二维码格式) */
+    @Excel(name = "打印格式", readConverterExp = "打=印二维码格式")
+    private String printFormat;
+
+    /** 包装类型(暂未使用) */
+    @Excel(name = "包装类型", readConverterExp = "暂=未使用")
+    private String packagingType;
+
+    /** 库位(暂未使用) */
+    @Excel(name = "库位", readConverterExp = "暂=未使用")
+    private String storageLocation;
+
+    /** 区域编号(暂未使用) */
+    @Excel(name = "区域编号", readConverterExp = "暂=未使用")
+    private Long warehouseregionId;
+
+    /** 删除标志(0:否;2:是) */
+    private String delFlag;
+
+    /** 创建者编号 */
+    @Excel(name = "创建者编号")
+    private Long createById;
+
+    /** 更新者编号 */
+    @Excel(name = "更新者编号")
+    private Long updateById;
+
+    /** 合计筒数 */
+    @Excel(name = "合计筒数")
+    private Long totalCanisterNum;
+
+    /** 合计箱数 */
+    @Excel(name = "合计箱数")
+    private Long totalBoxNum;
+
+    /** 合计净重 */
+    @Excel(name = "合计净重")
+    private Long totalSuttle;
+
+    /** 合计毛重 */
+    @Excel(name = "合计毛重")
+    private Long totalGrossWeight;
+
+    /** 退库标识 */
+    @Excel(name = "退库标识")
+    private String withdrawingFlag;
+
+    /** 销售产品ID */
+    @Excel(name = "销售产品ID")
+    private String saleProductId;
+
+    /** 码单状态(0:普通码单1:总码单) */
+    @Excel(name = "码单状态", readConverterExp = "0=:普通码单1:总码单")
+    private String otherStates;
+
+    /** 父级码单ID */
+    @Excel(name = "父级码单ID")
+    private String parentCode;
+
+    /** 二维码唯一标识 */
+    @Excel(name = "二维码唯一标识")
+    private String qrCodeId;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setQrCode(String qrCode) 
+    {
+        this.qrCode = qrCode;
+    }
+
+    public String getQrCode() 
+    {
+        return qrCode;
+    }
+    public void setLotNum(String lotNum) 
+    {
+        this.lotNum = lotNum;
+    }
+
+    public String getLotNum() 
+    {
+        return lotNum;
+    }
+    public void setProductId(Long productId) 
+    {
+        this.productId = productId;
+    }
+
+    public Long getProductId() 
+    {
+        return productId;
+    }
+    public void setProductColour(String productColour) 
+    {
+        this.productColour = productColour;
+    }
+
+    public String getProductColour() 
+    {
+        return productColour;
+    }
+    public void setLevels(String levels) 
+    {
+        this.levels = levels;
+    }
+
+    public String getLevels() 
+    {
+        return levels;
+    }
+    public void setCanisterNum(Long canisterNum) 
+    {
+        this.canisterNum = canisterNum;
+    }
+
+    public Long getCanisterNum() 
+    {
+        return canisterNum;
+    }
+    public void setBoxNum(Long boxNum) 
+    {
+        this.boxNum = boxNum;
+    }
+
+    public Long getBoxNum() 
+    {
+        return boxNum;
+    }
+    public void setSuttle(Long suttle) 
+    {
+        this.suttle = suttle;
+    }
+
+    public Long getSuttle() 
+    {
+        return suttle;
+    }
+    public void setProductionDate(Date productionDate) 
+    {
+        this.productionDate = productionDate;
+    }
+
+    public Date getProductionDate() 
+    {
+        return productionDate;
+    }
+    public void setMachineTool(String machineTool) 
+    {
+        this.machineTool = machineTool;
+    }
+
+    public String getMachineTool() 
+    {
+        return machineTool;
+    }
+    public void setGrossWeight(Long grossWeight) 
+    {
+        this.grossWeight = grossWeight;
+    }
+
+    public Long getGrossWeight() 
+    {
+        return grossWeight;
+    }
+    public void setPackaging(String packaging) 
+    {
+        this.packaging = packaging;
+    }
+
+    public String getPackaging() 
+    {
+        return packaging;
+    }
+    public void setWorkShifts(String workShifts) 
+    {
+        this.workShifts = workShifts;
+    }
+
+    public String getWorkShifts() 
+    {
+        return workShifts;
+    }
+    public void setForeignTradeNumber(String foreignTradeNumber) 
+    {
+        this.foreignTradeNumber = foreignTradeNumber;
+    }
+
+    public String getForeignTradeNumber() 
+    {
+        return foreignTradeNumber;
+    }
+    public void setCanisterWeight(Double canisterWeight)
+    {
+        this.canisterWeight = canisterWeight;
+    }
+
+    public Double getCanisterWeight()
+    {
+        return canisterWeight;
+    }
+    public void setBoxWeight(Double boxWeight)
+    {
+        this.boxWeight = boxWeight;
+    }
+
+    public Double getBoxWeight()
+    {
+        return boxWeight;
+    }
+    public void setTubeColor(String tubeColor) 
+    {
+        this.tubeColor = tubeColor;
+    }
+
+    public String getTubeColor() 
+    {
+        return tubeColor;
+    }
+    public void setComPort(String comPort) 
+    {
+        this.comPort = comPort;
+    }
+
+    public String getComPort() 
+    {
+        return comPort;
+    }
+    public void setPrintFormat(String printFormat) 
+    {
+        this.printFormat = printFormat;
+    }
+
+    public String getPrintFormat() 
+    {
+        return printFormat;
+    }
+    public void setPackagingType(String packagingType) 
+    {
+        this.packagingType = packagingType;
+    }
+
+    public String getPackagingType() 
+    {
+        return packagingType;
+    }
+    public void setStorageLocation(String storageLocation) 
+    {
+        this.storageLocation = storageLocation;
+    }
+
+    public String getStorageLocation() 
+    {
+        return storageLocation;
+    }
+    public void setWarehouseregionId(Long warehouseregionId) 
+    {
+        this.warehouseregionId = warehouseregionId;
+    }
+
+    public Long getWarehouseregionId() 
+    {
+        return warehouseregionId;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setTotalCanisterNum(Long totalCanisterNum) 
+    {
+        this.totalCanisterNum = totalCanisterNum;
+    }
+
+    public Long getTotalCanisterNum() 
+    {
+        return totalCanisterNum;
+    }
+    public void setTotalBoxNum(Long totalBoxNum) 
+    {
+        this.totalBoxNum = totalBoxNum;
+    }
+
+    public Long getTotalBoxNum() 
+    {
+        return totalBoxNum;
+    }
+    public void setTotalSuttle(Long totalSuttle) 
+    {
+        this.totalSuttle = totalSuttle;
+    }
+
+    public Long getTotalSuttle() 
+    {
+        return totalSuttle;
+    }
+    public void setTotalGrossWeight(Long totalGrossWeight) 
+    {
+        this.totalGrossWeight = totalGrossWeight;
+    }
+
+    public Long getTotalGrossWeight() 
+    {
+        return totalGrossWeight;
+    }
+    public void setWithdrawingFlag(String withdrawingFlag) 
+    {
+        this.withdrawingFlag = withdrawingFlag;
+    }
+
+    public String getWithdrawingFlag() 
+    {
+        return withdrawingFlag;
+    }
+    public void setSaleProductId(String saleProductId) 
+    {
+        this.saleProductId = saleProductId;
+    }
+
+    public String getSaleProductId() 
+    {
+        return saleProductId;
+    }
+    public void setOtherStates(String otherStates) 
+    {
+        this.otherStates = otherStates;
+    }
+
+    public String getOtherStates() 
+    {
+        return otherStates;
+    }
+    public void setParentCode(String parentCode) 
+    {
+        this.parentCode = parentCode;
+    }
+
+    public String getParentCode() 
+    {
+        return parentCode;
+    }
+    public void setQrCodeId(String qrCodeId) 
+    {
+        this.qrCodeId = qrCodeId;
+    }
+
+    public String getQrCodeId() 
+    {
+        return qrCodeId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("qrCode", getQrCode())
+            .append("lotNum", getLotNum())
+            .append("productId", getProductId())
+            .append("productNmae",getProductName())
+            .append("productColour", getProductColour())
+            .append("levels", getLevels())
+            .append("canisterNum", getCanisterNum())
+            .append("boxNum", getBoxNum())
+            .append("suttle", getSuttle())
+            .append("productionDate", getProductionDate())
+            .append("machineTool", getMachineTool())
+            .append("grossWeight", getGrossWeight())
+            .append("packaging", getPackaging())
+            .append("workShifts", getWorkShifts())
+            .append("foreignTradeNumber", getForeignTradeNumber())
+            .append("canisterWeight", getCanisterWeight())
+            .append("boxWeight", getBoxWeight())
+            .append("tubeColor", getTubeColor())
+            .append("comPort", getComPort())
+            .append("printFormat", getPrintFormat())
+            .append("packagingType", getPackagingType())
+            .append("storageLocation", getStorageLocation())
+            .append("warehouseregionId", getWarehouseregionId())
+            .append("remark", getRemark())
+            .append("delFlag", getDelFlag())
+            .append("createBy", getCreateBy())
+            .append("createById", getCreateById())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateById", getUpdateById())
+            .append("updateTime", getUpdateTime())
+            .append("totalCanisterNum", getTotalCanisterNum())
+            .append("totalBoxNum", getTotalBoxNum())
+            .append("totalSuttle", getTotalSuttle())
+            .append("totalGrossWeight", getTotalGrossWeight())
+            .append("withdrawingFlag", getWithdrawingFlag())
+            .append("saleProductId", getSaleProductId())
+            .append("otherStates", getOtherStates())
+            .append("parentCode", getParentCode())
+            .append("qrCodeId", getQrCodeId())
+            .toString();
+    }
+}

+ 559 - 559
zkqy-custom-business/src/main/java/com/zkqy/business/domain/ProductCodeLog.java

@@ -1,559 +1,559 @@
-package com.zkqy.business.domain;
-
-import java.util.Date;
-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;
-
-/**
- * 产品码修改日志对象 product_code_log
- * 
- * @author ruoyi
- * @date 2025-03-06
- */
-public class ProductCodeLog extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 编号 code */
-    private Long id;
-
-    /** 码单号 */
-    @Excel(name = "码单号")
-    private String qrCode;
-
-
-    public String getProductName() {
-        return productName;
-    }
-
-    public void setProductName(String productName) {
-        this.productName = productName;
-    }
-
-    /** 货品名称 */
-    @Excel(name = "货品名称")
-    private String productName;
-
-    public String getProductspecifications() {
-        return productspecifications;
-    }
-
-    public void setProductspecifications(String productspecifications) {
-        this.productspecifications = productspecifications;
-    }
-
-    /** 货品规格 */
-    @Excel(name = "货品规格")
-    private String productspecifications;
-
-    /** 批号 */
-    @Excel(name = "批号")
-    private String lotNum;
-
-    /** 货品编号 */
-    @Excel(name = "货品编号")
-    private Long productId;
-
-    /** 产品色泽 */
-    @Excel(name = "产品色泽")
-    private String productColour;
-
-    /** 等级 */
-    @Excel(name = "等级")
-    private String levels;
-
-    /** 筒数 */
-    @Excel(name = "筒数")
-    private Long canisterNum;
-
-    /** 箱数(总码单存储多少总箱数) */
-    @Excel(name = "箱数", readConverterExp = "总=码单存储多少总箱数")
-    private Long boxNum;
-
-    /** 净重 */
-    @Excel(name = "净重")
-    private Long suttle;
-
-    /** 生产日期 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
-    private Date productionDate;
-
-    /** 机台 */
-    @Excel(name = "机台")
-    private String machineTool;
-
-    /** 毛重 */
-    @Excel(name = "毛重")
-    private Long grossWeight;
-
-    /** 包装 */
-    @Excel(name = "包装")
-    private String packaging;
-
-    /** 班次 */
-    @Excel(name = "班次")
-    private String workShifts;
-
-    /** 外贸号 */
-    @Excel(name = "外贸号")
-    private String foreignTradeNumber;
-
-    /** 筒重 */
-    @Excel(name = "筒重")
-    private Double canisterWeight;
-
-    /** 箱重/车重 */
-    @Excel(name = "箱重/车重")
-    private Double boxWeight;
-
-    /** 管色 */
-    @Excel(name = "管色")
-    private String tubeColor;
-
-    /** 端口(usb端口号) */
-    @Excel(name = "端口", readConverterExp = "u=sb端口号")
-    private String comPort;
-
-    /** 打印格式(打印二维码格式) */
-    @Excel(name = "打印格式", readConverterExp = "打=印二维码格式")
-    private String printFormat;
-
-    /** 包装类型(暂未使用) */
-    @Excel(name = "包装类型", readConverterExp = "暂=未使用")
-    private String packagingType;
-
-    /** 库位(暂未使用) */
-    @Excel(name = "库位", readConverterExp = "暂=未使用")
-    private String storageLocation;
-
-    /** 区域编号(暂未使用) */
-    @Excel(name = "区域编号", readConverterExp = "暂=未使用")
-    private Long warehouseregionId;
-
-    /** 删除标志(0:否;2:是) */
-    private String delFlag;
-
-    /** 创建者编号 */
-    @Excel(name = "创建者编号")
-    private Long createById;
-
-    /** 更新者编号 */
-    @Excel(name = "更新者编号")
-    private Long updateById;
-
-    /** 合计筒数 */
-    @Excel(name = "合计筒数")
-    private Long totalCanisterNum;
-
-    /** 合计箱数 */
-    @Excel(name = "合计箱数")
-    private Long totalBoxNum;
-
-    /** 合计净重 */
-    @Excel(name = "合计净重")
-    private Long totalSuttle;
-
-    /** 合计毛重 */
-    @Excel(name = "合计毛重")
-    private Long totalGrossWeight;
-
-    /** 退库标识 */
-    @Excel(name = "退库标识")
-    private String withdrawingFlag;
-
-    /** 销售产品ID */
-    @Excel(name = "销售产品ID")
-    private String saleProductId;
-
-    /** 码单状态(0:普通码单1:总码单) */
-    @Excel(name = "码单状态", readConverterExp = "0=:普通码单1:总码单")
-    private String otherStates;
-
-    /** 父级码单ID */
-    @Excel(name = "父级码单ID")
-    private String parentCode;
-
-    /** 二维码唯一标识 */
-    @Excel(name = "二维码唯一标识")
-    private String qrCodeId;
-
-    /** 改前码单 */
-    @Excel(name = "改前码单")
-    private Long fatherid;
-
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-    public void setQrCode(String qrCode) 
-    {
-        this.qrCode = qrCode;
-    }
-
-    public String getQrCode() 
-    {
-        return qrCode;
-    }
-    public void setLotNum(String lotNum) 
-    {
-        this.lotNum = lotNum;
-    }
-
-    public String getLotNum() 
-    {
-        return lotNum;
-    }
-    public void setProductId(Long productId) 
-    {
-        this.productId = productId;
-    }
-
-    public Long getProductId() 
-    {
-        return productId;
-    }
-    public void setProductColour(String productColour) 
-    {
-        this.productColour = productColour;
-    }
-
-    public String getProductColour() 
-    {
-        return productColour;
-    }
-    public void setLevels(String levels) 
-    {
-        this.levels = levels;
-    }
-
-    public String getLevels() 
-    {
-        return levels;
-    }
-    public void setCanisterNum(Long canisterNum) 
-    {
-        this.canisterNum = canisterNum;
-    }
-
-    public Long getCanisterNum() 
-    {
-        return canisterNum;
-    }
-    public void setBoxNum(Long boxNum) 
-    {
-        this.boxNum = boxNum;
-    }
-
-    public Long getBoxNum() 
-    {
-        return boxNum;
-    }
-    public void setSuttle(Long suttle) 
-    {
-        this.suttle = suttle;
-    }
-
-    public Long getSuttle() 
-    {
-        return suttle;
-    }
-    public void setProductionDate(Date productionDate) 
-    {
-        this.productionDate = productionDate;
-    }
-
-    public Date getProductionDate() 
-    {
-        return productionDate;
-    }
-    public void setMachineTool(String machineTool) 
-    {
-        this.machineTool = machineTool;
-    }
-
-    public String getMachineTool() 
-    {
-        return machineTool;
-    }
-    public void setGrossWeight(Long grossWeight) 
-    {
-        this.grossWeight = grossWeight;
-    }
-
-    public Long getGrossWeight() 
-    {
-        return grossWeight;
-    }
-    public void setPackaging(String packaging) 
-    {
-        this.packaging = packaging;
-    }
-
-    public String getPackaging() 
-    {
-        return packaging;
-    }
-    public void setWorkShifts(String workShifts) 
-    {
-        this.workShifts = workShifts;
-    }
-
-    public String getWorkShifts() 
-    {
-        return workShifts;
-    }
-    public void setForeignTradeNumber(String foreignTradeNumber) 
-    {
-        this.foreignTradeNumber = foreignTradeNumber;
-    }
-
-    public String getForeignTradeNumber() 
-    {
-        return foreignTradeNumber;
-    }
-    public void setCanisterWeight(Double canisterWeight)
-    {
-        this.canisterWeight = canisterWeight;
-    }
-
-    public Double getCanisterWeight()
-    {
-        return canisterWeight;
-    }
-    public void setBoxWeight(Double boxWeight)
-    {
-        this.boxWeight = boxWeight;
-    }
-
-    public Double getBoxWeight()
-    {
-        return boxWeight;
-    }
-    public void setTubeColor(String tubeColor) 
-    {
-        this.tubeColor = tubeColor;
-    }
-
-    public String getTubeColor() 
-    {
-        return tubeColor;
-    }
-    public void setComPort(String comPort) 
-    {
-        this.comPort = comPort;
-    }
-
-    public String getComPort() 
-    {
-        return comPort;
-    }
-    public void setPrintFormat(String printFormat) 
-    {
-        this.printFormat = printFormat;
-    }
-
-    public String getPrintFormat() 
-    {
-        return printFormat;
-    }
-    public void setPackagingType(String packagingType) 
-    {
-        this.packagingType = packagingType;
-    }
-
-    public String getPackagingType() 
-    {
-        return packagingType;
-    }
-    public void setStorageLocation(String storageLocation) 
-    {
-        this.storageLocation = storageLocation;
-    }
-
-    public String getStorageLocation() 
-    {
-        return storageLocation;
-    }
-    public void setWarehouseregionId(Long warehouseregionId) 
-    {
-        this.warehouseregionId = warehouseregionId;
-    }
-
-    public Long getWarehouseregionId() 
-    {
-        return warehouseregionId;
-    }
-    public void setDelFlag(String delFlag) 
-    {
-        this.delFlag = delFlag;
-    }
-
-    public String getDelFlag() 
-    {
-        return delFlag;
-    }
-    public void setCreateById(Long createById) 
-    {
-        this.createById = createById;
-    }
-
-    public Long getCreateById() 
-    {
-        return createById;
-    }
-    public void setUpdateById(Long updateById) 
-    {
-        this.updateById = updateById;
-    }
-
-    public Long getUpdateById() 
-    {
-        return updateById;
-    }
-    public void setTotalCanisterNum(Long totalCanisterNum) 
-    {
-        this.totalCanisterNum = totalCanisterNum;
-    }
-
-    public Long getTotalCanisterNum() 
-    {
-        return totalCanisterNum;
-    }
-    public void setTotalBoxNum(Long totalBoxNum) 
-    {
-        this.totalBoxNum = totalBoxNum;
-    }
-
-    public Long getTotalBoxNum() 
-    {
-        return totalBoxNum;
-    }
-    public void setTotalSuttle(Long totalSuttle) 
-    {
-        this.totalSuttle = totalSuttle;
-    }
-
-    public Long getTotalSuttle() 
-    {
-        return totalSuttle;
-    }
-    public void setTotalGrossWeight(Long totalGrossWeight) 
-    {
-        this.totalGrossWeight = totalGrossWeight;
-    }
-
-    public Long getTotalGrossWeight() 
-    {
-        return totalGrossWeight;
-    }
-    public void setWithdrawingFlag(String withdrawingFlag) 
-    {
-        this.withdrawingFlag = withdrawingFlag;
-    }
-
-    public String getWithdrawingFlag() 
-    {
-        return withdrawingFlag;
-    }
-    public void setSaleProductId(String saleProductId) 
-    {
-        this.saleProductId = saleProductId;
-    }
-
-    public String getSaleProductId() 
-    {
-        return saleProductId;
-    }
-    public void setOtherStates(String otherStates) 
-    {
-        this.otherStates = otherStates;
-    }
-
-    public String getOtherStates() 
-    {
-        return otherStates;
-    }
-    public void setParentCode(String parentCode)
-    {
-        this.parentCode = parentCode;
-    }
-
-    public String getParentCode()
-    {
-        return parentCode;
-    }
-    public void setQrCodeId(String qrCodeId)
-    {
-        this.qrCodeId = qrCodeId;
-    }
-
-    public String getQrCodeId() 
-    {
-        return qrCodeId;
-    }
-    public void setFatherid(Long fatherid)
-    {
-        this.fatherid = fatherid;
-    }
-
-    public Long getFatherid()
-    {
-        return fatherid;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("qrCode", getQrCode())
-            .append("lotNum", getLotNum())
-            .append("productId", getProductId())
-            .append("productColour", getProductColour())
-            .append("levels", getLevels())
-            .append("canisterNum", getCanisterNum())
-            .append("boxNum", getBoxNum())
-            .append("suttle", getSuttle())
-            .append("productionDate", getProductionDate())
-            .append("machineTool", getMachineTool())
-            .append("grossWeight", getGrossWeight())
-            .append("packaging", getPackaging())
-            .append("workShifts", getWorkShifts())
-            .append("foreignTradeNumber", getForeignTradeNumber())
-            .append("canisterWeight", getCanisterWeight())
-            .append("boxWeight", getBoxWeight())
-            .append("tubeColor", getTubeColor())
-            .append("comPort", getComPort())
-            .append("printFormat", getPrintFormat())
-            .append("packagingType", getPackagingType())
-            .append("storageLocation", getStorageLocation())
-            .append("warehouseregionId", getWarehouseregionId())
-            .append("remark", getRemark())
-            .append("delFlag", getDelFlag())
-            .append("createBy", getCreateBy())
-            .append("createById", getCreateById())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateById", getUpdateById())
-            .append("updateTime", getUpdateTime())
-            .append("totalCanisterNum", getTotalCanisterNum())
-            .append("totalBoxNum", getTotalBoxNum())
-            .append("totalSuttle", getTotalSuttle())
-            .append("totalGrossWeight", getTotalGrossWeight())
-            .append("withdrawingFlag", getWithdrawingFlag())
-            .append("saleProductId", getSaleProductId())
-            .append("otherStates", getOtherStates())
-            .append("parentCode", getParentCode())
-            .append("qrCodeId", getQrCodeId())
-            .append("fatherid", getFatherid())
-            .toString();
-    }
-}
+package com.zkqy.business.domain;
+
+import java.util.Date;
+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;
+
+/**
+ * 产品码修改日志对象 product_code_log
+ * 
+ * @author ruoyi
+ * @date 2025-03-06
+ */
+public class ProductCodeLog extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 编号 code */
+    private Long id;
+
+    /** 码单号 */
+    @Excel(name = "码单号")
+    private String qrCode;
+
+
+    public String getProductName() {
+        return productName;
+    }
+
+    public void setProductName(String productName) {
+        this.productName = productName;
+    }
+
+    /** 货品名称 */
+    @Excel(name = "货品名称")
+    private String productName;
+
+    public String getProductspecifications() {
+        return productspecifications;
+    }
+
+    public void setProductspecifications(String productspecifications) {
+        this.productspecifications = productspecifications;
+    }
+
+    /** 货品规格 */
+    @Excel(name = "货品规格")
+    private String productspecifications;
+
+    /** 批号 */
+    @Excel(name = "批号")
+    private String lotNum;
+
+    /** 货品编号 */
+    @Excel(name = "货品编号")
+    private Long productId;
+
+    /** 产品色泽 */
+    @Excel(name = "产品色泽")
+    private String productColour;
+
+    /** 等级 */
+    @Excel(name = "等级")
+    private String levels;
+
+    /** 筒数 */
+    @Excel(name = "筒数")
+    private Long canisterNum;
+
+    /** 箱数(总码单存储多少总箱数) */
+    @Excel(name = "箱数", readConverterExp = "总=码单存储多少总箱数")
+    private Long boxNum;
+
+    /** 净重 */
+    @Excel(name = "净重")
+    private Long suttle;
+
+    /** 生产日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date productionDate;
+
+    /** 机台 */
+    @Excel(name = "机台")
+    private String machineTool;
+
+    /** 毛重 */
+    @Excel(name = "毛重")
+    private Long grossWeight;
+
+    /** 包装 */
+    @Excel(name = "包装")
+    private String packaging;
+
+    /** 班次 */
+    @Excel(name = "班次")
+    private String workShifts;
+
+    /** 外贸号 */
+    @Excel(name = "外贸号")
+    private String foreignTradeNumber;
+
+    /** 筒重 */
+    @Excel(name = "筒重")
+    private Double canisterWeight;
+
+    /** 箱重/车重 */
+    @Excel(name = "箱重/车重")
+    private Double boxWeight;
+
+    /** 管色 */
+    @Excel(name = "管色")
+    private String tubeColor;
+
+    /** 端口(usb端口号) */
+    @Excel(name = "端口", readConverterExp = "u=sb端口号")
+    private String comPort;
+
+    /** 打印格式(打印二维码格式) */
+    @Excel(name = "打印格式", readConverterExp = "打=印二维码格式")
+    private String printFormat;
+
+    /** 包装类型(暂未使用) */
+    @Excel(name = "包装类型", readConverterExp = "暂=未使用")
+    private String packagingType;
+
+    /** 库位(暂未使用) */
+    @Excel(name = "库位", readConverterExp = "暂=未使用")
+    private String storageLocation;
+
+    /** 区域编号(暂未使用) */
+    @Excel(name = "区域编号", readConverterExp = "暂=未使用")
+    private Long warehouseregionId;
+
+    /** 删除标志(0:否;2:是) */
+    private String delFlag;
+
+    /** 创建者编号 */
+    @Excel(name = "创建者编号")
+    private Long createById;
+
+    /** 更新者编号 */
+    @Excel(name = "更新者编号")
+    private Long updateById;
+
+    /** 合计筒数 */
+    @Excel(name = "合计筒数")
+    private Long totalCanisterNum;
+
+    /** 合计箱数 */
+    @Excel(name = "合计箱数")
+    private Long totalBoxNum;
+
+    /** 合计净重 */
+    @Excel(name = "合计净重")
+    private Long totalSuttle;
+
+    /** 合计毛重 */
+    @Excel(name = "合计毛重")
+    private Long totalGrossWeight;
+
+    /** 退库标识 */
+    @Excel(name = "退库标识")
+    private String withdrawingFlag;
+
+    /** 销售产品ID */
+    @Excel(name = "销售产品ID")
+    private String saleProductId;
+
+    /** 码单状态(0:普通码单1:总码单) */
+    @Excel(name = "码单状态", readConverterExp = "0=:普通码单1:总码单")
+    private String otherStates;
+
+    /** 父级码单ID */
+    @Excel(name = "父级码单ID")
+    private String parentCode;
+
+    /** 二维码唯一标识 */
+    @Excel(name = "二维码唯一标识")
+    private String qrCodeId;
+
+    /** 改前码单 */
+    @Excel(name = "改前码单")
+    private Long fatherid;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setQrCode(String qrCode) 
+    {
+        this.qrCode = qrCode;
+    }
+
+    public String getQrCode() 
+    {
+        return qrCode;
+    }
+    public void setLotNum(String lotNum) 
+    {
+        this.lotNum = lotNum;
+    }
+
+    public String getLotNum() 
+    {
+        return lotNum;
+    }
+    public void setProductId(Long productId) 
+    {
+        this.productId = productId;
+    }
+
+    public Long getProductId() 
+    {
+        return productId;
+    }
+    public void setProductColour(String productColour) 
+    {
+        this.productColour = productColour;
+    }
+
+    public String getProductColour() 
+    {
+        return productColour;
+    }
+    public void setLevels(String levels) 
+    {
+        this.levels = levels;
+    }
+
+    public String getLevels() 
+    {
+        return levels;
+    }
+    public void setCanisterNum(Long canisterNum) 
+    {
+        this.canisterNum = canisterNum;
+    }
+
+    public Long getCanisterNum() 
+    {
+        return canisterNum;
+    }
+    public void setBoxNum(Long boxNum) 
+    {
+        this.boxNum = boxNum;
+    }
+
+    public Long getBoxNum() 
+    {
+        return boxNum;
+    }
+    public void setSuttle(Long suttle) 
+    {
+        this.suttle = suttle;
+    }
+
+    public Long getSuttle() 
+    {
+        return suttle;
+    }
+    public void setProductionDate(Date productionDate) 
+    {
+        this.productionDate = productionDate;
+    }
+
+    public Date getProductionDate() 
+    {
+        return productionDate;
+    }
+    public void setMachineTool(String machineTool) 
+    {
+        this.machineTool = machineTool;
+    }
+
+    public String getMachineTool() 
+    {
+        return machineTool;
+    }
+    public void setGrossWeight(Long grossWeight) 
+    {
+        this.grossWeight = grossWeight;
+    }
+
+    public Long getGrossWeight() 
+    {
+        return grossWeight;
+    }
+    public void setPackaging(String packaging) 
+    {
+        this.packaging = packaging;
+    }
+
+    public String getPackaging() 
+    {
+        return packaging;
+    }
+    public void setWorkShifts(String workShifts) 
+    {
+        this.workShifts = workShifts;
+    }
+
+    public String getWorkShifts() 
+    {
+        return workShifts;
+    }
+    public void setForeignTradeNumber(String foreignTradeNumber) 
+    {
+        this.foreignTradeNumber = foreignTradeNumber;
+    }
+
+    public String getForeignTradeNumber() 
+    {
+        return foreignTradeNumber;
+    }
+    public void setCanisterWeight(Double canisterWeight)
+    {
+        this.canisterWeight = canisterWeight;
+    }
+
+    public Double getCanisterWeight()
+    {
+        return canisterWeight;
+    }
+    public void setBoxWeight(Double boxWeight)
+    {
+        this.boxWeight = boxWeight;
+    }
+
+    public Double getBoxWeight()
+    {
+        return boxWeight;
+    }
+    public void setTubeColor(String tubeColor) 
+    {
+        this.tubeColor = tubeColor;
+    }
+
+    public String getTubeColor() 
+    {
+        return tubeColor;
+    }
+    public void setComPort(String comPort) 
+    {
+        this.comPort = comPort;
+    }
+
+    public String getComPort() 
+    {
+        return comPort;
+    }
+    public void setPrintFormat(String printFormat) 
+    {
+        this.printFormat = printFormat;
+    }
+
+    public String getPrintFormat() 
+    {
+        return printFormat;
+    }
+    public void setPackagingType(String packagingType) 
+    {
+        this.packagingType = packagingType;
+    }
+
+    public String getPackagingType() 
+    {
+        return packagingType;
+    }
+    public void setStorageLocation(String storageLocation) 
+    {
+        this.storageLocation = storageLocation;
+    }
+
+    public String getStorageLocation() 
+    {
+        return storageLocation;
+    }
+    public void setWarehouseregionId(Long warehouseregionId) 
+    {
+        this.warehouseregionId = warehouseregionId;
+    }
+
+    public Long getWarehouseregionId() 
+    {
+        return warehouseregionId;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setTotalCanisterNum(Long totalCanisterNum) 
+    {
+        this.totalCanisterNum = totalCanisterNum;
+    }
+
+    public Long getTotalCanisterNum() 
+    {
+        return totalCanisterNum;
+    }
+    public void setTotalBoxNum(Long totalBoxNum) 
+    {
+        this.totalBoxNum = totalBoxNum;
+    }
+
+    public Long getTotalBoxNum() 
+    {
+        return totalBoxNum;
+    }
+    public void setTotalSuttle(Long totalSuttle) 
+    {
+        this.totalSuttle = totalSuttle;
+    }
+
+    public Long getTotalSuttle() 
+    {
+        return totalSuttle;
+    }
+    public void setTotalGrossWeight(Long totalGrossWeight) 
+    {
+        this.totalGrossWeight = totalGrossWeight;
+    }
+
+    public Long getTotalGrossWeight() 
+    {
+        return totalGrossWeight;
+    }
+    public void setWithdrawingFlag(String withdrawingFlag) 
+    {
+        this.withdrawingFlag = withdrawingFlag;
+    }
+
+    public String getWithdrawingFlag() 
+    {
+        return withdrawingFlag;
+    }
+    public void setSaleProductId(String saleProductId) 
+    {
+        this.saleProductId = saleProductId;
+    }
+
+    public String getSaleProductId() 
+    {
+        return saleProductId;
+    }
+    public void setOtherStates(String otherStates) 
+    {
+        this.otherStates = otherStates;
+    }
+
+    public String getOtherStates() 
+    {
+        return otherStates;
+    }
+    public void setParentCode(String parentCode)
+    {
+        this.parentCode = parentCode;
+    }
+
+    public String getParentCode()
+    {
+        return parentCode;
+    }
+    public void setQrCodeId(String qrCodeId)
+    {
+        this.qrCodeId = qrCodeId;
+    }
+
+    public String getQrCodeId() 
+    {
+        return qrCodeId;
+    }
+    public void setFatherid(Long fatherid)
+    {
+        this.fatherid = fatherid;
+    }
+
+    public Long getFatherid()
+    {
+        return fatherid;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("qrCode", getQrCode())
+            .append("lotNum", getLotNum())
+            .append("productId", getProductId())
+            .append("productColour", getProductColour())
+            .append("levels", getLevels())
+            .append("canisterNum", getCanisterNum())
+            .append("boxNum", getBoxNum())
+            .append("suttle", getSuttle())
+            .append("productionDate", getProductionDate())
+            .append("machineTool", getMachineTool())
+            .append("grossWeight", getGrossWeight())
+            .append("packaging", getPackaging())
+            .append("workShifts", getWorkShifts())
+            .append("foreignTradeNumber", getForeignTradeNumber())
+            .append("canisterWeight", getCanisterWeight())
+            .append("boxWeight", getBoxWeight())
+            .append("tubeColor", getTubeColor())
+            .append("comPort", getComPort())
+            .append("printFormat", getPrintFormat())
+            .append("packagingType", getPackagingType())
+            .append("storageLocation", getStorageLocation())
+            .append("warehouseregionId", getWarehouseregionId())
+            .append("remark", getRemark())
+            .append("delFlag", getDelFlag())
+            .append("createBy", getCreateBy())
+            .append("createById", getCreateById())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateById", getUpdateById())
+            .append("updateTime", getUpdateTime())
+            .append("totalCanisterNum", getTotalCanisterNum())
+            .append("totalBoxNum", getTotalBoxNum())
+            .append("totalSuttle", getTotalSuttle())
+            .append("totalGrossWeight", getTotalGrossWeight())
+            .append("withdrawingFlag", getWithdrawingFlag())
+            .append("saleProductId", getSaleProductId())
+            .append("otherStates", getOtherStates())
+            .append("parentCode", getParentCode())
+            .append("qrCodeId", getQrCodeId())
+            .append("fatherid", getFatherid())
+            .toString();
+    }
+}

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

@@ -1,61 +1,61 @@
-package com.zkqy.business.mapper;
-
-import java.util.List;
-import com.zkqy.business.domain.ProductCodeAList;
-
-/**
- * 产品码单Mapper接口
- * 
- * @author ruoyi
- * @date 2025-02-12
- */
-public interface ProductCodeAListMapper 
-{
-    /**
-     * 查询产品码单
-     * 
-     * @param id 产品码单主键
-     * @return 产品码单
-     */
-    public ProductCodeAList selectProductCodeAListById(Long id);
-
-    /**
-     * 查询产品码单列表
-     * 
-     * @param productCodeAList 产品码单
-     * @return 产品码单集合
-     */
-    public List<ProductCodeAList> selectProductCodeAListList(ProductCodeAList productCodeAList);
-
-    /**
-     * 新增产品码单
-     * 
-     * @param productCodeAList 产品码单
-     * @return 结果
-     */
-    public int insertProductCodeAList(ProductCodeAList productCodeAList);
-
-    /**
-     * 修改产品码单
-     * 
-     * @param productCodeAList 产品码单
-     * @return 结果
-     */
-    public int updateProductCodeAList(ProductCodeAList productCodeAList);
-
-    /**
-     * 删除产品码单
-     * 
-     * @param id 产品码单主键
-     * @return 结果
-     */
-    public int deleteProductCodeAListById(Long id);
-
-    /**
-     * 批量删除产品码单
-     * 
-     * @param ids 需要删除的数据主键集合
-     * @return 结果
-     */
-    public int deleteProductCodeAListByIds(Long[] ids);
-}
+package com.zkqy.business.mapper;
+
+import java.util.List;
+import com.zkqy.business.domain.ProductCodeAList;
+
+/**
+ * 产品码单Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-02-12
+ */
+public interface ProductCodeAListMapper 
+{
+    /**
+     * 查询产品码单
+     * 
+     * @param id 产品码单主键
+     * @return 产品码单
+     */
+    public ProductCodeAList selectProductCodeAListById(Long id);
+
+    /**
+     * 查询产品码单列表
+     * 
+     * @param productCodeAList 产品码单
+     * @return 产品码单集合
+     */
+    public List<ProductCodeAList> selectProductCodeAListList(ProductCodeAList productCodeAList);
+
+    /**
+     * 新增产品码单
+     * 
+     * @param productCodeAList 产品码单
+     * @return 结果
+     */
+    public int insertProductCodeAList(ProductCodeAList productCodeAList);
+
+    /**
+     * 修改产品码单
+     * 
+     * @param productCodeAList 产品码单
+     * @return 结果
+     */
+    public int updateProductCodeAList(ProductCodeAList productCodeAList);
+
+    /**
+     * 删除产品码单
+     * 
+     * @param id 产品码单主键
+     * @return 结果
+     */
+    public int deleteProductCodeAListById(Long id);
+
+    /**
+     * 批量删除产品码单
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteProductCodeAListByIds(Long[] ids);
+}

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

@@ -1,61 +1,61 @@
-package com.zkqy.business.mapper;
-
-import java.util.List;
-import com.zkqy.business.domain.ProductCodeLog;
-
-/**
- * 产品码修改日志Mapper接口
- * 
- * @author ruoyi
- * @date 2025-03-06
- */
-public interface ProductCodeLogMapper 
-{
-    /**
-     * 查询产品码修改日志
-     * 
-     * @param id 产品码修改日志主键
-     * @return 产品码修改日志
-     */
-    public ProductCodeLog selectProductCodeLogById(Long id);
-
-    /**
-     * 查询产品码修改日志列表
-     * 
-     * @param productCodeLog 产品码修改日志
-     * @return 产品码修改日志集合
-     */
-    public List<ProductCodeLog> selectProductCodeLogList(ProductCodeLog productCodeLog);
-
-    /**
-     * 新增产品码修改日志
-     * 
-     * @param productCodeLog 产品码修改日志
-     * @return 结果
-     */
-    public int insertProductCodeLog(ProductCodeLog productCodeLog);
-
-    /**
-     * 修改产品码修改日志
-     * 
-     * @param productCodeLog 产品码修改日志
-     * @return 结果
-     */
-    public int updateProductCodeLog(ProductCodeLog productCodeLog);
-
-    /**
-     * 删除产品码修改日志
-     * 
-     * @param id 产品码修改日志主键
-     * @return 结果
-     */
-    public int deleteProductCodeLogById(Long id);
-
-    /**
-     * 批量删除产品码修改日志
-     * 
-     * @param ids 需要删除的数据主键集合
-     * @return 结果
-     */
-    public int deleteProductCodeLogByIds(Long[] ids);
-}
+package com.zkqy.business.mapper;
+
+import java.util.List;
+import com.zkqy.business.domain.ProductCodeLog;
+
+/**
+ * 产品码修改日志Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-03-06
+ */
+public interface ProductCodeLogMapper 
+{
+    /**
+     * 查询产品码修改日志
+     * 
+     * @param id 产品码修改日志主键
+     * @return 产品码修改日志
+     */
+    public ProductCodeLog selectProductCodeLogById(Long id);
+
+    /**
+     * 查询产品码修改日志列表
+     * 
+     * @param productCodeLog 产品码修改日志
+     * @return 产品码修改日志集合
+     */
+    public List<ProductCodeLog> selectProductCodeLogList(ProductCodeLog productCodeLog);
+
+    /**
+     * 新增产品码修改日志
+     * 
+     * @param productCodeLog 产品码修改日志
+     * @return 结果
+     */
+    public int insertProductCodeLog(ProductCodeLog productCodeLog);
+
+    /**
+     * 修改产品码修改日志
+     * 
+     * @param productCodeLog 产品码修改日志
+     * @return 结果
+     */
+    public int updateProductCodeLog(ProductCodeLog productCodeLog);
+
+    /**
+     * 删除产品码修改日志
+     * 
+     * @param id 产品码修改日志主键
+     * @return 结果
+     */
+    public int deleteProductCodeLogById(Long id);
+
+    /**
+     * 批量删除产品码修改日志
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteProductCodeLogByIds(Long[] ids);
+}

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

@@ -168,4 +168,11 @@ public interface SaleProductsMapper
      * @return
      */
     int updateSaleProductByColoursAndSaleOrderNoAndProductNoAndNumber(SaleProducts saleProducts2);
+
+    /**
+     * 修改产品数量
+     * @param saleProducts
+     * @return
+     */
+    int  updateSaleProductsBySaleOrderNoBgsl(SaleProducts saleProducts);
 }

+ 62 - 61
zkqy-custom-business/src/main/java/com/zkqy/business/service/IProductCodeAListService.java

@@ -1,61 +1,62 @@
-package com.zkqy.business.service;
-
-import java.util.List;
-import com.zkqy.business.domain.ProductCodeAList;
-
-/**
- * 产品码单Service接口
- * 
- * @author ruoyi
- * @date 2025-02-12
- */
-public interface IProductCodeAListService 
-{
-    /**
-     * 查询产品码单
-     * 
-     * @param id 产品码单主键
-     * @return 产品码单
-     */
-    public ProductCodeAList selectProductCodeAListById(Long id);
-
-    /**
-     * 查询产品码单列表
-     * 
-     * @param productCodeAList 产品码单
-     * @return 产品码单集合
-     */
-    public List<ProductCodeAList> selectProductCodeAListList(ProductCodeAList productCodeAList);
-
-    /**
-     * 新增产品码单
-     * 
-     * @param productCodeAList 产品码单
-     * @return 结果
-     */
-    public int insertProductCodeAList(ProductCodeAList productCodeAList);
-
-    /**
-     * 修改产品码单
-     * 
-     * @param productCodeAList 产品码单
-     * @return 结果
-     */
-    public int updateProductCodeAList(ProductCodeAList productCodeAList);
-
-    /**
-     * 批量删除产品码单
-     * 
-     * @param ids 需要删除的产品码单主键集合
-     * @return 结果
-     */
-    public int deleteProductCodeAListByIds(Long[] ids);
-
-    /**
-     * 删除产品码单信息
-     * 
-     * @param id 产品码单主键
-     * @return 结果
-     */
-    public int deleteProductCodeAListById(Long id);
-}
+
+package com.zkqy.business.service;
+
+import java.util.List;
+import com.zkqy.business.domain.ProductCodeAList;
+
+/**
+ * 产品码单Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-02-12
+ */
+public interface IProductCodeAListService 
+{
+    /**
+     * 查询产品码单
+     * 
+     * @param id 产品码单主键
+     * @return 产品码单
+     */
+    public ProductCodeAList selectProductCodeAListById(Long id);
+
+    /**
+     * 查询产品码单列表
+     * 
+     * @param productCodeAList 产品码单
+     * @return 产品码单集合
+     */
+    public List<ProductCodeAList> selectProductCodeAListList(ProductCodeAList productCodeAList);
+
+    /**
+     * 新增产品码单
+     * 
+     * @param productCodeAList 产品码单
+     * @return 结果
+     */
+    public int insertProductCodeAList(ProductCodeAList productCodeAList);
+
+    /**
+     * 修改产品码单
+     * 
+     * @param productCodeAList 产品码单
+     * @return 结果
+     */
+    public int updateProductCodeAList(ProductCodeAList productCodeAList);
+
+    /**
+     * 批量删除产品码单
+     * 
+     * @param ids 需要删除的产品码单主键集合
+     * @return 结果
+     */
+    public int deleteProductCodeAListByIds(Long[] ids);
+
+    /**
+     * 删除产品码单信息
+     * 
+     * @param id 产品码单主键
+     * @return 结果
+     */
+    public int deleteProductCodeAListById(Long id);
+}

+ 62 - 61
zkqy-custom-business/src/main/java/com/zkqy/business/service/IProductCodeLogService.java

@@ -1,61 +1,62 @@
-package com.zkqy.business.service;
-
-import java.util.List;
-import com.zkqy.business.domain.ProductCodeLog;
-
-/**
- * 产品码修改日志Service接口
- * 
- * @author ruoyi
- * @date 2025-03-06
- */
-public interface IProductCodeLogService 
-{
-    /**
-     * 查询产品码修改日志
-     * 
-     * @param id 产品码修改日志主键
-     * @return 产品码修改日志
-     */
-    public ProductCodeLog selectProductCodeLogById(Long id);
-
-    /**
-     * 查询产品码修改日志列表
-     * 
-     * @param productCodeLog 产品码修改日志
-     * @return 产品码修改日志集合
-     */
-    public List<ProductCodeLog> selectProductCodeLogList(ProductCodeLog productCodeLog);
-
-    /**
-     * 新增产品码修改日志
-     * 
-     * @param productCodeLog 产品码修改日志
-     * @return 结果
-     */
-    public int insertProductCodeLog(ProductCodeLog productCodeLog);
-
-    /**
-     * 修改产品码修改日志
-     * 
-     * @param productCodeLog 产品码修改日志
-     * @return 结果
-     */
-    public int updateProductCodeLog(ProductCodeLog productCodeLog);
-
-    /**
-     * 批量删除产品码修改日志
-     * 
-     * @param ids 需要删除的产品码修改日志主键集合
-     * @return 结果
-     */
-    public int deleteProductCodeLogByIds(Long[] ids);
-
-    /**
-     * 删除产品码修改日志信息
-     * 
-     * @param id 产品码修改日志主键
-     * @return 结果
-     */
-    public int deleteProductCodeLogById(Long id);
-}
+
+package com.zkqy.business.service;
+
+import java.util.List;
+import com.zkqy.business.domain.ProductCodeLog;
+
+/**
+ * 产品码修改日志Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-03-06
+ */
+public interface IProductCodeLogService 
+{
+    /**
+     * 查询产品码修改日志
+     * 
+     * @param id 产品码修改日志主键
+     * @return 产品码修改日志
+     */
+    public ProductCodeLog selectProductCodeLogById(Long id);
+
+    /**
+     * 查询产品码修改日志列表
+     * 
+     * @param productCodeLog 产品码修改日志
+     * @return 产品码修改日志集合
+     */
+    public List<ProductCodeLog> selectProductCodeLogList(ProductCodeLog productCodeLog);
+
+    /**
+     * 新增产品码修改日志
+     * 
+     * @param productCodeLog 产品码修改日志
+     * @return 结果
+     */
+    public int insertProductCodeLog(ProductCodeLog productCodeLog);
+
+    /**
+     * 修改产品码修改日志
+     * 
+     * @param productCodeLog 产品码修改日志
+     * @return 结果
+     */
+    public int updateProductCodeLog(ProductCodeLog productCodeLog);
+
+    /**
+     * 批量删除产品码修改日志
+     * 
+     * @param ids 需要删除的产品码修改日志主键集合
+     * @return 结果
+     */
+    public int deleteProductCodeLogByIds(Long[] ids);
+
+    /**
+     * 删除产品码修改日志信息
+     * 
+     * @param id 产品码修改日志主键
+     * @return 结果
+     */
+    public int deleteProductCodeLogById(Long id);
+}

+ 5 - 3
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/DetailsOfTheRefuelingPlanServiceImpl.java

@@ -137,9 +137,11 @@ public class DetailsOfTheRefuelingPlanServiceImpl implements IDetailsOfTheRefuel
         saleProducts.setId(Long.valueOf(detailsOfTheRefuelingPlan.getProductId()));//产品iD
         saleProducts.setOnBoardState(detailsOfTheRefuelingPlan.getPlanStatus());//更新上机状态
         saleProducts.setProductionLineNo(detailsOfTheRefuelingPlan.getMacId());//产线号
-        //修改产品上机状态
-        saleProductsMapper.updateSaleProductsBySaleOrderNo(saleProducts);
-        //记录修改日志
+
+        // 修改产品上机状态
+        saleProductsMapper.updateSaleProductsBySaleOrderNoBgsl(saleProducts);
+
+        // 记录修改日志
         DetailsOfTheRefuelingPlanLogs detailsOfTheRefuelingPlanLogs=new DetailsOfTheRefuelingPlanLogs();
         BeanUtils.copyProperties(detailsOfTheRefuelingPlan,detailsOfTheRefuelingPlanLogs);//拷贝对应的属性
         detailsOfTheRefuelingPlanLogs.setMacId(Long.parseLong(detailsOfTheRefuelingPlan.getMacId()));

+ 2 - 2
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/DetailsOfTheRefuelingPlanSpinningServiceImpl.java

@@ -234,7 +234,7 @@ public class DetailsOfTheRefuelingPlanSpinningServiceImpl implements IDetailsOfT
         //插入日志信息
         detailsOfTheRefuelingPlanSpinningLogsMapper.insertDetailsOfTheRefuelingPlanSpinningLogs(detailsOfTheRefuelingPlanSpinningLogs);
         //修改产品上机状态
-        saleProductsMapper.updateSaleProductsBySaleOrderNo(saleProducts);
+        saleProductsMapper.updateSaleProductsBySaleOrderNoBgsl(saleProducts);
         return detailsOfTheRefuelingPlanSpinningMapper.updateDetailsOfTheRefuelingPlanSpinning(detailsOfTheRefuelingPlanSpinning);
     }
 
@@ -331,7 +331,7 @@ public class DetailsOfTheRefuelingPlanSpinningServiceImpl implements IDetailsOfT
                 saleProductsList2.add(saleProducts);
             }
             saleProducts.setOnBoardState(item.getPlanStatus());//状态信息
-            saleProducts.setProductNumber(Double.valueOf(item.getNumber()));//数量
+            //saleProducts.setProductNumber(Double.valueOf(item.getNumber()));//数量
 
             //原来的色号
             String colours = saleProducts1.getColours();

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

@@ -1,96 +1,96 @@
-package com.zkqy.business.service.impl;
-
-import java.util.List;
-import com.zkqy.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.zkqy.business.mapper.ProductCodeAListMapper;
-import com.zkqy.business.domain.ProductCodeAList;
-import com.zkqy.business.service.IProductCodeAListService;
-
-/**
- * 产品码单Service业务层处理
- * 
- * @author ruoyi
- * @date 2025-02-12
- */
-@Service
-public class ProductCodeAListServiceImpl implements IProductCodeAListService 
-{
-    @Autowired
-    private ProductCodeAListMapper productCodeAListMapper;
-
-    /**
-     * 查询产品码单
-     * 
-     * @param id 产品码单主键
-     * @return 产品码单
-     */
-    @Override
-    public ProductCodeAList selectProductCodeAListById(Long id)
-    {
-        return productCodeAListMapper.selectProductCodeAListById(id);
-    }
-
-    /**
-     * 查询产品码单列表
-     * 
-     * @param productCodeAList 产品码单
-     * @return 产品码单
-     */
-    @Override
-    public List<ProductCodeAList> selectProductCodeAListList(ProductCodeAList productCodeAList)
-    {
-        return productCodeAListMapper.selectProductCodeAListList(productCodeAList);
-    }
-
-    /**
-     * 新增产品码单
-     * 
-     * @param productCodeAList 产品码单
-     * @return 结果
-     */
-    @Override
-    public int insertProductCodeAList(ProductCodeAList productCodeAList)
-    {
-        productCodeAList.setCreateTime(DateUtils.getNowDate());
-        return productCodeAListMapper.insertProductCodeAList(productCodeAList);
-    }
-
-    /**
-     * 修改产品码单
-     * 
-     * @param productCodeAList 产品码单
-     * @return 结果
-     */
-    @Override
-    public int updateProductCodeAList(ProductCodeAList productCodeAList)
-    {
-        productCodeAList.setUpdateTime(DateUtils.getNowDate());
-        return productCodeAListMapper.updateProductCodeAList(productCodeAList);
-    }
-
-    /**
-     * 批量删除产品码单
-     * 
-     * @param ids 需要删除的产品码单主键
-     * @return 结果
-     */
-    @Override
-    public int deleteProductCodeAListByIds(Long[] ids)
-    {
-        return productCodeAListMapper.deleteProductCodeAListByIds(ids);
-    }
-
-    /**
-     * 删除产品码单信息
-     * 
-     * @param id 产品码单主键
-     * @return 结果
-     */
-    @Override
-    public int deleteProductCodeAListById(Long id)
-    {
-        return productCodeAListMapper.deleteProductCodeAListById(id);
-    }
-}
+package com.zkqy.business.service.impl;
+
+import java.util.List;
+import com.zkqy.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.business.mapper.ProductCodeAListMapper;
+import com.zkqy.business.domain.ProductCodeAList;
+import com.zkqy.business.service.IProductCodeAListService;
+
+/**
+ * 产品码单Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-02-12
+ */
+@Service
+public class ProductCodeAListServiceImpl implements IProductCodeAListService 
+{
+    @Autowired
+    private ProductCodeAListMapper productCodeAListMapper;
+
+    /**
+     * 查询产品码单
+     * 
+     * @param id 产品码单主键
+     * @return 产品码单
+     */
+    @Override
+    public ProductCodeAList selectProductCodeAListById(Long id)
+    {
+        return productCodeAListMapper.selectProductCodeAListById(id);
+    }
+
+    /**
+     * 查询产品码单列表
+     * 
+     * @param productCodeAList 产品码单
+     * @return 产品码单
+     */
+    @Override
+    public List<ProductCodeAList> selectProductCodeAListList(ProductCodeAList productCodeAList)
+    {
+        return productCodeAListMapper.selectProductCodeAListList(productCodeAList);
+    }
+
+    /**
+     * 新增产品码单
+     * 
+     * @param productCodeAList 产品码单
+     * @return 结果
+     */
+    @Override
+    public int insertProductCodeAList(ProductCodeAList productCodeAList)
+    {
+        productCodeAList.setCreateTime(DateUtils.getNowDate());
+        return productCodeAListMapper.insertProductCodeAList(productCodeAList);
+    }
+
+    /**
+     * 修改产品码单
+     * 
+     * @param productCodeAList 产品码单
+     * @return 结果
+     */
+    @Override
+    public int updateProductCodeAList(ProductCodeAList productCodeAList)
+    {
+        productCodeAList.setUpdateTime(DateUtils.getNowDate());
+        return productCodeAListMapper.updateProductCodeAList(productCodeAList);
+    }
+
+    /**
+     * 批量删除产品码单
+     * 
+     * @param ids 需要删除的产品码单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProductCodeAListByIds(Long[] ids)
+    {
+        return productCodeAListMapper.deleteProductCodeAListByIds(ids);
+    }
+
+    /**
+     * 删除产品码单信息
+     * 
+     * @param id 产品码单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProductCodeAListById(Long id)
+    {
+        return productCodeAListMapper.deleteProductCodeAListById(id);
+    }
+}

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

@@ -1,96 +1,96 @@
-package com.zkqy.business.service.impl;
-
-import java.util.List;
-import com.zkqy.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.zkqy.business.mapper.ProductCodeLogMapper;
-import com.zkqy.business.domain.ProductCodeLog;
-import com.zkqy.business.service.IProductCodeLogService;
-
-/**
- * 产品码修改日志Service业务层处理
- * 
- * @author ruoyi
- * @date 2025-03-06
- */
-@Service
-public class ProductCodeLogServiceImpl implements IProductCodeLogService 
-{
-    @Autowired
-    private ProductCodeLogMapper productCodeLogMapper;
-
-    /**
-     * 查询产品码修改日志
-     * 
-     * @param id 产品码修改日志主键
-     * @return 产品码修改日志
-     */
-    @Override
-    public ProductCodeLog selectProductCodeLogById(Long id)
-    {
-        return productCodeLogMapper.selectProductCodeLogById(id);
-    }
-
-    /**
-     * 查询产品码修改日志列表
-     * 
-     * @param productCodeLog 产品码修改日志
-     * @return 产品码修改日志
-     */
-    @Override
-    public List<ProductCodeLog> selectProductCodeLogList(ProductCodeLog productCodeLog)
-    {
-        return productCodeLogMapper.selectProductCodeLogList(productCodeLog);
-    }
-
-    /**
-     * 新增产品码修改日志
-     * 
-     * @param productCodeLog 产品码修改日志
-     * @return 结果
-     */
-    @Override
-    public int insertProductCodeLog(ProductCodeLog productCodeLog)
-    {
-        productCodeLog.setCreateTime(DateUtils.getNowDate());
-        return productCodeLogMapper.insertProductCodeLog(productCodeLog);
-    }
-
-    /**
-     * 修改产品码修改日志
-     * 
-     * @param productCodeLog 产品码修改日志
-     * @return 结果
-     */
-    @Override
-    public int updateProductCodeLog(ProductCodeLog productCodeLog)
-    {
-        productCodeLog.setUpdateTime(DateUtils.getNowDate());
-        return productCodeLogMapper.updateProductCodeLog(productCodeLog);
-    }
-
-    /**
-     * 批量删除产品码修改日志
-     * 
-     * @param ids 需要删除的产品码修改日志主键
-     * @return 结果
-     */
-    @Override
-    public int deleteProductCodeLogByIds(Long[] ids)
-    {
-        return productCodeLogMapper.deleteProductCodeLogByIds(ids);
-    }
-
-    /**
-     * 删除产品码修改日志信息
-     * 
-     * @param id 产品码修改日志主键
-     * @return 结果
-     */
-    @Override
-    public int deleteProductCodeLogById(Long id)
-    {
-        return productCodeLogMapper.deleteProductCodeLogById(id);
-    }
-}
+package com.zkqy.business.service.impl;
+
+import java.util.List;
+import com.zkqy.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.business.mapper.ProductCodeLogMapper;
+import com.zkqy.business.domain.ProductCodeLog;
+import com.zkqy.business.service.IProductCodeLogService;
+
+/**
+ * 产品码修改日志Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-03-06
+ */
+@Service
+public class ProductCodeLogServiceImpl implements IProductCodeLogService 
+{
+    @Autowired
+    private ProductCodeLogMapper productCodeLogMapper;
+
+    /**
+     * 查询产品码修改日志
+     * 
+     * @param id 产品码修改日志主键
+     * @return 产品码修改日志
+     */
+    @Override
+    public ProductCodeLog selectProductCodeLogById(Long id)
+    {
+        return productCodeLogMapper.selectProductCodeLogById(id);
+    }
+
+    /**
+     * 查询产品码修改日志列表
+     * 
+     * @param productCodeLog 产品码修改日志
+     * @return 产品码修改日志
+     */
+    @Override
+    public List<ProductCodeLog> selectProductCodeLogList(ProductCodeLog productCodeLog)
+    {
+        return productCodeLogMapper.selectProductCodeLogList(productCodeLog);
+    }
+
+    /**
+     * 新增产品码修改日志
+     * 
+     * @param productCodeLog 产品码修改日志
+     * @return 结果
+     */
+    @Override
+    public int insertProductCodeLog(ProductCodeLog productCodeLog)
+    {
+        productCodeLog.setCreateTime(DateUtils.getNowDate());
+        return productCodeLogMapper.insertProductCodeLog(productCodeLog);
+    }
+
+    /**
+     * 修改产品码修改日志
+     * 
+     * @param productCodeLog 产品码修改日志
+     * @return 结果
+     */
+    @Override
+    public int updateProductCodeLog(ProductCodeLog productCodeLog)
+    {
+        productCodeLog.setUpdateTime(DateUtils.getNowDate());
+        return productCodeLogMapper.updateProductCodeLog(productCodeLog);
+    }
+
+    /**
+     * 批量删除产品码修改日志
+     * 
+     * @param ids 需要删除的产品码修改日志主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProductCodeLogByIds(Long[] ids)
+    {
+        return productCodeLogMapper.deleteProductCodeLogByIds(ids);
+    }
+
+    /**
+     * 删除产品码修改日志信息
+     * 
+     * @param id 产品码修改日志主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProductCodeLogById(Long id)
+    {
+        return productCodeLogMapper.deleteProductCodeLogById(id);
+    }
+}

+ 292 - 292
zkqy-custom-business/src/main/resources/mapper/business/ProductCodeAListMapper.xml

@@ -1,293 +1,293 @@
-<?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.ProductCodeAListMapper">
-    
-    <resultMap type="com.zkqy.business.domain.ProductCodeAList" id="ProductCodeAListResult">
-        <result property="id"    column="id"    />
-        <result property="qrCode"    column="qr_code"    />
-        <result property="lotNum"    column="lot_num"    />
-        <result property="productId"    column="product_id"    />
-        <result property="productName"    column="productName"    />
-        <result property="productspecifications"    column="productspecifications"    />
-        <result property="productColour"    column="product_colour"    />
-        <result property="levels"    column="levels"    />
-        <result property="canisterNum"    column="canister_num"    />
-        <result property="boxNum"    column="box_num"    />
-        <result property="suttle"    column="suttle"    />
-        <result property="productionDate"    column="production_date"    />
-        <result property="machineTool"    column="machine_tool"    />
-        <result property="grossWeight"    column="gross_weight"    />
-        <result property="packaging"    column="packaging"    />
-        <result property="workShifts"    column="work_shifts"    />
-        <result property="foreignTradeNumber"    column="foreign_trade_number"    />
-        <result property="canisterWeight"    column="canister_weight"    />
-        <result property="boxWeight"    column="box_weight"    />
-        <result property="tubeColor"    column="tube_color"    />
-        <result property="comPort"    column="com_port"    />
-        <result property="printFormat"    column="print_format"    />
-        <result property="packagingType"    column="packaging_type"    />
-        <result property="storageLocation"    column="storage_location"    />
-        <result property="warehouseregionId"    column="warehouseregion_id"    />
-        <result property="remark"    column="remark"    />
-        <result property="delFlag"    column="del_flag"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="createById"    column="create_by_id"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="updateById"    column="update_by_id"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="totalCanisterNum"    column="total_canister_num"    />
-        <result property="totalBoxNum"    column="total_box_num"    />
-        <result property="totalSuttle"    column="total_suttle"    />
-        <result property="totalGrossWeight"    column="total_gross_weight"    />
-        <result property="withdrawingFlag"    column="withdrawing_flag"    />
-        <result property="saleProductId"    column="sale_product_id"    />
-        <result property="otherStates"    column="other_states"    />
-        <result property="parentCode"    column="parent_code"    />
-        <result property="qrCodeId"    column="qr_code_id"    />
-    </resultMap>
-
-    <sql id="selectProductCodeAListVo">
-        select id, qr_code, lot_num, product_id, product_colour, levels, canister_num, box_num, suttle, production_date, machine_tool, gross_weight, packaging, work_shifts, foreign_trade_number, canister_weight, box_weight, tube_color, com_port, print_format, packaging_type, storage_location, warehouseregion_id, remark, del_flag, create_by, create_by_id, create_time, update_by, update_by_id, update_time, total_canister_num, total_box_num, total_suttle, total_gross_weight, withdrawing_flag, sale_product_id, other_states, parent_code, qr_code_id from {DBNAME}.product_code_list
-    </sql>
-
-    <sql id="selectProductCodeAListVoproducts">
-        SELECT
-            a.id,
-            a.qr_code,
-            a.lot_num,
-            a.product_id,
-            b.product_name as productName,
-            b.product_specifications as productspecifications,
-            a.product_colour,
-            a.levels,
-            a.canister_num,
-            a.box_num,
-            a.suttle,
-            a.production_date,
-            a.machine_tool,
-            a.gross_weight,
-            a.packaging,
-            a.work_shifts,
-            a.foreign_trade_number,
-            a.canister_weight,
-            a.box_weight,
-            a.tube_color,
-            a.com_port,
-            a.print_format,
-            a.packaging_type,
-            a.storage_location,
-            a.warehouseregion_id,
-            a.remark,
-            a.del_flag,
-            a.create_by,
-            a.create_by_id,
-            a.create_time,
-            a.update_by,
-            a.update_by_id,
-            a.update_time,
-            a.total_canister_num,
-            a.total_box_num,
-            a.total_suttle,
-            a.total_gross_weight,
-            a.withdrawing_flag,
-            a.sale_product_id,
-            a.other_states,
-            a.parent_code,
-            a.qr_code_id
-        FROM
-            {DBNAME}.product_code_list a
-        LEFT JOIN {DBNAME}.production b ON a.product_id = b.id
-    </sql>
-
-    <select id="selectProductCodeAListList" parameterType="com.zkqy.business.domain.ProductCodeAList" resultMap="ProductCodeAListResult">
-        <include refid="selectProductCodeAListVoproducts"/>
-        <where>  
-            <if test="qrCode != null  and qrCode != ''"> and a.qr_code = #{qrCode}</if>
-            <if test="lotNum != null  and lotNum != ''"> and a.lot_num = #{lotNum}</if>
-            <if test="productId != null "> and a.product_id = #{productId}</if>
-            <if test="productColour != null  and productColour != ''"> and a.product_colour = #{productColour}</if>
-            <if test="levels != null  and levels != ''"> and a.levels = #{levels}</if>
-            <if test="canisterNum != null "> and a.canister_num = #{canisterNum}</if>
-            <if test="boxNum != null "> and a.box_num = #{boxNum}</if>
-            <if test="suttle != null "> and a.suttle = #{suttle}</if>
-            <if test="productionDate != null "> and a.production_date = #{productionDate}</if>
-            <if test="machineTool != null  and machineTool != ''"> and a.machine_tool = #{machineTool}</if>
-            <if test="grossWeight != null "> and a.gross_weight = #{grossWeight}</if>
-            <if test="packaging != null  and packaging != ''"> and a.packaging = #{packaging}</if>
-            <if test="workShifts != null  and workShifts != ''"> and a.work_shifts = #{workShifts}</if>
-            <if test="foreignTradeNumber != null  and foreignTradeNumber != ''"> and a.foreign_trade_number = #{foreignTradeNumber}</if>
-            <if test="canisterWeight != null "> and a.canister_weight = #{canisterWeight}</if>
-            <if test="boxWeight != null "> and a.box_weight = #{boxWeight}</if>
-            <if test="tubeColor != null  and tubeColor != ''"> and a.tube_color = #{tubeColor}</if>
-            <if test="comPort != null  and comPort != ''"> and a.com_port = #{comPort}</if>
-            <if test="printFormat != null  and printFormat != ''"> and a.print_format = #{printFormat}</if>
-            <if test="packagingType != null  and packagingType != ''"> and a.packaging_type = #{packagingType}</if>
-            <if test="storageLocation != null  and storageLocation != ''"> and a.storage_location = #{storageLocation}</if>
-            <if test="warehouseregionId != null "> and a.warehouseregion_id = #{warehouseregionId}</if>
-            <if test="createById != null "> and a.create_by_id = #{createById}</if>
-            <if test="updateById != null "> and a.update_by_id = #{updateById}</if>
-            <if test="totalCanisterNum != null "> and a.total_canister_num = #{totalCanisterNum}</if>
-            <if test="totalBoxNum != null "> and a.total_box_num = #{totalBoxNum}</if>
-            <if test="totalSuttle != null "> and a.total_suttle = #{totalSuttle}</if>
-            <if test="totalGrossWeight != null "> and a.total_gross_weight = #{totalGrossWeight}</if>
-            <if test="withdrawingFlag != null  and withdrawingFlag != ''"> and a.withdrawing_flag = #{withdrawingFlag}</if>
-            <if test="saleProductId != null  and saleProductId != ''"> and a.sale_product_id = #{saleProductId}</if>
-            <if test="otherStates != null  and otherStates != ''"> and a.other_states = #{otherStates}</if>
-            <if test="parentCode != null  and parentCode != ''"> and a.parent_code = #{parentCode}</if>
-            <if test="qrCodeId != null  and qrCodeId != ''"> and a.qr_code_id = #{qrCodeId}</if>
-        </where>
-    </select>
-    
-    <select id="selectProductCodeAListById" parameterType="Long" resultMap="ProductCodeAListResult">
-        <include refid="selectProductCodeAListVo"/>
-        where id = #{id}
-    </select>
-
-    <insert id="insertProductCodeAList" parameterType="com.zkqy.business.domain.ProductCodeAList">
-        insert into {DBNAME}.product_code_list
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">id,</if>
-            <if test="qrCode != null">qr_code,</if>
-            <if test="lotNum != null">lot_num,</if>
-            <if test="productId != null">product_id,</if>
-            <if test="productColour != null">product_colour,</if>
-            <if test="levels != null">levels,</if>
-            <if test="canisterNum != null">canister_num,</if>
-            <if test="boxNum != null">box_num,</if>
-            <if test="suttle != null">suttle,</if>
-            <if test="productionDate != null">production_date,</if>
-            <if test="machineTool != null">machine_tool,</if>
-            <if test="grossWeight != null">gross_weight,</if>
-            <if test="packaging != null">packaging,</if>
-            <if test="workShifts != null">work_shifts,</if>
-            <if test="foreignTradeNumber != null">foreign_trade_number,</if>
-            <if test="canisterWeight != null">canister_weight,</if>
-            <if test="boxWeight != null">box_weight,</if>
-            <if test="tubeColor != null">tube_color,</if>
-            <if test="comPort != null">com_port,</if>
-            <if test="printFormat != null">print_format,</if>
-            <if test="packagingType != null">packaging_type,</if>
-            <if test="storageLocation != null">storage_location,</if>
-            <if test="warehouseregionId != null">warehouseregion_id,</if>
-            <if test="remark != null">remark,</if>
-            <if test="delFlag != null">del_flag,</if>
-            <if test="createBy != null">create_by,</if>
-            <if test="createById != null">create_by_id,</if>
-            <if test="createTime != null">create_time,</if>
-            <if test="updateBy != null">update_by,</if>
-            <if test="updateById != null">update_by_id,</if>
-            <if test="updateTime != null">update_time,</if>
-            <if test="totalCanisterNum != null">total_canister_num,</if>
-            <if test="totalBoxNum != null">total_box_num,</if>
-            <if test="totalSuttle != null">total_suttle,</if>
-            <if test="totalGrossWeight != null">total_gross_weight,</if>
-            <if test="withdrawingFlag != null">withdrawing_flag,</if>
-            <if test="saleProductId != null">sale_product_id,</if>
-            <if test="otherStates != null">other_states,</if>
-            <if test="parentCode != null">parent_code,</if>
-            <if test="qrCodeId != null">qr_code_id,</if>
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">#{id},</if>
-            <if test="qrCode != null">#{qrCode},</if>
-            <if test="lotNum != null">#{lotNum},</if>
-            <if test="productId != null">#{productId},</if>
-            <if test="productColour != null">#{productColour},</if>
-            <if test="levels != null">#{levels},</if>
-            <if test="canisterNum != null">#{canisterNum},</if>
-            <if test="boxNum != null">#{boxNum},</if>
-            <if test="suttle != null">#{suttle},</if>
-            <if test="productionDate != null">#{productionDate},</if>
-            <if test="machineTool != null">#{machineTool},</if>
-            <if test="grossWeight != null">#{grossWeight},</if>
-            <if test="packaging != null">#{packaging},</if>
-            <if test="workShifts != null">#{workShifts},</if>
-            <if test="foreignTradeNumber != null">#{foreignTradeNumber},</if>
-            <if test="canisterWeight != null">#{canisterWeight},</if>
-            <if test="boxWeight != null">#{boxWeight},</if>
-            <if test="tubeColor != null">#{tubeColor},</if>
-            <if test="comPort != null">#{comPort},</if>
-            <if test="printFormat != null">#{printFormat},</if>
-            <if test="packagingType != null">#{packagingType},</if>
-            <if test="storageLocation != null">#{storageLocation},</if>
-            <if test="warehouseregionId != null">#{warehouseregionId},</if>
-            <if test="remark != null">#{remark},</if>
-            <if test="delFlag != null">#{delFlag},</if>
-            <if test="createBy != null">#{createBy},</if>
-            <if test="createById != null">#{createById},</if>
-            <if test="createTime != null">#{createTime},</if>
-            <if test="updateBy != null">#{updateBy},</if>
-            <if test="updateById != null">#{updateById},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="totalCanisterNum != null">#{totalCanisterNum},</if>
-            <if test="totalBoxNum != null">#{totalBoxNum},</if>
-            <if test="totalSuttle != null">#{totalSuttle},</if>
-            <if test="totalGrossWeight != null">#{totalGrossWeight},</if>
-            <if test="withdrawingFlag != null">#{withdrawingFlag},</if>
-            <if test="saleProductId != null">#{saleProductId},</if>
-            <if test="otherStates != null">#{otherStates},</if>
-            <if test="parentCode != null">#{parentCode},</if>
-            <if test="qrCodeId != null">#{qrCodeId},</if>
-         </trim>
-    </insert>
-
-    <update id="updateProductCodeAList" parameterType="com.zkqy.business.domain.ProductCodeAList">
-        update {DBNAME}.product_code_list
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="qrCode != null">qr_code = #{qrCode},</if>
-            <if test="lotNum != null">lot_num = #{lotNum},</if>
-            <if test="productId != null">product_id = #{productId},</if>
-            <if test="productColour != null">product_colour = #{productColour},</if>
-            <if test="levels != null">levels = #{levels},</if>
-            <if test="canisterNum != null">canister_num = #{canisterNum},</if>
-            <if test="boxNum != null">box_num = #{boxNum},</if>
-            <if test="suttle != null">suttle = #{suttle},</if>
-            <if test="productionDate != null">production_date = #{productionDate},</if>
-            <if test="machineTool != null">machine_tool = #{machineTool},</if>
-            <if test="grossWeight != null">gross_weight = #{grossWeight},</if>
-            <if test="packaging != null">packaging = #{packaging},</if>
-            <if test="workShifts != null">work_shifts = #{workShifts},</if>
-            <if test="foreignTradeNumber != null">foreign_trade_number = #{foreignTradeNumber},</if>
-            <if test="canisterWeight != null">canister_weight = #{canisterWeight},</if>
-            <if test="boxWeight != null">box_weight = #{boxWeight},</if>
-            <if test="tubeColor != null">tube_color = #{tubeColor},</if>
-            <if test="comPort != null">com_port = #{comPort},</if>
-            <if test="printFormat != null">print_format = #{printFormat},</if>
-            <if test="packagingType != null">packaging_type = #{packagingType},</if>
-            <if test="storageLocation != null">storage_location = #{storageLocation},</if>
-            <if test="warehouseregionId != null">warehouseregion_id = #{warehouseregionId},</if>
-            <if test="remark != null">remark = #{remark},</if>
-            <if test="delFlag != null">del_flag = #{delFlag},</if>
-            <if test="createBy != null">create_by = #{createBy},</if>
-            <if test="createById != null">create_by_id = #{createById},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
-            <if test="updateBy != null">update_by = #{updateBy},</if>
-            <if test="updateById != null">update_by_id = #{updateById},</if>
-            <if test="updateTime != null">update_time = #{updateTime},</if>
-            <if test="totalCanisterNum != null">total_canister_num = #{totalCanisterNum},</if>
-            <if test="totalBoxNum != null">total_box_num = #{totalBoxNum},</if>
-            <if test="totalSuttle != null">total_suttle = #{totalSuttle},</if>
-            <if test="totalGrossWeight != null">total_gross_weight = #{totalGrossWeight},</if>
-            <if test="withdrawingFlag != null">withdrawing_flag = #{withdrawingFlag},</if>
-            <if test="saleProductId != null">sale_product_id = #{saleProductId},</if>
-            <if test="otherStates != null">other_states = #{otherStates},</if>
-            <if test="parentCode != null">parent_code = #{parentCode},</if>
-            <if test="qrCodeId != null">qr_code_id = #{qrCodeId},</if>
-        </trim>
-        where id = #{id}
-    </update>
-
-    <delete id="deleteProductCodeAListById" parameterType="Long">
-        delete from {DBNAME}.product_code_list where id = #{id}
-    </delete>
-
-    <delete id="deleteProductCodeAListByIds" parameterType="String">
-        delete from {DBNAME}.product_code_list where id in
-        <foreach item="id" collection="array" open="(" separator="," close=")">
-            #{id}
-        </foreach>
-    </delete>
+<?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.ProductCodeAListMapper">
+    
+    <resultMap type="com.zkqy.business.domain.ProductCodeAList" id="ProductCodeAListResult">
+        <result property="id"    column="id"    />
+        <result property="qrCode"    column="qr_code"    />
+        <result property="lotNum"    column="lot_num"    />
+        <result property="productId"    column="product_id"    />
+        <result property="productName"    column="productName"    />
+        <result property="productspecifications"    column="productspecifications"    />
+        <result property="productColour"    column="product_colour"    />
+        <result property="levels"    column="levels"    />
+        <result property="canisterNum"    column="canister_num"    />
+        <result property="boxNum"    column="box_num"    />
+        <result property="suttle"    column="suttle"    />
+        <result property="productionDate"    column="production_date"    />
+        <result property="machineTool"    column="machine_tool"    />
+        <result property="grossWeight"    column="gross_weight"    />
+        <result property="packaging"    column="packaging"    />
+        <result property="workShifts"    column="work_shifts"    />
+        <result property="foreignTradeNumber"    column="foreign_trade_number"    />
+        <result property="canisterWeight"    column="canister_weight"    />
+        <result property="boxWeight"    column="box_weight"    />
+        <result property="tubeColor"    column="tube_color"    />
+        <result property="comPort"    column="com_port"    />
+        <result property="printFormat"    column="print_format"    />
+        <result property="packagingType"    column="packaging_type"    />
+        <result property="storageLocation"    column="storage_location"    />
+        <result property="warehouseregionId"    column="warehouseregion_id"    />
+        <result property="remark"    column="remark"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="totalCanisterNum"    column="total_canister_num"    />
+        <result property="totalBoxNum"    column="total_box_num"    />
+        <result property="totalSuttle"    column="total_suttle"    />
+        <result property="totalGrossWeight"    column="total_gross_weight"    />
+        <result property="withdrawingFlag"    column="withdrawing_flag"    />
+        <result property="saleProductId"    column="sale_product_id"    />
+        <result property="otherStates"    column="other_states"    />
+        <result property="parentCode"    column="parent_code"    />
+        <result property="qrCodeId"    column="qr_code_id"    />
+    </resultMap>
+
+    <sql id="selectProductCodeAListVo">
+        select id, qr_code, lot_num, product_id, product_colour, levels, canister_num, box_num, suttle, production_date, machine_tool, gross_weight, packaging, work_shifts, foreign_trade_number, canister_weight, box_weight, tube_color, com_port, print_format, packaging_type, storage_location, warehouseregion_id, remark, del_flag, create_by, create_by_id, create_time, update_by, update_by_id, update_time, total_canister_num, total_box_num, total_suttle, total_gross_weight, withdrawing_flag, sale_product_id, other_states, parent_code, qr_code_id from {DBNAME}.product_code_list
+    </sql>
+
+    <sql id="selectProductCodeAListVoproducts">
+        SELECT
+            a.id,
+            a.qr_code,
+            a.lot_num,
+            a.product_id,
+            b.product_name as productName,
+            b.product_specifications as productspecifications,
+            a.product_colour,
+            a.levels,
+            a.canister_num,
+            a.box_num,
+            a.suttle,
+            a.production_date,
+            a.machine_tool,
+            a.gross_weight,
+            a.packaging,
+            a.work_shifts,
+            a.foreign_trade_number,
+            a.canister_weight,
+            a.box_weight,
+            a.tube_color,
+            a.com_port,
+            a.print_format,
+            a.packaging_type,
+            a.storage_location,
+            a.warehouseregion_id,
+            a.remark,
+            a.del_flag,
+            a.create_by,
+            a.create_by_id,
+            a.create_time,
+            a.update_by,
+            a.update_by_id,
+            a.update_time,
+            a.total_canister_num,
+            a.total_box_num,
+            a.total_suttle,
+            a.total_gross_weight,
+            a.withdrawing_flag,
+            a.sale_product_id,
+            a.other_states,
+            a.parent_code,
+            a.qr_code_id
+        FROM
+            {DBNAME}.product_code_list a
+        LEFT JOIN {DBNAME}.production b ON a.product_id = b.id
+    </sql>
+
+    <select id="selectProductCodeAListList" parameterType="com.zkqy.business.domain.ProductCodeAList" resultMap="ProductCodeAListResult">
+        <include refid="selectProductCodeAListVoproducts"/>
+        <where>  
+            <if test="qrCode != null  and qrCode != ''"> and a.qr_code = #{qrCode}</if>
+            <if test="lotNum != null  and lotNum != ''"> and a.lot_num = #{lotNum}</if>
+            <if test="productId != null "> and a.product_id = #{productId}</if>
+            <if test="productColour != null  and productColour != ''"> and a.product_colour = #{productColour}</if>
+            <if test="levels != null  and levels != ''"> and a.levels = #{levels}</if>
+            <if test="canisterNum != null "> and a.canister_num = #{canisterNum}</if>
+            <if test="boxNum != null "> and a.box_num = #{boxNum}</if>
+            <if test="suttle != null "> and a.suttle = #{suttle}</if>
+            <if test="productionDate != null "> and a.production_date = #{productionDate}</if>
+            <if test="machineTool != null  and machineTool != ''"> and a.machine_tool = #{machineTool}</if>
+            <if test="grossWeight != null "> and a.gross_weight = #{grossWeight}</if>
+            <if test="packaging != null  and packaging != ''"> and a.packaging = #{packaging}</if>
+            <if test="workShifts != null  and workShifts != ''"> and a.work_shifts = #{workShifts}</if>
+            <if test="foreignTradeNumber != null  and foreignTradeNumber != ''"> and a.foreign_trade_number = #{foreignTradeNumber}</if>
+            <if test="canisterWeight != null "> and a.canister_weight = #{canisterWeight}</if>
+            <if test="boxWeight != null "> and a.box_weight = #{boxWeight}</if>
+            <if test="tubeColor != null  and tubeColor != ''"> and a.tube_color = #{tubeColor}</if>
+            <if test="comPort != null  and comPort != ''"> and a.com_port = #{comPort}</if>
+            <if test="printFormat != null  and printFormat != ''"> and a.print_format = #{printFormat}</if>
+            <if test="packagingType != null  and packagingType != ''"> and a.packaging_type = #{packagingType}</if>
+            <if test="storageLocation != null  and storageLocation != ''"> and a.storage_location = #{storageLocation}</if>
+            <if test="warehouseregionId != null "> and a.warehouseregion_id = #{warehouseregionId}</if>
+            <if test="createById != null "> and a.create_by_id = #{createById}</if>
+            <if test="updateById != null "> and a.update_by_id = #{updateById}</if>
+            <if test="totalCanisterNum != null "> and a.total_canister_num = #{totalCanisterNum}</if>
+            <if test="totalBoxNum != null "> and a.total_box_num = #{totalBoxNum}</if>
+            <if test="totalSuttle != null "> and a.total_suttle = #{totalSuttle}</if>
+            <if test="totalGrossWeight != null "> and a.total_gross_weight = #{totalGrossWeight}</if>
+            <if test="withdrawingFlag != null  and withdrawingFlag != ''"> and a.withdrawing_flag = #{withdrawingFlag}</if>
+            <if test="saleProductId != null  and saleProductId != ''"> and a.sale_product_id = #{saleProductId}</if>
+            <if test="otherStates != null  and otherStates != ''"> and a.other_states = #{otherStates}</if>
+            <if test="parentCode != null  and parentCode != ''"> and a.parent_code = #{parentCode}</if>
+            <if test="qrCodeId != null  and qrCodeId != ''"> and a.qr_code_id = #{qrCodeId}</if>
+        </where>
+    </select>
+    
+    <select id="selectProductCodeAListById" parameterType="Long" resultMap="ProductCodeAListResult">
+        <include refid="selectProductCodeAListVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertProductCodeAList" parameterType="com.zkqy.business.domain.ProductCodeAList">
+        insert into {DBNAME}.product_code_list
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="qrCode != null">qr_code,</if>
+            <if test="lotNum != null">lot_num,</if>
+            <if test="productId != null">product_id,</if>
+            <if test="productColour != null">product_colour,</if>
+            <if test="levels != null">levels,</if>
+            <if test="canisterNum != null">canister_num,</if>
+            <if test="boxNum != null">box_num,</if>
+            <if test="suttle != null">suttle,</if>
+            <if test="productionDate != null">production_date,</if>
+            <if test="machineTool != null">machine_tool,</if>
+            <if test="grossWeight != null">gross_weight,</if>
+            <if test="packaging != null">packaging,</if>
+            <if test="workShifts != null">work_shifts,</if>
+            <if test="foreignTradeNumber != null">foreign_trade_number,</if>
+            <if test="canisterWeight != null">canister_weight,</if>
+            <if test="boxWeight != null">box_weight,</if>
+            <if test="tubeColor != null">tube_color,</if>
+            <if test="comPort != null">com_port,</if>
+            <if test="printFormat != null">print_format,</if>
+            <if test="packagingType != null">packaging_type,</if>
+            <if test="storageLocation != null">storage_location,</if>
+            <if test="warehouseregionId != null">warehouseregion_id,</if>
+            <if test="remark != null">remark,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="totalCanisterNum != null">total_canister_num,</if>
+            <if test="totalBoxNum != null">total_box_num,</if>
+            <if test="totalSuttle != null">total_suttle,</if>
+            <if test="totalGrossWeight != null">total_gross_weight,</if>
+            <if test="withdrawingFlag != null">withdrawing_flag,</if>
+            <if test="saleProductId != null">sale_product_id,</if>
+            <if test="otherStates != null">other_states,</if>
+            <if test="parentCode != null">parent_code,</if>
+            <if test="qrCodeId != null">qr_code_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="qrCode != null">#{qrCode},</if>
+            <if test="lotNum != null">#{lotNum},</if>
+            <if test="productId != null">#{productId},</if>
+            <if test="productColour != null">#{productColour},</if>
+            <if test="levels != null">#{levels},</if>
+            <if test="canisterNum != null">#{canisterNum},</if>
+            <if test="boxNum != null">#{boxNum},</if>
+            <if test="suttle != null">#{suttle},</if>
+            <if test="productionDate != null">#{productionDate},</if>
+            <if test="machineTool != null">#{machineTool},</if>
+            <if test="grossWeight != null">#{grossWeight},</if>
+            <if test="packaging != null">#{packaging},</if>
+            <if test="workShifts != null">#{workShifts},</if>
+            <if test="foreignTradeNumber != null">#{foreignTradeNumber},</if>
+            <if test="canisterWeight != null">#{canisterWeight},</if>
+            <if test="boxWeight != null">#{boxWeight},</if>
+            <if test="tubeColor != null">#{tubeColor},</if>
+            <if test="comPort != null">#{comPort},</if>
+            <if test="printFormat != null">#{printFormat},</if>
+            <if test="packagingType != null">#{packagingType},</if>
+            <if test="storageLocation != null">#{storageLocation},</if>
+            <if test="warehouseregionId != null">#{warehouseregionId},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="totalCanisterNum != null">#{totalCanisterNum},</if>
+            <if test="totalBoxNum != null">#{totalBoxNum},</if>
+            <if test="totalSuttle != null">#{totalSuttle},</if>
+            <if test="totalGrossWeight != null">#{totalGrossWeight},</if>
+            <if test="withdrawingFlag != null">#{withdrawingFlag},</if>
+            <if test="saleProductId != null">#{saleProductId},</if>
+            <if test="otherStates != null">#{otherStates},</if>
+            <if test="parentCode != null">#{parentCode},</if>
+            <if test="qrCodeId != null">#{qrCodeId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateProductCodeAList" parameterType="com.zkqy.business.domain.ProductCodeAList">
+        update {DBNAME}.product_code_list
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="qrCode != null">qr_code = #{qrCode},</if>
+            <if test="lotNum != null">lot_num = #{lotNum},</if>
+            <if test="productId != null">product_id = #{productId},</if>
+            <if test="productColour != null">product_colour = #{productColour},</if>
+            <if test="levels != null">levels = #{levels},</if>
+            <if test="canisterNum != null">canister_num = #{canisterNum},</if>
+            <if test="boxNum != null">box_num = #{boxNum},</if>
+            <if test="suttle != null">suttle = #{suttle},</if>
+            <if test="productionDate != null">production_date = #{productionDate},</if>
+            <if test="machineTool != null">machine_tool = #{machineTool},</if>
+            <if test="grossWeight != null">gross_weight = #{grossWeight},</if>
+            <if test="packaging != null">packaging = #{packaging},</if>
+            <if test="workShifts != null">work_shifts = #{workShifts},</if>
+            <if test="foreignTradeNumber != null">foreign_trade_number = #{foreignTradeNumber},</if>
+            <if test="canisterWeight != null">canister_weight = #{canisterWeight},</if>
+            <if test="boxWeight != null">box_weight = #{boxWeight},</if>
+            <if test="tubeColor != null">tube_color = #{tubeColor},</if>
+            <if test="comPort != null">com_port = #{comPort},</if>
+            <if test="printFormat != null">print_format = #{printFormat},</if>
+            <if test="packagingType != null">packaging_type = #{packagingType},</if>
+            <if test="storageLocation != null">storage_location = #{storageLocation},</if>
+            <if test="warehouseregionId != null">warehouseregion_id = #{warehouseregionId},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createById != null">create_by_id = #{createById},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateById != null">update_by_id = #{updateById},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="totalCanisterNum != null">total_canister_num = #{totalCanisterNum},</if>
+            <if test="totalBoxNum != null">total_box_num = #{totalBoxNum},</if>
+            <if test="totalSuttle != null">total_suttle = #{totalSuttle},</if>
+            <if test="totalGrossWeight != null">total_gross_weight = #{totalGrossWeight},</if>
+            <if test="withdrawingFlag != null">withdrawing_flag = #{withdrawingFlag},</if>
+            <if test="saleProductId != null">sale_product_id = #{saleProductId},</if>
+            <if test="otherStates != null">other_states = #{otherStates},</if>
+            <if test="parentCode != null">parent_code = #{parentCode},</if>
+            <if test="qrCodeId != null">qr_code_id = #{qrCodeId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteProductCodeAListById" parameterType="Long">
+        delete from {DBNAME}.product_code_list where id = #{id}
+    </delete>
+
+    <delete id="deleteProductCodeAListByIds" parameterType="String">
+        delete from {DBNAME}.product_code_list where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
 </mapper>

+ 294 - 294
zkqy-custom-business/src/main/resources/mapper/business/ProductCodeLogMapper.xml

@@ -1,295 +1,295 @@
-<?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.ProductCodeLogMapper">
-    
-    <resultMap type="com.zkqy.business.domain.ProductCodeLog" id="ProductCodeLogResult">
-        <result property="id"    column="id"    />
-        <result property="qrCode"    column="qr_code"    />
-        <result property="lotNum"    column="lot_num"    />
-        <result property="productId"    column="product_id"    />
-        <result property="productColour"    column="product_colour"    />
-        <result property="levels"    column="levels"    />
-        <result property="canisterNum"    column="canister_num"    />
-        <result property="boxNum"    column="box_num"    />
-        <result property="suttle"    column="suttle"    />
-        <result property="productionDate"    column="production_date"    />
-        <result property="machineTool"    column="machine_tool"    />
-        <result property="grossWeight"    column="gross_weight"    />
-        <result property="packaging"    column="packaging"    />
-        <result property="workShifts"    column="work_shifts"    />
-        <result property="foreignTradeNumber"    column="foreign_trade_number"    />
-        <result property="canisterWeight"    column="canister_weight"    />
-        <result property="boxWeight"    column="box_weight"    />
-        <result property="tubeColor"    column="tube_color"    />
-        <result property="comPort"    column="com_port"    />
-        <result property="printFormat"    column="print_format"    />
-        <result property="packagingType"    column="packaging_type"    />
-        <result property="storageLocation"    column="storage_location"    />
-        <result property="warehouseregionId"    column="warehouseregion_id"    />
-        <result property="remark"    column="remark"    />
-        <result property="delFlag"    column="del_flag"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="createById"    column="create_by_id"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="updateById"    column="update_by_id"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="totalCanisterNum"    column="total_canister_num"    />
-        <result property="totalBoxNum"    column="total_box_num"    />
-        <result property="totalSuttle"    column="total_suttle"    />
-        <result property="totalGrossWeight"    column="total_gross_weight"    />
-        <result property="withdrawingFlag"    column="withdrawing_flag"    />
-        <result property="saleProductId"    column="sale_product_id"    />
-        <result property="otherStates"    column="other_states"    />
-        <result property="parentCode"    column="parent_code"    />
-        <result property="qrCodeId"    column="qr_code_id"    />
-        <result property="fatherid"    column="fatherid"    />
-    </resultMap>
-
-    <sql id="selectProductCodeLogVo">
-        select id, qr_code, lot_num, product_id, product_colour, levels, canister_num, box_num, suttle, production_date, machine_tool, gross_weight, packaging, work_shifts, foreign_trade_number, canister_weight, box_weight, tube_color, com_port, print_format, packaging_type, storage_location, warehouseregion_id, remark, del_flag, create_by, create_by_id, create_time, update_by, update_by_id, update_time, total_canister_num, total_box_num, total_suttle, total_gross_weight, withdrawing_flag, sale_product_id, other_states, parent_code, qr_code_id, fatherid from {DBNAME}.product_code_log
-    </sql>
-
-    <sql id="selectProductCodeAListLogVoproducts">
-        SELECT
-            a.id,
-            a.qr_code,
-            a.lot_num,
-            a.product_id,
-            b.product_name as productName,
-            b.product_specifications as productspecifications,
-            a.product_colour,
-            a.levels,
-            a.canister_num,
-            a.box_num,
-            a.suttle,
-            a.production_date,
-            a.machine_tool,
-            a.gross_weight,
-            a.packaging,
-            a.work_shifts,
-            a.foreign_trade_number,
-            a.canister_weight,
-            a.box_weight,
-            a.tube_color,
-            a.com_port,
-            a.print_format,
-            a.packaging_type,
-            a.storage_location,
-            a.warehouseregion_id,
-            a.remark,
-            a.del_flag,
-            a.create_by,
-            a.create_by_id,
-            a.create_time,
-            a.update_by,
-            a.update_by_id,
-            a.update_time,
-            a.total_canister_num,
-            a.total_box_num,
-            a.total_suttle,
-            a.total_gross_weight,
-            a.withdrawing_flag,
-            a.sale_product_id,
-            a.other_states,
-            a.parent_code,
-            a.qr_code_id
-        FROM
-            {DBNAME}.product_code_log a
-        LEFT JOIN {DBNAME}.production b ON a.product_id = b.id
-    </sql>
-
-    <select id="selectProductCodeLogList" parameterType="com.zkqy.business.domain.ProductCodeLog" resultMap="ProductCodeLogResult">
-        <include refid="selectProductCodeAListLogVoproducts"/>
-        <where>
-            <if test="qrCode != null  and qrCode != ''"> and a.qr_code = #{qrCode}</if>
-            <if test="lotNum != null  and lotNum != ''"> and a.lot_num = #{lotNum}</if>
-            <if test="productId != null "> and a.product_id = #{productId}</if>
-            <if test="productColour != null  and productColour != ''"> and a.product_colour = #{productColour}</if>
-            <if test="levels != null  and levels != ''"> and a.levels = #{levels}</if>
-            <if test="canisterNum != null "> and a.canister_num = #{canisterNum}</if>
-            <if test="boxNum != null "> and a.box_num = #{boxNum}</if>
-            <if test="suttle != null "> and a.suttle = #{suttle}</if>
-            <if test="productionDate != null "> and a.production_date = #{productionDate}</if>
-            <if test="machineTool != null  and machineTool != ''"> and a.machine_tool = #{machineTool}</if>
-            <if test="grossWeight != null "> and a.gross_weight = #{grossWeight}</if>
-            <if test="packaging != null  and packaging != ''"> and a.packaging = #{packaging}</if>
-            <if test="workShifts != null  and workShifts != ''"> and a.work_shifts = #{workShifts}</if>
-            <if test="foreignTradeNumber != null  and foreignTradeNumber != ''"> and a.foreign_trade_number = #{foreignTradeNumber}</if>
-            <if test="canisterWeight != null "> and a.canister_weight = #{canisterWeight}</if>
-            <if test="boxWeight != null "> and a.box_weight = #{boxWeight}</if>
-            <if test="tubeColor != null  and tubeColor != ''"> and a.tube_color = #{tubeColor}</if>
-            <if test="comPort != null  and comPort != ''"> and a.com_port = #{comPort}</if>
-            <if test="printFormat != null  and printFormat != ''"> and a.print_format = #{printFormat}</if>
-            <if test="packagingType != null  and packagingType != ''"> and a.packaging_type = #{packagingType}</if>
-            <if test="storageLocation != null  and storageLocation != ''"> and a.storage_location = #{storageLocation}</if>
-            <if test="warehouseregionId != null "> and a.warehouseregion_id = #{warehouseregionId}</if>
-            <if test="createById != null "> and a.create_by_id = #{createById}</if>
-            <if test="updateById != null "> and a.update_by_id = #{updateById}</if>
-            <if test="totalCanisterNum != null "> and a.total_canister_num = #{totalCanisterNum}</if>
-            <if test="totalBoxNum != null "> and a.total_box_num = #{totalBoxNum}</if>
-            <if test="totalSuttle != null "> and a.total_suttle = #{totalSuttle}</if>
-            <if test="totalGrossWeight != null "> and a.total_gross_weight = #{totalGrossWeight}</if>
-            <if test="withdrawingFlag != null  and withdrawingFlag != ''"> and a.withdrawing_flag = #{withdrawingFlag}</if>
-            <if test="saleProductId != null  and saleProductId != ''"> and a.sale_product_id = #{saleProductId}</if>
-            <if test="otherStates != null  and otherStates != ''"> and a.other_states = #{otherStates}</if>
-            <if test="parentCode != null  and parentCode != ''"> and a.parent_code = #{parentCode}</if>
-            <if test="qrCodeId != null  and qrCodeId != ''"> and a.qr_code_id = #{qrCodeId}</if>
-        </where>
-    </select>
-    
-    <select id="selectProductCodeLogById" parameterType="Long" resultMap="ProductCodeLogResult">
-        <include refid="selectProductCodeLogVo"/>
-        where id = #{id}
-    </select>
-
-    <insert id="insertProductCodeLog" parameterType="com.zkqy.business.domain.ProductCodeLog">
-        insert into {DBNAME}.product_code_log
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">id,</if>
-            <if test="qrCode != null">qr_code,</if>
-            <if test="lotNum != null">lot_num,</if>
-            <if test="productId != null">product_id,</if>
-            <if test="productColour != null">product_colour,</if>
-            <if test="levels != null">levels,</if>
-            <if test="canisterNum != null">canister_num,</if>
-            <if test="boxNum != null">box_num,</if>
-            <if test="suttle != null">suttle,</if>
-            <if test="productionDate != null">production_date,</if>
-            <if test="machineTool != null">machine_tool,</if>
-            <if test="grossWeight != null">gross_weight,</if>
-            <if test="packaging != null">packaging,</if>
-            <if test="workShifts != null">work_shifts,</if>
-            <if test="foreignTradeNumber != null">foreign_trade_number,</if>
-            <if test="canisterWeight != null">canister_weight,</if>
-            <if test="boxWeight != null">box_weight,</if>
-            <if test="tubeColor != null">tube_color,</if>
-            <if test="comPort != null">com_port,</if>
-            <if test="printFormat != null">print_format,</if>
-            <if test="packagingType != null">packaging_type,</if>
-            <if test="storageLocation != null">storage_location,</if>
-            <if test="warehouseregionId != null">warehouseregion_id,</if>
-            <if test="remark != null">remark,</if>
-            <if test="delFlag != null">del_flag,</if>
-            <if test="createBy != null">create_by,</if>
-            <if test="createById != null">create_by_id,</if>
-            <if test="createTime != null">create_time,</if>
-            <if test="updateBy != null">update_by,</if>
-            <if test="updateById != null">update_by_id,</if>
-            <if test="updateTime != null">update_time,</if>
-            <if test="totalCanisterNum != null">total_canister_num,</if>
-            <if test="totalBoxNum != null">total_box_num,</if>
-            <if test="totalSuttle != null">total_suttle,</if>
-            <if test="totalGrossWeight != null">total_gross_weight,</if>
-            <if test="withdrawingFlag != null">withdrawing_flag,</if>
-            <if test="saleProductId != null">sale_product_id,</if>
-            <if test="otherStates != null">other_states,</if>
-            <if test="parentCode != null">parent_code,</if>
-            <if test="qrCodeId != null">qr_code_id,</if>
-            <if test="fatherid != null">fatherid,</if>
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">#{id},</if>
-            <if test="qrCode != null">#{qrCode},</if>
-            <if test="lotNum != null">#{lotNum},</if>
-            <if test="productId != null">#{productId},</if>
-            <if test="productColour != null">#{productColour},</if>
-            <if test="levels != null">#{levels},</if>
-            <if test="canisterNum != null">#{canisterNum},</if>
-            <if test="boxNum != null">#{boxNum},</if>
-            <if test="suttle != null">#{suttle},</if>
-            <if test="productionDate != null">#{productionDate},</if>
-            <if test="machineTool != null">#{machineTool},</if>
-            <if test="grossWeight != null">#{grossWeight},</if>
-            <if test="packaging != null">#{packaging},</if>
-            <if test="workShifts != null">#{workShifts},</if>
-            <if test="foreignTradeNumber != null">#{foreignTradeNumber},</if>
-            <if test="canisterWeight != null">#{canisterWeight},</if>
-            <if test="boxWeight != null">#{boxWeight},</if>
-            <if test="tubeColor != null">#{tubeColor},</if>
-            <if test="comPort != null">#{comPort},</if>
-            <if test="printFormat != null">#{printFormat},</if>
-            <if test="packagingType != null">#{packagingType},</if>
-            <if test="storageLocation != null">#{storageLocation},</if>
-            <if test="warehouseregionId != null">#{warehouseregionId},</if>
-            <if test="remark != null">#{remark},</if>
-            <if test="delFlag != null">#{delFlag},</if>
-            <if test="createBy != null">#{createBy},</if>
-            <if test="createById != null">#{createById},</if>
-            <if test="createTime != null">#{createTime},</if>
-            <if test="updateBy != null">#{updateBy},</if>
-            <if test="updateById != null">#{updateById},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="totalCanisterNum != null">#{totalCanisterNum},</if>
-            <if test="totalBoxNum != null">#{totalBoxNum},</if>
-            <if test="totalSuttle != null">#{totalSuttle},</if>
-            <if test="totalGrossWeight != null">#{totalGrossWeight},</if>
-            <if test="withdrawingFlag != null">#{withdrawingFlag},</if>
-            <if test="saleProductId != null">#{saleProductId},</if>
-            <if test="otherStates != null">#{otherStates},</if>
-            <if test="parentCode != null">#{parentCode},</if>
-            <if test="qrCodeId != null">#{qrCodeId},</if>
-            <if test="fatherid != null">#{fatherid},</if>
-         </trim>
-    </insert>
-
-    <update id="updateProductCodeLog" parameterType="com.zkqy.business.domain.ProductCodeLog">
-        update {DBNAME}.product_code_log
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="qrCode != null">qr_code = #{qrCode},</if>
-            <if test="lotNum != null">lot_num = #{lotNum},</if>
-            <if test="productId != null">product_id = #{productId},</if>
-            <if test="productColour != null">product_colour = #{productColour},</if>
-            <if test="levels != null">levels = #{levels},</if>
-            <if test="canisterNum != null">canister_num = #{canisterNum},</if>
-            <if test="boxNum != null">box_num = #{boxNum},</if>
-            <if test="suttle != null">suttle = #{suttle},</if>
-            <if test="productionDate != null">production_date = #{productionDate},</if>
-            <if test="machineTool != null">machine_tool = #{machineTool},</if>
-            <if test="grossWeight != null">gross_weight = #{grossWeight},</if>
-            <if test="packaging != null">packaging = #{packaging},</if>
-            <if test="workShifts != null">work_shifts = #{workShifts},</if>
-            <if test="foreignTradeNumber != null">foreign_trade_number = #{foreignTradeNumber},</if>
-            <if test="canisterWeight != null">canister_weight = #{canisterWeight},</if>
-            <if test="boxWeight != null">box_weight = #{boxWeight},</if>
-            <if test="tubeColor != null">tube_color = #{tubeColor},</if>
-            <if test="comPort != null">com_port = #{comPort},</if>
-            <if test="printFormat != null">print_format = #{printFormat},</if>
-            <if test="packagingType != null">packaging_type = #{packagingType},</if>
-            <if test="storageLocation != null">storage_location = #{storageLocation},</if>
-            <if test="warehouseregionId != null">warehouseregion_id = #{warehouseregionId},</if>
-            <if test="remark != null">remark = #{remark},</if>
-            <if test="delFlag != null">del_flag = #{delFlag},</if>
-            <if test="createBy != null">create_by = #{createBy},</if>
-            <if test="createById != null">create_by_id = #{createById},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
-            <if test="updateBy != null">update_by = #{updateBy},</if>
-            <if test="updateById != null">update_by_id = #{updateById},</if>
-            <if test="updateTime != null">update_time = #{updateTime},</if>
-            <if test="totalCanisterNum != null">total_canister_num = #{totalCanisterNum},</if>
-            <if test="totalBoxNum != null">total_box_num = #{totalBoxNum},</if>
-            <if test="totalSuttle != null">total_suttle = #{totalSuttle},</if>
-            <if test="totalGrossWeight != null">total_gross_weight = #{totalGrossWeight},</if>
-            <if test="withdrawingFlag != null">withdrawing_flag = #{withdrawingFlag},</if>
-            <if test="saleProductId != null">sale_product_id = #{saleProductId},</if>
-            <if test="otherStates != null">other_states = #{otherStates},</if>
-            <if test="parentCode != null">parent_code = #{parentCode},</if>
-            <if test="qrCodeId != null">qr_code_id = #{qrCodeId},</if>
-            <if test="fatherid != null">fatherid = #{fatherid},</if>
-        </trim>
-        where id = #{id}
-    </update>
-
-    <delete id="deleteProductCodeLogById" parameterType="Long">
-        delete from {DBNAME}.product_code_log where id = #{id}
-    </delete>
-
-    <delete id="deleteProductCodeLogByIds" parameterType="String">
-        delete from {DBNAME}.product_code_log where id in
-        <foreach item="id" collection="array" open="(" separator="," close=")">
-            #{id}
-        </foreach>
-    </delete>
+<?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.ProductCodeLogMapper">
+    
+    <resultMap type="com.zkqy.business.domain.ProductCodeLog" id="ProductCodeLogResult">
+        <result property="id"    column="id"    />
+        <result property="qrCode"    column="qr_code"    />
+        <result property="lotNum"    column="lot_num"    />
+        <result property="productId"    column="product_id"    />
+        <result property="productColour"    column="product_colour"    />
+        <result property="levels"    column="levels"    />
+        <result property="canisterNum"    column="canister_num"    />
+        <result property="boxNum"    column="box_num"    />
+        <result property="suttle"    column="suttle"    />
+        <result property="productionDate"    column="production_date"    />
+        <result property="machineTool"    column="machine_tool"    />
+        <result property="grossWeight"    column="gross_weight"    />
+        <result property="packaging"    column="packaging"    />
+        <result property="workShifts"    column="work_shifts"    />
+        <result property="foreignTradeNumber"    column="foreign_trade_number"    />
+        <result property="canisterWeight"    column="canister_weight"    />
+        <result property="boxWeight"    column="box_weight"    />
+        <result property="tubeColor"    column="tube_color"    />
+        <result property="comPort"    column="com_port"    />
+        <result property="printFormat"    column="print_format"    />
+        <result property="packagingType"    column="packaging_type"    />
+        <result property="storageLocation"    column="storage_location"    />
+        <result property="warehouseregionId"    column="warehouseregion_id"    />
+        <result property="remark"    column="remark"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="totalCanisterNum"    column="total_canister_num"    />
+        <result property="totalBoxNum"    column="total_box_num"    />
+        <result property="totalSuttle"    column="total_suttle"    />
+        <result property="totalGrossWeight"    column="total_gross_weight"    />
+        <result property="withdrawingFlag"    column="withdrawing_flag"    />
+        <result property="saleProductId"    column="sale_product_id"    />
+        <result property="otherStates"    column="other_states"    />
+        <result property="parentCode"    column="parent_code"    />
+        <result property="qrCodeId"    column="qr_code_id"    />
+        <result property="fatherid"    column="fatherid"    />
+    </resultMap>
+
+    <sql id="selectProductCodeLogVo">
+        select id, qr_code, lot_num, product_id, product_colour, levels, canister_num, box_num, suttle, production_date, machine_tool, gross_weight, packaging, work_shifts, foreign_trade_number, canister_weight, box_weight, tube_color, com_port, print_format, packaging_type, storage_location, warehouseregion_id, remark, del_flag, create_by, create_by_id, create_time, update_by, update_by_id, update_time, total_canister_num, total_box_num, total_suttle, total_gross_weight, withdrawing_flag, sale_product_id, other_states, parent_code, qr_code_id, fatherid from {DBNAME}.product_code_log
+    </sql>
+
+    <sql id="selectProductCodeAListLogVoproducts">
+        SELECT
+            a.id,
+            a.qr_code,
+            a.lot_num,
+            a.product_id,
+            b.product_name as productName,
+            b.product_specifications as productspecifications,
+            a.product_colour,
+            a.levels,
+            a.canister_num,
+            a.box_num,
+            a.suttle,
+            a.production_date,
+            a.machine_tool,
+            a.gross_weight,
+            a.packaging,
+            a.work_shifts,
+            a.foreign_trade_number,
+            a.canister_weight,
+            a.box_weight,
+            a.tube_color,
+            a.com_port,
+            a.print_format,
+            a.packaging_type,
+            a.storage_location,
+            a.warehouseregion_id,
+            a.remark,
+            a.del_flag,
+            a.create_by,
+            a.create_by_id,
+            a.create_time,
+            a.update_by,
+            a.update_by_id,
+            a.update_time,
+            a.total_canister_num,
+            a.total_box_num,
+            a.total_suttle,
+            a.total_gross_weight,
+            a.withdrawing_flag,
+            a.sale_product_id,
+            a.other_states,
+            a.parent_code,
+            a.qr_code_id
+        FROM
+            {DBNAME}.product_code_log a
+        LEFT JOIN {DBNAME}.production b ON a.product_id = b.id
+    </sql>
+
+    <select id="selectProductCodeLogList" parameterType="com.zkqy.business.domain.ProductCodeLog" resultMap="ProductCodeLogResult">
+        <include refid="selectProductCodeAListLogVoproducts"/>
+        <where>
+            <if test="qrCode != null  and qrCode != ''"> and a.qr_code = #{qrCode}</if>
+            <if test="lotNum != null  and lotNum != ''"> and a.lot_num = #{lotNum}</if>
+            <if test="productId != null "> and a.product_id = #{productId}</if>
+            <if test="productColour != null  and productColour != ''"> and a.product_colour = #{productColour}</if>
+            <if test="levels != null  and levels != ''"> and a.levels = #{levels}</if>
+            <if test="canisterNum != null "> and a.canister_num = #{canisterNum}</if>
+            <if test="boxNum != null "> and a.box_num = #{boxNum}</if>
+            <if test="suttle != null "> and a.suttle = #{suttle}</if>
+            <if test="productionDate != null "> and a.production_date = #{productionDate}</if>
+            <if test="machineTool != null  and machineTool != ''"> and a.machine_tool = #{machineTool}</if>
+            <if test="grossWeight != null "> and a.gross_weight = #{grossWeight}</if>
+            <if test="packaging != null  and packaging != ''"> and a.packaging = #{packaging}</if>
+            <if test="workShifts != null  and workShifts != ''"> and a.work_shifts = #{workShifts}</if>
+            <if test="foreignTradeNumber != null  and foreignTradeNumber != ''"> and a.foreign_trade_number = #{foreignTradeNumber}</if>
+            <if test="canisterWeight != null "> and a.canister_weight = #{canisterWeight}</if>
+            <if test="boxWeight != null "> and a.box_weight = #{boxWeight}</if>
+            <if test="tubeColor != null  and tubeColor != ''"> and a.tube_color = #{tubeColor}</if>
+            <if test="comPort != null  and comPort != ''"> and a.com_port = #{comPort}</if>
+            <if test="printFormat != null  and printFormat != ''"> and a.print_format = #{printFormat}</if>
+            <if test="packagingType != null  and packagingType != ''"> and a.packaging_type = #{packagingType}</if>
+            <if test="storageLocation != null  and storageLocation != ''"> and a.storage_location = #{storageLocation}</if>
+            <if test="warehouseregionId != null "> and a.warehouseregion_id = #{warehouseregionId}</if>
+            <if test="createById != null "> and a.create_by_id = #{createById}</if>
+            <if test="updateById != null "> and a.update_by_id = #{updateById}</if>
+            <if test="totalCanisterNum != null "> and a.total_canister_num = #{totalCanisterNum}</if>
+            <if test="totalBoxNum != null "> and a.total_box_num = #{totalBoxNum}</if>
+            <if test="totalSuttle != null "> and a.total_suttle = #{totalSuttle}</if>
+            <if test="totalGrossWeight != null "> and a.total_gross_weight = #{totalGrossWeight}</if>
+            <if test="withdrawingFlag != null  and withdrawingFlag != ''"> and a.withdrawing_flag = #{withdrawingFlag}</if>
+            <if test="saleProductId != null  and saleProductId != ''"> and a.sale_product_id = #{saleProductId}</if>
+            <if test="otherStates != null  and otherStates != ''"> and a.other_states = #{otherStates}</if>
+            <if test="parentCode != null  and parentCode != ''"> and a.parent_code = #{parentCode}</if>
+            <if test="qrCodeId != null  and qrCodeId != ''"> and a.qr_code_id = #{qrCodeId}</if>
+        </where>
+    </select>
+    
+    <select id="selectProductCodeLogById" parameterType="Long" resultMap="ProductCodeLogResult">
+        <include refid="selectProductCodeLogVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertProductCodeLog" parameterType="com.zkqy.business.domain.ProductCodeLog">
+        insert into {DBNAME}.product_code_log
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="qrCode != null">qr_code,</if>
+            <if test="lotNum != null">lot_num,</if>
+            <if test="productId != null">product_id,</if>
+            <if test="productColour != null">product_colour,</if>
+            <if test="levels != null">levels,</if>
+            <if test="canisterNum != null">canister_num,</if>
+            <if test="boxNum != null">box_num,</if>
+            <if test="suttle != null">suttle,</if>
+            <if test="productionDate != null">production_date,</if>
+            <if test="machineTool != null">machine_tool,</if>
+            <if test="grossWeight != null">gross_weight,</if>
+            <if test="packaging != null">packaging,</if>
+            <if test="workShifts != null">work_shifts,</if>
+            <if test="foreignTradeNumber != null">foreign_trade_number,</if>
+            <if test="canisterWeight != null">canister_weight,</if>
+            <if test="boxWeight != null">box_weight,</if>
+            <if test="tubeColor != null">tube_color,</if>
+            <if test="comPort != null">com_port,</if>
+            <if test="printFormat != null">print_format,</if>
+            <if test="packagingType != null">packaging_type,</if>
+            <if test="storageLocation != null">storage_location,</if>
+            <if test="warehouseregionId != null">warehouseregion_id,</if>
+            <if test="remark != null">remark,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="totalCanisterNum != null">total_canister_num,</if>
+            <if test="totalBoxNum != null">total_box_num,</if>
+            <if test="totalSuttle != null">total_suttle,</if>
+            <if test="totalGrossWeight != null">total_gross_weight,</if>
+            <if test="withdrawingFlag != null">withdrawing_flag,</if>
+            <if test="saleProductId != null">sale_product_id,</if>
+            <if test="otherStates != null">other_states,</if>
+            <if test="parentCode != null">parent_code,</if>
+            <if test="qrCodeId != null">qr_code_id,</if>
+            <if test="fatherid != null">fatherid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="qrCode != null">#{qrCode},</if>
+            <if test="lotNum != null">#{lotNum},</if>
+            <if test="productId != null">#{productId},</if>
+            <if test="productColour != null">#{productColour},</if>
+            <if test="levels != null">#{levels},</if>
+            <if test="canisterNum != null">#{canisterNum},</if>
+            <if test="boxNum != null">#{boxNum},</if>
+            <if test="suttle != null">#{suttle},</if>
+            <if test="productionDate != null">#{productionDate},</if>
+            <if test="machineTool != null">#{machineTool},</if>
+            <if test="grossWeight != null">#{grossWeight},</if>
+            <if test="packaging != null">#{packaging},</if>
+            <if test="workShifts != null">#{workShifts},</if>
+            <if test="foreignTradeNumber != null">#{foreignTradeNumber},</if>
+            <if test="canisterWeight != null">#{canisterWeight},</if>
+            <if test="boxWeight != null">#{boxWeight},</if>
+            <if test="tubeColor != null">#{tubeColor},</if>
+            <if test="comPort != null">#{comPort},</if>
+            <if test="printFormat != null">#{printFormat},</if>
+            <if test="packagingType != null">#{packagingType},</if>
+            <if test="storageLocation != null">#{storageLocation},</if>
+            <if test="warehouseregionId != null">#{warehouseregionId},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="totalCanisterNum != null">#{totalCanisterNum},</if>
+            <if test="totalBoxNum != null">#{totalBoxNum},</if>
+            <if test="totalSuttle != null">#{totalSuttle},</if>
+            <if test="totalGrossWeight != null">#{totalGrossWeight},</if>
+            <if test="withdrawingFlag != null">#{withdrawingFlag},</if>
+            <if test="saleProductId != null">#{saleProductId},</if>
+            <if test="otherStates != null">#{otherStates},</if>
+            <if test="parentCode != null">#{parentCode},</if>
+            <if test="qrCodeId != null">#{qrCodeId},</if>
+            <if test="fatherid != null">#{fatherid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateProductCodeLog" parameterType="com.zkqy.business.domain.ProductCodeLog">
+        update {DBNAME}.product_code_log
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="qrCode != null">qr_code = #{qrCode},</if>
+            <if test="lotNum != null">lot_num = #{lotNum},</if>
+            <if test="productId != null">product_id = #{productId},</if>
+            <if test="productColour != null">product_colour = #{productColour},</if>
+            <if test="levels != null">levels = #{levels},</if>
+            <if test="canisterNum != null">canister_num = #{canisterNum},</if>
+            <if test="boxNum != null">box_num = #{boxNum},</if>
+            <if test="suttle != null">suttle = #{suttle},</if>
+            <if test="productionDate != null">production_date = #{productionDate},</if>
+            <if test="machineTool != null">machine_tool = #{machineTool},</if>
+            <if test="grossWeight != null">gross_weight = #{grossWeight},</if>
+            <if test="packaging != null">packaging = #{packaging},</if>
+            <if test="workShifts != null">work_shifts = #{workShifts},</if>
+            <if test="foreignTradeNumber != null">foreign_trade_number = #{foreignTradeNumber},</if>
+            <if test="canisterWeight != null">canister_weight = #{canisterWeight},</if>
+            <if test="boxWeight != null">box_weight = #{boxWeight},</if>
+            <if test="tubeColor != null">tube_color = #{tubeColor},</if>
+            <if test="comPort != null">com_port = #{comPort},</if>
+            <if test="printFormat != null">print_format = #{printFormat},</if>
+            <if test="packagingType != null">packaging_type = #{packagingType},</if>
+            <if test="storageLocation != null">storage_location = #{storageLocation},</if>
+            <if test="warehouseregionId != null">warehouseregion_id = #{warehouseregionId},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createById != null">create_by_id = #{createById},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateById != null">update_by_id = #{updateById},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="totalCanisterNum != null">total_canister_num = #{totalCanisterNum},</if>
+            <if test="totalBoxNum != null">total_box_num = #{totalBoxNum},</if>
+            <if test="totalSuttle != null">total_suttle = #{totalSuttle},</if>
+            <if test="totalGrossWeight != null">total_gross_weight = #{totalGrossWeight},</if>
+            <if test="withdrawingFlag != null">withdrawing_flag = #{withdrawingFlag},</if>
+            <if test="saleProductId != null">sale_product_id = #{saleProductId},</if>
+            <if test="otherStates != null">other_states = #{otherStates},</if>
+            <if test="parentCode != null">parent_code = #{parentCode},</if>
+            <if test="qrCodeId != null">qr_code_id = #{qrCodeId},</if>
+            <if test="fatherid != null">fatherid = #{fatherid},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteProductCodeLogById" parameterType="Long">
+        delete from {DBNAME}.product_code_log where id = #{id}
+    </delete>
+
+    <delete id="deleteProductCodeLogByIds" parameterType="String">
+        delete from {DBNAME}.product_code_log where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
 </mapper>

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

@@ -687,4 +687,38 @@
         </where>
     </update>
 
+    <update id="updateSaleProductsBySaleOrderNoBgsl">
+        update {DBNAME}.sale_products
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="saleProductNo != null">sale_product_no = #{saleProductNo},</if>
+            <if test="productNo != null">product_no = #{productNo},</if>
+            <if test="productName != null">product_name = #{productName},</if>
+            <if test="productWeight != null">product_weight = #{productWeight},</if>
+            <if test="productUnitPrice != null">product_unit_price = #{productUnitPrice},</if>
+            <if test="productAmounts != null">product_amounts = #{productAmounts},</if>
+            <if test="productNotes != null">product_notes = #{productNotes},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createById != null">create_by_id = #{createById},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateById != null">update_by_id = #{updateById},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="processKey != null">process_key = #{processKey},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="productionLineNo != null">production_line_no = #{productionLineNo},</if>
+            <if test="sliceType != null">slice_type = #{sliceType},</if>
+            <if test="colourNumber != null">colour_number = #{colourNumber},</if>
+            <if test="taskName != null">task_name = #{taskName},</if>
+            <if test="lotNumber != null">lot_number = #{lotNumber},</if>
+            <if test="onBoardState != null">on_board_state = #{onBoardState},</if>
+            <if test="colours != null">colours = #{colours},</if>
+        </trim>
+        where sale_order_no = #{saleOrderNo}
+        <if test="id != null">and id=#{id}</if>
+    </update>
+
 </mapper>

+ 13 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/ProductionPlanningManagementController.java

@@ -63,6 +63,19 @@ public class ProductionPlanningManagementController extends BaseController
         return getDataTable(list);
     }
 
+
+    /**
+     * 删除错误单据
+     */
+    @PostMapping("/removeMistakeDocument")
+    @ApiOperation(value = "查询生产计划列表")
+    public AjaxResult removeMistakeDocument(@RequestBody List<String> mistakeDocument)
+    {
+        //删除错误单据
+        int i = productionPlanningManagementService.removeMistakeDocument(mistakeDocument);
+        return toAjax(i);
+    }
+
     /**
      * 导出生产计划列表
      */

+ 7 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/PlanTaskDetailsMapper.java

@@ -92,4 +92,11 @@ public interface PlanTaskDetailsMapper
      * 查询
      */
     List<PlanTaskDetailsListAndFlowCardDataVo> selectPlanTaskDetailsListAndFlowCardData(List<String> orderNumber);
+
+    /**
+     * 根据订单号删除
+     * @param mistakeDocument
+     * @return
+     */
+    int removeMistakeDocumentByFsrcbillno(List<String> mistakeDocument);
 }

+ 3 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ProductionCardFlowMapper.java

@@ -80,4 +80,7 @@ public interface ProductionCardFlowMapper
 
 //    批量删除工序流转卡流水
     int deleteProductionCardFlowByDemandDocumentNumber(List<String> stringList);
+
+    //根据订单号删除
+    int  removeMistakeDocumentByProductionOrderListId(List<String>  stringList);
 }

+ 7 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ProductionPlanningManagementMapper.java

@@ -94,4 +94,11 @@ public interface ProductionPlanningManagementMapper
      * @return
      */
     List<ProductionPlanningManagementVo> selectProductionPlanningManagementListVoIn(List<String> ids);
+
+    /**
+     * 错误单据删除
+     * @param mistakeDocument
+     * @return
+     */
+    int removeMistakeDocument(List<String> mistakeDocument);
 }

+ 7 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IProductionPlanningManagementService.java

@@ -68,4 +68,11 @@ public interface IProductionPlanningManagementService
      * @return
      */
     List<ProductionPlanningManagementVo> selectProductionPlanningManagementListVo(ProductionPlanningManagement productionPlanningManagement);
+
+    /**
+     * 删除错误订单信息
+     * @param mistakeDocument
+     * @return
+     */
+    int  removeMistakeDocument(List<String> mistakeDocument);
 }

+ 16 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/ProductionPlanningManagementServiceImpl.java

@@ -8,6 +8,7 @@ import com.zkqy.amichi.domain.ProductionPlanningManagement;
 import com.zkqy.amichi.domain.ProductionTasks;
 import com.zkqy.amichi.domain.vo.ProductionPlanningManagementVo;
 import com.zkqy.amichi.mapper.PlanTaskDetailsMapper;
+import com.zkqy.amichi.mapper.ProductionCardFlowMapper;
 import com.zkqy.amichi.mapper.ProductionTasksMapper;
 import com.zkqy.amichi.service.ITaskDetailsService;
 import com.zkqy.common.core.domain.AjaxResult;
@@ -40,6 +41,9 @@ public class ProductionPlanningManagementServiceImpl implements IProductionPlann
     @Autowired
     private PlanTaskDetailsMapper planTaskDetailsMapper;
 
+    @Autowired
+    private ProductionCardFlowMapper productionCardFlowMapper;
+
 
     /**
      * 查询生产计划
@@ -135,4 +139,16 @@ public class ProductionPlanningManagementServiceImpl implements IProductionPlann
         //返回信息
         return productionPlanningManagements;
     }
+
+    @Override
+    public int removeMistakeDocument(List<String> mistakeDocument) {
+//        DELETE FROM plan_task_details WHERE fsrcbillno='NQY251047'
+//        DELETE FROM production_card_flow WHERE production_order_list_id='NQY251047'
+//        DELETE FROM  production_planning_management WHERE order_number='NQY251047'
+        int i1 =planTaskDetailsMapper.removeMistakeDocumentByFsrcbillno(mistakeDocument);
+        int i2 = productionCardFlowMapper.removeMistakeDocumentByProductionOrderListId(mistakeDocument);
+        int i3= productionPlanningManagementMapper.removeMistakeDocument(mistakeDocument);
+        int i = i1+i2+i3;
+        return i;
+    }
 }

+ 33 - 7
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/StationInformationServiceImpl.java

@@ -427,6 +427,7 @@ public class StationInformationServiceImpl implements IStationInformationService
                 if(planTaskDetails1.size()>0){
                     PlanTaskDetails planTaskDetails2 = planTaskDetails1.get(0);
                     String materialId = planTaskDetails2.getMaterialId();
+                    //逻辑走包装还是走检验
                     if(materialId.startsWith("1")){// 成品检验
                         ringScanInformationFirst1.setPackingOrInspection("1");//1开头的 成品检验, 入库
                     }else if(materialId.startsWith("2")) { //试机检验
@@ -443,10 +444,25 @@ public class StationInformationServiceImpl implements IStationInformationService
                     PlanTaskDetails planTaskDetails2 = planTaskDetails1.get(0);
                     String materialId = planTaskDetails2.getMaterialId();
                     if(materialId.startsWith("1")&&ringScanInformation.getProcessName().equals("成品检验")){
-                        ringScanInformationFirst1.setPackingQuantity("1");
+                        //更新成品检验(只扫一次也需要更新包装或者检验的数量)
+                        RingScanInformationFirst ringScanInformationFirstOne=new RingScanInformationFirst();
+                        ringScanInformationFirstOne.setProductionOrderNumber(ringScanInformation.getProductionOrderNumber());
+                        List<RingScanInformationFirst> ringScanInformationFirsts1 = ringScanInformationFirstMapper.selectRingScanInformationFirstList(ringScanInformationFirstOne);
+                        RingScanInformationFirst ringScanInformationFirstNumber = ringScanInformationFirsts1.get(0);
+                        RingScanInformationFirst newRingScanInformationFirst = getRingScanInformationFirst(ringScanInformationFirstNumber.getPackingQuantity(), ringScanInformation, "1");
+                        ringScanInformationFirstMapper.updateRingScanInformationFirstByproductionOrderNumber(newRingScanInformationFirst);
+
                         this.generateWarehouseWarrant(ringScanInformation.getProductionOrderNumber(),ringScanInformation.getProcessName(),"3",ringScanInformation);//生产订单号,工序名
                     }else if(materialId.startsWith("2")&&ringScanInformation.getProcessName().equals("试机检验")) {
-                        ringScanInformationFirst1.setInspectionQuantity("1");
+
+                        //更新成品检验(只扫一次也需要更新包装或者检验的数量)
+                        RingScanInformationFirst ringScanInformationFirstOne=new RingScanInformationFirst();
+                        ringScanInformationFirstOne.setProductionOrderNumber(ringScanInformation.getProductionOrderNumber());
+                        List<RingScanInformationFirst> ringScanInformationFirsts1 = ringScanInformationFirstMapper.selectRingScanInformationFirstList(ringScanInformationFirstOne);
+                        RingScanInformationFirst ringScanInformationFirstNumber = ringScanInformationFirsts1.get(0);
+                        RingScanInformationFirst newRingScanInformationFirst = getRingScanInformationFirst(ringScanInformationFirstNumber.getPackingQuantity(), ringScanInformation, "1");
+                        ringScanInformationFirstMapper.updateRingScanInformationFirstByproductionOrderNumber(newRingScanInformationFirst);
+
                         this.generateWarehouseWarrant(ringScanInformation.getProductionOrderNumber(),ringScanInformation.getProcessName(),"4",ringScanInformation);//生产订单号,工序名
                     }
                 }}
@@ -497,8 +513,8 @@ public class StationInformationServiceImpl implements IStationInformationService
                         //有关于这个产品的扫描信息就不更新数量了
                         List<RingScanInformation> ringScanInformations1 = ringScanInformationMapper.selectRingScanInformationList(ringScanInformation1);
                         if(ringScanInformations1.size()<=0) {
-                            RingScanInformationFirst newRingScanInformationFirst = getRingScanInformationFirst(ringScanInformationFirstNumber.getRks(), ringScanInformation, "3");
-                            ringScanInformationFirstMapper.updateRingScanInformationFirstByproductionOrderNumber(newRingScanInformationFirst);
+//                            RingScanInformationFirst newRingScanInformationFirst = getRingScanInformationFirst(ringScanInformationFirstNumber.getRks(), ringScanInformation, "3");
+//                            ringScanInformationFirstMapper.updateRingScanInformationFirstByproductionOrderNumber(newRingScanInformationFirst);
                             //生产汇报
                             this.generateWarehouseWarrant(ringScanInformation.getProductionOrderNumber(),ringScanInformation.getProcessName(),"1",ringScanInformation);
                         }
@@ -509,8 +525,8 @@ public class StationInformationServiceImpl implements IStationInformationService
                         ringScanInformation1.setProcessName(ringScanInformation.getProcessName());//工序
                         List<RingScanInformation> ringScanInformations1 = ringScanInformationMapper.selectRingScanInformationList(ringScanInformation1);
                         if(ringScanInformations1.size()<=0){
-                            RingScanInformationFirst newRingScanInformationFirst = getRingScanInformationFirst(ringScanInformationFirstNumber.getRks(), ringScanInformation,"3");
-                            ringScanInformationFirstMapper.updateRingScanInformationFirstByproductionOrderNumber(newRingScanInformationFirst);
+//                            RingScanInformationFirst newRingScanInformationFirst = getRingScanInformationFirst(ringScanInformationFirstNumber.getRks(), ringScanInformation,"3");
+//                            ringScanInformationFirstMapper.updateRingScanInformationFirstByproductionOrderNumber(newRingScanInformationFirst);
                             //生产逻辑
                             this.generateWarehouseWarrant(ringScanInformation.getProductionOrderNumber(),ringScanInformation.getProcessName(),"2",ringScanInformation);//生产订单号,工序名
                         }
@@ -951,6 +967,10 @@ public class StationInformationServiceImpl implements IStationInformationService
             RingScanInformationFirst newRingScanInformationFirst = new RingScanInformationFirst();
             newRingScanInformationFirst.setProductionOrderNumber(ringScanInformation.getProductionOrderNumber());
             newRingScanInformationFirst.setPackingQuantity(i1.toString());
+
+            //入库数量跟随,成品检验同步更新
+            newRingScanInformationFirst.setRks(i1.toString());
+
             return newRingScanInformationFirst;
         }else if(type.equals("2")) { //试机检验
             String inspectionQuantity = ringScanInformationFirstNumber;
@@ -959,6 +979,13 @@ public class StationInformationServiceImpl implements IStationInformationService
             RingScanInformationFirst newRingScanInformationFirst = new RingScanInformationFirst();
             newRingScanInformationFirst.setProductionOrderNumber(ringScanInformation.getProductionOrderNumber());
             newRingScanInformationFirst.setInspectionQuantity(i2.toString());
+
+
+            //入库数量跟随,成品检验同步更新
+            newRingScanInformationFirst.setRks(i2.toString());
+
+
+
             return newRingScanInformationFirst;
         }else if(type.equals("3")) {//入库
             String rKQuantity = ringScanInformationFirstNumber;
@@ -1005,7 +1032,6 @@ public class StationInformationServiceImpl implements IStationInformationService
                       erpWareHouSing(planTaskDetails1.get(0),type,ringScanInformation,"单量推送");
                       System.out.println("入库汇报单量推送");
 
-
                   }else if(packingOrInspection.equals("2")){ //试机数量 --够了--下推入库单
                       //入库数量等于生产订单总数那么就发起入库申请
                       if(ringScanInformationFirst.getRks().equals(ringScanInformationFirst.getProductionOrderTotalQuantity())){

+ 6 - 0
zkqy-fujian-amichi/src/main/resources/mapper/PlanTaskDetailsMapper.xml

@@ -310,6 +310,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+    <delete id="removeMistakeDocumentByFsrcbillno">
+        delete from {DBNAME}.plan_task_details where fsrcbillno in
+        <foreach item="id" collection="list" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
 
     <select id="selectPlanTaskDetailsListInPlanId" parameterType="String" resultMap="PlanTaskDetailsResultVo">
         select ptd.id,ptd.document_type,ptd.material_id,ptd.material_name,ptd.model_number,ptd.specification,ptd.material_unit, ptd.quantity,  ptd.remark,

+ 6 - 0
zkqy-fujian-amichi/src/main/resources/mapper/ProductionCardFlowMapper.xml

@@ -173,4 +173,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+    <delete id="removeMistakeDocumentByProductionOrderListId">
+        delete from {DBNAME}.production_card_flow where production_order_list_id in
+        <foreach item="id" collection="list" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
 </mapper>

+ 9 - 0
zkqy-fujian-amichi/src/main/resources/mapper/ProductionPlanningManagementMapper.xml

@@ -369,4 +369,13 @@
             #{id}
         </foreach>
     </delete>
+
+    <!--  删除错误订单逻辑-->
+    <delete id="removeMistakeDocument">
+        delete from {DBNAME}.production_planning_management where order_number in
+        <foreach item="id" collection="list" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
 </mapper>

+ 2 - 1
zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationMapper.xml

@@ -468,7 +468,7 @@ SELECT
                 LEFT JOIN fjqydb.ring_scan_information_first AS rsif ON rsi.production_order_number = rsif.production_order_number
                 left join fjqydb.plan_task_details as ptd on rsi.production_order_number=ptd.demand_document
         where DATE(rsi.scanning_time) = CURDATE() and
-            rsi.execution_message !='失败-未同步ERP' and  rsi.execution_message !='未绑定-人员-扫描失败'
+            rsi.execution_message !='失败-未同步ERP' and  rsi.execution_message !='未绑定-人员-扫描失败' and rsi.execution_message !='失败-已结案'
         GROUP BY
             rsi.order_number,
             rsi.personnel_name,
@@ -494,6 +494,7 @@ SELECT
                 <![CDATA[ and scanning_time <= #{scanningTimes[0]}]]>
             </if>
              and order_number is not null
+             AND execution_message !='失败-已结案'
         </where>
         order by  scanning_time,process_name
     </select>

+ 7 - 10
zkqy-ui/.env.production

@@ -8,21 +8,18 @@ ENV = 'production'
 VUE_APP_BASE_API = '/prod-api'
 
 # 生产环境
-# 铨一
-# VUE_APP_BASE_API1 = 'http://192.168.2.135:8066/'
-# 化纤
-# VUE_APP_BASE_API1 = 'http://192.168.3.17:8066/'
-# lth
- VUE_APP_BASE_API1 = 'http://192.168.110.182:8066/'
-# 公网服务器
-# VUE_APP_BASE_API1 = 'http://175.27.169.173:8066/'
+#VUE_APP_BASE_API1 = 'http://192.168.2.135:8066/'
+#VUE_APP_BASE_API1 = 'http://192.168.3.17:8066/'
+VUE_APP_BASE_API1 = 'http://192.168.110.83:8066/'
+#VUE_APP_BASE_API1 = 'http://175.27.169.173:8066/'
 
 
 # 图片路径
-VUE_APP_BASE_IMG_API = 'http://192.168.110.182:1025/prod-api'
+#VUE_APP_BASE_IMG_API = 'http://192.168.3.17:1024/prod-api'
+VUE_APP_BASE_IMG_API = 'http://192.168.110.83:1025/prod-api'
+#VUE_APP_BASE_IMG_API = 'http://175.27.169.173:1025/prod-api'
 
 # ws地址
 VUE_APP_BASE_WS_API = '//127.0.0.1:8721'
 
-
 VUE_APP_BASE_IMG_API_MINIO='http://192.168.128.164:9000/xingneng'

+ 9 - 1
zkqy-ui/src/api/amichi/productionCardFlow/productionCardFlow.js

@@ -29,7 +29,15 @@ export function jdProductionWeldPlanOrderPullApi(query) {
   })
 }
 
-
+//删除错误的单据
+export function removeMistakeDocument(query) {
+    return request({
+      url: '/amichi/management/removeMistakeDocument',
+      method: 'post',
+      data: query,
+      timeout: 1000000000 // 设置超时时间为5秒
+    })
+  }
 // 生成工序流转卡查询工序流转卡流水列表
 export function generateProcessFlowCard(data) {
   return request({

+ 44 - 44
zkqy-ui/src/api/business/productcodelog.js

@@ -1,44 +1,44 @@
-import request from '@/utils/request'
-
-// 查询产品码修改日志列表
-export function listProductcodelog(query) {
-  return request({
-    url: '/business/productcodelog/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询产品码修改日志详细
-export function getProductcodelog(id) {
-  return request({
-    url: '/business/productcodelog/' + id,
-    method: 'get'
-  })
-}
-
-// 新增产品码修改日志
-export function addProductcodelog(data) {
-  return request({
-    url: '/business/productcodelog',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改产品码修改日志
-export function updateProductcodelog(data) {
-  return request({
-    url: '/business/productcodelog',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除产品码修改日志
-export function delProductcodelog(id) {
-  return request({
-    url: '/business/productcodelog/' + id,
-    method: 'delete'
-  })
-}
+import request from '@/utils/request'
+
+// 查询产品码修改日志列表
+export function listProductcodelog(query) {
+  return request({
+    url: '/business/productcodelog/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询产品码修改日志详细
+export function getProductcodelog(id) {
+  return request({
+    url: '/business/productcodelog/' + id,
+    method: 'get'
+  })
+}
+
+// 新增产品码修改日志
+export function addProductcodelog(data) {
+  return request({
+    url: '/business/productcodelog',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改产品码修改日志
+export function updateProductcodelog(data) {
+  return request({
+    url: '/business/productcodelog',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除产品码修改日志
+export function delProductcodelog(id) {
+  return request({
+    url: '/business/productcodelog/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 44
zkqy-ui/src/api/productcodelog/productcodelog.js

@@ -1,44 +1,44 @@
-import request from '@/utils/request'
-
-// 查询产品码修改日志列表
-export function listProductcodelog(query) {
-  return request({
-    url: '/business/productcodelog/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询产品码修改日志详细
-export function getProductcodelog(id) {
-  return request({
-    url: '/business/productcodelog/' + id,
-    method: 'get'
-  })
-}
-
-// 新增产品码修改日志
-export function addProductcodelog(data) {
-  return request({
-    url: '/business/productcodelog',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改产品码修改日志
-export function updateProductcodelog(data) {
-  return request({
-    url: '/business/productcodelog',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除产品码修改日志
-export function delProductcodelog(id) {
-  return request({
-    url: '/business/productcodelog/' + id,
-    method: 'delete'
-  })
-}
+import request from '@/utils/request'
+
+// 查询产品码修改日志列表
+export function listProductcodelog(query) {
+  return request({
+    url: '/business/productcodelog/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询产品码修改日志详细
+export function getProductcodelog(id) {
+  return request({
+    url: '/business/productcodelog/' + id,
+    method: 'get'
+  })
+}
+
+// 新增产品码修改日志
+export function addProductcodelog(data) {
+  return request({
+    url: '/business/productcodelog',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改产品码修改日志
+export function updateProductcodelog(data) {
+  return request({
+    url: '/business/productcodelog',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除产品码修改日志
+export function delProductcodelog(id) {
+  return request({
+    url: '/business/productcodelog/' + id,
+    method: 'delete'
+  })
+}

+ 1156 - 0
zkqy-ui/src/views/amichi/planTask/inPlant2.vue

@@ -0,0 +1,1156 @@
+<template>
+  <el-card shadow="always" :body-style="{ padding: '10px' }">
+    <div class="app-container">
+      <!--查询表单-->
+      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
+        <el-form-item label="完成时间" prop="completiontime">
+          <el-date-picker
+            v-model="queryParams.completiontime"
+            type="date"
+            @keyup.enter.native="handleQueryDz"
+            format="yyyy 年 MM 月 dd 日"
+            value-format="yyyy-MM-dd"
+            placeholder="请输入完成时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="计划状态:" prop="taskStatus">
+          <el-select
+            v-model="queryParams.taskStatus"
+            placeholder="请选择生产状态"
+            clearable
+            filterable
+          >
+            <el-option
+              v-for="item in dict.type.tczt"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQueryDz">搜索</el-button>
+          <el-button icon="el-icon-refresh" size="mini" @click="resetQueryDz">重置</el-button>
+        </el-form-item>
+      </el-form>
+      <!-- 头部按钮 -->
+      <div class="mb8 btn-wrap">
+        <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="['amichi:tasks: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="['amichi:tasks: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="['amichi:tasks: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="['amichi:tasks:export']"
+            >导出</el-button>
+          </el-col>
+<!--          <el-col :span="1.5">-->
+<!--            <el-button-->
+<!--              :disabled="!selection.length"-->
+<!--              type="info"-->
+<!--              icon="el-icon-s-help"-->
+<!--              size="mini"-->
+<!--              @click="handleAuto"-->
+<!--            >自动排产</el-button>-->
+<!--          </el-col>-->
+          <right-toolbar
+            :showCount.sync="showCount"
+            :showSearch.sync="showSearch"
+            :counts="true"
+            @queryTable="getPlanList"
+          ></right-toolbar>
+        </el-row>
+      </div>
+      <!--表格 -->
+      <el-table
+        :data="tableData"
+        @selection-change="handleSelectionChange"
+        style="width: 100%;margin-top:20px">
+        <el-table-column
+          type="selection"
+          align="center"
+          width="55">
+        </el-table-column>
+        <el-table-column type="expand"  width="30">
+          <template slot-scope="scopes">
+            <el-table :data="scopes.row.onSiteProgramDetails" border
+                      style="width:calc(100% - 80px);float:right" id="child_tab">
+              <el-table-column
+                label="半成品编码"
+                align="center"
+                prop="itemCode"
+              > </el-table-column>
+              <el-table-column
+                label="半成品"
+                align="center"
+                prop="itemName"
+              >
+              </el-table-column>
+              <el-table-column
+                prop="modelMumber"
+                align="center"
+                label="型号"
+              >
+
+              </el-table-column>
+              <el-table-column
+                prop="specification"
+                align="center"
+                label="规格"
+              >
+              </el-table-column>
+              <el-table-column
+                prop="quantity"
+                align="center"
+                label="数量台"
+              >
+                <template v-slot="{ row, column }">
+                  <el-input
+                    v-if="rowIndex === row.index && columnIndex === column.index"
+                    v-model="row.quantity"
+                    @blur="hideInput()"
+                  >
+                  </el-input>
+                  <!-- 显示 -->
+                  <span v-else>{{ row.quantity }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column  label="备注"   prop="remark"  align="center">
+                <template v-slot="{ row, column }">
+                  <el-input
+                    v-if="rowIndex === row.index && columnIndex === column.index"
+                    v-model="row.remark"
+                    @blur="hideInput()"
+                  >
+                  </el-input>
+                  <!-- 显示 -->
+                  <span v-else>{{ row.remark }}</span>
+                </template>
+              </el-table-column>
+            </el-table>
+          </template>
+
+
+        </el-table-column>
+<!--        <el-table-column   label="序号" prop="id"  align="center" width="55"></el-table-column>-->
+        <el-table-column
+          label="物料编码"
+          align="center"
+          prop="completionTime">
+        </el-table-column>
+        <el-table-column
+          label="物料名称"
+          align="center"
+          prop="completionTime">
+        </el-table-column>
+          <el-table-column
+            label="物料型号"
+            align="center"
+            prop="completionTime">
+          </el-table-column>
+            <el-table-column
+              label="物料规格"
+              align="center"
+              prop="completionTime">
+            </el-table-column>
+        <el-table-column
+          label="生产时间"
+          align="center"
+          prop="completionTime">
+        </el-table-column>
+        <el-table-column
+          label="任务数量"
+          align="center"
+          prop="quantity">
+        </el-table-column>
+        <el-table-column
+          label="计划状态"
+          align="center"
+          prop="taskStatus">
+          <template  v-slot="scope">
+            <dict-tag  :options="dict.type.tczt" :value="scope.row.taskStatus"/>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="备注"
+          align="center"
+          prop="remark">
+        </el-table-column>
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+          <template slot-scope="scope">
+            <el-dropdown @command="(command)=>{handleCommand(command, scope.row)}">
+              <el-button type="warning">
+                操作<i class="el-icon-arrow-down el-icon--right"></i>
+              </el-button>
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item  icon="el-icon-edit"  command="handleUpdate">修改</el-dropdown-item>
+                <el-dropdown-item  icon="el-icon-delete"  command="handleDelete">删除</el-dropdown-item>
+                <el-dropdown-item  icon="el-icon-edit" v-if="scope.row.taskStatus==0" command="tc">投产</el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
+          </template>
+        </el-table-column>
+      </el-table>
+      <!-- 分页器 -->
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getPlanList"
+      />
+      <!-- 场内计划新增 :visible.sync="inPlanBoolean" -->
+      <el-dialog :title="inPlanTitle" width="1200px">
+        <el-form
+          :model="inPlanForm"
+          ref="inPlanForm"
+          :rules="inPlanFormRules"
+          label-width="100px"
+          :inline="true"
+          size="normal"
+        >
+          <el-row type="flex" class="row-bg" justify="space-between">
+              <el-col :span="8">
+                <el-form-item label="计划数量">
+                  <el-input v-model="inPlanForm.quantity" :disabled="true"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="计划生产时间">
+                  <el-date-picker
+                    v-model="inPlanForm.completionTime"
+                    type="date"
+                    format="yyyy 年 MM 月 dd 日"
+                    value-format="yyyy-MM-dd"
+                    placeholder="选择计划生产时间">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="备注">
+                  <el-input type="textarea" v-model="inPlanForm.remark"></el-input>
+                </el-form-item>
+              </el-col>
+          </el-row>
+          <!--复制一个table表格-->
+          <el-row class="">
+            <div class="cesiumTabRoot">
+              <el-table
+                :data="detailData"
+                border
+                :cell-class-name="tabCellClassName"
+                :row-class-name="tabRowClassName"
+                @cell-click="cellClick"
+                style="width:100%">
+                <!--订单明细-->
+                <el-table-column
+                  align="center"
+                  prop="itemId"
+                  width="50px"
+                >
+                </el-table-column>
+                <el-table-column
+                  align="center"
+                  label="半成品编码"
+                  prop="itemCode"
+                >
+                </el-table-column>
+                <el-table-column
+                  label="半成品"
+                  align="center"
+                  prop="itemName"
+                >
+                  <template v-slot="{ row, column }">
+                    <el-select v-model="row.itemName"  @change="productOptionsSelected(row)" filterable placeholder="请选择计划产品" v-if="rowIndex === row.index && columnIndex === column.index">
+                      <el-option
+                        v-for="item in productOptions"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="{value:item.value,label:item.label}">
+                      </el-option>
+                    </el-select>
+                    <!-- 显示 -->
+                    <span v-else>{{ row.itemName }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  prop="modelMumber"
+                  align="center"
+                  label="型号"
+                >
+
+                </el-table-column>
+                <el-table-column
+                  prop="specification"
+                  align="center"
+                  label="规格"
+                >
+                </el-table-column>
+                <el-table-column
+                  prop="quantity"
+                  align="center"
+                  label="数量台"
+                >
+                  <template v-slot="{ row, column }">
+                    <el-input
+                      v-if="rowIndex === row.index && columnIndex === column.index"
+                      v-model="row.quantity"
+                      @blur="hideInput()"
+                    >
+                    </el-input>
+                    <!-- 显示 -->
+                    <span v-else>{{ row.quantity }}</span>
+                  </template>
+                </el-table-column>
+
+                <el-table-column  label="备注"   prop="remark"  align="center">
+                  <template v-slot="{ row, column }">
+                    <el-input
+                      v-if="rowIndex === row.index && columnIndex === column.index"
+                      v-model="row.remark"
+                      @blur="hideInput()"
+                    >
+                    </el-input>
+                    <!-- 显示 -->
+                    <span v-else>{{ row.remark }}</span>
+                  </template>
+                </el-table-column>
+
+                <el-table-column
+                  align="center"
+                  fixed="right"
+                  label="操作">
+                  <template v-slot="scope">
+                    <el-button type="danger"  size="small" icon="el-icon-delete" @click.native.prevent="deleteRow(scope.$index, detailData)"></el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </el-row>
+          <el-row type="flex" class="row-bg" justify="space-between" style="margin-top: 20px" v-if="inPlanTitle!='修改厂内计划'">
+            <el-col  :span="10">
+            </el-col>
+            <el-col  :span="10">
+              <el-button type="primary" style="float: right" icon="el-icon-circle-plus" @click="addDetails">新增明细</el-button>
+            </el-col>
+          </el-row>
+        </el-form>
+        <template #footer>
+          <span>
+            <el-button type="info" @click="inPlanBoolean = false">取消</el-button>
+            <el-button type="primary" @click="inPlanConfirmHandler">确认</el-button>
+          </span>
+        </template>
+      </el-dialog>
+      <!--  0211 场内计划新增表单-->
+      <el-dialog :title="inPlanTitle" :visible.sync="inPlanBoolean" width="1200px">
+        <el-form
+          :model="inPlanForm"
+          ref="inPlanForm"
+          :rules="inPlanFormRules"
+          label-width="100px"
+          :inline="true"
+          size="normal"
+        >
+          <el-row type="flex" class="row-bg" justify="space-between">
+            <el-col :span="8">
+              <el-form-item label="物料编码" prop="materialCode">
+                <el-input v-model="inPlanForm.materialCode" :disabled="true" style="width: 218px"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="物料信息" prop="materialName">
+                <el-select v-model="inPlanForm.materialName" filterable  placeholder="请选择物料" @change="materialNameChange">
+                  <el-option
+                    v-for="item in productCategoryCollection"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.label">
+                    <span style="float: left">{{ item.label }}</span>
+<!--                    <span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span>-->
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="型号" prop="materialModel">
+                <el-select v-model="inPlanForm.materialModel" filterable  placeholder="请选择型号" @change="materialModelChange">
+                  <el-option
+                    v-for="item in productModelCollection"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.label">
+                    <span style="float: left">{{ item.label }}</span>
+<!--                    <span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span>-->
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="规格" prop="materialSpecification">
+                <el-select v-model="inPlanForm.materialSpecification" filterable @change="specificationChange" placeholder="请选择规格">
+                  <el-option
+                    v-for="item in productSpecificationCollection"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.label">
+                    <span style="float: left">{{ item.label }}</span>
+<!--                    <span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span>-->
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="生产时间" prop="productionTime">
+                <el-date-picker
+                  v-model="inPlanForm.productionTime"
+                  type="date"
+                  format="yyyy 年 MM 月 dd 日"
+                  value-format="yyyy-MM-dd"
+                  placeholder="选择计划生产时间">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="计划数量" prop="taskQuantity">
+                <el-input v-model="inPlanForm.taskQuantity" style="width: 218px"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row type="flex" class="row-bg" justify="space-between">
+            <el-col :span="24">
+              <el-form-item label="备注" prop="remarks">
+                <el-input type="textarea" v-model="inPlanForm.remarks" style="width: 990px" :rows="6"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <template #footer>
+          <span>
+            <el-button type="info" @click="inPlanBoolean = false">取消</el-button>
+            <el-button type="primary" @click="inPlanConfirmHandler">确认</el-button>
+          </span>
+        </template>
+      </el-dialog>
+
+      <!-- 自动排产 -->
+      <el-dialog title="自动排产" :visible.sync="autoShow" width="1200px">
+        <div class="noneHoveTable">
+           <!--物料清单表格-->
+          <el-table
+            :data="bomFormTableData"
+            style="width: 100%"
+            :row-class-name="tableRowClassName">
+            <el-table-column
+              prop="materialCode"
+              label="物料编码"
+              align="center">
+            </el-table-column>
+            <el-table-column
+              show-overflow-tooltip
+              prop="materialName"
+              label="物料名称"
+              align="center">
+            </el-table-column>
+            <el-table-column
+              prop="modelNumber"
+              align="center"
+              show-overflow-tooltip
+              label="型号">
+            </el-table-column>
+            <el-table-column
+              show-overflow-tooltip
+              prop="specification"
+              align="center"
+              label="规格">
+            </el-table-column>
+            <el-table-column
+              prop="amountOfMateria"
+              align="center"
+              label="需求量">
+            </el-table-column>
+            <el-table-column
+              prop="stockQuantity"
+              align="center"
+              label="物料库存量">
+            </el-table-column>
+          </el-table>
+        </div>
+        <template #footer>
+          <span>
+            <el-button type="info" @click="autoShow = false">取消</el-button>
+            <el-button type="primary" @click="autoConfirmHandler"
+              >确认</el-button
+            >
+          </span>
+        </template>
+      </el-dialog>
+      <!-- 投产表单-->
+      <el-dialog title="计划投产" :visible.sync="tcShow" width="1000px">
+        <el-form
+          :model="tcForm"
+          ref="tcForm"
+          :rules="tcFormRules"
+          label-width="100px"
+        >
+          <el-row type="flex" class="row-bg" justify="space-between">
+            <el-col :span="24">
+              <el-form-item label="流程模板" prop="processKey">
+                <el-select
+                  v-model="tcForm.processKey"
+                  placeholder="请选择流程模板类型"
+                  style="width: 880px"
+                >
+                  <el-option
+                    v-for="item in listProcess"
+                    :key="item.resultMap.value"
+                    :label="item.resultMap.processName"
+                    :value="item.resultMap.processKey"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row type="flex" class="row-bg" justify="space-between">
+            <el-col :span="24">
+              <el-form-item label="任务名称" prop="planName">
+                <el-input v-model="tcForm.planName" placeholder="请输入任务名称" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row type="flex" class="row-bg" justify="space-between">
+            <el-col :span="12">
+              <el-form-item label="投产数量" prop="quantity">
+                <el-input v-model="tcForm.quantity" placeholder="请输入投产数量" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="预计生产时间" prop="completiontime">
+                <el-input v-model="tcForm.completiontime" placeholder="请输入预计生产时间" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+
+        <template #footer>
+          <span>
+            <el-button  @click="tcShow=false">取消投产</el-button>
+            <el-button type="primary" @click="confirmedCommissioning">确认投产</el-button
+            >
+          </span>
+        </template>
+      </el-dialog>
+    </div>
+  </el-card>
+</template>
+<script>
+
+import {
+  addInstruction,
+  getPlanOne,
+  addOnSiteProgramDetails,
+  getOnSiteProgramDetailsInfoVo,
+  updateOnSiteProgramDetails,
+  deleteOnSiteProgramDetailsVoById,
+  semiFinishedListInventory,
+  inPlanAutomaticScheduling
+
+} from "@/api/amichi/planTask/index";
+//新增场内计划信息
+import {addInformation,listInformation} from "@/api/amichi/indoorPlanInformation/information.js";
+import {listTableData,btnCommonApi} from "@/api/tablelist/commonTable.js";
+import { getToken } from "@/utils/auth";
+import {productDataList} from "@/api/amichi/BOMList";
+import {delExportproductionscheduling} from "@/api/amichi/productionscheduling/exportproductionscheduling";
+  import {productClassification,typeClassification,specificationClassification,queryMaterialCode} from "@/api/amichi/indoorMaterialInformation/information";
+
+
+export default {
+  name: "listInfo",
+  dicts: ["schedule_type","tczt","scheduling_state"],
+  components: {
+  },
+  data() {
+    return {
+      productModelCollection:[],
+      productCategoryCollection: [],
+      productSpecificationCollection:[],
+      value: '',
+      productOptions:[],
+      // 行index
+      rowIndex: null,
+      // 列index
+      columnIndex: null,
+      inPlanForm:{
+        "materialCode":null,
+        "materialName":null,
+        "materialModel":null,
+        "materialSpecification":null,
+        "productionTime":null,
+        "taskQuantity":null,
+        "productDescription":null,
+        "remarks":null
+      },
+      inPlanFormRules: {
+        materialName: [
+          { required: true, message: '请选择物料名称', trigger: 'change' }
+        ],
+        materialModel: [
+          { required: true, message: '请选择物料型号', trigger: 'change' }
+        ],
+        materialSpecification: [
+          { required: true, message: '请选择物料规格', trigger: 'change' }
+        ],
+        productionTime: [
+          { required: true, message: '请输入生产时间', trigger: 'blur' }
+        ],
+        taskQuantity: [
+          { required: true, message: '请输入生产数量', trigger: 'blur' }
+        ]
+      },
+      inPlanTitle:"",
+      inPlanBoolean:false,
+      bomFormTableData: [],
+      showCount:false,
+      tableDatatableData:[],
+      planOne:{},
+      listProcess:[],
+      tcForm:{
+        completiontime:""
+      },
+      tcFormRules:{
+        processKey: [
+          { required: true, message: '请选择流程模版', trigger: 'change' }
+        ],
+        planName: [
+          { required: true, message: '请输入任务名称', trigger: 'blur' }
+        ]
+      },
+      tcShow:false,
+      showSearch:true,
+      // 自动排产数据  start
+      autoShow: false,
+      autoForm: {
+        schedulingType: "",
+      },
+      autoFormRules: {
+        schedulingType: [
+          { required: true, message: "请选择排产类型", trigger: "change" },
+        ],
+      },
+      // 自动排产数据  end
+      QueryfromLoading: false,
+      selection: [], //选中数组
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 弹出层标题
+      title: "",
+      // 表单参数
+      form: {},
+      rules: {},
+      // excel共通导入数据
+      upload: {
+        // 是否显示弹出层
+        open: false,
+        // 弹出层标题(
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API1 + "common/uploadData",
+      },
+      selectionString:[],
+      // 排序方式 默认降序
+      sortOrder: true,
+      // 共通查询参数接受子组件的参数
+      queryParams: {
+        pageNum: 1, // 第几页
+        pageSize: 10, // 每页大小
+        orderByColumn: "", // 根据某列排序
+        isAsc: "", // desc(降序)或 asc(升序)
+        planType:"1", //场内计划
+        materialName:"", //物料名称
+        model:"", //型号
+        specification:"" //规格
+      },
+      detailData:[],
+    };
+  },
+  watch: {
+    detailData: {
+      handler: function() {
+        console.log("hmc");
+        this.updateTotalQuantity();
+      },
+      deep: true,
+    },
+  },
+  created() {
+    //查询表格数据
+    this.getPlanList(this.queryParams);
+
+  },
+  mounted() {
+
+  },
+  methods: {
+    //物料名称选择查询型号列表下拉数据
+    materialNameChange(){
+      //型号置空
+      this.$set(this.inPlanForm,"materialModel","");
+      //规格置空
+      this.$set(this.inPlanForm,"materialSpecification","");
+      //型号置空
+      this.queryParams.Model="";
+
+      this.productModelCollection=null;
+      this.queryParams.materialName=this.inPlanForm.materialName
+      typeClassification(this.queryParams).then(res => {
+        this.productModelCollection=res.data;
+      })
+    },
+    //型号切换函数
+    materialModelChange(){
+      //型号改变-清空规格下拉框
+      this.$set(this.inPlanForm,"materialSpecification","");
+      //规格list置空
+      this.productSpecificationCollection=null;
+      //赋值名称
+      this.queryParams.materialName=this.inPlanForm.materialName
+      //赋值型号
+      this.queryParams.Model=this.inPlanForm.materialModel
+      //查询规格分类
+      specificationClassification(this.queryParams).then(res => {
+        this.productSpecificationCollection=res.data;
+      })
+    },
+    //主要是为了回显,物料编码.
+    specificationChange(){
+      console.log("规格查找变化")
+      //查询规格分类
+      let obj={
+        "materialName":this.inPlanForm.materialName,
+        "model":this.inPlanForm.materialModel,
+        "specification":this.inPlanForm.materialSpecification
+      }
+      //查询物料信息
+      queryMaterialCode(obj).then(res => {
+        console.log(res.data.materialCode,"abcdfaskldfjlaksdjflaksdjfaklsdfjasdfadfdfasdf");
+        this.$set(this.inPlanForm,"materialCode",res.data.materialCode);
+      })
+    },
+    //查询场内计划物料名称分类
+    productClassification(){
+      productClassification(this.queryParams).then(res => {
+        this.productCategoryCollection=res.data;
+      })
+    },
+    //计算总条数
+    calculateTotalQuantity() {
+      console.log(this.detailData.length,"mdzk")
+      if(this.detailData.length<=0){
+        let totalQuantity = 0;
+        return totalQuantity;
+      }else {
+        let totalQuantity = 0;
+        this.detailData.forEach(item => {
+          if (item.hasOwnProperty('quantity')) {
+            totalQuantity += parseInt(item.quantity);
+          }
+        });
+        return totalQuantity;
+      }
+    },
+    //更新总条数
+    updateTotalQuantity() {
+      console.log(this.calculateTotalQuantity())
+      this.$set(this.inPlanForm,"quantity",this.calculateTotalQuantity());
+    },
+    //查询半成品列表信息
+    productDataList(){
+
+      productDataList().then(res=>{
+        const transformedData = res.data.map(item => ({
+          label: item.materialName,
+          value: item.id,
+          modelNumber: item.modelNumber,
+          specification: item.specification,
+          itemCode: item.materialCode
+        }));
+        this.productOptions=transformedData;
+      })
+    },
+    //产品选择下拉框
+    productOptionsSelected(row){
+      console.log(row);
+      row.itemId=row.itemName.value;
+      row.itemName= row.itemName.label;
+      //找到,
+      console.log(this.productOptions)
+      const foundObject = this.productOptions.find(obj => obj.value == row.itemId && obj.label == row.itemName);
+      console.log(foundObject);
+      //行规格,行型号
+      row.modelMumber=foundObject.modelNumber
+      row.specification=foundObject.specification
+      row.itemCode=foundObject.itemCode
+    },
+    //删除一行
+    deleteRow(index, rows) {
+      rows.splice(index, 1);
+    },
+    // 给表格单元格数据添加列下标
+    tabCellClassName({ column, columnIndex }) {
+      column.index = columnIndex + 1;
+    },
+    // 表格行class-name
+    tabRowClassName({ row, rowIndex }) {
+      row.index = rowIndex + 1;
+    },
+    // 点击表格单元格编辑
+    cellClick(row, column) {
+      this.rowIndex = row.index;
+      this.columnIndex = column.index;
+    },
+    // 多选框选中数据
+    handleSelectionChange(selectionString) {
+      //过滤出是否是选了,已经排产的数据
+      this.selectionString=selectionString
+      this.ids = selectionString.map(item => item.id)
+      this.selection=selectionString.map(item => item.id)
+      this.single = selectionString.length!==1
+      this.multiple = !selectionString.length
+    },
+    // 自动排产确认回调
+    autoConfirmHandler() {
+      // this.$refs.autoForm.validate(async (valid) => {
+      //   if (valid) {
+          //走生成采购单逻辑
+              //过滤出来需求量大于库存量的物料信息
+          // const outOfStockProducts = this.bomFormTableData.filter(product => product.stockQuantity < product.amountOfMateria);
+          // console.log(outOfStockProducts)
+          // this.autoForm.bomFormTableDataS=outOfStockProducts;
+          // //走排产逻辑
+          // this.autoForm.planIds = this.selection;
+          // console.log(this.autoForm);
+          inPlanAutomaticScheduling(this.selection).then(res=>{
+            if (res.code == 200) {
+              //查询表格数据
+              this.getPlanList(this.queryParams);
+              this.$message.success("排产成功");
+              this.autoShow = false;
+            } else {
+              this.$message.error(res.msg);
+            }
+          })
+    },
+    // 自动排产回调
+    handleAuto() {
+      this.autoShow = true;
+      //判断是否排过产了
+      // let result = this.selectionString.filter(obj => String(obj.taskStatus) != "2");
+      // if(result.length>0){
+      //   let strArry=[]
+      //   result.forEach(item=>{
+      //     strArry.push(item.planNumber)
+      //   });
+      //   this.$message.warning("计划编号: "+strArry.join(",")+"不是待排产状态,不能重新排产");
+      //   return;
+      // }
+
+
+      //查询当前选择计划的物料清单信息
+      semiFinishedListInventory(JSON.stringify(this.selection)).then(res=>{
+        console.log(res.code==20001);
+        if(res.code==20001){
+          this.$message.warning(res.msg);
+          return;
+        }else {
+          console.log(res);
+          //
+          this.bomFormTableData=res.data;
+          this.autoShow = true;
+        }
+      })
+    },
+    //物料不够就变红
+    tableRowClassName({row, rowIndex}) {
+      if (row.amountOfMateria > row.stockQuantity) {
+        return 'warning-row';
+      }
+      return '';
+    },
+    //确认投产
+    confirmedCommissioning() {
+      this.$refs["tcForm"].validate((valid) => {
+        if (valid) {
+          let objParam = {
+            "basicMap": {
+              btnKey: "69e23221-5054-4f93-84c5-ba5cb9efd4c2",
+              btnType: "INITIATED",
+              tableName: "production_planning_management",
+              visible:true
+            },
+            btnParametersMap: {task_status: "1"},
+            commMap:{
+              process_key: this.tcForm.processKey,
+              plan_name:this.tcForm.planName,
+            },
+            conditionMap: {id:  this.tcForm.id}
+          };
+          console.log(objParam);
+          btnCommonApi(objParam).then(res=>{
+            console.log(res);
+            if(res.code=200){
+              this.$modal.msgSuccess("投产成功");
+              this.getPlanList();
+              this.tcShow=false;
+            }
+          })
+        } else {
+          return false;
+        }
+      });
+
+
+    },
+    handleExport(){},
+    handleDelete(row){
+      //删除场内排产计划
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除场内为"' + ids + '"的数据项?').then(function() {
+        return deleteOnSiteProgramDetailsVoById(ids);
+      }).then(() => {
+        //查询表格数据
+        this.getPlanList(this.queryParams);
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    //下拉菜单点击事件
+    handleCommand(command, row) {
+      switch (command) {
+        case "handleUpdate":
+          this.handleUpdate(row)
+          break;
+        case "handleDelete":
+          this.handleDelete(row)
+          break;
+        case "tc":
+          this.tc(row)
+          break;
+        default:
+          break;
+      }
+    },
+    //投产
+    tc(row){
+      console.log(row);
+      if(row.taskStatus==2){
+        this.$modal.msgWarning("当前计划未排产请先排产");
+        return;
+      }
+      this.tcShow=true;
+      this.queryProcessTemplate();
+      this.getPlanOne({"id":row.id});
+    },
+    //查询一条计划信息
+    getPlanOne(obj){
+      getPlanOne(obj).then(res => {
+         console.log(res);
+         this.planOne=res.data;
+         this.tcForm=res.data;
+         this.tcForm.completiontime=res.data.completionTime
+      })
+    },
+    //查询流程模板
+    queryProcessTemplate(){
+      console.log(this.queryParams.basicMap)
+      let myQueryParams={
+        basicMap:{},
+        queryMap:{
+          del_flag:'0',
+          process_version:'0'
+        }
+      };
+      myQueryParams.basicMap={
+        tableName:'bpm_process'
+      };
+      listTableData(myQueryParams).then(res => {
+        console.log(res.data)
+        this.listProcess=res.rows;
+      })
+    },
+    //新增计划
+    handleAdd(){
+      this.inPlanForm={};
+      this.inPlanBoolean=true;
+      this.inPlanTitle="新增计划"
+      this.productClassification();
+    },
+    handleUpdate(row){
+      console.log(row);
+      this.inPlanBoolean=true;
+      this.inPlanTitle="修改计划"
+      this.$set(this.inPlanForm,"quantity",row.quantity);
+      this.$set(this.inPlanForm,"remark",row.quantity);
+      this.$set(this.inPlanForm,"planNumber",row.planNumber);
+      this.$set(this.inPlanForm,"taskStatus",row.taskStatus);
+      this.$set(this.inPlanForm,"completionTime",row.completionTime);
+      this.$set(this.inPlanForm,"id",row.id);
+      this.detailData=row.onSiteProgramDetails;
+    },
+    inPlanConfirmHandler(){
+      console.log("厂内计划新增确认")
+      console.log(this.inPlanForm);
+      if(this.inPlanTitle=="新增计划"){
+        this.$refs.inPlanForm.validate(flag => {
+          //校验表单是否通过
+          addInformation(this.inPlanForm).then(res=>{
+            if(res.code=200){
+              this.$modal.msgSuccess("新增场内计划成功");
+              this.inPlanBoolean=false;
+              //查询表格数据
+              this.getPlanList(this.queryParams);
+            }
+          })
+        })
+      }else {
+        // let argument={"onSiteProgramDetails":this.detailData,...this.inPlanForm,};
+        // updateOnSiteProgramDetails(argument).then(res=>{
+        //   console.log(res);
+        //   if(res.code=200){
+        //     this.$modal.msgSuccess("修改场内计划成功");
+        //     this.inPlanBoolean=false;
+        //     //查询表格数据
+        //     this.getPlanList(this.queryParams);
+        //   }
+        // })
+      }
+
+    },
+    //新增明细
+    addDetails(){
+      this.detailData.push(
+        {
+          "itemId":"",
+          "itemName":"",
+          "modelMumber":"",
+          "specification":"",
+          "quantity":0,
+          "manHour":"",
+          "isCompleteMaterials":"",
+          "remark":"",
+        }
+      );
+    },
+    //计划列表渲染
+    getPlanList(){
+      listInformation(this.queryParams).then((res) => {
+        console.log(res.data);
+        this.tableData=res.rows;
+        this.total = res.total;
+      });
+    },
+    // 表格input失去焦点
+    hideInput(a,b,c,d) {
+      this.rowIndex = null;
+      this.columnIndex = null;
+    },
+    /** 重置按钮操作 */
+    resetQueryDz() {
+      this.resetForm("queryForm");
+      this.handleQueryDz();
+      this.getPlanList(this.queryParams);
+    },
+    /** 搜索按钮操作 */
+    handleQueryDz() {
+      this.queryParams.pageNum = 1;
+      this.getPlanList(this.queryParams);
+    },
+
+  }
+};
+</script>
+
+<style scoped lang="scss">
+.dialog_loading {
+  display: flex;
+  justify-content: center;
+  width: 100%;
+  font-size: 30px;
+}
+
+.el-tooltip__popper{
+   max-width:20%;
+ }
+.el-tooltip__popper,.el-tooltip__popper.is-dark{
+  background:rgb(48, 65, 86) !important;
+  color: #fff !important;
+  line-height: 24px;
+}
+
+ ::v-deep .el-table .warning-row{
+  background: red !important;
+   //color: #fff;
+}
+
+ ::v-deep .el-table .success-row {
+  background: red !important;
+   //color: #fff;
+}
+
+/* 修改鼠标经过表格的颜色 */
+.noneHoveTable  .el-table--enable-row-hover .el-table__body tr:hover>td{
+  background-color: #FAFAFA !important;
+}
+</style>

+ 45 - 11
zkqy-ui/src/views/amichi/planTask/salesPlan.vue

@@ -136,6 +136,17 @@
               @click="rkkdy"
             >入库卡打印</el-button>
           </el-col>
+          <el-col :span="1.5" v-show="queryParams.tabPosition==1">
+            <el-button
+              type="success"
+              plain
+              icon="el-icon-edit"
+              size="mini"
+              :disabled="multipleflag"
+              @click="xzdj"
+            >修正单据</el-button>
+          </el-col>
+
           <el-col :span="1.5" v-show="queryParams.tabPosition==2">
             <el-button
               type="primary"
@@ -586,7 +597,13 @@
 import {addInstruction, getPlanList,getPlanOne,viewPlannedMaterialStatus } from "@/api/amichi/planTask/index";
 import {listTableData,btnCommonApi} from "@/api/tablelist/commonTable.js";
 import { getToken } from "@/utils/auth";
-import {jdProductionOrderPull,jdProductionWeldPlanOrderPullApi, listProductionCardFlow} from "@/api/amichi/productionCardFlow/productionCardFlow";
+import {
+  jdProductionOrderPull,
+  jdProductionWeldPlanOrderPullApi,
+  listProductionCardFlow,
+  removeMistakeDocument
+} from "@/api/amichi/productionCardFlow/productionCardFlow";
+
 
 
 export default {
@@ -605,6 +622,7 @@ export default {
         pageNum: 1,
         pageSize: 50,
       },
+      selectedList:[],
       flowCardOpen:false,
       bomFormTableData: [],
       showCount:false,
@@ -669,6 +687,7 @@ export default {
         pageSize: 50, // 每页大小
         ids:[]
       },
+      multipleflag: false,
       selectIds:[],
       qtTotal:0,
       selectionString:[],
@@ -709,6 +728,19 @@ export default {
 
   },
   methods: {
+    xzdj(){
+      console.log("修正单据");
+      //删除错误单据从新拉取
+      console.log(this.selectedList)
+      removeMistakeDocument(JSON.stringify(this.selectedList)).then(res=>{
+        if(res.code==200){
+          this.pullPlan();
+          this.$message.success("修正单据成功");
+        }else{
+          this.$message.error(res.msg);
+        }
+      })
+    },
     dylzkdb(){
       console.log("打印流转卡")
       if(this.selectIds.length<=0){
@@ -809,12 +841,12 @@ export default {
       jdProductionOrderPull().then(response => {
          if(response.code==200){
            this.loading=false;
-           this.$message.success("拉取场内计划成功");
+           this.$message.success("拉取计划成功");
            //查询表格数据
            this.getPlanList(this.queryParams);
          }else {
            this.loading=false;
-           this.$message.warning("拉取场内计划失败");
+           this.$message.warning("拉取计划失败");
            //查询表格数据
            this.getPlanList(this.queryParams);
          }
@@ -840,18 +872,20 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selectionString) {
-      //过滤出是否是选了,已经排产的数据
-      this.selectionString=selectionString
-      this.ids = selectionString.map(item => item.id)
-      this.selection=selectionString.map(item => item.id)
-      this.single = selectionString.length!==1
-      this.multiple = !selectionString.length
+      // //过滤出是否是选了,已经排产的数据
+      // this.selectionString=selectionString
+      this.selectedList = selectionString.map(item => item.orderNumber)
+      // this.selection=selectionString.map(item => item.id)
+      // this.single = selectionString.length!==1
+      this.multipleflag = !this.selectedList.length
+      console.log("abc", this.selectedList);
+
     },
     // 多选框选中数据
     handleSelectionChangeTwo(selectionString) {
-      console.log(selectionString);
+      // console.log(selectionString);
       this.selectIds= selectionString.map(item=>item.demandDocument)
-      console.log(this.selectIds)
+      // console.log(this.selectIds)
       // this.selectionString=selectionString
       // this.ids = selectionString.map(item => item.id)
       // this.selection=selectionString.map(item => item.id)

二進制
zkqy-ui/src/views/amichi/print/2025年1月质量月报表.xlsx


+ 41 - 0
zkqy-ui/src/views/amichi/print/a.html

@@ -0,0 +1,41 @@
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Document</title>
+</head>
+<style>
+  *{
+    margin: 0mm auto;
+    padding: 0mm;
+  }
+  .boxa{
+     width: 40mm;
+     height: 30mm;
+     border: 1px solid black;
+     box-sizing: border-box;
+     display: flex;
+     justify-content: center;
+     align-items: center;
+  }
+  .aa{
+    width: 38mm;
+    height: 28mm;
+    border: 1px solid black;
+    margin: 0;
+    /* 打印分页 */
+    page-break-after: always;
+  }
+</style>
+<body>
+        <div class="boxa">
+            <div class="aa">
+              
+            </div>
+            <div class="aa">
+   
+            </div>
+        </div>
+</body>
+
+</html>

+ 331 - 0
zkqy-ui/src/views/amichi/print/a.vue

@@ -0,0 +1,331 @@
+<template>
+    <!--  入库卡大小的二维码-->
+    <div>
+      <div class="tools" style="width: 100%;height:80px;margin: 0 auto ">
+        <div style="width:800px;height:80px;display: flex; justify-content: space-between; align-items: center;margin: 0 auto">
+          <div style="width: 800px;height: 40px">
+            <pagination
+              v-show="total>0"
+              :total="total"
+              :page.sync="queryParams.pageNum"
+              :limit.sync="queryParams.pageSize"
+              @pagination="generateEmployeeCodeList"
+              :page-sizes="[9]"
+            />
+          </div>
+          <div style="width: 200px;height: 40px">
+            <el-button type="primary" icon="el-icon-search"  size="mini"  v-print="printViewInfo">打印</el-button>
+          </div>
+        </div>
+      </div>
+      <div class="base" id="printView" >
+        <div class="box" >
+          <div class="ygmboxfj">
+            <!--卡片-->
+            <div class="ygmbox" v-for="(item,index) in listDate">
+              <div class="ygmbox_top">
+                <div class="tpdiv">
+                      <img :src="item.images" class="imgYs"  alt="">
+                </div>
+              </div>
+              <div class="ygmbox_bottom">
+                <table  class="ygmbox_bottom_table">
+                  <tr>
+                    <td  class="xingming">姓名</td>
+                    <td  class="xingmingValue">{{item.personnelName}}</td>
+                  </tr>
+                  <tr>
+                    <td class="gdName">工段</td>
+                    <td class="gdValue">{{item.processName}}</td>
+                  </tr>
+                </table>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </template>
+  
+  <script>
+  import {generateEmployeeCodeList} from "@/api/amichi/planTask/planTaskDetails.js";
+  import Table from "@/views/dragform/tableList.vue";
+  
+  export default {
+    name: "rkadyPrint",
+    components: {Table},
+    data () {
+      return {
+        queryParams:{
+          pageNum: 1,
+          pageSize: 9,
+          userIds:[],
+        },
+        total:0,
+        listDate:[],
+        dialogVisible: false,
+        msg: "打印",
+        printViewInfo: {
+          id: "printView", //打印区域的唯一的id属性
+          // popTitle: '配置页眉标题', // 页眉文字 (不设置时显示undifined)(页眉页脚可以在打印页面的更多设置的选项中取消勾选)
+          // extraHead: '打印,印刷', // 最左上方的头部文字,附加在head标签上的额外标签,使用逗号分割
+          preview: false, // 是否启动预览模式,默认是false (开启预览模式ture会占满整个屏幕,不建议开启,除非业务需要)
+          // previewTitle: '预览的标题', // 打印预览的标题(预览模式preview为true时才显示)
+          // previewPrintBtnLabel: '预览结束,开始打印', // 打印预览的标题下方的按钮文本,点击可进入打印(预览模式preview为true时才显示)
+          zIndex: 20002, // 预览窗口的z-index,默认是20002,最好比默认值更高
+          previewBeforeOpenCallback (that) { console.log('正在加载预览窗口!'); console.log(that.msg, this) }, // 预览窗口打开之前的callback (预览模式preview为true时才执行) (that可以取到data里的变量值)
+          previewOpenCallback () { console.log('已经加载完预览窗口,预览打开了!') }, // 预览窗口打开时的callback (预览模式preview为true时才执行)
+          beforeOpenCallback () { console.log('开始打印之前!') }, // 开始打印之前的callback
+          openCallback () { console.log('执行打印了!') }, // 调用打印时的callback
+          closeCallback () { console.log('关闭了打印工具!') }, // 关闭打印的callback(无法区分确认or取消)
+          clickMounted () { console.log('点击v-print绑定的按钮了!') },
+          // url: 'http://localhost:8080/', // 打印指定的URL,确保同源策略相同
+          // asyncUrl (reslove) {
+          //   setTimeout(() => {
+          //     reslove('http://localhost:8080/')
+          //   }, 2000)
+          // },
+          standard: '',
+          extarCss: '',
+          isDataLoaded: false,
+        }
+      }
+    },
+    methods: {
+      //渲染表格内容
+      async generateEmployeeCodeList(){
+        let res = await generateEmployeeCodeList(this.queryParams)
+        if (res.code == 200) {
+          this.listDate = res.rows;
+          this.total = res.total;
+          this.isDataLoaded = true;
+        }
+      },
+    },
+    mounted() {
+    },
+    created(){
+      this.queryParams.userIds =this.$route.query.orderNumberSTwo;
+      console.log(this.queryParams.userIds,"1111111111111");
+      // let obj={"userIds":this.queryParams.orderNumberList}
+      // console.log(obj)
+      this.generateEmployeeCodeList();
+    },
+  }
+  
+  </script>
+  <style scoped>
+  /* 正常展示时的样式 */
+  ::v-deep .pagination-container {
+    margin-top: -10px;
+  }
+  
+  .base {
+    .page-break {
+      page-break-after: always;
+      position: relative;
+    }
+  
+    .tools {
+      margin-top: 10px;
+      display: flex;
+      justify-content: flex-end;
+      margin-bottom: 10px;
+    }
+  
+    .box {
+      font-size: 21px;
+      width: 800px;
+      margin-bottom: 10px;
+      margin: 0 auto;
+  
+      .ygmboxfj {
+        width: 800px;
+        margin: 0 auto;
+        display: flex;
+        justify-content: flex-start;
+        flex-wrap: wrap;
+  
+        .ygmbox {
+          width: 240px;
+          height: 315px;
+          border: 2px solid black;
+          margin-top: 20px;
+          margin-left: 19px;
+          .ygmbox_top {
+            width: 180px;
+            height: 180px;
+            margin: 0 auto;
+            margin-top: 30px;
+            .tpdiv {
+              width: 180px;
+              height: 180px;
+              margin-top: 27px;
+              .imgYs{
+                width: 180px;
+                height: 180px;
+              }
+            }
+          }
+          .ygmbox_bottom {
+            width: 240px;
+            height: 86px;
+            margin-top: 26px;
+            .ygmbox_bottom_table {
+              width: 99%;
+              text-align: center;
+              border-left: 0px;
+              border-right: 0px;
+              border-bottom: 0px;
+              tr {
+                td {
+                  height: 38px;
+                }
+                .xingming {
+                  width: 30%;
+                  border-top: 2px solid black;
+                  border-bottom: 2px solid black;
+                  border-right: 2px solid black
+                }
+                .xingming {
+                  width: 30%;
+                  border-top: 2px solid black;
+                  border-bottom: 2px solid black;
+                  border-right: 2px solid black
+                }
+                .xingmingValue {
+                  width: 40%;
+                  border-top: 2px solid black;
+                  border-bottom: 2px solid black
+                }
+                .gdName {
+                  width: 20%;
+                  border-right: 2px solid black
+                }
+                .gdValue {
+                  width: 30%;
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  /* 打印时的样式 */
+  @media print {
+    /* 隐藏不需要打印的元素 */
+    .tools, .pagination-container {
+      display: none !important;
+    }
+  
+    .base {
+      width: 40mm !important;
+      height: 30mm !important;
+      margin: 0 !important;
+      padding: 0 !important;
+    }
+  
+    .box {
+      width: 40mm !important;
+      height: 30mm !important;
+      margin: 0 !important;
+      padding: 0 !important;
+    }
+  
+    .ygmboxfj {
+      width: 40mm !important;
+      height: 30mm !important;
+      margin: 0 !important;
+      padding: 0 !important;
+      display: grid !important;  /* 使用grid布局 */
+      grid-template-columns: 40mm !important;  /* 固定列宽 */
+      grid-gap: 0 !important;
+      justify-content: center !important;
+      align-items: center !important;
+    }
+  
+    .ygmbox {
+      width: 38mm !important;
+      height: 28mm !important;
+      border: 1px solid black !important;
+      margin: 0 auto !important;  /* 水平居中 */
+      padding: 0 !important;
+      page-break-after: always !important;
+      page-break-inside: avoid !important;
+      position: relative !important;
+      display: flex !important;
+      justify-content: flex-start !important;
+      align-items: center !important;
+  
+      .ygmbox_top {
+        width: 24mm !important;
+        height: 24mm !important;
+        margin: 2mm !important;
+        padding: 0 !important;
+  
+        .tpdiv {
+          width: 24mm !important;
+          height: 24mm !important;
+          margin: 0 !important;
+          padding: 0 !important;
+          overflow: hidden !important;
+  
+          .imgYs {
+            width: 24mm !important;
+            height: 24mm !important;
+            display: block !important;
+            object-fit: contain !important;
+          }
+        }
+      }
+  
+      .ygmbox_bottom {
+        width: 28mm !important;
+        height: 10mm !important;
+        position: absolute !important;
+        right: 5mm !important;
+        top: 50% !important;  /* 垂直居中定位 */
+        transform: translateY(-50%) rotate(-90deg) !important;  /* 先垂直居中再旋转 */
+        transform-origin: right center !important;
+        display: flex !important;
+        align-items: center !important;
+  
+        .ygmbox_bottom_table {
+          width: 100% !important;
+          height: 100% !important;
+          border-collapse: collapse !important;
+          font-size: 5pt !important;
+          table-layout: fixed !important;
+  
+          tr {
+            height: 5mm !important;
+          }
+  
+          td {
+            border: 0.5px solid black !important;
+            padding: 0 !important;
+            text-align: center !important;
+            vertical-align: middle !important;
+            height: auto !important;
+          }
+  
+          .xingming, .gdName {
+            width: 35% !important;
+          }
+  
+          .xingmingValue, .gdValue {
+            width: 65% !important;
+          }
+        }
+      }
+    }
+  
+    @page {
+      size: 40mm 30mm;
+      margin: 0;
+    }
+  }
+  </style>
+  

+ 367 - 0
zkqy-ui/src/views/amichi/print/c.vue

@@ -0,0 +1,367 @@
+<template>
+    <!--  入库卡大小的二维码-->
+    <div>
+      <div class="tools" style="width: 100%;height:80px;margin: 0 auto ">
+        <div style="width:800px;height:80px;display: flex; justify-content: space-between; align-items: center;margin: 0 auto">
+          <div style="width: 800px;height: 40px">
+            <pagination
+              v-show="total>0"
+              :total="total"
+              :page.sync="queryParams.pageNum"
+              :limit.sync="queryParams.pageSize"
+              @pagination="generateEmployeeCodeList"
+              :page-sizes="[9]"
+            />
+          </div>
+          <div style="width: 200px;height: 40px">
+            <el-button type="primary" icon="el-icon-search"  size="mini"  v-print="printViewInfo">打印</el-button>
+          </div>
+        </div>
+      </div>
+      <div class="base" id="printView" >
+        <div class="box" >
+          <div class="ygmboxfj">
+            <!--卡片-->
+            <div class="ygmbox" v-for="(item,index) in listDate">
+              <div class="ygmbox_top">
+                <div class="tpdiv">
+                    <img :src="item.images" class="imgYs"  alt="">
+                </div>
+              </div>
+              <div class="ygmbox_bottom">
+              
+  
+                <table  class="ygmbox_bottom_table" border="0px">
+                  <tr>
+                    <td  class="xingming"><span>姓名</span></td>
+                    <td  class="xingmingValue"><span>{{item.personnelName}}</span></td>
+                  </tr>
+                  <tr>  
+                    <td class="gdName"><span>工段</span></td>
+                    <td class="gdValue"><span>{{item.processName}}</span></td>
+                  </tr>
+                </table>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </template>
+  
+  <script>
+  import {generateEmployeeCodeList} from "@/api/amichi/planTask/planTaskDetails.js";
+  import Table from "@/views/dragform/tableList.vue";
+  
+  export default {
+    name: "rkadyPrint",
+    components: {Table},
+    data () {
+      return {
+        queryParams:{
+          pageNum: 1,
+          pageSize: 9,
+          userIds:[],
+        },
+        total:0,
+        listDate:[],
+        dialogVisible: false,
+        msg: "打印",
+        printViewInfo: {
+          id: "printView", //打印区域的唯一的id属性
+          // popTitle: '配置页眉标题', // 页眉文字 (不设置时显示undifined)(页眉页脚可以在打印页面的更多设置的选项中取消勾选)
+          // extraHead: '打印,印刷', // 最左上方的头部文字,附加在head标签上的额外标签,使用逗号分割
+          preview: false, // 是否启动预览模式,默认是false (开启预览模式ture会占满整个屏幕,不建议开启,除非业务需要)
+          // previewTitle: '预览的标题', // 打印预览的标题(预览模式preview为true时才显示)
+          // previewPrintBtnLabel: '预览结束,开始打印', // 打印预览的标题下方的按钮文本,点击可进入打印(预览模式preview为true时才显示)
+          zIndex: 20002, // 预览窗口的z-index,默认是20002,最好比默认值更高
+          previewBeforeOpenCallback (that) { console.log('正在加载预览窗口!'); console.log(that.msg, this) }, // 预览窗口打开之前的callback (预览模式preview为true时才执行) (that可以取到data里的变量值)
+          previewOpenCallback () { console.log('已经加载完预览窗口,预览打开了!') }, // 预览窗口打开时的callback (预览模式preview为true时才执行)
+          beforeOpenCallback () { console.log('开始打印之前!') }, // 开始打印之前的callback
+          openCallback () { console.log('执行打印了!') }, // 调用打印时的callback
+          closeCallback () { console.log('关闭了打印工具!') }, // 关闭打印的callback(无法区分确认or取消)
+          clickMounted () { console.log('点击v-print绑定的按钮了!') },
+          // url: 'http://localhost:8080/', // 打印指定的URL,确保同源策略相同
+          // asyncUrl (reslove) {
+          //   setTimeout(() => {
+          //     reslove('http://localhost:8080/')
+          //   }, 2000)
+          // },
+          standard: '',
+          extarCss: '',
+          isDataLoaded: false,
+        }
+      }
+    },
+    methods: {
+      //渲染表格内容
+      async generateEmployeeCodeList(){
+        let res = await generateEmployeeCodeList(this.queryParams)
+        if (res.code == 200) {
+          this.listDate = res.rows;
+          this.total = res.total;
+          this.isDataLoaded = true;
+        }
+      },
+    },
+    mounted() {
+    },
+    created(){
+      this.queryParams.userIds =this.$route.query.orderNumberSTwo;
+      console.log(this.queryParams.userIds,"1111111111111");
+      // let obj={"userIds":this.queryParams.orderNumberList}
+      // console.log(obj)
+      this.generateEmployeeCodeList();
+    },
+  }
+  
+  </script>
+  <style scoped>
+  /* 正常展示时的样式 */
+  ::v-deep .pagination-container {
+    margin-top: -10px;
+  }
+  
+  .base {
+    .page-break {
+      page-break-after: always;
+      position: relative;
+    }
+  
+    .tools {
+      margin-top: 10px;
+      display: flex;
+      justify-content: flex-end;
+      margin-bottom: 10px;
+    }
+  
+    .box {
+      font-size: 21px;
+      width: 800px;
+      margin-bottom: 10px;
+      margin: 0 auto;
+  
+      .ygmboxfj {
+        width: 800px;
+        margin: 0 auto;
+        display: flex;
+        justify-content: flex-start;
+        flex-wrap: wrap;
+  
+        .ygmbox {
+          width: 240px;
+          height: 315px;
+          border: 2px solid black;
+          margin-top: 20px;
+          margin-left: 19px;
+          .ygmbox_top {
+            width: 180px;
+            height: 180px;
+            margin: 0 auto;
+            margin-top: 30px;
+            .tpdiv {
+              width: 180px;
+              height: 180px;
+              margin-top: 27px;
+              .imgYs{
+                width: 180px;
+                height: 180px;
+              }
+            }
+          }
+          .ygmbox_bottom {
+            width: 240px;
+            height: 86px;
+            margin-top: 26px;
+            .ygmbox_bottom_table {
+              width: 99%;
+              text-align: center;
+              border-left: 0px;
+              border-right: 0px;
+              border-bottom: 0px;
+              tr {
+                td {
+                  height: 38px;
+                }
+                .xingming {
+                  width: 30%;
+                  border-top: 2px solid black;
+                  border-bottom: 2px solid black;
+                  border-right: 2px solid black
+                }
+                .xingming {
+                  width: 30%;
+                  border-top: 2px solid black;
+                  border-bottom: 2px solid black;
+                  border-right: 2px solid black
+                }
+                .xingmingValue {
+                  width: 40%;
+                  border-top: 2px solid black;
+                  border-bottom: 2px solid black
+                }
+                .gdName {
+                  width: 20%;
+                  border-right: 2px solid black
+                }
+                .gdValue {
+                  width: 30%;
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  /* 打印时的样式 */
+  @media print {
+    /* 隐藏不需要打印的元素 */
+    .tools, .pagination-container {
+      display: none !important;
+    }
+  
+    .base {
+      width: 40mm !important;
+      height: 30mm !important;
+      margin: 0 !important;
+      padding: 0 !important;
+      display: flex !important;
+      justify-content: center !important;
+      align-items: center !important;
+    }
+  
+    .box {
+      width: 40mm !important;
+      height: 30mm !important;
+      margin: 0 !important;
+      padding: 0 !important;
+      display: flex !important;
+      justify-content: center !important;
+      align-items: center !important;
+    }
+  
+    .ygmboxfj {
+      width: 40mm !important;
+      height: 30mm !important;
+      margin: 0 auto !important;
+      padding: 0 !important;
+      display: flex !important;
+      justify-content: center !important;
+      align-items: center !important;
+    }
+  
+    .ygmbox {
+      width: 38mm !important;
+      height: 28mm !important;
+      border: 1px solid black !important;
+      margin: 0 !important;
+      padding: 0 !important;
+      position: relative !important;
+      display: flex !important;
+      justify-content: flex-start !important;
+      transform: translateY(1mm) !important;
+  
+      .ygmbox_top {
+        width: 30mm !important;  /* 调整为30mm */
+        height: 27.5mm !important;
+        margin: 0  !important;
+        padding: 0 !important;
+        box-sizing: border-box;
+        border-right: 1px solid black;
+        .tpdiv {
+          width: 24mm !important;
+          height: 24mm !important;
+          margin: 0 auto !important;
+          margin-top: 1.5mm !important;
+          padding: 0 !important;
+          overflow: hidden !important;
+          display: flex !important;
+          align-items: center !important;
+          justify-content: center !important;
+  
+          img {
+            width: 28mm !important;  /* 留1mm边距 */
+            height: 28mm !important;
+            object-fit: contain !important;
+          }
+        }
+      }
+  
+      .ygmbox_bottom {
+        width: 7.5mm !important;
+        height: 27.5mm !important;
+        margin: 0 !important;
+        padding: 0 !important;
+        position: absolute !important;
+        right: 0 !important;
+        top: 0 !important;
+  
+        .ygmbox_bottom_table {
+          width: 100% !important;
+          height: 100% !important;
+          border-collapse: collapse !important;
+          font-size: 4pt !important;
+          
+          tr {
+            height: 50% !important;
+          }
+  
+          td {
+            padding: 0 !important;
+            text-align: center !important;
+            vertical-align: middle !important;
+            position: relative !important;
+  
+            &.xingming, &.gdName {
+              width: 3mm !important;
+              text-align: center !important;
+              line-height: 3mm !important;
+              border-right: 0.5px solid black !important;
+              border-top: none !important;
+            }
+  
+            &.xingmingValue, &.gdValue {
+              width: 3mm !important;
+              text-align: center !important;
+              line-height: 3mm !important;
+              border-top: none !important;  /* 移除顶部边框 */
+            }
+  
+            span {
+              writing-mode: vertical-rl !important;  /* 改为从右向左的垂直书写 */
+              text-orientation: mixed !important;  /* 允许文字自然旋转 */
+              display: inline-block !important;
+              width: 100% !important;
+              height: 100% !important;
+              line-height: 1 !important;
+            }
+          }
+  
+          /* 添加边框 */
+          tr:first-child td {
+            border-bottom: 0.5px solid black !important;
+          }
+        }
+      }
+    }
+  
+    /* 确保容器大小正确 */
+    .base, .box, .ygmboxfj {
+      width: 40mm !important;
+      height: 30mm !important;
+      margin: 0 auto !important;
+      padding: 0 !important;
+      display: flex !important;
+      justify-content: center !important;
+      align-items: center !important;
+    }
+  
+    @page {
+      size: 40mm 30mm !important;
+      margin: 0 !important;
+    }
+  }
+  </style>
+  

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

@@ -1856,7 +1856,7 @@ export default {
               btnName: "编辑",
               btnType: "myEdit",
               btnIcon: "",
-              btnShowCondition:'[{"fieldName":"sale_order.status","mark":"3","refValue":"12"}]'
+              btnShowCondition:""
                 ,
               btnHasPermi: "huaxian:xsglddgl:INSERT",
               children: [],
@@ -1877,7 +1877,7 @@ export default {
               btnIcon: "",
               // btnShowCondition: "[]",
               btnShowCondition:
-                '[{"fieldName":"sale_order.status","mark":"6","refValue":"11"},{"fieldName":"sale_order.status","mark":"3","refValue":"12"}]',
+                '[{"fieldName":"sale_order.status","mark":"6","refValue":"11"}]',
               btnHasPermi: "huaxian:xsglddgl:INSERT",
               children: [],
             },
@@ -1887,7 +1887,7 @@ export default {
               btnIcon: "",
               // btnShowCondition: "[]",
               btnShowCondition:
-                '[{"fieldName":"sale_order.status","mark":"3","refValue":"1"},{"fieldName":"sale_order.status","mark":"3","refValue":"2"},{"fieldName":"sale_order.status","mark":"3","refValue":"8"},{"fieldName":"sale_order.status","mark":"3","refValue":"7"},{"fieldName":"sale_order.status","mark":"3","refValue":"11"},{"fieldName":"sale_order.status","mark":"3","refValue":"12"}]',
+                '[{"fieldName":"sale_order.status","mark":"3","refValue":"1"},{"fieldName":"sale_order.status","mark":"3","refValue":"2"},{"fieldName":"sale_order.status","mark":"3","refValue":"8"},{"fieldName":"sale_order.status","mark":"3","refValue":"7"},{"fieldName":"sale_order.status","mark":"3","refValue":"11"}]',
               btnHasPermi: "huaxian:xsglddgl:INSERT",
               children: [],
             },
@@ -1897,7 +1897,7 @@ export default {
               btnIcon: "",
               // btnShowCondition: "[]",
               btnShowCondition:
-                '[{"fieldName":"sale_order.status","mark":"3","refValue":"1"},{"fieldName":"sale_order.status","mark":"3","refValue":"2"},{"fieldName":"sale_order.status","mark":"3","refValue":"8"},{"fieldName":"sale_order.status","mark":"3","refValue":"7"},{"fieldName":"sale_order.status","mark":"3","refValue":"11"},{"fieldName":"sale_order.status","mark":"3","refValue":"12"}]',
+                '[{"fieldName":"sale_order.status","mark":"3","refValue":"1"},{"fieldName":"sale_order.status","mark":"3","refValue":"2"},{"fieldName":"sale_order.status","mark":"3","refValue":"8"},{"fieldName":"sale_order.status","mark":"3","refValue":"7"},{"fieldName":"sale_order.status","mark":"3","refValue":"11"}]',
               // ,{"fieldName":"sale_order.status","mark":"3","refValue":"3"}  3待生产
               btnHasPermi: "huaxian:xsglddgl:INSERT",
               children: [],
@@ -1915,7 +1915,7 @@ export default {
               btnType: "myDelete",
               btnIcon: "",
               btnShowCondition:
-                '[{"fieldName":"sale_order.status","mark":"3","refValue":"2"},{"fieldName":"sale_order.status","mark":"3","refValue":"3"},{"fieldName":"sale_order.status","mark":"3","refValue":"4"},{"fieldName":"sale_order.status","mark":"3","refValue":"5"},{"fieldName":"sale_order.status","mark":"3","refValue":"6"},{"fieldName":"sale_order.status","mark":"3","refValue":"8"},{"fieldName":"sale_order.status","mark":"3","refValue":"9"},{"fieldName":"sale_order.status","mark":"3","refValue":"11"},{"fieldName":"sale_order.status","mark":"3","refValue":"12"}]',
+                '[{"fieldName":"sale_order.status","mark":"3","refValue":"2"},{"fieldName":"sale_order.status","mark":"3","refValue":"3"},{"fieldName":"sale_order.status","mark":"3","refValue":"4"},{"fieldName":"sale_order.status","mark":"3","refValue":"5"},{"fieldName":"sale_order.status","mark":"3","refValue":"6"},{"fieldName":"sale_order.status","mark":"3","refValue":"8"},{"fieldName":"sale_order.status","mark":"3","refValue":"9"},{"fieldName":"sale_order.status","mark":"3","refValue":"11"}]',
               children: [],
               btnHasPermi: "huaxian:xsglddgl:INSERT",
             },
@@ -1924,7 +1924,7 @@ export default {
               btnType: "myComplate",
               btnIcon: "",
               btnShowCondition:
-                '[{"fieldName":"sale_order.status","mark":"6","refValue":"9"},{"fieldName":"sale_order.status","mark":"3","refValue":"11"},{"fieldName":"sale_order.status","mark":"3","refValue":"12"}]',
+                '[{"fieldName":"sale_order.status","mark":"6","refValue":"9"},{"fieldName":"sale_order.status","mark":"3","refValue":"11"}]',
               children: [],
               btnHasPermi: "huaxian:xsglddgl:INSERT",
             },
@@ -1932,7 +1932,7 @@ export default {
               btnName: "异常结束",
               btnType: "myEror",
               btnIcon: "",
-              btnShowCondition:'[{"fieldName":"sale_order.status","mark":"3","refValue":"1"},{"fieldName":"sale_order.status","mark":"3","refValue":"2"},{"fieldName":"sale_order.status","mark":"3","refValue":"8"},{"fieldName":"sale_order.status","mark":"3","refValue":"7"},{"fieldName":"sale_order.status","mark":"3","refValue":"11"},{"fieldName":"sale_order.status","mark":"3","refValue":"12"}]',
+              btnShowCondition:"",
               children: [],
               btnHasPermi: "huaxian:xsglddgl:INSERT",
             }

+ 1 - 0
zkqy-ui/vue.config.js

@@ -38,6 +38,7 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
+
         // target: `http://192.168.128.171:8066`, //实验室
         // target: `http://192.168.2.135:8066`, //铨一开发
         // target: `http://192.168.3.17:8066`, //化纤服务器