From 23ce02b630df91f468290c638aa5811fd04e8c9d Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期二, 10 三月 2026 14:54:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/devlop-phyz' into devlop-phyz
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java | 106 ++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 76 insertions(+), 30 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index b82d633..a8dc8f0 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -18,9 +18,8 @@
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.controller.dto.LocStockDto;
-import com.vincent.rsf.server.manager.controller.params.OutStockToTaskParams;
-import com.vincent.rsf.server.manager.controller.params.PakinItem;
-import com.vincent.rsf.server.manager.controller.params.WaitPakinParam;
+import com.vincent.rsf.server.manager.controller.dto.OrderOutItemDto;
+import com.vincent.rsf.server.manager.controller.params.*;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.*;
import com.vincent.rsf.server.manager.service.*;
@@ -218,7 +217,7 @@
BeanUtils.copyProperties(matnr, mat);
mat.setCode(matnr.getMatnr()).setName(matnr.getMaktx());
if (!Objects.isNull(matnr.getGroupName())) {
- MatnrGroup matnrGroup = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getName, matnr.getGroupName()), false);
+ MatnrGroup matnrGroup = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getName, matnr.getGroupName()).last("limit 1"), false);
if (Objects.isNull(matnrGroup)) {
mat.setGroupCode(matnrGroup.getCode()).setGroupId(matnrGroup.getId());
}
@@ -241,14 +240,14 @@
@Override
public R queryOrderStatus(QueryOrderParam queryParams) {
WkOrder wkOrders = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
- .eq(WkOrder::getPoCode, queryParams.getOrderNo()));
+ .eq(WkOrder::getPoCode, queryParams.getOrderNo()).last("limit 1"));
if (Objects.isNull(wkOrders)) {
Map<String, Object> map = new HashMap<>();
map.put("exceStatus", "-1");
return R.ok("鍗曟嵁涓嶅瓨鍦� 锛侊紒").add(map);
}
- AsnOrderLog orderLog = asnOrderLogService.getOne(new LambdaQueryWrapper<AsnOrderLog>().eq(AsnOrderLog::getCode, queryParams.getOrderNo()));
+ AsnOrderLog orderLog = asnOrderLogService.getOne(new LambdaQueryWrapper<AsnOrderLog>().eq(AsnOrderLog::getCode, queryParams.getOrderNo()).last("limit 1"));
if (!Objects.isNull(orderLog)) {
Map<String, Object> map = new HashMap<>();
map.put("exceStatus", "4");
@@ -392,7 +391,7 @@
if (Objects.isNull(companys.getCode())) {
throw new CoolException("浼佷笟缂栫爜涓嶈兘涓虹┖锛侊紒");
}
- Companys one = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getName, param.getName()));
+ Companys one = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getName, param.getName()).last("limit 1"));
if (Objects.isNull(one)) {
String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_COMPANYS_CODE, null);
companys.setCode(ruleCode);
@@ -419,6 +418,9 @@
public R syncCheckOrder(List<SyncOrderParams> syncOrders, Long loginUserId) {
if (!syncOrders.isEmpty()) {
syncOrders.forEach(syncOrder -> {
+ if (!syncOrder.getWkType().matches("\\d+")){
+ syncOrder.setWkType(OrderWorkType.getOrderTypeUpdate(syncOrder.getWkType()));
+ }
WkOrder wkOrder = new WkOrder(syncOrder);
DictData one = dictDataService.getOne(new LambdaQueryWrapper<DictData>().eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_BUSINESS_TYPE)
.eq(DictData::getValue, syncOrder.getWkType()), false);
@@ -551,25 +553,22 @@
// 绔嬪嵆瑙﹀彂寮傛浠诲姟锛屼笉绛夊緟缁撴灉
if (!Cools.isEmpty(palletId.get()) && StringUtils.isNotBlank(syncOrder.getOrderNo()) && !Cools.isEmpty(syncOrder.getStationId())) {
Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, palletId.get()));
- if (!Cools.isEmpty(loc)) {
+ if (!Cools.isEmpty(loc) && loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
+// outStockService.getOrderOutTaskItem(orderOutTaskParam,param.getOrderItemId());
//鍑哄簱
- List<OutStockToTaskParams> param = new ArrayList<>();
- for (WkOrderItem wkOrderItem : orderItems){
- OutStockToTaskParams outStockToTaskParams = new OutStockToTaskParams(wkOrderItem);
- outStockToTaskParams.setLocCode(loc.getCode());
- outStockToTaskParams.setSiteNo(syncOrder.getStationId());
- param.add(outStockToTaskParams);
- }
// boolean itemsCheck = waitPakinService.mergeItemsCheck(pakinParam, loginUserId);
// if (true) {
CompletableFuture.runAsync(() -> {
try {
- asyncOutboundExecutionWcs(param, wkOrder.getId(), loginUserId);
+ asyncOutboundExecutionWcs(syncOrder.getStationId(), wkOrder.getId(), loginUserId,loc.getCode());
} catch (Exception e) {
log.warn("璁㈠崟 {} 寮�濮嬭嚜鍔ㄥ嚭搴�", syncOrder.getOrderNo());
}
});
// }
+ } else {
+ log.warn("璁㈠崟 {} 鑷姩鍑哄簱澶辫触锛侊紒鏈煡璇㈠埌鎸囧畾搴撳瓨锛侊紒", syncOrder.getOrderNo());
+ throw new CoolException("鑷姩鍑哄簱澶辫触锛侊紒鏈煡璇㈠埌鎸囧畾搴撳瓨锛侊紒");
}
}
}
@@ -613,31 +612,52 @@
}
@Async
- public void asyncOutboundExecutionWcs(List<OutStockToTaskParams> param, Long orderId, Long loginUserId) {
+ public void asyncOutboundExecutionWcs(String stationId ,Long orderId, Long loginUserId,String locCode) {
try {
int i = 0;
- List<OutStockToTaskParams> tasks = new ArrayList<>();
while (true) {
- tasks = new ArrayList<>();
i++;
if (i > 5) return;
Thread.sleep(3000);
- for (OutStockToTaskParams taskParam : new OutStockToTaskParams[param.size()]) {
- if (StringUtils.isNotBlank(taskParam.getLocCode())) {
- tasks.add(taskParam);
- }
+ WkOrder byId = asnOrderService.getById(orderId);
+ if (Cools.isEmpty(byId)) {
+ continue;
}
break;
}
- if (tasks.isEmpty()){
- log.warn("璁㈠崟ID {} 娌℃湁鎵惧埌鍙嚭搴撴槑缁嗭紝璺宠繃鑷姩鍑哄簱", orderId);
- return;
- }
- outStockService.genOutStockTask(tasks, loginUserId, orderId);
- log.info("璁㈠崟ID {} 鑷姩鍑哄簱锛屽叡澶勭悊 {} 涓槑缁�", orderId, param.size());
+ GenWaveParams genWaveParams = new GenWaveParams();
+ List<Long> ids = new ArrayList<>();
+ ids.add(orderId);
+ genWaveParams.setIds(ids);
+ genWaveParams.setWaveRuleId(16L);
+// OrderOutTaskParam orderOutTaskParam = new OrderOutTaskParam();
+// orderOutTaskParam.setOrderId(orderId);
+// orderOutTaskParam.setWaveId(16L);
+// List<OrderOutItemDto> orderOutTaskItemAuto = outStockService.getOrderOutTaskItemAuto(orderOutTaskParam);
+//
+// List<OutStockToTaskParams> tasks = new ArrayList<>();
+// for (OrderOutItemDto orderOutItemDto : orderOutTaskItemAuto){
+// for (LocItem locItem : orderOutItemDto.getLocItemList()) {
+// OutStockToTaskParams outStockToTaskParams = new OutStockToTaskParams(orderOutItemDto,locItem);
+// outStockToTaskParams.setId(locItem.getId());
+// outStockToTaskParams.setOutQty(locItem.getOutQty());
+// outStockToTaskParams.setLocCode(locItem.getLocCode());
+// outStockToTaskParams.setBarcode(locItem.getBarcode());
+// outStockToTaskParams.setSiteNo(stationId);
+// tasks.add(outStockToTaskParams);
+// }
+// }
+// if (tasks.isEmpty()){
+// log.warn("璁㈠崟ID {} 娌℃湁鎵惧埌鍙嚭搴撴槑缁嗭紝璺宠繃鑷姩鍑哄簱", orderId);
+// return;
+// }
+// outStockService.genOutStockTask(tasks, loginUserId, orderId);
+ R r = outStockService.generateWavesOrderAuto(genWaveParams, stationId,locCode);
+
+ log.info("璁㈠崟ID {} 鑷姩杞尝娆�", orderId);
} catch (Exception e) {
- log.error("璁㈠崟ID {} 鑷姩鍑哄簱: {}", orderId, e.getMessage(), e);
+ log.error("璁㈠崟ID {} 鑷姩杞尝娆�: {}", orderId, e.getMessage(), e);
}
}
@@ -1121,6 +1141,32 @@
}
}
+ // 浠撳簱缂栫爜杩囨护
+ if (StringUtils.isNotBlank(condition.getWareHouseAreaId())) {
+ String wareHouseAreaId = condition.getWareHouseAreaId();
+ LambdaQueryWrapper<WarehouseAreas> whWrapper = new LambdaQueryWrapper<>();
+ whWrapper.eq(WarehouseAreas::getCode, wareHouseAreaId);
+ // 璋冪敤WarehouseService鏌ヨ浠撳簱淇℃伅锛堝鐢⊿ervice灞傛柟娉曪級
+ List<WarehouseAreas> warehouses = warehouseAreasService.list(whWrapper);
+ if (!warehouses.isEmpty()) {
+ Long targetWarehouseId = warehouses.get(0).getId();
+ // 杩囨护搴撲綅锛屽彧淇濈暀鐩爣浠撳簱鐨勫簱浣�
+ locMap = locMap.entrySet().stream()
+ .filter(entry -> Objects.equals(entry.getValue().getAreaId(), targetWarehouseId))
+ .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+
+ // 杩囨护locItems锛屽彧淇濈暀鐩爣浠撳簱鐨�
+ Set<Long> validLocIds = locMap.keySet();
+ locItems = locItems.stream()
+ .filter(item -> item.getLocId() != null && validLocIds.contains(item.getLocId()))
+ .collect(Collectors.toList());
+
+ List<Long> warehouseAreaIds = Collections.singletonList(targetWarehouseId);
+ } else {
+ return R.ok().add(new ArrayList<>());
+ }
+ }
+
// 璋冪敤WarehouseService鏌ヨ浠撳簱淇℃伅锛堝鐢⊿ervice灞傛柟娉曪級
Map<Long, Warehouse> warehouseMap = new HashMap<>();
if (!warehouseIds.isEmpty()) {
--
Gitblit v1.9.1