From 96b30d7e4005d76fabc48894150edfe208a70218 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期四, 20 七月 2023 16:48:04 +0800
Subject: [PATCH] #桁架上位软件:单次拆垛完成通知 接口实装
---
src/main/resources/mapper/WrkDetlMapper.xml | 4 +
src/main/java/com/zy/asrs/entity/param/SingleUnstackingCompleteParam.java | 29 +++++++++
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java | 1
src/main/java/com/zy/common/model/enums/WorkNoType.java | 8 ++
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java | 5 +
src/main/java/com/zy/asrs/entity/WrkDetl.java | 1
src/main/resources/mapper/WrkMastMapper.xml | 1
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java | 18 +++--
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 75 +++++++++++++++++++++++++
src/main/java/com/zy/asrs/service/WrkDetlService.java | 1
10 files changed, 134 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/WrkDetl.java b/src/main/java/com/zy/asrs/entity/WrkDetl.java
index 349a127..57d8951 100644
--- a/src/main/java/com/zy/asrs/entity/WrkDetl.java
+++ b/src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -225,6 +225,7 @@
/**
* 瑕佹眰妫�楠� 1: 鏄� 0: 鍚�
+ * 寰愬伐姹変簯鎷嗗灈鏍囪 0: 鏈媶 1: 宸叉媶
*/
@ApiModelProperty(value= "瑕佹眰妫�楠� 1: 鏄� 0: 鍚� ")
private Integer inspect;
diff --git a/src/main/java/com/zy/asrs/entity/param/SingleUnstackingCompleteParam.java b/src/main/java/com/zy/asrs/entity/param/SingleUnstackingCompleteParam.java
index b2536c9..87d3e29 100644
--- a/src/main/java/com/zy/asrs/entity/param/SingleUnstackingCompleteParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/SingleUnstackingCompleteParam.java
@@ -1,5 +1,6 @@
package com.zy.asrs.entity.param;
+import com.core.common.Cools;
import lombok.Data;
import java.util.List;
@@ -20,4 +21,32 @@
private String boxNo;// 鏄� 瀛楃涓� 鏈ㄧ缂栧彿锛堝敮涓�瀛楁锛屽嚭搴撲緷鎹紝鍑哄簱鏃舵寜鐓ф湪绠辩紪鍙峰嚭搴擄級
}
+ public Integer getSourceDevNo$(){
+ if (!Cools.isEmpty(this.palletizingNo)){
+ switch (this.palletizingNo){
+ case "1":
+ return 119;
+ case "2":
+ return 121;
+ default:
+ return null;
+ }
+ }
+ return null;
+ }
+
+ public Integer getDevNo$(){
+ if (!Cools.isEmpty(this.palletizingNo)){
+ switch (this.palletizingNo){
+ case "1":
+ return 132;
+ case "2":
+ return 134;
+ default:
+ return null;
+ }
+ }
+ return null;
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
index e10e894..61b3a57 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -13,6 +13,7 @@
public interface WrkDetlMapper extends BaseMapper<WrkDetl> {
List<WrkDetl> selectByWrkNo(Integer wrkNo);
+ List<WrkDetl> selectByWrkNoUnstacking(Integer wrkNo);
int deleteItem(@Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index a40f47a..6e30b7b 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -12,6 +12,7 @@
void createWorkDetail(Integer workNo, List<DetlDto> detlDtos, String barcode, Long userId, Date now);
List<WrkDetl> selectByWrkNo(Integer wrkNo);
+ List<WrkDetl> selectByWrkNoUnstacking(Integer wrkNo);
boolean updateAnfme(Double anfme, Integer wrkNo, String matnr, String batch);
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 3d88baa..bde2944 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -13,6 +13,8 @@
import com.zy.asrs.service.*;
import com.zy.asrs.utils.MatUtils;
import com.zy.common.model.DetlDto;
+import com.zy.common.model.enums.WorkNoType;
+import com.zy.common.service.CommonService;
import com.zy.common.utils.NodeUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -56,6 +58,8 @@
private WrkDetlService wrkDetlService;
@Autowired
private WaitPakinService waitPakinService;
+ @Autowired
+ private CommonService commonService;
@Override
@Transactional
@@ -753,6 +757,76 @@
@Override
@Transactional
public void singleUnstackingComplete(SingleUnstackingCompleteParam param) {
+ Long userId = 8888L;//妗佹灦涓婁綅杞欢
+ //鍒ゆ柇param鍙傛暟
+ if (Cools.isEmpty(param.getBarcode())){
+ throw new CoolException("鍙傛暟锛氭墭鐩樼爜 barcode涓虹┖");
+ }else if (Cools.isEmpty(param.getPalletizingNo())){
+ throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖");
+ }else if (Cools.isEmpty(param.getMatLists()) || param.getMatLists().size()==0){
+ throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖");
+ }
+ WrkMast wrkMastMatrix = wrkMastService.selectByBarcode(param.getBarcode());
+ if (Cools.isEmpty(wrkMastMatrix)){
+ throw new CoolException("鍙傛暟锛氭墭鐩樼爜鏌ヨ宸ヤ綔妗eけ璐ワ細"+param.getBarcode());
+ }
+
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNoUnstacking(wrkMastMatrix.getWrkNo());
+ ArrayList<WrkDetl> wrkDetlsNew = new ArrayList<>();
+ //鍒ゆ柇matLists鍙傛暟
+ for (SingleUnstackingCompleteParam.MatList matList:param.getMatLists()){
+ if (Cools.isEmpty(matList.getPosition())){
+ throw new CoolException("鍙傛暟锛氱爜鍨涗綅缃� position涓虹┖");
+ }else if (Cools.isEmpty(matList.getBoxNo())){
+ throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo涓虹┖");
+ }
+ boolean sign=true;
+ for (WrkDetl wrkDetl:wrkDetls){
+ if (wrkDetl.getSku().equals(matList.getBoxNo())){//鏈ㄧ缂栫爜
+ wrkDetl.setInspect(1);
+ wrkDetlService.updateById(wrkDetl);
+ wrkDetlsNew.add(wrkDetl);
+ sign=false;
+ break;
+ }
+ }
+ if (sign){
+ throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo鏈煡璇㈠埌瀵瑰簲鐨勫伐浣滄槑缁嗭紒");
+ }
+ }
+
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(202));
+ Date now = new Date();
+
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(51L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(202); // 鍏ュ嚭搴撶姸鎬侊細202.鎷嗗灈鍚庡嚭搴�
+ wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setSourceStaNo(param.getDevNo$());
+ wrkMast.setStaNo(140); //璐存爣绔欑偣
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("鐢熸垚宸ヤ綔妗eけ璐�");
+ }
+
+ for (WrkDetl wrkDetl : wrkDetlsNew){
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ }
}
@@ -762,6 +836,7 @@
@Override
@Transactional
public void singleMountUnstackingComplete(SingleMountUnstackingCompleteParam param) {
+ Long userId = 8888L;//妗佹灦涓婁綅杞欢
}
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
index 3eaaa7a..f40bf7f 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -57,6 +57,11 @@
}
@Override
+ public List<WrkDetl> selectByWrkNoUnstacking(Integer wrkNo) {
+ return this.baseMapper.selectByWrkNoUnstacking(wrkNo);
+ }
+
+ @Override
public boolean updateAnfme(Double anfme, Integer wrkNo, String matnr, String batch) {
if (anfme <= 0) {
return this.baseMapper.deleteItem(wrkNo, matnr, batch) > 0;
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index d71d3e4..976ff0a 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -44,7 +44,7 @@
try {
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
// 淇敼璁㈠崟鐘舵�� 浣滀笟涓� ===>> 宸插畬鎴�
- if (!Cools.isEmpty(wrkDetls)) {
+ if (wrkMast.getIoType()<200 && !Cools.isEmpty(wrkDetls)) {
Iterator<WrkDetl> iterator = wrkDetls.iterator();
while (iterator.hasNext()) {
WrkDetl wrkDetl = iterator.next();
@@ -102,13 +102,15 @@
if (!wrkMastService.deleteById(wrkMast)) {
exceptionHandle("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触", wrkMast.getWrkNo());
}
- // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
- if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
-// exceptionHandle("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
- }
- // 鍒犻櫎宸ヤ綔鏄庣粏妗�
- if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) {
-// exceptionHandle("鍒犻櫎宸ヤ綔鏄庣粏妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+ if ((wrkMast.getIoType()<200 || wrkMast.getWrkSts().equals(57L)) && !Cools.isEmpty(wrkDetls)){
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+ exceptionHandle("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ // 鍒犻櫎宸ヤ綔鏄庣粏妗�
+ if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) {
+ exceptionHandle("鍒犻櫎宸ヤ綔鏄庣粏妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
}
} catch (Exception e) {
log.error("fail", e);
diff --git a/src/main/java/com/zy/common/model/enums/WorkNoType.java b/src/main/java/com/zy/common/model/enums/WorkNoType.java
index ff1768c..e362118 100644
--- a/src/main/java/com/zy/common/model/enums/WorkNoType.java
+++ b/src/main/java/com/zy/common/model/enums/WorkNoType.java
@@ -10,7 +10,9 @@
PAKIN(0),
PICK(1),
PAKOUT(2),
- OTHER(3),
+ OTHER1(3),
+ OTHER2(4),
+ OTHER(5),
;
public Integer type;
@@ -39,6 +41,10 @@
return PICK.type;
case 110:
return PAKOUT.type;
+ case 201:
+ return OTHER1.type;
+ case 202:
+ return OTHER2.type;
default:
break;
}
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index e94832f..0888893 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -63,6 +63,10 @@
select * from asr_wrk_detl where 1=1 and wrk_no = #{wrkNo}
</select>
+ <select id="selectByWrkNoUnstacking" resultMap="BaseResultMap">
+ select * from asr_wrk_detl where 1=1 and inspect=0 and wrk_no = #{wrkNo}
+ </select>
+
<delete id="deleteItem">
delete from asr_wrk_detl
where 1=1
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index ce04079..1764f52 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -69,6 +69,7 @@
<select id="selectToBeHistoryData" resultMap="BaseResultMap">
select * from asr_wrk_mast
where wrk_sts=5
+ or wrk_sts=44 or wrk_sts=57
or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp))
or (wrk_sts=15 and dateadd(mi,15,crn_end_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp))
--
Gitblit v1.9.1