From b539f99fca278df53d53c54b7567e6685b8cf8ca Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 29 三月 2022 15:13:14 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/mapper/LocDetlMapper.java            |    2 ++
 src/main/java/com/zy/asrs/service/LocDetlService.java          |    4 +++-
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java    |   13 ++++++++++---
 src/main/resources/mapper/LocDetlMapper.xml                    |   17 +++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |    7 ++++++-
 5 files changed, 38 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index 3142824..896836b 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -15,6 +15,8 @@
 @Repository
 public interface LocDetlMapper extends BaseMapper<LocDetl> {
 
+    LocDetl selectItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @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 80a64a6..e498382 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -8,12 +8,14 @@
 
 public interface LocDetlService extends IService<LocDetl> {
 
+    LocDetl selectItem(String locNo, String matnr, String batch);
+
     Page<LocDetl> getStockOut(Page<LocDetl> page);
 
     /**
      * 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏋滄暟閲忎负0锛屽垯鍒犻櫎璁板綍
      */
-    boolean updateAnfme(Double anfme, String locNo, String matnr);
+    boolean updateAnfme(Double anfme, String locNo, String matnr, String batch);
 
     boolean updateLocNo(String newLocNo, String oldLocNo);
 
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 85cca1f..7b1f579 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -21,7 +21,7 @@
     }
 
     @Override
-    public boolean updateAnfme(Double anfme, String locNo, String matnr) {
+    public boolean updateAnfme(Double anfme, String locNo, String matnr, String batch) {
         if (anfme <= 0) {
             return delete(new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr", matnr));
         } else {
@@ -77,4 +77,9 @@
     public Double queryStockAnfme(String matnr, String batch) {
         return this.baseMapper.queryStockAnfme(matnr, batch);
     }
+
+    @Override
+    public LocDetl selectItem(String locNo, String matnr, String batch) {
+        return this.baseMapper.selectItem(locNo, matnr, batch);
+    }
 }
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 bf03c36..879ded8 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -6,6 +6,7 @@
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.utils.VersionUtils;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -17,6 +18,7 @@
 /**
  * Created by vincent on 2020/7/4
  */
+@Slf4j
 @Service
 @Transactional
 public class WorkMastHandler extends AbstractHandler<String> {
@@ -50,6 +52,7 @@
             if (null == locMast) {
                 exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
             }
+            assert locMast != null;
             switch (wrkMast.getIoType()) {
                 // 绌烘澘鍏ュ簱
                 case 10:
@@ -77,10 +80,10 @@
                     }
                     // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
                     for (WrkDetl wrkDetl : wrkDetls) {
-                        LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()).eq("matnr", wrkDetl.getMatnr()));
+
+                        LocDetl locDetl = locDetlService.selectItem(wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                         if (null != locDetl) {
-                            boolean res = locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr());
-                            if (!res) {
+                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr())) {
                                 exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                             }
                         } else {
@@ -95,6 +98,7 @@
                                 exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                             }
                         }
+
                         // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
                         try {
                             WaitPakin setParam = new WaitPakin();
@@ -249,6 +253,7 @@
                 exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
             }
         } catch (Exception e) {
+            log.error("fail", e);
             e.printStackTrace();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return FAIL.setMsg(e.getMessage());
@@ -263,6 +268,7 @@
             if (null == locMast) {
                 exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
             }
+            assert locMast != null;
             switch (wrkMast.getIoType()) {
                 // 鍏ㄦ澘鍑哄簱
                 case 101:
@@ -312,6 +318,7 @@
                 exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
             }
         } catch (Exception e) {
+            log.error("fail", e);
             e.printStackTrace();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return FAIL.setMsg(e.getMessage());
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index a7bd79d..0bfd94c 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -26,6 +26,23 @@
         <result column="appe_time" property="appeTime" />
     </resultMap>
 
+
+    <select id="selectItem" resultMap="BaseResultMap">
+        select top 1 *
+        from asr_loc_detl
+        where 1=1
+        and loc_no = #{locNo}
+        and matnr = #{matnr}
+        <choose>
+            <when test="batch != null and batch != ''">
+                and batch = #{batch}
+            </when>
+            <otherwise>
+                and (batch IS NULL OR batch = '')
+            </otherwise>
+        </choose>
+    </select>
+
     <sql id="stockOutCondition">
         <if test="loc_no!=null and loc_no!='' ">
             and a.loc_no like '%' + #{loc_no} + '%'

--
Gitblit v1.9.1