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