From fcb71b8fc63f74cd00d3faa76c73f4c5566ee352 Mon Sep 17 00:00:00 2001 From: zc <zc@123> Date: 星期三, 07 五月 2025 23:23:09 +0800 Subject: [PATCH] 解决提升机在本层,而没有锁提升机的问题 --- src/main/java/com/zy/common/service/CommonService.java | 36 +++++++++++++++++++++++++----------- 1 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 008db5a..3695334 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -1,10 +1,16 @@ package com.zy.common.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.domain.param.*; -import com.zy.asrs.entity.*; -import com.zy.asrs.service.*; +import com.zy.asrs.entity.LocMast; +import com.zy.asrs.entity.WrkLastno; +import com.zy.asrs.entity.WrkMast; +import com.zy.asrs.service.LocMastService; +import com.zy.asrs.service.WrkLastnoService; +import com.zy.asrs.service.WrkMastLogService; +import com.zy.asrs.service.WrkMastService; import com.zy.core.News; import com.zy.core.enums.WrkIoType; import com.zy.core.enums.WrkStsType; @@ -40,17 +46,17 @@ int workNo = wrkLastno.getWrkNo(); int sNo = wrkLastno.getSNo(); int eNo = wrkLastno.getENo(); - workNo = workNo>=eNo ? sNo : workNo+1; + workNo = workNo >= eNo ? sNo : workNo + 1; while (true) { WrkMast wrkMast = wrkMastService.selectByWorkNo(workNo); if (null != wrkMast) { - workNo = workNo>=eNo ? sNo : workNo+1; + workNo = workNo >= eNo ? sNo : workNo + 1; } else { break; } } // 淇敼搴忓彿璁板綍 - if (workNo > 0){ + if (workNo > 0) { wrkLastno.setWrkNo(workNo); wrkLastnoService.updateById(wrkLastno); } @@ -58,7 +64,7 @@ if (workNo == 0) { throw new CoolException("鐢熸垚宸ヤ綔鍙峰け璐ワ紝璇疯仈绯荤鐞嗗憳"); } else { - if (wrkMastService.selectByWorkNo(workNo)!=null) { + if (wrkMastService.selectByWorkNo(workNo) != null) { throw new CoolException("鐢熸垚宸ヤ綔鍙�" + workNo + "鍦ㄥ伐浣滄。涓凡瀛樺湪"); } } @@ -72,7 +78,7 @@ return msg.substring(0, 16); } else { StringBuilder msgBuilder = new StringBuilder(msg); - for(int i = 0; i < count - msg.length(); ++i) { + for (int i = 0; i < count - msg.length(); ++i) { msgBuilder.insert(0, "0"); } return msgBuilder.toString(); @@ -88,7 +94,7 @@ if (wrkMast.getIoType() == WrkIoType.IN.id) { wrkMast.setWrkSts(WrkStsType.COMPLETE_INBOUND.sts); - }else if (wrkMast.getIoType() == WrkIoType.OUT.id) { + } else if (wrkMast.getIoType() == WrkIoType.OUT.id) { wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts); } else if (wrkMast.getIoType() == WrkIoType.SHUTTLE_MOVE.id) { wrkMast.setWrkSts(WrkStsType.COMPLETE_MOVE.sts); @@ -169,7 +175,7 @@ } //鍏ュ簱浠诲姟 - public boolean createInTask(CreateInTaskParam param) { + public synchronized boolean createInTask(CreateInTaskParam param) { Date now = new Date(); LocMast locMast = locMastService.queryByLoc(param.getLocNo()); if (null == locMast) { @@ -178,6 +184,10 @@ if (!locMast.getLocSts().equals("O")) { throw new CoolException("鐩爣搴撲綅涓嶅浜庣┖搴撶姸鎬�"); + } + WrkMast wms_wrk_no = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wms_wrk_no", param.getTaskNo())); + if (wms_wrk_no!=null){ + throw new CoolException("宸ヤ綔褰撳凡缁忓瓨鍦�"); } // 鑾峰彇宸ヤ綔鍙� @@ -193,6 +203,7 @@ wrkMast.setSourceStaNo(param.getSourceStaNo());//婧愮珯 wrkMast.setStaNo(param.getStaNo());//鐩爣绔� wrkMast.setWmsWrkNo(param.getTaskNo()); + wrkMast.setBarcode(param.getBarcode()); wrkMast.setAppeTime(now); wrkMast.setModiTime(now); boolean res = wrkMastService.insert(wrkMast); @@ -209,7 +220,7 @@ } //鍑哄簱浠诲姟 - public boolean createOutTask(CreateOutTaskParam param) { + public synchronized boolean createOutTask(CreateOutTaskParam param) { Date now = new Date(); LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo()); if (null == locMast) { @@ -219,7 +230,10 @@ if (!locMast.getLocSts().equals("F")) { throw new CoolException("婧愬簱浣嶄笉澶勪簬鍦ㄥ簱鐘舵��"); } - + WrkMast wms_wrk_no = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wms_wrk_no", param.getTaskNo())); + if (wms_wrk_no!=null){ + throw new CoolException("宸ヤ綔褰撳凡缁忓瓨鍦�"); + } // 鑾峰彇宸ヤ綔鍙� int workNo = getWorkNo(WrkIoType.OUT.id); // 淇濆瓨宸ヤ綔妗� -- Gitblit v1.9.1