From 364b9ccc44bc6863280c5cc00aa8512cfff548d4 Mon Sep 17 00:00:00 2001 From: ZY <zc857179121@qq.com> Date: 星期五, 25 四月 2025 15:27:18 +0800 Subject: [PATCH] 123 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 148 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 133 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index aa40e13..4f9173a 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -7,12 +7,17 @@ import com.core.exception.CoolException; import com.zy.asrs.controller.CrnController; import com.zy.asrs.domain.enums.TaskStatusType; +import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.domain.param.CrnOperatorParam; import com.zy.asrs.entity.*; import com.zy.asrs.entity.wms.StorageEscalationParam; -import com.zy.asrs.mapper.*; +import com.zy.asrs.mapper.BasCrnErrorMapper; +import com.zy.asrs.mapper.StaDescMapper; +import com.zy.asrs.mapper.TaskWrkMapper; +import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; +import com.zy.common.service.CommonService; import com.zy.core.CrnThread; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; @@ -29,6 +34,7 @@ import com.zy.core.thread.SiemensDevpThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; @@ -36,6 +42,7 @@ import java.io.IOException; import java.util.Date; import java.util.List; +import java.util.Random; /** * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔� @@ -55,6 +62,8 @@ @Autowired private LocMastService locMastService; @Autowired + private LocDetlService locDetlService; + @Autowired private BasCrnpService basCrnpService; @Autowired private BasDevpService basDevpService; @@ -66,10 +75,9 @@ private TaskWrkMapper taskWrkMapper; @Autowired - private DevpTaskMapper devpTaskMapper; - @Autowired private TaskWrkService taskWrkService; - + @Autowired + private CommonService commonService; @Autowired private StaDescMapper staDescMapper; @@ -87,6 +95,22 @@ @Autowired private TransferTaskService transferTaskService; + + @Autowired + private WrkMastService wrkMastService; + + @Autowired + private WrkDetlService wrkDetlService; + + @Value("${loc-move.enable}") + private boolean enable; + @Value("${loc-move.crn1}") + private boolean crn1; + @Value("${loc-move.crn2}") + private boolean crn2; + @Value("${loc-move.crn3}") + private boolean crn3; + public void generateStoreWrkFile() throws IOException, InterruptedException { try { @@ -838,7 +862,7 @@ try { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { - if (devp.getId() == 2){ + if (devp.getId() == 2) { continue; } SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); @@ -1003,23 +1027,117 @@ /** * 璺戝簱绋嬪簭 */ - public void debug() { - //棣栧厛搴撲綅鏈変竴涓湪搴撶殑搴撲綅 - LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F")); - if (locMast != null) { - // 鍐嶇敓鎴愪竴涓Щ搴撲换鍔� - LocMast mk = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").ne("mk", 1)); - + public void debug(String sts, Long modiUser, Integer loc_type1) { + if (!enable) { + return; } - + List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>()); + if (basCrnps.isEmpty()) { + return; + } + for (BasCrnp basCrnp : basCrnps) { + if (!basCrnp.getInEnable().equals("N") || !basCrnp.getOutEnable().equals("Y")) { + continue; + } + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", basCrnp.getCrnNo()).eq("io_type", 11)); + if (Cools.isEmpty(wrkMasts) || wrkMasts.isEmpty()) { + int i = locMastService.selectCount(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser)); + LocMast locMastStart = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser)); + if (locMastStart == null || i > 1) { + continue; + } + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("loc_sts", "O") + .eq("crn_no", basCrnp.getCrnNo()) + .eq("loc_type1", locMastStart.getLocType1()) + .ne("modi_user", 77)); + if (Cools.isEmpty(locMasts)) { + continue; + } + Random random = new Random(); + LocMast locMastEnd = locMasts.get(random.nextInt(locMasts.size())); + locMove(locMastStart, locMastEnd, Long.parseLong(basCrnp.getCrnNo().toString())); + } + } } + + public void locMove(LocMast sourceLoc, LocMast locNo, Long userId) { + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLoc.getLocNo())); + LocMast loc = locMastService.selectById(locNo); + if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) { + throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�"); + } + Date now = new Date(); + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.PICK.type); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 + wrkMast.setIoPri(10D); + wrkMast.setCrnNo(sourceLoc.getCrnNo()); + wrkMast.setSourceLocNo(sourceLoc.getLocNo()); // 婧愬簱浣� + wrkMast.setLocNo(locNo.getLocNo()); // 鐩爣搴撲綅 + 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$()); + } + } /** * 杞Щ浠诲姟涓嬪彂 */ public void transferTaskStart() { - for (DevpSlave.Sta sta : slaveProperties.getDevp().get(1).getInSta()) { try { // 鑾峰彇鍏ュ簱绔欎俊鎭� @@ -1082,7 +1200,7 @@ continue; } log.info("杞Щ浠诲姟瀹屾垚锛歵ransferTask:" + JSON.toJSONString(transferTask)); - transferTask.setStatus(5); + transferTask.setStatus(3); transferTaskService.updateById(transferTask); } } catch (Exception e) { -- Gitblit v1.9.1