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