From 6c31225fe42d32b936c5f38507c960e47e2dd106 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期六, 06 五月 2023 10:20:56 +0800
Subject: [PATCH] 上架下架优化
---
src/main/resources/mapper/ManLocDetlMapper.xml | 44 ++++++++++++++
src/main/resources/mapper/OrderDetlMapper.xml | 2
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 64 +++++++--------------
src/main/java/com/zy/asrs/service/ManLocDetlService.java | 6 ++
src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java | 15 +++++
src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java | 6 ++
6 files changed, 94 insertions(+), 43 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
index 250a289..0ce9ee4 100644
--- a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
@@ -83,4 +83,10 @@
List<ManLocDetl> selectAllPage(Map<String, Object> condition);
long selectAllPageSize(Map<String, Object> condition);
+
+ public ManLocDetl selectInventory(String LocNo, String Matnr, String batch);
+
+ int deleteDatailed (String locNo, String matnr,String batch);
+
+ int increase(Double anfme,String locNo, String matnr,String batch);
}
diff --git a/src/main/java/com/zy/asrs/service/ManLocDetlService.java b/src/main/java/com/zy/asrs/service/ManLocDetlService.java
index 4530bbc..1170144 100644
--- a/src/main/java/com/zy/asrs/service/ManLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/ManLocDetlService.java
@@ -62,4 +62,10 @@
Page<ManLocDetl> selectAllPage(Page<ManLocDetl> param);
+ ManLocDetl selectInventory(String LocNo,String Matnr,String batch);
+
+ int deleteDatailed (String locNo, String matnr,String batch);
+
+ int increase(Double anfme,String locNo, String matnr,String batch);
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
index 1f566fe..f42392f 100644
--- a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
@@ -186,5 +186,20 @@
return param;
}
+ @Override
+ public ManLocDetl selectInventory(String LocNo, String Matnr, String batch) {
+ return baseMapper.selectInventory(LocNo,Matnr,batch);
+ }
+
+ @Override
+ public int deleteDatailed(String locNo, String matnr, String batch) {
+ return baseMapper.deleteDatailed(locNo,matnr,batch);
+ }
+
+ @Override
+ public int increase(Double anfme,String locNo, String matnr, String batch) {
+ return baseMapper.increase(anfme,locNo,matnr,batch);
+ }
+
}
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 a8cb3bb..5229cd2 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -669,20 +669,15 @@
return R.error("璇ヨ鍗曟槸鍑哄簱璁㈠崟锛屾棤娉曞叆搴�");
}
- OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
- .eq("order_no", jsonOrderDetl.getOrderNo())
- .and()
- .eq("maktx",jsonOrderDetl.getMaktx()));
+ OrderDetl orderDetl = orderDetlService.selectItem(jsonOrderDetl.getOrderNo(),jsonOrderDetl.getMatnr(),jsonOrderDetl.getBatch());
if (Cools.isEmpty(orderDetl)) {
return R.error("鍗曟嵁鏄庣粏鏈夎,璇锋鏌�");
}
if (orderDetl.getAnfme() - (jsonOrderDetl.getAnfme() + orderDetl.getWorkQty()) < 0) {
return R.error("鍏ュ簱鏁伴噺澶т簬鍙叆鏁伴噺");
}
- ManLocDetl checkManLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>()
- .eq("loc_no", jsonLocNo)
- .eq("matnr", orderDetl.getMatnr())
- .eq("batch",orderDetl.getBatch()));
+ //鏌ヨ骞冲簱涓槸鍚︽湁涓�鏍风殑鐗╂枡鍙凤紝鏈夌殑璇濈洿鎺ュ鍔犳暟閲�
+ ManLocDetl checkManLocDetl = manLocDetlService.selectInventory(jsonLocNo,orderDetl.getMatnr(),jsonOrderDetl.getBatch());
if (checkManLocDetl == null) {
ManLocDetl manLocDetl = new ManLocDetl();
Synchro.Copy(orderDetl, manLocDetl);
@@ -694,13 +689,13 @@
manLocDetl.setModiTime(date);
manLocDetl.setCreateTime(date);
manLocDetl.setBatch(jsonOrderDetl.getBatch());
- manLocDetlService.insert(manLocDetl);
+ if(!manLocDetlService.insert(manLocDetl)){
+ return R.error("淇敼骞冲簱鐗╂枡澶辫触锛�");
+ }
} else {
- checkManLocDetl.setAnfme(checkManLocDetl.getAnfme() + jsonOrderDetl.getAnfme());
- checkManLocDetl.setModiTime(date);
- manLocDetlService.update(checkManLocDetl, new EntityWrapper<ManLocDetl>()
- .eq("loc_no", jsonLocNo)
- .eq("matnr", orderDetl.getMatnr()));
+ if(manLocDetlService.increase(checkManLocDetl.getAnfme() + jsonOrderDetl.getAnfme(), jsonOrderDetl.getOrderNo(), jsonOrderDetl.getMaktx(), jsonOrderDetl.getBatch())<=0){
+ return R.error("淇敼骞冲簱鐗╂枡澶辫触锛�");
+ }
}
orderDetl.setQty(orderDetl.getQty() + jsonOrderDetl.getAnfme());
orderDetl.setWorkQty(orderDetl.getWorkQty() + jsonOrderDetl.getAnfme());
@@ -748,46 +743,30 @@
if (Cools.isEmpty(node, order)) {
return R.error("鍙傛暟涓虹┖");
}
- OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
- .eq("order_no", jsonOrderDetl.getOrderNo())
- .and()
- .eq("maktx",jsonOrderDetl.getMaktx())
- .and()
- .eq("batch",jsonOrderDetl.getBatch()));
+ OrderDetl orderDetl = orderDetlService.selectItem(jsonOrderDetl.getOrderNo(),jsonOrderDetl.getMatnr(),jsonOrderDetl.getBatch());
if (Cools.isEmpty(orderDetl)) {
return R.error("鍗曟嵁鏄庣粏鏈夎,璇锋鏌�");
}
if (jsonOrderDetl.getAnfme() > (orderDetl.getAnfme() - orderDetl.getWorkQty())) {
return R.error("鍑哄簱鏁伴噺澶т簬鍗曟嵁鍙嚭鏁伴噺");
}
- ManLocDetl manLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>()
- .eq("loc_no", jsonLocNo)
- .and()
- .eq("maktx", jsonOrderDetl.getMaktx())
- .and()
- .eq("batch",jsonOrderDetl.getBatch()));
- if (manLocDetl == null) {
+ //鏌ヨ骞冲簱涓槸鍚︽湁涓�鏍风殑鐗╂枡鍙�
+ ManLocDetl checkManLocDetl = manLocDetlService.selectInventory(jsonLocNo,orderDetl.getMatnr(),orderDetl.getBatch());
+ if (checkManLocDetl == null) {
return R.error("璇ュ簱浣嶆病鏈夊嚭搴撶殑鐗╂枡淇℃伅");
}
- if (jsonOrderDetl.getAnfme() > manLocDetl.getAnfme()) {
+ if (jsonOrderDetl.getAnfme() > checkManLocDetl.getAnfme()) {
return R.error("鍑哄簱鏁伴噺澶т簬鍙嚭鏁伴噺");
}
- Double finalQty = manLocDetl.getAnfme() - jsonOrderDetl.getAnfme();
+ Double finalQty = checkManLocDetl.getAnfme() - jsonOrderDetl.getAnfme();
if (finalQty <= 0){
- manLocDetlService.delete(new EntityWrapper<ManLocDetl>()
- .eq("loc_no", jsonLocNo)
- .and()
- .eq("matnr", orderDetl.getMatnr())
- .and()
- .eq("batch",jsonOrderDetl.getBatch()));
+ if(manLocDetlService.deleteDatailed(jsonLocNo, jsonOrderDetl.getMatnr(), jsonOrderDetl.getBatch())<=0){
+ return R.error("淇敼骞冲簱鐗╂枡澶辫触锛�");
+ }
}else {
- manLocDetl.setAnfme(finalQty);
- manLocDetl.setModiTime(date);
- manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>()
- .eq("loc_no", jsonLocNo)
- .eq("matnr", orderDetl.getMatnr())
- .and()
- .eq("batch",jsonOrderDetl.getBatch()));
+ if(manLocDetlService.increase(finalQty, jsonLocNo, jsonOrderDetl.getMatnr(), jsonOrderDetl.getBatch())<=0){
+ return R.error("淇敼骞冲簱鐗╂枡澶辫触锛�");
+ }
}
orderDetl.setQty(orderDetl.getQty() + jsonOrderDetl.getAnfme());
orderDetl.setWorkQty(orderDetl.getWorkQty() + jsonOrderDetl.getAnfme());
@@ -814,4 +793,5 @@
return R.ok("涓嬫灦瀹屾垚");
}
+
}
diff --git a/src/main/resources/mapper/ManLocDetlMapper.xml b/src/main/resources/mapper/ManLocDetlMapper.xml
index ac19331..d4ae055 100644
--- a/src/main/resources/mapper/ManLocDetlMapper.xml
+++ b/src/main/resources/mapper/ManLocDetlMapper.xml
@@ -313,4 +313,48 @@
where node_id = #{nodeId} ;
</update>
+ <select id="selectInventory" resultMap="BaseResultMap">
+ select top 1 * from man_loc_detl
+ where loc_no=#{LocNo}
+ and 1=1
+ and matnr=#{Matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </select>
+ <delete id="deleteDatailed">
+ delete from man_loc_detl
+ where loc_no = #{locNo}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </delete>
+
+ <update id="increase">
+ update man_loc_detl
+ set anfme= #{anfme}
+ , modi_time = getdate()
+ where 1=1
+ and loc_no = #{locNo}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch!='' ">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </update>
</mapper>
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 2df6cc7..b142b82 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -68,7 +68,7 @@
where 1=1
and order_no = #{orderNo}
and matnr = #{matnr}
- <if test="batch!=null">
+ <if test="batch!=null and batch!='' ">
and batch = #{batch}
</if>
</select>
--
Gitblit v1.9.1