From e90dba0edc93be26e1509cfb2ec1d0681eb86e48 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期三, 27 八月 2025 08:37:04 +0800
Subject: [PATCH] 合并出库添加日志
---
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 1434 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 1,169 insertions(+), 265 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 97933e9..614b63a 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -5,11 +5,14 @@
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.constant.AsrsConstants;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.*;
+import com.zy.asrs.utils.OrderUtils;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.LocDto;
import com.zy.common.model.OrderDto;
@@ -17,6 +20,8 @@
import com.zy.common.model.TaskDto;
import com.zy.common.service.AgvCommonService;
import com.zy.common.web.BaseController;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +32,8 @@
import java.util.Date;
import java.util.Iterator;
import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
/**
* Created by vincent on 2020/6/11
@@ -66,6 +73,16 @@
private AgvWrkMastLogService agvWrkMastLogService;
@Autowired
private AgvWrkDetlLogService agvWrkDetlLogService;
+ @Autowired
+ private WrkMastExecuteService wrkMastExecuteService;
+ @Autowired
+ private ConfigService configService;
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private FlowLogService flowLogService;
+ @Autowired
+ private LocDetlServiceImpl locDetlService;
/*
@@ -78,30 +95,30 @@
Date now = new Date();
agvBasDevpList.forEach(agvBasDevp -> {
- if(Cools.isEmpty(agvBasDevp.getBarcode())){
+ if (Cools.isEmpty(agvBasDevp.getBarcode())) {
throw new CoolException("閫変腑鐨勭珯鐐逛腑鍚湁鏈粦瀹氳揣鏋剁殑绔欑偣锛岃閲嶆柊閫夋嫨");
}
- if(!"F".equals(agvBasDevp.getLocSts())){
+ if (!"F".equals(agvBasDevp.getLocSts())) {
throw new CoolException("閫変腑鐨勭珯鐐逛腑鍚湁璐т綅鐘舵�佷笉涓篎.鍦ㄥ簱鐨勭珯鐐癸紝璇烽噸鏂伴�夋嫨");
}
List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("supp_code", agvBasDevp.getBarcode()));
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1(),agvBasDevp.getFloor());
+ AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1(), agvBasDevp.getFloor(), false, false);
//鐢熸垚宸ヤ綔妗�
- AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),agvBasDevp.getBarcode(),now,userId, agvBasDevp.getLocType2());
+ AgvWrkMast wrkMast = createWrkMast(1, 201L, agvBasDevp.getDevNo(), agvLocMast.getLocNo(), agvBasDevp.getBarcode(), now, userId, agvBasDevp.getLocType2(), agvLocMast.getPltType());
//鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱
wrkMast.setMk(isConveyor ? "Y" : "N");
//鐢熸垚宸ヤ綔妗f槑缁�
agvWaitPakinList.forEach(wp -> {
- createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime());
+ createWrkDetlReWrite(wp.getMatnr(), wrkMast.getWrkNo(), wp.getOrderNo(), wp.getBatch(), wp.getAnfme(), wp.getSuppCode(), now, userId, wp.getThreeCode(), wp.getDeadTime(), wp.getProcessSts());
});
//鏇存柊婧愮珯鐐逛俊鎭�
- updateAgvBasDevp(agvBasDevp,"R");
+ updateAgvBasDevp(agvBasDevp, "R");
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"S");
+ updateAgvLocMast(agvLocMast, "S");
});
@@ -130,12 +147,13 @@
//String barcode = agvLocDetls.get(0).getSuppCode();
String containerCode = taskDto.getLocDtos().get(0).getContainerCode();
-
+ AgvLocMast agvLocMast = agvLocMastService.selectById(sourceLocNo);
//鍒ゆ柇鏄惁鍏ㄦ澘鍑哄簱
- int ioType = isPakOut(sourceLocNo,taskDto) ? 101 : 103;
+ int ioType = isPakOut(sourceLocNo, taskDto) ? 101 : 103;
//鐢熸垚宸ヤ綔妗�
- AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)));
+ AgvWrkMast wrkMast = createWrkMast(ioType, wrkSts, sourceLocNo, targetLocNo, containerCode, now, userId, Short.valueOf(containerCode.substring(0, 2)), agvLocMast.getPltType());
//鐢熸垚宸ヤ綔妗f槑缁�
+ long flowId = snowflakeIdWorker.nextId();
taskDto.getLocDtos().forEach(locDto -> {
if (!BaseController.isJSON(locDto.getOrderNo())) {
//鏄庣粏妗f墍闇�鍙傛暟
@@ -148,8 +166,39 @@
now,
userId,
locDto.getCsocode(),
- locDto.getIsoseq());
- }else {
+ 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 -> {
//鏄庣粏妗f墍闇�鍙傛暟
@@ -162,7 +211,115 @@
now,
userId,
locDto.getCsocode(),
- locDto.getIsoseq());
+ locDto.getIsoseq(),
+ locDto.getProcessSts());
+ });
+ }
+
+
+ //淇敼璁㈠崟淇℃伅
+ modifyOrderDetl(locDto, userId);
+ });
+// //淇敼璁㈠崟淇℃伅
+// modifyOrderDetl(taskDto.getLocDtos().get(0), userId);
+ //鏇存柊婧愮珯鐐逛俊鎭�
+ String locSts = ioType == 101 ? "R" : "P";
+ updateAgvLocMast(agvLocMastService.selectById(sourceLocNo), locSts);
+ //鏇存柊鐩爣绔欑偣鐘舵��
+ //locSts = ioType == 101 ? "S" : "Q";
+ AgvBasDevp agvBasDevp = agvBasDevpService.selectById(targetLocNo);
+ agvBasDevp.setBarcode("");
+ updateAgvBasDevp(agvBasDevp, "S");
+
+ });
+ }
+
+ /*
+ 鍔犲伐鍑哄簱
+ */
+ @Transactional
+ public void processOut(List<TaskDto> agvTaskDtos, Long userId) {
+ Date now = new Date();
+
+ agvTaskDtos.forEach(taskDto -> {
+
+ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectByTaskDto(taskDto);
+
+ //AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", taskDto.getLocNo()));
+
+ //宸ヤ綔妗f墍闇�鍙傛暟
+
+ long wrkSts = 21L;
+ String sourceLocNo = taskDto.getLocNo();
+ String targetLocNo = taskDto.getAgvStaNo();
+ //String barcode = agvLocDetls.get(0).getSuppCode();
+ String containerCode = taskDto.getLocDtos().get(0).getContainerCode();
+
+ AgvLocMast agvLocMast = agvLocMastService.selectById(sourceLocNo);
+ //鍒ゆ柇鏄惁鍏ㄦ澘鍑哄簱
+ int ioType = 107;
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast wrkMast = createWrkMast(ioType, wrkSts, sourceLocNo, targetLocNo, containerCode, now, userId, Short.valueOf(containerCode.substring(0, 2)), agvLocMast.getPltType());
+ //鐢熸垚宸ヤ綔妗f槑缁�
+ long flowId = snowflakeIdWorker.nextId();
+ taskDto.getLocDtos().forEach(locDto -> {
+ if (!BaseController.isJSON(locDto.getOrderNo())) {
+ //鏄庣粏妗f墍闇�鍙傛暟
+ createWrkDetlReWrite(locDto.getMatnr(),
+ wrkMast.getWrkNo(),
+ locDto.getOrderNo(),
+ locDto.getBatch(),
+ locDto.getAnfme(),
+ locDto.getContainerCode(),
+ now,
+ userId,
+ 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 -> {
+ //鏄庣粏妗f墍闇�鍙傛暟
+ createWrkDetlReWrite(locDto.getMatnr(),
+ wrkMast.getWrkNo(),
+ orderDto.getOrderNo(),
+ locDto.getBatch(),
+ orderDto.getAnfme(),
+ locDto.getContainerCode(),
+ now,
+ userId,
+ locDto.getCsocode(),
+ locDto.getIsoseq(),
+ locDto.getProcessSts());
});
}
@@ -172,18 +329,18 @@
// //淇敼璁㈠崟淇℃伅
// modifyOrderDetl(taskDto.getLocDtos().get(0), userId);
//鏇存柊婧愮珯鐐逛俊鎭�
- String locSts = ioType == 101 ? "R" : "P";
- updateAgvLocMast(agvLocMastService.selectById(sourceLocNo),locSts);
+ String locSts = "R";
+ updateAgvLocMast(agvLocMastService.selectById(sourceLocNo), locSts);
//鏇存柊鐩爣绔欑偣鐘舵��
//locSts = ioType == 101 ? "S" : "Q";
- updateAgvBasDevp(agvBasDevpService.selectById(targetLocNo),"S");
+ updateAgvBasDevp(agvBasDevpService.selectById(targetLocNo), "S", Short.valueOf(containerCode.substring(0, 2)), containerCode);
});
}
//鎷f枡鍏ュ簱
@Transactional
- public void pickIn(List<AgvWrkMast> agvWrkMastList){
+ public void pickIn(List<AgvWrkMast> agvWrkMastList) {
Date now = new Date();
agvWrkMastList.forEach(agvWrkMast -> {
@@ -201,32 +358,43 @@
String locNo = agvWrkMast.getLocNo();
agvWrkMast.setLocNo(agvWrkMast.getSourceLocNo());
agvWrkMast.setSourceLocNo(locNo);
+ 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);
+ boolean bl = agvWrkDetlService.update(agvWrkDetl, new EntityWrapper<AgvWrkDetl>()
+ .eq("wrk_no", agvWrkDetl.getWrkNo())
+ .eq("matnr", agvWrkDetl.getMatnr())
+ .eq("order_no", agvWrkDetl.getOrderNo())
+ .eq("three_code", agvWrkDetl.getThreeCode()));
+// .eq("dead_time",agvWrkDetl.getDeadTime()));
+ }
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());
- //鎷f枡鍏ュ簱
- if(ioType == 53){
- //淇敼宸ヤ綔鍏氭槑缁�
- //agvWrkDetl.setAnfme(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme());
- //agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo()));
- //淇敼搴撳瓨淇℃伅
- agvWrkDetlList.forEach(agvWrkDetl -> {
- AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
-
- //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
- double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
- agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
- });
- }
+ ////鎷f枡鍏ュ簱
+ //if(ioType == 53){
+ // //淇敼宸ヤ綔鍏氭槑缁�
+ // //agvWrkDetl.setAnfme(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme());
+ // //agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo()));
+ // //淇敼搴撳瓨淇℃伅
+ // agvWrkDetlList.forEach(agvWrkDetl -> {
+ // AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
+ //
+ // //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
+ // double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
+ // agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
+ // });
+ //}
//淇敼搴撲綅淇℃伅
- updateAgvLocMast(agvLocMast,"Q");
+ updateAgvLocMast(agvLocMast, "Q");
//淇敼绔欑偣淇℃伅
- updateAgvBasDevp(agvBasDevp,"R");
+ updateAgvBasDevp(agvBasDevp, "R");
});
}
@@ -240,11 +408,11 @@
List<TaskDto> taskDtos = new ArrayList<>();
param.getLocDetls().forEach(locDetl -> {
- LocDto locDto = new LocDto(locDetl.getLocNo(),locDetl.getCount(),locDetl.getMatnr(),locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime(),locDetl.getSuppCode());
- TaskDto taskDto = new TaskDto(locDetl.getLocNo(),station,locDto);
- if(TaskDto.has(taskDtos,taskDto)){
- TaskDto.find(taskDtos,taskDto).getLocDtos().add(locDto);
- }else {
+ LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getCount(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getThreeCode(), locDetl.getDeadTime(), locDetl.getSuppCode(), locDetl.getProcessSts());
+ TaskDto taskDto = new TaskDto(locDetl.getLocNo(), station, locDto);
+ if (TaskDto.has(taskDtos, taskDto)) {
+ TaskDto.find(taskDtos, taskDto).getLocDtos().add(locDto);
+ } else {
taskDtos.add(taskDto);
}
});
@@ -254,14 +422,14 @@
//鍒ゆ柇鏄惁鏈夐噸澶嶆枡鎯崇殑宸ヤ綔褰�
AgvWrkMast agvWrkMastList = agvWrkMastService.selectByContainerCode(taskDto.getLocDtos().get(0).getContainerCode());
- if(!Cools.isEmpty(agvWrkMastList)){
+ if (!Cools.isEmpty(agvWrkMastList)) {
return;
}
int containerType = getContainerTypeByloc(taskDto.getLocNo());
//鐢熸垚宸ヤ綔妗�
- AgvWrkMast wrkMast = createWrkMast(107, 21L,taskDto.getLocNo(),taskDto.getAgvStaNo(),taskDto.getLocDtos().get(0).getContainerCode(),now,userId,containerType);
+ AgvWrkMast wrkMast = createWrkMast(107, 21L, taskDto.getLocNo(), taskDto.getAgvStaNo(), taskDto.getLocDtos().get(0).getContainerCode(), now, userId, containerType, null);
//鐢熸垚宸ヤ綔妗f槑缁�
taskDto.getLocDtos().forEach(locDto -> {
//鏄庣粏妗f墍闇�鍙傛暟
@@ -274,12 +442,13 @@
now,
userId,
locDto.getCsocode(),
- locDto.getIsoseq());
+ locDto.getIsoseq(),
+ locDto.getProcessSts());
});
- updateAgvLocMast(agvLocMastService.selectById(wrkMast.getSourceLocNo()),"P");
+ updateAgvLocMast(agvLocMastService.selectById(wrkMast.getSourceLocNo()), "P");
//鏇存柊鐩爣绔欑偣鐘舵��
//locSts = ioType == 101 ? "S" : "Q";
- updateAgvBasDevp(agvBasDevpService.selectById(wrkMast.getLocNo()),"S");
+ updateAgvBasDevp(agvBasDevpService.selectById(wrkMast.getLocNo()), "S");
});
}
@@ -293,30 +462,30 @@
AgvLocMast targetLocMast = agvLocMastService.selectById(targetLocNo);
AgvLocDetl sourceLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", sourceLocMast.getLocNo()));
- if(!sourceLocMast.getLocSts().equals("F")){
- throw new CoolException(sourceLocMast.getLocNo() + "婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLocMast.getLocSts$());
+ if (!sourceLocMast.getLocSts().equals("F")) {
+ throw new CoolException(sourceLocMast.getLocNo() + "婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細" + sourceLocMast.getLocSts$());
}
- if(!targetLocMast.getLocSts().equals("O")){
- throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+targetLocMast.getLocSts$());
+ if (!targetLocMast.getLocSts().equals("O")) {
+ throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細" + targetLocMast.getLocSts$());
}
Date now = new Date();
//鐢熸垚绉诲簱宸ヤ綔妗�
- AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId,getContainerTypeByloc(sourceLocNo));
+ AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId, getContainerTypeByloc(sourceLocNo), targetLocMast.getPltType());
//鐢熸垚宸ヤ綔鍏氭槑缁�
- createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime());
+ createWrkDetlReWrite(sourceLocDetl.getMatnr(), wrkMast.getWrkNo(), null, sourceLocDetl.getBatch(), sourceLocDetl.getAnfme(), sourceLocDetl.getZpallet(), now, userId, sourceLocDetl.getThreeCode(), sourceLocDetl.getDeadTime(), sourceLocDetl.getProcessSts());
//淇敼鐩爣搴撲綅鐘舵��
- updateAgvLocMast(targetLocMast,"S");
+ updateAgvLocMast(targetLocMast, "S");
//淇敼鍘熷簱浣嶇姸鎬�
- updateAgvLocMast(sourceLocMast,"R");
+ updateAgvLocMast(sourceLocMast, "R");
}
/*
鍏ュ簱
*/
@Transactional
- public String emptyPlateIn(String station,String containerCode,Short containerType, Long userId, boolean emptyAutoIn) {
+ public String emptyPlateIn(String station, String containerCode, Short containerType, Long userId, boolean emptyAutoIn) {
Date now = new Date();
@@ -324,58 +493,469 @@
AgvBasDevp agvBasDevp = agvBasDevpService.selectById(station);
if (Cools.isEmpty(agvBasDevp)) {
- throw new CoolException("鏆傛棤"+ station + "绔欑偣");
+ throw new CoolException("鏆傛棤" + station + "绔欑偣");
}
+ AgvBasDevp agvBasDevp2 = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", containerCode).ne("dev_no", agvBasDevp.getDevNo()));
+ if (!Cools.isEmpty(agvBasDevp2)) {
+ throw new CoolException(station + "绔欑偣缁戝畾璇ヨ揣鏋讹紝鏃犳硶鍏ュ簱");
+ }
+ int br = 0;
+ if (containerType == 21 && agvBasDevp.getFloor() == 2) {
+ containerType = 20;
+ }
+ switch (containerType) {
+ case 10:
+ br = 1;
+ break;
+ case 20:
+ br = 2;
+ break;
+ case 21:
+ br = 4;
+ break;
+ case 30:
+ br = 3;
+ break;
+ case 31:
+ br = 6;
+ break;
+ case 40:
+ br = 5;
+ break;
+ }
+ if (br == 4 && agvBasDevp.getLocType1() == 2) {
+ br = 2;
+ }
+ if (agvBasDevp.getLocType1() != br) {
+ throw new CoolException("绔欑偣绫诲瀷鍜岃揣鏋剁被鍨嬩笉绗︼紒");
+ }
+ AtomicReference<String> factory = new AtomicReference<>();
if (containerType == 40) {
locType = 5;
} else if (containerType == 21 && agvBasDevp.getFloor() == 3) {
locType = 4;
} else if (containerType == 20 && agvBasDevp.getFloor() == 3) {
locType = 2;
+ } else if (containerType == 30) {
+ locType = 3;
+ } else if (containerType == 31) {
+ locType = 6;
} else {
locType = agvBasDevp.getLocType1();
}
- if(!Cools.eq(agvBasDevp.getBarcode(),containerCode) && !agvBasDevp.getLocSts().equals("O") && !emptyAutoIn){
- throw new CoolException("褰撳墠宸ヤ綔浣嶇姸鎬佷负" + agvBasDevp.getLocSts()+",鏃犳硶杩涜鍏ュ簱");
+ if (!Cools.eq(agvBasDevp.getBarcode(), containerCode) && !agvBasDevp.getLocSts().equals("O") && !emptyAutoIn) {
+ throw new CoolException("褰撳墠宸ヤ綔浣嶇姸鎬佷负" + agvBasDevp.getLocSts() + ",鏃犳硶杩涜鍏ュ簱");
}
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(containerCode);
- if(!Cools.isEmpty(agvWrkMast) && !emptyAutoIn){
+ if (!Cools.isEmpty(agvWrkMast) && !emptyAutoIn) {
throw new CoolException("褰撳墠璐ф灦宸叉湁鍏ュ簱浠诲姟锛屾棤娉曡繘琛屽叆搴�");
}
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor());
+ AgvLocMast agvLocMast = new AgvLocMast();
+
+ //鏌ヨ搴撳瓨
+ AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("barcode", containerCode));
+ if (!Cools.isEmpty(locMast)) {
+ throw new CoolException("褰撳墠璐ф灦宸插湪搴撳瓨涓紝鏃犳硶杩涜鍏ュ簱");
+ }
//鏌ヨ鍏ュ簱閫氱煡妗�
List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectByContainerCode(containerCode);
- if(!Cools.isEmpty(agvWaitPakinList)){
+ if (!Cools.isEmpty(agvWaitPakinList)) {
+ AtomicBoolean isCurrLev = new AtomicBoolean(false);
+ agvWaitPakinList.forEach(agvWaitPakin -> {
+ factory.set(OrderUtils.getFactory(agvWaitPakin.getThreeCode()));
+ if (!Cools.isEmpty(agvWaitPakin.getProcessSts())) {
+ if (agvWaitPakin.getProcessSts() == 1) {
+ isCurrLev.set(true);
+ }
+ }
+ });
+
+ Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "elevatorTasks"));
+ if (Cools.isEmpty(config)) {
+ if (isCurrLev.get()) {
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true);
+ } else {
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, false);
+ }
+ } else {
+ if (station.endsWith("F4") && locType == 3) {
+ agvLocMast = agvCommonService.getLocNoOnXiSuer(locType, 1);
+ } else {
+ List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1"));
+ if (Integer.parseInt(config.getValue()) <= agvWrkMasts.size()) {
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true);
+ } else {
+ if (isCurrLev.get()) {
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true);
+ } else {
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, false);
+ }
+ //agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
+ }
+ }
+ }
String devNo = agvBasDevp.getDevNo();
String locNo = agvLocMast.getLocNo();
+
//鐢熸垚宸ヤ綔妗�
- AgvWrkMast wrkMast = createWrkMast(1,201L,devNo,locNo,containerCode,now,userId, containerType);
+ AgvWrkMast wrkMast = createWrkMast(1, 201L, devNo, locNo, containerCode, now, userId, containerType, agvLocMast.getPltType());
//鐢熸垚宸ヤ綔妗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());
+ createWrkDetlReWrite(wp.getMatnr(), wrkMast.getWrkNo(), wp.getOrderNo(), wp.getBatch(), wp.getAnfme(), wp.getSuppCode(), now, userId, wp.getThreeCode(), wp.getDeadTime(), wp.getProcessSts());
});
//淇敼鍏ュ簱閫氱煡妗g姸鎬�
- agvWaitPakinService.updateIoStatus(containerCode,"Y");
+ agvWaitPakinService.updateIoStatus(containerCode, "Y");
//鏇存柊婧愮珯鐐圭姸鎬�
- updateAgvBasDevp(agvBasDevp,"R",containerType);
- }else {
+ updateAgvBasDevp(agvBasDevp, "R", containerType);
+ } else {
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast1 = agvWrkMastService.selectByContainerCode(containerCode);
+ if (!Cools.isEmpty(agvWrkMast1)) {
+ throw new CoolException("褰撳墠璐ф灦宸叉湁鍏ュ簱浠诲姟锛屾棤娉曡繘琛屽叆搴�");
+ }
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), true, true);
// 鐢熸垚宸ヤ綔妗� 10.绌烘澘鍏ュ簱
- createWrkMast(10,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),containerCode,now,userId,containerType);
+ createWrkMast(10, 201L, agvBasDevp.getDevNo(), agvLocMast.getLocNo(), containerCode, now, userId, containerType, agvLocMast.getPltType());
//鏇存柊婧愮珯鐐圭姸鎬�
- updateAgvBasDevp(agvBasDevp,"R",containerType,containerCode);
+ updateAgvBasDevp(agvBasDevp, "R", containerType, containerCode);
}
//鏇存柊鐩爣搴撲綅鐘舵�佸拰淇℃伅
- updateAgvLocMast(agvLocMast,"S");
+ updateAgvLocMast(agvLocMast, "S");
+ return agvLocMast.getLocNo();
+ }
+
+ /*
+ 鍏ュ簱
+ */
+ @Transactional
+ public String emptyPlateInV2(String station, String containerCode, Short containerType, Long userId, boolean emptyAutoIn, String code) {
+
+ Date now = new Date();
+
+ Short locType = 0;
+
+ AgvBasDevp agvBasDevp = agvBasDevpService.selectById(station);
+ if (Cools.isEmpty(agvBasDevp)) {
+ throw new CoolException("鏆傛棤" + station + "绔欑偣");
+ }
+
+ AgvBasDevp agvBasDevp2 = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", containerCode).ne("dev_no", agvBasDevp.getDevNo()));
+ if (!Cools.isEmpty(agvBasDevp2)) {
+ throw new CoolException(station + "绔欑偣缁戝畾璇ヨ揣鏋讹紝鏃犳硶鍏ュ簱");
+ }
+ if (Cools.isEmpty(agvBasDevp)) {
+ throw new CoolException("鏆傛棤" + station + "绔欑偣");
+ }
+
+ int br = 0;
+ if (containerType == 21 && agvBasDevp.getFloor() == 2) {
+ containerType = 20;
+ }
+ switch (containerType) {
+ case 10:
+ br = 1;
+ break;
+ case 20:
+ br = 2;
+ break;
+ case 21:
+ br = 4;
+ break;
+ case 30:
+ br = 3;
+ break;
+ case 31:
+ br = 6;
+ break;
+ case 40:
+ br = 5;
+ break;
+ }
+ if (br == 4 && agvBasDevp.getLocType1() == 2) {
+ br = 2;
+ }
+ if (agvBasDevp.getLocType1() != br) {
+ throw new CoolException("绔欑偣绫诲瀷鍜岃揣鏋剁被鍨嬩笉绗︼紒");
+ }
+ AtomicReference<String> factory = new AtomicReference<>();
+ if (containerType == 40) {
+ locType = 5;
+ } else if (containerType == 21 && agvBasDevp.getFloor() == 3) {
+ locType = 4;
+ } else if (containerType == 20 && agvBasDevp.getFloor() == 3) {
+ locType = 2;
+ } else if (containerType == 30) {
+ locType = 3;
+ } else if (containerType == 31) {
+ locType = 6;
+ } else {
+ locType = agvBasDevp.getLocType1();
+ }
+
+ if (!Cools.eq(agvBasDevp.getBarcode(), containerCode) && !agvBasDevp.getLocSts().equals("O") && !emptyAutoIn) {
+ throw new CoolException("褰撳墠宸ヤ綔浣嶇姸鎬佷负" + agvBasDevp.getLocSts() + ",鏃犳硶杩涜鍏ュ簱");
+ }
+
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(containerCode);
+ if (!Cools.isEmpty(agvWrkMast) && !emptyAutoIn) {
+ throw new CoolException("褰撳墠璐ф灦宸叉湁鍏ュ簱浠诲姟锛屾棤娉曡繘琛屽叆搴�");
+ }
+
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ AgvLocMast agvLocMast = new AgvLocMast();
+
+ //鏌ヨ搴撳瓨
+ AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("barcode", containerCode));
+ if (!Cools.isEmpty(locMast)) {
+ throw new CoolException("褰撳墠璐ф灦宸插湪搴撳瓨涓紝鏃犳硶杩涜鍏ュ簱");
+ }
+
+ //鏌ヨ鍏ュ簱閫氱煡妗�
+ List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectByContainerCode(containerCode);
+ if (!Cools.isEmpty(agvWaitPakinList)) {
+ AtomicBoolean isCurrLev = new AtomicBoolean(false);
+ agvWaitPakinList.forEach(agvWaitPakin -> {
+ factory.set(OrderUtils.getFactory(agvWaitPakin.getThreeCode()));
+ if (!Cools.isEmpty(agvWaitPakin.getProcessSts())) {
+ if (agvWaitPakin.getProcessSts() == 1) {
+ isCurrLev.set(true);
+ }
+ }
+ });
+
+
+// Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "elevatorTasks"));
+// if (Cools.isEmpty(config)) {
+// if (isCurrLev.get()) {
+// agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true);
+// } else {
+// agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, false);
+// }
+// } else {
+// List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1"));
+// if (Integer.parseInt(config.getValue()) <= agvWrkMasts.size()) {
+// agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true);
+// } else {
+// if (isCurrLev.get()) {
+// agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true);
+// } else {
+// agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, false);
+// }
+// //agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
+// }
+// }
+ // 棰勭暀20涓簱浣�
+ agvLocMast = agvCommonService.getLocByLocRule20(3, 1, code, false);
+
+
+ String devNo = agvBasDevp.getDevNo();
+ String locNo = agvLocMast.getLocNo();
+ String ctnNo = null;
+ // 鎵撴爣璁帮紝鑻ュ簱浣嶄笉澶燂紝鍏ュ簱鍒板埆鐨勬ゼ灞傦紝閭d箞闇�瑕佽法灞傜Щ搴�
+ if (!Cools.isEmpty(code)) {
+ if (agvLocMast.getLev1() == 1 && code.equals(AsrsConstants.ERCHANG)) {
+ ctnNo = "2";
+ } else if (agvLocMast.getLev1() == 2 && code.equals(AsrsConstants.SANCHANG)) {
+ ctnNo = "1";
+ }
+ }
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast wrkMast = createWrkMastV2(1, 201L, devNo, locNo, containerCode, now, userId, containerType, agvLocMast.getPltType(), ctnNo);
+ //鐢熸垚宸ヤ綔妗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());
+ });
+ //淇敼鍏ュ簱閫氱煡妗g姸鎬�
+ agvWaitPakinService.updateIoStatus(containerCode, "Y");
+ //鏇存柊婧愮珯鐐圭姸鎬�
+ updateAgvBasDevp(agvBasDevp, "R", containerType);
+ } else {
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast1 = agvWrkMastService.selectByContainerCode(containerCode);
+ if (!Cools.isEmpty(agvWrkMast1)) {
+ throw new CoolException("褰撳墠璐ф灦宸叉湁鍏ュ簱浠诲姟锛屾棤娉曡繘琛屽叆搴�");
+ }
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), true, true);
+ // 鐢熸垚宸ヤ綔妗� 10.绌烘澘鍏ュ簱
+ createWrkMast(10, 201L, agvBasDevp.getDevNo(), agvLocMast.getLocNo(), containerCode, now, userId, containerType, agvLocMast.getPltType());
+ //鏇存柊婧愮珯鐐圭姸鎬�
+ updateAgvBasDevp(agvBasDevp, "R", containerType, containerCode);
+ }
+
+ //鏇存柊鐩爣搴撲綅鐘舵�佸拰淇℃伅
+ updateAgvLocMast(agvLocMast, "S");
+ return agvLocMast.getLocNo();
+ }
+
+ /*
+ 鍏ュ簱
+ */
+ @Transactional
+ public String emptyPlateInV3(String station, String containerCode, Short containerType, Long userId, boolean emptyAutoIn) {
+
+ Date now = new Date();
+
+ Short locType = 0;
+
+ AgvBasDevp agvBasDevp = agvBasDevpService.selectById(station);
+ if (Cools.isEmpty(agvBasDevp)) {
+ throw new CoolException("鏆傛棤" + station + "绔欑偣");
+ }
+ AgvBasDevp agvBasDevp2 = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", containerCode).ne("dev_no", agvBasDevp.getDevNo()));
+ if (!Cools.isEmpty(agvBasDevp2)) {
+ throw new CoolException(station + "绔欑偣缁戝畾璇ヨ揣鏋讹紝鏃犳硶鍏ュ簱");
+ }
+ int br = 0;
+ if (containerType == 21 && agvBasDevp.getFloor() == 2) {
+ containerType = 20;
+ }
+ switch (containerType) {
+ case 10:
+ br = 1;
+ break;
+ case 20:
+ br = 2;
+ break;
+ case 21:
+ br = 4;
+ break;
+ case 30:
+ br = 3;
+ break;
+ case 31:
+ br = 6;
+ break;
+ case 40:
+ br = 5;
+ break;
+ }
+ if (br == 4 && agvBasDevp.getLocType1() == 2) {
+ br = 2;
+ }
+ if (agvBasDevp.getLocType1() != br) {
+ throw new CoolException("绔欑偣绫诲瀷鍜岃揣鏋剁被鍨嬩笉绗︼紒");
+ }
+ AtomicReference<String> factory = new AtomicReference<>();
+ if (containerType == 40) {
+ locType = 5;
+ } else if (containerType == 21 && agvBasDevp.getFloor() == 3) {
+ locType = 4;
+ } else if (containerType == 20 && agvBasDevp.getFloor() == 3) {
+ locType = 2;
+ } else if (containerType == 30) {
+ locType = 3;
+ } else if (containerType == 31) {
+ locType = 6;
+ } else {
+ locType = agvBasDevp.getLocType1();
+ }
+
+ if (!Cools.eq(agvBasDevp.getBarcode(), containerCode) && !agvBasDevp.getLocSts().equals("O") && !emptyAutoIn) {
+ throw new CoolException("褰撳墠宸ヤ綔浣嶇姸鎬佷负" + agvBasDevp.getLocSts() + ",鏃犳硶杩涜鍏ュ簱");
+ }
+
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(containerCode);
+ if (!Cools.isEmpty(agvWrkMast) && !emptyAutoIn) {
+ throw new CoolException("褰撳墠璐ф灦宸叉湁鍏ュ簱浠诲姟锛屾棤娉曡繘琛屽叆搴�");
+ }
+
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ AgvLocMast agvLocMast = new AgvLocMast();
+
+ //鏌ヨ搴撳瓨
+ AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("barcode", containerCode));
+ if (!Cools.isEmpty(locMast)) {
+ throw new CoolException("褰撳墠璐ф灦宸插湪搴撳瓨涓紝鏃犳硶杩涜鍏ュ簱");
+ }
+
+ //鏌ヨ鍏ュ簱閫氱煡妗�
+ List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectByContainerCode(containerCode);
+ if (!Cools.isEmpty(agvWaitPakinList)) {
+ AtomicBoolean isCurrLev = new AtomicBoolean(false);
+ agvWaitPakinList.forEach(agvWaitPakin -> {
+ factory.set(OrderUtils.getFactory(agvWaitPakin.getThreeCode()));
+ if (!Cools.isEmpty(agvWaitPakin.getProcessSts())) {
+ if (agvWaitPakin.getProcessSts() == 1) {
+ isCurrLev.set(true);
+ }
+ }
+ });
+
+
+ Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "elevatorTasks"));
+ if (Cools.isEmpty(config)) {
+ if (isCurrLev.get()) {
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true);
+ } else {
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, false);
+ }
+ } else {
+ if (station.endsWith("F4") && locType == 3) {
+ agvLocMast = agvCommonService.getLocNoOnXiSuer(locType, 1);
+ } else if (locType == 6) {
+ agvLocMast = agvCommonService.getLocNoOnXiSuer20(locType, 1);
+ } else {
+ List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1"));
+ if (Integer.parseInt(config.getValue()) <= agvWrkMasts.size()) {
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true);
+ } else {
+ if (isCurrLev.get()) {
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true);
+ } else {
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, false);
+ }
+ //agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
+ }
+ }
+ }
+ if (agvLocMast == null) {
+ throw new CoolException("娌℃湁璇ョ被鍨嬬殑绌哄簱浣嶄簡");
+ }
+
+ String devNo = agvBasDevp.getDevNo();
+ String locNo = agvLocMast.getLocNo();
+
+
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast wrkMast = createWrkMast(1, 201L, devNo, locNo, containerCode, now, userId, containerType, agvLocMast.getPltType());
+ //鐢熸垚宸ヤ綔妗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());
+ });
+ //淇敼鍏ュ簱閫氱煡妗g姸鎬�
+ agvWaitPakinService.updateIoStatus(containerCode, "Y");
+ //鏇存柊婧愮珯鐐圭姸鎬�
+ updateAgvBasDevp(agvBasDevp, "R", containerType);
+ } else {
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast1 = agvWrkMastService.selectByContainerCode(containerCode);
+ if (!Cools.isEmpty(agvWrkMast1)) {
+ throw new CoolException("褰撳墠璐ф灦宸叉湁鍏ュ簱浠诲姟锛屾棤娉曡繘琛屽叆搴�");
+ }
+ agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), true, true);
+ // 鐢熸垚宸ヤ綔妗� 10.绌烘澘鍏ュ簱
+ createWrkMast(10, 201L, agvBasDevp.getDevNo(), agvLocMast.getLocNo(), containerCode, now, userId, containerType, agvLocMast.getPltType());
+ //鏇存柊婧愮珯鐐圭姸鎬�
+ updateAgvBasDevp(agvBasDevp, "R", containerType, containerCode);
+ }
+
+ //鏇存柊鐩爣搴撲綅鐘舵�佸拰淇℃伅
+ updateAgvLocMast(agvLocMast, "S");
return agvLocMast.getLocNo();
}
@@ -388,31 +968,59 @@
// 绔欑偣妫�娴�
AgvBasDevp agvBasDevp = agvBasDevpService.selectById(station);
- if(!agvBasDevp.getLocSts().equals("O")){
- throw new CoolException("褰撳墠宸ヤ綔浣嶇姸鎬佷负" + agvBasDevp.getLocSts()+",鏃犳硶杩涜绌烘澘鍑哄簱");
+ if (Cools.isEmpty(agvBasDevp)) {
+ throw new CoolException("绔欑偣淇℃伅涓嶅瓨鍦�");
+ }
+ 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() + ",鏃犳硶杩涜绌烘澘鍑哄簱");
+ }
+ AgvLocMast agvLocMast = null;
+ if (station.startsWith("XI") && station.endsWith("F4") && containerType == 30) {
+ agvLocMast = agvLocMastService.select30EmptyZpallet();
+ } else {
+ //瀵绘壘鐩稿簲绫诲瀷鐨勭┖璐ф灦
+ Integer floor = agvBasDevp.getFloor();
+ if (floor == 4) {
+ floor = 1;
+ }
+ agvLocMast = agvLocMastService.selectEmptyZpallet(containerType, floor);
+ if (containerType == 0) {
+ //绌烘澘鑷姩鍑哄簱锛屾牴鎹珯鐐圭被鍨嬮�夋嫨
+ agvLocMastService.selectEmptyZpalletByLocType1(agvBasDevp.getLocType1());
+
+ }
}
- //瀵绘壘鐩稿簲绫诲瀷鐨勭┖璐ф灦
- AgvLocMast agvLocMast = agvLocMastService.selectEmptyZpallet(containerType,agvBasDevp.getFloor());
- if(containerType == 0){
- //绌烘澘鑷姩鍑哄簱锛屾牴鎹珯鐐圭被鍨嬮�夋嫨
- agvLocMastService.selectEmptyZpalletByLocType1(agvBasDevp.getLocType1());
-
- }
if (Cools.isEmpty(agvLocMast)) {
throw new CoolException("鏆傛棤褰撳墠鍑哄簱绔欑偣绫诲瀷鐨勭┖璐ф灦锛�");
}
+ if (!Cools.isEmpty(agvBasDevp.getArea())) {
+ if (!Cools.isEmpty(agvLocMast.getBarcode())) {
+ if (!agvBasDevp.getArea().contains(agvLocMast.getBarcode().substring(0, 2))) {
+ throw new CoolException("1褰撳墠鍑哄簱绔欑偣涓嶅厑璁稿彨璇ョ被鍨嬬殑璐ф灦锛�" + agvLocMast.getBarcode());
+ }
+ }else {
+ if (!agvBasDevp.getArea().contains(agvLocMast.getLocType1$().toString())) {
+ throw new CoolException("2褰撳墠鍑哄簱绔欑偣涓嶅厑璁稿彨璇ョ被鍨嬬殑璐ф灦锛�" + agvLocMast.getBarcode());
+ }
+ }
+ }
//鐢熸垚宸ヤ綔妗�
- createWrkMast(110,21L,agvLocMast.getLocNo(),agvBasDevp.getDevNo(),agvLocMast.getBarcode(),now,userId,containerType);
+ createWrkMast(110, 21L, agvLocMast.getLocNo(), agvBasDevp.getDevNo(), agvLocMast.getBarcode(), now, userId, containerType, agvLocMast.getPltType());
//淇敼婧愬簱浣嶇姸鎬�
- updateAgvLocMast(agvLocMast,"R");
+ updateAgvLocMast(agvLocMast, "R");
//淇敼绔欑偣鐘舵��
- updateAgvBasDevp(agvBasDevp,"S",(short)containerType,agvLocMast.getBarcode());
+ updateAgvBasDevp(agvBasDevp, "S", (short) containerType, agvLocMast.getBarcode());
}
+
@Transactional
public void adjustLocDetl(LocDetlAdjustParam param, Long userId) {
@@ -429,7 +1037,7 @@
List<AgvLocDetl> locDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", param.getLocNo()));
List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList();
-
+ String barcode = null;
// 淇敼鏁伴噺
Iterator<AgvLocDetl> iterator = locDetls.iterator();
while (iterator.hasNext()) {
@@ -438,12 +1046,14 @@
Iterator<LocDetlAdjustParam.LocDetlAdjust> iterator1 = list.iterator();
while (iterator1.hasNext()) {
LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next();
- if (adjust.getCount() == 0) { continue; }
- if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch()) && Cools.eq(locDetl.getSuppCode(),adjust.getSuppCode()) && Cools.eq(locDetl.getThreeCode(),adjust.getThreeCode()) && Cools.eq(locDetl.getDeadTime(),adjust.getDeadTime())) {
- if (!locDetl.getAnfme().equals(adjust.getCount())) {
+ if (adjust.getCount() == 0) {
+ continue;
+ }
+ if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch()) && Cools.eq(locDetl.getSuppCode(), adjust.getSuppCode()) && Cools.eq(locDetl.getThreeCode(), adjust.getThreeCode()) && Cools.eq(locDetl.getDeadTime(), adjust.getDeadTime())) {
+ if (!locDetl.getAnfme().equals(adjust.getCount()) || !locDetl.getProcessSts().equals(adjust.getProcessSts())) {
// todo 鐩樼偣璁板綍
// 淇敼搴撳瓨
- if (!agvLocDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime())) {
+ if (!agvLocDetlService.updateAnfmeProcess(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getThreeCode(), locDetl.getDeadTime(), adjust.getProcessSts())) {
throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佷慨鏀规暟閲忓け璐�");
}
// 淇濆瓨璋冩暣璁板綍
@@ -451,6 +1061,7 @@
adjDetl.setLocNo(locDetl.getLocNo());
adjDetl.setMatnr(locDetl.getMatnr());
adjDetl.setBatch(locDetl.getBatch());
+ adjDetl.setMaktx(locDetl.getMaktx());
adjDetl.setOriQty(locDetl.getAnfme());
adjDetl.setAdjQty(adjust.getCount());
adjDetl.setModiTime(now);
@@ -474,7 +1085,7 @@
// 鍒犻櫎搴撳瓨
for (AgvLocDetl locDetl : locDetls) {
// todo 鐩樼偣璁板綍
- if (!agvLocDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime())) {
+ if (!agvLocDetlService.updateAnfmeProcess(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getThreeCode(), locDetl.getDeadTime(), locDetl.getProcessSts())) {
throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�");
}
// 淇濆瓨璋冩暣璁板綍
@@ -482,6 +1093,7 @@
adjDetl.setLocNo(locDetl.getLocNo());
adjDetl.setMatnr(locDetl.getMatnr());
adjDetl.setBatch(locDetl.getBatch());
+ adjDetl.setMaktx(locDetl.getMaktx());
adjDetl.setOriQty(locDetl.getAnfme());
adjDetl.setAdjQty(0.0D);
adjDetl.setModiTime(now);
@@ -495,7 +1107,9 @@
// 娣诲姞搴撳瓨
for (LocDetlAdjustParam.LocDetlAdjust adjust : list) {
- if (adjust.getCount() == 0.0D) { continue; }
+ if (adjust.getCount() == 0.0D) {
+ continue;
+ }
Mat mat = matService.selectByMatnr(adjust.getMatnr());
AgvLocDetl locDetl = new AgvLocDetl();
locDetl.sync(mat);
@@ -510,6 +1124,7 @@
locDetl.setThreeCode(adjust.getThreeCode());
locDetl.setDeadTime(adjust.getDeadTime());
locDetl.setSuppCode(adjust.getSuppCode());
+ barcode = adjust.getSuppCode();
if (!agvLocDetlService.insert(locDetl)) {
throw new CoolException("娣诲姞" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�");
}
@@ -518,6 +1133,7 @@
adjDetl.setLocNo(locMast.getLocNo());
adjDetl.setMatnr(adjust.getMatnr());
adjDetl.setBatch(adjust.getBatch());
+ adjDetl.setMaktx(locDetl.getMaktx());
adjDetl.setOriQty(0.0D);
adjDetl.setAdjQty(adjust.getCount());
adjDetl.setModiTime(now);
@@ -541,6 +1157,7 @@
if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) {
if (count > 0) {
locMast.setLocSts("F");
+ locMast.setBarcode(barcode);
}
}
locMast.setModiUser(userId);
@@ -554,221 +1171,437 @@
@Transactional
public void completeWrkMast(String workNo, Long userId) {
AgvWrkMast wrkMast = agvWrkMastService.selectById(workNo);
- if (Cools.isEmpty(wrkMast)){
- throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+ if (Cools.isEmpty(wrkMast)) {
+ throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
-// if(!wrkMast.getLocNo().contains("@") || !wrkMast.getSourceLocNo().contains("@")){
-// throw new CoolException("鐩爣搴撲綅鎴栬�呮簮搴撲綅鏆傛湭鍒嗛厤锛屾棤娉曞彇娑�");
-// }
- //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚
- //agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205);
+ if (wrkMast.getIoType() == 113 && (wrkMast.getWrkSts() != 212L || wrkMast.getWrkSts() != 213L || wrkMast.getWrkSts() != 214L)) {
+ throw new CoolException(workNo + "涓嶆敮鎸佹墜鍔ㄧ淮鎶�");
+ }
+ if (wrkMast.getIoType() == 121) {
+ if (wrkMast.getWrkSts() < 12L) {
+ agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(), 205, "鎵嬪姩瀹屾垚", userId);
+ } else if (wrkMast.getWrkSts() == 12L) {
+ agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(), 12, "鎵嬪姩瀹屾垚", userId);
- agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId);
+ WrkMastExecute wrkMastExecute = wrkMastExecuteService.selectOne(new EntityWrapper<WrkMastExecute>().eq("wrk_no", workNo));
+ wrkMastExecute.setWrkSts(3L);
+ wrkMastExecute.setNowPosition(3);
+ wrkMastExecuteService.updateById(wrkMastExecute);
+ }
+ return;
+
+ } else {
+ if (wrkMast.getIoType() == 110) {
+ agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(), 206, "鎵嬪姩瀹屾垚", userId);
+ } else {
+ agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(), 205, "鎵嬪姩瀹屾垚", userId);
+ }
+ }
//鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱
- if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 111){
+ if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 111) {
//淇敼鍑哄簱绔欑偣鐘舵��
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(), "F", wrkMast.getBarcode(), wrkMast.getWhsType().shortValue());
}
- if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 ){
+ if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53) {
//淇敼鍑哄簱绔欑偣鐘舵��
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"O","",wrkMast.getWhsType().shortValue());
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(), "O", "", wrkMast.getWhsType().shortValue());
}
//鍑哄簱浠诲姟 110.绌烘澘鍑哄簱
- if(wrkMast.getIoType() == 110){
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+
+ if (wrkMast.getIoType() == 10) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(), "O", wrkMast.getBarcode(), wrkMast.getWhsType().shortValue());
}
}
@Transactional
- public void cancelWrkMast(String workNo, Long userId,Integer type) {
+ public void cancelWrkMast(String workNo, Long userId, Integer type) {
AgvWrkMast wrkMast = agvWrkMastService.selectById(workNo);
- if (Cools.isEmpty(wrkMast)){
- throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+ long flowId = snowflakeIdWorker.nextId();
+ if (Cools.isEmpty(wrkMast)) {
+ throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
- //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷
- if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
- throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
- }
+ if (wrkMast.getIoType() == 121) {
+ if (wrkMast.getWrkSts() < 12L) {
+ //婧愬簱浣�
+ String locNo = wrkMast.getSourceLocNo();
- //鍏ュ簱鍙栨秷
- if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 58){
- //婧愮珯鐐�
- String devNo = wrkMast.getSourceLocNo();
- //鐩爣搴撲綅
- String locNo = wrkMast.getLocNo();
- agvLocMastService.updateLocStsByLocNo(locNo,"O","",null);
- if (wrkMast.getIoType() == 58) {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
- } else {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",wrkMast.getWhsType().shortValue());
- }
+ // 鐩爣搴撲綅
+ String targetLocNo = wrkMast.getLocNo();
+ agvLocMastService.updateLocStsByLocNo(locNo, "F", wrkMast.getBarcode(), (short) getContainerTypeByloc(locNo));
+ agvLocMastService.updateLocStsByLocNo(targetLocNo, "O", "", null);
- if (wrkMast.getIoType() == 1) {
- List<AgvWaitPakin> agvWaitPakins = agvWaitPakinService.selectByContainerCode2(wrkMast.getBarcode());
-
- for (AgvWaitPakin agvWaitPakin : agvWaitPakins) {
- // 鍥炴粴鍏ュ簱璁㈠崟
- 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("璁㈠崟鍥炴粴澶辫触");
- }
- // 鍒犻櫎缁勬墭妗�
- if (!agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getSuppCode()).eq("matnr",agvWaitPakin.getMatnr()).eq("three_code",agvWaitPakin.getThreeCode()))) {
- throw new CoolException("鍏ュ簱閫氱煡妗e彇娑堝け璐�");
- }
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(new Date());
+ if (type == 2) {
+ wrkMast.setManuType("鎵嬪姩鍙栨秷锛坅gv锛�");
+ } else {
+ wrkMast.setManuType("鎵嬪姩鍙栨秷");
}
+ //淇濆瓨宸ヤ綔妗d互鍙婃槑缁�
+ agvWrkMastLogService.save(wrkMast);
+ agvWrkDetlLogService.save(wrkMast.getWrkNo());
+
+
+ //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁�
+ if (!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())) {
+ throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+
+ if (type == 2) {
+ //璋冪敤agv鍙栨秷浠诲姟鎺ュ彛
+ agvWrkMastService.callCancelTask(wrkMast.getWrkNo());
+ }
+ } else {
+ throw new CoolException("褰撳墠浠诲姟姝e湪鎵ц锛屼笉鍙彇娑�");
+ }
+ } else {
+ //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷
+ if (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) {
+ throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
}
+ //鍏ュ簱鍙栨秷
+ if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 58) {
+ //婧愮珯鐐�
+ String devNo = wrkMast.getSourceLocNo();
+ //鐩爣搴撲綅
+ String locNo = wrkMast.getLocNo();
+ if (!Cools.isEmpty(locNo)) {
+ agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
+ }
+ agvLocMastService.updateLocStsByLocNo(locNo, "O", "", null);
+ if (wrkMast.getIoType() == 58) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo, "F", wrkMast.getBarcode(), wrkMast.getWhsType().shortValue());
+ } else {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo, "O", "", wrkMast.getWhsType().shortValue());
+ }
- // 绉诲簱鍙栨秷
- } else if( wrkMast.getIoType() == 11 || wrkMast.getIoType() == 12) {
- //婧愬簱浣�
- String locNo = wrkMast.getSourceLocNo();
+ if (wrkMast.getIoType() == 1) {
+ List<AgvWaitPakin> agvWaitPakins = agvWaitPakinService.selectByContainerCode2(wrkMast.getBarcode());
- // 鐩爣搴撲綅
- String targetLocNo = wrkMast.getLocNo();
- agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
- agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
- AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", targetLocNo));
- // 褰撳墠浠诲姟鏄法灞傜Щ搴� 涓旂洰鏍囨ゼ灞傛槸1妤肩殑 鍥炴粴璋冩嫧鍗�
- if (wrkMast.getIoType() == 12 && locMast.getFloor() == 1) {
+ for (AgvWaitPakin agvWaitPakin : agvWaitPakins) {
+ // 鍥炴粴鍏ュ簱璁㈠崟
+ 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彇娑堝け璐�");
+ }
+ }
+
+
+ }
+
+
+ // 绉诲簱鍙栨秷
+ } else if (wrkMast.getIoType() == 11 || wrkMast.getIoType() == 12) {
+ //婧愬簱浣�
+ String locNo = wrkMast.getSourceLocNo();
+
+ // 鐩爣搴撲綅
+ String targetLocNo = wrkMast.getLocNo();
+ agvLocMastService.updateLocStsByLocNo(locNo, "F", wrkMast.getBarcode(), (short) getContainerTypeByloc(locNo));
+ agvLocMastService.updateLocStsByLocNo(targetLocNo, "O", "", null);
+ // 婧愬簱浣� 搴撲綅涓绘。
+ AgvLocMast sourceLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo));
+ AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", targetLocNo));
+ // 褰撳墠浠诲姟鏄法灞傜Щ搴� 涓旂洰鏍囨ゼ灞傛槸1妤肩殑 鍥炴粴璋冩嫧鍗�
+ if (wrkMast.getIoType() == 12 && locMast.getFloor() == 1 && sourceLocMast.getFloor() != 1) {
+ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
+ for (AgvLocDetl agvLocDetl : agvLocDetls) {
+ 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("鏇存柊璁㈠崟鏄庣粏澶辫触");
+ }
+// 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) {
+ throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�");
+ }
+ if (wrkMast.getIoType() == 108 && wrkMast.getWrkSts() >= 204) {
+ throw new CoolException("婧愬簱浣嶅凡缁忛噴鏀撅紝褰撳墠浣滀笟涓嶈兘鍙栨秷锛�");
+ }
+ // 婧愬簱浣�
+ String locNo = wrkMast.getSourceLocNo();
+ // 鐩爣搴撲綅
+ String targetLocNo = wrkMast.getLocNo();
+ agvLocMastService.updateLocStsByLocNo(locNo, "F", wrkMast.getBarcode(), (short) getContainerTypeByloc(locNo), "", (short) 0);
+ if (wrkMast.getIoType() == 108) {
+ if (wrkMast.getWrkSts() != 22) {
+ agvLocMastService.updateLocStsByLocNo(targetLocNo, "O", "", null);
+ }
+ } else {
+ if (wrkMast.getWrkSts() != 207L && wrkMast.getWrkSts() != 205L) {
+ if (wrkMast.getWrkSts() != 22) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo, "O", "", wrkMast.getWhsType().shortValue());
+ }
+ } else {
+ throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�");
+ }
+
+
+ }
+
+ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
+ // 鏇存柊璁㈠崟
+ for (AgvLocDetl agvLocDetl : agvLocDetls) {
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()));
+ if (orderDetl != null) {
+ orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
+ 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());
+ }
+ } else {
+ orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()).eq("source", 33).ge("qty", agvLocDetl.getAnfme()));
+ if (orderDetl != null) {
+ orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
+ if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", orderDetl.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 if (wrkMast.getIoType() == 114) {
+ if (wrkMast.getWrkSts() >= 204) {
+ throw new CoolException("婧愬簱浣嶅凡缁忛噴鏀撅紝褰撳墠浣滀笟涓嶈兘鍙栨秷锛�");
+ }
+ //婧愬簱浣�
+ String locNo = wrkMast.getSourceLocNo();
+ // 鐩爣搴撲綅
+ String targetLocNo = wrkMast.getLocNo();
+ agvLocMastService.updateLocStsByLocNo(locNo, "F", wrkMast.getBarcode(), (short) getContainerTypeByloc(locNo));
+ agvLocMastService.updateLocStsByLocNo(targetLocNo, "O", "", null);
+ // 婧愬簱浣� 搴撲綅涓绘。
+ AgvLocMast sourceLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo));
+ AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", targetLocNo));
+ // 褰撳墠浠诲姟鏄法灞傜Щ搴� 涓旂洰鏍囨ゼ灞傛槸1妤肩殑 鍥炴粴璋冩嫧鍗�
List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
for (AgvLocDetl agvLocDetl : agvLocDetls) {
- 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());
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("source", 17));
+ orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
if (!orderDetlService.updateById(orderDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ throw new CoolException("鏇存柊璁㈠崟鏄庣粏澶辫触");
}
}
- }
- // 鑷姩璋冩嫧鍑哄簱鍙栨秷
- } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111) {
- // 婧愬簱浣�
- String locNo = wrkMast.getSourceLocNo();
- // 鐩爣搴撲綅
- String targetLocNo = wrkMast.getLocNo();
- agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo),"",(short)0);
- if (wrkMast.getIoType() == 108) {
- if (wrkMast.getWrkSts() != 22) {
- agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
- }
+ //鍑哄簱鍙栨秷
} else {
- if (wrkMast.getWrkSts() != 22) {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue());
- }
- }
+ //婧愬簱浣�
+ String locNo = wrkMast.getSourceLocNo();
+ //鐩爣绔欑偣
+ String devNo = wrkMast.getLocNo();
+ if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 109) {
+ if (wrkMast.getIoType() == 109) {
+ // 婧愬簱浣嶆槸绔欑偣
+ if ("DB".equals(locNo.substring(0, 2))) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo, "F", wrkMast.getBarcode(), wrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(devNo, "O", "", null);
+ // 婧愬簱浣嶆槸搴撲綅 鐩爣搴撲綅鏄珯鐐�
+ } else if ("DB".equals(devNo.substring(0, 2))) {
+ agvLocMastService.updateLocStsByLocNo(locNo, "D", wrkMast.getBarcode(), wrkMast.getWhsType().shortValue());
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo, "O", "", null);
+ // 婧愬簱浣嶆槸搴撲綅
+ } else {
+ agvLocMastService.updateLocStsByLocNo(locNo, "D", wrkMast.getBarcode(), wrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(devNo, "O", "", null);
+ }
- List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
- // 鏇存柊璁㈠崟
- for (AgvLocDetl agvLocDetl : agvLocDetls) {
- OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
- orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
- 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());
- }
- }
- //鍑哄簱鍙栨秷
- } else {
- //婧愬簱浣�
- String locNo = wrkMast.getSourceLocNo();
- //鐩爣绔欑偣
- String devNo = wrkMast.getLocNo();
- if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 109) {
- agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
- } else {
- agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
- }
- if (wrkMast.getIoType() == 109){
- if (Cools.isEmpty(wrkMast.getLocNo())) {
+ } else {
+ agvLocMastService.updateLocStsByLocNo(locNo, "D", wrkMast.getBarcode(), wrkMast.getWhsType().shortValue());
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo, "O", "", null);
+ }
+ } else if (wrkMast.getIoType() == 113) {
+ if (wrkMast.getWrkSts() == 212 || wrkMast.getWrkSts() == 213) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo, "F", wrkMast.getBarcode(), (short) getContainerTypeByloc(locNo));
+ } else {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo, "F", wrkMast.getBarcode(), (short) getContainerTypeByloc(locNo));
+ if (!Cools.isEmpty(devNo)) {
+ agvLocMastService.updateLocStsByLocNo(devNo, "0", "", null);
+ }
+ }
} else {
- agvLocMastService.updateLocStsByLocNo(devNo,"O","",(short)getContainerTypeByloc(devNo));
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo, "O", "", null);
+ agvLocMastService.updateLocStsByLocNo(locNo, "F", wrkMast.getBarcode(), (short) getContainerTypeByloc(locNo));
}
- }else {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
}
- }
- if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12){
- //璁㈠崟鍥炴粴
- //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
- List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
- agvWrkDetlList1.forEach(agvWrkDetl -> {
+ if (wrkMast.getIoType() != 114 && wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType() != 111 && wrkMast.getIoType() != 108 && wrkMast.getIoType() != 12 && wrkMast.getIoType() != 11) {
+ //璁㈠崟鍥炴粴
+ //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+ List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ agvWrkDetlList1.forEach(agvWrkDetl -> {
- if(!Cools.isEmpty(agvWrkDetl.getOrderNo())){
- String orderNo = agvWrkDetl.getOrderNo();
- if(orderNo.contains("{")){
- JSONArray orderArray = JSON.parseArray(orderNo);
- for (Object o : orderArray){
- JSONObject jsonobject = (JSONObject) o;
- OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(jsonobject.get("orderNo").toString(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
+ if (!Cools.isEmpty(agvWrkDetl.getOrderNo())) {
+ String orderNo = agvWrkDetl.getOrderNo();
+ if (orderNo.contains("{")) {
+ JSONArray orderArray = JSON.parseArray(orderNo);
+ for (Object o : orderArray) {
+ JSONObject jsonobject = (JSONObject) o;
+ OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(jsonobject.get("orderNo").toString(), agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
+ orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
+ orderDetlService.updateById(orderDetl);
+ }
+
+ } else {
+ OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
orderDetlService.updateById(orderDetl);
}
-
- }else {
- OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(agvWrkDetl.getOrderNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
- orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
- orderDetlService.updateById(orderDetl);
}
+ });
+ }
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(new Date());
+ if (type == 2) {
+ wrkMast.setManuType("鎵嬪姩鍙栨秷锛坅gv锛�");
+ } else {
+ wrkMast.setManuType("鎵嬪姩鍙栨秷");
+ }
+
+
+ //淇濆瓨宸ヤ綔妗d互鍙婃槑缁�
+ agvWrkMastLogService.save(wrkMast);
+ agvWrkDetlLogService.save(wrkMast.getWrkNo());
+
+
+ //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁�
+ if (!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())) {
+ throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+
+ if (type == 2 || type == 5) {
+ try {
+ //璋冪敤agv鍙栨秷浠诲姟鎺ュ彛
+ agvWrkMastService.callCancelTask(wrkMast.getWrkNo());
+ } catch (Exception e) {
+ log.info("璋冪敤agv鍙栨秷浠诲姟鎺ュ彛澶辫触");
}
- });
+ }
}
- wrkMast.setModiUser(userId);
- wrkMast.setModiTime(new Date());
- if (type == 2) {
- wrkMast.setManuType("鎵嬪姩鍙栨秷锛坅gv锛�");
- } else {
- wrkMast.setManuType("鎵嬪姩鍙栨秷");
- }
-
-
- //淇濆瓨宸ヤ綔妗d互鍙婃槑缁�
- agvWrkMastLogService.save(wrkMast);
- agvWrkDetlLogService.save(wrkMast.getWrkNo());
-
-
-
- //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁�
- if(!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){
- throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
- if (type == 2) {
- //璋冪敤agv鍙栨秷浠诲姟鎺ュ彛
- agvWrkMastService.callCancelTask(wrkMast.getWrkNo());
- }
-
-
}
/*
鏇存柊鐩爣搴撲綅淇℃伅
*/
- private void updateAgvLocMast(AgvLocMast locMast, String locSts){
+ private void updateAgvLocMast(AgvLocMast locMast, String locSts) {
locMast.setLocSts(locSts);
+ locMast.setModiTime(new Date());
agvLocMastService.updateById(locMast);
}
/*
鏇存柊鐩爣搴撲綅淇℃伅鍜屽簱浣嶈揣鏋剁被鍨�
*/
- private void updateAgvLocMast(AgvLocMast locMast, String locSts, short type){
+ private void updateAgvLocMast(AgvLocMast locMast, String locSts, short type) {
locMast.setLocSts(locSts);
locMast.setLocType2(type);
+ locMast.setModiTime(new Date());
agvLocMastService.updateById(locMast);
}
/*
鏇存柊婧愮珯鐐逛俊鎭�
*/
- private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts){
- if(!Cools.isEmpty(agvBasDevp)){
+ private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts) {
+ if (!Cools.isEmpty(agvBasDevp)) {
agvBasDevp.setLocSts(locSts);
agvBasDevpService.updateById(agvBasDevp);
}
@@ -777,16 +1610,16 @@
/*
鏇存柊婧愮珯鐐逛俊鎭拰搴撲綅璐ф灦绫诲瀷
*/
- private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType){
- if(!Cools.isEmpty(agvBasDevp)){
+ private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType) {
+ if (!Cools.isEmpty(agvBasDevp)) {
agvBasDevp.setLocSts(locSts);
agvBasDevp.setLocType2(continerType);
agvBasDevpService.updateById(agvBasDevp);
}
}
- private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType, String containerCode){
- if(!Cools.isEmpty(agvBasDevp)){
+ private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType, String containerCode) {
+ if (!Cools.isEmpty(agvBasDevp)) {
agvBasDevp.setLocSts(locSts);
agvBasDevp.setLocType2(continerType);
agvBasDevp.setBarcode(containerCode);
@@ -797,19 +1630,31 @@
/*
鐢熸垚宸ヤ綔妗f槑缁�
*/
- private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq){
+ private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo, String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq, Integer processSts) {
Mat mat = matService.selectByMatnr(matnr);
if (Cools.isEmpty(mat)) {
throw new CoolException(matnr + "鍟嗗搧缁存姢澶辫触");
}
+ OrderDetl orderDetl = orderDetlService.selectItem(orderNo, mat.getMatnr(), batch, csocode);
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(orderNo, mat.getMatnr(), null, csocode);
+ if (orderDetl == null) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
+ }
+ }
AgvWrkDetl wrkDetl = new AgvWrkDetl();
wrkDetl.sync(mat);
+ if (orderDetl != null) {
+ wrkDetl.setWeight(orderDetl.getWeight());
+ wrkDetl.setVolume(orderDetl.getVolume());
+ }
wrkDetl.setWrkNo(wrkNo);
wrkDetl.setOrderNo(orderNo);
wrkDetl.setIoTime(now);
wrkDetl.setBatch(batch);
wrkDetl.setAnfme(anfme); // 鏁伴噺
wrkDetl.setSuppCode(zpallet); // 璐ф灦鏉$爜
+ wrkDetl.setProcessSts(processSts);
wrkDetl.setAppeUser(userId);
wrkDetl.setAppeTime(now);
wrkDetl.setModiUser(userId);
@@ -826,7 +1671,7 @@
鐢熸垚宸ヤ綔妗f槑缁�
*/
@Deprecated
- private void createWrkDetlReWrite(List<AgvWaitPakin> agvWaitPakinList, AgvWrkMast wrkMast, Long userId){
+ private void createWrkDetlReWrite(List<AgvWaitPakin> agvWaitPakinList, AgvWrkMast wrkMast, Long userId) {
Date now = new Date();
agvWaitPakinList.stream().forEach(agvWaitPakin -> {
Mat mat = matService.selectByMatnr(agvWaitPakin.getMatnr());
@@ -835,6 +1680,9 @@
}
AgvWrkDetl wrkDetl = new AgvWrkDetl();
wrkDetl.sync(mat);
+ wrkDetl.setWeight(agvWaitPakin.getWeight());
+ wrkDetl.setVolume(agvWaitPakin.getVolume());
+
wrkDetl.setWrkNo(wrkMast.getWrkNo());
wrkDetl.setOrderNo(agvWaitPakin.getOrderNo());
wrkDetl.setIoTime(now);
@@ -854,7 +1702,7 @@
/*
鐢熸垚宸ヤ綔妗�
*/
- private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType){
+ private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType, Integer pltType) {
AgvWrkMast wrkMast = new AgvWrkMast();
//宸ヤ綔鐘舵��
wrkMast.setWrkSts(wrkSts);
@@ -876,6 +1724,13 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
+ if (!Cools.isEmpty(locNo) && Cools.isEmpty(pltType)) {
+ AgvLocMast agvLocMast = agvLocMastService.selectById(locNo);
+ pltType = agvLocMast.getPltType();
+ }
+ wrkMast.setPltType(pltType);
+ wrkMast.setLogErrMemo("createWaitPainWrkMastStart");
+
if (!agvWrkMastService.insertByIncrease(wrkMast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
@@ -884,19 +1739,66 @@
//鏆傚瓨浣嶄换鍔�+1
addInQty(locNo);
- wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo));
+ wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no", sourceLocNo));
return wrkMast;
}
- private boolean isPakOut(String locNo, TaskDto taskDto){
+ /*
+ 鐢熸垚宸ヤ綔妗�
+ */
+ private AgvWrkMast createWrkMastV2(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType, Integer pltType, String ctnNo) {
+ AgvWrkMast wrkMast = new AgvWrkMast();
+ //宸ヤ綔鐘舵��
+ wrkMast.setWrkSts(wrkSts);
+ //鍏ュ嚭搴撶被鍨�
+ wrkMast.setIoType(ioType);
+ wrkMast.setIoTime(now);
+ //浼樺厛绾�
+ wrkMast.setIoPri(300.0);
+ //婧愮珯鐐�
+ wrkMast.setSourceLocNo(sourceLocNo);
+ //鐩爣绔欑偣
+ wrkMast.setLocNo(locNo);
+ //璐ф灦缂栫爜
+ wrkMast.setBarcode(barcode);
+ //璐ф灦绫诲瀷
+ wrkMast.setWhsType(containerType);
+
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ if (!Cools.isEmpty(locNo) && Cools.isEmpty(pltType)) {
+ AgvLocMast agvLocMast = agvLocMastService.selectById(locNo);
+ pltType = agvLocMast.getPltType();
+ }
+ wrkMast.setPltType(pltType);
+ wrkMast.setLogErrMemo("createWaitPainWrkMastStart");
+ wrkMast.setCtnNo(ctnNo);
+
+
+ if (!agvWrkMastService.insertByIncrease(wrkMast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ //鏆傚瓨浣嶄换鍔�+1
+ addInQty(locNo);
+
+ wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no", sourceLocNo));
+
+ return wrkMast;
+ }
+
+
+ private boolean isPakOut(String locNo, TaskDto taskDto) {
Double allAnfme = agvLocDetlService.selectSumAnfmeByLocNo(locNo);
Double pakOutAnfme = 0.0;
- for (LocDto locDto : taskDto.getLocDtos()){
+ for (LocDto locDto : taskDto.getLocDtos()) {
pakOutAnfme += locDto.getAnfme();
}
- if(allAnfme > pakOutAnfme){
+ if (allAnfme > pakOutAnfme) {
return false;
}
return true;
@@ -906,19 +1808,19 @@
AGV鐢熸垚鍑哄簱宸ヤ綔妗e悗淇敼璁㈠崟淇℃伅
TODO 涓庡洓椤瑰簱鐢熸垚鍑哄簱宸ヤ綔妗e悗淇敼璁㈠崟淇℃伅鏁村悎鍒颁竴璧�
*/
- private void modifyOrderDetl(LocDto locDto, Long userId){
+ private void modifyOrderDetl(LocDto locDto, Long userId) {
if (!BaseController.isJSON(locDto.getOrderNo())) {
//闈炲悎骞跺嚭搴�
- OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq());
+ OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq());
if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
+ orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null, locDto.getCsocode(), locDto.getIsoseq());
}
- if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(),locDto.getCsocode(),locDto.getIsoseq())) {
+ if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(), locDto.getCsocode(), locDto.getIsoseq())) {
throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
}
orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
- }else {
+ } else {
//鍚堝苟鍑哄簱
List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
@@ -928,20 +1830,20 @@
Double orderAnfme;
for (OrderDto orderDto : orderDtoList) {
- OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq());
+ OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq());
if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
+ orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null, locDto.getCsocode(), locDto.getIsoseq());
}
orderAnfme = orderDetl.getAnfme() - orderDetl.getQty();
- if(locAnfme > orderAnfme){
+ if (locAnfme > orderAnfme) {
locAnfme -= orderAnfme;
- }else {
+ } else {
orderAnfme = locAnfme;
}
- if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderAnfme,orderDetl.getThreeCode(),orderDetl.getDeadTime())) {
+ if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderAnfme, orderDetl.getThreeCode(), orderDetl.getDeadTime())) {
throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
}
orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
@@ -961,29 +1863,31 @@
}
if (wrkMast.getIoType() == 108) {
wrkMast.setIoType(111);
- agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
- } else if(wrkMast.getIoType() == 111) {
+ wrkMast.setModiTime(new Date());
+ agvWrkMastService.update(wrkMast, new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
+ } else if (wrkMast.getIoType() == 111) {
wrkMast.setIoType(108);
- agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
+ wrkMast.setModiTime(new Date());
+ agvWrkMastService.update(wrkMast, new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
}
}
- private void addInQty(String devno){
+ private void addInQty(String devno) {
AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devno);
- if(!Cools.isEmpty(agvBasDevp)){
- if(Cools.isEmpty(agvBasDevp.getInQty())){
+ if (!Cools.isEmpty(agvBasDevp)) {
+ if (Cools.isEmpty(agvBasDevp.getInQty())) {
agvBasDevp.setInQty(1);
- }else {
+ } else {
agvBasDevp.setInQty(agvBasDevp.getInQty() + 1);
}
}
}
- private int getContainerTypeByloc(String locNo){
+ private int getContainerTypeByloc(String locNo) {
- return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no",locNo)).getLocType2();
+ return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo)).getLocType2();
}
--
Gitblit v1.9.1