From a47fcd804f2c590a8e5e2c08a1d506b665411aa9 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 30 七月 2020 11:11:29 +0800 Subject: [PATCH] #当前本版十分完美、冻结 --- src/main/java/com/zy/common/service/CommonService.java | 79 ++++++++++++++++++++++++++++----------- 1 files changed, 56 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index efb2df8..628c95f 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -99,40 +99,55 @@ int eRow = rowLastno.geteRow(); int crn_qty = rowLastno.getCrnQty(); int rowCount = eRow - sRow + 1; + // 鐩爣鍫嗗灈鏈哄彿 + int crnNo = 0; + // 鐩爣搴撲綅 + LocMast locMast = null; - // 鍚屼竴澶╁悓瑙勬牸璐х墿闈犺繎鎽嗘硶瑙勫垯 todo + // 鍚屼竴澶╁悓瑙勬牸璐х墿闈犺繎鎽嗘硶瑙勫垯 List<String> locNos = locDetlService.getSameDetlToday("X004073XX"); for (String locNo : locNos) { // 鑾峰彇鎺� int row = Integer.parseInt(locNo.substring(0, 2)); // 鍒ゆ柇鏄惁涓烘繁搴撲綅 double remainder = Arith.remainder(row, rowCount / crn_qty); + int targetRow; if (remainder == 1) { // 寰楀埌褰撳墠搴撲綅鐨勫鍥村簱浣� - + targetRow = row + 1; } else if (remainder == 0) { // 寰楀埌褰撳墠搴撲綅鐨勫唴鍥村簱浣� - + targetRow = row - 1; } else { continue; } - - } - - // 鑾峰彇鐩爣绔欐墍鍦ㄨ揣鏋舵帓鍙� - Shelves shelves = new Shelves(rowCount, crn_qty); - curRow = shelves.start(curRow); - if (curRow < 0) { - throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳"); - } - // 鍫嗗灈鏈哄彿 - int crnNo = 0; - for (List<Integer> node : shelves.nodes){ - if (node.contains(curRow)) { - crnNo = shelves.nodes.indexOf(node) + 1; + String targetLocNo = zerofill(String.valueOf(targetRow), 2)+locNo.substring(2); + // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣� + LocMast targetLocMast = locMastService.selectById(targetLocNo); + if (targetLocMast != null && !targetLocMast.getLocSts().equals("O")) { + locMast = targetLocMast; + crnNo = locMast.getCrnNo(); break; } } + + // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋� + if (null == locMast) { + // 鑾峰彇鐩爣绔欐墍鍦ㄨ揣鏋舵帓鍙� + Shelves shelves = new Shelves(rowCount, crn_qty); + curRow = shelves.start(curRow); + if (curRow < 0) { + throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳"); + } + for (List<Integer> node : shelves.nodes){ + if (node.contains(curRow)) { + crnNo = shelves.nodes.indexOf(node) + 1; + break; + } + } + } + + basCrnpService.checkSiteStatus(crnNo); // 鑾峰彇鐩爣绔� Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() @@ -147,7 +162,9 @@ int inQty = staNo.getInQty()==null?0:staNo.getInQty(); if (staNo.getInEnable().equals("Y") && staNo.getAutoing().equals("Y") && inQty<2) { // 鏌ユ壘搴撲綅 - LocMast locMast = locMastService.queryFreeLocMast(curRow); + if (locMast == null) { + locMast = locMastService.queryFreeLocMast(curRow); + } if (Cools.isEmpty(locMast)) { throw new CoolException("娌℃湁绌哄簱浣�"); } @@ -159,7 +176,6 @@ // 杩斿洖dto startupDto.setCrnNo(crnNo); - startupDto.setShelves(shelves); startupDto.setSourceStaNo(sourceStaNo); startupDto.setStaNo(staNo.getDevNo()); startupDto.setLocNo(locNo); @@ -175,17 +191,34 @@ public static void main(String[] args) { System.out.println(Arith.remainder(1, 4)); System.out.println("0200201".substring(0, 2)); - String locNo = "0100201"; + String locNo = "0800201"; int row = Integer.parseInt(locNo.substring(0, 2)); double remainder = Arith.remainder(row, 4); + int targetRow; if (remainder == 1) { // 寰楀埌褰撳墠搴撲綅鐨勫鍥村簱浣� - int targetRow = row + 1; - + targetRow = row + 1; } else if (remainder == 0) { // 寰楀埌褰撳墠搴撲綅鐨勫唴鍥村簱浣� - + targetRow = row - 1; } else { + return; + } + String zerofill = zerofill(String.valueOf(targetRow), 2)+locNo.substring(2); + System.out.println(zerofill); + } + + public static String zerofill(String msg, Integer count) { + if (msg.length() == count) { + return msg; + } else if (msg.length() > count) { + return msg.substring(0, 16); + } else { + StringBuilder msgBuilder = new StringBuilder(msg); + for(int i = 0; i < count - msg.length(); ++i) { + msgBuilder.insert(0, "0"); + } + return msgBuilder.toString(); } } -- Gitblit v1.9.1