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¶m=" + (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¶m=" + (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¶m=" + (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¶m=" + (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