From c327ae2c32c988c43d6881c9caf196e42bab3f8c Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期四, 27 四月 2023 14:09:48 +0800
Subject: [PATCH] 修复订单系统
---
src/main/resources/mapper/OrderDetlMapper.xml | 9 ++++
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 57 ++++++++++------------------
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 51 ++++++++++++++++++++++---
src/main/webapp/views/order/order.html | 2
4 files changed, 74 insertions(+), 45 deletions(-)
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 f75d9d1..d7425fb 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -153,58 +153,35 @@
}
// 鍏宠仈缁勬墭
} else {
- for (CombParam.CombMat combMat : param.getCombMats()) {
- Integer sum = orderDetlService.sameOrderComb(param.getOrderNo(), combMat.getMatnr(),combMat.getBatch());
- OrderDetl orderDetl = orderDetlService.selectItem(param.getOrderNo(), combMat.getMatnr(), combMat.getBatch());
- if (orderDetl == null) {
- throw new CoolException("鎵句笉鍒扮粍鎵樼殑鍗曟嵁鏄庣粏");
-
- }
- Double anfme = orderDetl.getAnfme();
- if ( anfme > (anfme - sum)) {
- throw new CoolException("缁勬墭鏁伴噺宸茶秴鍑鸿鍗曢渶姹傞噺锛岃妫�鏌ユ槸鍚︽湁鍏朵粬鐨勭粍鎵樺凡瀹屾垚");
- }
- }
+ // 鐢熸垚鍏ュ簱閫氱煡妗�
Order order = orderService.selectByNo(param.getOrderNo());
if (order.getSettle() > 2) {
throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
}
- // 鐢熸垚鍏ュ簱閫氱煡妗�
- List<DetlDto> detlDtos = new ArrayList<>();
- for (CombParam.CombMat elem : param.getCombMats()) {
- // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
- OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch());
- if(orderDetl == null){
- throw new CoolException("璇ュ崟鎹腑涓嶅瓨鍦ㄨ鐗╂枡鏄庣粏锛�" + elem);
+ for (CombParam.CombMat combMat : param.getCombMats()) {
+ OrderDetl orderDetl = orderDetlService.selectItem(param.getOrderNo(), combMat.getMatnr(), combMat.getBatch());
+ if (orderDetl == null) {
+ throw new CoolException("鎵句笉鍒扮粍鎵樼殑鍗曟嵁鏄庣粏");
}
- if (elem.getAnfme() > orderDetl.getEnableQty()) {
- throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
+ //璁㈠崟鏁�-宸ヤ綔涓殑鏁伴噺-缁勬墭鏁伴噺
+ if ( orderDetl.getAnfme() - orderDetl.getWorkQty() - combMat.getAnfme()<0) {
+ throw new CoolException("缁勬墭鏁伴噺宸茶秴鍑鸿鍗曢渶姹傞噺锛岃妫�鏌ユ槸鍚︽湁鍏朵粬鐨勭粍鎵樺凡瀹屾垚");
}
// 淇敼璁㈠崟浣滀笟鏁伴噺
- if (!orderDetlService.increaseWorkQty(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) {
+ if (!orderDetlService.increaseWorkQty(order.getId(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme())) {
throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
}
-
- DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
- if (DetlDto.has(detlDtos, detlDto)) {
- DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
- assert one != null;
- one.setAnfme(one.getAnfme() + detlDto.getAnfme());
- } else {
- }
- }
- for (DetlDto detlDto : detlDtos) {
- Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+ Mat mat = matService.selectByMatnr(combMat.getMatnr());
if (Cools.isEmpty(mat)) {
- throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ throw new CoolException(combMat.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
}
WaitPakin waitPakin = new WaitPakin();
waitPakin.sync(mat);
waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿
- waitPakin.setBatch(detlDto.getBatch()); // 搴忓垪鐮�
+ waitPakin.setBatch(combMat.getBatch()); // 搴忓垪鐮�
waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
- waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
+ waitPakin.setAnfme(combMat.getAnfme()); // 鏁伴噺
waitPakin.setStatus("Y"); // 鐘舵��
waitPakin.setAppeUser(userId);
waitPakin.setAppeTime(now);
@@ -213,6 +190,14 @@
if (!waitPakinService.insert(waitPakin)) {
throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
}
+
+// DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme());
+// if (DetlDto.has(detlDtos, detlDto)) {
+// DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+// assert one != null;
+// one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+// } else {
+// }
}
orderService.updateSettle(order.getId(), 2L, userId);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 2bca110..8407805 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -576,7 +576,7 @@
String jsonLocNo = (String) json.get("locNo");
Node node = nodeService.selectOne(new EntityWrapper<Node>()
.eq("name", jsonLocNo));
-
+ //鏌ヨ鍗�
String jsonOrderNo = (String) json.get("orderNo");
Order order = orderService.selectOne(new EntityWrapper<Order>()
.eq("order_no", jsonOrderNo));
@@ -584,15 +584,23 @@
return R.error("鍙傛暟涓虹┖");
}
+ //鍒ゆ柇璁㈠崟绫诲瀷鏄惁鏄叆搴�
+ DocType docType=docTypeService.selectById(order.getDocType());
+ if(docType.getPakin()!=1 || docType.getStatus()!=1){
+ return R.error("璇ヨ鍗曟槸鍑哄簱璁㈠崟锛屾棤娉曞叆搴�");
+ }
+
JSONArray combMats = json.getJSONArray("combMats");
for (int i = 0; i < combMats.size(); i++) {
OrderDetl jsonOrderDetl = combMats.getObject(i, OrderDetl.class);
OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
- .eq("order_no", jsonOrderNo));
+ .eq("order_no", jsonOrderNo)
+ .and()
+ .eq("maktx",jsonOrderDetl.getMaktx()));
if (Cools.isEmpty(orderDetl)) {
return R.error("鍗曟嵁鏄庣粏鏈夎,璇锋鏌�");
}
- if (orderDetl.getAnfme() - (jsonOrderDetl.getAnfme() + orderDetl.getQty()) < 0) {
+ if (orderDetl.getAnfme() - (jsonOrderDetl.getAnfme() + orderDetl.getWorkQty()) < 0) {
return R.error("鍏ュ簱鏁伴噺澶т簬鍙叆鏁伴噺");
}
ManLocDetl checkManLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>()
@@ -604,23 +612,34 @@
manLocDetl.setLocNo(node.getName());
manLocDetl.setNodeId(node.getId());
manLocDetl.setMatnr(orderDetl.getMatnr());
- manLocDetl.setMaktx(orderDetl.getMaktx());
- manLocDetl.setAnfme(orderDetl.getAnfme());
+ manLocDetl.setMaktx(jsonOrderDetl.getMaktx());
+ manLocDetl.setAnfme(jsonOrderDetl.getAnfme());
manLocDetl.setModiTime(date);
manLocDetl.setCreateTime(date);
manLocDetlService.insert(manLocDetl);
} else {
- checkManLocDetl.setAnfme(checkManLocDetl.getAnfme() + orderDetl.getAnfme());
+ checkManLocDetl.setAnfme(checkManLocDetl.getAnfme() + jsonOrderDetl.getAnfme());
checkManLocDetl.setModiTime(date);
manLocDetlService.update(checkManLocDetl, new EntityWrapper<ManLocDetl>()
.eq("loc_no", jsonLocNo)
.eq("matnr", orderDetl.getMatnr()));
}
-
orderDetl.setQty(orderDetl.getQty() + jsonOrderDetl.getAnfme());
orderDetl.setWorkQty(orderDetl.getWorkQty() + jsonOrderDetl.getAnfme());
orderDetl.setUpdateTime(date);
orderDetlService.updateById(orderDetl);
+
+ //鏇存柊璁㈠崟鐘舵��
+ //宸ヤ綔涓殑鏁伴噺灏忎簬鎬昏鍗曟暟鏃讹紝璁㈠崟鐘舵�佹敼涓�2锛屼綔涓氫腑
+ if(orderDetl.getWorkQty() + jsonOrderDetl.getAnfme() < orderDetl.getAnfme()){
+ order.setSettle(2L);
+ }else{
+ //宸ヤ綔涓殑鏁伴噺绛変簬鎬昏鍗曟暟鏃讹紝璁㈠崟鐘舵�佹敼涓�4,瀹屾垚
+ order.setSettle(4L);
+ }
+ if(!orderService.updateById(order)){
+ return R.error("鏇存柊璁㈠崟鐘舵�佸け璐�");
+ }
}
orderService.checkComplete(order.getOrderNo());
@@ -639,6 +658,12 @@
String jsonOrderNo = (String) json.get("orderNo");
Order order = orderService.selectOne(new EntityWrapper<Order>()
.eq("order_no", jsonOrderNo));
+
+ //鍒ゆ柇璁㈠崟绫诲瀷鏄惁鏄叆搴�
+ DocType docType=docTypeService.selectById(order.getDocType());
+ if(docType.getPakout()!=1 || docType.getStatus()!=1){
+ return R.error("璇ヨ鍗曟槸鍑哄簱璁㈠崟锛屾棤娉曞叆搴�");
+ }
if (Cools.isEmpty(node, order)) {
return R.error("鍙傛暟涓虹┖");
}
@@ -680,6 +705,18 @@
orderDetl.setUpdateTime(date);
orderDetlService.updateById(orderDetl);
+ //鏇存柊璁㈠崟鐘舵��
+ //宸ヤ綔涓殑鏁伴噺灏忎簬鎬昏鍗曟暟鏃讹紝璁㈠崟鐘舵�佹敼涓�2锛屼綔涓氫腑
+ if(orderDetl.getWorkQty() + jsonOrderDetl.getAnfme() < orderDetl.getAnfme()){
+ order.setSettle(2L);
+ }else{
+ //宸ヤ綔涓殑鏁伴噺绛変簬鎬昏鍗曟暟鏃讹紝璁㈠崟鐘舵�佹敼涓�4,瀹屾垚
+ order.setSettle(4L);
+ }
+ if(!orderService.updateById(order)){
+ return R.error("鏇存柊璁㈠崟鐘舵�佸け璐�");
+ }
+
orderService.checkComplete(order.getOrderNo());
}
return R.ok("涓嬫灦瀹屾垚");
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 030c8f9..2df6cc7 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -133,7 +133,14 @@
and order_no like '%' + #{orderNo} + '%'
</if>
and matnr = #{matnr}
- and batch = #{batch}
+ <choose>
+ <when test="batch != null and batch!='' ">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
</select>
<update id="increase">
diff --git a/src/main/webapp/views/order/order.html b/src/main/webapp/views/order/order.html
index 3a22582..2a3836c 100644
--- a/src/main/webapp/views/order/order.html
+++ b/src/main/webapp/views/order/order.html
@@ -252,7 +252,7 @@
</script>
<!-- 妯℃澘寮曟搸 -->
<!-- 妯℃澘3 -->
-<script type="text/template" id="templatePreview3" class="template-qrcode">
+<script type="text/template" id="templatePreview3" class="template-qrcode">/orderDetl/list/auth
{{#each data}}
<table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
<thead></thead>
--
Gitblit v1.9.1