From 90a0cf3b0a84756bcefceb2058317c541a4bb22c Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期四, 27 六月 2024 16:24:37 +0800
Subject: [PATCH] some status change to const

---
 pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java |   91 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 69 insertions(+), 22 deletions(-)

diff --git a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
index e3b6538..3d40dbf 100644
--- a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
+++ b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
@@ -12,6 +12,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 
@@ -31,6 +32,7 @@
     private PrAssemblyPlanMapper assemblyPlanDao;
 //    private PrProductionProcessMapper processDao;
     private PrProductionNodeMapper nodeDao;
+    private StaRepairInfoMapper repairInfoDao;
     @Autowired
     public void setDeviceLastDao(StaDeviceLastMapper deviceLastDao) {
         this.deviceLastDao = deviceLastDao;
@@ -59,12 +61,17 @@
     public void setNodeDao(PrProductionNodeMapper nodeDao) {
         this.nodeDao = nodeDao;
     }
+    @Autowired
+    public void setRepairInfoDao(StaRepairInfoMapper repairInfoDao) {
+        this.repairInfoDao = repairInfoDao;
+    }
 
+    @Transactional
     public int save(QueryVo params) {
-        long taskId = Long.parseLong(params.taskId);
-        StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(taskId);
+        long workId = Long.parseLong(params.workId);
+        StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(workId);
         if (workLast == null) {
-            throw new RuntimeException("宸ュ崟涓嶅瓨鍦�");
+            throw new RuntimeException("绯荤粺涓病鏈夎鏉$櫥褰曚俊鎭�");//宸ュ崟涓嶅瓨鍦�
         }
         PrAssemblyPlan plan = assemblyPlanDao.selectByPrimaryKey(workLast.getPlanId());
         // 楠岃瘉骞跺鐞嗚澶囧彿鍜岀墿鏂欏彿
@@ -82,13 +89,13 @@
         });
 
         if (deviceList.isEmpty()) {
-            throw new RuntimeException("璁惧鍙蜂笉灞炰簬褰撳墠浠诲姟璁″垝");
+            throw new RuntimeException("璁惧鍙�("+ params.deviceNo +")鍧囦笉灞炰簬褰撳墠浠诲姟璁″垝");
         }
         if (deviceList.size() > 1) {
-            throw new RuntimeException("璁惧鍙锋湁涓斿彧鑳芥湁涓�涓�");
+            throw new RuntimeException("璁惧鍙锋湁涓斿彧鑳芥湁涓�涓睘浜庡綋鍓嶄换鍔¤鍒�");
         }
 
-        StaDeviceLast deviceLast = saveDeviceLast(params, workLast, deviceList);
+        StaDeviceLast deviceLast = buildDeviceLast(params, workLast, deviceList.get(0));
         int count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) :
                 deviceLastDao.updateByPrimaryKeySelective(deviceLast);
 
@@ -117,22 +124,22 @@
         deviceLifeDao.insertSelective(life);
     }
 
-    private StaDeviceLast saveDeviceLast(QueryVo params, StaAssemblyWorkLast workLast, List<String> deviceList){
+    private StaDeviceLast buildDeviceLast(QueryVo params, StaAssemblyWorkLast workLast, String deviceNo){
         //缁勮鏁版嵁
         StaDeviceLast record = new StaDeviceLast();
 
-        StaDeviceLast preRecord = deviceLastDao.selectByDeviceNo(deviceList.get(0));
+        StaDeviceLast preRecord = deviceLastDao.selectByDeviceNo(deviceNo);
         if(preRecord != null){
             record.id = preRecord.id;
             record.inTime = preRecord.outTime;
         }
         record.outTime = new Date();
 
-        record.setPlanId(workLast.planId);
-        record.setClaimId(Long.parseLong(params.taskId));
-        record.setStationId(workLast.stationId);
-        record.setEquipNo(deviceList.get(0));
-        record.setCurrNode(workLast.nodeId);
+        record.planId = workLast.planId;
+        record.workId = Long.parseLong(params.workId);
+        record.stationId = workLast.stationId;
+        record.equipNo = deviceNo;
+        record.currNode = workLast.nodeId;
 //        record.setNextNode(getNextNode(params.status,workLast.nodeId));
 
         record.updatedBy = workLast.userId;
@@ -146,15 +153,17 @@
         record.status = getStatus(params.status,node.isEnd);
         return record;
     }
-    private int saveSnEx(StaAssemblyWorkLast workLast, List<String> deviceList,List<String> materialList, PrAssemblyPlan plan){
-        StaWipSnEx snEx = new StaWipSnEx();
-        snEx.deviceNo = deviceList.get(0);
-        snEx.productNo = plan.batchNo;
-        snEx.deviceNo = materialList.get(0);
-        snEx.createTime = workLast.startTime;
-        snEx.createBy = workLast.userId;
-        snEx.productName = plan.proName;
-        return wipSnExDao.insertSelective(snEx);
+    private void saveSnEx(StaAssemblyWorkLast workLast, List<String> deviceList,List<String> materialList, PrAssemblyPlan plan){
+        for (String material:materialList) {
+            StaWipSnEx snEx = new StaWipSnEx();
+            snEx.deviceNo = deviceList.get(0);
+            snEx.productId = plan.process.proId;
+            snEx.productNo = material;
+            snEx.createTime = workLast.startTime;
+            snEx.createBy = workLast.userId;
+            snEx.productName = plan.proName;
+            wipSnExDao.insertSelective(snEx);
+        }
     }
     /**
      * 鐘舵��: 1:缁勮涓�,2:瀹屾垚,3:缁翠慨,4:鎶ュ簾
@@ -170,4 +179,42 @@
             default -> throw new RuntimeException("鐘舵�侀敊璇�");
         };
     }
+
+    public int repair(QueryVo vo) {
+        long workId = Long.parseLong(vo.workId);
+        StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(workId);
+        if (workLast == null) {
+            throw new RuntimeException("宸ュ崟涓嶅瓨鍦�");
+        }
+        StaDeviceLast preDeviceRecord = deviceLastDao.selectByDeviceNo(vo.deviceNo);
+        StaRepairInfo repairInfo = new StaRepairInfo();
+        repairInfo.workId = workId;
+        repairInfo.equipNo = vo.deviceNo;
+        repairInfo.repairTime = new Date();
+        repairInfo.repairBy = workLast.userId;
+        repairInfo.repairReason = vo.errorMsg;
+        repairInfo.fromNode = preDeviceRecord.currNode;
+        repairInfoDao.insertSelective(repairInfo);
+
+        StaDeviceLast deviceLast = new StaDeviceLast();
+        BeanUtils.copyProperties(preDeviceRecord, deviceLast);
+        deviceLast.repairId = repairInfo.id;
+        deviceLast.errorCode = vo.errorMsg;
+        deviceLast.assistants = vo.assistants;
+        //濡傛灉鍘熻妭鐐规槸缁撴潫鑺傜偣鎴栦箣鍚庣殑鑺傜偣锛屾槸鍒欐洿鏂颁负瀹屾垚,鍚﹀垯鏇存柊涓虹粍瑁呬腑(榛樿缁翠慨鑺傜偣鐨勭姸鎬佸彧鑳戒负 纭畾鎴� 鎶ュ簾)
+        boolean isEndNode = nodeDao.isEndNode(preDeviceRecord.currNode);
+        if(QrCodeConstant.MarkWaste.equals(vo.status)){
+            deviceLast.status = STATUS_WASTE;
+        }else{
+            deviceLast.status = isEndNode? STATUS_COMPLETE:STATUS_OK;
+        }
+        int count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) :
+                deviceLastDao.updateByPrimaryKeySelective(deviceLast);
+        saveDeviceProductionLog(deviceLast);
+
+        if (isEndNode) {
+            saveDeviceLife(deviceLast);
+        }
+        return count;
+    }
 }

--
Gitblit v1.8.0