From b69d8253dbf8b29bca1ac5f6cf1f305e5e188f0a Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期四, 12 三月 2026 15:33:46 +0800
Subject: [PATCH] lsh#
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java | 181 ++++++++++++++++++++++++--------------------
1 files changed, 98 insertions(+), 83 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
index f32a634..9b371cd 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
@@ -8,10 +8,7 @@
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.utils.ExcelUtil;
-import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
-import com.vincent.rsf.server.manager.controller.params.CheckOrderItemParams;
-import com.vincent.rsf.server.manager.controller.params.CheckOrderParams;
-import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam;
+import com.vincent.rsf.server.manager.controller.params.*;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.entity.excel.CheckOrderTemplate;
import com.vincent.rsf.server.manager.enums.*;
@@ -225,7 +222,9 @@
*/
@Override
public R genCheckPreview(OrderOutTaskParam param) {
- List<WkOrderItem> orderItems = checkOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, param.getOrderId()));
+ List<WkOrderItem> orderItems = checkOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>()
+ .eq(WkOrderItem::getOrderId, param.getOrderId())
+ .eq(WkOrderItem::getDeleted, 0));
if (orderItems.isEmpty()) {
throw new CoolException("鏁版嵁閿欒锛氱洏鐐瑰崟鏄庣粏涓嶅瓨鍦紒锛�");
}
@@ -239,7 +238,10 @@
* @version 1.0
*/
@Override
- public R getAllLocByMatnr(List<String> matnrs) {
+ public R getAllLocByMatnr(CheckLocQueryParams matnrs) {
+ if (Objects.isNull(matnrs.getMatnrCode()) && matnrs.getMatnrCode().isEmpty()) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
List<LocItem> locItems = locItemService.listByMatnr(matnrs);
if (!locItems.isEmpty()) {
List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_CHECK_OUT.type, TaskType.TASK_TYPE_CHECK_IN.type);
@@ -269,94 +271,107 @@
if (checkParams.isEmpty()) {
throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
- for (CheckOrderParams checkParam : checkParams) {
- if (checkParam.getItems().isEmpty()) {
+ List<Map.Entry<CheckOrderParams, CheckOrderItemParams>> flatList = new ArrayList<>();
+ for (CheckOrderParams cp : checkParams) {
+ if (cp.getItems() == null || cp.getItems().isEmpty()) {
continue;
}
- Map<String, List<CheckOrderItemParams>> listMap = checkParam.getItems().stream()
- .collect(Collectors.groupingBy(CheckOrderItemParams::getBarcode));
- listMap.keySet().forEach(key -> {
- Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, key));
- if (Objects.isNull(loc)) {
- throw new CoolException("褰撳墠搴撲綅涓嶅瓨鍦紒锛�");
- }
- Task task1 = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, key));
- if (!Objects.isNull(task1)) {
- throw new CoolException("鎵樼洏浠诲姟宸插瓨鍦紒锛�");
- }
- List<CheckOrderItemParams> itemParams = listMap.get(key);
- CheckOrderItemParams checkItem = itemParams.stream().findFirst().get();
- Task task = new Task();
- String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TASK_CODE, null);
- if (StringUtils.isBlank(ruleCode)) {
- throw new CoolException("浠诲姟鍙蜂笉鑳戒负绌猴紒锛�");
- }
- task.setOrgLoc(loc.getCode())
- .setTaskCode(ruleCode)
- .setTargSite(checkItem.getSiteNo())
- .setResource(TaskResouceType.TASK_RESOUCE_CHECK_TYPE.val)
- .setTaskType(TaskType.TASK_TYPE_CHECK_OUT.type)
- .setTaskStatus(TaskStsType.GENERATE_OUT.id)
+ for (CheckOrderItemParams ip : cp.getItems()) {
+ flatList.add(new AbstractMap.SimpleEntry<>(cp, ip));
+ }
+ }
+ Map<String, List<Map.Entry<CheckOrderParams, CheckOrderItemParams>>> byBarcode = flatList.stream()
+ .collect(Collectors.groupingBy(e -> e.getValue().getBarcode()));
+
+ for (String key : byBarcode.keySet()) {
+ List<Map.Entry<CheckOrderParams, CheckOrderItemParams>> entries = byBarcode.get(key);
+ Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getDeleted, 0).eq(Loc::getBarcode, key));
+ if (Objects.isNull(loc)) {
+ throw new CoolException("褰撳墠搴撲綅涓嶅瓨鍦紒锛�");
+ }
+ Task task1 = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getDeleted, 0).eq(Task::getBarcode, key));
+ if (!Objects.isNull(task1)) {
+ throw new CoolException("鎵樼洏浠诲姟宸插瓨鍦紒锛�");
+ }
+ CheckOrderItemParams checkItem = entries.get(0).getValue();
+ Task task = new Task();
+ String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TASK_CODE, null);
+ if (StringUtils.isBlank(ruleCode)) {
+ throw new CoolException("浠诲姟鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ task.setOrgLoc(loc.getCode())
+ .setTaskCode(ruleCode)
+ .setTargSite(checkItem.getSiteNo())
+ .setResource(TaskResouceType.TASK_RESOUCE_CHECK_TYPE.val)
+ .setTaskType(TaskType.TASK_TYPE_CHECK_OUT.type)
+ .setTaskStatus(TaskStsType.MISSION_INITIAL.id)
+ .setCreateTime(new Date())
+ .setUpdateBy(loginUserId)
+ .setUpdateTime(new Date())
+ .setCreateBy(loginUserId)
+ .setBarcode(key);
+
+ if (!taskService.save(task)) {
+ throw new CoolException("鐩樼偣浠诲姟鐢熸垚澶辫触锛侊紒");
+ }
+ List<TaskItem> items = new ArrayList<>();
+ for (Map.Entry<CheckOrderParams, CheckOrderItemParams> e : entries) {
+ CheckOrderParams cp = e.getKey();
+ CheckOrderItemParams item = e.getValue();
+ TaskItem taskItem = new TaskItem();
+ taskItem.setTaskId(task.getId())
+ .setOrderType(OrderType.ORDER_CHECK.type)
+ .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type))
+ .setAnfme(item.getAnfme())
+ .setWorkQty(0.0)
+ .setBatch(cp.getBatch())
+ .setMaktx(cp.getMaktx())
+ .setMatnrCode(cp.getMatnrCode())
+ .setPlatOrderCode(cp.getPlatOrderCode())
+ .setPlatWorkCode(cp.getPlatWorkCode())
+ .setUnit(cp.getStockUnit())
+ .setSpec(cp.getSpec())
+ .setModel(cp.getModel())
+ .setFieldsIndex(cp.getFieldsIndex())
+ .setMatnrId(cp.getMatnrId())
+ .setCreateBy(loginUserId)
+ .setSource(cp.getId())
+ .setSourceId(cp.getOrderId())
+ .setSourceCode(cp.getOrderCode())
.setCreateTime(new Date())
.setUpdateBy(loginUserId)
.setUpdateTime(new Date())
- .setCreateBy(loginUserId)
- .setBarcode(key);
+ .setOrderItemId(cp.getId())
+ .setOrderId(cp.getOrderId())
+ .setPlatItemId(cp.getPlatItemId());
+ items.add(taskItem);
- if (!taskService.save(task)) {
- throw new CoolException("鐩樼偣浠诲姟鐢熸垚澶辫触锛侊紒");
+ if (!checkOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>()
+ .eq(WkOrderItem::getId, cp.getId())
+ .setSql("work_qty = work_qty + " + item.getAnfme())
+ .set(WkOrderItem::getWorkQty, item.getAnfme()))) {
+ throw new CoolException("鐩樼偣鏄庣粏淇敼澶辫触锛侊紒");
}
- List<TaskItem> items = new ArrayList<>();
- itemParams.forEach(item -> {
- TaskItem taskItem = new TaskItem();
- taskItem.setTaskId(task.getId())
- .setOrderType(OrderType.ORDER_CHECK.type)
- .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type))
- .setAnfme(item.getAnfme())
- .setWorkQty(0.0)
- .setBatch(checkParam.getBatch())
- .setMaktx(checkParam.getMaktx())
- .setMatnrCode(checkParam.getMatnrCode())
- .setPlatOrderCode(checkParam.getPlatOrderCode())
- .setPlatWorkCode(checkParam.getPlatWorkCode())
- .setSpec(checkParam.getSpec())
- .setModel(checkParam.getModel())
- .setFieldsIndex(checkParam.getFieldsIndex())
- .setMatnrId(checkParam.getMatnrId())
- .setCreateBy(loginUserId)
- .setCreateTime(new Date())
- .setUpdateBy(loginUserId)
- .setUpdateTime(new Date())
- .setOrderItemId(checkParam.getId())
- .setOrderId(checkParam.getOrderId())
- .setPlatItemId(checkParam.getPlatItemId());
- items.add(taskItem);
+ }
+ if (!taskItemService.saveBatch(items)) {
+ throw new CoolException("浠诲姟鏄庣粏淇濆瓨澶辫触锛侊紒");
+ }
- if (!checkOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>()
- .eq(WkOrderItem::getId, checkParam.getId())
- .setSql("work_qty = work_qty + " + item.getAnfme())
- .set(WkOrderItem::getWorkQty, checkItem.getAnfme()))) {
- throw new CoolException("鐩樼偣鏄庣粏淇敼澶辫触锛侊紒");
- }
- });
- if (!taskItemService.saveBatch(items)) {
- throw new CoolException("浠诲姟鏄庣粏淇濆瓨澶辫触锛侊紒");
- }
+ loc.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
+ if (!locService.updateById(loc)) {
+ throw new CoolException("搴撲綅棰勭害鍑哄簱澶辫触锛侊紒");
+ }
+ }
- loc.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
- if (!locService.updateById(loc)) {
- throw new CoolException("搴撲綅棰勭害鍑哄簱澶辫触锛侊紒");
- }
-
- });
-
- Set<Long> checkItemIds = checkParams.stream().map(CheckOrderParams::getOrderId).collect(Collectors.toSet());
- checkItemIds.forEach(orderId -> {
+ Set<Long> checkItemIds = checkParams.stream().map(CheckOrderParams::getOrderId).collect(Collectors.toSet());
+ checkItemIds.forEach(orderId -> {
WkOrder order = this.getById(orderId);
if (Objects.isNull(order)) {
throw new CoolException("鏁版嵁閿欒锛氬崟鎹笉瀛樺湪锛侊紒");
}
- List<WkOrderItem> orderItems = checkOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, orderId));
+ List<WkOrderItem> orderItems = checkOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>()
+ .eq(WkOrderItem::getOrderId, orderId)
+ .eq(WkOrderItem::getDeleted, 0));
if (orderItems.isEmpty()) {
throw new CoolException("鏁版嵁閿欒锛氬崟鎹槑缁嗕笉瀛樺湪锛侊紒");
}
@@ -372,7 +387,6 @@
throw new CoolException("鐩樼偣鍗曚俊鎭慨鏀瑰け璐ワ紒锛�");
}
});
- }
return R.ok();
}
@@ -423,7 +437,8 @@
}
});
List<WkOrderItem> orderItems = checkOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>()
- .eq(WkOrderItem::getOrderId, params.getOrders().getId()));
+ .eq(WkOrderItem::getOrderId, params.getOrders().getId())
+ .eq(WkOrderItem::getDeleted, 0));
Double sum = orderItems.stream().mapToDouble(WkOrderItem::getAnfme).sum();
orders.setAnfme(sum);
if (!this.updateById(orders)) {
--
Gitblit v1.9.1