From 95549a8f8a6a64ed7fc822f275e5c8b8d4e5c0ae Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 18 七月 2025 16:30:12 +0800 Subject: [PATCH] 盘点差异单功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java | 29 ++++++++++++++++++++++++----- 1 files changed, 24 insertions(+), 5 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java index e470f48..4c80343 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java @@ -4,11 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.manager.entity.*; -import com.vincent.rsf.server.manager.enums.CheckDiffExceStatus; -import com.vincent.rsf.server.manager.enums.CheckExceStatus; -import com.vincent.rsf.server.manager.enums.TaskStsType; -import com.vincent.rsf.server.manager.enums.TaskType; +import com.vincent.rsf.server.manager.enums.*; import com.vincent.rsf.server.manager.service.*; +import com.vincent.rsf.server.manager.service.impl.LocServiceImpl; import com.vincent.rsf.server.system.utils.SystemAuthUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -40,6 +38,8 @@ private CheckOrderService checkOrderService; @Autowired private CheckOrderItemService checkOrderItemService; + @Autowired + private LocServiceImpl locService; /** * @author Ryan @@ -51,7 +51,7 @@ @Transactional(rollbackFor = Exception.class) public void genReCheck() { List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>() - .notExists("SELECT 1 FROM man_check_diff_item cdi WHERE id = cdi.task_item_id")); + .notExists("SELECT 1 FROM man_check_diff_item cdi WHERE id != cdi.task_item_id")); if (taskItems.isEmpty()) { return; } @@ -83,6 +83,10 @@ List<CheckDiffItem> diffItems = new ArrayList<>(); CheckDiff finalCheckDiff = checkDiff; items.forEach(item -> { + Task task = taskService.getById(item.getTaskId()); + if (Objects.isNull(task)) { + throw new CoolException("鏁版嵁閿欒锛氫换鍔′笉瀛樺湪锛侊紒"); + } CheckDiffItem checkDiffItem = new CheckDiffItem(); BeanUtils.copyProperties(item, checkDiffItem); checkDiffItem.setCheckId(finalCheckDiff.getId()) @@ -90,10 +94,25 @@ .setTaskId(item.getTaskId()) .setCreateBy(loginUserId) .setCreateTime(new Date()) + .setBarcode(task.getBarcode()) .setUpdateBy(loginUserId) .setUpdateTime(new Date()) .setOrderCode(finalCheckDiff.getOrderCode()); diffItems.add(checkDiffItem); + + if (Objects.isNull(finalCheckDiff.getAreaId())) { + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>() + .eq(Loc::getCode, task.getOrgLoc()) + .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_R.type)); + if (Objects.isNull(loc)) { + throw new CoolException("鐩樼偣搴撲綅涓嶅瓨鍦紒锛�"); + } + finalCheckDiff.setAreaId(loc.getAreaId()).setAreaName(loc.getAreaId$()); + + if (!checkDiffService.updateById(finalCheckDiff)) { + throw new CoolException("搴撳尯淇℃伅淇敼澶辫触锛侊紒"); + } + } }); if (!checkDiffItemService.saveBatch(diffItems)) { -- Gitblit v1.9.1