From ba15ec7be47104b796f2098eedfbe9feb9c0ffc5 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期四, 15 一月 2026 09:45:57 +0800
Subject: [PATCH] 修改页面AGV工作档历史逻辑
---
src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java | 189 ++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 179 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java
index 7ff82a9..d0b7de7 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java
@@ -2,21 +2,23 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.SnowflakeIdWorker;
+import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.entity.param.OpenOrderPakinParam;
import com.zy.asrs.entity.param.OpenOrderPakoutParam;
import com.zy.asrs.mapper.OrderDetlPakoutMapper;
import com.zy.asrs.mapper.OrderPakoutMapper;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
+import com.zy.common.model.LocDto;
+import com.zy.common.model.TaskDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@@ -36,6 +38,21 @@
private DocTypeService docTypeService;
@Autowired
private WrkDetlService wrkDetlService;
+ @Autowired
+ private OrderDetlPakoutServiceImpl orderDetlPakoutService;
+ @Autowired
+ private LocDetlService locDetlService;
+ @Autowired
+ private LocMastService locMastService;
+ @Autowired
+ private StaDescService staDescService;
+ @Autowired
+ private WorkService workService;
+ @Autowired
+ private BasDevpService basDevpService;
+
+ @Resource
+ private OrderPakoutService orderPakOutService;
@Override
public OrderPakout selectByNo(String orderNo) {
@@ -71,7 +88,7 @@
if (Cools.isEmpty(order) || order.getSettle() >= 4L) {
return;
}
- List<OrderDetlPakout> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetlPakout>().eq("order_id", order.getId()));
+ List<OrderDetlPakout> orderDetls = orderDetlPakoutService.selectList(new EntityWrapper<OrderDetlPakout>().eq("order_id", order.getId()));
boolean complete = true;
for (OrderDetlPakout orderDetl : orderDetls) {
if (orderDetl.getAnfme() > orderDetl.getQty()) {
@@ -83,7 +100,7 @@
// 鍑哄簱璁㈠崟閲嶆柊鏁寸悊鏄庣粏
DocType docType = docTypeService.selectById(order.getDocType());
if (null != docType && docType.getPakout() == 1) {
- if (!orderDetlService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_id", order.getId()))) {
+ if (!orderDetlPakoutService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_id", order.getId()))) {
throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
}
List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo);
@@ -98,7 +115,8 @@
orderDetl.setCreateBy(order.getCreateBy());
orderDetl.setUpdateTime(order.getUpdateTime());
orderDetl.setUpdateBy(order.getUpdateBy());
- if (!orderDetlService.insert(orderDetl)) {
+ orderDetl.setBarcode(wrkDetl.getZpallet());
+ if (!orderDetlPakoutService.insert(orderDetl)) {
throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
}
}
@@ -116,7 +134,7 @@
try {
List<DetlDto> detlDtos = new ArrayList<>();
wrkDetls.forEach(wrkDetl -> {
- detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme()));
+ detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(), wrkDetl.getAnfme()));
});
String orderNo = "HAND" + snowflakeIdWorker.nextId();
if (pakin) {
@@ -146,11 +164,13 @@
}
for (DetlDto detlDto : detlDtos) {
// 淇敼璁㈠崟鏄庣粏鏁伴噺
- if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
+ if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(),detlDto.getBrand(),detlDto.getStandby1(),detlDto.getStandby2(),detlDto.getStandby3()
+ ,detlDto.getBoxType1(),detlDto.getBoxType2(),detlDto.getBoxType3(), detlDto.getAnfme())) {
throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
}
// 淇敼璁㈠崟浣滀笟鏁伴噺
- if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
+ if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(),detlDto.getBrand(),detlDto.getStandby1(),detlDto.getStandby2(),detlDto.getStandby3()
+ ,detlDto.getBoxType1(),detlDto.getBoxType2(),detlDto.getBoxType3(), detlDto.getAnfme())) {
throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
}
}
@@ -166,7 +186,7 @@
if (!this.deleteById(orderId)) {
throw new CoolException("鍒犻櫎鍗曟嵁澶辫触");
}
- orderDetlService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_id", orderId));
+ orderDetlPakoutService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_id", orderId));
}
@Override
@@ -198,4 +218,153 @@
return this.baseMapper.selectOrderMoveStatusInitial();
}
+ @Override
+ public R pakout(List<LocDto> locDtos) {
+ if (Cools.isEmpty(locDtos)) {
+ return R.parse(BaseRes.PARAM);
+ }
+ List<LocDto> locDtoArrayList = new ArrayList<>();
+ for (LocDto locDto : locDtos) {
+ if (locDto.getFrozen() != 1 && locDto.getFrozenLoc() != 1) {
+ locDtoArrayList.add(locDto);
+ }
+ }
+ locDtos = locDtoArrayList;
+ if (Cools.isEmpty(locDtos)) {
+ return R.parse("搴撳瓨/搴撲綅琚喕缁擄紝璇峰鐞嗗悗鍑哄簱锛侊紒锛�");
+ }
+ boolean lack = true;
+ for (LocDto locDto : locDtos) {
+ if (!locDto.isLack()) {
+ lack = false;
+ break;
+ }
+ }
+ if (lack) {
+ return R.error("搴撳瓨涓嶈冻");
+ }
+
+ List<TaskDto> taskDtos = new ArrayList<>();
+ // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
+ for (LocDto locDto : locDtos) {
+ if (locDto.isLack()) {
+ continue;
+ }
+ TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
+ if (TaskDto.has(taskDtos, taskDto)) {
+ TaskDto dto = TaskDto.find(taskDtos, taskDto);
+ assert dto != null;
+ dto.getLocDtos().addAll(taskDto.getLocDtos());
+ } else {
+ taskDtos.add(taskDto);
+ }
+ }
+ OrderPakout orderPakout = orderPakOutService.selectByNo(locDtos.get(0).getOrderNo());
+
+ //閰嶇洏鍑哄簱鍗曠敤锛� i=5鏃舵垨鑰呭嚭搴撳埌鏈�鍚庢椂涓嬪彂绌烘澘鍑哄簱浠诲姟
+ int i = 0;
+ //闇�瑕佸嚭搴撶殑鎵樼洏鏁伴噺
+ int size = taskDtos.size();
+ //浼樺厛绾�
+ int ioPri = 50;
+ //宸蹭笅绌烘澘鍑哄簱浠诲姟鏁伴噺
+ int j = 1;
+ // -----------------------------------------------------------------------------------------------
+ for (TaskDto taskDto : taskDtos) {
+ BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
+ workService.stockOut(staNo, taskDto, 9995L, ioPri);
+ ioPri--;
+ i++;
+ //閰嶇洏鍑哄簱鍗曚娇鐢紝涓嬪彂闇�瑕佸嚭鐨勭┖鏉夸换鍔�
+ if (orderPakout.getDocType() == 11) {
+ if (i == size) {
+ for (; j <= orderPakout.getPayType(); j++) {
+ LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", taskDto.getLocNo()));
+ Integer locType = Integer.valueOf(locMast1.getLocType2());
+ //閰嶇洏 鍑哄簱鍗曞嚭搴撳尯鍩熸椂Q-L4鏃�,鍑哄ぇ鎵樼洏绌烘澘
+ if(!Cools.isEmpty(orderPakout.getCstmrName())&&orderPakout.getCstmrName().equals("Q-L4")){
+ locType = 2;
+ }
+ String bar = "";
+ //鍏蜂綋寰呭畾
+// if(!Cools.isEmpty(orderPakout.getShipCode())&&orderPakout.getShipCode().equals("A01")){
+// bar = "A01";
+// }
+ LocMast locMast = new LocMast();
+ if (Cools.isEmpty(bar)) {
+ locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "D").eq("loc_type2", locType).orderBy("row1",false));
+ } else {
+ locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "D").eq("loc_type2", locType).like("barcode", bar).orderBy("row1",false));
+ }
+
+ if (Cools.isEmpty(locMast)) {
+ return R.error("搴撳瓨娌℃湁绌烘澘");
+ }
+ String locNo = locMast.getLocNo();
+ EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
+ emptyPlateOutParam.setOutSite(303);
+ emptyPlateOutParam.setLocNos(new ArrayList<String>() {{
+ add(locNo);
+ }});
+ String agvSta = "";
+ if (locMast.getLocType3() == 2) {
+ agvSta = "Z-LZP26";
+ }else if(locType ==2){
+
+ } else {
+ agvSta = orderPakout.getCstmrName();//agv鐩爣绔欑偣浣嶇疆
+ }
+ WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam, ioPri, agvSta);
+ ioPri--;
+
+ }
+ } else if (i == 4) {
+ LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", taskDto.getLocNo()));
+ Integer locType = Integer.valueOf(locMast1.getLocType2());
+ //閰嶇洏 鍑哄簱鍗曞嚭搴撳尯鍩熸椂Q-L4鏃�,鍑哄ぇ鎵樼洏绌烘澘
+ if(orderPakout.getCstmrName().equals("Q-L4")){
+ locType = 2;
+ }
+
+ String bar = "";
+ if (!Cools.isEmpty(orderPakout.getShipCode()) && orderPakout.getShipCode().equals("A01")) {
+ bar = "A01";
+ }
+ LocMast locMast = null;
+ if (Cools.isEmpty(bar)) {
+ locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "D").eq("loc_type2", locType).orderBy("row1",false));
+ } else {
+ locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "D").eq("loc_type2", locType).like("barcode", bar).orderBy("row1",false));
+ }
+
+ if (Cools.isEmpty(locMast)) {
+ return R.error("搴撳瓨娌℃湁绌烘澘");
+ }
+ String locNo = locMast.getLocNo();
+ EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
+ emptyPlateOutParam.setOutSite(303);
+ emptyPlateOutParam.setLocNos(new ArrayList<String>() {{
+ add(locNo);
+ }});
+ String agvSta = "";
+ if (locMast.getLocType3() == 2) {
+ agvSta = "Z-LZP26";
+ }else if(locType ==2){
+
+ } else {
+ agvSta = orderPakout.getCstmrName();//agv鐩爣绔欑偣浣嶇疆
+ }
+ WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam, ioPri, agvSta);
+ ioPri--;
+ j++;
+ }
+ }
+ }
+ return R.ok();
+ }
+
}
--
Gitblit v1.9.1