From 5b5050cfc6912d59138e09d1e7bd589db81d2025 Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期一, 02 十月 2023 00:09:01 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/CommonService.java | 41 +++++++++++++++++++++++++++++++++++++---- 1 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 73c18da..f46b33e 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -16,10 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Random; +import java.util.*; /** * 璐ф灦鏍稿績鍔熻兘 @@ -288,11 +285,13 @@ private LocMast getLocNoStep2(LocTypeDto locTypeDto, List<String> matNos, List<Integer> rows, List<Integer> crnNos) { LocMast locMast = null; //鍏堟壘宸ヤ綔妗� + List<WrkMast> wrkMasts = wrkMastService.selectSameWrkMast(matNos.get(0)); for (WrkMast wrkMast : wrkMasts) { List<String> groupLoc = Utils.getGroupLoc(wrkMast.getLocNo()); //闅忔満鍙敤鍫嗗灈鏈哄彿 Integer randomCrnNo = Utils.getRandomCrnNo(crnNos, locTypeDto.getLocType1()); + Collections.shuffle(crnNos); for (Integer crnNo : crnNos) { List<LocMast> locMasts = locMastService.findEmptyLocMastByLocNos(locTypeDto.getLocType1(), groupLoc, crnNo); for (LocMast locMast0 : locMasts) { @@ -349,7 +348,9 @@ //鏈壘鍒板贩閬擄紝鎵句竴鏉℃柊鐨勭┖宸烽亾 if (locMast == null) { //闅忔満鍙敤鍫嗗灈鏈哄彿 + Boolean flag = false; Integer randomCrnNo = Utils.getRandomCrnNo(crnNos, locTypeDto.getLocType1()); + Collections.shuffle(crnNos); for (Integer crnNo : crnNos) { List<LocMast> locMasts = locMastService.findInEmptyLocMast(locTypeDto.getLocType1(), rows, crnNo);//鎵句竴鏉℃柊鐨勭┖宸烽亾 for (LocMast locMast0 : locMasts) { @@ -366,10 +367,14 @@ // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� if (locMastService.checkEmptyCount(locMast0, 10)) { locMast = locMast0; + flag = true; break; } } } + } + if (flag) { + break; } } } @@ -407,6 +412,20 @@ locMast = locMast0; } } + } + } + + //鍓旈櫎褰撳墠闅忔満鍫嗗灈鏈哄厓绱犲皾璇曢噸鏂版煡鎵� + if (locMast == null) { + ArrayList<Integer> crns = new ArrayList<>(); + for (int crnNo : crnNos) { + if (randomCrnNo == crnNo) { + continue; + } + crns.add(crnNo); + } + if (!crns.isEmpty()) { + return getLocNoStep3(locTypeDto, crns); } } @@ -464,6 +483,20 @@ } } + //鍓旈櫎褰撳墠闅忔満鍫嗗灈鏈哄厓绱犲皾璇曢噸鏂版煡鎵� + if (locMast == null) { + ArrayList<Integer> crns = new ArrayList<>(); + for (int crnNo : crnNos) { + if (randomCrnNo == crnNo) { + continue; + } + crns.add(crnNo); + } + if (!crns.isEmpty()) { + return getLocNoStep4(locTypeDto, crns); + } + } + return locMast; } -- Gitblit v1.9.1