From 405e94c5d08e89c9bf2bd0820d39ceeaa049211d Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期三, 16 十月 2024 08:11:11 +0800
Subject: [PATCH] 流水记录表

---
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java |  188 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 186 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index debe0a6..59d0999 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -5,6 +5,7 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.LocDetlAdjustParam;
@@ -73,6 +74,12 @@
     private WrkMastExecuteService wrkMastExecuteService;
     @Autowired
     private ConfigService configService;
+    @Autowired
+    private SnowflakeIdWorker snowflakeIdWorker;
+    @Autowired
+    private FlowLogService flowLogService;
+    @Autowired
+    private LocDetlServiceImpl locDetlService;
 
 
     /*
@@ -143,6 +150,7 @@
             //鐢熸垚宸ヤ綔妗�
             AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)));
             //鐢熸垚宸ヤ綔妗f槑缁�
+            long flowId = snowflakeIdWorker.nextId();
             taskDto.getLocDtos().forEach(locDto -> {
                 if (!BaseController.isJSON(locDto.getOrderNo())) {
                     //鏄庣粏妗f墍闇�鍙傛暟
@@ -157,6 +165,36 @@
                             locDto.getCsocode(),
                             locDto.getIsoseq(),
                             locDto.getProcessSts());
+                    OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq());
+                    AgvLocDetl locDetl = agvLocDetlService.selectItem(wrkMast.getSourceLocNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq());
+                    // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+                    FlowLog flowLog = new FlowLog();
+                    flowLog.setFid(String.valueOf(flowId));
+                    flowLog.setSpare2(wrkMast.getWrkNo().toString());
+                    flowLog.setLocNo(wrkMast.getSourceLocNo());
+                    flowLog.setSpare1(containerCode);
+                    flowLog.setOpType(4L);
+                    flowLog.setOrderNo(locDto.getOrderNo());
+                    flowLog.setThreeCode(locDto.getCsocode());
+                    flowLog.setMatnr(locDto.getMatnr());
+                    flowLog.setMaktx(locDto.getMaktx());
+                    flowLog.setOrderPrevious(orderDetl.getAnfme());
+                    flowLog.setOrderCurrent(orderDetl.getAnfme());
+                    flowLog.setOrderChanged(0.0);
+
+                    flowLog.setQtyPrevious(orderDetl.getQty());
+                    flowLog.setQtyCurrent(orderDetl.getQty() + locDto.getAnfme());
+                    flowLog.setQtyChanged(locDto.getAnfme());
+
+                    flowLog.setLocPrevious(locDetl.getAnfme());
+                    flowLog.setLocCurrent(locDetl.getAnfme() - locDto.getAnfme());
+                    flowLog.setLocChanged(locDto.getAnfme());
+                    flowLog.setUserId(userId);
+                    flowLog.setAppeTime(now);
+                    if (!flowLogService.insert(flowLog)) {
+                        throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+                    }
+
                 }else {
                     List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
                     orderDtoList.forEach(orderDto -> {
@@ -174,6 +212,7 @@
                                 locDto.getProcessSts());
                     });
                 }
+
 
                 //淇敼璁㈠崟淇℃伅
                 modifyOrderDetl(locDto, userId);
@@ -217,6 +256,7 @@
             //鐢熸垚宸ヤ綔妗�
             AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)));
             //鐢熸垚宸ヤ綔妗f槑缁�
+            long flowId = snowflakeIdWorker.nextId();
             taskDto.getLocDtos().forEach(locDto -> {
                 if (!BaseController.isJSON(locDto.getOrderNo())) {
                     //鏄庣粏妗f墍闇�鍙傛暟
@@ -231,6 +271,35 @@
                             locDto.getCsocode(),
                             locDto.getIsoseq(),
                             locDto.getProcessSts());
+                    OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq());
+                    AgvLocDetl locDetl = agvLocDetlService.selectItem(wrkMast.getSourceLocNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq());
+
+                    FlowLog flowLog = new FlowLog();
+                    flowLog.setFid(String.valueOf(flowId));
+                    flowLog.setSpare2(wrkMast.getWrkNo().toString());
+                    flowLog.setLocNo(wrkMast.getSourceLocNo());
+                    flowLog.setSpare1(containerCode);
+                    flowLog.setOpType(6L);
+                    flowLog.setOrderNo(locDto.getOrderNo());
+                    flowLog.setThreeCode(locDto.getCsocode());
+                    flowLog.setMatnr(locDto.getMatnr());
+                    flowLog.setMaktx(locDto.getMaktx());
+                    flowLog.setOrderPrevious(orderDetl.getAnfme());
+                    flowLog.setOrderCurrent(orderDetl.getAnfme());
+                    flowLog.setOrderChanged(0.0);
+
+                    flowLog.setQtyPrevious(orderDetl.getQty());
+                    flowLog.setQtyCurrent(orderDetl.getQty() + locDto.getAnfme());
+                    flowLog.setQtyChanged(locDto.getAnfme());
+
+                    flowLog.setLocPrevious(locDetl.getAnfme());
+                    flowLog.setLocCurrent(locDetl.getAnfme() - locDto.getAnfme());
+                    flowLog.setLocChanged(locDto.getAnfme());
+                    flowLog.setUserId(userId);
+                    flowLog.setAppeTime(now);
+                    if (!flowLogService.insert(flowLog)) {
+                        throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+                    }
                 }else {
                     List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
                     orderDtoList.forEach(orderDto -> {
@@ -437,7 +506,7 @@
             br = 2;
         }
         if (agvBasDevp.getLocType1() != br) {
-            throw new CoolException("绔欑偣寮傚父锛�");
+            throw new CoolException("绔欑偣绫诲瀷鍜岃揣鏋剁被鍨嬩笉绗︼紒");
         }
         if (containerType == 40) {
             locType = 5;
@@ -510,8 +579,37 @@
             //鐢熸垚宸ヤ綔妗�
             AgvWrkMast wrkMast = createWrkMast(1,201L,devNo,locNo,containerCode,now,userId, containerType);
             //鐢熸垚宸ヤ綔妗f槑缁�
+            long flowId = snowflakeIdWorker.nextId();
             agvWaitPakinList.forEach(wp -> {
                 createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime(),wp.getProcessSts());
+                // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+                OrderDetl orderDetl = orderDetlService.selectItem(wp.getOrderNo(), wp.getMatnr(), wp.getThreeCode());
+                FlowLog flowLog = new FlowLog();
+                flowLog.setFid(String.valueOf(flowId));
+                flowLog.setSpare2(wrkMast.getWrkNo().toString());
+                flowLog.setLocNo(locNo);
+                flowLog.setSpare1(containerCode);
+                flowLog.setOpType(3L);
+                flowLog.setOrderNo(wp.getOrderNo());
+                flowLog.setThreeCode(wp.getThreeCode());
+                flowLog.setMatnr(wp.getMatnr());
+                flowLog.setMaktx(wp.getMaktx());
+                flowLog.setOrderPrevious(orderDetl.getAnfme());
+                flowLog.setOrderCurrent(orderDetl.getAnfme());
+                flowLog.setOrderChanged(0.0);
+                flowLog.setQtyPrevious(orderDetl.getQty()-wp.getAnfme());
+                flowLog.setQtyCurrent(orderDetl.getQty());
+                flowLog.setQtyChanged(wp.getAnfme());
+
+                flowLog.setLocPrevious(0.0D);
+                flowLog.setLocCurrent(wp.getAnfme());
+                flowLog.setLocChanged(wp.getAnfme());
+
+                flowLog.setUserId(userId);
+                flowLog.setAppeTime(now);
+                if (!flowLogService.insert(flowLog)) {
+                    throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+                }
             });
             //淇敼鍏ュ簱閫氱煡妗g姸鎬�
             agvWaitPakinService.updateIoStatus(containerCode,"Y");
@@ -760,6 +858,7 @@
     @Transactional
     public void cancelWrkMast(String workNo, Long userId,Integer type) {
         AgvWrkMast wrkMast = agvWrkMastService.selectById(workNo);
+        long flowId = snowflakeIdWorker.nextId();
         if (Cools.isEmpty(wrkMast)){
             throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
@@ -825,8 +924,36 @@
                         // 鍥炴粴鍏ュ簱璁㈠崟
                         OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvWaitPakin.getThreeCode()).eq("matnr", agvWaitPakin.getMatnr()).eq("order_no", agvWaitPakin.getOrderNo()));
                         orderDetl.setQty(orderDetl.getQty() - agvWaitPakin.getAnfme());
+
                         if (!orderDetlService.updateById(orderDetl)) {
                             throw new CoolException("璁㈠崟鍥炴粴澶辫触");
+                        }
+                        FlowLog flowLog = new FlowLog();
+                        flowLog.setFid(String.valueOf(flowId));
+                        flowLog.setSpare2(wrkMast.getWrkNo().toString());
+                        flowLog.setLocNo(locNo);
+                        flowLog.setSpare1(wrkMast.getBarcode());
+                        flowLog.setOpType(3L);
+                        flowLog.setOrderNo(agvWaitPakin.getOrderNo());
+                        flowLog.setThreeCode(agvWaitPakin.getThreeCode());
+                        flowLog.setMatnr(agvWaitPakin.getMatnr());
+                        flowLog.setMaktx(agvWaitPakin.getMaktx());
+                        flowLog.setOrderPrevious(orderDetl.getAnfme());
+                        flowLog.setOrderCurrent(orderDetl.getAnfme());
+                        flowLog.setOrderChanged(0.0);
+
+                        flowLog.setQtyPrevious(orderDetl.getQty());
+                        flowLog.setQtyCurrent(orderDetl.getQty()-agvWaitPakin.getAnfme());
+                        flowLog.setQtyChanged(-agvWaitPakin.getAnfme());
+
+                        flowLog.setLocPrevious(0.0);
+                        flowLog.setLocCurrent(0.0);
+                        flowLog.setLocChanged(-agvWaitPakin.getAnfme());
+
+                        flowLog.setUserId(userId);
+                        flowLog.setAppeTime(new Date());
+                        if (!flowLogService.insert(flowLog)) {
+                            throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
                         }
                         // 鍒犻櫎缁勬墭妗�
                         if (!agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getSuppCode()).eq("matnr",agvWaitPakin.getMatnr()).eq("three_code",agvWaitPakin.getThreeCode()))) {
@@ -857,10 +984,40 @@
                         OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("order_no", "DB" + agvLocDetl.getOrderNo()));
                         orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
                         if (!orderDetlService.updateById(orderDetl)) {
-                            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                            throw new CoolException("鏇存柊璁㈠崟鏄庣粏澶辫触");
+                        }
+                        FlowLog flowLog = new FlowLog();
+                        flowLog.setFid(String.valueOf(flowId));
+                        flowLog.setSpare2(wrkMast.getWrkNo().toString());
+                        flowLog.setLocNo(locNo);
+                        flowLog.setSpare1(wrkMast.getBarcode());
+                        flowLog.setOpType(8L);
+                        flowLog.setOrderNo(agvLocDetl.getOrderNo());
+                        flowLog.setThreeCode(agvLocDetl.getThreeCode());
+                        flowLog.setMatnr(agvLocDetl.getMatnr());
+                        flowLog.setMaktx(agvLocDetl.getMaktx());
+                        flowLog.setOrderPrevious(orderDetl.getAnfme());
+                        flowLog.setOrderCurrent(orderDetl.getAnfme());
+                        flowLog.setOrderChanged(0.0);
+
+                        flowLog.setQtyPrevious(orderDetl.getQty());
+                        flowLog.setQtyCurrent(orderDetl.getQty() + agvLocDetl.getAnfme());
+                        flowLog.setQtyChanged(-agvLocDetl.getAnfme());
+
+                        flowLog.setLocPrevious(0.0);
+                        flowLog.setLocCurrent(agvLocDetl.getAnfme());
+                        flowLog.setLocChanged(agvLocDetl.getAnfme());
+
+                        flowLog.setUserId(userId);
+                        flowLog.setAppeTime(new Date());
+                        if (!flowLogService.insert(flowLog)) {
+                            throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
                         }
                     }
+                } else {
+
                 }
+
                 // 鑷姩璋冩嫧鍑哄簱鍙栨秷
             } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111 || wrkMast.getIoType() == 112) {
                 if (wrkMast.getIoType() == 112) {
@@ -895,6 +1052,33 @@
                     if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
                         throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr());
                     }
+                    FlowLog flowLog = new FlowLog();
+                    flowLog.setFid(String.valueOf(flowId));
+                    flowLog.setSpare2(wrkMast.getWrkNo().toString());
+                    flowLog.setLocNo(locNo);
+                    flowLog.setSpare1(wrkMast.getBarcode());
+                    flowLog.setOpType(9L);
+                    flowLog.setOrderNo(agvLocDetl.getOrderNo());
+                    flowLog.setThreeCode(agvLocDetl.getThreeCode());
+                    flowLog.setMatnr(agvLocDetl.getMatnr());
+                    flowLog.setMaktx(agvLocDetl.getMaktx());
+                    flowLog.setOrderPrevious(orderDetl.getAnfme());
+                    flowLog.setOrderCurrent(orderDetl.getAnfme());
+                    flowLog.setOrderChanged(0.0);
+
+                    flowLog.setQtyPrevious(orderDetl.getQty());
+                    flowLog.setQtyCurrent(orderDetl.getQty() - agvLocDetl.getAnfme());
+                    flowLog.setQtyChanged(- agvLocDetl.getAnfme());
+
+                    flowLog.setLocPrevious(0.0);
+                    flowLog.setLocCurrent(agvLocDetl.getAnfme());
+                    flowLog.setLocChanged(agvLocDetl.getAnfme());
+
+                    flowLog.setUserId(userId);
+                    flowLog.setAppeTime(new Date());
+                    if (!flowLogService.insert(flowLog)) {
+                        throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+                    }
                 }
                 //鍑哄簱鍙栨秷
             } else {

--
Gitblit v1.9.1