Kaynağa Gözat

feat:0925代码提交

hmc 8 ay önce
ebeveyn
işleme
2fd58efd65
100 değiştirilmiş dosya ile 5650 ekleme ve 113 silme
  1. 1 5
      zkqy-admin/pom.xml
  2. 1 3
      zkqy-admin/src/main/java/com/zkqy/ZkqyServletInitializer.java
  3. 2 0
      zkqy-common/src/main/java/com/zkqy/common/core/domain/BaseEntity.java
  4. 27 0
      zkqy-common/src/main/java/com/zkqy/common/utils/DateUtils.java
  5. 0 6
      zkqy-custom-business/pom.xml
  6. 1 1
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/MaterielController.java
  7. 0 1
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleProductsController.java
  8. 3 0
      zkqy-framework/src/main/java/com/zkqy/framework/sso_oauth2/controller/ThirdPartLoginController.java
  9. 5 0
      zkqy-fujian-amichi/pom.xml
  10. 113 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/ExceptionReportInformationSheetController.java
  11. 9 7
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/PlanTaskDetailsController.java
  12. 129 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/ProductionCardFlowController.java
  13. 113 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/ProductionOrderListController.java
  14. 1 1
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/ReportInformationSheetController.java
  15. 113 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/TeamInformationController.java
  16. 113 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/TeamPersonnelChangeInformationController.java
  17. 113 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/TeamPersonnelInformationController.java
  18. 14 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/WarehouseEntryInformationController.java
  19. 266 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/ExceptionReportInformationSheet.java
  20. 195 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/ProductionCardFlow.java
  21. 293 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/ProductionOrderList.java
  22. 44 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/ReportInformationSheet.java
  23. 26 1
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/StationInformation.java
  24. 176 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/TeamInformation.java
  25. 166 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/TeamPersonnelChangeInformation.java
  26. 207 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/TeamPersonnelInformation.java
  27. 33 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/GenerateProcessFlowCardVo.java
  28. 32 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/ProcessWarehousingVo.java
  29. 63 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ExceptionReportInformationSheetMapper.java
  30. 70 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ProductionCardFlowMapper.java
  31. 63 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ProductionOrderListMapper.java
  32. 2 1
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ProductionPlanningManagementMapper.java
  33. 7 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ReportInformationSheetMapper.java
  34. 7 2
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/StationInformationMapper.java
  35. 63 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/TeamInformationMapper.java
  36. 64 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/TeamPersonnelChangeInformationMapper.java
  37. 63 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/TeamPersonnelInformationMapper.java
  38. 61 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IExceptionReportInformationSheetService.java
  39. 69 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IProductionCardFlowService.java
  40. 61 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IProductionOrderListService.java
  41. 2 1
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IReportInformationSheetService.java
  42. 61 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/ITeamInformationService.java
  43. 61 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/ITeamPersonnelChangeInformationService.java
  44. 61 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/ITeamPersonnelInformationService.java
  45. 10 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IWarehouseEntryInformationService.java
  46. 96 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/ExceptionReportInformationSheetServiceImpl.java
  47. 129 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/ProductionCardFlowServiceImpl.java
  48. 98 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/ProductionOrderListServiceImpl.java
  49. 74 2
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/ReportInformationSheetServiceImpl.java
  50. 200 19
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/StationInformationServiceImpl.java
  51. 97 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/TeamInformationServiceImpl.java
  52. 103 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/TeamPersonnelChangeInformationServiceImpl.java
  53. 126 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/TeamPersonnelInformationServiceImpl.java
  54. 59 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/WarehouseEntryInformationServiceImpl.java
  55. 13 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/utils/AmichiCommissionNumberGenerator.java
  56. 49 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/utils/WarehouseEntryNumberGenerator.java
  57. 152 0
      zkqy-fujian-amichi/src/main/resources/mapper/ExceptionReportInformationSheetMapper.xml
  58. 146 0
      zkqy-fujian-amichi/src/main/resources/mapper/ProductionCardFlowMapper.xml
  59. 161 0
      zkqy-fujian-amichi/src/main/resources/mapper/ProductionOrderListMapper.xml
  60. 2 3
      zkqy-fujian-amichi/src/main/resources/mapper/ProductionPlanningManagementMapper.xml
  61. 43 6
      zkqy-fujian-amichi/src/main/resources/mapper/ReportInformationSheetMapper.xml
  62. 79 14
      zkqy-fujian-amichi/src/main/resources/mapper/StationInformationMapper.xml
  63. 124 0
      zkqy-fujian-amichi/src/main/resources/mapper/TeamInformationMapper.xml
  64. 117 0
      zkqy-fujian-amichi/src/main/resources/mapper/TeamPersonnelChangeInformationMapper.xml
  65. 132 0
      zkqy-fujian-amichi/src/main/resources/mapper/TeamPersonnelInformationMapper.xml
  66. 1 1
      zkqy-laboratory-information/pom.xml
  67. 1 0
      zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/controller/ChemicalElementTestResultsController.java
  68. 10 1
      zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/controller/EntrustedInformationController.java
  69. 11 4
      zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/domain/DetectionResult.java
  70. 4 0
      zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/service/impl/ChemicalElementTestResultsServiceImpl.java
  71. 4 0
      zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/service/impl/DetectionResultServiceImpl.java
  72. 1 0
      zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/utils/ma.java
  73. 7 1
      zkqy-laboratory-information/src/main/resources/mapper/ChemicalElementTestResultsMapper.xml
  74. 3 0
      zkqy-laboratory-information/src/main/resources/mapper/DetectionInformationMapper.xml
  75. 1 0
      zkqy-laboratory-information/src/main/resources/mapper/DetectionResultMapper.xml
  76. 1 0
      zkqy-laboratory-information/src/main/resources/mapper/EntrustedInformationMapper.xml
  77. 0 1
      zkqy-laboratory-information/src/main/resources/mapper/MaterialInformationMapper.xml
  78. 1 0
      zkqy-laboratory-information/src/main/resources/mapper/ReportInformationMapper.xml
  79. 1 0
      zkqy-laboratory-information/src/main/resources/mapper/SamplePrintingMapper.xml
  80. 5 5
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmApprovalStatusController.java
  81. 19 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmRunController.java
  82. 2 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmExecuteNodeFormMapper.java
  83. 19 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmExecuteNodeLogMapper.java
  84. 2 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmExecuteNodeMapper.java
  85. 2 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmExecuteNodeMiddleMapper.java
  86. 9 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmExecuteProcessMapper.java
  87. 2 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmNodeHandleUserMapper.java
  88. 2 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmNodeScriptRelevanceMapper.java
  89. 2 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmProcessConfigurationMapper.java
  90. 2 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/runbpm/PreExecutionToolClass.java
  91. 101 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/fjqy/FjqyDeliverGoods.java
  92. 100 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/fjqy/FjqyInStorage.java
  93. 104 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/fjqy/FjqyPackage.java
  94. 0 26
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/fjqy/JointTermination.java
  95. 91 0
      zkqy-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteNodeLogMapper.xml
  96. 40 1
      zkqy-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteProcessMapper.xml
  97. 2 0
      zkqy-ui/package.json
  98. 19 0
      zkqy-ui/src/api/amichi/planTask/planTaskDetails.js
  99. 53 0
      zkqy-ui/src/api/amichi/productionCardFlow/productionCardFlow.js
  100. 44 0
      zkqy-ui/src/api/amichi/productionOrderList/productionOrderList.js

+ 1 - 5
zkqy-admin/pom.xml

@@ -54,6 +54,7 @@
         <dependency>
             <groupId>com.zkqy</groupId>
             <artifactId>zkqy-framework</artifactId>
+            <version>3.8.5</version>
         </dependency>
         <!--业务模块-->
         <dependency>
@@ -97,11 +98,6 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
-        <dependency>
-            <groupId>com.zkqy</groupId>
-            <artifactId>zkqy-common</artifactId>
-        </dependency>
-
     </dependencies>
 
     <build>

+ 1 - 3
zkqy-admin/src/main/java/com/zkqy/ZkqyServletInitializer.java

@@ -19,9 +19,7 @@ public class ZkqyServletInitializer extends SpringBootServletInitializer
 
 
     public static void main(String[] args) {
-        for (int i = 0; i < 10; i++) {
-            System.out.println(i);
-        }
+
     }
 
 }

+ 2 - 0
zkqy-common/src/main/java/com/zkqy/common/core/domain/BaseEntity.java

@@ -3,6 +3,7 @@ package com.zkqy.common.core.domain;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -30,6 +31,7 @@ public class BaseEntity implements Serializable
 
     /** 创建时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /** 更新者 */

+ 27 - 0
zkqy-common/src/main/java/com/zkqy/common/utils/DateUtils.java

@@ -171,6 +171,33 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         return day + "天" + hour + "小时" + min + "分钟";
     }
 
+    /**
+     * 计算时间差
+     *
+     * @param endTime 最后时间
+     * @param startTime 开始时间
+     * @return 时间差(天/小时/分钟)
+     */
+    public static String timeDistanceMin(Date endTime, Date startTime)
+    {
+        long nd = 1000 * 24 * 60 * 60;
+        long nh = 1000 * 60 * 60;
+        long nm = 1000 * 60;
+        // long ns = 1000;
+        // 获得两个时间的毫秒时间差异
+        long diff = endTime.getTime() - startTime.getTime();
+        // 计算差多少天
+        long day = diff / nd;
+        // 计算差多少小时
+        long hour = diff % nd / nh;
+        // 计算差多少分钟
+        long min = diff % nd % nh / nm;
+        // 计算差多少秒//输出结果
+        // long sec = diff % nd % nh % nm / ns;
+        return  String.valueOf(min);
+    }
+
+
     /**
      * 增加 LocalDateTime ==> Date
      */

+ 0 - 6
zkqy-custom-business/pom.xml

@@ -45,12 +45,6 @@
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>3.5.2</version>
         </dependency>
-        <dependency>
-            <groupId>com.zkqy</groupId>
-            <artifactId>zkqy-process-execution</artifactId>
-            <version>3.8.5</version>
-            <scope>compile</scope>
-        </dependency>
     </dependencies>
 
     <properties>

+ 1 - 1
zkqy-custom-business/src/main/java/com/zkqy/business/controller/MaterielController.java

@@ -144,7 +144,7 @@ public class MaterielController extends BaseController
     /**
      * 领料管理、采购管理  获取所有原材料排序
      */
-    @GetMapping("/queryMaterielAllList")
+    @GetMapping("/lingTuiLiao/queryMaterielAllList")
     public AjaxResult queryMaterielAllList(){
         return AjaxResult.success(materielService.queryMaterielAllList());
     }

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

@@ -50,7 +50,6 @@ public class SaleProductsController extends BaseController {
 //        saleProducts.setStatus("3");
         saleProducts.setProductionLineNo(productionLineNo); //不查在当前产线投产过的产品了
         List<SaleProductsVo> list = saleProductsService.selectSaleProductsListAndCustomerName(saleProducts);
-
         return AjaxResult.success(list);
     }
 

+ 3 - 0
zkqy-framework/src/main/java/com/zkqy/framework/sso_oauth2/controller/ThirdPartLoginController.java

@@ -5,7 +5,9 @@ import com.alibaba.fastjson2.JSONObject;
 import com.zkqy.common.annotation.Anonymous;
 import com.zkqy.common.core.domain.AjaxResult;
 import com.zkqy.common.core.domain.entity.SysUser;
+import com.zkqy.common.utils.StringUtils;
 import com.zkqy.common.utils.http.HttpUtilsOauth2;
+import com.zkqy.system.service.ISysUserService;
 import org.apache.http.HttpResponse;
 import org.apache.http.util.EntityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +23,7 @@ import java.nio.charset.StandardCharsets;
 import java.util.Base64;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Optional;
 
 
 /**

+ 5 - 0
zkqy-fujian-amichi/pom.xml

@@ -21,6 +21,11 @@
             <groupId>com.zkqy</groupId>
             <artifactId>zkqy-framework</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.zkqy</groupId>
+            <artifactId>zkqy-process-execution</artifactId>
+            <version>3.8.5</version>
+        </dependency>
         <dependency>
             <groupId>io.swagger</groupId>
             <artifactId>swagger-annotations</artifactId>

+ 113 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/ExceptionReportInformationSheetController.java

@@ -0,0 +1,113 @@
+package com.zkqy.amichi.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zkqy.common.annotation.Log;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
+import com.zkqy.amichi.domain.ExceptionReportInformationSheet;
+import com.zkqy.amichi.service.IExceptionReportInformationSheetService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 异常报工日志Controller
+ *
+ * @author zkqy
+ * @date 2024-09-11
+ */
+@RestController
+@RequestMapping("/amichi/exceptionReportSheet")
+@Api(value = "/amichi/exceptionReportSheet", description = "异常报工日志-接口")
+public class ExceptionReportInformationSheetController extends BaseController
+{
+    @Autowired
+    private IExceptionReportInformationSheetService exceptionReportInformationSheetService;
+
+    /**
+     * 查询异常报工日志列表
+     */
+    //@PreAuthorize("@ss.hasPermi('amichi:exceptionReportSheet:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "查询异常报工日志列表")
+    public TableDataInfo list(ExceptionReportInformationSheet exceptionReportInformationSheet)
+    {
+        startPage();
+        List<ExceptionReportInformationSheet> list = exceptionReportInformationSheetService.selectExceptionReportInformationSheetList(exceptionReportInformationSheet);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出异常报工日志列表
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:exceptionReportSheet:export')")
+    @Log(title = "异常报工日志", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出异常报工日志列表")
+    public void export(HttpServletResponse response, ExceptionReportInformationSheet exceptionReportInformationSheet)
+    {
+        List<ExceptionReportInformationSheet> list = exceptionReportInformationSheetService.selectExceptionReportInformationSheetList(exceptionReportInformationSheet);
+        ExcelUtil<ExceptionReportInformationSheet> util = new ExcelUtil<ExceptionReportInformationSheet>(ExceptionReportInformationSheet.class);
+        util.exportExcel(response, list, "异常报工日志数据");
+    }
+
+    /**
+     * 获取异常报工日志详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:exceptionReportSheet:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取异常报工日志详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(exceptionReportInformationSheetService.selectExceptionReportInformationSheetById(id));
+    }
+
+    /**
+     * 新增异常报工日志
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:exceptionReportSheet:add')")
+    @Log(title = "异常报工日志", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "新增异常报工日志")
+    public AjaxResult add(@RequestBody ExceptionReportInformationSheet exceptionReportInformationSheet)
+    {
+        return toAjax(exceptionReportInformationSheetService.insertExceptionReportInformationSheet(exceptionReportInformationSheet));
+    }
+
+    /**
+     * 修改异常报工日志
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:exceptionReportSheet:edit')")
+    @Log(title = "异常报工日志", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation(value = "修改异常报工日志")
+    public AjaxResult edit(@RequestBody ExceptionReportInformationSheet exceptionReportInformationSheet)
+    {
+        return toAjax(exceptionReportInformationSheetService.updateExceptionReportInformationSheet(exceptionReportInformationSheet));
+    }
+
+    /**
+     * 删除异常报工日志
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:exceptionReportSheet:remove')")
+    @Log(title = "异常报工日志", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除异常报工日志")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(exceptionReportInformationSheetService.deleteExceptionReportInformationSheetByIds(ids));
+    }
+}

+ 9 - 7
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/PlanTaskDetailsController.java

@@ -30,19 +30,19 @@ import com.zkqy.common.core.page.TableDataInfo;
  * @date 2024-07-23
  */
 @RestController
-@RequestMapping("/plan_task_details/计划详细信息表")
+@RequestMapping("/planTaskDetails/Details")
 @Api(value = "/plan_task_details/计划详细信息表", description = "生产任务单明细-接口")
 public class PlanTaskDetailsController extends BaseController
 {
     @Autowired
     private IPlanTaskDetailsService planTaskDetailsService;
 
-/**
- * 查询生产任务单明细列表
- */
-//@PreAuthorize("@ss.hasPermi('plan_task_details:计划详细信息表:list')")
-@GetMapping("/list")
-@ApiOperation(value = "查询生产任务单明细列表")
+    /**
+     * 查询生产任务单明细列表
+     */
+    //@PreAuthorize("@ss.hasPermi('plan_task_details:计划详细信息表:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "查询生产任务单明细列表")
     public TableDataInfo list(PlanTaskDetails planTaskDetails)
     {
         startPage();
@@ -50,6 +50,8 @@ public class PlanTaskDetailsController extends BaseController
         return getDataTable(list);
     }
 
+
+
     /**
      * 导出生产任务单明细列表
      */

+ 129 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/ProductionCardFlowController.java

@@ -0,0 +1,129 @@
+package com.zkqy.amichi.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zkqy.amichi.domain.vo.GenerateProcessFlowCardVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zkqy.common.annotation.Log;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
+import com.zkqy.amichi.domain.ProductionCardFlow;
+import com.zkqy.amichi.service.IProductionCardFlowService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 工序流转卡流水Controller
+ *
+ * @author zkqy
+ * @date 2024-09-19
+ */
+@RestController
+@RequestMapping("/amichi/productionCardFlow")
+@Api(value = "/amichi/productionCardFlow", description = "工序流转卡流水-接口")
+public class ProductionCardFlowController extends BaseController
+{
+    @Autowired
+    private IProductionCardFlowService productionCardFlowService;
+
+/**
+ * 查询工序流转卡流水列表
+ */
+//@PreAuthorize("@ss.hasPermi('amichi:productionCardFlow:list')")
+@GetMapping("/list")
+@ApiOperation(value = "查询工序流转卡流水列表")
+    public TableDataInfo list(ProductionCardFlow productionCardFlow)
+    {
+        startPage();
+        List<ProductionCardFlow> list = productionCardFlowService.selectProductionCardFlowList(productionCardFlow);
+        return getDataTable(list);
+    }
+
+
+
+    /**
+     * 导出工序流转卡流水列表
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:productionCardFlow:export')")
+    @Log(title = "工序流转卡流水", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出工序流转卡流水列表")
+    public void export(HttpServletResponse response, ProductionCardFlow productionCardFlow)
+    {
+        List<ProductionCardFlow> list = productionCardFlowService.selectProductionCardFlowList(productionCardFlow);
+        ExcelUtil<ProductionCardFlow> util = new ExcelUtil<ProductionCardFlow>(ProductionCardFlow.class);
+        util.exportExcel(response, list, "工序流转卡流水数据");
+    }
+
+    /**
+     * 获取工序流转卡流水详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:productionCardFlow:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取工序流转卡流水详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(productionCardFlowService.selectProductionCardFlowById(id));
+    }
+
+    /**
+     * 新增工序流转卡流水
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:productionCardFlow:add')")
+    @Log(title = "工序流转卡流水", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "新增工序流转卡流水")
+    public AjaxResult add(@RequestBody ProductionCardFlow productionCardFlow)
+    {
+        return toAjax(productionCardFlowService.insertProductionCardFlow(productionCardFlow));
+    }
+
+
+    /**
+     * 生成流转卡信息
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:productionCardFlow:add')")
+    @Log(title = "工序流转卡流水", businessType = BusinessType.INSERT)
+    @PostMapping("/generateProcessFlowCard")
+    @ApiOperation(value = "生成流转卡信息")
+    public AjaxResult generateProcessFlowCard(@RequestBody GenerateProcessFlowCardVo  generateProcessFlowCardVo)
+    {
+        return toAjax(productionCardFlowService.generateProcessFlowCard(generateProcessFlowCardVo));
+    }
+    /**
+     * 修改工序流转卡流水
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:productionCardFlow:edit')")
+    @Log(title = "工序流转卡流水", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation(value = "修改工序流转卡流水")
+    public AjaxResult edit(@RequestBody ProductionCardFlow productionCardFlow)
+    {
+        return toAjax(productionCardFlowService.updateProductionCardFlow(productionCardFlow));
+    }
+
+    /**
+     * 删除工序流转卡流水
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:productionCardFlow:remove')")
+    @Log(title = "工序流转卡流水", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除工序流转卡流水")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(productionCardFlowService.deleteProductionCardFlowByIds(ids));
+    }
+}

+ 113 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/ProductionOrderListController.java

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

+ 1 - 1
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/ReportInformationSheetController.java

@@ -84,7 +84,7 @@ public class ReportInformationSheetController extends BaseController
     @ApiOperation(value = "新增报工日志")
     public AjaxResult add(@RequestBody ReportInformationSheet reportInformationSheet)
     {
-        return toAjax(reportInformationSheetService.insertReportInformationSheet(reportInformationSheet));
+        return reportInformationSheetService.insertReportInformationSheet(reportInformationSheet);
     }
 
     /**

+ 113 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/TeamInformationController.java

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

+ 113 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/TeamPersonnelChangeInformationController.java

@@ -0,0 +1,113 @@
+package com.zkqy.amichi.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zkqy.common.annotation.Log;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
+import com.zkqy.amichi.domain.TeamPersonnelChangeInformation;
+import com.zkqy.amichi.service.ITeamPersonnelChangeInformationService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 班组人员变动信息Controller
+ *
+ * @author zkqy
+ * @date 2024-09-12
+ */
+@RestController
+@RequestMapping("/amichi/teamPersonnelChangeInformation")
+@Api(value = "/amichi/teamPersonnelChangeInformation", description = "班组人员变动信息-接口")
+public class TeamPersonnelChangeInformationController extends BaseController
+{
+    @Autowired
+    private ITeamPersonnelChangeInformationService teamPersonnelChangeInformationService;
+
+    /**
+     * 查询班组人员变动信息列表
+     */
+    //@PreAuthorize("@ss.hasPermi('amichi:teamPersonnelChangeInformation:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "查询班组人员变动信息列表")
+    public TableDataInfo list(TeamPersonnelChangeInformation teamPersonnelChangeInformation)
+    {
+        startPage();
+        List<TeamPersonnelChangeInformation> list = teamPersonnelChangeInformationService.selectTeamPersonnelChangeInformationList(teamPersonnelChangeInformation);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出班组人员变动信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:teamPersonnelChangeInformation:export')")
+    @Log(title = "班组人员变动信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出班组人员变动信息列表")
+    public void export(HttpServletResponse response, TeamPersonnelChangeInformation teamPersonnelChangeInformation)
+    {
+        List<TeamPersonnelChangeInformation> list = teamPersonnelChangeInformationService.selectTeamPersonnelChangeInformationList(teamPersonnelChangeInformation);
+        ExcelUtil<TeamPersonnelChangeInformation> util = new ExcelUtil<TeamPersonnelChangeInformation>(TeamPersonnelChangeInformation.class);
+        util.exportExcel(response, list, "班组人员变动信息数据");
+    }
+
+    /**
+     * 获取班组人员变动信息详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:teamPersonnelChangeInformation:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取班组人员变动信息详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(teamPersonnelChangeInformationService.selectTeamPersonnelChangeInformationById(id));
+    }
+
+    /**
+     * 新增班组人员变动信息
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:teamPersonnelChangeInformation:add')")
+    @Log(title = "班组人员变动信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "新增班组人员变动信息")
+    public AjaxResult add(@RequestBody TeamPersonnelChangeInformation teamPersonnelChangeInformation)
+    {
+        return toAjax(teamPersonnelChangeInformationService.insertTeamPersonnelChangeInformation(teamPersonnelChangeInformation));
+    }
+
+    /**
+     * 修改班组人员变动信息
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:teamPersonnelChangeInformation:edit')")
+    @Log(title = "班组人员变动信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation(value = "修改班组人员变动信息")
+    public AjaxResult edit(@RequestBody TeamPersonnelChangeInformation teamPersonnelChangeInformation)
+    {
+        return toAjax(teamPersonnelChangeInformationService.updateTeamPersonnelChangeInformation(teamPersonnelChangeInformation));
+    }
+
+    /**
+     * 删除班组人员变动信息
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:teamPersonnelChangeInformation:remove')")
+    @Log(title = "班组人员变动信息", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除班组人员变动信息")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(teamPersonnelChangeInformationService.deleteTeamPersonnelChangeInformationByIds(ids));
+    }
+}

+ 113 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/TeamPersonnelInformationController.java

@@ -0,0 +1,113 @@
+package com.zkqy.amichi.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zkqy.common.annotation.Log;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
+import com.zkqy.amichi.domain.TeamPersonnelInformation;
+import com.zkqy.amichi.service.ITeamPersonnelInformationService;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import com.zkqy.common.core.page.TableDataInfo;
+
+/**
+ * 班组人员信息Controller
+ *
+ * @author zkqy
+ * @date 2024-09-12
+ */
+@RestController
+@RequestMapping("/amichi/teamPersonnelInformation")
+@Api(value = "/amichi/teamPersonnelInformation", description = "班组人员信息-接口")
+public class TeamPersonnelInformationController extends BaseController
+{
+    @Autowired
+    private ITeamPersonnelInformationService teamPersonnelInformationService;
+
+    /**
+     * 查询班组人员信息列表
+     */
+    //@PreAuthorize("@ss.hasPermi('amichi:teamPersonnelInformation:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "查询班组人员信息列表")
+    public TableDataInfo list(TeamPersonnelInformation teamPersonnelInformation)
+    {
+        startPage();
+        List<TeamPersonnelInformation> list = teamPersonnelInformationService.selectTeamPersonnelInformationList(teamPersonnelInformation);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出班组人员信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:teamPersonnelInformation:export')")
+    @Log(title = "班组人员信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出班组人员信息列表")
+    public void export(HttpServletResponse response, TeamPersonnelInformation teamPersonnelInformation)
+    {
+        List<TeamPersonnelInformation> list = teamPersonnelInformationService.selectTeamPersonnelInformationList(teamPersonnelInformation);
+        ExcelUtil<TeamPersonnelInformation> util = new ExcelUtil<TeamPersonnelInformation>(TeamPersonnelInformation.class);
+        util.exportExcel(response, list, "班组人员信息数据");
+    }
+
+    /**
+     * 获取班组人员信息详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:teamPersonnelInformation:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取班组人员信息详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(teamPersonnelInformationService.selectTeamPersonnelInformationById(id));
+    }
+
+    /**
+     * 新增班组人员信息
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:teamPersonnelInformation:add')")
+    @Log(title = "班组人员信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "新增班组人员信息")
+    public AjaxResult add(@RequestBody TeamPersonnelInformation teamPersonnelInformation)
+    {
+        return toAjax(teamPersonnelInformationService.insertTeamPersonnelInformation(teamPersonnelInformation));
+    }
+
+    /**
+     * 修改班组人员信息
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:teamPersonnelInformation:edit')")
+    @Log(title = "班组人员信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation(value = "修改班组人员信息")
+    public AjaxResult edit(@RequestBody TeamPersonnelInformation teamPersonnelInformation)
+    {
+        return toAjax(teamPersonnelInformationService.updateTeamPersonnelInformation(teamPersonnelInformation));
+    }
+
+    /**
+     * 删除班组人员信息
+     */
+    @PreAuthorize("@ss.hasPermi('amichi:teamPersonnelInformation:remove')")
+    @Log(title = "班组人员信息", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除班组人员信息")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(teamPersonnelInformationService.deleteTeamPersonnelInformationByIds(ids));
+    }
+}

+ 14 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/WarehouseEntryInformationController.java

@@ -3,6 +3,7 @@ package com.zkqy.amichi.controller;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.zkqy.amichi.domain.vo.ProcessWarehousingVo;
 import com.zkqy.amichi.domain.vo.WarehouseEntryInformationVo;
 import com.zkqy.common.utils.SecurityUtils;
 import io.swagger.annotations.Api;
@@ -53,6 +54,19 @@ public class WarehouseEntryInformationController extends BaseController
         return getDataTable(list);
     }
 
+
+    /**
+     * 工序节点入库
+     * @param processWarehousingVos
+     * @return
+     */
+    @PostMapping("/processWarehousing")
+    @ApiOperation(value = "工序节点入库")
+    public AjaxResult processWarehousing(@RequestBody List<ProcessWarehousingVo> processWarehousingVos)
+    {
+         return toAjax(warehouseEntryInformationService.processWarehousing(processWarehousingVos));
+    }
+
     /**
      * 导出入库单信息列表
      */

+ 266 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/ExceptionReportInformationSheet.java

@@ -0,0 +1,266 @@
+package com.zkqy.amichi.domain;
+
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+
+/**
+ * 异常报工日志对象 exception_report_information_sheet
+ * 
+ * @author zkqy
+ * @date 2024-09-11
+ */
+public class ExceptionReportInformationSheet extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 产品id */
+    @Excel(name = "产品id")
+    private String productId;
+
+    /** 产品code */
+    @Excel(name = "产品code")
+    private String productCode;
+
+    /** 工位码 */
+    @Excel(name = "工位码")
+    private String stationCode;
+
+    /** 当前工位人 */
+    @Excel(name = "当前工位人")
+    private String currentStationStationPeople;
+
+    /** 创建者id */
+    @Excel(name = "创建者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 数据条审批状态(默认字段 0:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中) */
+    @Excel(name = "数据条审批状态", readConverterExp = "默=认字段,0=:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中")
+    private String dataApprovalStatus;
+
+    /** 流程编号 */
+    @Excel(name = "流程编号")
+    private String processKey;
+
+    /** 任务编码 */
+    @Excel(name = "任务编码")
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    @Excel(name = "任务节点编码")
+    private String taskNodeKey;
+
+    /** 订单号 */
+    @Excel(name = "订单号")
+    private String orderNumber;
+
+    /** 工序名称 */
+    @Excel(name = "工序名称")
+    private String process;
+
+    /** 数量 */
+    @Excel(name = "数量")
+    private String quantityInstorage;
+
+    /** 异常信息 */
+    @Excel(name = "异常信息")
+    private String exceptionMessage;
+
+    /**
+     *  手持机
+     * @return
+     */
+    @Excel(name = "手持机")
+    private String handheldDevice;
+
+    public String getHandheldDevice() {
+        return handheldDevice;
+    }
+
+    public void setHandheldDevice(String handheldDevice) {
+        this.handheldDevice = handheldDevice;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setProductId(String productId) 
+    {
+        this.productId = productId;
+    }
+
+    public String getProductId() 
+    {
+        return productId;
+    }
+    public void setProductCode(String productCode) 
+    {
+        this.productCode = productCode;
+    }
+
+    public String getProductCode() 
+    {
+        return productCode;
+    }
+    public void setStationCode(String stationCode) 
+    {
+        this.stationCode = stationCode;
+    }
+
+    public String getStationCode() 
+    {
+        return stationCode;
+    }
+    public void setCurrentStationStationPeople(String currentStationStationPeople) 
+    {
+        this.currentStationStationPeople = currentStationStationPeople;
+    }
+
+    public String getCurrentStationStationPeople() 
+    {
+        return currentStationStationPeople;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setDataApprovalStatus(String dataApprovalStatus) 
+    {
+        this.dataApprovalStatus = dataApprovalStatus;
+    }
+
+    public String getDataApprovalStatus() 
+    {
+        return dataApprovalStatus;
+    }
+    public void setProcessKey(String processKey) 
+    {
+        this.processKey = processKey;
+    }
+
+    public String getProcessKey() 
+    {
+        return processKey;
+    }
+    public void setTaskProcessKey(String taskProcessKey) 
+    {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskProcessKey() 
+    {
+        return taskProcessKey;
+    }
+    public void setTaskNodeKey(String taskNodeKey) 
+    {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskNodeKey() 
+    {
+        return taskNodeKey;
+    }
+    public void setOrderNumber(String orderNumber) 
+    {
+        this.orderNumber = orderNumber;
+    }
+
+    public String getOrderNumber() 
+    {
+        return orderNumber;
+    }
+    public void setProcess(String process) 
+    {
+        this.process = process;
+    }
+
+    public String getProcess() 
+    {
+        return process;
+    }
+    public void setQuantityInstorage(String quantityInstorage) 
+    {
+        this.quantityInstorage = quantityInstorage;
+    }
+
+    public String getQuantityInstorage() 
+    {
+        return quantityInstorage;
+    }
+    public void setExceptionMessage(String exceptionMessage) 
+    {
+        this.exceptionMessage = exceptionMessage;
+    }
+
+    public String getExceptionMessage() 
+    {
+        return exceptionMessage;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("productId", getProductId())
+            .append("productCode", getProductCode())
+            .append("stationCode", getStationCode())
+            .append("currentStationStationPeople", getCurrentStationStationPeople())
+            .append("remark", getRemark())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("dataApprovalStatus", getDataApprovalStatus())
+            .append("processKey", getProcessKey())
+            .append("taskProcessKey", getTaskProcessKey())
+            .append("taskNodeKey", getTaskNodeKey())
+            .append("orderNumber", getOrderNumber())
+            .append("process", getProcess())
+            .append("quantityInstorage", getQuantityInstorage())
+            .append("exceptionMessage", getExceptionMessage())
+            .toString();
+    }
+}

+ 195 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/ProductionCardFlow.java

@@ -0,0 +1,195 @@
+package com.zkqy.amichi.domain;
+
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+
+/**
+ * 工序流转卡流水对象 production_card_flow
+ * 
+ * @author zkqy
+ * @date 2024-09-19
+ */
+public class ProductionCardFlow extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 产品订单id */
+    @Excel(name = "产品订单id")
+    private String productionOrderListId;
+
+    /** 序列号 */
+    @Excel(name = "序列号")
+    private String serialNumber;
+
+    /** 需求单据 */
+    @Excel(name = "需求单据")
+    private String demandDocumentNumber;
+
+    /** 打印数量 */
+    @Excel(name = "打印数量")
+    private String printQuantity;
+
+    /** 创建者id */
+    @Excel(name = "创建者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 1代表删除) */
+    private String delFlag;
+
+    /** 数据条审批状态(默认字段 0:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中) */
+    @Excel(name = "数据条审批状态", readConverterExp = "默=认字段,0=:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中")
+    private String dataApprovalStatus;
+
+    /** 流程编号 */
+    @Excel(name = "流程编号")
+    private String processKey;
+
+    /** 任务编码 */
+    @Excel(name = "任务编码")
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    @Excel(name = "任务节点编码")
+    private String taskNodeKey;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setProductionOrderListId(String productionOrderListId) 
+    {
+        this.productionOrderListId = productionOrderListId;
+    }
+
+    public String getProductionOrderListId() 
+    {
+        return productionOrderListId;
+    }
+    public void setSerialNumber(String serialNumber) 
+    {
+        this.serialNumber = serialNumber;
+    }
+
+    public String getSerialNumber() 
+    {
+        return serialNumber;
+    }
+    public void setDemandDocumentNumber(String demandDocumentNumber) 
+    {
+        this.demandDocumentNumber = demandDocumentNumber;
+    }
+
+    public String getDemandDocumentNumber() 
+    {
+        return demandDocumentNumber;
+    }
+    public void setPrintQuantity(String printQuantity) 
+    {
+        this.printQuantity = printQuantity;
+    }
+
+    public String getPrintQuantity() 
+    {
+        return printQuantity;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setDataApprovalStatus(String dataApprovalStatus) 
+    {
+        this.dataApprovalStatus = dataApprovalStatus;
+    }
+
+    public String getDataApprovalStatus() 
+    {
+        return dataApprovalStatus;
+    }
+    public void setProcessKey(String processKey) 
+    {
+        this.processKey = processKey;
+    }
+
+    public String getProcessKey() 
+    {
+        return processKey;
+    }
+    public void setTaskProcessKey(String taskProcessKey) 
+    {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskProcessKey() 
+    {
+        return taskProcessKey;
+    }
+    public void setTaskNodeKey(String taskNodeKey) 
+    {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskNodeKey() 
+    {
+        return taskNodeKey;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("productionOrderListId", getProductionOrderListId())
+            .append("serialNumber", getSerialNumber())
+            .append("demandDocumentNumber", getDemandDocumentNumber())
+            .append("printQuantity", getPrintQuantity())
+            .append("remark", getRemark())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("dataApprovalStatus", getDataApprovalStatus())
+            .append("processKey", getProcessKey())
+            .append("taskProcessKey", getTaskProcessKey())
+            .append("taskNodeKey", getTaskNodeKey())
+            .toString();
+    }
+}

+ 293 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/ProductionOrderList.java

@@ -0,0 +1,293 @@
+package com.zkqy.amichi.domain;
+
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+
+/**
+ * 生产订单列对象 production_order_list
+ * 
+ * @author zkqy
+ * @date 2024-09-19
+ */
+public class ProductionOrderList extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 单据编号 */
+    @Excel(name = "单据编号")
+    private String documentNumber;
+
+    /** 单据类型 */
+    @Excel(name = "单据类型")
+    private String documentType;
+
+    /** 单据日期 */
+    @Excel(name = "单据日期")
+    private String documentDate;
+
+    /** 单据状态 */
+    @Excel(name = "单据状态")
+    private String documentStatus;
+
+    /** 需求单据 */
+    @Excel(name = "需求单据")
+    private String demandDocument;
+
+    /** 需求单据行号 */
+    @Excel(name = "需求单据行号")
+    private String demandDocumentLineNumber;
+
+    /** 物料编码 */
+    @Excel(name = "物料编码")
+    private String materialCode;
+
+    /** 物料名称 */
+    @Excel(name = "物料名称")
+    private String materialName;
+
+    /** 型号 */
+    @Excel(name = "型号")
+    private String modelNumber;
+
+    /** 规格 */
+    @Excel(name = "规格")
+    private String specification;
+
+    /** 数量 */
+    @Excel(name = "数量")
+    private String quantity;
+
+    /** 创建者id */
+    @Excel(name = "创建者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 1代表删除) */
+    private String delFlag;
+
+    /** 数据条审批状态(默认字段 0:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中) */
+    @Excel(name = "数据条审批状态", readConverterExp = "默=认字段,0=:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中")
+    private String dataApprovalStatus;
+
+    /** 流程编号 */
+    @Excel(name = "流程编号")
+    private String processKey;
+
+    /** 任务编码 */
+    @Excel(name = "任务编码")
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    @Excel(name = "任务节点编码")
+    private String taskNodeKey;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setDocumentNumber(String documentNumber) 
+    {
+        this.documentNumber = documentNumber;
+    }
+
+    public String getDocumentNumber() 
+    {
+        return documentNumber;
+    }
+    public void setDocumentType(String documentType) 
+    {
+        this.documentType = documentType;
+    }
+
+    public String getDocumentType() 
+    {
+        return documentType;
+    }
+    public void setDocumentDate(String documentDate) 
+    {
+        this.documentDate = documentDate;
+    }
+
+    public String getDocumentDate() 
+    {
+        return documentDate;
+    }
+    public void setDocumentStatus(String documentStatus) 
+    {
+        this.documentStatus = documentStatus;
+    }
+
+    public String getDocumentStatus() 
+    {
+        return documentStatus;
+    }
+    public void setDemandDocument(String demandDocument) 
+    {
+        this.demandDocument = demandDocument;
+    }
+
+    public String getDemandDocument() 
+    {
+        return demandDocument;
+    }
+    public void setDemandDocumentLineNumber(String demandDocumentLineNumber) 
+    {
+        this.demandDocumentLineNumber = demandDocumentLineNumber;
+    }
+
+    public String getDemandDocumentLineNumber() 
+    {
+        return demandDocumentLineNumber;
+    }
+    public void setMaterialCode(String materialCode) 
+    {
+        this.materialCode = materialCode;
+    }
+
+    public String getMaterialCode() 
+    {
+        return materialCode;
+    }
+    public void setMaterialName(String materialName)
+    {
+        this.materialName = materialName;
+    }
+
+    public String getMaterialName()
+    {
+        return materialName;
+    }
+    public void setModelNumber(String modelNumber) 
+    {
+        this.modelNumber = modelNumber;
+    }
+
+    public String getModelNumber() 
+    {
+        return modelNumber;
+    }
+    public void setSpecification(String specification) 
+    {
+        this.specification = specification;
+    }
+
+    public String getSpecification() 
+    {
+        return specification;
+    }
+    public void setQuantity(String quantity) 
+    {
+        this.quantity = quantity;
+    }
+
+    public String getQuantity() 
+    {
+        return quantity;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setDataApprovalStatus(String dataApprovalStatus) 
+    {
+        this.dataApprovalStatus = dataApprovalStatus;
+    }
+
+    public String getDataApprovalStatus() 
+    {
+        return dataApprovalStatus;
+    }
+    public void setProcessKey(String processKey) 
+    {
+        this.processKey = processKey;
+    }
+
+    public String getProcessKey() 
+    {
+        return processKey;
+    }
+    public void setTaskProcessKey(String taskProcessKey) 
+    {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskProcessKey() 
+    {
+        return taskProcessKey;
+    }
+    public void setTaskNodeKey(String taskNodeKey) 
+    {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskNodeKey() 
+    {
+        return taskNodeKey;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("documentNumber", getDocumentNumber())
+            .append("documentType", getDocumentType())
+            .append("documentDate", getDocumentDate())
+            .append("documentStatus", getDocumentStatus())
+            .append("demandDocument", getDemandDocument())
+            .append("demandDocumentLineNumber", getDemandDocumentLineNumber())
+            .append("materialCode", getMaterialCode())
+            .append("materialName", getMaterialName())
+            .append("modelNumber", getModelNumber())
+            .append("specification", getSpecification())
+            .append("quantity", getQuantity())
+            .append("remark", getRemark())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("dataApprovalStatus", getDataApprovalStatus())
+            .append("processKey", getProcessKey())
+            .append("taskProcessKey", getTaskProcessKey())
+            .append("taskNodeKey", getTaskNodeKey())
+            .toString();
+    }
+}

+ 44 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/ReportInformationSheet.java

@@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.zkqy.common.annotation.Excel;
 
+import java.time.LocalDateTime;
+
 /**
  * 报工日志对象 report_information_sheet
  * 
@@ -69,6 +71,48 @@ public class ReportInformationSheet extends BaseEntity
     @Excel(name = "工序名称")
     private String process;
 
+    public String getQuantityInstorage() {
+        return quantityInstorage;
+    }
+
+    public void setQuantityInstorage(String quantityInstorage) {
+        this.quantityInstorage = quantityInstorage;
+    }
+
+    /** 处理数量*/
+    @Excel(name = "数量")
+    private String quantityInstorage;
+
+    /**
+     *  手持机
+     * @return
+     */
+    @Excel(name = "手持机")
+    private String handheldDevice;
+
+    /**
+     *  上次扫码时间
+     * @return
+     */
+    @Excel(name = "上次扫码时间")
+    private LocalDateTime lastScanTime;
+
+    public LocalDateTime getLastScanTime() {
+        return lastScanTime;
+    }
+
+    public void setLastScanTime(LocalDateTime lastScanTime) {
+        this.lastScanTime = lastScanTime;
+    }
+
+    public String getHandheldDevice() {
+        return handheldDevice;
+    }
+
+    public void setHandheldDevice(String handheldDevice) {
+        this.handheldDevice = handheldDevice;
+    }
+
     public String getOrderNumber() {
         return orderNumber;
     }

+ 26 - 1
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/StationInformation.java

@@ -69,7 +69,32 @@ public class StationInformation extends BaseEntity
     @Excel(name = "任务节点编码")
     private String taskNodeKey;
 
-    public void setId(Long id) 
+    /** 班组名称 */
+    @Excel(name = "班组名称")
+    private String teamName;
+
+
+    /** 班组编码 */
+    @Excel(name = "班组编码")
+    private String teamCode;
+
+    public String getTeamCode() {
+        return teamCode;
+    }
+
+    public void setTeamCode(String teamCode) {
+        this.teamCode = teamCode;
+    }
+
+    public String getTeamName() {
+        return teamName;
+    }
+
+    public void setTeamName(String teamName) {
+        this.teamName = teamName;
+    }
+
+    public void setId(Long id)
     {
         this.id = id;
     }

+ 176 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/TeamInformation.java

@@ -0,0 +1,176 @@
+package com.zkqy.amichi.domain;
+
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+
+/**
+ * 班组信息对象 team_information
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+public class TeamInformation extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 班组编号 */
+    @Excel(name = "班组编号")
+    private String teamCode;
+
+    /** 班组名称 */
+    @Excel(name = "班组名称")
+    private String teamName;
+
+    /** 创建者id */
+    @Excel(name = "创建者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 数据条审批状态(默认字段 0:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中) */
+    @Excel(name = "数据条审批状态", readConverterExp = "默=认字段,0=:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中")
+    private String dataApprovalStatus;
+
+    /** 流程编号 */
+    @Excel(name = "流程编号")
+    private String processKey;
+
+    /** 任务编码 */
+    @Excel(name = "任务编码")
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    @Excel(name = "任务节点编码")
+    private String taskNodeKey;
+
+    /** 班组姓名 */
+    @Excel(name = "班组类型")
+    private String teamType;
+
+    public String getTeamType() {
+        return teamType;
+    }
+
+    public void setTeamType(String teamType) {
+        this.teamType = teamType;
+    }
+
+    public String getTeamCode() {
+        return teamCode;
+    }
+
+    public void setTeamCode(String teamCode) {
+        this.teamCode = teamCode;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+
+    public String getTeamName() {
+        return teamName;
+    }
+
+    public void setTeamName(String teamName) {
+        this.teamName = teamName;
+    }
+
+    public void setCreateById(Long createById)
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setDataApprovalStatus(String dataApprovalStatus) 
+    {
+        this.dataApprovalStatus = dataApprovalStatus;
+    }
+
+    public String getDataApprovalStatus() 
+    {
+        return dataApprovalStatus;
+    }
+    public void setProcessKey(String processKey) 
+    {
+        this.processKey = processKey;
+    }
+
+    public String getProcessKey() 
+    {
+        return processKey;
+    }
+    public void setTaskProcessKey(String taskProcessKey) 
+    {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskProcessKey() 
+    {
+        return taskProcessKey;
+    }
+    public void setTaskNodeKey(String taskNodeKey) 
+    {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskNodeKey() 
+    {
+        return taskNodeKey;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("remark", getRemark())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("dataApprovalStatus", getDataApprovalStatus())
+            .append("processKey", getProcessKey())
+            .append("taskProcessKey", getTaskProcessKey())
+            .append("taskNodeKey", getTaskNodeKey())
+            .toString();
+    }
+}

+ 166 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/TeamPersonnelChangeInformation.java

@@ -0,0 +1,166 @@
+package com.zkqy.amichi.domain;
+
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+
+/**
+ * 班组人员变动信息对象 team_personnel_change_information_copy1
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+public class TeamPersonnelChangeInformation extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 人员姓名 */
+    @Excel(name = "人员姓名")
+    private String teamPersonnelName;
+
+    /** 班组id */
+    @Excel(name = "班组id")
+    private String teamId;
+
+    /** 创建者id */
+    @Excel(name = "创建者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 数据条审批状态(默认字段 0:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中) */
+    @Excel(name = "数据条审批状态", readConverterExp = "默=认字段,0=:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中")
+    private String dataApprovalStatus;
+
+    /** 流程编号 */
+    @Excel(name = "流程编号")
+    private String processKey;
+
+    /** 任务编码 */
+    @Excel(name = "任务编码")
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    @Excel(name = "任务节点编码")
+    private String taskNodeKey;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+
+    public void setTeamId(String teamId) 
+    {
+        this.teamId = teamId;
+    }
+
+    public String getTeamId() 
+    {
+        return teamId;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setDataApprovalStatus(String dataApprovalStatus) 
+    {
+        this.dataApprovalStatus = dataApprovalStatus;
+    }
+
+    public String getDataApprovalStatus() 
+    {
+        return dataApprovalStatus;
+    }
+    public void setProcessKey(String processKey) 
+    {
+        this.processKey = processKey;
+    }
+
+    public String getProcessKey() 
+    {
+        return processKey;
+    }
+    public void setTaskProcessKey(String taskProcessKey) 
+    {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskProcessKey() 
+    {
+        return taskProcessKey;
+    }
+    public void setTaskNodeKey(String taskNodeKey) 
+    {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskNodeKey() 
+    {
+        return taskNodeKey;
+    }
+
+    public String getTeamPersonnelName() {
+        return teamPersonnelName;
+    }
+
+    public void setTeamPersonnelName(String teamPersonnelName) {
+        this.teamPersonnelName = teamPersonnelName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("teamId", getTeamId())
+            .append("remark", getRemark())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("dataApprovalStatus", getDataApprovalStatus())
+            .append("processKey", getProcessKey())
+            .append("taskProcessKey", getTaskProcessKey())
+            .append("taskNodeKey", getTaskNodeKey())
+            .toString();
+    }
+}

+ 207 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/TeamPersonnelInformation.java

@@ -0,0 +1,207 @@
+package com.zkqy.amichi.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.zkqy.common.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 班组人员信息对象 team_personnel_information_copy1
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+public class TeamPersonnelInformation extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @Override
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    @Override
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /** 人员姓名 */
+    @Excel(name = "人员姓名")
+    private String teamPersonnelName;
+
+
+    /** 班组id */
+    @Excel(name = "班组id")
+    private String teamId;
+
+    /** 创建者id */
+    @Excel(name = "创建者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 数据条审批状态(默认字段 0:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中) */
+    @Excel(name = "数据条审批状态", readConverterExp = "默=认字段,0=:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中")
+    private String dataApprovalStatus;
+
+    /** 流程编号 */
+    @Excel(name = "流程编号")
+    private String processKey;
+
+    /** 任务编码 */
+    @Excel(name = "任务编码")
+    private String taskProcessKey;
+
+    /** 任务节点编码 */
+    @Excel(name = "任务节点编码")
+    private String taskNodeKey;
+
+    /** 创建事件 Vo类属性 */
+    @Excel(name = "创建事件")
+    private String cjDateTime;
+
+    private String isRoutine;
+
+    public String getCjDateTime() {
+        return cjDateTime;
+    }
+
+    public void setCjDateTime(String cjDateTime) {
+        this.cjDateTime = cjDateTime;
+    }
+
+    public String getIsRoutine() {
+        return isRoutine;
+    }
+
+    public void setIsRoutine(String isRoutine) {
+        this.isRoutine = isRoutine;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+
+    public String getTeamPersonnelName() {
+        return teamPersonnelName;
+    }
+
+    public void setTeamPersonnelName(String teamPersonnelName) {
+        this.teamPersonnelName = teamPersonnelName;
+    }
+
+    public void setTeamId(String teamId)
+    {
+        this.teamId = teamId;
+    }
+
+    public String getTeamId() 
+    {
+        return teamId;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setDataApprovalStatus(String dataApprovalStatus) 
+    {
+        this.dataApprovalStatus = dataApprovalStatus;
+    }
+
+    public String getDataApprovalStatus() 
+    {
+        return dataApprovalStatus;
+    }
+    public void setProcessKey(String processKey) 
+    {
+        this.processKey = processKey;
+    }
+
+    public String getProcessKey() 
+    {
+        return processKey;
+    }
+    public void setTaskProcessKey(String taskProcessKey) 
+    {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskProcessKey() 
+    {
+        return taskProcessKey;
+    }
+    public void setTaskNodeKey(String taskNodeKey) 
+    {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskNodeKey() 
+    {
+        return taskNodeKey;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("teamId", getTeamId())
+            .append("remark", getRemark())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .append("dataApprovalStatus", getDataApprovalStatus())
+            .append("processKey", getProcessKey())
+            .append("taskProcessKey", getTaskProcessKey())
+            .append("taskNodeKey", getTaskNodeKey())
+            .toString();
+    }
+}

+ 33 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/GenerateProcessFlowCardVo.java

@@ -0,0 +1,33 @@
+package com.zkqy.amichi.domain.vo;
+
+public class GenerateProcessFlowCardVo {
+    private  String demandDocumentNumber;
+
+    private  String quantity;
+
+    private  String productionOrderListId;
+
+    public String getProductionOrderListId() {
+        return productionOrderListId;
+    }
+
+    public void setProductionOrderListId(String productionOrderListId) {
+        this.productionOrderListId = productionOrderListId;
+    }
+
+    public String getDemandDocumentNumber() {
+        return demandDocumentNumber;
+    }
+
+    public void setDemandDocumentNumber(String demandDocumentNumber) {
+        this.demandDocumentNumber = demandDocumentNumber;
+    }
+
+    public String getQuantity() {
+        return quantity;
+    }
+
+    public void setQuantity(String quantity) {
+        this.quantity = quantity;
+    }
+}

+ 32 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/ProcessWarehousingVo.java

@@ -0,0 +1,32 @@
+package com.zkqy.amichi.domain.vo;
+
+public class ProcessWarehousingVo {
+    private  String productName;
+    private  String quantity;
+
+    private  String orderNumber;
+
+    public String getOrderNumber() {
+        return orderNumber;
+    }
+
+    public void setOrderNumber(String orderNumber) {
+        this.orderNumber = orderNumber;
+    }
+
+    public String getProductName() {
+        return productName;
+    }
+
+    public void setProductName(String productName) {
+        this.productName = productName;
+    }
+
+    public String getQuantity() {
+        return quantity;
+    }
+
+    public void setQuantity(String quantity) {
+        this.quantity = quantity;
+    }
+}

+ 63 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ExceptionReportInformationSheetMapper.java

@@ -0,0 +1,63 @@
+package com.zkqy.amichi.mapper;
+
+import java.util.List;
+import com.zkqy.amichi.domain.ExceptionReportInformationSheet;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 异常报工日志Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-09-11
+ */
+@Mapper
+public interface ExceptionReportInformationSheetMapper 
+{
+    /**
+     * 查询异常报工日志
+     * 
+     * @param id 异常报工日志主键
+     * @return 异常报工日志
+     */
+    public ExceptionReportInformationSheet selectExceptionReportInformationSheetById(Long id);
+
+    /**
+     * 查询异常报工日志列表
+     * 
+     * @param exceptionReportInformationSheet 异常报工日志
+     * @return 异常报工日志集合
+     */
+    public List<ExceptionReportInformationSheet> selectExceptionReportInformationSheetList(ExceptionReportInformationSheet exceptionReportInformationSheet);
+
+    /**
+     * 新增异常报工日志
+     * 
+     * @param exceptionReportInformationSheet 异常报工日志
+     * @return 结果
+     */
+    public int insertExceptionReportInformationSheet(ExceptionReportInformationSheet exceptionReportInformationSheet);
+
+    /**
+     * 修改异常报工日志
+     * 
+     * @param exceptionReportInformationSheet 异常报工日志
+     * @return 结果
+     */
+    public int updateExceptionReportInformationSheet(ExceptionReportInformationSheet exceptionReportInformationSheet);
+
+    /**
+     * 删除异常报工日志
+     * 
+     * @param id 异常报工日志主键
+     * @return 结果
+     */
+    public int deleteExceptionReportInformationSheetById(Long id);
+
+    /**
+     * 批量删除异常报工日志
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteExceptionReportInformationSheetByIds(Long[] ids);
+}

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

@@ -0,0 +1,70 @@
+package com.zkqy.amichi.mapper;
+
+import java.util.List;
+import com.zkqy.amichi.domain.ProductionCardFlow;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 工序流转卡流水Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-09-19
+ */
+@Mapper
+public interface ProductionCardFlowMapper 
+{
+    /**
+     * 查询工序流转卡流水
+     * 
+     * @param id 工序流转卡流水主键
+     * @return 工序流转卡流水
+     */
+    public ProductionCardFlow selectProductionCardFlowById(Long id);
+
+    /**
+     * 查询工序流转卡流水列表
+     * 
+     * @param productionCardFlow 工序流转卡流水
+     * @return 工序流转卡流水集合
+     */
+    public List<ProductionCardFlow> selectProductionCardFlowList(ProductionCardFlow productionCardFlow);
+
+    /**
+     * 新增工序流转卡流水
+     * 
+     * @param productionCardFlow 工序流转卡流水
+     * @return 结果
+     */
+    public int insertProductionCardFlow(ProductionCardFlow productionCardFlow);
+
+    /**
+     * 修改工序流转卡流水
+     * 
+     * @param productionCardFlow 工序流转卡流水
+     * @return 结果
+     */
+    public int updateProductionCardFlow(ProductionCardFlow productionCardFlow);
+
+    /**
+     * 删除工序流转卡流水
+     * 
+     * @param id 工序流转卡流水主键
+     * @return 结果
+     */
+    public int deleteProductionCardFlowById(Long id);
+
+    /**
+     * 批量删除工序流转卡流水
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteProductionCardFlowByIds(Long[] ids);
+
+    /**
+     * 批量插入流转卡数据
+     * @param productionCardFlows
+     * @return
+     */
+    public int insertProductionCardFlowBatch(List<ProductionCardFlow> productionCardFlows);
+}

+ 63 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ProductionOrderListMapper.java

@@ -0,0 +1,63 @@
+package com.zkqy.amichi.mapper;
+
+import java.util.List;
+import com.zkqy.amichi.domain.ProductionOrderList;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 生产订单列Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-09-19
+ */
+@Mapper
+public interface ProductionOrderListMapper 
+{
+    /**
+     * 查询生产订单列
+     * 
+     * @param id 生产订单列主键
+     * @return 生产订单列
+     */
+    public ProductionOrderList selectProductionOrderListById(Long id);
+
+    /**
+     * 查询生产订单列列表
+     * 
+     * @param productionOrderList 生产订单列
+     * @return 生产订单列集合
+     */
+    public List<ProductionOrderList> selectProductionOrderListList(ProductionOrderList productionOrderList);
+
+    /**
+     * 新增生产订单列
+     * 
+     * @param productionOrderList 生产订单列
+     * @return 结果
+     */
+    public int insertProductionOrderList(ProductionOrderList productionOrderList);
+
+    /**
+     * 修改生产订单列
+     * 
+     * @param productionOrderList 生产订单列
+     * @return 结果
+     */
+    public int updateProductionOrderList(ProductionOrderList productionOrderList);
+
+    /**
+     * 删除生产订单列
+     * 
+     * @param id 生产订单列主键
+     * @return 结果
+     */
+    public int deleteProductionOrderListById(Long id);
+
+    /**
+     * 批量删除生产订单列
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteProductionOrderListByIds(Long[] ids);
+}

+ 2 - 1
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/ProductionPlanningManagementMapper.java

@@ -4,6 +4,7 @@ import java.util.List;
 import com.zkqy.amichi.domain.ProductionPlanningManagement;
 import com.zkqy.amichi.domain.vo.ProductionPlanningManagementVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 生产计划Mapper接口
@@ -36,7 +37,7 @@ public interface ProductionPlanningManagementMapper
      * @param  orderNumber, planNumber 生产计划
      * @return 生产计划集合
      */
-    public List<ProductionPlanningManagement> selectProductionPlanningManagementByOrderNumebrOrPlanNumber(String orderNumber,String planNumber);
+    public List<ProductionPlanningManagement> selectProductionPlanningManagementByOrderNumebrOrPlanNumber(@Param("orderNumber")  String orderNumber, @Param("planNumber") String planNumber);
 
 
     /**

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

@@ -62,4 +62,11 @@ public interface ReportInformationSheetMapper
      * @return 结果
      */
     public int deleteReportInformationSheetByIds(Long[] ids);
+
+    /**
+     * 检查下
+     * @param sheetsjjg
+     * @return
+     */
+    ReportInformationSheet selectReportInformationSheetListOrderBy(ReportInformationSheet sheetsjjg);
 }

+ 7 - 2
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/StationInformationMapper.java

@@ -54,8 +54,13 @@ public interface StationInformationMapper
     public int updateStationInformationByStationUpdateEquipment(StationInformation stationInformation);
 
 
-
-
+    /**
+     * 修改工位设备信息
+     *
+     * @param stationInformation 手持机
+     * @return 结果
+     */
+    public int updateStationInformationByStationUpdateByDeviceName(StationInformation stationInformation);
 
 
     /**

+ 63 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/TeamInformationMapper.java

@@ -0,0 +1,63 @@
+package com.zkqy.amichi.mapper;
+
+import java.util.List;
+import com.zkqy.amichi.domain.TeamInformation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 班组信息Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+@Mapper
+public interface TeamInformationMapper 
+{
+    /**
+     * 查询班组信息
+     * 
+     * @param id 班组信息主键
+     * @return 班组信息
+     */
+    public TeamInformation selectTeamInformationById(Long id);
+
+    /**
+     * 查询班组信息列表
+     * 
+     * @param teamInformation 班组信息
+     * @return 班组信息集合
+     */
+    public List<TeamInformation> selectTeamInformationList(TeamInformation teamInformation);
+
+    /**
+     * 新增班组信息
+     * 
+     * @param teamInformation 班组信息
+     * @return 结果
+     */
+    public int insertTeamInformation(TeamInformation teamInformation);
+
+    /**
+     * 修改班组信息
+     * 
+     * @param teamInformation 班组信息
+     * @return 结果
+     */
+    public int updateTeamInformation(TeamInformation teamInformation);
+
+    /**
+     * 删除班组信息
+     * 
+     * @param id 班组信息主键
+     * @return 结果
+     */
+    public int deleteTeamInformationById(Long id);
+
+    /**
+     * 批量删除班组信息
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTeamInformationByIds(Long[] ids);
+}

+ 64 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/TeamPersonnelChangeInformationMapper.java

@@ -0,0 +1,64 @@
+package com.zkqy.amichi.mapper;
+
+import java.util.List;
+
+import com.zkqy.amichi.domain.TeamPersonnelChangeInformation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 班组人员变动信息Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+@Mapper
+public interface TeamPersonnelChangeInformationMapper
+{
+    /**
+     * 查询班组人员变动信息
+     * 
+     * @param id 班组人员变动信息主键
+     * @return 班组人员变动信息
+     */
+    public TeamPersonnelChangeInformation selectTeamPersonnelChangeInformationById(Long id);
+
+    /**
+     * 查询班组人员变动信息列表
+     * 
+     * @param teamPersonnelChangeInformation 班组人员变动信息
+     * @return 班组人员变动信息集合
+     */
+    public List<TeamPersonnelChangeInformation> selectTeamPersonnelChangeInformationList(TeamPersonnelChangeInformation teamPersonnelChangeInformation);
+
+    /**
+     * 新增班组人员变动信息
+     * 
+     * @param teamPersonnelChangeInformation 班组人员变动信息
+     * @return 结果
+     */
+    public int insertTeamPersonnelChangeInformation(TeamPersonnelChangeInformation teamPersonnelChangeInformation);
+
+    /**
+     * 修改班组人员变动信息
+     * 
+     * @param teamPersonnelChangeInformation 班组人员变动信息
+     * @return 结果
+     */
+    public int updateTeamPersonnelChangeInformation(TeamPersonnelChangeInformation teamPersonnelChangeInformation);
+
+    /**
+     * 删除班组人员变动信息
+     * 
+     * @param id 班组人员变动信息主键
+     * @return 结果
+     */
+    public int deleteTeamPersonnelChangeInformationById(Long id);
+
+    /**
+     * 批量删除班组人员变动信息
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTeamPersonnelChangeInformationByIds(Long[] ids);
+}

+ 63 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/TeamPersonnelInformationMapper.java

@@ -0,0 +1,63 @@
+package com.zkqy.amichi.mapper;
+
+import java.util.List;
+import com.zkqy.amichi.domain.TeamPersonnelInformation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 班组人员信息Mapper接口
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+@Mapper
+public interface TeamPersonnelInformationMapper
+{
+    /**
+     * 查询班组人员信息
+     * 
+     * @param id 班组人员信息主键
+     * @return 班组人员信息
+     */
+    public TeamPersonnelInformation selectTeamPersonnelInformationById(Long id);
+
+    /**
+     * 查询班组人员信息列表
+     * 
+     * @param teamPersonnelInformation 班组人员信息
+     * @return 班组人员信息集合
+     */
+    public List<TeamPersonnelInformation> selectTeamPersonnelInformationList(TeamPersonnelInformation teamPersonnelInformation);
+
+    /**
+     * 新增班组人员信息
+     * 
+     * @param teamPersonnelInformation 班组人员信息
+     * @return 结果
+     */
+    public int insertTeamPersonnelInformation(TeamPersonnelInformation teamPersonnelInformation);
+
+    /**
+     * 修改班组人员信息
+     * 
+     * @param teamPersonnelInformation 班组人员信息
+     * @return 结果
+     */
+    public int updateTeamPersonnelInformation(TeamPersonnelInformation teamPersonnelInformation);
+
+    /**
+     * 删除班组人员信息
+     * 
+     * @param id 班组人员信息主键
+     * @return 结果
+     */
+    public int deleteTeamPersonnelInformationById(Long id);
+
+    /**
+     * 批量删除班组人员信息
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTeamPersonnelInformationByIds(Long[] ids);
+}

+ 61 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IExceptionReportInformationSheetService.java

@@ -0,0 +1,61 @@
+package com.zkqy.amichi.service;
+
+import java.util.List;
+import com.zkqy.amichi.domain.ExceptionReportInformationSheet;
+
+/**
+ * 异常报工日志Service接口
+ * 
+ * @author zkqy
+ * @date 2024-09-11
+ */
+public interface IExceptionReportInformationSheetService 
+{
+    /**
+     * 查询异常报工日志
+     * 
+     * @param id 异常报工日志主键
+     * @return 异常报工日志
+     */
+    public ExceptionReportInformationSheet selectExceptionReportInformationSheetById(Long id);
+
+    /**
+     * 查询异常报工日志列表
+     * 
+     * @param exceptionReportInformationSheet 异常报工日志
+     * @return 异常报工日志集合
+     */
+    public List<ExceptionReportInformationSheet> selectExceptionReportInformationSheetList(ExceptionReportInformationSheet exceptionReportInformationSheet);
+
+    /**
+     * 新增异常报工日志
+     * 
+     * @param exceptionReportInformationSheet 异常报工日志
+     * @return 结果
+     */
+    public int insertExceptionReportInformationSheet(ExceptionReportInformationSheet exceptionReportInformationSheet);
+
+    /**
+     * 修改异常报工日志
+     * 
+     * @param exceptionReportInformationSheet 异常报工日志
+     * @return 结果
+     */
+    public int updateExceptionReportInformationSheet(ExceptionReportInformationSheet exceptionReportInformationSheet);
+
+    /**
+     * 批量删除异常报工日志
+     * 
+     * @param ids 需要删除的异常报工日志主键集合
+     * @return 结果
+     */
+    public int deleteExceptionReportInformationSheetByIds(Long[] ids);
+
+    /**
+     * 删除异常报工日志信息
+     * 
+     * @param id 异常报工日志主键
+     * @return 结果
+     */
+    public int deleteExceptionReportInformationSheetById(Long id);
+}

+ 69 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IProductionCardFlowService.java

@@ -0,0 +1,69 @@
+package com.zkqy.amichi.service;
+
+import java.util.List;
+import com.zkqy.amichi.domain.ProductionCardFlow;
+import com.zkqy.amichi.domain.vo.GenerateProcessFlowCardVo;
+
+/**
+ * 工序流转卡流水Service接口
+ * 
+ * @author zkqy
+ * @date 2024-09-19
+ */
+public interface IProductionCardFlowService 
+{
+    /**
+     * 查询工序流转卡流水
+     * 
+     * @param id 工序流转卡流水主键
+     * @return 工序流转卡流水
+     */
+    public ProductionCardFlow selectProductionCardFlowById(Long id);
+
+    /**
+     * 查询工序流转卡流水列表
+     * 
+     * @param productionCardFlow 工序流转卡流水
+     * @return 工序流转卡流水集合
+     */
+    public List<ProductionCardFlow> selectProductionCardFlowList(ProductionCardFlow productionCardFlow);
+
+    /**
+     * 新增工序流转卡流水
+     * 
+     * @param productionCardFlow 工序流转卡流水
+     * @return 结果
+     */
+    public int insertProductionCardFlow(ProductionCardFlow productionCardFlow);
+
+    /**
+     * 修改工序流转卡流水
+     * 
+     * @param productionCardFlow 工序流转卡流水
+     * @return 结果
+     */
+    public int updateProductionCardFlow(ProductionCardFlow productionCardFlow);
+
+    /**
+     * 批量删除工序流转卡流水
+     * 
+     * @param ids 需要删除的工序流转卡流水主键集合
+     * @return 结果
+     */
+    public int deleteProductionCardFlowByIds(Long[] ids);
+
+    /**
+     * 删除工序流转卡流水信息
+     * 
+     * @param id 工序流转卡流水主键
+     * @return 结果
+     */
+    public int deleteProductionCardFlowById(Long id);
+
+    /**
+     * 生成工序流转卡信息
+     * @param generateProcessFlowCardVo
+     * @return
+     */
+    int generateProcessFlowCard(GenerateProcessFlowCardVo generateProcessFlowCardVo);
+}

+ 61 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IProductionOrderListService.java

@@ -0,0 +1,61 @@
+package com.zkqy.amichi.service;
+
+import java.util.List;
+import com.zkqy.amichi.domain.ProductionOrderList;
+
+/**
+ * 生产订单列Service接口
+ * 
+ * @author zkqy
+ * @date 2024-09-19
+ */
+public interface IProductionOrderListService 
+{
+    /**
+     * 查询生产订单列
+     * 
+     * @param id 生产订单列主键
+     * @return 生产订单列
+     */
+    public ProductionOrderList selectProductionOrderListById(Long id);
+
+    /**
+     * 查询生产订单列列表
+     * 
+     * @param productionOrderList 生产订单列
+     * @return 生产订单列集合
+     */
+    public List<ProductionOrderList> selectProductionOrderListList(ProductionOrderList productionOrderList);
+
+    /**
+     * 新增生产订单列
+     * 
+     * @param productionOrderList 生产订单列
+     * @return 结果
+     */
+    public int insertProductionOrderList(ProductionOrderList productionOrderList);
+
+    /**
+     * 修改生产订单列
+     * 
+     * @param productionOrderList 生产订单列
+     * @return 结果
+     */
+    public int updateProductionOrderList(ProductionOrderList productionOrderList);
+
+    /**
+     * 批量删除生产订单列
+     * 
+     * @param ids 需要删除的生产订单列主键集合
+     * @return 结果
+     */
+    public int deleteProductionOrderListByIds(Long[] ids);
+
+    /**
+     * 删除生产订单列信息
+     * 
+     * @param id 生产订单列主键
+     * @return 结果
+     */
+    public int deleteProductionOrderListById(Long id);
+}

+ 2 - 1
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IReportInformationSheetService.java

@@ -2,6 +2,7 @@ package com.zkqy.amichi.service;
 
 import java.util.List;
 import com.zkqy.amichi.domain.ReportInformationSheet;
+import com.zkqy.common.core.domain.AjaxResult;
 
 /**
  * 报工日志Service接口
@@ -33,7 +34,7 @@ public interface IReportInformationSheetService
      * @param reportInformationSheet 报工日志
      * @return 结果
      */
-    public int insertReportInformationSheet(ReportInformationSheet reportInformationSheet);
+    public AjaxResult insertReportInformationSheet(ReportInformationSheet reportInformationSheet);
 
     /**
      * 修改报工日志

+ 61 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/ITeamInformationService.java

@@ -0,0 +1,61 @@
+package com.zkqy.amichi.service;
+
+import java.util.List;
+import com.zkqy.amichi.domain.TeamInformation;
+
+/**
+ * 班组信息Service接口
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+public interface ITeamInformationService 
+{
+    /**
+     * 查询班组信息
+     * 
+     * @param id 班组信息主键
+     * @return 班组信息
+     */
+    public TeamInformation selectTeamInformationById(Long id);
+
+    /**
+     * 查询班组信息列表
+     * 
+     * @param teamInformation 班组信息
+     * @return 班组信息集合
+     */
+    public List<TeamInformation> selectTeamInformationList(TeamInformation teamInformation);
+
+    /**
+     * 新增班组信息
+     * 
+     * @param teamInformation 班组信息
+     * @return 结果
+     */
+    public int insertTeamInformation(TeamInformation teamInformation);
+
+    /**
+     * 修改班组信息
+     * 
+     * @param teamInformation 班组信息
+     * @return 结果
+     */
+    public int updateTeamInformation(TeamInformation teamInformation);
+
+    /**
+     * 批量删除班组信息
+     * 
+     * @param ids 需要删除的班组信息主键集合
+     * @return 结果
+     */
+    public int deleteTeamInformationByIds(Long[] ids);
+
+    /**
+     * 删除班组信息信息
+     * 
+     * @param id 班组信息主键
+     * @return 结果
+     */
+    public int deleteTeamInformationById(Long id);
+}

+ 61 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/ITeamPersonnelChangeInformationService.java

@@ -0,0 +1,61 @@
+package com.zkqy.amichi.service;
+
+import java.util.List;
+import com.zkqy.amichi.domain.TeamPersonnelChangeInformation;
+
+/**
+ * 班组人员变动信息Service接口
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+public interface ITeamPersonnelChangeInformationService
+{
+    /**
+     * 查询班组人员变动信息
+     * 
+     * @param id 班组人员变动信息主键
+     * @return 班组人员变动信息
+     */
+    public TeamPersonnelChangeInformation selectTeamPersonnelChangeInformationById(Long id);
+
+    /**
+     * 查询班组人员变动信息列表
+     * 
+     * @param teamPersonnelChangeInformation 班组人员变动信息
+     * @return 班组人员变动信息集合
+     */
+    public List<TeamPersonnelChangeInformation> selectTeamPersonnelChangeInformationList(TeamPersonnelChangeInformation teamPersonnelChangeInformation);
+
+    /**
+     * 新增班组人员变动信息
+     * 
+     * @param teamPersonnelChangeInformation 班组人员变动信息
+     * @return 结果
+     */
+    public int insertTeamPersonnelChangeInformation(TeamPersonnelChangeInformation teamPersonnelChangeInformation);
+
+    /**
+     * 修改班组人员变动信息
+     * 
+     * @param teamPersonnelChangeInformation 班组人员变动信息
+     * @return 结果
+     */
+    public int updateTeamPersonnelChangeInformation(TeamPersonnelChangeInformation teamPersonnelChangeInformation);
+
+    /**
+     * 批量删除班组人员变动信息
+     * 
+     * @param ids 需要删除的班组人员变动信息主键集合
+     * @return 结果
+     */
+    public int deleteTeamPersonnelChangeInformationByIds(Long[] ids);
+
+    /**
+     * 删除班组人员变动信息信息
+     * 
+     * @param id 班组人员变动信息主键
+     * @return 结果
+     */
+    public int deleteTeamPersonnelChangeInformationById(Long id);
+}

+ 61 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/ITeamPersonnelInformationService.java

@@ -0,0 +1,61 @@
+package com.zkqy.amichi.service;
+
+import java.util.List;
+import com.zkqy.amichi.domain.TeamPersonnelInformation;
+
+/**
+ * 班组人员信息Service接口
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+public interface ITeamPersonnelInformationService
+{
+    /**
+     * 查询班组人员信息
+     * 
+     * @param id 班组人员信息主键
+     * @return 班组人员信息
+     */
+    public TeamPersonnelInformation selectTeamPersonnelInformationById(Long id);
+
+    /**
+     * 查询班组人员信息列表
+     * 
+     * @param teamPersonnelInformation 班组人员信息
+     * @return 班组人员信息集合
+     */
+    public List<TeamPersonnelInformation> selectTeamPersonnelInformationList(TeamPersonnelInformation teamPersonnelInformation);
+
+    /**
+     * 新增班组人员信息
+     * 
+     * @param teamPersonnelInformation 班组人员信息
+     * @return 结果
+     */
+    public int insertTeamPersonnelInformation(TeamPersonnelInformation teamPersonnelInformation);
+
+    /**
+     * 修改班组人员信息
+     * 
+     * @param teamPersonnelInformation 班组人员信息
+     * @return 结果
+     */
+    public int updateTeamPersonnelInformation(TeamPersonnelInformation teamPersonnelInformation);
+
+    /**
+     * 批量删除班组人员信息
+     * 
+     * @param ids 需要删除的班组人员信息主键集合
+     * @return 结果
+     */
+    public int deleteTeamPersonnelInformationByIds(Long[] ids);
+
+    /**
+     * 删除班组人员信息信息
+     * 
+     * @param id 班组人员信息主键
+     * @return 结果
+     */
+    public int deleteTeamPersonnelInformationById(Long id);
+}

+ 10 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IWarehouseEntryInformationService.java

@@ -2,7 +2,9 @@ package com.zkqy.amichi.service;
 
 import java.util.List;
 import com.zkqy.amichi.domain.WarehouseEntryInformation;
+import com.zkqy.amichi.domain.vo.ProcessWarehousingVo;
 import com.zkqy.amichi.domain.vo.WarehouseEntryInformationVo;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 入库单信息Service接口
@@ -87,4 +89,12 @@ public interface IWarehouseEntryInformationService
      * @return
      */
     int updateWarehouseEntryInformationByIds(Long[] ids);
+
+
+    /**
+     * 工序节点入库逻辑
+     * @param ProcessWarehousingVo
+     * @return
+     */
+     int processWarehousing(List<ProcessWarehousingVo> ProcessWarehousingVo);
 }

+ 96 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/ExceptionReportInformationSheetServiceImpl.java

@@ -0,0 +1,96 @@
+package com.zkqy.amichi.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.amichi.mapper.ExceptionReportInformationSheetMapper;
+import com.zkqy.amichi.domain.ExceptionReportInformationSheet;
+import com.zkqy.amichi.service.IExceptionReportInformationSheetService;
+
+/**
+ * 异常报工日志Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-09-11
+ */
+@Service
+public class ExceptionReportInformationSheetServiceImpl implements IExceptionReportInformationSheetService 
+{
+    @Autowired
+    private ExceptionReportInformationSheetMapper exceptionReportInformationSheetMapper;
+
+    /**
+     * 查询异常报工日志
+     * 
+     * @param id 异常报工日志主键
+     * @return 异常报工日志
+     */
+    @Override
+    public ExceptionReportInformationSheet selectExceptionReportInformationSheetById(Long id)
+    {
+        return exceptionReportInformationSheetMapper.selectExceptionReportInformationSheetById(id);
+    }
+
+    /**
+     * 查询异常报工日志列表
+     * 
+     * @param exceptionReportInformationSheet 异常报工日志
+     * @return 异常报工日志
+     */
+    @Override
+    public List<ExceptionReportInformationSheet> selectExceptionReportInformationSheetList(ExceptionReportInformationSheet exceptionReportInformationSheet)
+    {
+        return exceptionReportInformationSheetMapper.selectExceptionReportInformationSheetList(exceptionReportInformationSheet);
+    }
+
+    /**
+     * 新增异常报工日志
+     * 
+     * @param exceptionReportInformationSheet 异常报工日志
+     * @return 结果
+     */
+    @Override
+    public int insertExceptionReportInformationSheet(ExceptionReportInformationSheet exceptionReportInformationSheet)
+    {
+        exceptionReportInformationSheet.setCreateTime(DateUtils.getNowDate());
+        return exceptionReportInformationSheetMapper.insertExceptionReportInformationSheet(exceptionReportInformationSheet);
+    }
+
+    /**
+     * 修改异常报工日志
+     * 
+     * @param exceptionReportInformationSheet 异常报工日志
+     * @return 结果
+     */
+    @Override
+    public int updateExceptionReportInformationSheet(ExceptionReportInformationSheet exceptionReportInformationSheet)
+    {
+        exceptionReportInformationSheet.setUpdateTime(DateUtils.getNowDate());
+        return exceptionReportInformationSheetMapper.updateExceptionReportInformationSheet(exceptionReportInformationSheet);
+    }
+
+    /**
+     * 批量删除异常报工日志
+     * 
+     * @param ids 需要删除的异常报工日志主键
+     * @return 结果
+     */
+    @Override
+    public int deleteExceptionReportInformationSheetByIds(Long[] ids)
+    {
+        return exceptionReportInformationSheetMapper.deleteExceptionReportInformationSheetByIds(ids);
+    }
+
+    /**
+     * 删除异常报工日志信息
+     * 
+     * @param id 异常报工日志主键
+     * @return 结果
+     */
+    @Override
+    public int deleteExceptionReportInformationSheetById(Long id)
+    {
+        return exceptionReportInformationSheetMapper.deleteExceptionReportInformationSheetById(id);
+    }
+}

+ 129 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/ProductionCardFlowServiceImpl.java

@@ -0,0 +1,129 @@
+package com.zkqy.amichi.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.zkqy.amichi.domain.vo.GenerateProcessFlowCardVo;
+import com.zkqy.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.amichi.mapper.ProductionCardFlowMapper;
+import com.zkqy.amichi.domain.ProductionCardFlow;
+import com.zkqy.amichi.service.IProductionCardFlowService;
+
+/**
+ * 工序流转卡流水Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-09-19
+ */
+@Service
+public class ProductionCardFlowServiceImpl implements IProductionCardFlowService 
+{
+    @Autowired
+    private ProductionCardFlowMapper productionCardFlowMapper;
+
+    /**
+     * 查询工序流转卡流水
+     * 
+     * @param id 工序流转卡流水主键
+     * @return 工序流转卡流水
+     */
+    @Override
+    public ProductionCardFlow selectProductionCardFlowById(Long id)
+    {
+        return productionCardFlowMapper.selectProductionCardFlowById(id);
+    }
+
+    /**
+     * 查询工序流转卡流水列表
+     * 
+     * @param productionCardFlow 工序流转卡流水
+     * @return 工序流转卡流水
+     */
+    @Override
+    public List<ProductionCardFlow> selectProductionCardFlowList(ProductionCardFlow productionCardFlow)
+    {
+        return productionCardFlowMapper.selectProductionCardFlowList(productionCardFlow);
+    }
+
+    /**
+     * 新增工序流转卡流水
+     * 
+     * @param productionCardFlow 工序流转卡流水
+     * @return 结果
+     */
+    @Override
+    public int insertProductionCardFlow(ProductionCardFlow productionCardFlow)
+    {
+        productionCardFlow.setCreateTime(DateUtils.getNowDate());
+        return productionCardFlowMapper.insertProductionCardFlow(productionCardFlow);
+    }
+
+    /**
+     * 修改工序流转卡流水
+     * 
+     * @param productionCardFlow 工序流转卡流水
+     * @return 结果
+     */
+    @Override
+    public int updateProductionCardFlow(ProductionCardFlow productionCardFlow)
+    {
+        productionCardFlow.setUpdateTime(DateUtils.getNowDate());
+        return productionCardFlowMapper.updateProductionCardFlow(productionCardFlow);
+    }
+
+    /**
+     * 批量删除工序流转卡流水
+     * 
+     * @param ids 需要删除的工序流转卡流水主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProductionCardFlowByIds(Long[] ids)
+    {
+        return productionCardFlowMapper.deleteProductionCardFlowByIds(ids);
+    }
+
+    /**
+     * 删除工序流转卡流水信息
+     * 
+     * @param id 工序流转卡流水主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProductionCardFlowById(Long id)
+    {
+        return productionCardFlowMapper.deleteProductionCardFlowById(id);
+    }
+
+    /**
+     * 生成工序流转卡信息
+     * @param generateProcessFlowCardVo
+     * @return
+     */
+    @Override
+    public int generateProcessFlowCard(GenerateProcessFlowCardVo generateProcessFlowCardVo) {
+        List<ProductionCardFlow> productionCardFlows=new ArrayList<>();
+        // 生成序列号并填充 ProductionCardFlow 对象
+            int sequenceStart = 1; // 序列号起始值
+            for (int i = 0; i < generateProcessFlowCardVo.getQuantity().length(); i++) {
+                String sequenceNumber = String.format("%03d", sequenceStart + i);
+                ProductionCardFlow productionCardFlow=new ProductionCardFlow();
+                productionCardFlow.setSerialNumber(generateProcessFlowCardVo.getDemandDocumentNumber()+sequenceNumber);//序列号
+                productionCardFlow.setDemandDocumentNumber(generateProcessFlowCardVo.getDemandDocumentNumber());//需求单据号
+                productionCardFlow.setProductionOrderListId(generateProcessFlowCardVo.getProductionOrderListId());//订单id
+                productionCardFlow.setPrintQuantity("0");//打印数量
+                productionCardFlows.add(productionCardFlow);//对象放到集合中
+            }
+        //批量插入数据
+        int i = productionCardFlowMapper.insertProductionCardFlowBatch(productionCardFlows);
+        return i;
+    }
+
+    public static void main(String[] args) {
+        int i=001;
+        int b=001+1;
+        System.out.println(b);
+    }
+}

+ 98 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/ProductionOrderListServiceImpl.java

@@ -0,0 +1,98 @@
+package com.zkqy.amichi.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.amichi.mapper.ProductionOrderListMapper;
+import com.zkqy.amichi.domain.ProductionOrderList;
+import com.zkqy.amichi.service.IProductionOrderListService;
+
+/**
+ * 生产订单列Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-09-19
+ */
+@Service
+public class ProductionOrderListServiceImpl implements IProductionOrderListService 
+{
+
+    @Autowired
+    private ProductionOrderListMapper productionOrderListMapper;
+
+    /**
+     * 查询生产订单列
+     * 
+     * @param id 生产订单列主键
+     * @return 生产订单列
+     */
+    @Override
+    public ProductionOrderList selectProductionOrderListById(Long id)
+    {
+        return productionOrderListMapper.selectProductionOrderListById(id);
+    }
+
+    /**
+     * 查询生产订单列列表
+     * 
+     * @param productionOrderList 生产订单列
+     * @return 生产订单列
+     */
+    @Override
+    public List<ProductionOrderList> selectProductionOrderListList(ProductionOrderList productionOrderList)
+    {
+        return productionOrderListMapper.selectProductionOrderListList(productionOrderList);
+    }
+
+    /**
+     * 新增生产订单列
+     * 
+     * @param productionOrderList 生产订单列
+     * @return 结果
+     */
+    @Override
+    public int insertProductionOrderList(ProductionOrderList productionOrderList)
+    {
+        productionOrderList.setCreateTime(DateUtils.getNowDate());
+        productionOrderList.setTaskNodeKey("0");//未生成工序流转卡
+        return productionOrderListMapper.insertProductionOrderList(productionOrderList);
+    }
+
+    /**
+     * 修改生产订单列
+     * 
+     * @param productionOrderList 生产订单列
+     * @return 结果
+     */
+    @Override
+    public int updateProductionOrderList(ProductionOrderList productionOrderList)
+    {
+        productionOrderList.setUpdateTime(DateUtils.getNowDate());
+        return productionOrderListMapper.updateProductionOrderList(productionOrderList);
+    }
+
+    /**
+     * 批量删除生产订单列
+     * 
+     * @param ids 需要删除的生产订单列主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProductionOrderListByIds(Long[] ids)
+    {
+        return productionOrderListMapper.deleteProductionOrderListByIds(ids);
+    }
+
+    /**
+     * 删除生产订单列信息
+     * 
+     * @param id 生产订单列主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProductionOrderListById(Long id)
+    {
+        return productionOrderListMapper.deleteProductionOrderListById(id);
+    }
+}

+ 74 - 2
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/ReportInformationSheetServiceImpl.java

@@ -1,10 +1,18 @@
 package com.zkqy.amichi.service.impl;
 
 import java.util.List;
+import java.util.Optional;
 
+import com.zkqy.amichi.domain.ProductionPlanningManagement;
 import com.zkqy.amichi.domain.StationInformation;
+import com.zkqy.amichi.mapper.ProductionPlanningManagementMapper;
 import com.zkqy.amichi.mapper.StationInformationMapper;
+import com.zkqy.common.core.domain.AjaxResult;
 import com.zkqy.common.utils.DateUtils;
+import com.zkqy.execution.produce.dispersed.entity.BpmExecuteNodeLog;
+import com.zkqy.execution.produce.dispersed.entity.BpmExecuteProcess;
+import com.zkqy.execution.produce.dispersed.mapper.BpmExecuteNodeLogMapper;
+import com.zkqy.execution.produce.dispersed.mapper.BpmExecuteProcessMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.zkqy.amichi.mapper.ReportInformationSheetMapper;
@@ -28,6 +36,16 @@ public class ReportInformationSheetServiceImpl implements IReportInformationShee
     @Autowired
     private StationInformationMapper stationInformationMapper;
 
+    @Autowired
+    private ProductionPlanningManagementMapper productionPlanningManagementMapper;
+
+    @Autowired
+    private BpmExecuteProcessMapper bpmExecuteProcessMapper;
+
+    @Autowired
+    private BpmExecuteNodeLogMapper bpmExecuteNodeLogMapper;
+
+
     /**
      * 查询报工日志
      * 
@@ -59,7 +77,7 @@ public class ReportInformationSheetServiceImpl implements IReportInformationShee
      * @return 结果
      */
     @Override
-    public int insertReportInformationSheet(ReportInformationSheet reportInformationSheet)
+    public AjaxResult insertReportInformationSheet(ReportInformationSheet reportInformationSheet)
     {
         reportInformationSheet.setCreateTime(DateUtils.getNowDate());
         //查询工位表信息
@@ -68,8 +86,62 @@ public class ReportInformationSheetServiceImpl implements IReportInformationShee
         List<StationInformation> stationInformations = stationInformationMapper.selectStationInformationList(stationInformation);
         if(stationInformations.size()>0){
             reportInformationSheet.setCurrentStationStationPeople(stationInformations.get(0).getPersonnelName());//工位人员姓名
+            reportInformationSheet.setProcess(stationInformations.get(0).getStationName());//工序
+        }else {
+            AjaxResult.error(601,"工位码信息输入有误~请检查后从新输入");
+        }
+        //订单号
+        String modifiedString = "DQY" + reportInformationSheet.getProductCode().substring(0,  reportInformationSheet.getProductCode().length() - 3);
+        reportInformationSheet.setOrderNumber(modifiedString);
+        //找计划
+        List<ProductionPlanningManagement> productionPlanningManagements = productionPlanningManagementMapper.selectProductionPlanningManagementByOrderNumebrOrPlanNumber(modifiedString, modifiedString);
+        if(productionPlanningManagements.size()<=0) {
+            return AjaxResult.error(601,"未找到当前产品相关计划");
+        }else {
+            boolean equals = productionPlanningManagements.get(0).getPlanType().equals("3");
+            if(equals){
+                return AjaxResult.error("600","该计划已经完成");
+            }else {
+                //找到计划了先确认下数量(我计划下的数量)
+                ProductionPlanningManagement productionPlanningManagement = productionPlanningManagements.get(0);
+                //拿到计划id------->根据计划id查询流程信息
+                BpmExecuteProcess process=new BpmExecuteProcess();
+                process.setTaskPlanKey(productionPlanningManagement.getId().toString());//计划id
+                List<BpmExecuteProcess> bpmExecuteProcesses = bpmExecuteProcessMapper.selectBpmExecuteProcessListfjqy(process);
+                if(bpmExecuteProcesses.size()<=0){
+                    return AjaxResult.error(601,"没有找到当前计划的流程管道");
+                }else {
+                    //管道
+                    String taskKey = bpmExecuteProcesses.get(0).getTaskKey();
+                    BpmExecuteNodeLog bpmExecuteNodeLog=new BpmExecuteNodeLog();
+                    bpmExecuteNodeLog.setTaskProcessKey(taskKey);//流程编号
+                    bpmExecuteNodeLog.setTaskNodeName(reportInformationSheet.getProcess());//工序名称
+                    List<BpmExecuteNodeLog> bpmExecuteNodeLogs = bpmExecuteNodeLogMapper.selectBpmExecuteNodeLogListfjqy(bpmExecuteNodeLog);
+                    String taskNodeNumber = bpmExecuteNodeLogs.get(0).getTaskNodeNumber();//节点数量
+                    if(taskNodeNumber==null||taskNodeNumber.equals("")){
+                         taskNodeNumber="0";
+                    }
+                    //判断你当前报工工序节点是否已经报够数量了
+                    if(Integer.parseInt(taskNodeNumber)>=Integer.parseInt(productionPlanningManagement.getQuantity())){
+                        return AjaxResult.error(601,"当前工序已完成计划数量");
+                    }else {
+                        //否则更新接单已完成数量
+                        int i = Math.addExact(Integer.parseInt(taskNodeNumber), 1);
+                        BpmExecuteNodeLog upBpmExecuteNodeLog=new BpmExecuteNodeLog();
+                        upBpmExecuteNodeLog.setTaskNodeNumber(String.valueOf(i));//更新数量
+                        upBpmExecuteNodeLog.setId(bpmExecuteNodeLogs.get(0).getId());//节点日志id
+                        int i1 = bpmExecuteNodeLogMapper.updateBpmExecuteNodeLogfjqy(upBpmExecuteNodeLog);
+                        if(i1 >0){
+                            //根据工位码查询
+                            reportInformationSheetMapper.insertReportInformationSheet(reportInformationSheet);
+                            return AjaxResult.success("报工成功");
+                        }else {
+                            return AjaxResult.error("报工失败");
+                        }
+                    }
+                }
+            }
         }
-        return reportInformationSheetMapper.insertReportInformationSheet(reportInformationSheet);
     }
 
     /**

+ 200 - 19
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/StationInformationServiceImpl.java

@@ -1,19 +1,31 @@
 package com.zkqy.amichi.service.impl;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
-import com.zkqy.amichi.domain.ProductionPlanningManagement;
-import com.zkqy.amichi.domain.ReportInformationSheet;
+import cn.hutool.core.date.DateTime;
+import com.zkqy.amichi.domain.*;
+import com.zkqy.amichi.mapper.ExceptionReportInformationSheetMapper;
 import com.zkqy.amichi.mapper.ProductionPlanningManagementMapper;
 import com.zkqy.amichi.mapper.ReportInformationSheetMapper;
+import com.zkqy.amichi.utils.WarehouseEntryNumberGenerator;
 import com.zkqy.common.annotation.Log;
 import com.zkqy.common.core.domain.AjaxResult;
 import com.zkqy.common.utils.DateUtils;
 import com.zkqy.common.utils.SecurityUtils;
+import com.zkqy.execution.produce.dispersed.controller.BpmExecuteNodeController;
+import com.zkqy.execution.produce.dispersed.entity.BpmExecuteNodeLog;
+import com.zkqy.execution.produce.dispersed.entity.BpmExecuteProcess;
+import com.zkqy.execution.produce.dispersed.mapper.BpmExecuteNodeLogMapper;
+import com.zkqy.execution.produce.dispersed.mapper.BpmExecuteProcessMapper;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.zkqy.amichi.mapper.StationInformationMapper;
-import com.zkqy.amichi.domain.StationInformation;
 import com.zkqy.amichi.service.IStationInformationService;
 
 /**
@@ -30,9 +42,20 @@ public class StationInformationServiceImpl implements IStationInformationService
     @Autowired
     private ReportInformationSheetMapper reportInformationSheetMapper;
 
+    @Autowired
+    private ExceptionReportInformationSheetMapper exceptionReportInformationSheetMapper;
+
     @Autowired
     private  ProductionPlanningManagementMapper productionPlanningManagementMapper;
 
+    @Autowired
+    private BpmExecuteProcessMapper bpmExecuteProcessMapper;
+
+    @Autowired
+    private BpmExecuteNodeLogMapper  bpmExecuteNodeLogMapper;
+
+    @Autowired
+    private  PlanTaskDetailsServiceImpl planTaskDetailsService;
 
     /**
      * 查询工位信息
@@ -108,31 +131,64 @@ public class StationInformationServiceImpl implements IStationInformationService
         return stationInformationMapper.deleteStationInformationById(id);
     }
 
+    @Autowired
+    WarehouseEntryNumberGenerator warehouseEntryNumberGenerator;
+
+
     @Override
     public String stationProductScanning(String contentString) {
         try {
-            if(contentString.contains("scan@")){//这个是工位码扫描逻辑
+            if (contentString.contains("scan@")) {//这个是工位码扫描逻辑
                 String[] content = contentString.split("&");
                 //更改当前工位码的设备信息
-                StationInformation stationInformation=new StationInformation();
+                StationInformation stationInformation = new StationInformation();
                 stationInformation.setDeviceName(content[2]);//设备信息
                 //查询当前设备是否已经绑定了工位信息
                 List<StationInformation> stationInformations = stationInformationMapper.selectStationInformationList(stationInformation);
-                if(stationInformations.size()>0){ //更新原先绑定的工位信息为空
+                if (stationInformations.size() > 0) { //更新原先绑定的工位信息为空
                     stationInformation.setDeviceName("");//设备信息
+                    stationInformation.setTeamCode("");//班组码信息
                     stationInformation.setStationCode(stationInformations.get(0).getStationCode());//工位码信息
                     stationInformationMapper.updateStationInformationByStationUpdateEquipment(stationInformation);
                 }
                 stationInformation.setDeviceName(content[2]);//设备信息
                 stationInformation.setStationCode(content[1]);//工位码
                 int i = stationInformationMapper.updateStationInformationByStationUpdateEquipment(stationInformation);
-                return  "工位信息绑定成功";
-            }else{ //产品扫描逻辑
+                return "手持机工位信息绑定成功";
+            } else if (contentString.contains("team@")){
+                String[] content = contentString.split("&");
+                //扫工位码之前先判断你当前手持机扫没扫过工位码信息
+                StationInformation stationInformationByDeviceName=new StationInformation();
+                stationInformationByDeviceName.setDeviceName(content[2]);//手持机标识
+                List<StationInformation> stationInformationsByDeviceName = stationInformationMapper.selectStationInformationList(stationInformationByDeviceName);
+                if(stationInformationsByDeviceName.size()<=0){
+                    return "请先用当前手持先扫工位码";
+                }
+                //先查询当前班组码有没有在其他工位上有就先给他清空
+                StationInformation stationInformation=new StationInformation();
+                stationInformation.setTeamCode(content[1]);//班组码信息
+                List<StationInformation> stationInformations = stationInformationMapper.selectStationInformationList(stationInformation);
+                if (stationInformations.size() > 0) { //更新原先绑定的工位信息为空
+                    stationInformation.setTeamName("");//班组码信息
+                    stationInformation.setStationCode(stationInformations.get(0).getStationCode());//工位码信息
+                    stationInformationMapper.updateStationInformationByStationUpdateEquipment(stationInformation);
+                }
+                stationInformation.setTeamCode(content[1]);//班组码
+                stationInformation.setDeviceName(content[2]);//手持机码
+                int i = stationInformationMapper.updateStationInformationByStationUpdateByDeviceName(stationInformation);
+
+                List<StationInformation> stationInformationsTwo = stationInformationMapper.selectStationInformationList(stationInformation);
+                //拿到工位id
+                StationInformation stationInformation1 = stationInformationsTwo.get(0);
+                return "工位:"+stationInformation1.getStationName()+" 班组:"+stationInformation1.getTeamName();
+            }
+            else{ //产品扫描逻辑
                 String[] content = contentString.split("&");
                 StationInformation stationInformation=new StationInformation();
                 stationInformation.setDeviceName(content[1]);//设备名称
-                //插入节点产品运行日志信息
+                //查询工位信息表
                 List<StationInformation> stationInformations = stationInformationMapper.selectStationInformationList(stationInformation);
+                //节点.
                 if(stationInformations.size()>0){
                     StationInformation stationInformation1 = stationInformations.get(0);//根据手持机设备名称得到工位信息
                     ReportInformationSheet reportInformationSheet=new ReportInformationSheet();
@@ -140,34 +196,159 @@ public class StationInformationServiceImpl implements IStationInformationService
                     reportInformationSheet.setStationCode(stationInformation1.getStationCode());//工位码
                     reportInformationSheet.setProcess(stationInformation1.getStationName());//工序名称
                     reportInformationSheet.setProductCode(content[0]);//产品码
+                    reportInformationSheet.setHandheldDevice(content[1]);//手持机
+                    reportInformationSheet.setCreateTime(new DateTime());//创建时间
                     //推算出来产品编号或者订单编号
                     String modifiedString = "DQY" + content[0].substring(0, content[0].length() - 3);
                     reportInformationSheet.setOrderNumber(modifiedString);//订单号或任务号
                     //更新节点生产数量
                     //先拿到当前任务数量
                     List<ProductionPlanningManagement> productionPlanningManagements = productionPlanningManagementMapper.selectProductionPlanningManagementByOrderNumebrOrPlanNumber(modifiedString, modifiedString);
-                    if(productionPlanningManagements.size()<0){
-                        return "未找到当前产品计划报工失败";
+                    if(productionPlanningManagements.size()<=0){
+                        //插入异常报工信息
+                        extracted(reportInformationSheet,"未找到当前产品计划报工失败--信息不匹配");
+                        return "未找到当前产品计划报工失败--信息不匹配";
                     }else {
-                        //找到计划了先确认下数量
-                        ProductionPlanningManagement productionPlanningManagement = productionPlanningManagements.get(0);
-                        //拿到数量
-                        String quantity = productionPlanningManagement.getQuantity();
-                        //拿到计划id------->根据计划id查询流程信息
+                        boolean equals = productionPlanningManagements.get(0).getPlanType().equals("3");
+                        if(equals){
+                            //插入异常报工信息
+                            extracted(reportInformationSheet,"该计划已经完成--信息不匹配");
+                            return "该计划已经完成--信息不匹配";
+                        }else {
+                            //找到计划了先确认下数量(我计划下的数量)
+                            ProductionPlanningManagement productionPlanningManagement = productionPlanningManagements.get(0);
+                            //拿到计划id------->根据计划id查询流程信息
+                            BpmExecuteProcess process=new BpmExecuteProcess();
+                            process.setTaskPlanKey(productionPlanningManagement.getId().toString());//计划id
+                            List<BpmExecuteProcess> bpmExecuteProcesses = bpmExecuteProcessMapper.selectBpmExecuteProcessListfjqy(process);
+                            if(bpmExecuteProcesses.size()<=0){
+                                //插入异常报工信息
+                                extracted(reportInformationSheet,"没有找到当前计划的流程管道--信息不匹配");
+                                return "没有找到当前计划的流程管道--信息不匹配";
+                            }else {
+                                //管道
+                                String taskKey = bpmExecuteProcesses.get(0).getTaskKey();
+                                BpmExecuteNodeLog bpmExecuteNodeLog=new BpmExecuteNodeLog();
+                                bpmExecuteNodeLog.setTaskProcessKey(taskKey);//流程编号
+                                bpmExecuteNodeLog.setTaskNodeName(stationInformation1.getStationName());//工序名称
+                                List<BpmExecuteNodeLog> bpmExecuteNodeLogs = bpmExecuteNodeLogMapper.selectBpmExecuteNodeLogListfjqy(bpmExecuteNodeLog);
+                                String taskNodeNumber = bpmExecuteNodeLogs.get(0).getTaskNodeNumber();//节点数量
+                                //判断你当前报工工序节点是否已经报够数量了
+                                if(taskNodeNumber==null||taskNodeNumber.equals("")){
+                                    taskNodeNumber="0";
+                                }
+                                if(Integer.parseInt(taskNodeNumber)>=Integer.parseInt(productionPlanningManagement.getQuantity())){
+                                    //插入异常报工信息
+                                    extracted(reportInformationSheet,"当前工序已完成计划数量");
+                                    return "当前工序已完成计划数量";
+                                }else {
+                                    //否则更新接单已完成数量
+                                    int i = Math.addExact(Integer.parseInt(taskNodeNumber), 1);
+                                    BpmExecuteNodeLog upBpmExecuteNodeLog=new BpmExecuteNodeLog();
+                                    upBpmExecuteNodeLog.setTaskNodeNumber(String.valueOf(i));//更新数量
+                                    upBpmExecuteNodeLog.setId(bpmExecuteNodeLogs.get(0).getId());//节点日志id
+                                    //判断同一部手持机扫描时间间隔是否超过一分钟
+                                    ReportInformationSheet sheetsjjg=new ReportInformationSheet();
+                                    sheetsjjg.setProcess(stationInformation1.getStationName());//工序
+                                    sheetsjjg.setHandheldDevice(content[2]);//设备信息
+                                    ReportInformationSheet reportInformationSheetsSc = reportInformationSheetMapper.selectReportInformationSheetListOrderBy(sheetsjjg);
+                                    Date date1 = reportInformationSheetsSc.getCreateTime(); //上次扫码时间
+                                    Date date2 = new Date();//当前时间
+                                    String s = DateUtils.timeDistanceMin(date2, date1);
+                                    if(Integer.parseInt(s)<1){
+                                        //插入异常报工信息
+                                        extracted(reportInformationSheet,"两次扫码之间的间隔不能小于1分钟");//???? 看看那个小工人有这个坏心思
+                                        return "两次扫码之间的间隔不能小于1分钟";
+                                    }
+                                    //工序--产品重复扫描
+                                        ReportInformationSheet reportInformationSheet1=new ReportInformationSheet();
+                                        reportInformationSheet1.setProcess(stationInformation1.getStationName());//工序名称
+                                        reportInformationSheet1.setProductCode(stationInformation1.getStationName());//产品码
+                                        List<ReportInformationSheet> reportInformationSheets = reportInformationSheetMapper.selectReportInformationSheetList(reportInformationSheet1);
+                                        if(reportInformationSheets.size()>0){
+                                            //插入异常报工信息
+                                            extracted(reportInformationSheet,"产品不能重复扫描");
+                                            return "产品不能重复扫描";
+                                        }
 
+                                    //当前产品只能被下一个工序进行扫描
+                                        //查询当前计划的所有工序信息
+                                        BpmExecuteNodeLog bpmExecuteNodeLogString=new BpmExecuteNodeLog();
+                                        bpmExecuteNodeLog.setTaskProcessKey(taskKey);//流程编号
+                                        List<BpmExecuteNodeLog> bpmExecuteNodeLogsString = bpmExecuteNodeLogMapper.selectBpmExecuteNodeLogListfjqy(bpmExecuteNodeLogString);
+                                        List<String> collect = bpmExecuteNodeLogsString.stream().map(BpmExecuteNodeLog::getTaskNodeName).collect(Collectors.toList());
+                                        //所有的集合我拿到了
+                                        ReportInformationSheet reportInformationSheet1String=new ReportInformationSheet();
+                                        reportInformationSheet1String.setProductCode(stationInformation1.getStationName());//产品码
+                                        List<ReportInformationSheet> reportInformationSheetsString = reportInformationSheetMapper.selectReportInformationSheetList(reportInformationSheet1String);
+                                        ReportInformationSheet reportInformationSheet2 = reportInformationSheetsString.get(0);
+                                        String process1 = reportInformationSheet2.getProcess();//这个产品编码上一次是那个工序扫的?
+                                        int nextIndex=0;
+                                        for (int i1 = 0; i1 < collect.size(); i1++) {
+                                            //如果工序名称相同
+                                            if(collect.get(i1).equals(process1)){
+                                                nextIndex=i1+1;
+                                            }
+                                        }
+                                        //说明已经在最后一个节点了,你前边的手持工序在怎么扫都扫不上的
+                                        if(nextIndex>=collect.size()){
+                                            //插入异常报工信息
+                                            extracted(reportInformationSheet,"请选择对应工序的手持机进行扫描");
+                                            return "请选择对应工序的手持机进行扫描";
+                                        }else {
+                                            if(!stationInformation1.getStationName().equals(collect.get(nextIndex))){
+                                                //插入异常报工信息
+                                                extracted(reportInformationSheet,"请选择当前产品对应的工序信息进行扫描");
+                                                return "请选择当前产品对应的工序信息进行扫描";
+                                            }
+                                        }
+                                    //当前工序有没有漏扫
+                                        int result = Math.subtractExact(Integer.parseInt(stationInformation1.getStationName()), 1);
+                                        reportInformationSheet1.setProductCode(String.valueOf(result));//产品码
+                                        List<ReportInformationSheet> reportInformationSheetsLS = reportInformationSheetMapper.selectReportInformationSheetList(reportInformationSheet1);
+                                        if(reportInformationSheetsLS.size()>0){
+                                            //插入异常报工信息
+                                            extracted(reportInformationSheet,"当前工序漏扫了一个产品信息--请核对信息");
+                                            return "当前工序漏扫了一个产品信息--请核对信息";
+                                        }
+                                    //根据工位码查询 ---->节点报工日志
+                                    reportInformationSheetMapper.insertReportInformationSheet(reportInformationSheet);
+                                    int i1 = bpmExecuteNodeLogMapper.updateBpmExecuteNodeLogfjqy(upBpmExecuteNodeLog);
+                                    //更新当前工序节点信息
+                                    if(i1 >0){
+                                        return "产品信息扫描成功";
+                                    }else {
+                                        extracted(reportInformationSheet,"更新节点管道工序任务数量失败");
+                                        return "扫码报工失败";
+                                    }
+                                }
+                            }
+                        }
                     }
-                    //根据工位码查询
-                    int i = reportInformationSheetMapper.insertReportInformationSheet(reportInformationSheet);
-                    return "产品信息扫描成功";
                 }else{
                     return  "当前设备未绑定工位信息";
                 }
             }
         } catch (Exception e) {
+            System.out.println(
+              e.getMessage()
+            );
             return  "扫描失败";
         }
     }
 
+    /**
+     * 插入异常报工信息
+     * @param reportInformationSheet
+     * @param msg
+     */
+    private void extracted(ReportInformationSheet reportInformationSheet,String msg) {
+        ExceptionReportInformationSheet exceptionReportInformationSheet = new ExceptionReportInformationSheet();
+        BeanUtils.copyProperties(reportInformationSheet, exceptionReportInformationSheet);
+        exceptionReportInformationSheet.setExceptionMessage(msg);
+        exceptionReportInformationSheetMapper.insertExceptionReportInformationSheet(exceptionReportInformationSheet);
+    }
+
     public static void main(String[] args) {
        String aaa="scan@&GWM-001&SMSB001";
         boolean contains = aaa.contains("scan@");

+ 97 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/TeamInformationServiceImpl.java

@@ -0,0 +1,97 @@
+package com.zkqy.amichi.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.amichi.mapper.TeamInformationMapper;
+import com.zkqy.amichi.domain.TeamInformation;
+import com.zkqy.amichi.service.ITeamInformationService;
+
+/**
+ * 班组信息Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+@Service
+public class TeamInformationServiceImpl implements ITeamInformationService 
+{
+    @Autowired
+    private TeamInformationMapper teamInformationMapper;
+
+    /**
+     * 查询班组信息
+     * 
+     * @param id 班组信息主键
+     * @return 班组信息
+     */
+    @Override
+    public TeamInformation selectTeamInformationById(Long id)
+    {
+
+        return teamInformationMapper.selectTeamInformationById(id);
+    }
+
+    /**
+     * 查询班组信息列表
+     * 
+     * @param teamInformation 班组信息
+     * @return 班组信息
+     */
+    @Override
+    public List<TeamInformation> selectTeamInformationList(TeamInformation teamInformation)
+    {
+        return teamInformationMapper.selectTeamInformationList(teamInformation);
+    }
+
+    /**
+     * 新增班组信息
+     * 
+     * @param teamInformation 班组信息
+     * @return 结果
+     */
+    @Override
+    public int insertTeamInformation(TeamInformation teamInformation)
+    {
+        teamInformation.setCreateTime(DateUtils.getNowDate());
+        return teamInformationMapper.insertTeamInformation(teamInformation);
+    }
+
+    /**
+     * 修改班组信息
+     * 
+     * @param teamInformation 班组信息
+     * @return 结果
+     */
+    @Override
+    public int updateTeamInformation(TeamInformation teamInformation)
+    {
+        teamInformation.setUpdateTime(DateUtils.getNowDate());
+        return teamInformationMapper.updateTeamInformation(teamInformation);
+    }
+
+    /**
+     * 批量删除班组信息
+     * 
+     * @param ids 需要删除的班组信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTeamInformationByIds(Long[] ids)
+    {
+        return teamInformationMapper.deleteTeamInformationByIds(ids);
+    }
+
+    /**
+     * 删除班组信息信息
+     * 
+     * @param id 班组信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTeamInformationById(Long id)
+    {
+        return teamInformationMapper.deleteTeamInformationById(id);
+    }
+}

+ 103 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/TeamPersonnelChangeInformationServiceImpl.java

@@ -0,0 +1,103 @@
+package com.zkqy.amichi.service.impl;
+
+import java.util.List;
+
+import com.zkqy.amichi.mapper.TeamPersonnelInformationMapper;
+import com.zkqy.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.amichi.mapper.TeamPersonnelChangeInformationMapper;
+import com.zkqy.amichi.domain.TeamPersonnelChangeInformation;
+import com.zkqy.amichi.service.ITeamPersonnelChangeInformationService;
+
+/**
+ * 班组人员变动信息Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+@Service
+public class TeamPersonnelChangeInformationServiceImpl implements ITeamPersonnelChangeInformationService 
+{
+    @Autowired
+    private TeamPersonnelChangeInformationMapper teamPersonnelChangeInformationMapper;
+
+    @Autowired
+    private TeamPersonnelInformationMapper teamPersonnelInformationMapper;
+    /**
+     * 查询班组人员变动信息
+     * 
+     * @param id 班组人员变动信息主键
+     * @return 班组人员变动信息
+     */
+    @Override
+    public TeamPersonnelChangeInformation selectTeamPersonnelChangeInformationById(Long id)
+    {
+
+        return teamPersonnelChangeInformationMapper.selectTeamPersonnelChangeInformationById(id);
+    }
+
+    /**
+     * 查询班组人员变动信息列表
+     * 
+     * @param teamPersonnelChangeInformation 班组人员变动信息
+     * @return 班组人员变动信息
+     */
+    @Override
+    public List<TeamPersonnelChangeInformation> selectTeamPersonnelChangeInformationList(TeamPersonnelChangeInformation teamPersonnelChangeInformation)
+    {
+        teamPersonnelChangeInformation.setDelFlag("0");
+        return teamPersonnelChangeInformationMapper.selectTeamPersonnelChangeInformationList(teamPersonnelChangeInformation);
+    }
+
+    /**
+     * 新增班组人员变动信息
+     * 
+     * @param teamPersonnelChangeInformation 班组人员变动信息
+     * @return 结果
+     */
+    @Override
+    public int insertTeamPersonnelChangeInformation(TeamPersonnelChangeInformation teamPersonnelChangeInformation)
+    {
+        teamPersonnelChangeInformation.setCreateTime(DateUtils.getNowDate());
+        teamPersonnelChangeInformation.setDelFlag("0");
+        return teamPersonnelChangeInformationMapper.insertTeamPersonnelChangeInformation(teamPersonnelChangeInformation);
+    }
+
+    /**
+     * 修改班组人员变动信息
+     * 
+     * @param teamPersonnelChangeInformation 班组人员变动信息
+     * @return 结果
+     */
+    @Override
+    public int updateTeamPersonnelChangeInformation(TeamPersonnelChangeInformation teamPersonnelChangeInformation)
+    {
+        teamPersonnelChangeInformation.setUpdateTime(DateUtils.getNowDate());
+        return teamPersonnelChangeInformationMapper.updateTeamPersonnelChangeInformation(teamPersonnelChangeInformation);
+    }
+
+    /**
+     * 批量删除班组人员变动信息
+     * 
+     * @param ids 需要删除的班组人员变动信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTeamPersonnelChangeInformationByIds(Long[] ids)
+    {
+        return teamPersonnelChangeInformationMapper.deleteTeamPersonnelChangeInformationByIds(ids);
+    }
+
+    /**
+     * 删除班组人员变动信息信息
+     * 
+     * @param id 班组人员变动信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTeamPersonnelChangeInformationById(Long id)
+    {
+        return teamPersonnelChangeInformationMapper.deleteTeamPersonnelChangeInformationById(id);
+    }
+}

+ 126 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/TeamPersonnelInformationServiceImpl.java

@@ -0,0 +1,126 @@
+package com.zkqy.amichi.service.impl;
+
+import java.text.SimpleDateFormat;
+import java.util.List;
+
+import com.zkqy.amichi.domain.TeamPersonnelChangeInformation;
+import com.zkqy.amichi.mapper.TeamPersonnelChangeInformationMapper;
+import com.zkqy.common.utils.DateUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zkqy.amichi.mapper.TeamPersonnelInformationMapper;
+import com.zkqy.amichi.domain.TeamPersonnelInformation;
+import com.zkqy.amichi.service.ITeamPersonnelInformationService;
+
+/**
+ * 班组人员信息Service业务层处理
+ * 
+ * @author zkqy
+ * @date 2024-09-12
+ */
+@Service
+public class TeamPersonnelInformationServiceImpl implements ITeamPersonnelInformationService 
+{
+    private final TeamPersonnelInformationMapper teamPersonnelInformationMapper;
+
+
+    public TeamPersonnelInformationServiceImpl(TeamPersonnelInformationMapper teamPersonnelInformationMapper) {
+        this.teamPersonnelInformationMapper = teamPersonnelInformationMapper;
+    }
+
+
+    @Autowired
+    private TeamPersonnelChangeInformationMapper personnelChangeInformationMapper;
+
+    /**
+     * 查询班组人员信息
+     * 
+     * @param id 班组人员信息主键
+     * @return 班组人员信息
+     */
+    @Override
+    public TeamPersonnelInformation selectTeamPersonnelInformationById(Long id)
+    {
+        return teamPersonnelInformationMapper.selectTeamPersonnelInformationById(id);
+    }
+
+    /**
+     * 查询班组人员信息列表
+     * 
+     * @param teamPersonnelInformation 班组人员信息
+     * @return 班组人员信息
+     */
+    @Override
+    public List<TeamPersonnelInformation> selectTeamPersonnelInformationList(TeamPersonnelInformation teamPersonnelInformation)
+    {
+        teamPersonnelInformation.setDelFlag("0");
+        if(teamPersonnelInformation.getCreateTime()!=null){
+//            DateUtils.to
+        }
+        return teamPersonnelInformationMapper.selectTeamPersonnelInformationList(teamPersonnelInformation);
+    }
+
+    /**
+     * 新增班组人员信息
+     * 
+     * @param teamPersonnelInformation 班组人员信息
+     * @return 结果
+     */
+    @Override
+    public int insertTeamPersonnelInformation(TeamPersonnelInformation teamPersonnelInformation)
+    {
+        teamPersonnelInformation.setCreateTime(DateUtils.getNowDate());
+        teamPersonnelInformation.setDelFlag("0");
+        //如果false就是常规添加,如果等于true就是临时调整
+        if(teamPersonnelInformation.getIsRoutine().equals("true")){
+            //拷贝新增信息添加到有变动的一个信息表中
+            TeamPersonnelChangeInformation changeInformation=new TeamPersonnelChangeInformation();
+            BeanUtils.copyProperties(teamPersonnelInformation,changeInformation);
+            changeInformation.setProcessKey("临时调整");//用ProcessKey字段用来标记当前数据集是否是临时调整信息
+            //今天的信息添加到异常信息里了
+            return  personnelChangeInformationMapper.insertTeamPersonnelChangeInformation(changeInformation);
+        }else {
+            //正常添加人员信息
+            return teamPersonnelInformationMapper.insertTeamPersonnelInformation(teamPersonnelInformation);
+        }
+
+    }
+
+    /**
+     * 修改班组人员信息
+     * 
+     * @param teamPersonnelInformation 班组人员信息
+     * @return 结果
+     */
+    @Override
+    public int updateTeamPersonnelInformation(TeamPersonnelInformation teamPersonnelInformation)
+    {
+        teamPersonnelInformation.setUpdateTime(DateUtils.getNowDate());
+        return teamPersonnelInformationMapper.updateTeamPersonnelInformation(teamPersonnelInformation);
+    }
+
+    /**
+     * 批量删除班组人员信息
+     * 
+     * @param ids 需要删除的班组人员信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTeamPersonnelInformationByIds(Long[] ids)
+    {
+        return teamPersonnelInformationMapper.deleteTeamPersonnelInformationByIds(ids);
+    }
+
+    /**
+     * 删除班组人员信息信息
+     * 
+     * @param id 班组人员信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTeamPersonnelInformationById(Long id)
+    {
+        return teamPersonnelInformationMapper.deleteTeamPersonnelInformationById(id);
+    }
+}

+ 59 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/WarehouseEntryInformationServiceImpl.java

@@ -6,8 +6,12 @@ import java.util.List;
 import java.util.stream.Collectors;
 
 import com.zkqy.amichi.domain.*;
+import com.zkqy.amichi.domain.vo.ProcessWarehousingVo;
+import com.zkqy.amichi.domain.vo.ProductionPlanningManagementVo;
 import com.zkqy.amichi.domain.vo.WarehouseEntryInformationVo;
 import com.zkqy.amichi.mapper.*;
+import com.zkqy.amichi.utils.WarehouseEntryNumberGenerator;
+import com.zkqy.common.annotation.Excel;
 import com.zkqy.common.utils.DateUtils;
 import com.zkqy.common.utils.SecurityUtils;
 import org.springframework.beans.BeanUtils;
@@ -36,6 +40,12 @@ public class WarehouseEntryInformationServiceImpl implements IWarehouseEntryInfo
 
     @Autowired
     private FinishedGoodsInventoryLogMapper finishedGoodsInventoryLogMapper;
+
+    @Autowired
+    private WarehouseEntryNumberGenerator warehouseEntryNumberGenerator;
+
+    @Autowired
+    private  ProductionPlanningManagementMapper productionPlanningManagementMapper;
     /**
      * 查询入库单信息
      * 
@@ -187,6 +197,55 @@ public class WarehouseEntryInformationServiceImpl implements IWarehouseEntryInfo
         return 1;
     }
 
+
+    /**
+     * 工序节点入库逻辑
+     * @param processWarehousingVos
+     * @return
+     */
+    @Override
+    @Transactional
+    public int processWarehousing(List<ProcessWarehousingVo> processWarehousingVos) {
+        WarehouseEntryInformationVo warehouseEntryInformationVo=new WarehouseEntryInformationVo();
+        //新增入库单信息
+        warehouseEntryInformationVo.setCreateTime(new Date());
+        warehouseEntryInformationVo.setCreateById(SecurityUtils.getUserId());
+        warehouseEntryInformationVo.setCreateBy(SecurityUtils.getUsername());
+        warehouseEntryInformationVo.setDocumenter(SecurityUtils.getUsername());//制单人
+        warehouseEntryInformationVo.setDataApprovalStatus("3");//0未发起,1待审批,2已通过,3已驳回
+        warehouseEntryInformationVo.setDelFlag("0");//逻辑删除 0未删除 1已删除
+        //入库单编号
+        String rkdbh = warehouseEntryNumberGenerator.generateWarehouseWarrantNumber();
+        warehouseEntryInformationVo.setWarehouseEntryNumber(rkdbh);
+        //订单号
+        String string = processWarehousingVos.get(0).getOrderNumber().toString();
+        ProductionPlanningManagement productionPlanningManagement = productionPlanningManagementMapper.selectProductionPlanningManagementById(Long.valueOf(string));
+        String orderNumber = productionPlanningManagement.getOrderNumber();
+        warehouseEntryInformationVo.setProductionOrderNumber(orderNumber);
+        warehouseEntryInformationVo.setDateOfReceipt(LocalDate.now());
+
+        int i = warehouseEntryInformationMapper.insertWarehouseEntryInformation(warehouseEntryInformationVo);
+        //新增入库单详情信息
+        List<StoreEntryDetails> collect = processWarehousingVos.stream().map(storeEntryDetails -> {
+            StoreEntryDetails storeEntryDetails1 = new StoreEntryDetails();
+            storeEntryDetails1.setWarehouseEntryId(warehouseEntryInformationVo.getId());//入库单id
+            //基础信息
+            storeEntryDetails1.setCreateTime(new Date());
+            storeEntryDetails1.setDelFlag("0");
+            storeEntryDetails1.setCreateById(SecurityUtils.getUserId());
+            storeEntryDetails1.setCreateBy(SecurityUtils.getUsername());
+            storeEntryDetails1.setProductName(storeEntryDetails.getProductName());
+            storeEntryDetails1.setQuantity(storeEntryDetails.getQuantity());
+            storeEntryDetails1.setModelNumber(storeEntryDetails.getProductName());
+            storeEntryDetails1.setUnit("个");
+            storeEntryDetails1.setQuantity(storeEntryDetails.getQuantity());//数量
+            return storeEntryDetails1;
+        }).collect(Collectors.toList());
+        //新增入库单详细信息
+        storeEntryDetailsMapper.insertStoreEntryDetailsBatch(collect);
+        return 1;
+    }
+
     @Override
     public WarehouseEntryInformationVo selectWarehouseEntryInformationByIdVo(Long id) {
         WarehouseEntryInformationVo warehouseEntryInformationVo = new WarehouseEntryInformationVo();

+ 13 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/utils/AmichiCommissionNumberGenerator.java

@@ -1,5 +1,6 @@
 package com.zkqy.amichi.utils;
 
+import com.zkqy.common.annotation.Log;
 import com.zkqy.common.core.redis.RedisCache;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -7,6 +8,9 @@ import org.springframework.stereotype.Component;
 
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 import java.util.Optional;
 
 /**
@@ -50,4 +54,13 @@ public class AmichiCommissionNumberGenerator {
         // 返回完整的委托单编号 年取后两位
         return  formattedDate + sequenceStr;
     }
+
+    public static void main(String[] args) {
+        Date date = new Date("2024-09-11 15:33:47");
+        long time1 = date.getTime();
+        Date date1 = new Date();
+        long time = date1.getTime();
+        System.out.println(time1);
+        System.out.println(time);
+    }
 }

+ 49 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/utils/WarehouseEntryNumberGenerator.java

@@ -0,0 +1,49 @@
+package com.zkqy.amichi.utils;
+
+import com.zkqy.common.core.redis.RedisCache;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.Optional;
+
+@Component
+public class WarehouseEntryNumberGenerator {
+    @Autowired
+    RedisCache redisCache;
+
+    @Autowired
+    StringRedisTemplate stringRedisTemplate;
+
+    private static final String DATE_FORMAT = "yyMMdd";
+    private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DATE_FORMAT);
+    private static final String COMMISSION_KEY_PREFIX = "fjqy:rkd:rkdh1:";
+    private static final String COMMISSION_DAY_KEY = "fjqy:rkd:rkdh2";
+
+    //自定义生成计划编号
+    public synchronized String generateWarehouseWarrantNumber() {
+        // 拿到今天的日期,并格式化为-> yyMMdd
+        LocalDate now = LocalDate.now();
+        String formattedDate = now.format(formatter);
+        // 检测日期是否发生变化
+        String cacheDataInDay = redisCache.getCacheObject(COMMISSION_DAY_KEY);
+        if(Optional.ofNullable(cacheDataInDay).filter(s -> !s.isEmpty()).isPresent()){
+            // 检查日期是否变化
+            if (!cacheDataInDay.equals(formattedDate)) {
+                //日期变化,重置流水号
+                redisCache.deleteObject(COMMISSION_KEY_PREFIX + formattedDate);
+                redisCache.setCacheObject(COMMISSION_DAY_KEY, formattedDate);
+            }
+        }
+        // 获取或创建流水号键
+        String sequenceKey = COMMISSION_KEY_PREFIX + formattedDate;
+        // 使用increment命令递增流水号
+        Long sequence = stringRedisTemplate.opsForValue().increment(sequenceKey, 1L);
+        // 格式化流水号为三位数
+        String sequenceStr = String.format("%03d", sequence);
+        // 返回完整的委托单编号 年取后两位
+        return  "RKDH"+formattedDate + sequenceStr;
+    }
+}

+ 152 - 0
zkqy-fujian-amichi/src/main/resources/mapper/ExceptionReportInformationSheetMapper.xml

@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zkqy.amichi.mapper.ExceptionReportInformationSheetMapper">
+    
+    <resultMap type="com.zkqy.amichi.domain.ExceptionReportInformationSheet" id="ExceptionReportInformationSheetResult">
+        <result property="id"    column="id"    />
+        <result property="productId"    column="product_id"    />
+        <result property="productCode"    column="product_code"    />
+        <result property="stationCode"    column="station_code"    />
+        <result property="currentStationStationPeople"    column="current_station_station_people"    />
+        <result property="remark"    column="remark"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="dataApprovalStatus"    column="data_approval_status"    />
+        <result property="processKey"    column="process_key"    />
+        <result property="taskProcessKey"    column="task_process_key"    />
+        <result property="taskNodeKey"    column="task_node_key"    />
+        <result property="orderNumber"    column="order_number"    />
+        <result property="process"    column="process"    />
+        <result property="quantityInstorage"    column="quantityInstorage"    />
+        <result property="exceptionMessage"    column="exception_message"    />
+        <result property="handheldDevice"    column="handheld_device"    />
+    </resultMap>
+
+    <sql id="selectExceptionReportInformationSheetVo">
+        select id, product_id, product_code, station_code, current_station_station_people, remark, create_by_id, create_by,
+               create_time, update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key,
+               task_node_key, order_number, process, quantityInstorage, exception_message,handheld_device from {DBNAME}.exception_report_information_sheet
+    </sql>
+
+    <select id="selectExceptionReportInformationSheetList" parameterType="com.zkqy.amichi.domain.ExceptionReportInformationSheet" resultMap="ExceptionReportInformationSheetResult">
+        <include refid="selectExceptionReportInformationSheetVo"/>
+        <where>  
+            <if test="productId != null  and productId != ''"> and product_id = #{productId}</if>
+            <if test="productCode != null  and productCode != ''"> and product_code = #{productCode}</if>
+            <if test="stationCode != null  and stationCode != ''"> and station_code = #{stationCode}</if>
+            <if test="currentStationStationPeople != null  and currentStationStationPeople != ''"> and current_station_station_people = #{currentStationStationPeople}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="dataApprovalStatus != null  and dataApprovalStatus != ''"> and data_approval_status = #{dataApprovalStatus}</if>
+            <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            <if test="orderNumber != null  and orderNumber != ''"> and order_number = #{orderNumber}</if>
+            <if test="process != null  and process != ''"> and process = #{process}</if>
+            <if test="quantityInstorage != null  and quantityInstorage != ''"> and quantityInstorage = #{quantityInstorage}</if>
+            <if test="exceptionMessage != null  and exceptionMessage != ''"> and exception_message = #{exceptionMessage}</if>
+            <if test="handheldDevice!=null and handheldDevice!=''"> and handheld_device = #{handheldDevice}</if>
+        </where>
+    </select>
+    
+    <select id="selectExceptionReportInformationSheetById" parameterType="Long" resultMap="ExceptionReportInformationSheetResult">
+        <include refid="selectExceptionReportInformationSheetVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertExceptionReportInformationSheet" parameterType="com.zkqy.amichi.domain.ExceptionReportInformationSheet" useGeneratedKeys="true" keyProperty="id">
+        insert into {DBNAM}.exception_report_information_sheet
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="productId != null">product_id,</if>
+            <if test="productCode != null">product_code,</if>
+            <if test="stationCode != null">station_code,</if>
+            <if test="currentStationStationPeople != null">current_station_station_people,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="dataApprovalStatus != null">data_approval_status,</if>
+            <if test="processKey != null">process_key,</if>
+            <if test="taskProcessKey != null">task_process_key,</if>
+            <if test="taskNodeKey != null">task_node_key,</if>
+            <if test="orderNumber != null">order_number,</if>
+            <if test="process != null">process,</if>
+            <if test="quantityInstorage != null">quantityInstorage,</if>
+            <if test="exceptionMessage != null">exception_message,</if>
+            <if test="handheldDevice!=null and handheldDevice!=''">handheld_device</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="productId != null">#{productId},</if>
+            <if test="productCode != null">#{productCode},</if>
+            <if test="stationCode != null">#{stationCode},</if>
+            <if test="currentStationStationPeople != null">#{currentStationStationPeople},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="dataApprovalStatus != null">#{dataApprovalStatus},</if>
+            <if test="processKey != null">#{processKey},</if>
+            <if test="taskProcessKey != null">#{taskProcessKey},</if>
+            <if test="taskNodeKey != null">#{taskNodeKey},</if>
+            <if test="orderNumber != null">#{orderNumber},</if>
+            <if test="process != null">#{process},</if>
+            <if test="quantityInstorage != null">#{quantityInstorage},</if>
+            <if test="exceptionMessage != null">#{exceptionMessage},</if>
+            <if test="handheldDevice!=null and handheldDevice!=''">#{handheldDevice}</if>
+         </trim>
+    </insert>
+
+    <update id="updateExceptionReportInformationSheet" parameterType="com.zkqy.amichi.domain.ExceptionReportInformationSheet">
+        update {DBNAM}.exception_report_information_sheet
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="productId != null">product_id = #{productId},</if>
+            <if test="productCode != null">product_code = #{productCode},</if>
+            <if test="stationCode != null">station_code = #{stationCode},</if>
+            <if test="currentStationStationPeople != null">current_station_station_people = #{currentStationStationPeople},</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="dataApprovalStatus != null">data_approval_status = #{dataApprovalStatus},</if>
+            <if test="processKey != null">process_key = #{processKey},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="orderNumber != null">order_number = #{orderNumber},</if>
+            <if test="process != null">process = #{process},</if>
+            <if test="quantityInstorage != null">quantityInstorage = #{quantityInstorage},</if>
+            <if test="exceptionMessage != null">exception_message = #{exceptionMessage},</if>
+            <if test="handheldDevice!=null and handheldDevice!=''">handheld_device=#{handheldDevice}</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteExceptionReportInformationSheetById" parameterType="Long">
+        delete from {DBNAM}.exception_report_information_sheet where id = #{id}
+    </delete>
+
+    <delete id="deleteExceptionReportInformationSheetByIds" parameterType="String">
+        delete from {DBNAM}.exception_report_information_sheet where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

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

@@ -0,0 +1,146 @@
+<?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.amichi.mapper.ProductionCardFlowMapper">
+    
+    <resultMap type="com.zkqy.amichi.domain.ProductionCardFlow" id="ProductionCardFlowResult">
+        <result property="id"    column="id"    />
+        <result property="productionOrderListId"    column="production_order_list_id"    />
+        <result property="serialNumber"    column="serial_number"    />
+        <result property="demandDocumentNumber"    column="demand_document_number"    />
+        <result property="printQuantity"    column="print_quantity"    />
+        <result property="remark"    column="remark"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="dataApprovalStatus"    column="data_approval_status"    />
+        <result property="processKey"    column="process_key"    />
+        <result property="taskProcessKey"    column="task_process_key"    />
+        <result property="taskNodeKey"    column="task_node_key"    />
+    </resultMap>
+
+    <sql id="selectProductionCardFlowVo">
+        select id, production_order_list_id, serial_number, demand_document_number, print_quantity, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key, task_node_key from {DBNAME}.production_card_flow
+    </sql>
+
+    <select id="selectProductionCardFlowList" parameterType="com.zkqy.amichi.domain.ProductionCardFlow" resultMap="ProductionCardFlowResult">
+        <include refid="selectProductionCardFlowVo"/>
+        <where>  
+            <if test="productionOrderListId != null  and productionOrderListId != ''"> and production_order_list_id = #{productionOrderListId}</if>
+            <if test="serialNumber != null  and serialNumber != ''"> and serial_number = #{serialNumber}</if>
+            <if test="demandDocumentNumber != null  and demandDocumentNumber != ''"> and demand_document_number = #{demandDocumentNumber}</if>
+            <if test="printQuantity != null  and printQuantity != ''"> and print_quantity = #{printQuantity}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="dataApprovalStatus != null  and dataApprovalStatus != ''"> and data_approval_status = #{dataApprovalStatus}</if>
+            <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+        </where>
+    </select>
+    
+    <select id="selectProductionCardFlowById" parameterType="Long" resultMap="ProductionCardFlowResult">
+        <include refid="selectProductionCardFlowVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertProductionCardFlow" parameterType="com.zkqy.amichi.domain.ProductionCardFlow" useGeneratedKeys="true" keyProperty="id">
+        insert into {DBNAME}.production_card_flow
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="productionOrderListId != null">production_order_list_id,</if>
+            <if test="serialNumber != null">serial_number,</if>
+            <if test="demandDocumentNumber != null">demand_document_number,</if>
+            <if test="printQuantity != null">print_quantity,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="dataApprovalStatus != null">data_approval_status,</if>
+            <if test="processKey != null">process_key,</if>
+            <if test="taskProcessKey != null">task_process_key,</if>
+            <if test="taskNodeKey != null">task_node_key,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="productionOrderListId != null">#{productionOrderListId},</if>
+            <if test="serialNumber != null">#{serialNumber},</if>
+            <if test="demandDocumentNumber != null">#{demandDocumentNumber},</if>
+            <if test="printQuantity != null">#{printQuantity},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="dataApprovalStatus != null">#{dataApprovalStatus},</if>
+            <if test="processKey != null">#{processKey},</if>
+            <if test="taskProcessKey != null">#{taskProcessKey},</if>
+            <if test="taskNodeKey != null">#{taskNodeKey},</if>
+         </trim>
+    </insert>
+
+    <insert id="insertProductionCardFlowBatch">
+        <foreach collection ="list" item="item" separator =";">
+            INSERT INTO {DBNAME}.production_card_flow
+            <trim prefix="(" suffix=")" suffixOverrides=",">
+                <if test="item.productionOrderListId != null and item.productionOrderListId != ''">production_order_list_id,</if>
+                <if test="item.serialNumber != null and item.serialNumber != ''">serial_number,</if>
+                <if test="item.demandDocumentNumber != null and item.demandDocumentNumber != ''">demand_document_number,</if>
+                <if test="item.printQuantity != null and item.printQuantity != ''">print_quantity,</if>
+                <if test="item.remark != null">remark,</if>
+            </trim>
+            VALUES
+            <trim prefix="(" suffix=")" suffixOverrides=",">
+                <if test="item.productionOrderListId != null and item.productionOrderListId != ''">#{item.productionOrderListId},</if>
+                <if test="item.serialNumber != null and item.serialNumber != ''">#{item.serialNumber},</if>
+                <if test="item.demandDocumentNumber != null and item.demandDocumentNumber != ''">#{item.demandDocumentNumber},</if>
+                <if test="item.printQuantity != null and item.printQuantity != ''">#{item.printQuantity},</if>
+                <if test="item.remark != null">#{item.remark},</if>
+            </trim>
+        </foreach>
+    </insert>
+
+    <update id="updateProductionCardFlow" parameterType="com.zkqy.amichi.domain.ProductionCardFlow">
+        update {DBNAME}.production_card_flow
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="productionOrderListId != null">production_order_list_id = #{productionOrderListId},</if>
+            <if test="serialNumber != null">serial_number = #{serialNumber},</if>
+            <if test="demandDocumentNumber != null">demand_document_number = #{demand_document_number},</if>
+            <if test="printQuantity != null">print_quantity = #{printQuantity},</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="dataApprovalStatus != null">data_approval_status = #{dataApprovalStatus},</if>
+            <if test="processKey != null">process_key = #{processKey},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteProductionCardFlowById" parameterType="Long">
+        delete from {DBNAME}.production_card_flow where id = #{id}
+    </delete>
+
+    <delete id="deleteProductionCardFlowByIds" parameterType="String">
+        delete from {DBNAME}.production_card_flow where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 161 - 0
zkqy-fujian-amichi/src/main/resources/mapper/ProductionOrderListMapper.xml

@@ -0,0 +1,161 @@
+<?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.amichi.mapper.ProductionOrderListMapper">
+    
+    <resultMap type="com.zkqy.amichi.domain.ProductionOrderList" id="ProductionOrderListResult">
+        <result property="id"    column="id"    />
+        <result property="documentNumber"    column="document_number"    />
+        <result property="documentType"    column="document_type"    />
+        <result property="documentDate"    column="document_date"    />
+        <result property="documentStatus"    column="document_status"    />
+        <result property="demandDocument"    column="demand_document"    />
+        <result property="demandDocumentLineNumber"    column="demand_document_line_number"    />
+        <result property="materialCode"    column="material_code"    />
+        <result property="materialName"    column="material_name"    />
+        <result property="modelNumber"    column="model_number"    />
+        <result property="specification"    column="specification"    />
+        <result property="quantity"    column="quantity"    />
+        <result property="remark"    column="remark"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="dataApprovalStatus"    column="data_approval_status"    />
+        <result property="processKey"    column="process_key"    />
+        <result property="taskProcessKey"    column="task_process_key"    />
+        <result property="taskNodeKey"    column="task_node_key"    />
+    </resultMap>
+
+    <sql id="selectProductionOrderListVo">
+        select id, document_number, document_type, document_date, document_status, demand_document, demand_document_line_number, material_code, material_name, model_number, specification, quantity, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key, task_node_key from {DBNAME}.production_order_list
+    </sql>
+
+    <select id="selectProductionOrderListList" parameterType="com.zkqy.amichi.domain.ProductionOrderList" resultMap="ProductionOrderListResult">
+        <include refid="selectProductionOrderListVo"/>
+        <where>  
+            <if test="documentNumber != null  and documentNumber != ''"> and document_number = #{documentNumber}</if>
+            <if test="documentType != null  and documentType != ''"> and document_type = #{documentType}</if>
+            <if test="documentDate != null  and documentDate != ''"> and document_date = #{documentDate}</if>
+            <if test="documentStatus != null  and documentStatus != ''"> and document_status = #{documentStatus}</if>
+            <if test="demandDocument != null  and demandDocument != ''"> and demand_document = #{demandDocument}</if>
+            <if test="demandDocumentLineNumber != null  and demandDocumentLineNumber != ''"> and demand_document_line_number = #{demandDocumentLineNumber}</if>
+            <if test="materialCode != null  and materialCode != ''"> and material_code = #{materialCode}</if>
+            <if test="materialName != null "> and material_name like concat('%', #{materialName}, '%')</if>
+            <if test="modelNumber != null  and modelNumber != ''"> and model_number = #{modelNumber}</if>
+            <if test="specification != null  and specification != ''"> and specification = #{specification}</if>
+            <if test="quantity != null  and quantity != ''"> and quantity = #{quantity}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="dataApprovalStatus != null  and dataApprovalStatus != ''"> and data_approval_status = #{dataApprovalStatus}</if>
+            <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            and del_flag=0
+        </where>
+    </select>
+    
+    <select id="selectProductionOrderListById" parameterType="Long" resultMap="ProductionOrderListResult">
+        <include refid="selectProductionOrderListVo"/>
+        where id = #{id} and del_flag=0
+    </select>
+        
+    <insert id="insertProductionOrderList" parameterType="com.zkqy.amichi.domain.ProductionOrderList" useGeneratedKeys="true" keyProperty="id">
+        insert into {DBNAME}.production_order_list
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="documentNumber != null">document_number,</if>
+            <if test="documentType != null">document_type,</if>
+            <if test="documentDate != null">document_date,</if>
+            <if test="documentStatus != null">document_status,</if>
+            <if test="demandDocument != null">demand_document,</if>
+            <if test="demandDocumentLineNumber != null">demand_document_line_number,</if>
+            <if test="materialCode != null">material_code,</if>
+            <if test="materialName != null">material_name,</if>
+            <if test="modelNumber != null">model_number,</if>
+            <if test="specification != null">specification,</if>
+            <if test="quantity != null">quantity,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="dataApprovalStatus != null">data_approval_status,</if>
+            <if test="processKey != null">process_key,</if>
+            <if test="taskProcessKey != null">task_process_key,</if>
+            <if test="taskNodeKey != null">task_node_key,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="documentNumber != null">#{documentNumber},</if>
+            <if test="documentType != null">#{documentType},</if>
+            <if test="documentDate != null">#{documentDate},</if>
+            <if test="documentStatus != null">#{documentStatus},</if>
+            <if test="demandDocument != null">#{demandDocument},</if>
+            <if test="demandDocumentLineNumber != null">#{demandDocumentLineNumber},</if>
+            <if test="materialCode != null">#{materialCode},</if>
+            <if test="materialName != null">#{materialName},</if>
+            <if test="modelNumber != null">#{modelNumber},</if>
+            <if test="specification != null">#{specification},</if>
+            <if test="quantity != null">#{quantity},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="dataApprovalStatus != null">#{dataApprovalStatus},</if>
+            <if test="processKey != null">#{processKey},</if>
+            <if test="taskProcessKey != null">#{taskProcessKey},</if>
+            <if test="taskNodeKey != null">#{taskNodeKey},</if>
+         </trim>
+    </insert>
+
+    <update id="updateProductionOrderList" parameterType="com.zkqy.amichi.domain.ProductionOrderList">
+        update {DBNAME}.production_order_list
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="documentNumber != null">document_number = #{documentNumber},</if>
+            <if test="documentType != null">document_type = #{documentType},</if>
+            <if test="documentDate != null">document_date = #{documentDate},</if>
+            <if test="documentStatus != null">document_status = #{documentStatus},</if>
+            <if test="demandDocument != null">demand_document = #{demandDocument},</if>
+            <if test="demandDocumentLineNumber != null">demand_document_line_number = #{demandDocumentLineNumber},</if>
+            <if test="materialCode != null">material_code = #{materialCode},</if>
+            <if test="materialName != null">material_name = #{materialName},</if>
+            <if test="modelNumber != null">model_number = #{modelNumber},</if>
+            <if test="specification != null">specification = #{specification},</if>
+            <if test="quantity != null">quantity = #{quantity},</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="dataApprovalStatus != null">data_approval_status = #{dataApprovalStatus},</if>
+            <if test="processKey != null">process_key = #{processKey},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteProductionOrderListById" parameterType="Long">
+        delete from {DBNAME}.production_order_list where id = #{id}
+    </delete>
+
+    <delete id="deleteProductionOrderListByIds" parameterType="String">
+        delete from {DBNAME}.production_order_list where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 2 - 3
zkqy-fujian-amichi/src/main/resources/mapper/ProductionPlanningManagementMapper.xml

@@ -203,10 +203,9 @@
             ppm.documenter,
             ppm.approved_by_department,
             ppm.scheduling_state,
-            ppm.plan_type,
-            pt.create_time as ptcreate_time
+            ppm.plan_type
         FROM
-            {DBNAME}.production_planning_management
+            fjqydb.production_planning_management as ppm
         <where>
             <if test="planNumber != null  and planNumber != ''">plan_number=#{planNumber}</if>
             <if test="orderNumber != null  and orderNumber != ''"> or order_number=#{orderNumber}</if>

+ 43 - 6
zkqy-fujian-amichi/src/main/resources/mapper/ReportInformationSheetMapper.xml

@@ -24,11 +24,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="taskNodeKey"    column="task_node_key"    />
         <result property="orderNumber" column="order_number"></result>
         <result property="process" column="process"></result>
+        <result property="quantityInstorage" column="quantityInstorage"></result>
+        <result property="handheldDevice" column="handheld_device"></result>
+        <result property="lastScanTime" column="last_scan_time"></result>
     </resultMap>
 
     <sql id="selectReportInformationSheetVo">
         select id, product_id, product_code, station_code, current_station_station_people, remark, create_by_id, create_by, create_time,
-               update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key, task_node_key,order_number,process
+               update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key, task_node_key,
+               order_number,process,quantityInstorage,handheld_device,last_scan_time
         from {DBNAME}.report_information_sheet
     </sql>
 
@@ -47,6 +51,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
             <if test="orderNumber != null  and orderNumber != ''"> and order_number = #{orderNumber}</if>
             <if test="process != null  and process != ''"> and process = #{process}</if>
+            <if test="quantityInstorage != null  and quantityInstorage != ''"> and quantityInstorage = #{quantityInstorage}</if>
+            <if test="handheldDevice != null  and handheldDevice != ''"> and handheld_device = #{handheldDevice}</if>
         </where>
     </select>
     
@@ -54,7 +60,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectReportInformationSheetVo"/>
         where id = #{id}
     </select>
-        
+
+    <select id="selectReportInformationSheetListOrderBy"
+            resultType="com.zkqy.amichi.domain.ReportInformationSheet">
+        select id, product_id, product_code, station_code, current_station_station_people, remark, create_by_id, create_by, create_time,
+               update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key, task_node_key,
+               order_number,process,quantityInstorage,handheld_device,last_scan_time
+        from {DBNAME}.report_information_sheet
+        <where>
+            <if test="productId != null  and productId != ''"> and product_id = #{productId}</if>
+            <if test="productCode != null  and productCode != ''"> and product_code = #{productCode}</if>
+            <if test="stationCode != null  and stationCode != ''"> and station_code = #{stationCode}</if>
+            <if test="currentStationStationPeople != null  and currentStationStationPeople != ''"> and current_station_station_people = #{currentStationStationPeople}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="dataApprovalStatus != null  and dataApprovalStatus != ''"> and data_approval_status = #{dataApprovalStatus}</if>
+            <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            <if test="orderNumber != null  and orderNumber != ''"> and order_number = #{orderNumber}</if>
+            <if test="process != null  and process != ''"> and process = #{process}</if>
+            <if test="quantityInstorage != null  and quantityInstorage != ''"> and quantityInstorage = #{quantityInstorage}</if>
+            <if test="handheldDevice != null  and handheldDevice != ''"> and handheld_device = #{handheldDevice}</if>
+        </where>
+        order by create_time desc LIMIT 1;
+    </select>
+
     <insert id="insertReportInformationSheet" parameterType="com.zkqy.amichi.domain.ReportInformationSheet" useGeneratedKeys="true" keyProperty="id">
         insert into fjqydb.report_information_sheet
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -75,8 +106,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="taskProcessKey != null">task_process_key,</if>
             <if test="taskNodeKey != null">task_node_key,</if>
             <if test="orderNumber != null  and orderNumber != ''">order_number,</if>
-            <if test="process != null  and process != ''">process</if>
-         </trim>
+            <if test="process != null  and process != ''">process,</if>
+            <if test="quantityInstorage != null  and quantityInstorage != ''">quantityInstorage,</if>
+            <if test="handheldDevice != null  and handheldDevice != ''">handheld_device</if>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="productId != null">#{productId},</if>
             <if test="productCode != null">#{productCode},</if>
@@ -95,7 +128,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="taskProcessKey != null">#{taskProcessKey},</if>
             <if test="taskNodeKey != null">#{taskNodeKey},</if>
             <if test="orderNumber != null  and orderNumber != ''">#{orderNumber},</if>
-            <if test="process != null  and process != ''">#{process}</if>
+            <if test="process != null  and process != ''">#{process},</if>
+            <if test="quantityInstorage != null  and quantityInstorage != ''">#{quantityInstorage},</if>
+            <if test="handheldDevice != null  and handheldDevice != ''">#{handheldDevice}</if>
          </trim>
     </insert>
 
@@ -119,7 +154,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
             <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
             <if test="orderNumber != null  and orderNumber != ''">order_number=#{orderNumber},</if>
-            <if test="process != null  and process != ''">process=#{process}</if>
+            <if test="process != null  and process != ''">process=#{process},</if>
+            <if test="quantityInstorage != null  and quantityInstorage != ''">quantityInstorage=#{quantityInstorage},</if>
+            <if test="handheldDevice != null  and handheldDevice != ''">handheld_device=#{handheldDevice}</if>
         </trim>
         where id = #{id}
     </update>

+ 79 - 14
zkqy-fujian-amichi/src/main/resources/mapper/StationInformationMapper.xml

@@ -24,27 +24,57 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="processKey"    column="process_key"    />
         <result property="taskProcessKey"    column="task_process_key"    />
         <result property="taskNodeKey"    column="task_node_key"    />
+        <result property="teamName"    column="team_name"    />
+        <result property="teamCode"    column="team_code"    />
     </resultMap>
 
     <sql id="selectStationInformationVo">
-        select id, station_code, station_name, personnel_id, personnel_name, device_id, device_name, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key, task_node_key from fjqydb.station_information
+        select id, station_code, station_name, personnel_id, personnel_name, device_id, device_name, remark, create_by_id, create_by,
+               create_time, update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key, task_node_key,team_name,team_code
+        from fjqydb.station_information
     </sql>
 
     <select id="selectStationInformationList" parameterType="com.zkqy.amichi.domain.StationInformation" resultMap="StationInformationResult">
-        <include refid="selectStationInformationVo"/>
+        select
+        si.id,
+        si.station_code,
+        si.station_name,
+        si.personnel_id,
+        si.personnel_name,
+        si.device_id,
+        si.device_name,
+        si.remark,
+        si.create_by_id,
+        si.create_by,
+        si.create_time,
+        si.update_by_id,
+        si.update_by,
+        si.update_time,
+        si.del_flag,
+        si.data_approval_status,
+        si.process_key,
+        si.task_process_key,
+        si.task_node_key,
+        ti.team_name as team_name ,
+        si.team_code
+        from fjqydb.station_information as si
+        left join fjqydb.team_information as  ti
+        on (si.team_code=ti.team_code)
         <where>  
-            <if test="stationCode != null  and stationCode != ''"> and station_code = #{stationCode}</if>
-            <if test="stationName != null  and stationName != ''"> and station_name like concat('%', #{stationName}, '%')</if>
-            <if test="personnelId != null  and personnelId != ''"> and personnel_id = #{personnelId}</if>
-            <if test="personnelName != null  and personnelName != ''"> and personnel_name like concat('%', #{personnelName}, '%')</if>
-            <if test="deviceId != null  and deviceId != ''"> and device_id = #{deviceId}</if>
-            <if test="deviceName != null  and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
-            <if test="createById != null "> and create_by_id = #{createById}</if>
-            <if test="updateById != null "> and update_by_id = #{updateById}</if>
-            <if test="dataApprovalStatus != null  and dataApprovalStatus != ''"> and data_approval_status = #{dataApprovalStatus}</if>
-            <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
-            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
-            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            <if test="stationCode != null  and stationCode != ''"> and si.station_code = #{stationCode}</if>
+            <if test="stationName != null  and stationName != ''"> and si.station_name like concat('%', #{stationName}, '%')</if>
+            <if test="personnelId != null  and personnelId != ''"> and si.personnel_id = #{personnelId}</if>
+            <if test="personnelName != null  and personnelName != ''"> and si.personnel_name like concat('%', #{personnelName}, '%')</if>
+            <if test="deviceId != null  and deviceId != ''"> and si.device_id = #{deviceId}</if>
+            <if test="deviceName != null  and deviceName != ''"> and si.device_name like concat('%', #{deviceName}, '%')</if>
+            <if test="createById != null "> and si.create_by_id = #{createById}</if>
+            <if test="updateById != null "> and si.update_by_id = #{updateById}</if>
+            <if test="dataApprovalStatus != null  and dataApprovalStatus != ''"> and si.data_approval_status = #{dataApprovalStatus}</if>
+            <if test="processKey != null  and processKey != ''"> and si.process_key = #{processKey}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and si.task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and si.task_node_key = #{taskNodeKey}</if>
+            <if test="teamName != null  and teamName != ''"> and ti.team_name = #{teamName}</if>
+            <if test="teamCode != null  and teamCode != ''"> and si.team_code = #{teamCode}</if>
         </where>
     </select>
     
@@ -74,6 +104,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="processKey != null">process_key,</if>
             <if test="taskProcessKey != null">task_process_key,</if>
             <if test="taskNodeKey != null">task_node_key,</if>
+            <if test="teamName != null  and teamName != ''">team_name,</if>
+            <if test="teamCode != null  and teamCode != ''">team_code</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="stationCode != null">#{stationCode},</if>
@@ -94,6 +126,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="processKey != null">#{processKey},</if>
             <if test="taskProcessKey != null">#{taskProcessKey},</if>
             <if test="taskNodeKey != null">#{taskNodeKey},</if>
+            <if test="teamName != null  and teamName != ''">#{teamName},</if>
+            <if test="teamCode != null  and teamCode != ''">#{teamCode}</if>
          </trim>
     </insert>
 
@@ -118,6 +152,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="processKey != null">process_key = #{processKey},</if>
             <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
             <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="teamName != null  and teamName != ''">team_name=#{teamName}</if>
         </trim>
         where id = #{id}
     </update>
@@ -142,10 +177,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="processKey != null">process_key = #{processKey},</if>
             <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
             <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="teamName != null">team_name=#{teamName},</if>
+            <if test="teamCode != null">team_code=#{teamCode},</if>
         </trim>
         where station_code = #{stationCode}
     </update>
 
+
+    <!--通过手持设备修改设备信息-->
+    <update id="updateStationInformationByStationUpdateByDeviceName" parameterType="com.zkqy.amichi.domain.StationInformation">
+        update fjqydb.station_information
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="stationName != null">station_name = #{stationName},</if>
+            <if test="personnelId != null">personnel_id = #{personnelId},</if>
+            <if test="personnelName != null">personnel_name = #{personnelName},</if>
+            <if test="deviceId != null">device_id = #{deviceId},</if>
+            <if test="deviceName != null">device_name = #{deviceName},</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="dataApprovalStatus != null">data_approval_status = #{dataApprovalStatus},</if>
+            <if test="processKey != null">process_key = #{processKey},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="teamName != null  and teamName != ''">team_name=#{teamName},</if>
+            <if test="teamCode != null  and teamCode != ''">team_code=#{teamCode}</if>
+        </trim>
+        where device_name = #{deviceName}
+    </update>
+
     <delete id="deleteStationInformationById" parameterType="Long">
         delete from {DBNAME}.station_information where id = #{id}
     </delete>

+ 124 - 0
zkqy-fujian-amichi/src/main/resources/mapper/TeamInformationMapper.xml

@@ -0,0 +1,124 @@
+<?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.amichi.mapper.TeamInformationMapper">
+    
+    <resultMap type="com.zkqy.amichi.domain.TeamInformation" id="TeamInformationResult">
+        <result property="id"    column="id"    />
+        <result property="teamName"    column="team_name"    />
+        <result property="remark"    column="remark"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="dataApprovalStatus"    column="data_approval_status"    />
+        <result property="processKey"    column="process_key"    />
+        <result property="taskProcessKey"    column="task_process_key"    />
+        <result property="taskNodeKey"    column="task_node_key"    />
+        <result property="teamCode"    column="team_code"    />
+        <result property="teamType"    column="team_type"    />
+    </resultMap>
+
+    <sql id="selectTeamInformationVo">
+        select id, team_name, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key, task_node_key,
+               team_code,team_type
+        from {DBNAME}.team_information
+    </sql>
+
+    <select id="selectTeamInformationList" parameterType="com.zkqy.amichi.domain.TeamInformation" resultMap="TeamInformationResult">
+        <include refid="selectTeamInformationVo"/>
+        <where>  
+            <if test="teamName != null  and teamName != ''"> and team_name = #{teamName}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="dataApprovalStatus != null  and dataApprovalStatus != ''"> and data_approval_status = #{dataApprovalStatus}</if>
+            <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            <if test="teamCode != null "> and team_code = #{teamCode}</if>
+            <if test="teamType != null "> and team_type = #{teamType}</if>
+            and del_flag=0
+        </where>
+
+    </select>
+    
+    <select id="selectTeamInformationById" parameterType="Long" resultMap="TeamInformationResult">
+        <include refid="selectTeamInformationVo"/>
+        where id = #{id} and del_flag=0
+    </select>
+        
+    <insert id="insertTeamInformation" parameterType="com.zkqy.amichi.domain.TeamInformation" useGeneratedKeys="true" keyProperty="id">
+        insert into {DBNAME}.team_information
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="teamName != null">team_name,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="dataApprovalStatus != null">data_approval_status,</if>
+            <if test="processKey != null">process_key,</if>
+            <if test="taskProcessKey != null">task_process_key,</if>
+            <if test="taskNodeKey != null">task_node_key,</if>
+            <if test="teamCode != null">team_code,</if>
+            <if test="teamType != null ">team_type</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="teamName != null">#{teamName},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="dataApprovalStatus != null">#{dataApprovalStatus},</if>
+            <if test="processKey != null">#{processKey},</if>
+            <if test="taskProcessKey != null">#{taskProcessKey},</if>
+            <if test="taskNodeKey != null">#{taskNodeKey},</if>
+            <if test="teamCode != null">#{teamCode},</if>
+           <if test="teamType != null ">#{teamType}</if>
+         </trim>
+    </insert>
+
+    <update id="updateTeamInformation" parameterType="com.zkqy.amichi.domain.TeamInformation">
+        update {DBNAME}.team_information
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="teamName != null">team_Name = #{teamName},</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="dataApprovalStatus != null">data_approval_status = #{dataApprovalStatus},</if>
+            <if test="processKey != null">process_key = #{processKey},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="teamCode != null">team_code = #{teamCode},</if>
+            <if test="teamType != null ">team_type=#{teamType}</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTeamInformationById" parameterType="Long">
+        delete from {DBNAME}.team_information where id = #{id}
+    </delete>
+
+    <delete id="deleteTeamInformationByIds" parameterType="String">
+        delete from {DBNAME}.team_information where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 117 - 0
zkqy-fujian-amichi/src/main/resources/mapper/TeamPersonnelChangeInformationMapper.xml

@@ -0,0 +1,117 @@
+<?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.amichi.mapper.TeamPersonnelChangeInformationMapper">
+    
+    <resultMap type="com.zkqy.amichi.domain.TeamPersonnelChangeInformation" id="TeamPersonnelChangeInformationResult">
+        <result property="id"    column="id"    />
+        <result property="teamPersonnelName"    column="team_personnel_name"    />
+        <result property="teamId"    column="team_id"    />
+        <result property="remark"    column="remark"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="dataApprovalStatus"    column="data_approval_status"    />
+        <result property="processKey"    column="process_key"    />
+        <result property="taskProcessKey"    column="task_process_key"    />
+        <result property="taskNodeKey"    column="task_node_key"    />
+    </resultMap>
+
+    <sql id="selectTeamPersonnelChangeInformationVo">
+        select id, team_personnel_name, team_id, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, data_approval_status,
+               process_key, task_process_key, task_node_key from {DBNAME}.team_personnel_change_information
+    </sql>
+
+    <select id="selectTeamPersonnelChangeInformationList" parameterType="com.zkqy.amichi.domain.TeamPersonnelChangeInformation" resultMap="TeamPersonnelChangeInformationResult">
+        <include refid="selectTeamPersonnelChangeInformationVo"/>
+        <where>  
+            <if test="teamPersonnelName != null  and teamPersonnelName != ''"> and team_personnel_name = #{teamPersonnelName}</if>
+            <if test="teamId != null  and teamId != ''"> and team_id = #{teamId}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="dataApprovalStatus != null  and dataApprovalStatus != ''"> and data_approval_status = #{dataApprovalStatus}</if>
+            <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            and del_flag=0
+        </where>
+    </select>
+    
+    <select id="selectTeamPersonnelChangeInformationById" parameterType="Long" resultMap="TeamPersonnelChangeInformationResult">
+        <include refid="selectTeamPersonnelChangeInformationVo"/>
+        where id = #{id} and del_flag=0
+    </select>
+        
+    <insert id="insertTeamPersonnelChangeInformation" parameterType="com.zkqy.amichi.domain.TeamPersonnelChangeInformation" useGeneratedKeys="true" keyProperty="id">
+        insert into {DBNAME}.team_personnel_change_information
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="teamPersonnelName != null">team_personnel_name,</if>
+            <if test="teamId != null">team_id,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="dataApprovalStatus != null">data_approval_status,</if>
+            <if test="processKey != null">process_key,</if>
+            <if test="taskProcessKey != null">task_process_key,</if>
+            <if test="taskNodeKey != null">task_node_key,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="teamPersonnelName != null">#{teamPersonnelName},</if>
+            <if test="teamId != null">#{teamId},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="dataApprovalStatus != null">#{dataApprovalStatus},</if>
+            <if test="processKey != null">#{processKey},</if>
+            <if test="taskProcessKey != null">#{taskProcessKey},</if>
+            <if test="taskNodeKey != null">#{taskNodeKey},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTeamPersonnelChangeInformation" parameterType="com.zkqy.amichi.domain.TeamPersonnelChangeInformation">
+        update {DBNAME}.team_personnel_change_information
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="teamPersonnelName != null">team_personnel_name = #{teamPersonnelName},</if>
+            <if test="teamId != null">team_id = #{teamId},</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="dataApprovalStatus != null">data_approval_status = #{dataApprovalStatus},</if>
+            <if test="processKey != null">process_key = #{processKey},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTeamPersonnelChangeInformationById" parameterType="Long">
+        delete from {DBNAME}.team_personnel_change_information where id = #{id}
+    </delete>
+
+    <delete id="deleteTeamPersonnelChangeInformationByIds" parameterType="String">
+        delete from {DBNAME}.team_personnel_change_information where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 132 - 0
zkqy-fujian-amichi/src/main/resources/mapper/TeamPersonnelInformationMapper.xml

@@ -0,0 +1,132 @@
+<?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.amichi.mapper.TeamPersonnelInformationMapper">
+    
+    <resultMap type="com.zkqy.amichi.domain.TeamPersonnelInformation" id="TeamPersonnelInformationResult">
+        <result property="id"    column="id"    />
+        <result property="teamPersonnelName"    column="team_personnel_name"    />
+        <result property="teamId"    column="team_id"    />
+        <result property="remark"    column="remark"    />
+        <result property="createById"    column="create_by_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateById"    column="update_by_id"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="dataApprovalStatus"    column="data_approval_status"    />
+        <result property="processKey"    column="process_key"    />
+        <result property="taskProcessKey"    column="task_process_key"    />
+        <result property="taskNodeKey"    column="task_node_key"    />
+    </resultMap>
+
+    <sql id="selectTeamPersonnelInformationVo">
+        select id, team_personnel_name, team_id, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key, task_node_key
+        from {DBNAME}.team_personnel_information
+    </sql>
+
+    <select id="selectTeamPersonnelInformationList" parameterType="com.zkqy.amichi.domain.TeamPersonnelInformation" resultMap="TeamPersonnelInformationResult">
+        <include refid="selectTeamPersonnelInformationVo"/>
+        <where>  
+            <if test="teamPersonnelName != null  and teamPersonnelName != ''"> and team_personnel_name = #{teamPersonnelName}</if>
+            <if test="teamId != null  and teamId != ''"> and team_id = #{teamId}</if>
+            <if test="createById != null "> and create_by_id = #{createById}</if>
+            <if test="updateById != null "> and update_by_id = #{updateById}</if>
+            <if test="dataApprovalStatus != null  and dataApprovalStatus != ''"> and data_approval_status = #{dataApprovalStatus}</if>
+            <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            and  del_flag=0
+        </where>
+        UNION ALL
+        SELECT
+           *
+        FROM
+        {DBNAME}.team_personnel_change_information
+        <where>
+            <if test="createTime == null">
+                DATE_FORMAT(create_time,'%Y-%m-%d') =DATE_FORMAT(now(),'%Y-%m-%d')
+            </if>
+            <if test="createTime != null">
+                DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d')
+            </if>
+            <if test="teamId != null  and teamId != ''"> and team_id = #{teamId}</if>
+            and del_flag=0
+        </where>
+    </select>
+    
+    <select id="selectTeamPersonnelInformationById" parameterType="Long" resultMap="TeamPersonnelInformationResult">
+        <include refid="selectTeamPersonnelInformationVo"/>
+        where id = #{id} and del_flag=0
+    </select>
+        
+    <insert id="insertTeamPersonnelInformation" parameterType="com.zkqy.amichi.domain.TeamPersonnelInformation" useGeneratedKeys="true" keyProperty="id">
+        insert into {DBNAME}.team_personnel_information
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="teamPersonnelName != null">team_personnel_name,</if>
+            <if test="teamId != null">team_id,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createById != null">create_by_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateById != null">update_by_id,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="dataApprovalStatus != null">data_approval_status,</if>
+            <if test="processKey != null">process_key,</if>
+            <if test="taskProcessKey != null">task_process_key,</if>
+            <if test="taskNodeKey != null">task_node_key,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="teamPersonnelName != null">#{teamPersonnelName},</if>
+            <if test="teamId != null">#{teamId},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createById != null">#{createById},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateById != null">#{updateById},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="dataApprovalStatus != null">#{dataApprovalStatus},</if>
+            <if test="processKey != null">#{processKey},</if>
+            <if test="taskProcessKey != null">#{taskProcessKey},</if>
+            <if test="taskNodeKey != null">#{taskNodeKey},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTeamPersonnelInformation" parameterType="com.zkqy.amichi.domain.TeamPersonnelInformation">
+        update {DBNAME}.team_personnel_information
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="teamPersonnelName != null">team_personnel_name = #{teamPersonnelName},</if>
+            <if test="teamId != null">team_id = #{teamId},</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="dataApprovalStatus != null">data_approval_status = #{dataApprovalStatus},</if>
+            <if test="processKey != null">process_key = #{processKey},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTeamPersonnelInformationById" parameterType="Long">
+        delete from {DBNAME}.team_personnel_information where id = #{id}
+    </delete>
+
+    <delete id="deleteTeamPersonnelInformationByIds" parameterType="String">
+        delete from {DBNAME}.team_personnel_information where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 1 - 1
zkqy-laboratory-information/pom.xml

@@ -32,4 +32,4 @@
             <artifactId>zkqy-common</artifactId>
         </dependency>
     </dependencies>
-</project>
+</project>

+ 1 - 0
zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/controller/ChemicalElementTestResultsController.java

@@ -90,6 +90,7 @@ public class ChemicalElementTestResultsController extends BaseController
     @ApiOperation(value = "修改化学元素检测结果")
     public AjaxResult edit(@RequestBody ChemicalElementTestResults chemicalElementTestResults)
     {
+
         return toAjax(chemicalElementTestResultsService.updateChemicalElementTestResults(chemicalElementTestResults));
     }
 

+ 10 - 1
zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/controller/EntrustedInformationController.java

@@ -8,6 +8,9 @@ import java.util.Optional;
 import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
 
+import com.github.pagehelper.PageInfo;
+import com.zkqy.common.constant.HttpStatus;
+import com.zkqy.common.utils.PageUtils;
 import com.zkqy.laboratory.domain.vo.WtRVo;
 import com.zkqy.laboratory.domain.vo.WtVo;
 import com.zkqy.system.mapper.SysDictDataMapper;
@@ -62,7 +65,13 @@ public class EntrustedInformationController extends BaseController
             });
             return item;
         }).collect(Collectors.toList());
-        return getDataTable(collect);
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setCode(HttpStatus.SUCCESS);
+        rspData.setMsg("查询成功");
+        rspData.setRows(collect);
+        long total = new PageInfo(list).getTotal();
+        rspData.setTotal(total);
+        return rspData;
     }
 
     /**

+ 11 - 4
zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/domain/DetectionResult.java

@@ -38,7 +38,7 @@ public class DetectionResult extends BaseEntity
     private String specification;
 
     /** 合金状态 */
-    @Excel(name = "合金状态")
+    @Excel(name = "合金")
     private String alloyState;
 
     /** 厂家 */
@@ -90,9 +90,11 @@ public class DetectionResult extends BaseEntity
     private String rateOfElongationTwo;
 
     /** 标准 */
-    @Excel(name = "标准")
+    @Excel(name = "判定标准")
     private String standard;
 
+
+
     /** 判定结果 */
     @Excel(name = "判定结果")
     private String decisionResult;
@@ -132,8 +134,8 @@ public class DetectionResult extends BaseEntity
     @Excel(name = "数据条审批状态", readConverterExp = "默=认字段,0=:已提交、1:已通过、2:不通过、3:未提交、4:驳回、5:审批中")
     private String dataApprovalStatus;
 
-    /** 流程编号 */
-    @Excel(name = "流程编号")
+    /** 实验机型 */
+    @Excel(name = "实验机型")
     private String processKey;
 
     /** 任务编码 */
@@ -147,6 +149,11 @@ public class DetectionResult extends BaseEntity
     @Excel(name = "委托单编号")
     private  String wtNumber;
 
+    @Excel(name = "温度")
+    private  String temperature;
+
+
+
     public String getWtNumber() {
         return wtNumber;
     }

+ 4 - 0
zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/service/impl/ChemicalElementTestResultsServiceImpl.java

@@ -1,7 +1,9 @@
 package com.zkqy.laboratory.service.impl;
 
+import java.time.LocalDateTime;
 import java.util.List;
 import com.zkqy.common.utils.DateUtils;
+import com.zkqy.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.zkqy.laboratory.mapper.ChemicalElementTestResultsMapper;
@@ -66,6 +68,8 @@ public class ChemicalElementTestResultsServiceImpl implements IChemicalElementTe
     @Override
     public int updateChemicalElementTestResults(ChemicalElementTestResults chemicalElementTestResults)
     {
+        chemicalElementTestResults.setTaskProcessKey(DateUtils.toLocalDateTimeStr(LocalDateTime.now()));//审批时间
+        chemicalElementTestResults.setTaskNodeKey(SecurityUtils.getUsername());//审批人
         chemicalElementTestResults.setUpdateTime(DateUtils.getNowDate());
         return chemicalElementTestResultsMapper.updateChemicalElementTestResults(chemicalElementTestResults);
     }

+ 4 - 0
zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/service/impl/DetectionResultServiceImpl.java

@@ -1,7 +1,9 @@
 package com.zkqy.laboratory.service.impl;
 
+import java.time.LocalDateTime;
 import java.util.List;
 import com.zkqy.common.utils.DateUtils;
+import com.zkqy.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.zkqy.laboratory.mapper.DetectionResultMapper;
@@ -66,6 +68,8 @@ public class DetectionResultServiceImpl implements IDetectionResultService
     @Override
     public int updateDetectionResult(DetectionResult detectionResult)
     {
+        detectionResult.setTaskProcessKey(DateUtils.toLocalDateTimeStr(LocalDateTime.now()));//审批时间
+        detectionResult.setTaskNodeKey(SecurityUtils.getUsername());//审批人
         detectionResult.setUpdateTime(DateUtils.getNowDate());
         return detectionResultMapper.updateDetectionResult(detectionResult);
     }

+ 1 - 0
zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/utils/ma.java

@@ -15,6 +15,7 @@ public class ma {
             //对象不等于null走这个
             System.out.println(user1.getId()+"1");
         });
+
         if(null!=user){
             System.out.println("dddddddd");
         }

+ 7 - 1
zkqy-laboratory-information/src/main/resources/mapper/ChemicalElementTestResultsMapper.xml

@@ -43,10 +43,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="processKey"    column="process_key"    />
         <result property="taskProcessKey"    column="task_process_key"    />
         <result property="taskNodeKey"    column="task_node_key"    />
+        <result property="wtNumber" column="wt_number"></result>
     </resultMap>
 
     <sql id="selectChemicalElementTestResultsVo">
-        select id, supplier, thickness, breadth, alloy_state, lot_number, si, fe, cu, mn, mg, ni, zn, ti, ai, silicon, iron, copper, manganese, magnesium, nickel, zinc, titanium, aluminum, whether_qualified_or_not, element_commit_time, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key, task_node_key from {DBNAME}.chemical_element_test_results
+        select id, supplier, thickness, breadth, alloy_state, lot_number, si, fe, cu, mn, mg, ni, zn, ti, ai, silicon, iron, copper, manganese, magnesium, nickel, zinc, titanium, aluminum, whether_qualified_or_not, element_commit_time, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, data_approval_status, process_key, task_process_key, task_node_key,wt_number from {DBNAME}.chemical_element_test_results
     </sql>
 
     <select id="selectChemicalElementTestResultsList" parameterType="com.zkqy.laboratory.domain.ChemicalElementTestResults" resultMap="ChemicalElementTestResultsResult">
@@ -83,7 +84,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
             <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
             <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            <if test="wtNumber != null  and wtNumber != ''"> and wt_number = #{wtNumber}</if>
         </where>
+        order by id desc
     </select>
     
     <select id="selectChemicalElementTestResultsById" parameterType="Long" resultMap="ChemicalElementTestResultsResult">
@@ -131,6 +134,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="processKey != null">process_key,</if>
             <if test="taskProcessKey != null">task_process_key,</if>
             <if test="taskNodeKey != null">task_node_key,</if>
+            <if test="wtNumber != null  and wtNumber != ''">wt_number</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="supplier != null">#{supplier},</if>
@@ -170,6 +174,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="processKey != null">#{processKey},</if>
             <if test="taskProcessKey != null">#{taskProcessKey},</if>
             <if test="taskNodeKey != null">#{taskNodeKey},</if>
+            <if test="wtNumber != null  and wtNumber != ''">#{wtNumber}</if>
          </trim>
     </insert>
 
@@ -213,6 +218,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="processKey != null">process_key = #{processKey},</if>
             <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
             <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="wtNumber != null  and wtNumber != ''">wt_number=#{wtNumber}</if>
         </trim>
         where id = #{id}
     </update>

+ 3 - 0
zkqy-laboratory-information/src/main/resources/mapper/DetectionInformationMapper.xml

@@ -65,6 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="customerMasterTag != null  and customerMasterTag != ''">and customer_master_tag = #{customerMasterTag}</if>
             <if test="customerViceTag != null  and customerViceTag != ''">and customer_vice_tag = #{customerViceTag}</if>
         </where>
+        order by id desc
     </select>
 
     <select id="selectDetectionInformationList" parameterType="com.zkqy.laboratory.domain.DetectionInformation" resultMap="DetectionInformationResult">
@@ -107,6 +108,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 </foreach>
             </if>
         </where>
+        order by id desc
     </select>
     
     <select id="selectDetectionInformationById" parameterType="Long" resultMap="DetectionInformationResult">
@@ -124,6 +126,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
+        order by id desc
     </select>
 
     <insert id="insertDetectionInformation" parameterType="com.zkqy.laboratory.domain.DetectionInformation" useGeneratedKeys="true" keyProperty="id">

+ 1 - 0
zkqy-laboratory-information/src/main/resources/mapper/DetectionResultMapper.xml

@@ -83,6 +83,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
             <if test="wtNumber != null  and wtNumber != ''"> and wt_number = #{wtNumber}</if>
         </where>
+        order by id desc
     </select>
     
     <select id="selectDetectionResultById" parameterType="Long" resultMap="DetectionResultResult">

+ 1 - 0
zkqy-laboratory-information/src/main/resources/mapper/EntrustedInformationMapper.xml

@@ -127,6 +127,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 <![CDATA[ and ei.create_time <= #{endTime}]]>
             </if>
             <if test="orderStatus != null  and orderStatus != ''"> and ei.order_status = #{orderStatus}</if>
+            <if test="createBy != null "> and ei.create_by = #{createBy}</if>
             <if test="createById != null "> and ei.create_by_id = #{createById}</if>
             <if test="updateById != null "> and ei.update_by_id = #{updateById}</if>
             <if test="dataApprovalStatus != null  and dataApprovalStatus != ''"> and data_approval_status = #{dataApprovalStatus}</if>

+ 0 - 1
zkqy-laboratory-information/src/main/resources/mapper/MaterialInformationMapper.xml

@@ -41,7 +41,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="alloy" column="alloy"/>
         <result property="thickness" column="thickness"/>
         <result property="specification" column="specification"/>
-
         <result property="customerNumber" column="customer_number"></result>
         <result property="customerMasterTag" column="customer_master_tag"></result>
         <result property="customerViceTag" column="customer_vice_tag"></result>

+ 1 - 0
zkqy-laboratory-information/src/main/resources/mapper/ReportInformationMapper.xml

@@ -52,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
            <if test=" auditor!=null and auditor!=''">and auditor = #{auditor}</if>
         </where>
+        order by id desc
     </select>
     
     <select id="selectReportInformationById" parameterType="Long" resultMap="ReportInformationResult">

+ 1 - 0
zkqy-laboratory-information/src/main/resources/mapper/SamplePrintingMapper.xml

@@ -76,6 +76,7 @@
             <if test="actualThickness != null  and actualThickness != ''"> and actual_thickness = #{actualThickness}</if>
             <if test="materialDescription != null  and materialDescription != ''"> and material_description = #{materialDescription}</if>
         </where>
+        order by id desc
     </select>
 
     <select id="selectSamplePrintingById" parameterType="Long" resultMap="SamplePrintingResult">

+ 5 - 5
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmApprovalStatusController.java

@@ -35,11 +35,11 @@ public class BpmApprovalStatusController extends BaseController
     @Autowired
     private IBpmApprovalStatusService bpmApprovalStatusService;
 
-/**
- * 查询审批数据条中间列表
- */
-@PreAuthorize("@ss.hasPermi('system:approvalStatus:list')")
-@GetMapping("/list")
+    /**
+     * 查询审批数据条中间列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:approvalStatus:list')")
+    @GetMapping("/list")
     public TableDataInfo list(BpmApprovalStatus bpmApprovalStatus)
     {
         startPage();

+ 19 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmRunController.java

@@ -66,6 +66,25 @@ public class BpmRunController extends BaseController {
         return AjaxResult.success(ipreExecutionToolClass.executionNode(bpmRunNodeVo));
     }
 
+    /**
+     * 共通执行节点接口 工业离散型
+     */
+    @Log(title = "执行流程节点", businessType = BusinessType.INSERT)
+    @PostMapping("/processNodeExecutionFjqy")
+    public AjaxResult processNodeExecutionFjqy(BpmRunNodeVo bpmRunNodeVo, @RequestParam("fileXML") MultipartFile fileXML) {
+        if (!fileXML.isEmpty()) {
+            try {
+                // 解析得到当前文件中的内容
+                byte[] bytes = fileXML.getBytes();
+                String xmlContent = new String(bytes);
+                bpmRunNodeVo.setTaskProcessXmlContent(xmlContent);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        return AjaxResult.success(ipreExecutionToolClass.executionNode(bpmRunNodeVo));
+    }
+
     /**
      * 共通执行节点接口 审批类型
      */

+ 2 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmExecuteNodeFormMapper.java

@@ -2,6 +2,7 @@ package com.zkqy.execution.produce.dispersed.mapper;
 
 
 import com.zkqy.execution.produce.dispersed.entity.BpmExecuteNodeForm;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -13,6 +14,7 @@ import java.util.Map;
  * @author zkqy
  * @date 2023-12-07
  */
+@Mapper
 public interface BpmExecuteNodeFormMapper {
     /**
      * @param taskProcessKey 当前流程Key

+ 19 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmExecuteNodeLogMapper.java

@@ -4,6 +4,7 @@ package com.zkqy.execution.produce.dispersed.mapper;
 
 import com.zkqy.execution.produce.dispersed.entity.BpmExecuteNodeLog;
 import io.lettuce.core.dynamic.annotation.Param;
+import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 import java.util.Map;
@@ -14,6 +15,7 @@ import java.util.Map;
  * @author zkqy
  * @date 2023-12-18
  */
+@Mapper
 public interface BpmExecuteNodeLogMapper 
 {
     /**
@@ -41,6 +43,15 @@ public interface BpmExecuteNodeLogMapper
      */
     public List<BpmExecuteNodeLog> selectBpmExecuteNodeLogList(BpmExecuteNodeLog bpmExecuteNodeLog);
 
+
+    /**
+     * 查询节点执行记录(日志)列表
+     *
+     * @param bpmExecuteNodeLog 节点执行记录(日志)
+     * @return 节点执行记录(日志)集合
+     */
+    public List<BpmExecuteNodeLog> selectBpmExecuteNodeLogListfjqy(BpmExecuteNodeLog bpmExecuteNodeLog);
+
     /**
      * 新增节点执行记录(日志)
      * 
@@ -57,6 +68,14 @@ public interface BpmExecuteNodeLogMapper
      */
     public int updateBpmExecuteNodeLog(BpmExecuteNodeLog bpmExecuteNodeLog);
 
+    /**
+     * 修改节点执行记录(日志)
+     *
+     * @param bpmExecuteNodeLog 节点执行记录(日志)
+     * @return 结果
+     */
+    public int updateBpmExecuteNodeLogfjqy(BpmExecuteNodeLog bpmExecuteNodeLog);
+
     /**
      * 删除节点执行记录(日志)
      * 

+ 2 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmExecuteNodeMapper.java

@@ -2,6 +2,7 @@ package com.zkqy.execution.produce.dispersed.mapper;
 
 
 import com.zkqy.execution.produce.dispersed.entity.BpmExecuteNode;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -13,6 +14,7 @@ import java.util.List;
  * @author hzh
  * @date 2023-11-01
  */
+@Mapper
 public interface BpmExecuteNodeMapper {
     /**
      * 查询节点执行(记录)

+ 2 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmExecuteNodeMiddleMapper.java

@@ -2,6 +2,7 @@ package com.zkqy.execution.produce.dispersed.mapper;
 
 
 import com.zkqy.execution.produce.dispersed.entity.BpmExecuteNodeMiddle;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -13,6 +14,7 @@ import java.util.List;
  * @author hzh
  * @date 2023-11-01
  */
+@Mapper
 public interface BpmExecuteNodeMiddleMapper {
     /**
      * 查询执行流程用户、节点关联脚本中间

+ 9 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmExecuteProcessMapper.java

@@ -35,6 +35,15 @@ public interface BpmExecuteProcessMapper {
     public List<BpmExecuteProcess> selectBpmExecuteProcessList(BpmExecuteProcess bpmExecuteProcess);
 
 
+    /**
+     * 查询流程执行任务列表
+     *
+     * @param bpmExecuteProcess 流程执行任务
+     * @return 流程执行任务集合
+     */
+    public List<BpmExecuteProcess> selectBpmExecuteProcessListfjqy(BpmExecuteProcess bpmExecuteProcess);
+
+
     /**
      * 查询流程执行任务列表数量(这个查询的是审批流的数量)
      *

+ 2 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmNodeHandleUserMapper.java

@@ -1,6 +1,7 @@
 package com.zkqy.execution.produce.dispersed.mapper;
 
 import com.zkqy.execution.produce.dispersed.entity.BpmNodeHandleUser;
+import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 
@@ -10,6 +11,7 @@ import java.util.List;
  * @author hzh
  * @date 2023-10-26
  */
+@Mapper
 public interface BpmNodeHandleUserMapper 
 {
     /**

+ 2 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmNodeScriptRelevanceMapper.java

@@ -1,6 +1,7 @@
 package com.zkqy.execution.produce.dispersed.mapper;
 
 import com.zkqy.execution.produce.dispersed.entity.BpmNodeScriptRelevance;
+import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 
@@ -10,6 +11,7 @@ import java.util.List;
  * @author hzh
  * @date 2023-10-26
  */
+@Mapper
 public interface BpmNodeScriptRelevanceMapper 
 {
     /**

+ 2 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmProcessConfigurationMapper.java

@@ -1,6 +1,7 @@
 package com.zkqy.execution.produce.dispersed.mapper;
 
 import com.zkqy.execution.produce.dispersed.entity.BpmProcessConfiguration;
+import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 
@@ -10,6 +11,7 @@ import java.util.List;
  * @author hzh
  * @date 2023-10-20
  */
+@Mapper
 public interface BpmProcessConfigurationMapper {
     /**
      * 查询流程配置

+ 2 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/runbpm/PreExecutionToolClass.java

@@ -930,4 +930,6 @@ public class PreExecutionToolClass<R> {
 
         return AjaxResult.success();
     }
+
+
 }

+ 101 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/fjqy/FjqyDeliverGoods.java

@@ -0,0 +1,101 @@
+package com.zkqy.execution.produce.dispersed.service.impl.runbpm.fjqy;
+
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.core.redis.RedisCache;
+import com.zkqy.execution.produce.dispersed.entity.CommonEntity;
+import com.zkqy.execution.produce.dispersed.entity.runbpm.BpmRunNodeFromVo;
+import com.zkqy.execution.produce.dispersed.entity.runbpm.IRunBPMEntity;
+import com.zkqy.execution.produce.dispersed.service.IRunBPMService;
+import com.zkqy.execution.produce.dispersed.service.impl.CommonServiceImpl;
+import com.zkqy.execution.produce.utils.EchoNodeFormData;
+import com.zkqy.execution.produce.utils.Sending;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PreDestroy;
+
+/**
+ * 福建铨一发货
+ */
+@Service("41e9c346-0eb8-4103-bf96-35425c9b6e23")
+@Scope("prototype")
+public class FjqyDeliverGoods implements IRunBPMService {
+
+    @Autowired
+    private EchoNodeFormData echoNodeFormData;
+
+    @Autowired
+    private Sending sending;
+
+
+    @Autowired
+    private RedisCache redisCache;
+
+    @Autowired
+    private CommonServiceImpl commonService;
+
+
+    @Override
+    public CommonEntity getNodeFormData(BpmRunNodeFromVo bpmRunNodeFromVo) {
+        return echoNodeFormData.getEchoNodeFormData(bpmRunNodeFromVo);
+    }
+
+
+    /**
+     * 前置验证节点
+     *
+     * @param iRunBPMEntity 节点执行参数
+     * @return
+     */
+    @Override
+    public AjaxResult preValidation(IRunBPMEntity iRunBPMEntity) {
+
+        return AjaxResult.success();
+    }
+
+    /**
+     * 节点执行流程
+     *
+     * @param iRunBPMEntity 节点执行参数
+     * @return
+     */
+    @Override
+    public AjaxResult executeNode(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    /**
+     * 后置验证节点
+     *
+     * @param iRunBPMEntity 节点执行参数
+     */
+    @Override
+    public AjaxResult afterValidation(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    /**
+     * 需要手动修改返回为true!当前实现类中不得写逻辑代码!
+     * 此操作只为验证当前实现类是否存在!
+     * @return
+     */
+    @Override
+    public boolean isVerificationMethod() {
+        return true;
+    }
+
+    /**
+     * @PreDestroy 注解用来清理当前bean。
+     * spring不会清理prototype作用域的bean。
+     *
+     * @return
+     */
+    @Override
+    @PreDestroy
+    public boolean preDestroy() {
+        // 执行清理操作
+        System.err.print("清理成功!");
+        return true;
+    }
+}

+ 100 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/fjqy/FjqyInStorage.java

@@ -0,0 +1,100 @@
+package com.zkqy.execution.produce.dispersed.service.impl.runbpm.fjqy;
+
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.core.redis.RedisCache;
+import com.zkqy.execution.produce.dispersed.entity.CommonEntity;
+import com.zkqy.execution.produce.dispersed.entity.runbpm.BpmRunNodeFromVo;
+import com.zkqy.execution.produce.dispersed.entity.runbpm.IRunBPMEntity;
+import com.zkqy.execution.produce.dispersed.service.IRunBPMService;
+import com.zkqy.execution.produce.dispersed.service.impl.CommonServiceImpl;
+import com.zkqy.execution.produce.utils.EchoNodeFormData;
+import com.zkqy.execution.produce.utils.Sending;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PreDestroy;
+
+/**
+ * 福建铨一入库节点
+ */
+@Service("45589eda-e5f4-417d-a1bb-e9add99015e6")
+@Scope("prototype")
+public class FjqyInStorage implements IRunBPMService {
+
+    @Autowired
+    private EchoNodeFormData echoNodeFormData;
+
+    @Autowired
+    private Sending sending;
+
+
+    @Autowired
+    private RedisCache redisCache;
+
+    @Autowired
+    private CommonServiceImpl commonService;
+
+
+    @Override
+    public CommonEntity getNodeFormData(BpmRunNodeFromVo bpmRunNodeFromVo) {
+        return echoNodeFormData.getEchoNodeFormData(bpmRunNodeFromVo);
+    }
+
+    /**
+     * 前置验证节点
+     *
+     * @param iRunBPMEntity 节点执行参数
+     * @return
+     */
+    @Override
+    public AjaxResult preValidation(IRunBPMEntity iRunBPMEntity) {
+
+        return AjaxResult.success();
+    }
+
+    /**
+     * 节点执行流程
+     *
+     * @param iRunBPMEntity 节点执行参数
+     * @return
+     */
+    @Override
+    public AjaxResult executeNode(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    /**
+     * 后置验证节点
+     *
+     * @param iRunBPMEntity 节点执行参数
+     */
+    @Override
+    public AjaxResult afterValidation(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    /**
+     * 需要手动修改返回为true!当前实现类中不得写逻辑代码!
+     * 此操作只为验证当前实现类是否存在!
+     * @return
+     */
+    @Override
+    public boolean isVerificationMethod() {
+        return true;
+    }
+
+    /**
+     * @PreDestroy 注解用来清理当前bean。
+     * spring不会清理prototype作用域的bean。
+     *
+     * @return
+     */
+    @Override
+    @PreDestroy
+    public boolean preDestroy() {
+        // 执行清理操作
+        System.err.print("清理成功!");
+        return true;
+    }
+}

+ 104 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/fjqy/FjqyPackage.java

@@ -0,0 +1,104 @@
+package com.zkqy.execution.produce.dispersed.service.impl.runbpm.fjqy;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.core.redis.RedisCache;
+import com.zkqy.execution.produce.dispersed.entity.CommonEntity;
+import com.zkqy.execution.produce.dispersed.entity.runbpm.BpmRunNodeFormFilterConditionsVo;
+import com.zkqy.execution.produce.dispersed.entity.runbpm.BpmRunNodeFromVo;
+import com.zkqy.execution.produce.dispersed.entity.runbpm.IRunBPMEntity;
+import com.zkqy.execution.produce.dispersed.service.IRunBPMService;
+import com.zkqy.execution.produce.dispersed.service.impl.CommonServiceImpl;
+import com.zkqy.execution.produce.utils.EchoNodeFormData;
+import com.zkqy.execution.produce.utils.Sending;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PreDestroy;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 包装节点
+ */
+@Service("383473fa-539a-4221-ac5c-580404eafc72")
+@Scope("prototype")
+public class FjqyPackage implements IRunBPMService {
+
+    @Autowired
+    private EchoNodeFormData echoNodeFormData;
+
+    @Autowired
+    private Sending sending;
+
+
+    @Autowired
+    private RedisCache redisCache;
+
+    @Autowired
+    private CommonServiceImpl commonService;
+
+
+    @Override
+    public CommonEntity getNodeFormData(BpmRunNodeFromVo bpmRunNodeFromVo) {
+        return echoNodeFormData.getEchoNodeFormData(bpmRunNodeFromVo);
+    }
+
+    /**
+     * 前置验证节点
+     *
+     * @param iRunBPMEntity 节点执行参数
+     * @return
+     */
+    @Override
+    public AjaxResult preValidation(IRunBPMEntity iRunBPMEntity) {
+
+        return AjaxResult.success();
+    }
+
+    /**
+     * 节点执行流程
+     *
+     * @param iRunBPMEntity 节点执行参数
+     * @return
+     */
+    @Override
+    public AjaxResult executeNode(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    /**
+     * 后置验证节点
+     *
+     * @param iRunBPMEntity 节点执行参数
+     */
+    @Override
+    public AjaxResult afterValidation(IRunBPMEntity iRunBPMEntity) {
+        return AjaxResult.success();
+    }
+
+    /**
+     * 需要手动修改返回为true!当前实现类中不得写逻辑代码!
+     * 此操作只为验证当前实现类是否存在!
+     * @return
+     */
+    @Override
+    public boolean isVerificationMethod() {
+        return true;
+    }
+
+    /**
+     * @PreDestroy 注解用来清理当前bean。
+     * spring不会清理prototype作用域的bean。
+     *
+     * @return
+     */
+    @Override
+    @PreDestroy
+    public boolean preDestroy() {
+        // 执行清理操作
+        System.err.print("清理成功!");
+        return true;
+    }
+}

+ 0 - 26
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/runbpm/fjqy/JointTermination.java

@@ -65,32 +65,6 @@ public class JointTermination implements IRunBPMService {
      */
     @Override
     public AjaxResult executeNode(IRunBPMEntity iRunBPMEntity) {
-        //害怕有异常节点回滚操作
-//        String taskIdString = iRunBPMEntity.getExecutionMap().get("taskId").toString();
-////        if(!redisCache.hasKey("3c374962-9557-48ca-b968-65977f608af6"+taskIdString)){
-//            //获取数据采集设备上料数量
-//            HashMap requestString=new HashMap();
-//            requestString.put("id",taskIdString);
-//            String string1 = sending.sendGetRequestWithParams("http://mes.063520.com/api/v1/mes/public/task/info", requestString, String.class).toString();
-//            String string2 = JSONObject.parseObject(string1, HashMap.class).get("result").toString();
-//            Map respMap2 = JSONObject.parseObject(string2, HashMap.class);
-//            //上料节点---有数据了证明已经把所有的数据采集设备数据都给拿回来了
-//            //task_id、materials、processed、assembled、qualified、unqualified、in_stock
-//            CommonEntity commonEntity=new CommonEntity();
-//            HashMap basicMap=new HashMap();
-//            basicMap.put("tableName","product_assembly");
-//            commonEntity.setBasicMap(basicMap);
-//            //构造要添加的数据
-//            HashMap<String,String> mapRs=new HashMap();
-//            mapRs.put("task_number",iRunBPMEntity.getExecutionMap().get("taskId").toString());
-//            mapRs.put("task_quantity",iRunBPMEntity.getExecutionMap().get("productQuantity").toString());
-//            mapRs.put("over_number",respMap2.get("assembled").toString());
-//            List<Map<String,String>> mapList=new ArrayList<>();
-//            mapList.add(mapRs);
-//            commonEntity.setAddListMap(mapList);
-//            commonService.batchInsert(commonEntity);
-//            redisCache.setCacheObject("17af9e43-4bbe-4661-babc-ee09f67972b6"+taskIdString,"1");
-//        }
         return AjaxResult.success();
     }
 

+ 91 - 0
zkqy-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteNodeLogMapper.xml

@@ -125,6 +125,68 @@
         GROUP BY id
         ORDER BY task_process_key, MIN(id)
     </select>
+    <select id="selectBpmExecuteNodeLogListfjqy"
+            parameterType="com.zkqy.execution.produce.dispersed.entity.BpmExecuteNodeLog"
+            resultMap="BpmExecuteNodeLogResult">
+        select id,
+        task_parent_node_key,
+        task_process_key,
+        task_node_key,
+        task_node_name,
+        task_node_form_key,
+        task_node_form_type,
+        task_node_type,
+        task_node_execute_type,
+        task_node_before,
+        task_node_after,
+        task_node_role_permission,
+        task_remark,
+        task_node_number,
+        task_node_weight,
+        task_node_state,
+        task_node_other_state,
+        task_priority,
+        task1,
+        task2,
+        task3,
+        task4,
+        task5,
+        del_flag,
+        create_by_id,
+        create_by,
+        create_time
+        from fjqydb.bpm_execute_node_log
+        <where>
+            <if test="taskParentNodeKey != null  and taskParentNodeKey != ''">and task_parent_node_key =#{taskParentNodeKey}
+            </if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''">and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''">and task_node_key = #{taskNodeKey}</if>
+            <if test="taskNodeName != null  and taskNodeName != ''">and task_node_name like concat('%', #{taskNodeName},
+                '%')
+            </if>
+            <if test="taskNodeFormKey != null  and taskNodeFormKey != ''">and task_node_form_key = #{taskNodeFormKey}
+            </if>
+            <if test="taskNodeFormType != null  and taskNodeFormType != ''">and task_node_form_type =
+                #{taskNodeFormType}
+            </if>
+            <if test="taskNodeType != null  and taskNodeType != ''">and task_node_type = #{taskNodeType}</if>
+            <if test="taskNodeExecuteType != null  and taskNodeExecuteType != ''">and task_node_execute_type =#{taskNodeExecuteType}</if>
+            <if test="taskNodeBefore != null  and taskNodeBefore != ''">and task_node_before = #{taskNodeBefore}</if>
+            <if test="taskNodeAfter != null  and taskNodeAfter != ''">and task_node_after = #{taskNodeAfter}</if>
+            <if test="taskNodeRolePermission != null  and taskNodeRolePermission != ''">and task_node_role_permission =#{taskNodeRolePermission} </if>
+            <if test="taskRemark != null  and taskRemark != ''">and task_remark = #{taskRemark}</if>
+            <if test="taskNodeNumber != null  and taskNodeNumber != ''">and task_node_number = #{taskNodeNumber}</if>
+            <if test="taskNodeWeight != null  and taskNodeWeight != ''">and task_node_weight = #{taskNodeWeight}</if>
+            <if test="taskNodeState != null  and taskNodeState != ''">and task_node_state = #{taskNodeState}</if>
+            <if test="taskNodeOtherState != null  and taskNodeOtherState != ''">and task_node_other_state =#{taskNodeOtherState}</if>
+            <if test="taskPriority != null  and taskPriority != ''">and task_priority = #{taskPriority}</if>
+            <if test="task1 != null  and task1 != ''">and task1 = #{task1}</if>
+            <if test="task2 != null  and task2 != ''">and task2 = #{task2}</if>
+            <if test="task3 != null  and task3 != ''">and task3 = #{task3}</if>
+            <if test="task4 != null  and task4 != ''">and task4 = #{task4}</if>
+            <if test="task5 != null  and task5 != ''">and task5 = #{task5}</if>
+        </where>
+    </select>
 
 
     <insert id="insertBpmExecuteNodeLog" parameterType="com.zkqy.execution.produce.dispersed.entity.BpmExecuteNodeLog"
@@ -220,6 +282,35 @@
         </trim>
         where id = #{id}
     </update>
+    <update id="updateBpmExecuteNodeLogfjqy">
+        update fjqydb.bpm_execute_node_log
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="taskParentNodeKey != null">task_parent_node_key = #{taskParentNodeKey},</if>
+            <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
+            <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="taskNodeName != null">task_node_name = #{taskNodeName},</if>
+            <if test="taskNodeFormKey != null">task_node_form_key = #{taskNodeFormKey},</if>
+            <if test="taskNodeFormType != null">task_node_form_type = #{taskNodeFormType},</if>
+            <if test="taskNodeType != null">task_node_type = #{taskNodeType},</if>
+            <if test="taskNodeExecuteType != null">task_node_execute_type = #{taskNodeExecuteType},</if>
+            <if test="taskNodeBefore != null">task_node_before = #{taskNodeBefore},</if>
+            <if test="taskNodeAfter != null">task_node_after = #{taskNodeAfter},</if>
+            <if test="taskNodeRolePermission != null">task_node_role_permission = #{taskNodeRolePermission},</if>
+            <if test="taskRemark != null">task_remark = #{taskRemark},</if>
+            <if test="taskNodeNumber != null">task_node_number = #{taskNodeNumber},</if>
+            <if test="taskNodeWeight != null">task_node_weight = #{taskNodeWeight},</if>
+            <if test="taskNodeState != null">task_node_state = #{taskNodeState},</if>
+            <if test="taskNodeOtherState != null">task_node_other_state = #{taskNodeOtherState},</if>
+            <if test="taskPriority != null">task_priority = #{taskPriority},</if>
+            <if test="task1 != null">task1 = #{task1},</if>
+            <if test="task2 != null">task2 = #{task2},</if>
+            <if test="task3 != null">task3 = #{task3},</if>
+            <if test="task4 != null">task4 = #{task4},</if>
+            <if test="task5 != null">task5 = #{task5},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+        </trim>
+        where id = #{id}
+    </update>
 
     <delete id="deleteBpmExecuteNodeLogById" parameterType="Long">
         delete

+ 40 - 1
zkqy-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteProcessMapper.xml

@@ -715,6 +715,9 @@
         bep.task_key as bpm_execute_process_task_key,
         plan.${planName} as bep_task_name,
         plan.production_line_no as bep_task_production_line_no,
+        plan.product_number as  bep_task_product_number,
+        plan.lot_number as  bep_task_lot_number,
+        plan.sale_order_no as bep_task_sale_order_no,
         bep.task_plan_key as bep_task_plan_key,
         bep.task_plan_key as bpm_execute_process_task_plan_key,
         bep.task_node_key as bep_task_node_key,
@@ -792,6 +795,9 @@
         bep.task_key as bpm_execute_process_task_key,
         plan.${planName} as bep_task_name,
         plan.production_line_no as bep_task_production_line_no,
+        plan.product_number as  bep_task_product_number,
+        plan.sale_order_no as bep_task_sale_order_no,
+        plan.lot_number as  bep_task_lot_number,
         bep.task_plan_key as bep_task_plan_key,
         bep.task_plan_key as bpm_execute_process_task_plan_key,
         bep.task_node_key as bep_task_node_key,
@@ -873,7 +879,40 @@
         </if>
         order by ben.create_time desc
     </select>
-
+    <select id="selectBpmExecuteProcessListfjqy"
+            parameterType="com.zkqy.execution.produce.dispersed.entity.BpmExecuteProcess"
+            resultMap="BpmExecuteProcessResult">
+        select id,
+        task_key,
+        task_name,
+        task_node_key,
+        task_node_next_key,
+        task_process_key,
+        task_process_xml_content,
+        task_process_state,
+        task_process_note,
+        del_flag,
+        remark,
+        task_process_type
+        from fjqydb.bpm_execute_process
+        <where>
+            <if test="taskPlanKey != null  and taskPlanKey != ''">and task_plan_key = #{taskPlanKey}</if>
+            <if test="taskKey != null  and taskKey != ''">and task_key = #{taskKey}</if>
+            <if test="taskName != null  and taskName != ''">and task_name like concat('%', #{taskName}, '%')</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''">and task_node_key = #{taskNodeKey}</if>
+            <if test="taskNodeNextKey != null  and taskNodeNextKey != ''">and task_node_next_key = #{taskNodeNextKey}
+            </if>
+            <if test="taskProcessKey != null  and taskProcessKey != ''">and task_process_key = #{taskProcessKey}</if>
+            <if test="taskProcessXmlContent != null  and taskProcessXmlContent != ''">and task_process_xml_content =
+                #{taskProcessXmlContent}
+            </if>
+            <if test="taskProcessState != null ">and task_process_state = #{taskProcessState}</if>
+            <if test="taskProcessNote != null  and taskProcessNote != ''">and task_process_note = #{taskProcessNote}
+            </if>
+            <if test="taskProcessType != null  and taskProcessType != ''">and task_process_type = #{taskProcessType}
+            </if>
+        </where>
+    </select>
 
 
 </mapper>

+ 2 - 0
zkqy-ui/package.json

@@ -76,6 +76,7 @@
     "js-cookie": "3.0.1",
     "jsbarcode": "^3.11.6",
     "jsencrypt": "3.0.0-rc.1",
+    "jspdf": "^2.5.1",
     "k-form-design": "^3.8.18",
     "less": "^2.7.3",
     "less-loader": "^4.1.0",
@@ -88,6 +89,7 @@
     "print-js": "^1.6.0",
     "qrcodejs2": "^0.0.2",
     "quill": "1.3.7",
+    "rte": "^2.0.1",
     "screenfull": "5.0.2",
     "sortablejs": "1.10.2",
     "swiper": "^5.4.5",

+ 19 - 0
zkqy-ui/src/api/amichi/planTask/planTaskDetails.js

@@ -0,0 +1,19 @@
+import request from '@/utils/request'
+
+// 自动投产接口
+export function planTaskDetails(data) {
+  return request({
+    url: '/planTaskDetails/Details/list',
+    method: 'get',
+    params: data
+  })
+}
+
+export function processWarehousing(data) {
+  return request({
+    url: '/amichi/warehouseWarrant/processWarehousing',
+    method: 'POST',
+    data: data
+  })
+}
+

+ 53 - 0
zkqy-ui/src/api/amichi/productionCardFlow/productionCardFlow.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询工序流转卡流水列表
+export function listProductionCardFlow(query) {
+  return request({
+    url: '/amichi/productionCardFlow/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 生成工序流转卡查询工序流转卡流水列表
+export function generateProcessFlowCard(data) {
+  return request({
+    url: '/amichi/productionCardFlow/generateProcessFlowCard',
+    method: 'POST',
+    data: data
+  })
+}
+
+// 查询工序流转卡流水详细
+export function getProductionCardFlow(id) {
+  return request({
+    url: '/amichi/productionCardFlow/' + id,
+    method: 'get'
+  })
+}
+
+// 新增工序流转卡流水
+export function addProductionCardFlow(data) {
+  return request({
+    url: '/amichi/productionCardFlow',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改工序流转卡流水
+export function updateProductionCardFlow(data) {
+  return request({
+    url: '/amichi/productionCardFlow',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除工序流转卡流水
+export function delProductionCardFlow(id) {
+  return request({
+    url: '/amichi/productionCardFlow/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
zkqy-ui/src/api/amichi/productionOrderList/productionOrderList.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询生产订单列列表
+export function listProductionOrderList(query) {
+  return request({
+    url: '/amichi/productionOrderList/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询生产订单列详细
+export function getProductionOrderList(id) {
+  return request({
+    url: '/amichi/productionOrderList/' + id,
+    method: 'get'
+  })
+}
+
+// 新增生产订单列
+export function addProductionOrderList(data) {
+  return request({
+    url: '/amichi/productionOrderList',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改生产订单列
+export function updateProductionOrderList(data) {
+  return request({
+    url: '/amichi/productionOrderList',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除生产订单列
+export function delProductionOrderList(id) {
+  return request({
+    url: '/amichi/productionOrderList/' + id,
+    method: 'delete'
+  })
+}

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor