From 45dd167e12e11af8dc7929ff1475623c80fc3578 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期三, 30 十月 2024 13:59:33 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 198 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 195 insertions(+), 3 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 2986c10..b15cc4f 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 -> {
@@ -284,12 +353,16 @@
String locNo = agvWrkMast.getLocNo();
agvWrkMast.setLocNo(agvWrkMast.getSourceLocNo());
agvWrkMast.setSourceLocNo(locNo);
- agvWrkMast.setModiTime(new Date());
+ agvWrkMast.setModiTime(now);
agvWrkMast.setIoTime(now);
agvWrkMast.setLogErrMemo("createWaitPainWrkMastStart");
agvWrkMastService.updateById(agvWrkMast);
List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+ for (AgvWrkDetl agvWrkDetl : agvWrkDetlList) {
+ agvWrkDetl.setIoTime(now);
+ agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+ }
AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo());
//List<AgvLocDetl> agvLocDetlList = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocMast.getLocNo()));
AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getSourceLocNo());
@@ -437,7 +510,7 @@
br = 2;
}
if (agvBasDevp.getLocType1() != br) {
- throw new CoolException("绔欑偣寮傚父锛�");
+ throw new CoolException("绔欑偣绫诲瀷鍜岃揣鏋剁被鍨嬩笉绗︼紒");
}
if (containerType == 40) {
locType = 5;
@@ -510,8 +583,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");
@@ -545,6 +647,10 @@
AgvBasDevp agvBasDevp = agvBasDevpService.selectById(station);
if(!agvBasDevp.getLocSts().equals("O")){
throw new CoolException("褰撳墠宸ヤ綔浣嶇姸鎬佷负" + agvBasDevp.getLocSts()+",鏃犳硶杩涜绌烘澘鍑哄簱");
+ }
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", agvBasDevp.getDevNo()));
+ if(!Cools.isEmpty(agvWrkMast)){
+ throw new CoolException("鏈夎揣鏋跺湪寰�绔欑偣鎼繍" + agvBasDevp.getDevNo()+",鏃犳硶杩涜绌烘澘鍑哄簱");
}
//瀵绘壘鐩稿簲绫诲瀷鐨勭┖璐ф灦
@@ -756,6 +862,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笉瀛樺湪");
}
@@ -821,9 +928,37 @@
// 鍥炴粴鍏ュ簱璁㈠崟
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()))) {
throw new CoolException("鍏ュ簱閫氱煡妗e彇娑堝け璐�");
@@ -853,10 +988,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) {
@@ -891,6 +1056,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