From 84cfd49774d4aa0e475b319a70a411c4cc078694 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期四, 13 六月 2024 16:18:32 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OrderController.java         |    5 ++
 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 |   19 +++++++++
 src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java    |    8 +++-
 src/main/resources/mapper/AgvLocDetlMapper.xml                    |   40 ++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java  |    2 
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java    |    6 +-
 src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java  |    1 
 src/main/java/com/zy/asrs/controller/OrderDetlController.java     |    2 
 10 files changed, 85 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index 438228d..4ff89c0 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -279,6 +279,9 @@
             if (orderDetl.getProcessSts() == 1) {
                 flag = true;
             }
+            if (param.getDocType() != 32) {
+                orderDetl.setProcessSts(3);
+            }
             DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
             if (DetlDto.has(list, dto)) {
                 OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime());
@@ -746,6 +749,8 @@
                         proSts = 3;
                     }
                 }
+            } else {
+                proSts = 3;
             }
 
 
diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
index 28cb552..1906679 100644
--- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -187,7 +187,7 @@
         wrapper.in("source",docIds);
         Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
         for (OrderDetl record : page.getRecords()) {
-            Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
+            Double sumAnfme = agvLocDetlService.getSumAnfmeProcessed(record.getMatnr(), record.getThreeCode());
             record.setStock(sumAnfme == null ? 0 : sumAnfme);
         }
 
diff --git a/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java b/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java
index 64e50e3..10b159e 100644
--- a/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java
@@ -42,7 +42,10 @@
         //璐ф灦鐮�
         private String suppCode;
 
-        public LocDetlAdjust(String matnr, String batch, Double count, String orderNo,String threeCode, String deadTime, String suppCode) {
+        // 宸ュ簭
+        private Integer processSts;
+
+        public LocDetlAdjust(String matnr, String batch, Double count, String orderNo,String threeCode, String deadTime, String suppCode, Integer processSts) {
             this.matnr = matnr;
             this.batch = batch;
             this.count = count;
@@ -50,6 +53,7 @@
             this.threeCode = threeCode;
             this.deadTime = deadTime;
             this.suppCode = suppCode;
+            this.processSts = processSts;
         }
     }
 
@@ -68,7 +72,7 @@
                 }
             }
             if (!exit) {
-                copyList.add(new LocDetlAdjustParam.LocDetlAdjust(adjust.getMatnr(), adjust.getBatch(), adjust.getCount(),adjust.getOrderNo(), adjust.getThreeCode(), adjust.getDeadTime(),adjust.getSuppCode()));
+                copyList.add(new LocDetlAdjustParam.LocDetlAdjust(adjust.getMatnr(), adjust.getBatch(), adjust.getCount(),adjust.getOrderNo(), adjust.getThreeCode(), adjust.getDeadTime(),adjust.getSuppCode(),adjust.getProcessSts()));
             }
         }
         list = copyList;
diff --git a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
index 26a6af2..5349c93 100644
--- a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
@@ -28,6 +28,9 @@
     @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts = 1")
     Double selectSumAnfmeByMatnrProcess(@Param("matnr") String matnr,@Param("threeCode") String threeCode);
 
+    @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts != 1 AND b.lev1 != 2")
+    Double selectSumAnfmeByMatnrProcessed(@Param("matnr") String matnr,@Param("threeCode") String threeCode);
+
     @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where (b.loc_sts = 'F' or b.loc_sts = 'R') and b.floor = #{floor} and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts != 1")
     Double selectSumAnfmeByMatnr2(@Param("matnr") String matnr,@Param("threeCode") String threeCode,@Param("floor") Integer floor);
 
@@ -52,6 +55,8 @@
 
     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 updateAnfmeProcess(@Param("locNo")String locNo, @Param("anfme")Double anfme, @Param("matnr")String matnr, @Param("batch")String batch, @Param("csocode")String csocode, @Param("isocode")String isocode, @Param("process")Integer process);
+
     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 ad725e0..b6debfe 100644
--- a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
@@ -24,6 +24,8 @@
 
     Double getSumAnfmeProcess(String matnr, String threeCode);
 
+    Double getSumAnfmeProcessed(String matnr, String threeCode);
+
     Double getSumAnfmeDb(String matnr, String threeCode, Integer floor);
 
     Integer sum();
@@ -37,6 +39,8 @@
      */
     boolean updateAnfme(Double anfme, String locNo, String matnr, String batch, String csocode, String isocode);
 
+    boolean updateAnfmeProcess(Double anfme, String locNo, String matnr, String batch, String csocode, String isocode,Integer process);
+
     public AgvLocDetl selectByLocNo(String locNo);
 
     public List<AgvLocDetl> selectByTaskDto(TaskDto taskDto);
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 08963bf..f0208a0 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -133,6 +133,11 @@
     }
 
     @Override
+    public Double getSumAnfmeProcessed(String matnr, String threeCode) {
+        return this.baseMapper.selectSumAnfmeByMatnrProcessed(matnr, threeCode);
+    }
+
+    @Override
     public Double getSumAnfmeDb(String matnr, String threeCode,Integer floor) {
         return this.baseMapper.selectSumAnfmeByMatnr2(matnr, threeCode, floor);
     }
@@ -185,6 +190,20 @@
         }
     }
 
+    public boolean updateAnfmeProcess(Double anfme, String locNo, String matnr, String batch, String csocode, String isocode, Integer process) {
+        EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>();
+        wrapper.eq("loc_no", locNo);
+        Utils.confirmOnlyMat(wrapper,matnr,batch,csocode,isocode);
+        if (anfme <= 0) {
+            return this.baseMapper.deleteLocDetl(locNo,anfme,matnr,batch,csocode,isocode) > 0;
+        } else {
+            AgvLocDetl agvLocDetl = this.selectOne(wrapper);
+            agvLocDetl.setAnfme(anfme);
+            agvLocDetl.setModiTime(new Date());
+            return this.baseMapper.updateAnfmeProcess(locNo,anfme,matnr,batch,csocode,isocode,process) > 0;
+        }
+    }
+
 
     private void wapperSetCondition(Wrapper wrapper,String column, String condition){
         if(Cools.isEmpty(condition)){
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index f31eea5..ce68d4b 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -425,7 +425,7 @@
             throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
         }
         //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
-        AgvLocMast locMast = agvCommonService.getLocNo(agvLocMast.getLocType1(),floor,false,true);
+        AgvLocMast locMast = agvCommonService.getLocNo(agvLocMast.getLocType1(),floor,false,false);
         if (Cools.isEmpty(locMast)) {
             throw new CoolException("褰撳墠妤煎眰娌℃湁绌哄簱浣�");
         }
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 b1196b0..c7ac287 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -565,10 +565,10 @@
                 LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next();
                 if (adjust.getCount() == 0) { continue; }
                 if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch()) && Cools.eq(locDetl.getSuppCode(),adjust.getSuppCode()) && Cools.eq(locDetl.getThreeCode(),adjust.getThreeCode()) && Cools.eq(locDetl.getDeadTime(),adjust.getDeadTime())) {
-                    if (!locDetl.getAnfme().equals(adjust.getCount())) {
+                    if (!locDetl.getAnfme().equals(adjust.getCount()) || !locDetl.getProcessSts().equals(adjust.getProcessSts())) {
                         // todo 鐩樼偣璁板綍
                         // 淇敼搴撳瓨
-                        if (!agvLocDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime())) {
+                        if (!agvLocDetlService.updateAnfmeProcess(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime(),adjust.getProcessSts())) {
                             throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佷慨鏀规暟閲忓け璐�");
                         }
                         // 淇濆瓨璋冩暣璁板綍
@@ -599,7 +599,7 @@
         // 鍒犻櫎搴撳瓨
         for (AgvLocDetl locDetl : locDetls) {
             // todo 鐩樼偣璁板綍
-            if (!agvLocDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime())) {
+            if (!agvLocDetlService.updateAnfmeProcess(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime(),locDetl.getProcessSts())) {
                 throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�");
             }
             // 淇濆瓨璋冩暣璁板綍
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
index e3f57a5..ae86e2c 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -224,6 +224,7 @@
         switch (agvWrkMast.getIoType()) {
             case 108:
             case 12:
+            case 57:
                 agvTaskCreateParam.setTaskTyp("F06");
                 break;
             case 109:
diff --git a/src/main/resources/mapper/AgvLocDetlMapper.xml b/src/main/resources/mapper/AgvLocDetlMapper.xml
index 7fdc6f0..e89b589 100644
--- a/src/main/resources/mapper/AgvLocDetlMapper.xml
+++ b/src/main/resources/mapper/AgvLocDetlMapper.xml
@@ -153,6 +153,46 @@
         </choose>
     </update>
 
+    <update id="updateAnfmeProcess">
+        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>
+        <choose>
+            <when test="process != null and process != ''">
+                and process_sts = #{process}
+            </when>
+            <otherwise>
+                and (process_sts IS NULL OR process_sts = '')
+            </otherwise>
+        </choose>
+    </update>
+
     <delete id = "deleteLocDetl">
         delete from agv_loc_detl
         where 1=1

--
Gitblit v1.9.1