From a488088a18a9b8808bc57124681cee8c4ada7299 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 10 三月 2026 17:23:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/devlop-phyz' into devlop-phyz

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java |   67 +++++++++++++++++++++++++++++++++
 1 files changed, 66 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..b435656 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()));
+            }
         });
     }
 
@@ -428,6 +492,7 @@
         }
 
         targetLoc.setUseStatus(LocStsType.LOC_STS_TYPE_S.type);
+        targetLoc.setBarcode(orgLoc.getBarcode());
 
         if (!locService.updateById(targetLoc)) {
             throw new CoolException("鐩爣搴撲綅棰勭害澶辫触锛侊紒");

--
Gitblit v1.9.1