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