From 647663e4a5093393696c5951e1488268001b5763 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 19 七月 2025 10:37:41 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 103 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 6ae29f8..f4b0696 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1,5 +1,6 @@
package com.zy.asrs.service.impl;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -26,6 +27,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -77,6 +79,8 @@
private ManLocDetlService manLocDetlService;
@Autowired
private ManLocDetlMapper manLocDetlMapper;
+ @Autowired
+ private ReportToThirdService reportToThirdService;
@Autowired
private InventoryCheckOrderService inventoryCheckOrderService;
@@ -595,6 +599,7 @@
param.getCombMats().forEach(elem -> {
DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme());
+ detlDto.setWeight(elem.getWeight());
if (DetlDto.has(detlDtos, detlDto)) {
DetlDto one = DetlDto.findDto(detlDtos, detlDto);
assert one != null;
@@ -665,6 +670,7 @@
DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme());
detlDto.setOrderNo(elem.getOrderNo());
+ detlDto.setWeight(elem.getWeight());
if (DetlDto.has(detlDtos, detlDto)) {
DetlDto one = DetlDto.findDto(detlDtos, detlDto);
assert one != null;
@@ -708,6 +714,53 @@
}
+ }
+
+ @Override
+ public void combCancel(CombCancelParam param, Long userId) {
+ if (Cools.isEmpty(param.getBarcode())) {
+ throw new CoolException(BaseRes.PARAM);
+ }
+
+ List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().
+ eq("zpallet", param.getBarcode()));
+ if (waitPakins.isEmpty()) {
+ throw new CoolException("鎵樼洏鏈粍鎵�");
+ }
+
+ for (WaitPakin waitPakin : waitPakins) {
+ if (!Cools.isEmpty(waitPakin.getOrderNo())) {
+ Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE, waitPakin.getOrderNo());
+ if (Cools.isEmpty(order)) {
+ throw new CoolException("鍗曟嵁缂栧彿涓嶅瓨鍦�");
+ }
+
+ if (order.getSettle() > 2) {
+ throw new CoolException("鍗曟嵁缂栧彿宸蹭綔涓氬畬鎴�");
+ }
+
+ // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
+ OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(order.getId(), waitPakin.getMatnr(), waitPakin.getBatch(), waitPakin.getBrand(), waitPakin.getStandby1(), waitPakin.getStandby2(), waitPakin.getStandby3(),
+ waitPakin.getBoxType1(), waitPakin.getBoxType2(), waitPakin.getBoxType3());
+ if (orderDetlPakin == null) {
+ continue;
+ }
+
+ Double workQty = orderDetlPakin.getWorkQty();
+ BigDecimal workQtyDecimal = new BigDecimal(workQty);
+ workQtyDecimal = workQtyDecimal.subtract(BigDecimal.valueOf(waitPakin.getAnfme()));
+
+ double newWorkQty = workQtyDecimal.doubleValue();
+ if (newWorkQty <= 0) {
+ newWorkQty = 0D;
+ }
+ orderDetlPakin.setWorkQty(newWorkQty);
+ orderDetlPakinService.updateById(orderDetlPakin);
+ }
+ }
+
+ waitPakinService.delete(new EntityWrapper<WaitPakin>()
+ .eq("zpallet", param.getBarcode()));
}
// 鍟嗗搧涓婃灦
@@ -783,11 +836,7 @@
Date now = new Date();
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
- List<WrkDetl> list = param.getWrkDetls();
- LocDetlAdjustParam adjustParam = new LocDetlAdjustParam();
- List<LocDetlAdjustParam.LocDetlAdjust> locDetlAdjusts = new ArrayList<>();
-
- adjustParam.setLocNo(wrkMast.getSourceLocNo());
+ List<WrkDetl> list = JSON.parseArray(JSON.toJSONString(param.getWrkDetls()), WrkDetl.class);
// 淇敼鏁伴噺
Iterator<WrkDetl> iterator = wrkDetls.iterator();
while (iterator.hasNext()) {
@@ -839,13 +888,14 @@
throw new CoolException("娣诲姞" + wrkMast.getWrkNo() + "鐩樼偣浠诲姟锛�" + wrkDetl.getMatnr() + "鍟嗗搧锛�" + wrkDetl.getBatch() + "鎵瑰彿浠诲姟鏄庣粏澶辫触");
}
}
- List<WrkDetl> wrkDetls1 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
- for (WrkDetl wrkDetl : wrkDetls1) {
- LocDetlAdjustParam.LocDetlAdjust locDetlAdjust = new LocDetlAdjustParam.LocDetlAdjust(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme());
- locDetlAdjusts.add(locDetlAdjust);
+ List<WrkDetl> paramWrkDetls = JSON.parseArray(JSON.toJSONString(param.getWrkDetls()), WrkDetl.class);
+ for (WrkDetl wrkDetl : paramWrkDetls) {
String locNo = Cools.isEmpty(wrkMast.getLocNo()) ? wrkMast.getSourceLocNo() : wrkMast.getLocNo();
- List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("loc_no", locNo));
+ List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+ .eq("loc_no", locNo)
+ .eq("area", wrkDetl.getWrkNo())
+ );
for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
if (wrkDetl.getMatnr().equals(checkOrderDetl.getMatnr()) && Cools.eq(wrkDetl.getBatch(), checkOrderDetl.getBatch())) {
checkOrderDetl.setCheckAnfme(wrkDetl.getAnfme());
@@ -854,16 +904,14 @@
}
}
}
+
// 淇敼鐩樼偣浠诲姟涓绘。鐘舵��
- wrkMast.setFullPlt(wrkDetls1.size() != 0 ? "Y" : "N");
+ wrkMast.setFullPlt("Y");
wrkMast.setModiTime(now);
wrkMast.setModiUser(userId);
if (!wrkMastService.updateById(wrkMast)) {
throw new CoolException("淇敼鐩樼偣浠诲姟涓绘。澶辫触");
}
- adjustParam.setList(locDetlAdjusts);
- workService.adjustLocDetl2(adjustParam, userId);
-
}
@Override
@@ -1175,4 +1223,45 @@
throw new CoolException(locDetl.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
}
}
+
+ @Override
+ public void checkOutSubmit(Integer orderId, Long userId) {
+ InventoryCheckOrder inventoryCheckOrder = inventoryCheckOrderService.selectOne(new EntityWrapper<InventoryCheckOrder>()
+ .eq("id", orderId));
+ if (inventoryCheckOrder == null) {
+ throw new CoolException("鐩樼偣鍗曚笉瀛樺湪");
+ }
+
+ if (!inventoryCheckOrder.getStatus().equals("1")) {
+ throw new CoolException("鐩樼偣鍗曠姸鎬佸凡涓婃姤");
+ }
+
+ List<InventoryCheckOrderDetl> checkOrderDetlList = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+ .eq("order_no", inventoryCheckOrder.getOrderNo())
+ );
+ if (checkOrderDetlList.isEmpty()) {
+ throw new CoolException("鐩樼偣鍗曟棤鐗╂枡鏄庣粏");
+ }
+ InventoryCheckOrderDetl orderDetl = checkOrderDetlList.get(0);
+
+ List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+ .eq("matnr", orderDetl.getMatnr())
+ .eq("batch", orderDetl.getBatch())
+ );
+
+ boolean complete = true;
+ for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
+ if (!checkOrderDetl.getStatus().equals("2")) {
+ complete = false;
+ }
+ }
+ if (complete) {
+ boolean result = reportToThirdService.reportCheckOrder(orderDetl.getMatnr(), orderDetl.getBatch());
+ if (!result) {
+ throw new CoolException("鐩樼偣鍗曚笂鎶ュけ璐�");
+ }
+ }else {
+ throw new CoolException("鐩樼偣鏈畬鎴愭棤娉曚笂鎶�");
+ }
+ }
}
--
Gitblit v1.9.1