From 9fe1ec3afe8696c628d076d1f76686c4efc3012e Mon Sep 17 00:00:00 2001
From: zc <zyzc>
Date: 星期二, 21 十月 2025 10:49:55 +0800
Subject: [PATCH] 容器初始化功能优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java | 64 +++++++++++++++++++++++++++++---
1 files changed, 58 insertions(+), 6 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 e94be30..6b434a1 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.*;
@@ -48,6 +45,8 @@
private LocServiceImpl locService;
@Autowired
private TaskItemServiceImpl taskItemService;
+ @Autowired
+ private CheckOrderService checkOrderService;
/**
* @author Ryan
@@ -237,7 +236,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);
@@ -278,6 +280,10 @@
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();
@@ -292,6 +298,8 @@
.setTaskType(TaskType.TASK_TYPE_CHECK_OUT.type)
.setTaskStatus(TaskStsType.GENERATE_OUT.id)
.setCreateTime(new Date())
+ .setUpdateBy(loginUserId)
+ .setUpdateTime(new Date())
.setCreateBy(loginUserId)
.setBarcode(key);
@@ -302,8 +310,8 @@
itemParams.forEach(item -> {
TaskItem taskItem = new TaskItem();
taskItem.setTaskId(task.getId())
- .setOrderId(checkParam.getOrderId())
.setOrderType(OrderType.ORDER_CHECK.type)
+ .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type))
.setAnfme(item.getAnfme())
.setWorkQty(0.0)
.setBatch(checkParam.getBatch())
@@ -311,18 +319,62 @@
.setMatnrCode(checkParam.getMatnrCode())
.setPlatOrderCode(checkParam.getPlatOrderCode())
.setPlatWorkCode(checkParam.getPlatWorkCode())
+ .setUnit(checkParam.getStockUnit())
.setSpec(checkParam.getSpec())
.setModel(checkParam.getModel())
.setFieldsIndex(checkParam.getFieldsIndex())
.setMatnrId(checkParam.getMatnrId())
.setCreateBy(loginUserId)
+ .setSource(checkParam.getId())
+ .setSourceId(checkParam.getOrderId())
+ .setSourceCode(checkParam.getOrderCode())
.setCreateTime(new Date())
+ .setUpdateBy(loginUserId)
+ .setUpdateTime(new Date())
+ .setOrderItemId(checkParam.getId())
+ .setOrderId(checkParam.getOrderId())
.setPlatItemId(checkParam.getPlatItemId());
items.add(taskItem);
+
+ 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("搴撲綅棰勭害鍑哄簱澶辫触锛侊紒");
+ }
+
+ });
+
+ 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));
+ if (orderItems.isEmpty()) {
+ throw new CoolException("鏁版嵁閿欒锛氬崟鎹槑缁嗕笉瀛樺湪锛侊紒");
+ }
+ Double sum = orderItems.stream().mapToDouble(WkOrderItem::getWorkQty).sum();
+
+ if (order.getAnfme().compareTo(sum) <= 0) {
+ order.setWorkQty(sum).setExceStatus(CheckExceStatus.CHECK_ORDER_STATUS_EXCE_DONE.val);
+ } else {
+ order.setWorkQty(sum).setExceStatus(CheckExceStatus.CHECK_ORDER_STATUS_EXCE_ING.val);
+ }
+
+ if (!this.updateById(order)) {
+ throw new CoolException("鐩樼偣鍗曚俊鎭慨鏀瑰け璐ワ紒锛�");
+ }
});
}
return R.ok();
--
Gitblit v1.9.1