From 8e0335c10755399ba4eda92512939995d844e7bd Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 18 七月 2024 08:59:37 +0800
Subject: [PATCH] 组托桁架相关接口开发

---
 src/main/java/com/zy/asrs/entity/result/ZphjcdwcVo.java        |   21 +++
 src/main/java/com/zy/asrs/mapper/LocDetlMapper.java            |    4 
 src/main/java/com/zy/asrs/service/LocDetlService.java          |    5 
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java    |    9 +
 src/main/java/com/zy/asrs/controller/OpenController.java       |   17 ++
 src/main/java/com/zy/asrs/task/GhjtScheduler.java              |    5 
 src/main/java/com/zy/asrs/task/handler/GhjtHandler.java        |   36 ++++++
 src/main/resources/mapper/LocDetlMapper.xml                    |   17 ++
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java          |    2 
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |    8 +
 src/main/java/com/zy/asrs/entity/param/ZphjcdwcParam.java      |   15 ++
 src/main/java/com/zy/asrs/service/OpenService.java             |   10 +
 src/main/java/com/zy/asrs/entity/result/ZphjcdgzVo.java        |   17 ++
 src/main/java/com/zy/asrs/entity/param/ZphjckdwParam.java      |   15 ++
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java    |  123 ++++++++++++++++++++
 15 files changed, 296 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 752d5a2..15a7c44 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -192,6 +192,23 @@
         return R.ok(openService.emptyOutLoc(param));
     }
 
+    @PostMapping("/zpckdw")
+    @AppAuth(memo = "缁勭洏妗佹灦gwcs鍛婅瘔zwms璐х墿鍒颁綅锛寊mws鍛婅瘔gwcs鎬庝箞鎷�")
+    public synchronized R zphjDw(@RequestHeader(required = false) String appkey,
+                                      @RequestBody ZphjckdwParam param,
+                                      HttpServletRequest request) {
+        auth(appkey, param, request);
+        return openService.zphjDw(param);
+    }
+
+    @PostMapping("/cdwc")
+    @AppAuth(memo = "缁勭洏妗佹灦鎷嗗灈瀹屾垚gwcs璇锋眰zwms")
+    public synchronized R zphjCdwc(@RequestHeader(required = false) String appkey,
+                                      @RequestBody ZphjcdwcParam param,
+                                      HttpServletRequest request) {
+        auth(appkey, param, request);
+        return openService.zphjCdwc(param);
+    }
 //    @PostMapping("/cpjck")
 //    @AppAuth(memo = "鐗╂枡淇℃伅鑾峰彇")
 //    public synchronized R emptyOutLoc(@RequestHeader(required = false) String appkey,
diff --git a/src/main/java/com/zy/asrs/entity/param/ZphjcdwcParam.java b/src/main/java/com/zy/asrs/entity/param/ZphjcdwcParam.java
new file mode 100644
index 0000000..2a0a538
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/ZphjcdwcParam.java
@@ -0,0 +1,15 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+/**
+ * @author pang.jiabao
+ * @description 缁勭洏妗佹灦鎷嗗灈瀹屾垚
+ * @createDate 2024/7/16 9:37
+ */
+@Data
+public class ZphjcdwcParam {
+
+    private Integer workNo; // 宸ヤ綔鍙�
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/ZphjckdwParam.java b/src/main/java/com/zy/asrs/entity/param/ZphjckdwParam.java
new file mode 100644
index 0000000..49d6b80
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/ZphjckdwParam.java
@@ -0,0 +1,15 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+/**
+ * @author pang.jiabao
+ * @description 缁勭洏妗佹灦鍑哄簱鍒颁綅
+ * @createDate 2024/7/16 9:36
+ */
+@Data
+public class ZphjckdwParam {
+
+    private Integer workNo; // 宸ヤ綔鍙�
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/result/ZphjcdgzVo.java b/src/main/java/com/zy/asrs/entity/result/ZphjcdgzVo.java
new file mode 100644
index 0000000..b9ab790
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/ZphjcdgzVo.java
@@ -0,0 +1,17 @@
+package com.zy.asrs.entity.result;
+
+import lombok.Data;
+
+/**
+ * @author pang.jiabao
+ * @description 杩斿洖缁勭洏妗佹灦鎷嗗灈瑙勫垯
+ * @createDate 2024/7/16 9:37
+ */
+@Data
+public class ZphjcdgzVo {
+
+    private Integer workNo; // 宸ヤ綔鍙�
+
+    private String position; // 瑕佹媶鐨勪綅缃�,宸︽垨鍙�
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/result/ZphjcdwcVo.java b/src/main/java/com/zy/asrs/entity/result/ZphjcdwcVo.java
new file mode 100644
index 0000000..c4b9a65
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/ZphjcdwcVo.java
@@ -0,0 +1,21 @@
+package com.zy.asrs.entity.result;
+
+import lombok.Data;
+
+/**
+ * @author pang.jiabao
+ * @description 鎷嗗灈瀹屾垚锛岃繑鍥炵粰gwcs鎵ц鍛戒护(鍥炲簱鍜屽嚭搴�)
+ * @createDate 2024/7/16 13:46
+ */
+@Data
+public class ZphjcdwcVo {
+
+    private int workNo; // 浠诲姟鍙�
+
+    private int sourceStaNo; // 婧愮珯鐐�
+
+    private int staNo; // 鐩爣绔欑偣
+
+    private int descFlag; // 鎷嗗灈鍑烘潵鎵樼洏鍑哄簱璺緞
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index ff155f3..1860139 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -27,6 +27,10 @@
 
     int updateAnfme(@Param("anfme")Double anfme, @Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch);
 
+    int deleteItem2(@Param("locNo")String locNo, @Param("model")String model, @Param("batch")String batch);
+
+    int updateAnfme2(@Param("anfme")Double anfme, @Param("locNo")String locNo, @Param("model")String model, @Param("batch")String batch);
+
     List<LocDetl> getStockOutPage(Map<String, Object> map);
 
     Integer getStockOutPageCount(Map<String, Object> map);
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index a809089..b6ebce8 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -6,7 +6,6 @@
 import com.zy.asrs.entity.result.StockVo;
 
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
 public interface LocDetlService extends IService<LocDetl> {
@@ -21,6 +20,10 @@
      * 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏋滄暟閲忎负0锛屽垯鍒犻櫎璁板綍
      */
     boolean updateAnfme(Double anfme, String locNo, String matnr, String batch);
+    /**
+     * 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏋滄暟閲忎负0锛屽垯鍒犻櫎璁板綍
+     */
+    boolean updateAnfme2(Double anfme, String locNo, String model, String batch);
 
     boolean updateLocNo(String newLocNo, String oldLocNo);
 
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index 937c482..acb9a73 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -85,4 +85,14 @@
      * 鎷嗙洏鏈哄嚭搴撴帴鍙�(绌烘墭鐩樺嚭搴�)
      */
     String emptyOutLoc(GhjtApiParam param);
+
+    /**
+     * 缁勭洏妗佹灦gwcs鍛婅瘔zwms璐х墿鍒颁綅锛寊mws鍛婅瘔gwcs鎬庝箞鎷�
+     */
+    R zphjDw(ZphjckdwParam param);
+
+    /**
+     * 缁勭洏妗佹灦鎷嗗灈瀹屾垚gwcs璇锋眰zwms
+     */
+    R zphjCdwc(ZphjcdwcParam param);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index d43e920..4057464 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -37,6 +37,14 @@
         }
     }
 
+    @Override
+    public boolean updateAnfme2(Double anfme, String locNo, String model, String batch) {
+        if (anfme <= 0) {
+            return this.baseMapper.deleteItem2(locNo, model, batch) > 0;
+        } else {
+            return baseMapper.updateAnfme2(anfme, locNo, model, batch) > 0;
+        }
+    }
 
     @Override
     public boolean updateLocNo(String newLocNo, String oldLocNo) {
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 8b629ee..1762a66 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -11,6 +11,8 @@
 import com.zy.asrs.entity.param.*;
 import com.zy.asrs.entity.result.OpenOrderCompeteResult;
 import com.zy.asrs.entity.result.StockVo;
+import com.zy.asrs.entity.result.ZphjcdgzVo;
+import com.zy.asrs.entity.result.ZphjcdwcVo;
 import com.zy.asrs.mapper.TagMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.MatUtils;
@@ -28,6 +30,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2022/4/9
@@ -69,6 +72,8 @@
     @Autowired
     private WrkDetlSingleService wrkDetlSingleService;
     @Autowired
+    private WrkMastLogService wrkMastLogService;
+    @Autowired
     private WrkMastStaService wrkMastStaService;
     @Autowired
     private WrkMastStaLogService wrkMastStaLogService;
@@ -76,6 +81,8 @@
     private StaDescService staDescService;
     @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private ApiLogService apiLogService;
 
     @Override
     @Transactional
@@ -1295,8 +1302,120 @@
         return "鍑哄簱鎴愬姛";
     }
 
-    @Autowired
-    private ApiLogService apiLogService;
+    @Override
+    @Transactional
+    public R zphjDw(ZphjckdwParam param) {
+        // 鏍规嵁浠诲姟鍙峰緱鍒板伐浣滀富妗�
+        if (Cools.isEmpty(param.getWorkNo())) {
+            throw new CoolException("宸ヤ綔鍙蜂笉鑳戒负绌猴紒");
+        }
+        WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
+        if (wrkMast == null) {
+            throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�");
+        }
+        if (wrkMast.getWrkSts() != 2 || wrkMast.getIoType() != 103) {
+            throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佷笉涓�2/鍑哄簱绫诲瀷涓嶄负鎷f枡锛�");
+        }
+        // 鏇存柊宸ヤ綔妗g姸鎬�2.璁惧涓婅蛋->42.绛夊緟鐮佸灈
+        wrkMast.setWrkSts(42L);
+        wrkMastService.updateById(wrkMast);
+
+        // 鏌ヨ瑕佹媶鐨勪綅缃紝鍙湁涓�涓�
+        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+        List<String> collect = wrkDetls.stream().map(WrkDetl::getOrigin).distinct().collect(Collectors.toList());
+        String position = collect.get(0);
+
+        // 杩斿洖鎷嗗灈瑙勫垯
+        ZphjcdgzVo zphjcdgzVo = new ZphjcdgzVo();
+        zphjcdgzVo.setWorkNo(wrkMast.getWrkNo());
+        zphjcdgzVo.setPosition(position);
+
+        return R.ok(zphjcdgzVo);
+    }
+
+    @Override
+    @Transactional
+    public R zphjCdwc(ZphjcdwcParam param) {
+
+        if (Cools.isEmpty(param.getWorkNo())) {
+            throw new CoolException("宸ヤ綔鍙蜂笉鑳戒负绌猴紒");
+        }
+        WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
+        if (wrkMast == null) {
+            throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�");
+        }
+        if (wrkMast.getWrkSts() != 42 || wrkMast.getIoType() != 103) {
+            throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佷笉涓�42/鍑哄簱绫诲瀷涓嶄负鎷f枡锛�");
+        }
+
+        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+        if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+            throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+        }
+
+        // 鏇存柊宸ヤ綔绫诲瀷103->53
+        wrkMast.setIoType(53);
+        wrkMast.setWrkSts(52L); // 宸ヤ綔鐘舵��42->52.璁惧涓婅蛋锛堟媶鍨涘畬鎴愶級
+        Integer staNo = wrkMast.getStaNo();
+        // 鐩爣绔欑偣婧愮珯鐐硅浆鎹�
+        wrkMast.setStaNo(wrkMast.getSourceStaNo());
+        wrkMast.setSourceStaNo(staNo);
+        // 鐩爣搴撲綅=婧愬簱浣�
+        wrkMast.setLocNo(wrkMast.getSourceLocNo());
+        // 婧愬簱浣嶆竻闄�
+        wrkMast.setSourceLocNo("");
+        wrkMast.setModiTime(new Date());
+
+        int outStaNo = 0; // 鍑哄簱婧愮珯鐐�
+        if (staNo == 3044 || staNo == 3045) {
+             outStaNo = 3046;
+        } else if(staNo == 3040 || staNo == 3041) {
+             outStaNo = 3042;
+        }
+        if (outStaNo == 0) {
+            throw new CoolException("鍑哄簱婧愮珯鐐硅浆鎹㈡湁璇細" + staNo);
+        }
+
+        // 鑾峰彇鍑哄簱鐗╂枡
+        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+        int descFlag = getType(wrkDetls);
+
+        // get0鍘熸墭鐩樺洖娴佷俊鎭紝get1鎷嗗灈鍑烘潵鐗╂枡鍑哄簱淇℃伅
+        List<ZphjcdwcVo> zphjcdwcVos = new ArrayList<>();
+        ZphjcdwcVo zphjcdwcVo1 = new ZphjcdwcVo();
+        zphjcdwcVo1.setWorkNo(wrkMast.getWrkNo());
+        zphjcdwcVo1.setStaNo(wrkMast.getStaNo());
+        zphjcdwcVo1.setSourceStaNo(wrkMast.getSourceStaNo());
+        zphjcdwcVos.add(zphjcdwcVo1);
+
+        ZphjcdwcVo zphjcdwcVo2 = new ZphjcdwcVo();
+        zphjcdwcVo2.setSourceStaNo(outStaNo);
+        zphjcdwcVo2.setStaNo(3106); // 3106/3077
+        zphjcdwcVo2.setDescFlag(descFlag);
+        zphjcdwcVos.add(zphjcdwcVo2);
+
+        // 鏇存柊宸ヤ綔涓绘。
+        wrkMastService.updateById(wrkMast);
+        // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+        locMast.setLocSts("Q");
+        locMast.setModiTime(new Date());
+        if (!locMastService.updateById(locMast)) {
+            throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+        }
+
+        // 涓嬪彂鍥炲簱鐨勭洰鏍囩珯鐐瑰拰鎷嗗灈鐨勫嚭搴撶洰鏍囩珯鐐圭粰gwcs
+        return R.ok(zphjcdwcVos);
+    }
+
+    /**
+     * 鏍规嵁鍑哄簱鐗╂枡鏄庣粏鍒ゆ柇鏄惁鍘昏创鏍�(鍗曞嵎璐存爣锛屽鍗蜂笉璐存爣)
+     * @param wrkDetls 鐗╂枡鏄庣粏
+     * @return 0.澶氬嵎涓嶈创鏍囪矾寰勶紝1.鍗曞嵎璐存爣璺緞
+     */
+    private int getType(List<WrkDetl> wrkDetls) {
+        return wrkDetls.size() > 1 ? 0 : 1; // 涓�鏉¤褰曞氨鏄竴鍗�
+    }
 
     private void pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo) {
         boolean success = false;
diff --git a/src/main/java/com/zy/asrs/task/GhjtScheduler.java b/src/main/java/com/zy/asrs/task/GhjtScheduler.java
index 65209f8..8a2d017 100644
--- a/src/main/java/com/zy/asrs/task/GhjtScheduler.java
+++ b/src/main/java/com/zy/asrs/task/GhjtScheduler.java
@@ -7,6 +7,7 @@
 import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.task.handler.GhjtHandler;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -31,10 +32,10 @@
     private OrderMapper orderMapper;
 
     // 涓嬪彂鍑哄簱浠诲姟缁橤WCS(浠庡嚭搴撶爜澶村埌鍑哄簱鍙�)
-//    @Scheduled(cron = "0/2 * * * * ? ")
+    @Scheduled(cron = "0/2 * * * * ? ")
     public void ckrwPushGwcs() {
         // 鏌ヨ鐘舵�佷负13鐨勫伐浣滄。
-        List<WrkMast> wrkMasts = wrkMastMapper.selectList(new EntityWrapper<WrkMast>().eq("io_type", 101).eq("wrk_sts", 13));
+        List<WrkMast> wrkMasts = wrkMastMapper.selectList(new EntityWrapper<WrkMast>().in("io_type", 101,103,107,110).eq("wrk_sts", 13));
         for (WrkMast wrkMast : wrkMasts) {
             try {
                 ghjtHandler.startCkrwPushGwcs(wrkMast);
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 1fafebb..ef96677 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -61,7 +61,7 @@
         }
     }
 
-    @Scheduled(cron = "0/3 * * * * ? ")
+//    @Scheduled(cron = "0/3 * * * * ? ")
     private void execute202(){
         BasDevp basDevp = basDevpService.selectById(144);
         if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y")){
diff --git a/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java b/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java
index 662f4af..111516e 100644
--- a/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java
@@ -1,13 +1,16 @@
 package com.zy.asrs.task.handler;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.WrkDetl;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.mapper.OrderMapper;
 import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.WrkDetlService;
 import com.zy.common.constant.MesConstant;
 import com.zy.common.utils.HttpHandler;
 import lombok.extern.slf4j.Slf4j;
@@ -17,7 +20,9 @@
 
 import javax.annotation.Resource;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author pang.jiabao
@@ -37,6 +42,9 @@
     @Resource
     private WrkMastMapper wrkMastMapper;
 
+    @Resource
+    private WrkDetlService wrkDetlService;
+
     @Transactional
     public void startCkrwPushGwcs(WrkMast wrkMast) {
 
@@ -44,11 +52,15 @@
         Map<String, Object> headers = new HashMap<>();
         headers.put("Content-Type", "application/json;charset=UTF-8");
 
+        // 涓嬪彂缁檊wcs瑕佽蛋鐨勮矾寰勬爣璇�
+        int descFlag = getDescToGwcs(wrkMast);
+
         // 鏋勯�犺姹備綋
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("workNo", wrkMast.getWrkNo());
         jsonObject.put("staNo", wrkMast.getStaNo());
         jsonObject.put("sourceStaNo", wrkMast.getSourceStaNo());
+        jsonObject.put("descFlag", descFlag); // 101鍑哄簱鏃剁敤锛�0鍙湁涓�鏉¤矾寰勶紝1鐞嗚揣璐存爣璺緞锛�2璐存爣鎵撳甫璺緞
         String body = jsonObject.toJSONString();
 
         boolean success = false;
@@ -89,6 +101,30 @@
         }
     }
 
+    /**
+     * 鍏ㄦ澘鍑哄簱鍒�3077鎴�3106鐨勪换鍔★紝鍒ゆ柇鍑哄簱瑕佽蛋鐨勮矾寰�
+     * @param wrkMast 宸ヤ綔涓绘。
+     * @return 0.鍙湁涓�鏉¤矾寰勶紝1.鐞嗚揣璐存爣鍑哄簱璺緞锛�2.璐存爣鎵撳甫鍑哄簱璺緞
+     */
+    private int getDescToGwcs(WrkMast wrkMast) {
+        int flag = 0;
+        if (wrkMast.getIoType() == 101 && (wrkMast.getStaNo() == 3077 || wrkMast.getStaNo() == 3106)) {
+            List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+            // 鍑虹殑鐗╂枡鏈夊嚑涓綅缃�
+            List<String> collect = wrkDetls.stream().map(WrkDetl::getOrigin).distinct().collect(Collectors.toList());
+            if (collect.size() == 1) { // 涓�绠�
+                if (wrkDetls.size() == 1) { // 涓�鍗峰幓璐存爣
+                     flag = 1;
+                } else { // 澶氬嵎鐩存帴鍑�
+
+                }
+            } else if(collect.size() == 2) { // 涓ょ鍘昏创鏍囨墦甯�
+                    flag = 2;
+            }
+        }
+        return flag;
+    }
+
     @Transactional
     public void OutBoundCompleteReport(Order order) {
 
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 4ca6f44..1dc9867 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -157,9 +157,14 @@
                     }
                     for (WrkDetl wrkDetl : wrkDetls53) {
 
-                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+                        // 绠卞彿+鍗峰彿
+                        LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("batch",wrkDetl.getBatch())
+                                .eq("model",wrkDetl.getModel()));
                         if (null != locDetl) {
-                            if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+
+//                            if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+                            if (!locDetlService.updateAnfme2(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getModel(), wrkDetl.getBatch())) {
 //                                exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                 return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index adb8138..a87dcd3 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -84,6 +84,23 @@
         and matnr = #{matnr}
         <include refid="batchSeq"></include>
     </update>
+    <delete id="deleteItem2">
+        delete from asr_loc_detl
+        where 1=1
+        and loc_no = #{locNo}
+        and model = #{model}
+        <include refid="batchSeq"></include>
+    </delete>
+
+    <update id="updateAnfme2">
+        update asr_loc_detl
+        set anfme = #{anfme}
+        , modi_time = getdate()
+        where 1=1
+        and loc_no = #{locNo}
+        and model = #{model}
+        <include refid="batchSeq"></include>
+    </update>
 
     <sql id="stockOutCondition">
         <if test="loc_no!=null and loc_no!='' ">

--
Gitblit v1.9.1