自动化立体仓库 - WMS系统
zyx
2023-11-24 c37ae85eab15d2c7566677bfb26920c31da879fe
src/main/java/com/zy/asrs/utils/Utils.java
@@ -1,15 +1,21 @@
package com.zy.asrs.utils;
import com.alibaba.fastjson.JSON;
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;
/**
@@ -207,6 +213,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)) {
@@ -228,6 +235,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) {
@@ -248,7 +256,7 @@
    }
    public static void main(String[] args) {
        System.out.println(JSON.toJSONString(getGroupLoc("0703409")));
        System.out.println(JSON.toJSONString(getGroupLoc("1305908")));
    }
    /**
@@ -349,4 +357,96 @@
        throw new RuntimeException("库位解析异常");
    }
    //通过输送站点号获取提升机号
    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 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);
    }
    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";
        }
    }
}