From 36ffb38bb1a5bb6c5238b9d272f6787a966ec44b Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期六, 02 四月 2022 10:07:40 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  168 +++++++++++++++++----------
 src/main/resources/mapper/AdjDetlMapper.xml                 |    3 
 src/main/java/com/zy/asrs/entity/AdjDetl.java               |  146 ++---------------------
 3 files changed, 122 insertions(+), 195 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/AdjDetl.java b/src/main/java/com/zy/asrs/entity/AdjDetl.java
index faca7f8..67bccb3 100644
--- a/src/main/java/com/zy/asrs/entity/AdjDetl.java
+++ b/src/main/java/com/zy/asrs/entity/AdjDetl.java
@@ -7,15 +7,16 @@
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
 import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.MatService;
-import com.zy.system.service.UserService;
 import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+@Data
 @TableName("asr_adj_detl")
 public class AdjDetl implements Serializable {
 
@@ -37,11 +38,16 @@
     private String locNo;
 
     /**
-     * 鐗╂枡缂栧彿
+     * 鍟嗗搧缂栧彿
      */
-    @ApiModelProperty(value= "鐗╂枡缂栧彿")
-    @TableField("mat_no")
-    private String matNo;
+    @ApiModelProperty(value= "鍟嗗搧缂栧彿")
+    private String matnr;
+
+    /**
+     * 鎵瑰彿
+     */
+    @ApiModelProperty(value= "鎵瑰彿")
+    private String batch;
 
     /**
      * 鍘熺鏁�
@@ -121,9 +127,10 @@
 
     public AdjDetl() {}
 
-    public AdjDetl(String locNo,String matNo,Double oriCtns,Double oriQty,Double oriWt,Double adjCtns,Double adjQty,Double adjWt,String memo,Long modiUser,Date modiTime,Long appeUser,Date appeTime) {
+    public AdjDetl(String locNo, String matnr, String batch, Double oriCtns, Double oriQty, Double oriWt, Double adjCtns, Double adjQty, Double adjWt, String memo, Long modiUser, Date modiTime, Long appeUser, Date appeTime) {
         this.locNo = locNo;
-        this.matNo = matNo;
+        this.matnr = matnr;
+        this.batch = batch;
         this.oriCtns = oriCtns;
         this.oriQty = oriQty;
         this.oriWt = oriWt;
@@ -137,9 +144,10 @@
         this.appeTime = appeTime;
     }
 
-//    AdjDetl adjDetl = new AdjDetl(
+    //    AdjDetl adjDetl = new AdjDetl(
 //            null,    // 搴撲綅鍙穂闈炵┖]
 //            null,    // 鐗╂枡缂栧彿[闈炵┖]
+//            null,    // 鎵瑰彿
 //            null,    // 鍘熺鏁�
 //            null,    // 鍘熸暟閲�
 //            null,    // 鍘熼噸閲�
@@ -153,17 +161,6 @@
 //            null    // 娣诲姞鏃堕棿
 //    );
 
-    public Long getAdjId() {
-        return adjId;
-    }
-
-    public void setAdjId(Long adjId) {
-        this.adjId = adjId;
-    }
-
-    public String getLocNo() {
-        return locNo;
-    }
 
     public String getLocNo$(){
         LocMastService service = SpringUtils.getBean(LocMastService.class);
@@ -174,86 +171,6 @@
         return null;
     }
 
-    public void setLocNo(String locNo) {
-        this.locNo = locNo;
-    }
-
-    public String getMatNo() {
-        return matNo;
-    }
-
-    public String getMatNo$(){
-        MatService service = SpringUtils.getBean(MatService.class);
-        Mat mat = service.selectByMatnr(this.matNo);
-        if (!Cools.isEmpty(mat)){
-            return String.valueOf(mat.getMatnr());
-        }
-        return null;
-    }
-
-    public void setMatNo(String matNo) {
-        this.matNo = matNo;
-    }
-
-    public Double getOriCtns() {
-        return oriCtns;
-    }
-
-    public void setOriCtns(Double oriCtns) {
-        this.oriCtns = oriCtns;
-    }
-
-    public Double getOriQty() {
-        return oriQty;
-    }
-
-    public void setOriQty(Double oriQty) {
-        this.oriQty = oriQty;
-    }
-
-    public Double getOriWt() {
-        return oriWt;
-    }
-
-    public void setOriWt(Double oriWt) {
-        this.oriWt = oriWt;
-    }
-
-    public Double getAdjCtns() {
-        return adjCtns;
-    }
-
-    public void setAdjCtns(Double adjCtns) {
-        this.adjCtns = adjCtns;
-    }
-
-    public Double getAdjQty() {
-        return adjQty;
-    }
-
-    public void setAdjQty(Double adjQty) {
-        this.adjQty = adjQty;
-    }
-
-    public Double getAdjWt() {
-        return adjWt;
-    }
-
-    public void setAdjWt(Double adjWt) {
-        this.adjWt = adjWt;
-    }
-
-    public String getMemo() {
-        return memo;
-    }
-
-    public void setMemo(String memo) {
-        this.memo = memo;
-    }
-
-    public Long getModiUser() {
-        return modiUser;
-    }
 
     public String getModiUser$(){
         UserService service = SpringUtils.getBean(UserService.class);
@@ -264,35 +181,11 @@
         return null;
     }
 
-    public void setModiUser(Long modiUser) {
-        this.modiUser = modiUser;
-    }
-
-    public Date getModiTime() {
-        return modiTime;
-    }
-
     public String getModiTime$(){
         if (Cools.isEmpty(this.modiTime)){
             return "";
         }
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
-    }
-
-    public void setModiTime(Date modiTime) {
-        this.modiTime = modiTime;
-    }
-
-    public Long getAppeUser() {
-        return appeUser;
-    }
-
-    public void setAppeUser(Long appeUser) {
-        this.appeUser = appeUser;
-    }
-
-    public Date getAppeTime() {
-        return appeTime;
     }
 
     public String getAppeTime$(){
@@ -301,10 +194,5 @@
         }
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
     }
-
-    public void setAppeTime(Date appeTime) {
-        this.appeTime = appeTime;
-    }
-
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index d257470..ec01caa 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -584,80 +584,118 @@
         if (Cools.isEmpty(locMast)) {
             throw new CoolException("搴撲綅涓嶅瓨鍦�");
         }
-        for (LocDetlAdjustParam.LocDetlAdjust adjust : param.getList()) {
-            if (Cools.isEmpty(adjust.getMatnr())) {
-                throw new CoolException(BaseRes.PARAM);
-            }
-            LocDetl sqlParam = new LocDetl();
-            sqlParam.setLocNo(locMast.getLocNo());
-            sqlParam.setMatnr(adjust.getMatnr());
-            LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
-            // 淇濆瓨鏂板簱瀛樻槑缁�
-            if (Cools.isEmpty(one)) {
-                if (adjust.getCount() == 0){
-                    continue;
-                }
-                Mat mat = matService.selectByMatnr(adjust.getMatnr());
-                LocDetl locDetl = new LocDetl();
-                locDetl.sync(mat);
-                locDetl.setLocNo(locMast.getLocNo());
-                locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
-                locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
-                locDetl.setModiTime(new Date());
-                locDetl.setAppeUser(userId);
-                locDetl.setAppeTime(new Date());
-                if (!locDetlService.insert(locDetl)) {
-                    throw new CoolException("淇濆瓨搴撳瓨鏄庣粏澶辫触");
-                }
-                // 淇濆瓨璋冩暣璁板綍
-                AdjDetl adjDetl = new AdjDetl();
-                adjDetl.setLocNo(locDetl.getLocNo());
-                adjDetl.setMatNo(locDetl.getMatnr());
-                adjDetl.setOriQty(0.0D);
-                adjDetl.setAdjQty(adjust.getCount());
-                adjDetlService.save(adjDetl, userId);
-            // 淇敼鍘熷簱瀛樻槑缁�
-            } else {
-                // 濡傛灉鏁伴噺淇敼锛屽垯鏇存柊搴撳瓨鏄庣粏
-                if (!adjust.getCount().equals(one.getAnfme())) {
-                    // 褰撴暟閲忚淇敼涓� 0 鏃讹紝鐩存帴娓呴櫎搴撳瓨鏄庣粏
-                    if (adjust.getCount() == 0) {
-                        // 鍒犻櫎搴撳瓨
-                        if (!locDetlService.delete(new EntityWrapper<>(one))) {
-                            throw new CoolException("娓呴櫎搴撳瓨鏄庣粏澶辫触");
+        if (!(locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O"))) {
+            throw new CoolException("褰撳墠搴撲綅涓嶅彲璋冩暣锛佸簱浣嶇姸鎬侊細" + locMast.getLocSts$());
+        }
+
+        Date now = new Date();
+        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
+
+        List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList();
+
+        // 淇敼鏁伴噺
+        Iterator<LocDetl> iterator = locDetls.iterator();
+        while (iterator.hasNext()) {
+            LocDetl locDetl = iterator.next();
+
+            Iterator<LocDetlAdjustParam.LocDetlAdjust> iterator1 = list.iterator();
+            while (iterator1.hasNext()) {
+                LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next();
+                if (adjust.getCount() == 0) { continue; }
+                if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) {
+                    if (!locDetl.getAnfme().equals(adjust.getCount())) {
+                        // todo 鐩樼偣璁板綍
+                        // 淇敼搴撳瓨
+                        if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
+                            throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
                         }
-                    } else {
-                        LocDetl sqlParam1 = new LocDetl();
-                        sqlParam1.setAnfme(adjust.getCount());
-                        sqlParam1.setModiTime(new Date());
-                        sqlParam1.setModiUser(userId);
-                        if (!locDetlService.update(sqlParam1, new EntityWrapper<LocDetl>()
-                                .eq("loc_no", locMast.getLocNo())
-                                .eq("matnr", adjust.getMatnr()))) {
-                            throw new CoolException("淇敼搴撳瓨鏄庣粏澶辫触");
-                        }
+                        // 淇濆瓨璋冩暣璁板綍
+                        AdjDetl adjDetl = new AdjDetl();
+                        adjDetl.setLocNo(locDetl.getLocNo());
+                        adjDetl.setMatnr(locDetl.getMatnr());
+                        adjDetl.setBatch(locDetl.getBatch());
+                        adjDetl.setOriQty(locDetl.getAnfme());
+                        adjDetl.setAdjQty(adjust.getCount());
+                        adjDetl.setModiTime(now);
+                        adjDetl.setModiUser(userId);
+                        adjDetl.setAppeTime(now);
+                        adjDetl.setAppeUser(userId);
+                        adjDetlService.save(adjDetl, userId);
                     }
-                    // 淇濆瓨璋冩暣璁板綍
-                    AdjDetl adjDetl = new AdjDetl();
-                    adjDetl.setLocNo(locMast.getLocNo());
-                    adjDetl.setMatNo(adjust.getMatnr());
-                    adjDetl.setOriQty(one.getAnfme());
-                    adjDetl.setAdjQty(adjust.getCount());
-                    adjDetlService.save(adjDetl, userId);
+                    iterator.remove();
+                    iterator1.remove();
                 }
             }
         }
-        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
-        if (locDetls.isEmpty()) {
-            locMast.setLocSts("D");
-            locMast.setModiUser(userId);
-            locMast.setModiTime(new Date());
-            if (!locMastService.updateById(locMast)) {
-                throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+
+        // 鍒犻櫎搴撳瓨
+        for (LocDetl locDetl : locDetls) {
+            // todo 鐩樼偣璁板綍
+            if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
+                throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿搴撳瓨鏄庣粏澶辫触");
             }
+            // 淇濆瓨璋冩暣璁板綍
+            AdjDetl adjDetl = new AdjDetl();
+            adjDetl.setLocNo(locDetl.getLocNo());
+            adjDetl.setMatnr(locDetl.getMatnr());
+            adjDetl.setBatch(locDetl.getBatch());
+            adjDetl.setOriQty(locDetl.getAnfme());
+            adjDetl.setAdjQty(0.0D);
+            adjDetl.setModiTime(now);
+            adjDetl.setModiUser(userId);
+            adjDetl.setAppeTime(now);
+            adjDetl.setAppeUser(userId);
+            adjDetlService.save(adjDetl, userId);
+        }
+
+        // 娣诲姞搴撳瓨
+        for (LocDetlAdjustParam.LocDetlAdjust adjust : list) {
+            if (adjust.getCount() == 0.0D) { continue; }
+            Mat mat = matService.selectByMatnr(adjust.getMatnr());
+            LocDetl locDetl = new LocDetl();
+            locDetl.sync(mat);
+            locDetl.setLocNo(locMast.getLocNo());
+            locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
+            locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
+            locDetl.setModiTime(now);
+            locDetl.setAppeUser(userId);
+            locDetl.setAppeTime(now);
+            if (!locDetlService.insert(locDetl)) {
+                throw new CoolException("淇濆瓨搴撳瓨鏄庣粏澶辫触");
+            }
+            // 淇濆瓨璋冩暣璁板綍
+            AdjDetl adjDetl = new AdjDetl();
+            adjDetl.setLocNo(locMast.getLocNo());
+            adjDetl.setMatnr(adjust.getMatnr());
+            adjDetl.setBatch(adjust.getBatch());
+            adjDetl.setOriQty(0.0D);
+            adjDetl.setAdjQty(adjust.getCount());
+            adjDetl.setModiTime(now);
+            adjDetl.setModiUser(userId);
+            adjDetl.setAppeTime(now);
+            adjDetl.setAppeUser(userId);
+            adjDetlService.save(adjDetl, userId);
+        }
+        // 淇敼搴撲綅鐘舵��
+        int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+        if (locMast.getLocSts().equals("F")) {
+            if (count == 0) {
+                locMast.setLocSts("D");
+            }
+        }
+        if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) {
+            if (count > 0) {
+                locMast.setLocSts("F");
+            }
+        }
+        locMast.setModiUser(userId);
+        locMast.setModiTime(new Date());
+        if (!locMastService.updateById(locMast)) {
+            throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
         }
     }
 
+
     @Override
     @Transactional
     public void cancelWrkMast(String workNo, Long userId) {
diff --git a/src/main/resources/mapper/AdjDetlMapper.xml b/src/main/resources/mapper/AdjDetlMapper.xml
index cacf728..dd97389 100644
--- a/src/main/resources/mapper/AdjDetlMapper.xml
+++ b/src/main/resources/mapper/AdjDetlMapper.xml
@@ -6,7 +6,8 @@
     <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AdjDetl">
         <id column="adj_id" property="adjId" />
         <result column="loc_no" property="locNo" />
-        <result column="mat_no" property="matNo" />
+        <result column="matnr" property="matnr" />
+        <result column="batch" property="batch" />
         <result column="ori_ctns" property="oriCtns" />
         <result column="ori_qty" property="oriQty" />
         <result column="ori_wt" property="oriWt" />

--
Gitblit v1.9.1