From 9f095733d13185290cfedd242b5f299585fbcad0 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 07 四月 2025 10:05:34 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/utils/Utils.java | 304 ++++++++++++++++++++++++++++++++-----------------
1 files changed, 197 insertions(+), 107 deletions(-)
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 4557c58..c1c4613 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -1,15 +1,23 @@
package com.zy.asrs.utils;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Arith;
import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.AdjDetl;
+import com.zy.asrs.service.AdjDetlService;
import com.zy.common.properties.SlaveProperties;
import com.zy.common.service.CommonService;
import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
+import java.util.Date;
import java.util.List;
/**
@@ -181,17 +189,6 @@
return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 3) + zerofill(String.valueOf(lev), 2);
}
- public static Integer getOutLayerRow(String locNo, Boolean pakin){
- int row = getRow(locNo);
- if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
- return 4;
- } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
- return 5;
- } else {
- return -1;
- }
- }
-
/**
* 鑾峰彇搴撲綅缁�
* @param locNo 搴撲綅鍙�
@@ -218,6 +215,7 @@
for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) {
result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
}
+ Collections.reverse(result);
return result;
}
if (CommonService.FOURTH_GROUP_ROW_LIST.contains(row)) {
@@ -239,6 +237,7 @@
for (Integer row0 : CommonService.SIXTH_GROUP_ROW_LIST) {
result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
}
+ Collections.reverse(result);
return result;
}
if (CommonService.SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {
@@ -259,7 +258,52 @@
}
public static void main(String[] args) {
- System.out.println(JSON.toJSONString(getGroupInnerLoc("1605909")));
+ System.out.println(JSON.toJSONString(getGroupInnerLoc("1505908")));
+ }
+
+ /**
+ * 鑾峰彇娣辨祬搴撲綅缁�
+ * @param locNo 搴撲綅鍙�
+ * @return
+ */
+ public static List<String> getGroupDeepLoc(String locNo){
+ int row = getRow(locNo);
+ int bay = getBay(locNo);
+
+ //(1,3,4,10,11)娌℃湁澶栦晶鏂瑰悜搴撲綅缁�,(13,14,16)59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+ if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {//1鎺�
+ return new ArrayList<>();
+ }
+ if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {//3-4鎺�
+ return new ArrayList<>();
+ }
+ if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {//6-7鎺�
+ List<String> result = new ArrayList<>();
+ for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) {
+ result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+ }
+ return result;
+ }
+ if (CommonService.FOURTH_GROUP_ROW_LIST.contains(row)) {//8鎺�
+ return new ArrayList<>();
+ }
+ if (CommonService.FIFTH_GROUP_ROW_LIST.contains(row)) {//10-11鎺�
+ return new ArrayList<>();
+ }
+ if (CommonService.SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {//13-16鎺�59-61鍒楀渚ф柟鍚戝簱浣嶇粍
+ List<String> result = new ArrayList<>();
+ for (Integer row0 : CommonService.SIXTH_GROUP_ROW_LIST) {
+ result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+ }
+ return result;
+ }
+ if (CommonService.SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//13-14鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+ return new ArrayList<>();
+ }
+ if (CommonService.EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//16鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+ return new ArrayList<>();
+ }
+ throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
}
/**
@@ -360,103 +404,149 @@
throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
}
- // 澶栦晶鏂瑰悜鐨勮揣浣� 浼樺厛鍏ュ簱鏂瑰悜/浼樺厛鍑哄簱鏂瑰悜
- public static List<String> getGroupOuterLocIoPri(String locNo){
-// int row = getRow(locNo);
-// List<String> result = new ArrayList<>();
-// if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
-// for (Integer integer : CommonService.FIRST_GROUP_ROW_LIST) {
-// if (integer < row) {
-// result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
-// } else {
-// break;
-// }
-// }
-// } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)){
-// for (Integer integer : CommonService.FIRST_GROUP_ROW_LIST_SHORT) {
-// if (integer < row) {
-// result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
-// } else {
-// break;
-// }
-// }
-// } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)){
-// for (Integer integer : CommonService.SECOND_GROUP_ROW_LIST) {
-// if (integer < row) {
-// result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
-// } else {
-// break;
-// }
-// }
-// } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)){
-// List<Integer> clone = Arrays.asList(new Integer[CommonService.THIRD_GROUP_ROW_LIST.size()]);
-// Collections.copy(clone, CommonService.THIRD_GROUP_ROW_LIST);
-// Collections.reverse(clone);
-// for (Integer integer : clone) {
-// if (integer > row) {
-// result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
-// } else {
-// break;
-// }
-// }
-// }
-// return result;
+ //閫氳繃杈撻�佺珯鐐瑰彿鑾峰彇鎻愬崌鏈哄彿
+ public static Integer stnNoToLiftNo(Integer stnNo) {
+ //涓�鍙锋彁鍗囨満
+ ArrayList<Integer> one = new ArrayList<Integer>(){{
+ add(100);add(101);
+ add(200);add(201);
+ add(300);add(301);
+ }};
+
+ //浜屽彿鎻愬崌鏈�
+ ArrayList<Integer> two = new ArrayList<Integer>(){{
+ add(102);add(103);
+ add(202);add(203);
+ add(340);add(341);
+ }};
+
+ //涓夊彿鎻愬崌鏈�
+ ArrayList<Integer> three = new ArrayList<Integer>(){{
+ add(104);add(105);
+ add(204);add(205);
+ add(345);add(346);
+ }};
+
+ if (one.contains(stnNo)) {
+ return 1;
+ } else if (two.contains(stnNo)) {
+ return 2;
+ } else if (three.contains(stnNo)) {
+ return 3;
+ }
+
+
return null;
}
- // 鍐呬晶鏂瑰悜鐨勮揣浣� 浼樺厛鍏ュ簱鏂瑰悜/浼樺厛鍑哄簱鏂瑰悜 ===>> 鍙嶄箣
- public static List<String> getGroupInsideLoc(String locNo){
-// int row = getRow(locNo);
-// List<String> result = new ArrayList<>();
-// if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
-// List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST.size()]);
-// Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST);
-// Collections.reverse(clone);
-// for (Integer integer : clone) {
-// if (integer > row) {
-// result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
-// } else {
-// break;
-// }
-// }
-// } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) {
-// List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST_SHORT.size()]);
-// Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST_SHORT);
-// Collections.reverse(clone);
-// for (Integer integer : clone) {
-// if (integer > row) {
-// result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
-// } else {
-// break;
-// }
-// }
-// } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
-// List<Integer> clone = Arrays.asList(new Integer[CommonService.SECOND_GROUP_ROW_LIST.size()]);
-// Collections.copy(clone, CommonService.SECOND_GROUP_ROW_LIST);
-// Collections.reverse(clone);
-// for (Integer integer : clone) {
-// if (integer > row) {
-// result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
-// } else {
-// break;
-// }
-// }
-// } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {
-// for (Integer integer : CommonService.THIRD_GROUP_ROW_LIST) {
-// if (integer < row) {
-// result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
-// } else {
-// break;
-// }
-// }
-// } else {
-//// throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
-// }
-// if (!Cools.isEmpty(result)) {
-// Collections.reverse(result);
-// }
-// return result;
- return null;
+ public static void wapperSetCondition(Wrapper wrapper, String column, String condition){
+ if(Cools.isEmpty(condition) || "null".equals(condition)){
+ wrapper.andNew().eq(column,"").or().isNull(column);
+ }else {
+ wrapper.andNew().eq(column,condition);
+ }
+ }
+
+ public static void confirmOnlyMat(Wrapper wrapper, String matnr, String csocode, String isoseq){
+ wapperSetCondition(wrapper,"matnr",matnr);
+ wapperSetCondition(wrapper,"csocode",csocode);
+ wapperSetCondition(wrapper,"isoseq",isoseq);
+ }
+
+ public static void confirmOnlyMat(Wrapper wrapper, String matnr, String batch, String threeCode, String deadTime){
+ wapperSetCondition(wrapper,"matnr",matnr);
+ wapperSetCondition(wrapper,"three_code",threeCode);
+ wapperSetCondition(wrapper,"dead_time",deadTime);
+ wapperSetCondition(wrapper,"batch",batch);
+ }
+
+ //鐢熸垚搴撳瓨璋冩暣璁板綍鍗曟嵁鍙� (骞存湀鏃�+4浣嶆祦姘�)
+ public static String generateAdjustOrderNo(){
+ Date date = new Date();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+ String dateStr = sdf.format(date);
+
+ try {
+ AdjDetlService adjDetlService = SpringUtils.getBean(AdjDetlService.class);
+ AdjDetl adjDetl = adjDetlService.selectOne(new EntityWrapper<AdjDetl>().orderBy("adj_id",false));
+ if(!Cools.isEmpty(adjDetl)){
+ String orderNo = adjDetl.getOrderNo();
+ String lastDateStr = orderNo.substring(0, 8);
+ if(Cools.eq(dateStr,lastDateStr)){
+ int index = Integer.parseInt(orderNo.substring(8, 12));
+ index++;
+ if(index < 10){
+ return dateStr + "000" + index;
+ }
+ if(index < 100){
+ return dateStr + "00" + index;
+ }
+ if(index < 1000){
+ return dateStr + "0" + index;
+ }
+ return dateStr + index;
+ }else {
+ return dateStr + "0000";
+ }
+ }else {
+ return dateStr + "0000";
+ }
+ }catch (Exception e){
+ return dateStr + "0000";
+ }
+ }
+
+ public static String getOrderNo(String orderNo, double anfme){
+ JSONArray orderArray = new JSONArray();
+ //濡傛灉璁㈠崟鍙蜂负jsonString
+ if(orderNo.contains("{")){
+ JSONArray jsonArray = JSON.parseArray(orderNo);
+ //閬嶅巻鎵�鏈夎鍗曞彿鍙婅鍗曟暟閲�
+ for (Object o : jsonArray){
+ JSONObject orderJson = (JSONObject) o;
+ Double orderAnfme = orderJson.getDouble("anfme");
+ //濡傛灉璁㈠崟鏁伴噺涓�0锛屽垯璺宠繃
+ if(orderAnfme <= 0){
+ continue;
+ }
+ if(orderAnfme > anfme){
+ //濡傛灉璁㈠崟鏁伴噺澶т簬璇ュ簱瀛樻暟閲忥紝涓旇鍗曟暟缁勪负绌猴紝鍒欑洿鎺ヨ繑鍥炶璁㈠崟鍙凤紝鍚﹀垯灏卞皢璇ヨ鍗曟坊鍔犲埌璁㈠崟鏁扮粍
+ if(orderArray.isEmpty()){
+ return orderJson.getString("orderNo");
+ }else {
+ orderJson.put("anfme",anfme);
+ orderArray.add(orderJson);
+ }
+ }else {
+ anfme -= orderAnfme;
+ orderArray.add(orderJson);
+ }
+ }
+ return orderArray.toJSONString();
+ }else {
+ return orderNo;
+ }
+
+ }
+
+ public static String orderMergeUpdate(String orderNo, double anfme){
+ if(orderNo.contains("{")){
+ JSONArray jsonArray = JSON.parseArray(orderNo);
+ for(int i=0; i<jsonArray.size(); i++){
+ JSONObject orderJson = (JSONObject)jsonArray.get(i);
+ Double orderAnfme = orderJson.getDouble("anfme");
+ if(orderAnfme > anfme){
+ ((JSONObject) jsonArray.get(i)).put("anfme",orderAnfme - anfme);
+ return jsonArray.toJSONString();
+ }else {
+ ((JSONObject) jsonArray.get(i)).put("anfme",0);
+ anfme -= orderAnfme;
+ }
+ }
+ return jsonArray.toJSONString();
+ }else {
+ return orderNo;
+ }
}
}
--
Gitblit v1.9.1