From 18bce44b2fc1588d9430f3573c1419236fe64869 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 23 十一月 2021 15:45:55 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java | 2
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 64 +++++++++++++++++++++
src/main/resources/mapper/LocDetlMapper.xml | 24 ++++----
src/main/java/com/zy/asrs/entity/WrkMast.java | 65 +++++++++++----------
src/main/webapp/static/js/wrkMast/wrkMast.js | 25 ++++++--
5 files changed, 128 insertions(+), 52 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index ca90c09..25c61cf 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -289,6 +289,7 @@
@ApiModelProperty(value= "鏉$爜")
private String barcode;
+ // Y:閿�鍞鍗曞嚭搴撲换鍔�
@ApiModelProperty(value= "")
@TableField("Pdc_type")
private String PdcType;
@@ -364,59 +365,59 @@
}
// WrkMast wrkMast = new WrkMast(
-// null, //
-// null, //
-// null, //
-// null, //
+// null, //
+// null, //
+// null, //
+// null, //
// null, // 宸ヤ綔鐘舵��
// null, // 鍏ュ嚭搴撶被鍨�
// null, // 鍫嗗灈鏈�
-// null, //
+// null, //
// null, // 浼樺厛绾�
-// null, //
+// null, //
// null, // 鐩爣搴撲綅
// null, // 鐩爣绔�
// null, // 婧愮珯
// null, // 婧愬簱浣�
-// null, //
+// null, //
// null, // 鎷f枡
-// null, //
-// null, //
-// null, //
+// null, //
+// null, //
+// null, //
// null, // 閫�鍑�
-// null, //
+// null, //
// null, // 绌烘澘
// null, // 宸ヤ綔鏃堕棿
-// null, //
-// null, //
-// null, //
-// null, //
-// null, //
+// null, //
+// null, //
+// null, //
+// null, //
+// null, //
// null, // 鍫嗗灈鏈哄惎鍔ㄦ椂闂�
// null, // 鍫嗗灈鏈哄仠姝㈡椂闂�
-// null, //
-// null, //
-// null, //
-// null, //
-// null, //
+// null, //
+// null, //
+// null, //
+// null, //
+// null, //
// null, // 鎷f枡鏃堕棿
// null, // 淇敼浜哄憳
// null, // 淇敼鏃堕棿
// null, // 鍒涘缓鑰�
// null, // 娣诲姞鏃堕棿
-// null, //
-// null, //
-// null, //
-// null, //
-// null, //
+// null, //
+// null, //
+// null, //
+// null, //
+// null, //
// null, // 澶囨敞
-// null, //
-// null, //
-// null, //
-// null, //
+// null, //
+// null, //
+// null, //
+// null, //
// null, // 鏉$爜
-// null, //
-// null, //
+// null, //
+// null, //
// null // 婊℃澘
// );
diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index a789797..44e3627 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -34,7 +34,7 @@
List<LocDetl> getStockStatisExcel();
- @Select("select sum(anfme) as sum from asr_loc_detl where matnr = #{matnr}")
+ @Select("select sum(a.anfme) as sum from asr_loc_detl a left join asr_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr}")
Double selectSumAnfmeByMatnr(@Param("matnr") String matnr);
List<LocDetl> selectPakoutByRule(String matnr);
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index cbbf3d5..6efa9eb 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -13,6 +13,7 @@
import com.zy.asrs.entity.param.FullStoreParam;
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.entity.result.PakoutVo;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.VersionUtils;
import com.zy.common.model.*;
@@ -22,6 +23,7 @@
import com.zy.common.service.wms.WmsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -673,6 +675,18 @@
// 鍑哄簱 ===>> F.鍦ㄥ簱
if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
locSts = "F";
+ // 閿�鍞崟鍏宠仈锛屽垯鐢熸垚鏂扮殑鍑哄簱浠诲姟
+ if (wrkMast.getPdcType().equals("Y")) {
+ List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
+ for (WrkDetl wrkDetl : wrkDetls) {
+ Double sumAnfme = Optional.ofNullable(locDetlService.getSumAnfme(wrkDetl.getMatnr())).orElse(0.0D);
+ if (sumAnfme < wrkDetl.getAnfme()) {
+ throw new CoolException("鍙栨秷澶辫触锛佸簱瀛樹笉瓒充互閲嶆柊鐢熸垚鍑哄簱浣滀笟");
+ }
+ }
+ // 鐢熸垚鏂扮殑鍑哄簱浣滀笟
+ stockOutRe(wrkMast, wrkDetls);
+ }
// 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 110) {
locSts = "D";
@@ -785,4 +799,54 @@
}
}
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+ private boolean pickSite = false;
+ private void stockOutRe(WrkMast wrkMast, List<WrkDetl> wrkDetls) {
+ for (WrkDetl wrkDetl : wrkDetls) {
+ List<LocDetl> locDetls = locDetlService.selectPakoutByRule(wrkDetl.getMatnr());
+ double issued = wrkDetl.getAnfme();
+ for (LocDetl locDetl : locDetls) {
+ if (issued > 0) {
+ // 鐢熸垚鍑哄簱宸ヤ綔妗�
+ // 鍏ㄦ澘
+ if (issued>=locDetl.getAnfme()) {
+ BasDevp staNo = basDevpService.checkSiteStatus(103);
+ List<LocDetlDto> detlDtos = new ArrayList<>();
+ LocDetlDto dto = new LocDetlDto();
+ dto.setLocDetl(locDetl);
+ dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
+ detlDtos.add(dto);
+ stockOut(staNo, detlDtos, 101, 9527L, null, true, null);
+ // 鎷f枡
+ } else {
+ int priorCount = jdbcTemplate.queryForObject("select isnull(count(*),0) from man_prior where 1=1 and matnr = '" + wrkDetl.getMatnr() + "'", Integer.class);
+ if (priorCount > 0) {
+ BasDevp staNo = basDevpService.checkSiteStatus(103);
+ List<LocDetlDto> detlDtos = new ArrayList<>();
+ LocDetlDto dto = new LocDetlDto();
+ dto.setLocDetl(locDetl);
+ dto.setCount(locDetl.getAnfme());
+ detlDtos.add(dto);
+ stockOut(staNo, detlDtos, 101, 9527L,null, true,locDetl.getAnfme()-issued);
+ } else {
+ BasDevp staNo = basDevpService.checkSiteStatus(pickSite?113:109);
+ List<LocDetlDto> detlDtos = new ArrayList<>();
+ LocDetlDto dto = new LocDetlDto();
+ dto.setLocDetl(locDetl);
+ dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
+ detlDtos.add(dto);
+ stockOut(staNo, detlDtos, 103, 9527L, null, true, null);
+ }
+
+ }
+
+ // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+ issued = issued - locDetl.getAnfme();
+ }
+ }
+ }
+ pickSite = !pickSite;
+ }
+
}
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index c0a5f00..b438b09 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -106,22 +106,22 @@
</select>
<select id="selectPakoutByRule" resultMap="BaseResultMap">
- select * from asr_loc_detl
+ select a.* from asr_loc_detl a left join asr_loc_mast b on a.loc_no = b.loc_no
where 1=1
- and matnr = #{matnr}
+ and b.loc_sts = 'F'
+ and a.matnr = #{matnr}
order by
- anfme asc,
- DATEPART(yyyy,modi_time),DATEPART(mm,modi_time),DATEPART(dd,modi_time)
+ DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time)
desc,
case
- when (left(loc_no, 2) = '01') then 0
- when (left(loc_no, 2) = '02') then 1
- when (left(loc_no, 2) = '03') then 1
- when (left(loc_no, 2) = '04') then 0
- when (left(loc_no, 2) = '05') then 0
- when (left(loc_no, 2) = '06') then 1
- when (left(loc_no, 2) = '07') then 1
- when (left(loc_no, 2) = '08') then 0
+ when (left(a.loc_no, 2) = '01') then 0
+ when (left(a.loc_no, 2) = '02') then 1
+ when (left(a.loc_no, 2) = '03') then 1
+ when (left(a.loc_no, 2) = '04') then 0
+ when (left(a.loc_no, 2) = '05') then 0
+ when (left(a.loc_no, 2) = '06') then 1
+ when (left(a.loc_no, 2) = '07') then 1
+ when (left(a.loc_no, 2) = '08') then 0
else 0
end
desc
diff --git a/src/main/webapp/static/js/wrkMast/wrkMast.js b/src/main/webapp/static/js/wrkMast/wrkMast.js
index 183c81f..b10040c 100644
--- a/src/main/webapp/static/js/wrkMast/wrkMast.js
+++ b/src/main/webapp/static/js/wrkMast/wrkMast.js
@@ -301,13 +301,24 @@
break;
// 鍙栨秷
case 'cancel':
- layer.confirm('纭鍙栨秷璇ョ瑪宸ヤ綔妗o紵', {title: '宸ヤ綔鍙凤細'+data.wrkNo, shadeClose: true}, function(){
- http.post(baseUrl+"/hand/control/wrkMast", {workNo: data.wrkNo, type:2}, function (res) {
- $(".layui-laypage-btn")[0].click();
- layer.msg(data.wrkNo + res.msg);
- })
- layer.closeAll();
- });
+ if (data.pdcType === "Y") {
+ layer.confirm('褰撳墠浠诲姟鍏宠仈ERP閿�鍞崟锛屽彇娑堝皢閲嶆柊鐢熸垚鍑哄簱浣滀笟锛屾槸鍚︾户缁紵', {title: '宸ヤ綔鍙凤細'+data.wrkNo, shadeClose: true}, function(){
+ http.post(baseUrl+"/hand/control/wrkMast", {workNo: data.wrkNo, type:2}, function (res) {
+ $(".layui-laypage-btn")[0].click();
+ layer.msg(data.wrkNo + res.msg);
+ })
+ layer.closeAll();
+ });
+ } else {
+ layer.confirm('纭鍙栨秷璇ョ瑪宸ヤ綔妗o紵', {title: '宸ヤ綔鍙凤細'+data.wrkNo, shadeClose: true}, function(){
+ http.post(baseUrl+"/hand/control/wrkMast", {workNo: data.wrkNo, type:2}, function (res) {
+ $(".layui-laypage-btn")[0].click();
+ layer.msg(data.wrkNo + res.msg);
+ })
+ layer.closeAll();
+ });
+ }
+
break;
// 鎷f枡鍏ュ簱
case 'pick':
--
Gitblit v1.9.1