From 7b72d43503aa5df4c152b777777085d3cd5e2132 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期六, 06 十二月 2025 15:49:25 +0800
Subject: [PATCH] Merge branch 'jsxswms' of http://47.97.1.152:5880/r/zy-asrs into jsxswms
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 137 ++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 126 insertions(+), 11 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 669e524..caa1443 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -25,6 +25,7 @@
import com.zy.common.service.CommonService;
import com.zy.common.web.WcsController;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -69,12 +70,6 @@
@Autowired
private WrkDetlLogService wrkDetlLogService;
@Autowired
- private SnowflakeIdWorker snowflakeIdWorker;
- @Autowired
- private OrderService orderService;
- @Autowired
- private OrderDetlService orderDetlService;
- @Autowired
private WcsController wcsController;
@Autowired
private RowLastnoService rowLastnoService;
@@ -92,14 +87,17 @@
@Resource
private LocMastMapper locMastMapper;
- @Resource
- private OrderPakoutService orderPakOutService;
-
@Autowired
private CheckOrderService checkOrderService;
@Autowired
private CheckOrderDetlService checkOrderDetlService;
+ @Autowired
+ private LocCacheServiceImpl locCacheService;
+ @Autowired
+ private TaskService taskService;
+ @Autowired
+ private TaskDetlService taskDetlService;
@Override
@Transactional
@@ -552,6 +550,7 @@
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(checkOrderDetls.get(0));
+ wrkDetl.setOrderId(checkOrderDetls.get(0).getId());
wrkDetl.setZpallet(wrkMast.getBarcode());
wrkDetl.setIoTime(now);
wrkDetl.setWrkNo(workNo);
@@ -578,6 +577,98 @@
locMast.setModiUser(userId);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
+ throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + taskDto.getLocNo());
+ }
+ } else {
+ throw new CoolException(taskDto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void agvStockOut(BasStation staNo, TaskDto taskDto, Long userId) {
+ Date now = new Date();
+ List<LocDto> locDtos = taskDto.getLocDtos();
+ for (LocDto locDto : locDtos) {
+ if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) {
+ throw new CoolException("璁㈠崟鍑哄簱寮傚父锛岃鑱旂郴绠$悊鍛�");
+ }
+ }
+ // 鑾峰彇搴撲綅
+ LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", taskDto.getLocNo()));
+ int ioType = (taskDto.isAll() ? 101 : 103);
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+
+ Task task = new Task();
+ task.setWrkNo(workNo)
+ .setIoTime(new Date())
+ .setWrkSts(11L) // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ .setIoType(ioType) // 鍏ュ嚭搴撶姸鎬�
+ .setTaskType("agv")
+ .setIoPri(10D)
+ .setFullPlt("Y") // 婊℃澘锛歒
+ .setPicking("N") // 鎷f枡
+ .setExitMk("N")// 閫�鍑�
+ .setStaNo(staNo.getDevNo())
+ .setSourceLocNo(locCache.getLocNo())
+ .setEmptyMk("N")// 绌烘澘
+ .setBarcode(locCache.getBarcode())// 鎵樼洏鐮�
+ .setLinkMis("N")
+ .setAppeUser(userId)
+ .setAppeTime(new Date())
+ .setModiUser(userId)
+ .setModiTime(new Date());
+ if (!taskService.insert(task)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ for (LocDto locDto : taskDto.getLocDtos()) {
+ if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) {
+ continue;
+ }
+// OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
+ OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand()
+ , locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3());
+// if (orderDetl == null) {
+//// orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
+// orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null);
+//
+// }
+
+ TaskDetl wrkDetl = new TaskDetl();
+ BeanUtils.copyProperties(orderDetl, wrkDetl);
+ wrkDetl.setWrkNo(workNo)
+ .setId(null)
+ .setIoTime(new Date())
+ .setOrderNo(locDto.getOrderNo())
+ .setAnfme(locDto.getAnfme())
+ .setZpallet(locCache.getBarcode())
+ .setBatch(locDto.getBatch())
+ .setAppeUser(userId)
+ .setAppeTime(new Date())
+ .setModiUser(userId);
+ if (!taskDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+// // 淇敼璁㈠崟鏄庣粏
+// if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
+// throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+// }
+// orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+ OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE, orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),
+ orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(),
+ orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()
+ , locDto.getAnfme());
+ OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetl.getOrderId(), 2L, userId);
+ }
+ // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+
+ if (locCache.getLocSts().equals("F")) {
+ locCache.setLocSts(ioType == 101 ? "R" : "P");
+ locCache.setModiUser(userId);
+ locCache.setModiTime(now);
+ if (!locCacheService.updateById(locCache)) {
throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + taskDto.getLocNo());
}
} else {
@@ -1165,7 +1256,7 @@
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void cancelWrkMast(String workNo, Long userId) {
Date now = new Date();
WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",workNo));
@@ -1272,6 +1363,30 @@
}
+ if (wrkMast.getIoType() == 107) {
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+ if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())){
+
+ for (WrkDetl wrkDetl : wrkDetls) {
+ CheckOrderDetl checkOrderDetl = checkOrderDetlService.selectOne(new EntityWrapper<CheckOrderDetl>()
+ .eq("loc_no", wrkMast.getSourceLocNo())
+ .eq("matnr", wrkDetl.getMatnr())
+ .eq("batch", wrkDetl.getBatch())
+ .eq("order_no", wrkDetl.getOrderNo())
+ );
+ checkOrderDetl.setStatus(1);
+ checkOrderDetlService.updateById(checkOrderDetl);
+ }
+ CheckOrder checkOrder = checkOrderService.selectOne(new EntityWrapper<CheckOrder>().eq("order_no", wrkDetls.get(0).getOrderNo()));
+ List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>().eq("order_id", checkOrder.getId()));
+ boolean is = checkOrderDetls.stream().allMatch(item -> item.getStatus().equals(1));
+ checkOrder.setSettle(is?1L:12L);
+ checkOrderService.updateById(checkOrder);
+ }
+
+
+ }
+
// // 璁㈠崟鍏宠仈
// List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
// for (WrkDetl wrkDetl : wrkDetls) {
@@ -1324,7 +1439,7 @@
@Override
@Transactional
public void pickWrkMast(String workNo, Long userId) {
- WrkMast wrkMast = wrkMastService.selectById(workNo);
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
--
Gitblit v1.9.1