Jelajahi Sumber

改为流转提交后就修改 驳回回滚

yzc 1 tahun lalu
induk
melakukan
0c3a8c5207

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTaskDetail.java

@@ -78,4 +78,9 @@ public class ProductionTaskDetail extends BasePo {
      */
     private Date receivedTime;
 
+    /**
+     * 前一道工序id
+     */
+    private Long previousProcessesId;
+
 }

+ 45 - 21
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java

@@ -173,6 +173,30 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         //赋值流转人id
         productionTaskDetail.setCirculationUserId(SecurityUtils.getUserId());
 
+        //赋值上一道工序 为当前工序
+        productionTaskDetail.setPreviousProcessesId(productionTaskDetail.getProductionProcessesId());
+
+        //将下一工序赋值到当前工序
+        productionTaskDetail.setProductionProcessesId(productionTaskDetail.getNextProductionProcessesId());
+        //清空下一工序
+        productionTaskDetail.setNextProductionProcessesId(-1l);
+        //查找下一工序相关信息 如果有则赋值
+        ProductionTask productionTask = productionTaskService.getById(productionTaskDetail.getProductionTaskId());
+        ProductionPlan productionPlan = productionPlanService.getById(productionTask.getProductionPlanId());
+        WorkOrder workOrder = workOrderService.getById(productionPlan.getWorkOrderId());
+        List<WorkOrderProductionProcesses> productionProcessesList = workOrderService.getProductionProcessesList(workOrder);
+        //赋值下一工序id
+        for (int i = 0; i < productionProcessesList.size(); i++) {
+            WorkOrderProductionProcesses wopp = productionProcessesList.get(i);
+            if (wopp.getId().equals(productionTaskDetail.getProductionProcessesId())) {
+                //默认赋值空 如果有下一节点赋值下一节点id
+                if ((i + 1) < productionProcessesList.size()) {
+                    WorkOrderProductionProcesses nextProductionProcesses = productionProcessesList.get(i + 1);
+                    productionTaskDetail.setNextProductionProcessesId(nextProductionProcesses.getId());
+                    break;
+                }
+            }
+        }
 
         this.updateById(productionTaskDetail);
 
@@ -263,45 +287,45 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         //赋值接收时间
         productionTaskDetail.setReceivedTime(new Date());
 
+        this.updateById(productionTaskDetail);
+    }
 
-        //将下一工序赋值到当前工序
-        productionTaskDetail.setProductionProcessesId(productionTaskDetail.getNextProductionProcessesId());
-        //清空下一工序
-        productionTaskDetail.setNextProductionProcessesId(-1l);
+    /**
+     * 任务接收拒绝
+     */
+    @Override
+    public void rejection(ProductionTaskDetailDto productionTaskDetailDto) {
+        ProductionTaskDetail productionTaskDetail = this.getById(productionTaskDetailDto.getId());
+        //取消流转状态
+        productionTaskDetail.setCirculationStatus(0);
+
+        //回滚工序信息
+        productionTaskDetail.setNextProductionProcessesId(productionTaskDetail.getProductionProcessesId());
+        productionTaskDetail.setProductionProcessesId(productionTaskDetail.getPreviousProcessesId());
+
+        //清空上一工序
+        productionTaskDetail.setPreviousProcessesId(-1l);
         //查找下一工序相关信息 如果有则赋值
         ProductionTask productionTask = productionTaskService.getById(productionTaskDetail.getProductionTaskId());
         ProductionPlan productionPlan = productionPlanService.getById(productionTask.getProductionPlanId());
         WorkOrder workOrder = workOrderService.getById(productionPlan.getWorkOrderId());
         List<WorkOrderProductionProcesses> productionProcessesList = workOrderService.getProductionProcessesList(workOrder);
-        //赋值下一工序id
+        //赋值一工序id
         for (int i = 0; i < productionProcessesList.size(); i++) {
             WorkOrderProductionProcesses wopp = productionProcessesList.get(i);
             if (wopp.getId().equals(productionTaskDetail.getProductionProcessesId())) {
                 //默认赋值空 如果有下一节点赋值下一节点id
-                if ((i + 1) < productionProcessesList.size()) {
-                    WorkOrderProductionProcesses nextProductionProcesses = productionProcessesList.get(i + 1);
-                    productionTaskDetail.setNextProductionProcessesId(nextProductionProcesses.getId());
+                if ((i - 1) >=0) {
+                    WorkOrderProductionProcesses nextProductionProcesses = productionProcessesList.get(i - 1);
+                    productionTaskDetail.setPreviousProcessesId(nextProductionProcesses.getId());
                     break;
                 }
             }
         }
 
-
         this.updateById(productionTaskDetail);
     }
 
-    /**
-     * 任务接收拒绝
-     */
-    @Override
-    public void rejection(ProductionTaskDetailDto productionTaskDetailDto) {
-        //取消流转状态
-        productionTaskDetailDto.setCirculationStatus(0);
-        //将接收人赋值为空
-//        productionTaskDetailDto.setReceivedUserId(-1l);
-        this.updateById(productionTaskDetailDto);
-    }
-
 
     @Override
     public ProductionTaskDetailVo snInfo(String sn) {

+ 3 - 5
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java

@@ -283,11 +283,9 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
             productionTaskDetail.setFinishStatus(0);//默认状态未完工
             productionTaskDetail.setProductId(workOrder.getProductId());//产品id
 
-            //当前工序为空 下一工序为第一工序 接收后会切换
-            productionTaskDetail.setNextProductionProcessesId(productionProcessesId);
-
-//            productionTaskDetail.setProductionProcessesId(productionProcessesId);//第一个工序id
-//            productionTaskDetail.setNextProductionProcessesId(nextProductionProcessesId);//第二个工序id
+            //赋值当前工序和下一工序
+            productionTaskDetail.setProductionProcessesId(productionProcessesId);//第一个工序id
+            productionTaskDetail.setNextProductionProcessesId(nextProductionProcessesId);//第二个工序id
 
             //生成SN
             productionTaskDetail.setProductSn(String.format("%s-%03d", productionTaskDto.getCode(), i + 1));

+ 1 - 1
hx-mes/src/main/resources/mapper/production/ProductionTaskDetailMapper.xml

@@ -20,7 +20,7 @@
             ptd.circulation_status
         from production_task_detail ptd
             left JOIN production_task_processes_detail ptpd ON ptpd.production_task_id = ptd.production_task_id
-            AND ptpd.production_processes_id = ptd.next_production_processes_id
+            AND ptpd.production_processes_id = ptd.production_processes_id
             ${ew.customSqlSegment}
     </select>
     <select id="getWorkOrderByProductionTask" resultType="com.fjhx.mes.entity.work.vo.WorkOrderVo">