From 9c08f3ae419992dda4f4f3ff4650fafd6585ebae Mon Sep 17 00:00:00 2001 From: dubin <bindu_bean@163.com> Date: 星期三, 24 九月 2025 11:00:00 +0800 Subject: [PATCH] 初始化 --- src/main/java/com/zy/common/service/CommonService.java | 171 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 142 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index a655e88..9c1a0d7 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -7,7 +7,9 @@ import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.*; +import com.zy.asrs.entity.result.KeyValueVo; import com.zy.asrs.service.*; +import com.zy.asrs.service.impl.MatServiceImpl; import com.zy.asrs.utils.Utils; import com.zy.asrs.utils.VersionUtils; import com.zy.common.model.LocTypeDto; @@ -19,6 +21,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; +import java.util.ArrayList; import java.util.List; /** @@ -47,10 +53,11 @@ private LocDetlService locDetlService; @Autowired private SlaveProperties slaveProperties; + @Autowired + private MatServiceImpl matService; /** * 鐢熸垚宸ヤ綔鍙� - * * @param wrkMk * @return workNo(宸ヤ綔鍙�) */ @@ -63,17 +70,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.selectById(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); } @@ -81,11 +88,27 @@ if (workNo == 0) { throw new CoolException("鐢熸垚宸ヤ綔鍙峰け璐ワ紝璇疯仈绯荤鐞嗗憳"); } else { - if (wrkMastService.selectById(workNo) != null) { + if (wrkMastService.selectById(workNo)!=null) { throw new CoolException("鐢熸垚宸ヤ綔鍙�" + workNo + "鍦ㄥ伐浣滄。涓凡瀛樺湪"); } } return workNo; + } + + //鎷嗙洏鏈哄绌烘澘鎵爜锛岄┍鍔ㄦ墭鐩樺悜鐮佸灈浣嶏紝涓嶅叆搴� + @Transactional + public StartupDto getScanBarcodeEmptyBoard(){ + StartupDto startupDto = new StartupDto(); + Integer staNo = 0; + if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 201).eq("staNo", 216))<2){ + staNo=216; + } + if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 201).eq("staNo", 220))<2){ + staNo=220; + } + + startupDto.setStaNo(staNo); + return startupDto; } /** @@ -98,7 +121,28 @@ * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿 */ @Transactional - public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, LocTypeDto locTypeDto, int times) { + public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, LocTypeDto locTypeDto) { + whsType = Utils.GetWhsType(sourceStaNo); + return getLocNo(whsType,staDescId,sourceStaNo,matnr,batch,grade,0,locTypeDto,0); + } + + @Transactional + public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, LocTypeDto locTypeDto,String barcode) { + whsType = Utils.GetWhsType(sourceStaNo); + return getLocNo1(whsType,staDescId,sourceStaNo,matnr,batch,grade,0,locTypeDto,0,barcode); + } + + /** + * 妫�绱㈠簱浣嶅彿 + * + * @param whsType 绫诲瀷 1:鍙屾繁寮忚揣鏋� + * @param staDescId 璺緞ID + * @param sourceStaNo 婧愮珯 + * @param matnr 鐗╂枡鍙烽泦鍚� + * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿 + */ + @Transactional + public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, Integer moveCrnNo, LocTypeDto locTypeDto, int times) { if (Cools.isEmpty(matnr)) { //鐗╂枡鍙� matnr = ""; } @@ -128,6 +172,15 @@ // ===============>>>> 寮�濮嬫墽琛� curRow = rowLastno.getCurrentRow(); + if (!Cools.isEmpty(moveCrnNo) && moveCrnNo!=0){ + crnNumber = moveCrnNo; + if (times==0){ + curRow = moveCrnNo*4-1; + }else { + curRow = moveCrnNo*4-2; + } + } + //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿 for (int i = times; i < crnNumber; i++) { int[] locNecessaryParameters = Utils.LocNecessaryParameters(whsType, curRow, crnNumber); @@ -145,29 +198,41 @@ throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満"); } + boolean signRule1 = false; + boolean signRule2 = false; -// // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //鍒嗙鐗� -// if (!Cools.isEmpty(matnr) && (staDescId == 1 || staDescId == 11 || staDescId == 111)) { -// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O")); -// for (LocMast locMast1:locMasts){ -// if (VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { -// continue; -// } -// String shallowLoc = Utils.getDeepLoc(slaveProperties,locMast1.getLocNo()); -// LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",shallowLoc)); -// if (!Cools.isEmpty(locMast2) && locMast2.getLocSts().equals("F")){ -// LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast2.getLocNo())); -// if (!Cools.isEmpty(locDetl) && matnr.equals(locDetl.getMatnr())) { -// locMast = locMast1; -// break; -// } -// } -// } + + // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //鍒嗙鐗� +// if (!Cools.isEmpty(matnr) && (staDescId == 1)){ +// signRule1 = true; // } - // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //浜掗�氱増 - if (!Cools.isEmpty(matnr) && (staDescId == 1 || staDescId == 11 || staDescId == 111)) { - List<String> locNos = locDetlService.getSameDetlToday(matnr, sRow, eRow); + if (!Cools.isEmpty(matnr) && staDescId == 1) { + signRule2 = true; + } + + if (!Cools.isEmpty(matnr) && (staDescId == 11 || staDescId == 111)) { + signRule1 = true; + } + + if (signRule1){ + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O")); + for (LocMast locMast1:locMasts){ + if (VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { + continue; + } + String shallowLoc = Utils.getDeepLoc(slaveProperties,locMast1.getLocNo()); + LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",shallowLoc)); + if (!Cools.isEmpty(locMast2) && locMast2.getLocSts().equals("F")){ + LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast2.getLocNo())); + if (!Cools.isEmpty(locDetl) && matnr.equals(locDetl.getMatnr())) { + locMast = locMast1; + break; + } + } + } + }else if (signRule2){ + List<String> locNos = locDetlService.getSameDetlToday(matnr,batch, sRow, eRow); for (String locNo : locNos) { if (Utils.isShallowLoc(slaveProperties, locNo)) { continue; @@ -188,7 +253,7 @@ } // // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //鍒嗙鐗� -// if (staDescId == 10) { +// if (staDescId == 10) { // List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O")); // for (LocMast locMast1:locMasts){ // if (VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { @@ -263,7 +328,7 @@ if (Cools.isEmpty(locMast) && crnNo != 0) { List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O")); for (LocMast locMast1 : locMasts) { - if (VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { + if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { continue; } String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo()); @@ -284,7 +349,7 @@ // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊 if (times < rowCount) { times = times + 1; - return getLocNo(1, staDescId, sourceStaNo, matnr, batch, grade, locTypeDto, times); + return getLocNo(1, staDescId, sourceStaNo, matnr, batch, grade,moveCrnNo, locTypeDto, times); } // // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣� // if (locTypeDto.getLocType1() < 2) { @@ -306,4 +371,52 @@ startupDto.setLocNo(locNo); return startupDto; } + + /* + * 妫�绱㈠簱浣嶅彿 + * */ + @Transactional + public StartupDto getLocNo1(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, Integer moveCrnNo, LocTypeDto locTypeDto, int times,String barcode){ + StartupDto startupDto = new StartupDto(); + Wrapper<StaDesc> wrapper = null; + StaDesc staDesc = null; + BasDevp staNo = null; + int crnNo = 1; //鍫嗗灈鏈哄彿 + if (Utils.BooleanWhsTypeSta(whsType, staDescId)) { + // 鑾峰彇鐩爣绔� + wrapper = new EntityWrapper<StaDesc>() + .eq("type_no", staDescId) + .eq("stn_no", sourceStaNo) + .eq("crn_no", crnNo); + staDesc = staDescService.selectOne(wrapper); + if (Cools.isEmpty(staDesc)) { + log.error("type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo); + throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�"); +// crnNo = 0; + } + staNo = basDevpService.selectById(staDesc.getCrnStn()); + if (!staNo.getAutoing().equals("Y")) { + throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�"); +// crnNo = 0; + } + startupDto.setStaNo(staNo.getDevNo()); + } + int workNo = getWorkNo(0); + startupDto.setWorkNo(workNo); + startupDto.setSourceStaNo(sourceStaNo); + startupDto.setCrnNo(1); + //绗竴娆″叆搴� + //鍚庣画鍏ュ簱锛堟墭鐩樺拰搴撲綅宸茬粡缁戝畾锛� + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("barcode", barcode)); + if (locMast != null){ + if (!locMast.getLocSts().equals("O")){ + log.error("涓庤鎵樼洏缁戝畾鐨勫簱浣嶅凡琚崰鐢紝鎵樼洏鐮侊細{}锛屽簱浣嶅彿锛歿}",barcode,locMast.getLocNo()); + } else { + startupDto.setLocNo(locMast.getLocNo()); + } + } else { + //鎵樼洏涓庡簱浣嶆湭缁戝畾 璧扮涓�娆″叆搴撻�昏緫 + } + return startupDto; + } } -- Gitblit v1.9.1