From 55eb3d480594f4c0dd382eaeeb8548bf911d6ad7 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 23 十月 2025 08:28:08 +0800
Subject: [PATCH] 13
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 161 +++++++++++++++++++++++++++--------------------------
1 files changed, 82 insertions(+), 79 deletions(-)
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 8e69163..0897fc2 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -69,9 +69,13 @@
@Autowired
private SnowflakeIdWorker snowflakeIdWorker;
@Autowired
- private OrderService orderService;
+ private OrderPakoutService orderPakoutService;
@Autowired
- private OrderDetlService orderDetlService;
+ private OrderPakinService orderPakinService;
+ @Autowired
+ private OrderDetlPakoutService orderDetlPakoutService;
+ @Autowired
+ private OrderDetlPakinService orderDetlPakinService;
@Autowired
private WcsController wcsController;
@Autowired
@@ -80,8 +84,6 @@
private SlaveProperties slaveProperties;
@Autowired
private WaitPakinService waitPakinService;
- @Autowired
- private InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
@Override
@Transactional
@@ -174,7 +176,7 @@
List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
- LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+ LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getSku());
if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
}
}
@@ -184,10 +186,10 @@
if (staNo.getDevNo() == 1135 && locMast.getLocType1() == 2) {
throw new CoolException("鎵�閫夊簱浣嶄笉鏄綆搴撲綅鏃犳硶璋冩嫧锛屽簱浣嶅彿锛歿}" + locMast.getLocNo());
}
- if(staNo.getDevNo()>=1100){
+ if (staNo.getDevNo() >= 1100) {
// 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
stockOut(staNo, locDetlDtos, null, userId);
- }else {
+ } else {
stockOutSXK(staNo, locDetlDtos, null, userId);
}
} else {
@@ -386,19 +388,6 @@
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
- InventoryCheckOrderDetl inventoryCheckOrderDetl = new InventoryCheckOrderDetl();
- inventoryCheckOrderDetl.setOrderNo(param.getOrderNo());
- inventoryCheckOrderDetl.setMatnr(detlDto.getLocDetl().getMatnr());
- inventoryCheckOrderDetl.setMaktx(detlDto.getLocDetl().getMaktx());
- inventoryCheckOrderDetl.setBatch(detlDto.getLocDetl().getBatch());
- inventoryCheckOrderDetl.setLocNo(detlDto.getLocDetl().getLocNo());
- inventoryCheckOrderDetl.setArea(detlDto.getLocDetl().getOrigin());
- inventoryCheckOrderDetl.setAnfme(detlDto.getLocDetl().getAnfme());
- inventoryCheckOrderDetl.setIoTime(now);
- inventoryCheckOrderDetl.setStatus("1");
- if (!inventoryCheckOrderDetlService.insert(inventoryCheckOrderDetl)) {
- throw new CoolException("淇濆瓨鐩樼偣鏄庣粏澶辫触");
- }
if (detlDto.getCount() == null || detlDto.getCount() <= 0.0D) {
continue;
@@ -485,12 +474,12 @@
if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) {
continue;
}
- OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
- if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
+ OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
+ if (orderDetlPakout == null) {
+ orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
}
WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.sync(orderDetl);
+ wrkDetl.sync(orderDetlPakout);
wrkDetl.setZpallet(wrkMast.getBarcode());
wrkDetl.setIoTime(now);
wrkDetl.setWrkNo(workNo);
@@ -505,10 +494,10 @@
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
// 淇敼璁㈠崟鏄庣粏
- if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
+ if (!orderDetlPakoutService.increaseWorkQtyById(orderDetlPakout.getId(), locDto.getAnfme())) {
throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
}
- orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+ orderPakoutService.updateSettle(orderDetlPakout.getOrderId(), 2L, userId);
}
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(taskDto.getLocNo());
@@ -538,9 +527,10 @@
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
List<LocMast> locMasts = new ArrayList<>();
- if ((locMast.getBay1() >= 3 && locMast.getBay1() <= 6) ) {
+ if ((locMast.getBay1() >= 3 && locMast.getBay1() <= 6)) {
locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
.eq("row1", locMast.getBay1())
+ .in("bay1", 3, 4, 5, 6)
.eq("crn_no", 7)
.eq("loc_type1", locMast.getLocType1())
.orderBy("bay1", true));
@@ -592,12 +582,12 @@
if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) {
continue;
}
- OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
- if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
+ OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
+ if (orderDetlPakout == null) {
+ orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
}
WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.sync(orderDetl);
+ wrkDetl.sync(orderDetlPakout);
wrkDetl.setZpallet(wrkMast.getBarcode());
wrkDetl.setIoTime(now);
wrkDetl.setWrkNo(workNo);
@@ -612,10 +602,10 @@
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
// 淇敼璁㈠崟鏄庣粏
- if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
+ if (!orderDetlPakoutService.increaseWorkQty(orderDetlPakout.getOrderId(), orderDetlPakout.getMatnr(), orderDetlPakout.getBatch(), locDto.getAnfme())) {
throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
}
- orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+ orderPakoutService.updateSettle(orderDetlPakout.getOrderId(), 2L, userId);
}
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(taskDto.getLocNo());
@@ -911,7 +901,7 @@
List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
- LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+ LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getSku());
if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
}
}
@@ -939,7 +929,7 @@
List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
- LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+ LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getSku());
if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
}
}
@@ -1057,19 +1047,6 @@
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
- InventoryCheckOrderDetl inventoryCheckOrderDetl = new InventoryCheckOrderDetl();
- inventoryCheckOrderDetl.setOrderNo(param.getOrderNo());
- inventoryCheckOrderDetl.setMatnr(detlDto.getLocDetl().getMatnr());
- inventoryCheckOrderDetl.setMaktx(detlDto.getLocDetl().getMaktx());
- inventoryCheckOrderDetl.setBatch(detlDto.getLocDetl().getBatch());
- inventoryCheckOrderDetl.setLocNo(detlDto.getLocDetl().getLocNo());
- inventoryCheckOrderDetl.setArea(detlDto.getLocDetl().getOrigin());
- inventoryCheckOrderDetl.setAnfme(detlDto.getLocDetl().getAnfme());
- inventoryCheckOrderDetl.setIoTime(now);
- inventoryCheckOrderDetl.setStatus("1");
- if (!inventoryCheckOrderDetlService.insert(inventoryCheckOrderDetl)) {
- throw new CoolException("淇濆瓨鐩樼偣鏄庣粏澶辫触");
- }
if (detlDto.getCount() == null || detlDto.getCount() <= 0.0D) {
continue;
@@ -1195,7 +1172,7 @@
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
- if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
+ if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 5 || wrkMast.getWrkSts() == 14 || wrkMast.getWrkSts() == 15) {
throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
}
// 鍏ュ簱 + 搴撲綅杞Щ
@@ -1225,7 +1202,7 @@
if (Cools.isEmpty(locMast)) {
throw new CoolException("搴撲綅涓嶅瓨鍦�");
}
- if (!(locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O"))) {
+ if (!(locMast.getLocSts().equals("P") || locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O"))) {
throw new CoolException("褰撳墠搴撲綅涓嶅彲璋冩暣锛佸簱浣嶇姸鎬侊細" + locMast.getLocSts$());
}
@@ -1249,7 +1226,7 @@
if (!locDetl.getAnfme().equals(adjust.getCount())) {
// todo 鐩樼偣璁板綍
// 淇敼搴撳瓨
- if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
+ if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getSku())) {
throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
}
// 淇濆瓨璋冩暣璁板綍
@@ -1299,7 +1276,8 @@
Mat mat = matService.selectByMatnr(adjust.getMatnr());
LocDetl locDetl = new LocDetl();
locDetl.sync(mat);
- locDetl.setBatch(adjust.getBatch());
+ locDetl.setDanger(adjust.getDanger());
+ locDetl.setSku(adjust.getBatch());
locDetl.setLocNo(locMast.getLocNo());
locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
@@ -1336,6 +1314,9 @@
}
locMast.setModiUser(userId);
locMast.setModiTime(now);
+ if (locMast.getLocSts().equals("O")) {
+ locMast.setBarcode("");
+ }
if (!locMastService.updateById(locMast)) {
throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
}
@@ -1418,26 +1399,26 @@
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
for (WrkDetl wrkDetl : wrkDetls) {
if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
- if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
+ if (!orderDetlPakoutService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
}
//淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
boolean flag = true;
- List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", wrkDetl.getOrderNo()));
- for (OrderDetl orderDetl : orderDetls) {
- if (orderDetl.getWorkQty() > 0) {
+ List<OrderDetlPakout> orderDetlPakouts = orderDetlPakoutService.selectList(new EntityWrapper<OrderDetlPakout>().eq("order_no", wrkDetl.getOrderNo()));
+ for (OrderDetlPakout orderDetlPakout : orderDetlPakouts) {
+ if (orderDetlPakout.getWorkQty() > 0) {
flag = false;
}
}
if (flag) {
- Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo()));
+ OrderPakout order = orderPakoutService.selectOne(new EntityWrapper<OrderPakout>().eq("order_no", wrkDetl.getOrderNo()));
if (!Cools.isEmpty(order) && order.getSettle() == 2) {
order.setSettle(1L);
order.setUpdateBy(userId);
order.setUpdateTime(now);
}
- if (!orderService.update(order, new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo()))) {
+ if (!orderPakoutService.update(order, new EntityWrapper<OrderPakout>().eq("order_no", wrkDetl.getOrderNo()))) {
throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
}
}
@@ -1528,7 +1509,7 @@
// 鑾峰彇鐩爣绔�
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
.eq("type_no", wrkMast.getIoType() - 50)
- .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+ .eq("stn_no", wrkMast.getSourceStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
.eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
StaDesc staDesc = staDescService.selectOne(wrapper);
if (Cools.isEmpty(staDesc)) {
@@ -1700,7 +1681,7 @@
List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
- LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+ LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getSku());
if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
}
}
@@ -1721,7 +1702,7 @@
List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
- LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+ LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getSku());
if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
}
}
@@ -1770,30 +1751,50 @@
LocMast locMast = locMastService.selectById(dto.getLocNo());
List<LocMast> locMasts = new ArrayList<>();
- if ((locMast.getBay1() >= 1 && locMast.getBay1() <= 2) || (locMast.getBay1() >= 6 && locMast.getBay1() <= 7 && locMast.getRow1() != 36 && locMast.getRow1() != 29) || (locMast.getBay1() >= 11 && locMast.getBay1() <= 12)) {
+// if ((locMast.getBay1() >= 1 && locMast.getBay1() <= 2) || (locMast.getBay1() >= 6 && locMast.getBay1() <= 7 && locMast.getRow1() != 36 && locMast.getRow1() != 29) || (locMast.getBay1() >= 11 && locMast.getBay1() <= 12)) {
+// locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+// .eq("gro1", locMast.getGro1())
+// .eq("crn_no", 7)
+// .eq("loc_type1", locMast.getLocType1())
+// .orderBy("bay1", false));
+// } else {
+// locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+// .eq("gro1", locMast.getGro1())
+// .eq("crn_no", 7)
+// .eq("loc_type1", locMast.getLocType1())
+// .orderBy("bay1", true));
+// }
+// for (LocMast locMast1 : locMasts) {
+// if (locMast1.getLocNo().equals(dto.getLocNo())) {
+// break;
+// }
+// if (locMast1.getLocSts().equals("X")) {
+// throw new CoolException(dto.getLocNo() + "搴撲綅鍓嶆柟鏈夐攣瀹氬簱浣嶏紝绂佹鍑哄簱");
+// }
+// if (locMast1.getLocSts().equals("F")) {
+// moveLocForDeepLoc(locMast1);
+// }
+// }
+ if ((locMast.getBay1() >= 3 && locMast.getBay1() <= 6)) {
locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("gro1", locMast.getGro1())
- .eq("crn_no", 7)
- .eq("loc_type1", locMast.getLocType1())
- .orderBy("bay1", false));
- } else {
- locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("gro1", locMast.getGro1())
+ .eq("row1", locMast.getBay1())
+ .in("bay1", 3, 4, 5, 6)
.eq("crn_no", 7)
.eq("loc_type1", locMast.getLocType1())
.orderBy("bay1", true));
- }
- for (LocMast locMast1 : locMasts) {
- if (locMast1.getLocNo().equals(dto.getLocNo())) {
- break;
- }
- if (locMast1.getLocSts().equals("X")) {
- throw new CoolException(dto.getLocNo() + "搴撲綅鍓嶆柟鏈夐攣瀹氬簱浣嶏紝绂佹鍑哄簱");
- }
- if (locMast1.getLocSts().equals("F")) {
- moveLocForDeepLoc(locMast1);
+ for (LocMast locMast1 : locMasts) {
+ if (locMast1.getLocNo().equals(locMast.getLocNo())) {
+ break;
+ }
+ if (locMast1.getLocSts().equals("X")) {
+ throw new CoolException(locMast.getLocNo() + "搴撲綅鍓嶆柟鏈夐攣瀹氬簱浣嶏紝绂佹鍑哄簱");
+ }
+ if (locMast1.getLocSts().equals("F")) {
+ locMast = locMast1;
+ }
}
}
+
Integer outSta = staNo.getDevNo();
// //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202
@@ -1896,6 +1897,7 @@
wrkMast.setEmptyMk("Y"); // 绌烘澘
wrkMast.setBarcode(wrkMastold.getBarcode()); // 鎵樼洏鐮�
wrkMast.setLinkMis("N");
+ wrkMast.setPltType(wrkMastold.getWrkNo());
wrkMast.setAppeTime(new Date());
wrkMast.setModiTime(new Date());
boolean res = wrkMastService.insert(wrkMast);
@@ -1958,6 +1960,7 @@
wrkMast.setEmptyMk(wrkDetls != null ? "N" : "Y"); // 绌烘澘
wrkMast.setBarcode(wrkMastold.getBarcode()); // 鎵樼洏鐮�
wrkMast.setLinkMis("N");
+ wrkMast.setPltType(wrkMastold.getWrkNo());
wrkMast.setAppeTime(new Date());
wrkMast.setModiTime(new Date());
boolean res = wrkMastService.insert(wrkMast);
--
Gitblit v1.9.1