From 7a6aee85e03339b2651e762a5c258a688894de09 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期六, 20 五月 2023 16:42:50 +0800 Subject: [PATCH] WMS任务(11.库位移转) --- src/main/java/com/zy/asrs/service/impl/WmsWrkServiceImpl.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 106 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/WmsWrkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WmsWrkServiceImpl.java index 22917e7..420cd4d 100644 --- a/src/main/java/com/zy/asrs/service/impl/WmsWrkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WmsWrkServiceImpl.java @@ -1,7 +1,10 @@ package com.zy.asrs.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.domain.enums.WmsWrkStatusType; +import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.WmsWrkMapper; import com.zy.asrs.service.*; @@ -12,6 +15,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Date; +import java.util.List; @Service("wmsWrkService") public class WmsWrkServiceImpl extends ServiceImpl<WmsWrkMapper, WmsWrk> implements WmsWrkService { @@ -26,6 +30,10 @@ private WrkMastService wrkMastService; @Autowired private StaDescService staDescService; + @Autowired + private LocDetlService locDetlService; + @Autowired + private WrkDetlService wrkDetlService; @Override public WmsWrk selectByWmsWrkNo(Integer wmsWrkNo) { @@ -47,10 +55,13 @@ //鍒涘缓浠诲姟 if (wmsWrk.getIoType() == 1) { - //鍏ュ簱 + //1.鍏ュ簱 startup(wmsWrk, userId); - }else if(wmsWrk.getIoType() == 101){ - //鍑哄簱 + }else if(wmsWrk.getIoType() == 11){ + //11.搴撴牸绉昏浇 + locMove(wmsWrk, userId); + } else if (wmsWrk.getIoType() == 101) { + //101.鍑哄簱 stockOut(wmsWrk, userId); } @@ -66,7 +77,7 @@ } // 鐢熸垚浠诲姟鍙� - int workNo = commonService.getWorkNo(0); + int workNo = commonService.getWorkNo(WorkNoType.PAKIN.type); wmsWrk.setWrkNo(workNo); this.baseMapper.updateById(wmsWrk); @@ -76,6 +87,7 @@ // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); + wrkMast.setWmsWrkNo(wmsWrk.getWmsWrkNo());//WMS浠诲姟鍙� wrkMast.setWmsWrkNo(wmsWrk.getWmsWrkNo()); wrkMast.setIoTime(now); wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID @@ -122,6 +134,7 @@ } @Override + @Transactional public void stockOut(WmsWrk wmsWrk, Long userId) { Date now = new Date(); LocMast locMast = locMastService.selectByLocNo(wmsWrk.getSourceLocNo()); @@ -130,7 +143,7 @@ } // 鐢熸垚浠诲姟鍙� - int workNo = commonService.getWorkNo(2); + int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); wmsWrk.setWrkNo(workNo); this.baseMapper.updateById(wmsWrk); @@ -139,6 +152,7 @@ // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); + wrkMast.setWmsWrkNo(wmsWrk.getWmsWrkNo());//WMS浠诲姟鍙� wrkMast.setIoTime(now); wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID wrkMast.setIoType(101); // 101.鍑哄簱 @@ -174,4 +188,91 @@ throw new CoolException(wmsWrk.getSourceLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); } } + + //搴撲綅绉昏浆 + @Override + @Transactional + public void locMove(WmsWrk wmsWrk, Long userId) { + String sourceLocNo = wmsWrk.getSourceLocNo(); + String locNo = wmsWrk.getLocNo(); + LocMast sourceLoc = locMastService.selectById(sourceLocNo); + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo)); + if (Cools.isEmpty(sourceLoc)){ + throw new CoolException("鏈壘鍒板簱浣�"); + } + LocMast loc = locMastService.selectById(locNo); + if (Cools.isEmpty(loc)){ + throw new CoolException("鏈壘鍒板簱浣�"); + } + if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) { + throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�"); + } + Date now = new Date(); + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.PICK.type); + wmsWrk.setWrkNo(workNo); + this.baseMapper.updateById(wmsWrk); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setWmsWrkNo(wmsWrk.getWmsWrkNo());//WMS浠诲姟鍙� + wrkMast.setIoTime(now); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 + wrkMast.setIoPri(10D); + wrkMast.setCrnNo(sourceLoc.getCrnNo()); + wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣� + wrkMast.setLocNo(locNo); // 鐩爣搴撲綅 + wrkMast.setFullPlt(Cools.isEmpty(locDetls)?"N":"Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘 + wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮� + wrkMast.setLinkMis("N"); + wrkMast.setAppeUser(userId); + wrkMast.setAppeTime(now); + wrkMast.setModiUser(userId); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 宸ヤ綔妗f槑缁嗕繚瀛� + for (LocDetl locDetl : locDetls) { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(locDetl); + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(now); + wrkDetl.setAnfme(locDetl.getAnfme()); + wrkDetl.setAppeTime(now); + wrkDetl.setAppeUser(userId); + wrkDetl.setModiTime(now); + wrkDetl.setModiUser(userId); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + } + } + // 淇敼婧愬簱浣嶇姸鎬� + if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) { + sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害 + sourceLoc.setModiUser(userId); + sourceLoc.setModiTime(now); + if (!locMastService.updateById(sourceLoc)){ + throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); + } + } else { + throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$()); + } + // 淇敼鐩爣搴撲綅鐘舵�� + if (loc.getLocSts().equals("O")) { + loc.setLocSts("S"); // S.鍏ュ簱棰勭害 + loc.setModiTime(now); + loc.setModiUser(userId); + if (!locMastService.updateById(loc)) { + throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocSts$()); + } + } } -- Gitblit v1.9.1