From 2a542491b78e75cfa0a22b4c6eb6e6087bf2746e Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期六, 11 十一月 2023 13:28:10 +0800
Subject: [PATCH] bug修复

---
 src/main/java/com/zy/asrs/service/AgvLocDetlService.java          |    4 +
 src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java            |    5 +
 src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java |   16 ++++-
 src/main/resources/mapper/AgvLocDetlMapper.xml                    |   95 +++++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java    |    9 ++-
 5 files changed, 121 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
index fdeb592..7523098 100644
--- a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
@@ -37,4 +37,9 @@
     @Select("SELECT SUM(anfme) FROM agv_loc_detl WHERE loc_no = #{locNo}")
     Double sumByLocNo(@Param("locNo")String locNo);
 
+    int updateAnfme(@Param("locNo")String locNo, @Param("anfme")Double anfme, @Param("matnr")String matnr, @Param("batch")String batch, @Param("csocode")String csocode, @Param("isocode")String isocode);
+
+    int deleteLocDetl(@Param("locNo")String locNo, @Param("anfme")Double anfme, @Param("matnr")String matnr, @Param("batch")String batch, @Param("csocode")String csocode, @Param("isocode")String isocode);
+
+    AgvLocDetl selectLocdetl(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("csocode")String csocode, @Param("isocode")String isocode);
 }
diff --git a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
index dc3a97a..22cda63 100644
--- a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
@@ -33,8 +33,10 @@
 
     public List<AgvLocDetl> selectByTaskDto(TaskDto taskDto);
 
-    public AgvLocDetl selectByMatnrAndBatchAndCsocodeAndisoCode(String matnr, String batch, String csocode, String isocode);
+    public AgvLocDetl selectByMatnrAndBatchAndCsocodeAndisoCode(String locNo, String matnr, String batch, String csocode, String isocode);
 
     public Double selectSumAnfmeByLocNo(String locNo);
 
+    public AgvLocDetl selectLocdetl(String locNo,String matnr,String batch,String csocode,String isocode);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
index 6b13866..971d784 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -140,12 +140,13 @@
         Utils.confirmOnlyMat(wrapper,matnr,batch,csocode,isocode);
         wrapper.eq("loc_no", locNo);
         if (anfme <= 0) {
-            return this.delete(wrapper);
+            return this.baseMapper.deleteLocDetl(locNo,anfme,matnr,batch,csocode,isocode) > 0;
         } else {
             AgvLocDetl agvLocDetl = this.selectOne(wrapper);
             agvLocDetl.setAnfme(anfme);
-            return this.update(agvLocDetl,wrapper);
+            //return this.update(agvLocDetl,wrapper);
             //return baseMapper.updateAnfme(anfme, locNo, matnr, batch) > 0;
+            return this.baseMapper.updateAnfme(locNo,anfme,matnr,batch,csocode,isocode) > 0;
         }
     }
 
@@ -181,15 +182,17 @@
         List<AgvLocDetl> agvLocDetls = new ArrayList<>();
 
         taskDto.getLocDtos().forEach(locDto -> {
-            AgvLocDetl agvLocDetl = this.selectByMatnrAndBatchAndCsocodeAndisoCode(locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq());
+            AgvLocDetl agvLocDetl = this.selectByMatnrAndBatchAndCsocodeAndisoCode(locDto.getLocNo(),locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq());
+            //AgvLocDetl agvLocDetl = this.selectLocdetl(locDto.getLocNo(),locDto.getMatnr(),locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq());
             agvLocDetls.add(agvLocDetl);
         });
         return agvLocDetls;
     }
 
     @Override
-    public AgvLocDetl selectByMatnrAndBatchAndCsocodeAndisoCode(String matnr, String batch, String csocode, String isocode) {
+    public AgvLocDetl selectByMatnrAndBatchAndCsocodeAndisoCode(String locNo, String matnr, String batch, String csocode, String isocode) {
         EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>();
+        wrapper.eq("loc_no",locNo);
         Utils.confirmOnlyMat(wrapper,matnr,batch,csocode,isocode);
         return this.selectOne(wrapper);
     }
@@ -199,5 +202,10 @@
         return this.baseMapper.sumByLocNo(locNo);
     }
 
+    @Override
+    public AgvLocDetl selectLocdetl(String locNo, String matnr, String batch, String csocode, String isocode) {
+        return this.baseMapper.selectLocdetl(locNo,matnr,batch,csocode,isocode);
+    }
+
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index 5d02d6a..3bc500b 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -127,13 +127,14 @@
             long wrkSts = 21L;
             String sourceLocNo = taskDto.getLocNo();
             String targetLocNo = taskDto.getAgvStaNo();
-            String barcode = agvLocDetls.get(0).getSuppCode();
+            //String barcode = agvLocDetls.get(0).getSuppCode();
+            String containerCode = taskDto.getLocDtos().get(0).getContainerCode();
 
 
             //鍒ゆ柇鏄惁鍏ㄦ澘鍑哄簱
             int ioType = isPakOut(sourceLocNo,taskDto) ?  101 : 103;
             //鐢熸垚宸ヤ綔妗�
-            AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,barcode,now,userId,false);
+            AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,false);
             //鐢熸垚宸ヤ綔妗f槑缁�
             taskDto.getLocDtos().forEach(locDto -> {
                 //鏄庣粏妗f墍闇�鍙傛暟
@@ -193,7 +194,9 @@
                 //agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo()));
                 //淇敼搴撳瓨淇℃伅
                 agvWrkDetlList.forEach(agvWrkDetl -> {
-                    AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
+                    AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
+
+                    //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
                     double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
                     agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
                 });
diff --git a/src/main/resources/mapper/AgvLocDetlMapper.xml b/src/main/resources/mapper/AgvLocDetlMapper.xml
index b5ad69e..7fdc6f0 100644
--- a/src/main/resources/mapper/AgvLocDetlMapper.xml
+++ b/src/main/resources/mapper/AgvLocDetlMapper.xml
@@ -90,6 +90,100 @@
         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
     </select>
 
+    <select id="selectLocdetl" resultType="com.zy.asrs.entity.AgvLocDetl">
+        select * from agv_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>
+        <choose>
+            <when test="csocode != null and csocode != ''">
+                and three_code = #{csocode}
+            </when>
+            <otherwise>
+                and (three_code IS NULL OR three_code = '')
+            </otherwise>
+        </choose>
+        <choose>
+            <when test="isocode != null and isocode != ''">
+                and dead_time = #{isocode}
+            </when>
+            <otherwise>
+                and (dead_time IS NULL OR dead_time = '')
+            </otherwise>
+        </choose>
+    </select>
+
+    <update id="updateAnfme">
+        update agv_loc_detl
+        set anfme = #{anfme}
+        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>
+        <choose>
+            <when test="csocode != null and csocode != ''">
+                and three_code = #{csocode}
+            </when>
+            <otherwise>
+                and (three_code IS NULL OR three_code = '')
+            </otherwise>
+        </choose>
+        <choose>
+            <when test="isocode != null and isocode != ''">
+                and dead_time = #{isocode}
+            </when>
+            <otherwise>
+                and (dead_time IS NULL OR dead_time = '')
+            </otherwise>
+        </choose>
+    </update>
+
+    <delete id = "deleteLocDetl">
+        delete from agv_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>
+        <choose>
+            <when test="csocode != null and csocode != ''">
+                and three_code = #{csocode}
+            </when>
+            <otherwise>
+                and (three_code IS NULL OR three_code = '')
+            </otherwise>
+        </choose>
+        <choose>
+            <when test="isocode != null and isocode != ''">
+                and dead_time = #{isocode}
+            </when>
+            <otherwise>
+                and (dead_time IS NULL OR dead_time = '')
+            </otherwise>
+        </choose>
+    </delete>
+
     <select id="getStockStatisCount" parameterType="java.util.Map" resultType="java.lang.Integer">
         select count(1) as count from
         (
@@ -101,4 +195,5 @@
         group by a.matnr
         ) b
     </select>
+
 </mapper>

--
Gitblit v1.9.1