From 029ffbf20db7196d4f460bc741fd5f36a80689ae Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期四, 15 一月 2026 19:55:45 +0800
Subject: [PATCH] 空板回库称重再校验
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 219 +++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 165 insertions(+), 54 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 8ecbbfc..91df095 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.enums.LocStsType;
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.entity.result.FindLocNoAttributeVo;
+import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.asrs.utils.Utils;
@@ -24,9 +25,7 @@
import com.zy.common.properties.SlaveProperties;
import com.zy.common.service.CommonService;
import com.zy.common.web.WcsController;
-import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.codec.binary.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -102,6 +101,8 @@
private OrderPakoutService orderPakOutService;
@Autowired
private BasDeviceServiceImpl basDeviceService;
+ @Autowired
+ private WrkMastMapper wrkMastMapper;
@Override
@Transactional
@@ -452,36 +453,50 @@
throw new CoolException("鏈哄彴淇℃伅涓嶅瓨鍦ㄦ垨宸茬鐢紒锛�");
}
- List<LocAroundBind> binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>()
- .eq("dev_no", basDevice.getDevNo())
- .eq("is_default", 1));
+ LocAroundBind binds = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>()
+ .eq("dev_no", basDevice.getDevNo()).orderBy("is_default", false));
- if (Objects.isNull(binds) || binds.isEmpty()) {
+ if (Objects.isNull(binds)) {
throw new CoolException("鏈哄彴鏈缃粯璁ゅ伐浣滀綅锛侊紒");
}
+//
+// Set<String> locs = binds.stream().map(LocAroundBind::getBlocNo).collect(Collectors.toSet());
- Set<String> locs = binds.stream().map(LocAroundBind::getBLocNo).collect(Collectors.toSet());
+// LocMast locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
+// .in("loc_no", locs)
+// .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
+// .orderAsc(Arrays.asList("loc_no")));
+
+// if (Objects.isNull(locMasts)) {
+// binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>()
+// .eq("dev_no", basDevice.getDevNo()));
+//
+// Set<String> nlocs = binds.stream().map(LocAroundBind::getBlocNo).collect(Collectors.toSet());
+//
+// locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
+// .in("loc_no", nlocs)
+// .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
+// .orderAsc(Arrays.asList("loc_no")));
+// if (Objects.isNull(locMasts)) {
+// throw new CoolException("鏆傛棤鍙敤宸ヤ綔浣嶏紒锛�");
+// }
+// }
+
+ LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", binds.getBlocNo()));
+ bLocNo.setLocType(LocStsType.LOC_STS_TYPE_S.type);
+
+ if (!locAroundBindService.updateById(bLocNo)) {
+ throw new CoolException("宸ヤ綅棰勭害澶辫触锛侊紒");
+ }
LocMast locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
- .in("loc_no", locs)
- .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
- .orderAsc(Arrays.asList("loc_no"))
- .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
+ .eq("loc_no", bLocNo.getBlocNo()));
- if (Objects.isNull(locMasts)) {
- binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>()
- .eq("dev_no", basDevice.getDevNo()));
-
- Set<String> nlocs = binds.stream().map(LocAroundBind::getBLocNo).collect(Collectors.toSet());
-
- locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
- .in("loc_no", nlocs)
- .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
- .orderAsc(Arrays.asList("loc_no"))
- .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
- if (Objects.isNull(locMasts)) {
- throw new CoolException("鏆傛棤鍙敤宸ヤ綔浣嶏紒锛�");
- }
+ locMasts.setLocSts(LocStsType.LOC_STS_TYPE_S.type);
+ locMasts.setModiUser(userId);
+ locMasts.setModiTime(now);
+ if (!locMastService.updateById(locMasts)) {
+ throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + locMasts.getLocNo());
}
List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locMasts.getLocNo(), 1);
@@ -533,13 +548,9 @@
wrkDetl.setZpallet(wrkMast.getBarcode());
wrkDetl.setIoTime(now);
wrkDetl.setWrkNo(workNo);
- wrkDetl.setBrand(orderDetl.getBrand());
- wrkDetl.setModel(orderDetl.getModel());
- wrkDetl.setUnit(orderDetl.getUnit());
- wrkDetl.setStandby1(locDto.getStandby1());
- wrkDetl.setBatch(locDto.getBatch());
wrkDetl.setOrderNo(locDto.getOrderNo());
// wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+ wrkDetl.setStandby1(locDto.getStandby1());
LocDetl locDel = locDetlService.selectOne(new EntityWrapper<LocDetl>()
.eq("loc_no", locDto.getLocNo())
.eq("batch", locDto.getBatch())
@@ -548,6 +559,11 @@
if (Objects.isNull(locDel)) {
throw new CoolException("鏁版嵁閿欒锛屽簱瀛樻槑缁嗕笉瀛樺湪锛侊紒");
}
+ wrkDetl.setBrand(locDel.getBrand());
+ wrkDetl.setModel(locDel.getModel());
+ wrkDetl.setUnit(locDel.getUnit());
+ wrkDetl.setSpecs(locDel.getSpecs());
+ wrkDetl.setBatch(locDel.getBatch());
wrkDetl.setAnfme(locDel.getAnfme());
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
@@ -1158,11 +1174,11 @@
locMast.setLocSts("F");
}
}
- locMast.setModiUser(userId);
- locMast.setModiTime(now);
- if (!locMastService.updateById(locMast)) {
- throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
- }
+// locMast.setModiUser(userId);
+// locMast.setModiTime(now);
+// if (!locMastService.updateById(locMast)) {
+// throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+// }
}
@@ -1192,6 +1208,25 @@
locMast.setModiTime(now);
locMast.setModiUser(userId);
locMastService.updateById(locMast);
+ }
+
+ if (!Objects.isNull(wrkMast.getWrkCode())) {
+ LocAroundBind aroundBind = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", wrkMast.getSourceLocNo()));
+ if (!Objects.isNull(aroundBind)) {
+ aroundBind.setLocType(LocStsType.LOC_STS_TYPE_F.type);
+ if (!locAroundBindService.updateById(aroundBind)) {
+ throw new CoolException("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ }
+
+
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
+ if (!Objects.isNull(locMast)) {
+ locMast.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ }
}
// 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
} else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
@@ -1392,16 +1427,28 @@
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
+ if (wrkMast.getWrkSts() != 15) {
+ throw new CoolException("褰撳墠浠诲姟鐘舵�佷笉鑳芥墽琛屾鎿嶄綔锛�");
+ }
+
Integer ioType = wrkMast.getIoType() - 50;
Integer wokNo;
// 鍏ュ嚭搴撶被鍨嬪垽鏂�
- if (wrkMast.getIoType() == 103) {
- ioType = 1;
- } else if (wrkMast.getIoType() == 101) {
+// if (wrkMast.getIoType() == 103) {
+// ioType = 1;
+// } else if (wrkMast.getIoType() == 101) {
+// ioType = 10;
+// }
+ if (Objects.isNull(wrkMast.getIsSuplus())) {
+ throw new CoolException("鍥炲簱绫诲瀷涓嶈兘涓虹┖锛侊紒");
+ }
+
+ if (wrkMast.getIsSuplus() == 0) {
ioType = 10;
+ } else {
+ ioType = 1;
}
wokNo = commonService.getWorkNo(0);
-
// 鑾峰彇鐩爣绔�
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
.eq("type_no", ioType)
@@ -1411,6 +1458,23 @@
if (Cools.isEmpty(staDesc)) {
throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
}
+
+ int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", wrkMast.getBarcode()));
+ if (count >= 2) {
+ throw new CoolException("浠诲姟妗e凡鐢熸垚锛屼笉鍙互閲嶅鐢熸垚鐩稿悓鐨勫瓙浠诲姟锛侊紒");
+ }
+
+ WrkDetl detl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ LocDetl locDetl = new LocDetl();
+ BeanUtils.copyProperties(detl, locDetl);
+ FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl);
+
+ // 婧愮珯鐐圭姸鎬佹娴�
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(Integer.parseInt(wrkMast.getStaNo()), false);
+ sourceStaNo.setLocType1((short) 1);
+ LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+ StartupDto locNo = commonService.getLocNo(1, Integer.parseInt(wrkMast.getStaNo()), findLocNoAttributeVo, locTypeDto);
+
Date now = new Date();
// 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
Integer staNo = staDesc.getCrnStn();
@@ -1422,11 +1486,8 @@
mast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
mast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
mast.setStaNo(staNo + ""); // 鐩爣绔�
- //鍒ゆ柇鏄惁涓洪鏂欏嚭搴�
- if (Objects.isNull(mast.getWrkCode())) {
- mast.setLocNo(mast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
- }
-// mast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+ mast.setSourceLocNo(wrkMast.getLocNo());
+ mast.setLocNo(locNo.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
mast.setModiTime(now);
mast.setModiUser(userId);
if (!wrkMastService.insert(mast)) {
@@ -1436,18 +1497,39 @@
if (Cools.isEmpty(wrkDetls)) {
throw new CoolException("鏁版嵁閿欒锛屼换鍔℃。鏄庣粏涓嶅瓨鍦� 锛侊紒");
}
- wrkDetls.forEach(wrkDetl -> {
- WrkDetl wrkDetl1 = new WrkDetl();
- BeanUtils.copyProperties(wrkDetl, wrkDetl1);
- wrkDetl1.setWrkNo(wokNo);
- if (!wrkDetlService.insert(wrkDetl1)) {
- throw new CoolException("浠诲姟妗f槑缁嗕繚瀛樺け璐ワ紒锛�");
+
+ // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+ LocMast inLoc = locMastService.selectById(mast.getLocNo());
+ inLoc.setLocSts(LocStsType.LOC_STS_TYPE_S.type);
+ inLoc.setModiTime(now);
+ inLoc.setModiUser(userId);
+ if (!locMastService.updateById(inLoc)) {
+ throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+ }
+
+ LocAroundBind aroundBind = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", mast.getSourceLocNo()));
+ if (!Objects.isNull(aroundBind)) {
+ aroundBind.setLocType(LocStsType.LOC_STS_TYPE_R.type);
+ if (!locAroundBindService.updateById(aroundBind)) {
+ throw new CoolException("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
- });
+ }
+
+ //宸ヤ綔绫诲瀷涓�1鏃讹紝鎵嶆坊鍔犳槑缁�
+ if (ioType == 1) {
+ wrkDetls.forEach(wrkDetl -> {
+ WrkDetl wrkDetl1 = new WrkDetl();
+ BeanUtils.copyProperties(wrkDetl, wrkDetl1);
+ wrkDetl1.setWrkNo(wokNo);
+ if (!wrkDetlService.insert(wrkDetl1)) {
+ throw new CoolException("浠诲姟妗f槑缁嗕繚瀛樺け璐ワ紒锛�");
+ }
+ });
+ }
// 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- locMast.setLocSts("Q");
+ locMast.setLocSts("R");
locMast.setModiTime(now);
locMast.setModiUser(userId);
if (!locMastService.updateById(locMast)) {
@@ -1459,7 +1541,6 @@
if (!wrkMastService.updateById(wrkMast)) {
throw new CoolException("浠诲姟妗f洿鏂板け璐ワ紒锛�");
}
-
}
@@ -1595,6 +1676,36 @@
}
}
+
+ /**
+ * 淇敼浠诲姟妗d綑鏂欏洖搴撶姸鎬�
+ *
+ * @param workNo
+ * @param userId
+ * @param type
+ * @author Ryan
+ * @date 2026/1/14 15:06
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void updateWrkIsSuplus(String workNo, Long userId, Integer type) {
+ WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
+ if (Objects.isNull(mast)) {
+ throw new CoolException("浠诲姟妗d笉瀛樺湪锛侊紒");
+ }
+ if (mast.getWrkSts() != 15) {
+ throw new CoolException("褰撳墠浠诲姟鐘舵�侊紝鏃犳硶鎵ц姝ゆ搷浣滐紒");
+ }
+ if (type == 4) {
+ mast.setIsSuplus(0);
+ } else if (type == 5) {
+ mast.setIsSuplus(1);
+ }
+ if (!wrkMastService.updateById(mast)) {
+ throw new CoolException("浠诲姟妗d慨鏀瑰け璐ワ紒锛�");
+ }
+ }
+
/**
* 鐢熸垚鍑哄簱鍖归厤鐨勫伐浣滅珯鍏ュ簱浠诲姟
*
@@ -1620,7 +1731,7 @@
if (Objects.isNull(binds) || binds.isEmpty()) {
throw new CoolException("鏈哄彴鏈粦瀹氬伐浣滅珯鍙帮紒锛�");
}
- Set<String> locs = binds.stream().map(LocAroundBind::getBLocNo).collect(Collectors.toSet());
+ Set<String> locs = binds.stream().map(LocAroundBind::getBlocNo).collect(Collectors.toSet());
LocMast locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
.in("loc_no", locs)
--
Gitblit v1.9.1