From 209878277a178ab91d48b523265e5ffb1b8cf7e6 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期一, 09 三月 2026 16:18:21 +0800
Subject: [PATCH] 库位转移,优化查询速度
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java | 66 ++++++++++++++++++++++++++++++++
1 files changed, 65 insertions(+), 1 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
index 9486159..c91703d 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
@@ -1,6 +1,7 @@
package com.vincent.rsf.server.manager.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.controller.erp.params.TaskInParam;
import com.vincent.rsf.server.api.entity.dto.InTaskMsgDto;
@@ -53,6 +54,10 @@
private BasStationService basStationService;
@Autowired
private LocItemWorkingService locItemWorkingService;
+ @Autowired
+ private CheckDiffService checkDiffService;
+ @Autowired
+ private CheckDiffItemService checkDiffItemService;
/**
@@ -177,7 +182,7 @@
throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐ワ紒锛�");
}
- //澧炲姞瀵瑰璐у崟寰楀垽鏂�
+ //澧炲姞瀵瑰璐у崟鐨勫垽鏂�
Integer taskStatus = resouce.equals(TaskResouceType.TASK_RESOUCE_STOCK_UP.val)
? TaskStsType.MISSION_INITIAL.id:TaskStsType.MISSION_INITIAL.id;
@@ -194,6 +199,8 @@
.setUpdateTime(new Date())
.setTaskStatus(taskStatus)
.setBarcode(loc.getBarcode())
+ .setTargSiteArea(map.getTargSiteAreaList())
+ .setTargSiteAreaNow(map.getTargSiteAreaNow())
.setMemo(map.getMemo());
List<LocItem> locItems = this.list(new LambdaQueryWrapper<LocItem>().eq(LocItem::getLocId, key));
@@ -365,6 +372,63 @@
if (!taskItemService.saveBatch(taskItems)) {
throw new CoolException("浠诲姟鏄庣粏鐢熸垚澶辫触锛侊紒");
}
+
+ // 鏃犲崟鐩樼偣锛氭彁鍙栧嚭搴撴椂鍗崇敓鎴愮洏鐐瑰樊寮傚崟锛屼究浜� PDA 鎸夊樊寮傚崟鏍¢獙
+ if (map.getType().equals(Constants.TASK_TYPE_OUT_CHECK)) {
+ Date now = new Date();
+ double sumAnfme = taskItems.stream().mapToDouble(ti -> ti.getAnfme() != null ? ti.getAnfme() : 0).sum();
+ CheckDiff checkDiff = new CheckDiff();
+ checkDiff.setOrderCode(task.getTaskCode())
+ .setOrderId(null)
+ .setCheckType(0)
+ .setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_INIT.val)
+ .setAnfme(sumAnfme)
+ .setCheckQty(0D)
+ .setStatus(1)
+ .setDeleted(0)
+ .setTenantId(task.getTenantId())
+ .setCreateBy(loginUserId)
+ .setCreateTime(now)
+ .setUpdateBy(loginUserId)
+ .setUpdateTime(now);
+ if (loc.getAreaId() != null) {
+ checkDiff.setAreaId(loc.getAreaId()).setAreaName(loc.getAreaId$());
+ }
+ if (!checkDiffService.save(checkDiff)) {
+ throw new CoolException("鏃犲崟鐩樼偣宸紓鍗曞垱寤哄け璐ワ紒锛�");
+ }
+ List<CheckDiffItem> diffItems = new ArrayList<>();
+ for (TaskItem ti : taskItems) {
+ CheckDiffItem diffItem = new CheckDiffItem();
+ diffItem.setCheckId(checkDiff.getId())
+ .setOrderCode(task.getTaskCode())
+ .setTaskId(task.getId())
+ .setTaskItemId(ti.getId())
+ .setBarcode(task.getBarcode())
+ .setAnfme(ti.getAnfme() != null ? ti.getAnfme() : 0D)
+ .setCheckQty(ti.getAnfme() != null ? ti.getAnfme() : 0D)
+ .setMatnrCode(ti.getMatnrCode())
+ .setMaktx(ti.getMaktx())
+ .setBatch(ti.getBatch())
+ .setSpec(ti.getSpec())
+ .setModel(ti.getModel())
+ .setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_INIT.val)
+ .setStatus(1)
+ .setDeleted(0)
+ .setTenantId(task.getTenantId())
+ .setCreateBy(loginUserId)
+ .setCreateTime(now)
+ .setUpdateBy(loginUserId)
+ .setUpdateTime(now);
+ diffItems.add(diffItem);
+ }
+ if (!checkDiffItemService.saveBatch(diffItems)) {
+ throw new CoolException("鏃犲崟鐩樼偣宸紓鏄庣粏鍒涘缓澶辫触锛侊紒");
+ }
+ taskItemService.update(new LambdaUpdateWrapper<TaskItem>()
+ .set(TaskItem::getSourceCode, task.getTaskCode())
+ .eq(TaskItem::getTaskId, task.getId()));
+ }
});
}
--
Gitblit v1.9.1