From 7842982e37a16836ce06ea0a35c46e5d36642682 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期一, 25 十二月 2023 10:23:03 +0800
Subject: [PATCH] 合并订单
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 70 ++++++++++++++++-------
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 71 ++++++++++-------------
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 8 ++
src/main/java/com/zy/asrs/controller/OutController.java | 18 ------
4 files changed, 87 insertions(+), 80 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 0b5993a..3edf6e9 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -238,24 +238,6 @@
agvTaskDtos.add(taskDto);
}
-// //瀵绘壘绌虹珯鐐逛綅缃�
-// AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(locDto.getAgvStaNo());
-// if(Cools.isEmpty(agvBasDevp)){
-// //濡傛灉娌℃湁鎵惧埌绌虹珯鐐癸紝鍒欑敓鎴愬噯澶囦换鍔�
-// //TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getAgvStaNo(), locDto);
-// //agvTaskDtos.add(taskDto);
-// //濡傛灉搴撲綅瀛樺湪娣疯浇
-//
-// return;
-// }
-//// agvBasDevp.setLocSts("S");
-//// agvBasDevpService.updateById(agvBasDevp);
-// agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null);
-// //TaskDto taskDto = new TaskDto(locDto.getLocNo(), agvBasDevp.getDevNo(), locDto);
-// taskDto.setAgvStaNo(agvBasDevp.getDevNo());
-
- //agvTaskDtos.add(taskDto);
-
}
/*
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 ac9a84a..2fcb2b6 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -138,17 +138,34 @@
AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,false);
//鐢熸垚宸ヤ綔妗f槑缁�
taskDto.getLocDtos().forEach(locDto -> {
- //鏄庣粏妗f墍闇�鍙傛暟
- createWrkDetlReWrite(locDto.getMatnr(),
- wrkMast.getWrkNo(),
- locDto.getOrderNo(),
- locDto.getBatch(),
- locDto.getAnfme(),
- locDto.getContainerCode(),
- now,
- userId,
- locDto.getCsocode(),
- locDto.getIsoseq());
+ 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());
+ }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());
+ });
+ }
//淇敼璁㈠崟淇℃伅
modifyOrderDetl(locDto, userId);
@@ -221,13 +238,6 @@
@Transactional
public void locCheckOut(StockOutParam param, Long userId) {
String station = param.getStation();
-// List<AgvBasDevp> agvBasDevpList = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>()
-// .eq("station_code", station)
-// .eq("loc_sts","O"));
-//
-// if(param.getLocDetls().size() > agvBasDevpList.size()){
-// throw new CoolException("褰撳墠绔欑偣鍙敤缂撳瓨璐ф灦鏁伴噺涓�" + agvBasDevpList.size() + ",灏戜簬闇�瑕佺洏鐐瑰嚭搴撳簱浣嶆暟閲忥紝璇烽噸鏂伴�夋嫨鐩樼偣搴撲綅");
-// }
List<TaskDto> taskDtos = new ArrayList<>();
param.getLocDetls().forEach(locDetl -> {
@@ -263,26 +273,6 @@
//locSts = ioType == 101 ? "S" : "Q";
updateAgvBasDevp(agvBasDevpService.selectById(wrkMast.getLocNo()),"S");
});
-
-
-// param.getLocDetls().forEach(locDetl -> {
-// AgvLocMast agvLocMast = agvLocMastService.selectById(locDetl.getLocNo());
-// AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", locDetl.getLocNo()));
-// AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>()
-// .eq("station_code", station)
-// .eq("loc_sts","O"));
-// Date now = new Date();
-//
-// //鐢熸垚宸ヤ綔鍏�
-// AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getSuppCode(), now, userId,false);
-// //鐢熸垚宸ヤ綔鏄庣粏妗�
-// createWrkDetlReWrite(locDetl.getMatnr(),wrkMast.getWrkNo(),null,locDetl.getBatch(),locDetl.getCount(),wrkMast.getBarcode(),now,userId,agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
-// //淇敼搴撲綅淇℃伅
-// updateAgvLocMast(agvLocMast,"P");
-// //淇敼绔欑偣淇℃伅
-// updateAgvBasDevp(agvBasDevp,"S");
-//
-// });
}
@@ -751,8 +741,9 @@
orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
}
- if(locAnfme > orderDetl.getAnfme()){
- orderAnfme = orderDetl.getAnfme();
+ orderAnfme = orderDetl.getAnfme() - orderDetl.getQty();
+
+ if(locAnfme > orderAnfme){
locAnfme -= orderAnfme;
}else {
orderAnfme = locAnfme;
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index b17ee3e..00fe50d 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -123,7 +123,13 @@
double anfme = locDetl.getAnfme();
int ioType = anfme > issued ? 103 : 101;
anfme = anfme > issued ? issued : anfme;
- LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNo, anfme);
+
+ //鐢ㄤ簬鏄剧ず宸ヤ綔鏄庣粏妗g殑璁㈠崟鍙�
+ String orderNoWrkDtel = Utils.getOrderNo(orderNo,anfme);
+ //鏇存柊璁㈠崟鏁伴噺
+ orderNo = Utils.orderMergeUpdate(orderNo,anfme);
+
+ LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNoWrkDtel, anfme);
List<Integer> outSite = basDevpService.getAvailableOutSite(101);
List<Integer> pickOutSite = basDevpService.getAvailableOutSite(103);
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 0e4e957..3680f51 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -527,26 +527,53 @@
}
Mat mat = matService.selectByMatnr(locDto.getMatnr());
assert mat != null;
- WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.sync(mat);
- wrkDetl.setZpallet(wrkMast.getBarcode());
- wrkDetl.setIoTime(now);
- wrkDetl.setWrkNo(workNo);
- wrkDetl.setBatch(locDto.getBatch());
- wrkDetl.setOrderNo(locDto.getOrderNo());
- wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
- wrkDetl.setAppeTime(now);
- wrkDetl.setAppeUser(userId);
- wrkDetl.setModiTime(now);
- wrkDetl.setModiUser(userId);
- wrkDetl.setSuppCode(locDto.getContainerCode());
- wrkDetl.setThreeCode(locDto.getCsocode());
- wrkDetl.setDeadTime(locDto.getIsoseq());
- if (!wrkDetlService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+
+ if (!BaseController.isJSON(locDto.getOrderNo())) {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(mat);
+ wrkDetl.setZpallet(wrkMast.getBarcode());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setBatch(locDto.getBatch());
+ wrkDetl.setOrderNo(locDto.getOrderNo());
+ wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setSuppCode(locDto.getContainerCode());
+ wrkDetl.setThreeCode(locDto.getCsocode());
+ wrkDetl.setDeadTime(locDto.getIsoseq());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
+ generateAgvWaitpakin(wrkDetl);
+ }else {
+ List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
+ orderDtoList.forEach(orderDto -> {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(mat);
+ wrkDetl.setZpallet(wrkMast.getBarcode());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setBatch(locDto.getBatch());
+ wrkDetl.setOrderNo(orderDto.getOrderNo());
+ wrkDetl.setAnfme(orderDto.getAnfme()); // 鏁伴噺
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setSuppCode(locDto.getContainerCode());
+ wrkDetl.setThreeCode(locDto.getCsocode());
+ wrkDetl.setDeadTime(locDto.getIsoseq());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
+ generateAgvWaitpakin(wrkDetl);
+ });
}
- //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
- generateAgvWaitpakin(wrkDetl);
// 淇敼璁㈠崟鏄庣粏
if (!BaseController.isJSON(locDto.getOrderNo())) {
@@ -573,8 +600,9 @@
orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
}
- if(locAnfme > orderDetl.getAnfme()){
- orderAnfme = orderDetl.getAnfme();
+ orderAnfme = orderDetl.getAnfme() - orderDetl.getQty();
+
+ if(locAnfme > orderAnfme){
locAnfme -= orderAnfme;
}else {
orderAnfme = locAnfme;
--
Gitblit v1.9.1