From f6513ffa7e2efe2a4dc81626c7aab9cf643f8f41 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期四, 14 三月 2024 10:14:28 +0800
Subject: [PATCH] 1.增加牌号作为唯一物料条件 (当前牌号 批号 包号可以筛选出唯一物料) 2.增加移库接口 3.订单出库可替换物料 4.页面ui完善

---
 src/main/webapp/views/pla/sellout.html                        |    3 +
 src/main/webapp/static/js/picking/picking.js                  |    4 +-
 src/main/java/com/zy/asrs/entity/param/PlaParam.java          |   11 +++++
 src/main/webapp/static/js/pla/plaDetl.js                      |    1 
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   68 +++++++++++++++++++++++++++++++++-
 src/main/java/com/zy/asrs/controller/MobileController.java    |   24 ++++++++++--
 src/main/java/com/zy/asrs/service/MobileService.java          |    3 +
 7 files changed, 104 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 01339ec..1f7d8d6 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -429,7 +429,7 @@
         JSONArray jsonArray = JSONArray.parseArray(json.getJSONArray("pla").toJSONString());
         for (Object o : jsonArray){
             JSONObject jsonObject = (JSONObject)o;
-            String brand = json.get("brand").toString();
+            String brand = jsonObject.get("brand").toString();
             String batch = jsonObject.get("batch").toString();
             Integer packageNo = Integer.parseInt(jsonObject.get("packageNo").toString());
             if(Cools.isEmpty(locNo) || Cools.isEmpty(batch) || Cools.isEmpty(packageNo)){
@@ -456,12 +456,13 @@
         String orderDetlId = json.get("orderDetlId").toString();
         String wrkNo = json.get("wrkNo").toString();
         Double anfme = Double.parseDouble(json.get("anfme").toString());
+        boolean isReplace = Cools.eq(json.get("replace").toString(),"y");
 
         if(Cools.isEmpty(locNo) || Cools.isEmpty(batch) || Cools.isEmpty(packageNo)){
             return R.error("鏈夊弬鏁颁负绌猴紝鏃犳硶鍏ュ簱");
         }
 
-        mobileService.plaPakout(brand,locNo,batch,packageNo,orderNo,orderDetlId,wrkNo,anfme);
+        mobileService.plaPakout(brand,locNo,batch,packageNo,orderNo,orderDetlId,wrkNo,anfme,isReplace);
         return R.ok();
     }
 
@@ -473,15 +474,30 @@
         String batch = json.get("batch").toString();
         Integer packageNo = Integer.parseInt(json.get("packageNo").toString());
         String orderNo = json.get("orderNo").toString();
-        String orderDetlId = json.get("orderDetlId").toString();
+        String plaQtyId = json.get("orderDetlId").toString();
         String wrkNo = json.get("wrkNo").toString();
         Double anfme = Double.parseDouble(json.get("anfme").toString());
+        boolean isReplace = !Cools.isEmpty(json.get("replace")) && Cools.eq(json.get("replace").toString(),"y");
 
         if(Cools.isEmpty(locNo) || Cools.isEmpty(batch) || Cools.isEmpty(packageNo)){
             return R.error("鏈夊弬鏁颁负绌猴紝鏃犳硶鍏ュ簱");
         }
 
-        mobileService.plaPakout(brand,locNo,batch,packageNo,orderNo,orderDetlId,wrkNo,anfme);
+        mobileService.plaPakout(brand,locNo,batch,packageNo,orderNo,plaQtyId,wrkNo,anfme,isReplace);
+        return R.ok();
+    }
+
+    /*
+    鏃犺鍗曟嫞璐у嚭搴�
+     */
+    @RequestMapping("/plaDetl/packout/noOrder/v1")
+    //@ManagerAuth(memo="pla鎵嬪姩鍑哄簱")
+    public R plaPackOutWithoutOrder(@RequestBody List<PlaParam> params){
+
+        for (PlaParam param : params){
+            mobileService.plaPackOutWithoutOrder(param.getBrand(),param.getBatch(),param.getPackageNo(),param.getAnfme());
+        }
+
         return R.ok();
     }
 
diff --git a/src/main/java/com/zy/asrs/entity/param/PlaParam.java b/src/main/java/com/zy/asrs/entity/param/PlaParam.java
new file mode 100644
index 0000000..7282bf9
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/PlaParam.java
@@ -0,0 +1,11 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class PlaParam {
+    private String brand;
+    private String batch;
+    private Integer packageNo;
+    private Double anfme;
+}
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index 648f6b1..88b92ab 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -58,8 +58,9 @@
 
     void plaPakin(String brand,String locNo, String batch, Integer packageNo, User user);
 
-    void plaPakout(String brand,String locNo, String batch, Integer packageNo, String orderNo, String orderDetlId, String wrkNo,Double anfme);
+    void plaPakout(String brand,String locNo, String batch, Integer packageNo, String orderNo, String plaQtyId, String wrkNo,Double anfme, boolean isReplace);
 
+    void plaPackOutWithoutOrder(String brand, String batch, Integer packageNo, Double anfme );
     /*
     鑾峰彇鎷h揣鍗曚俊鎭�
      */
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index a86628f..472d23b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1236,12 +1236,24 @@
 
     @Override
     @Transactional
-    public void plaPakout(String brand, String locNo, String batch, Integer packageNo, String orderNo, String orderDetlId, String wrkNo, Double anfme) {
+    public void plaPakout(String brand, String locNo, String batch, Integer packageNo, String orderNo, String plaQtyId, String wrkNo, Double anfme, boolean isReplace) {
         Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo,brand);
 
         ManPakOut manPakOut = manPakOutService.selectById(wrkNo);
 
-        PlaQty plaQty = plaQtyService.selectById(orderDetlId);
+        PlaQty plaQty = plaQtyService.selectById(plaQtyId);
+
+        //鐗╂枡鏇挎崲
+        if(isReplace){
+            replacePla(pla,manPakOut,plaQty);
+        }else {
+            if(!Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_2) ||
+                    !Cools.eq(pla.getBatch(),manPakOut.getBatch()) ||
+                    !Cools.eq(pla.getPackageNo()+"",manPakOut.getBarcode()) ||
+                    !Cools.eq(pla.getBrand(),manPakOut.getMaktx()) ){
+                throw new CoolException("鐗╂枡涓嶄竴鑷达紝鏃犳硶鍑哄簱" + "鎵瑰彿锛�" + pla.getBatch() + "锛屽寘鍙凤細" + pla.getPackageNo() + "锛岀墝鍙凤細" + pla.getBrand());
+            }
+        }
 
         //鏇存柊鎷h揣鍗曚俊鎭�
         if(manPakOut.getCount() + anfme > manPakOut.getAnfme()){
@@ -1285,7 +1297,59 @@
     }
 
     @Override
+    public void plaPackOutWithoutOrder(String brand, String batch, Integer packageNo, Double anfme) {
+        Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo,brand);
+        if(Cools.isEmpty(pla)){
+            throw new CoolException("褰撳墠鐗╂枡鏄庣粏涓嶅瓨鍦�");
+        }
+        if (!pla.getStatus().equals(GlobleParameter.PLA_STATUS_1) && !pla.getStatus().equals(GlobleParameter.PLA_STATUS_3)){
+            throw new CoolException("褰撳墠鐗╂枡鐘舵�佹棤娉曞嚭搴�");
+        }
+        if(anfme > pla.getWeightAnfme()){
+            throw new CoolException("褰撳墠鐗╂枡鍓╀綑搴撳瓨涓嶈冻");
+        }
+
+
+        pla.setWeightAnfme(pla.getWeightAnfme() - anfme);
+        if(pla.getWeightAnfme() > 0){
+            pla.setStatus(GlobleParameter.PLA_STATUS_3);
+        }else {
+            pla.setStatus(GlobleParameter.PLA_STATUS_4);
+        }
+
+        plaService.updateById(pla);
+
+        SaasUtils.insertLog(1,pla.getLocNo(),pla.getBrand(),anfme,null,null,pla.getBatch(),pla.getPackageNo(),pla.getOwner(),pla.getWorkshop());
+
+    }
+
+    @Override
     public List<ManPakOut> getManPakoutByOrderNo(String orderNo) {
         return manPakOutService.selectList(new EntityWrapper<ManPakOut>().eq("doc_num",orderNo).eq("status",0));
     }
+
+    public void replacePla(Pla plaNew, ManPakOut manPakOut, PlaQty plaQty){
+        //杩樺師鏃х墿鏂欑姸鎬�
+        Pla plaOld = plaService.selectByBatchAndPackageNo(manPakOut.getBatch(), Integer.parseInt(manPakOut.getBarcode()), manPakOut.getMaktx());
+
+        plaOld.setStatus(GlobleParameter.PLA_STATUS_1);
+        plaOld.setQtyAnfme(0.0);
+
+        plaService.updateById(plaOld);
+
+        //鏇存柊plaQty淇℃伅
+        plaQty.setBatch(plaNew.getBatch());
+        plaQty.setBrand(plaNew.getBrand());
+        plaQty.setPackageNo(plaNew.getPackageNo());
+
+        plaQtyService.updateById(plaQty);
+
+        //鏇存柊鎷h揣鍗曚俊鎭�
+        manPakOut.setMaktx(plaNew.getBrand());
+        manPakOut.setBatch(plaNew.getBatch());
+        manPakOut.setBarcode(plaNew.getPackageNo() + "");
+
+        manPakOutService.updateById(manPakOut);
+
+    }
 }
diff --git a/src/main/webapp/static/js/picking/picking.js b/src/main/webapp/static/js/picking/picking.js
index 353249b..6f50d49 100644
--- a/src/main/webapp/static/js/picking/picking.js
+++ b/src/main/webapp/static/js/picking/picking.js
@@ -334,9 +334,9 @@
                             var className = templateDom.attr("class");
 
                             if (className === 'template-barcode') {
-                                json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2&param=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";");
+                                json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2&param=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";"+json.data[i].maktx);
                             } else {
-                                json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2&param=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";");
+                                json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2&param=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";"+json.data[i].maktx);
                             }
                         }
                         var tpl = templateDom.html();
diff --git a/src/main/webapp/static/js/pla/plaDetl.js b/src/main/webapp/static/js/pla/plaDetl.js
index d5e603d..4e9c560 100644
--- a/src/main/webapp/static/js/pla/plaDetl.js
+++ b/src/main/webapp/static/js/pla/plaDetl.js
@@ -242,6 +242,7 @@
                         headers: {token: localStorage.getItem('token')},
                         url: baseUrl+'/plaQty/list/auth',
                         where: {
+                            brand: data.brand,
                             batch: data.batch,
                             package_no: data.packageNo
                         },
diff --git a/src/main/webapp/views/pla/sellout.html b/src/main/webapp/views/pla/sellout.html
index 8f64ff7..0ad9bf3 100644
--- a/src/main/webapp/views/pla/sellout.html
+++ b/src/main/webapp/views/pla/sellout.html
@@ -219,7 +219,7 @@
                 type: 1,
                 title: "鏁伴噺淇敼",
                 content: $('#editDialog').html(),
-                area: '700px',
+                area: ['700px', top.detailHeight],
                 success: function (layero, dIndex) {
                     // 鏄庣粏琛ㄦ牸
                     tableIns = table.render({
@@ -227,6 +227,7 @@
                         data: dataList,
                         limit: 100,
                         even: true,
+                        height: '400px',
                         cellMinWidth: 50,
                         cols: [[
                             {field: 'batch', title: '鎵瑰彿', width: 160},

--
Gitblit v1.9.1