From 2446d71ec7c273625cb21878a6638934dd79fa53 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 16 七月 2025 09:35:54 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 78 ++++++++++++++++++++++++++++++++-------
1 files changed, 64 insertions(+), 14 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 93c21e4..ae419d8 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -15,6 +15,7 @@
import com.zy.asrs.entity.result.FindLocNoAttributeVo;
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.service.*;
+import com.zy.asrs.utils.MatUtils;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.*;
@@ -189,6 +190,7 @@
public void startupFullTakeStore(StockOutParam param, Long userId) {
// 鐩爣绔欑偣鐘舵�佹娴�
BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+
// 鑾峰彇搴撲綅鏄庣粏
List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
@@ -208,7 +210,7 @@
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
// 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
- stockOut(staNo, locDetlDtos, null, userId, null);
+ stockOut(staNo, locDetlDtos, null, userId, null, param.getItemId());
} else {
throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
}
@@ -297,7 +299,7 @@
@Override
@Transactional
- public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, String checkOrderNo) {
+ public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, String checkOrderNo, String itemId) {
Date now = new Date();
// 鍚堝苟鍚岀被椤�
Set<String> locNos = new HashSet<>();
@@ -324,15 +326,6 @@
ioType = dto.isAll() ? 101 : 103;
} else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) {
ioType = 107;
- if (Cools.isEmpty(checkOrderNo)) {
- checkOrderNo = DateUtils.createTimeStamp();
- InventoryCheckOrder checkOrder = new InventoryCheckOrder();
- checkOrder.setCreateBy(userId);
- checkOrder.setStatus("1");
- checkOrder.setCreateTime(new Date());
- checkOrder.setOrderNo(checkOrderNo);
- checkOrderService.insert(checkOrder);
- }
}
assert ioType != null;
// 鑾峰彇搴撲綅
@@ -345,9 +338,38 @@
// }
// 鑾峰彇璺緞
- StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
+ List<StaDesc> staDescs = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
+ StaDesc staDesc = staDescs.get(0);
+ if (locMast.getCrnNo() == 1) {
+ int finalCrnStn = 1016;
+ if (locMast.getRow1() <= 3) {
+ finalCrnStn = 1013;
+ }
+
+ for (StaDesc desc : staDescs) {
+ if (desc.getCrnStn() == finalCrnStn) {
+ staDesc = desc;
+ break;
+ }
+ }
+ }
+
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+
+ if (ioType == 107) {
+ if (Cools.isEmpty(checkOrderNo)) {
+ checkOrderNo = DateUtils.createTimeStamp() + "_" + workNo;
+ InventoryCheckOrder checkOrder = new InventoryCheckOrder();
+ checkOrder.setCreateBy(userId);
+ checkOrder.setStatus("1");
+ checkOrder.setArea(String.valueOf(workNo));
+ checkOrder.setCreateTime(new Date());
+ checkOrder.setOrderNo(checkOrderNo);
+ checkOrderService.insert(checkOrder);
+ }
+ }
+
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
@@ -369,6 +391,7 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
+ wrkMast.setPacked(itemId);
if (!wrkMastService.insert(wrkMast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + dto.getLocNo());
}
@@ -392,7 +415,11 @@
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
if (ioType == 107) {
- List<InventoryCheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrderNo).eq("loc_no", dto.getLocNo()));
+ List<InventoryCheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+ .eq("order_no", checkOrderNo)
+ .eq("loc_no", dto.getLocNo())
+ .eq("batch", wrkDetl.getBatch())
+ );
if (checkOrderDetls != null && !checkOrderDetls.isEmpty()) {
throw new CoolException("璇ュ簱浣嶇殑鐩樼偣浠诲姟宸茬粡娣诲姞鍒颁簡璇ュ簱浣嶄腑");
}
@@ -403,6 +430,8 @@
checkOrderDetl.setBatch(detlDto.getLocDetl().getBatch());
checkOrderDetl.setLocNo(detlDto.getLocDetl().getLocNo());
checkOrderDetl.setAnfme(detlDto.getLocDetl().getAnfme());
+ checkOrderDetl.setArea(String.valueOf(workNo));
+ checkOrderDetl.setCwarehouseid(wrkDetl.getStandby1());
checkOrderDetl.setIoTime(new Date());
checkOrderDetl.setStatus("0");
checkOrderDetlService.insert(checkOrderDetl);
@@ -479,6 +508,19 @@
, locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3());
}
+
+ Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>()
+ .eq("loc_no", wrkMast.getSourceLocNo())
+ .eq("matnr", orderDetlPakout.getMatnr());
+ if (!Cools.isEmpty(locDto.getBatch())) {
+ wrapper.eq("batch", locDto.getBatch());
+ }
+ if (!Cools.isEmpty(orderDetlPakout.getSpecs())) {
+ wrapper.eq("specs", orderDetlPakout.getSpecs());
+ }
+
+ LocDetl locDetl = locDetlService.selectOne(wrapper);
+
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(orderDetlPakout);
wrkDetl.setZpallet(wrkMast.getBarcode());
@@ -492,6 +534,14 @@
wrkDetl.setModiTime(now);
wrkDetl.setModiUser(userId);
wrkDetl.setThreeCode(orderDetlPakout.getId() + "");
+ wrkDetl.setSupp(orderPakout.getCstmrName());
+ wrkDetl.setStockNum(locDetl.getAnfme());//搴撳瓨
+ wrkDetl.setStockNum2(locDetl.getWeight());//杈呭簱瀛�
+ wrkDetl.setKpCstmrName(orderPakout.getKpCstmrName());
+
+ //璁$畻杈呮暟閲�
+ Double weight = MatUtils.calcWeight(wrkDetl.getMatnr(), wrkDetl.getAnfme());
+ wrkDetl.setWeight(weight);
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
@@ -740,7 +790,7 @@
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
if (locMast.getLocSts().equals("F")) {
// 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
- stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId, param.getCheckId());
+ stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId, param.getCheckId(), null);
} else {
throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
}
--
Gitblit v1.9.1