package com.zy.asrs.utils; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Arith; import com.core.common.Cools; import com.zy.common.properties.SlaveProperties; import com.zy.common.service.CommonService; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * Created by vincent on 2020/8/27 */ public class Utils { private static final DecimalFormat fmt = new DecimalFormat("##0.00"); public static float scale(Float f){ if (f == null || f == 0f || Float.isNaN(f)) { return 0f; } return (float) Arith.multiplys(2, f, 1); } 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 getGroupLoc(String locNo){ int row = getRow(locNo); int bay = getBay(locNo); if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) { List result = new ArrayList<>(); for (Integer row0 : CommonService.FIRST_GROUP_ROW_LIST) { result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2)); } return result; } if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) { List result = new ArrayList<>(); for (Integer row0 : CommonService.SECOND_GROUP_ROW_LIST) { result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2)); } return result; } if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) { List result = new ArrayList<>(); 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)) { List result = new ArrayList<>(); for (Integer row0 : CommonService.FOURTH_GROUP_ROW_LIST) { result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2)); } return result; } if (CommonService.FIFTH_GROUP_ROW_LIST.contains(row)) { List result = new ArrayList<>(); for (Integer row0 : CommonService.FIFTH_GROUP_ROW_LIST) { result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2)); } return result; } if (CommonService.SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) { List result = new ArrayList<>(); 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) { List result = new ArrayList<>(); for (Integer row0 : CommonService.SEVENTH_GROUP_ROW_LIST) { result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2)); } return result; } if (CommonService.EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) { List result = new ArrayList<>(); for (Integer row0 : CommonService.EIGHTH_GROUP_ROW_LIST) { result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2)); } return result; } throw new RuntimeException("库位解析异常"); } public static void main(String[] args) { System.out.println(JSON.toJSONString(getGroupLoc("1305908"))); } /** * 获取外侧方向的库位组 * @param locNo 库位号 * @return */ public static List getGroupOuterLoc(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 result = new ArrayList<>(); for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) { if (row0 < row) { 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 result = new ArrayList<>(); for (Integer row0 : CommonService.SIXTH_GROUP_ROW_LIST) { if (row0 < row) { 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("库位解析异常"); } /** * 获取内侧方向的库位组 * @param locNo 库位号 * @return */ public static List getGroupInnerLoc(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 result = new ArrayList<>(); for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) { if (row0 > row) { 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 result = new ArrayList<>(); for (Integer row0 : CommonService.SIXTH_GROUP_ROW_LIST) { if (row0 > row) { 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("库位解析异常"); } //通过输送站点号获取提升机号 public static Integer stnNoToLiftNo(Integer stnNo) { //一号提升机 ArrayList one = new ArrayList(){{ add(100);add(101); add(200);add(201); add(300);add(301); }}; //二号提升机 ArrayList two = new ArrayList(){{ add(102);add(103); add(202);add(203); add(340);add(341); }}; //三号提升机 ArrayList three = new ArrayList(){{ 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 void wapperSetCondition(Wrapper wrapper, String column, String condition){ if(Cools.isEmpty(condition) || "null".equals(condition)){ wrapper.andNew().eq(column,"").or().isNull(column); }else { wrapper.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); } }