自动化立体仓库 - WMS系统
#1
dubin
6 天以前 8416a2ccfedeb54b4244a38b8a53c1c5a5eec6a9
#1
4个文件已添加
11个文件已修改
522 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MonitorController.java 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/StatusParam.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/result/WorkIssuedResult.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/result/WrkCancel.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/result/WrkPriority.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WCSReportHandler.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/MatDto.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/command/LedCommand.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/param/ApplyChangeEnd.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/param/ErrorMsg.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MonitorController.java
New file
@@ -0,0 +1,229 @@
package com.zy.asrs.controller;
import com.core.common.Arith;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.entity.AxisBean;
import com.zy.asrs.entity.LocChartPie;
import com.zy.asrs.entity.WorkChartAxis;
import com.zy.asrs.mapper.ReportQueryMapper;
import com.zy.common.model.MatDto;
import com.zy.common.model.command.LedCommand;
import com.zy.common.service.CommonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.*;
@RestController
@RequestMapping("/monitor")
public class MonitorController {
    private static final String[] WEEK = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
    @Autowired
    private ReportQueryMapper reportQueryMapper;
    /**
     * 获取当前时间
     */
    @GetMapping("/date")
    public R monitorDate() {
        Date now = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(now);
        return R.ok(
                Cools.add("year", calendar.get(Calendar.YEAR))
                        .add("month", CommonService.zerofill(String.valueOf(calendar.get(Calendar.MONTH)+1), 2))
                        .add("day", CommonService.zerofill(String.valueOf(calendar.get(Calendar.DATE)), 2))
                        .add("hour", CommonService.zerofill(String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)), 2))
                        .add("minute", CommonService.zerofill(String.valueOf(calendar.get(Calendar.MINUTE)), 2))
                        .add("second", CommonService.zerofill(String.valueOf(calendar.get(Calendar.SECOND)) , 2))
                        .add("week", WEEK[calendar.get(Calendar.DAY_OF_WEEK)-1])
        );
    }
    /**
     * 入库报表 -- 折线图
     */
    @GetMapping("/pakin/rep")
    public R monitorPakinRep(){
        // 入库
        List<Map<String, Object>> pakinRep = reportQueryMapper.queryPakinRep();
        for (Map<String, Object> map : pakinRep) {
            if (map.get("node")!=null) {
                map.put("node", String.valueOf(map.get("node")).substring(5, 10));
            }
        }
        // 出库
        List<Map<String, Object>> pakoutRep = reportQueryMapper.queryPakinRep();
        return R.ok(pakinRep);
    }
    @GetMapping("/line/charts")
    public R locIoLineCharts(){
        Map<String,Object> map=new HashMap<String, Object>();
        List<AxisBean> list = new ArrayList<AxisBean>();
        List<WorkChartAxis> listChart = reportQueryMapper.getChartAxis();
        if(listChart!=null) {
            ArrayList<Integer> data1 = new ArrayList<Integer>();
            ArrayList<Integer> data2 = new ArrayList<Integer>();
            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.DATE, -12);
            for(int i=0;i<12;i++) {
                boolean flag = true;
                calendar.add(Calendar.DATE, 1);
                String str = sf.format(calendar.getTime());
                for(WorkChartAxis workChart : listChart) {
                    if(str.equals(workChart.getYmd())) {
                        data1.add(workChart.getInqty());
                        data2.add(workChart.getOutqty());
                        flag = false;
                        break;
                    }
                }
                if(flag) {
                    data1.add(0);
                    data2.add(0);
                }
            }
            AxisBean inqty = new AxisBean();
            inqty.setName("入库数量");
            Integer[] array1 = new Integer[data1.size()];
            inqty.setData(data1.toArray(array1));
            list.add(inqty);
            AxisBean outqty = new AxisBean();
            outqty.setName("出库数量");
            Integer[] array2 = new Integer[data2.size()];
            outqty.setData(data2.toArray(array2));
            list.add(outqty);
        }
        map.put("rows",list);
        return R.ok(map);
    }
    /**
     * 库位使用情况统计
     */
    @GetMapping("/loc/rep")
    public R monitorLocRep(){
        List<Map<String, Object>> pie = new ArrayList<>();
        LocChartPie locUseRate = reportQueryMapper.getLocUseRate();
        if(locUseRate!=null) {
            Map<String, Object> map = new HashMap<>();
            map.put("name", "在库");
            map.put("value", locUseRate.getFqty());
            pie.add(map);
            Map<String, Object> map1 = new HashMap<>();
            map1.put("name", "空");
            map1.put("value", locUseRate.getOqty());
            pie.add(map1);
            Map<String, Object> map2 = new HashMap<>();
            map2.put("name", "使用");
            map2.put("value", locUseRate.getUqty());
            pie.add(map2);
            Map<String, Object> map3 = new HashMap<>();
            map3.put("name", "禁用");
            map3.put("value", locUseRate.getXqty());
            pie.add(map3);
        }
        // 总库位数
        Integer total = (int) Arith.add(0, locUseRate.getFqty(), locUseRate.getOqty(), locUseRate.getUqty(), locUseRate.getXqty());
        // 使用中
        Integer used = locUseRate.getFqty() + locUseRate.getUqty();
        // 库位使用率
        double usedDivides = Arith.divides(3, used, total);
        double usedPr = Arith.multiplys(1, usedDivides, 100);
        return R.ok(
                Cools.add("pie", pie)
                        .add("stockCunt", locUseRate.getFqty())
                        .add("emptyCount", locUseRate.getOqty())
                        .add("noneCount", locUseRate.getXqty())
                        .add("total", total)
                        .add("used", used)
                        .add("usedPr", usedPr)
        );
    }
    /**
     * 获取其他信息
     */
    @GetMapping("/led")
    public R monitorLed(@RequestParam("ledId") Integer ledId) {
        String ledContent = "";
        List<LedCommand> commandList = new ArrayList<>();
        List<MatDto> matDtoList = new ArrayList<>();
        MatDto matDto = new MatDto(
                "001",
                "原材料",
                100.0,
                150.0,
                100.0,
                200.0,
                "1.2*1.3",
                "ZGDW890",
                "80000001",
                "DWT01",
                "中国电网",
                "中国电网",
                "ZGDW4396",
                "ZGDW-9945"
        );
        matDtoList.add(matDto);
        if (ledId == 100){
            LedCommand command = new LedCommand(
                    "全板入库",
                    9527,
                    100,
                    100,
                    "0100101",
                    "",
                    matDtoList,
                    false,
                    1,
                    "80000001"
            );
            commandList.add(command);
        }
        return R.ok().add(commandList);
    }
    /**
     * 异常通知
     */
    @GetMapping("/led/error")
    public R monitorLedError(@RequestParam("ledId") Integer ledId) {
        String errorMsg = "";
        if (ledId == 100){
//            errorMsg = "麦当劳VS肯德基";
        }
        return R.ok().add(errorMsg);
    }
    @GetMapping("/getLedInfos")
    public R getLedInfos(HttpServletRequest request) {
        String remoteAddr = request.getRemoteAddr();
            if (remoteAddr.equals("127.0.0.1")) {
                return R.ok();
            }
        return R.ok();
    }
}
src/main/java/com/zy/asrs/entity/param/StatusParam.java
@@ -30,4 +30,9 @@
     * 目的位置编码
     */
    private String gridId;
    /*
    * 仓库编码
    * */
    private String warehouse;
}
src/main/java/com/zy/asrs/entity/result/WorkIssuedResult.java
@@ -71,5 +71,11 @@
         * 前,大的在后
         */
        private int order;
        /*
        * 货物尺寸
        * 同层存在不同尺寸的托盘时必填
        * 1,2,3数字越大尺寸越大*/
        private Integer cargoSize;
    }
}
src/main/java/com/zy/asrs/entity/result/WrkCancel.java
@@ -10,4 +10,7 @@
    /*取消时间*/
    private String msgTime;
    /*仓库编码*/
    private String warehouse;
}
src/main/java/com/zy/asrs/entity/result/WrkPriority.java
@@ -5,7 +5,7 @@
@Data
public class WrkPriority {
    /*组号*/
    /*任务号*/
    private String taskId;
    /*优先级*/
@@ -13,4 +13,7 @@
    /*调整时间*/
    private String msgTime;
    /*仓库编码*/
    private String warehouse;
}
src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
@@ -7,6 +7,7 @@
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Mapper
@Repository
@@ -80,4 +81,15 @@
    Integer selectWorkCountInSum(String matnr, @Param("start") String startTime, @Param("end") String endTime);
    Integer selectWorkCountOutSum(String matnr, @Param("start") String startTime, @Param("end") String endTime);
    @Select("select \n" +
            "Min(wm.io_time) as node,\n" +
            "isnull(count(1), 0) as val\n" +
            "from asr_wrk_mast_log wm\n" +
            "where wm.wrk_sts = 5 \n" +
            "and (wm.io_type = 1 OR wm.io_type = 54)\n" +
            "and datediff(d, wm.io_time, getdate())<=7 \n" +
            "group by datediff(day,wm.io_time,getdate())\n" +
            "order by Min(wm.io_time) asc\n")
    List<Map<String, Object>> queryPakinRep();
}
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -87,6 +87,8 @@
    private String cancel;
    @Value("${wcs-slave.url}")
    private String url;
    @Value("${wcs-slave.warehouse}")
    private String warehouse;
    @Override
    @Transactional
@@ -1044,6 +1046,7 @@
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        wrkCancel.setTaskId(workNo); // 任务号
        wrkCancel.setMsgTime(dateFormat.format(date)); // 取消时间
        wrkCancel.setWarehouse(warehouse); // 仓库编码
        String response = "";
        boolean flag = false;
src/main/java/com/zy/asrs/task/handler/WCSReportHandler.java
@@ -37,6 +37,8 @@
    private String inDevp;
    @Value("${wcs-slave.outDevp}")
    private String outDevp;
    @Value("${wcs-slave.warehouse}")
    private String warehouse;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
@@ -138,7 +140,8 @@
        WrkPriority wrkPriority = new WrkPriority();
        Date date = new Date();
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        wrkPriority.setTaskId(wrkMast.getWrkNo().toString()); // 组号
        wrkPriority.setTaskId(wrkMast.getWrkNo().toString()); // 任务号
        wrkPriority.setWarehouse(warehouse); // 仓库编码
        wrkPriority.setPriorityCode(wrkMast.getIoPri().intValue()); // 优先级
        wrkPriority.setMsgTime(dateFormat.format(date)); // 调整时间
src/main/java/com/zy/common/model/MatDto.java
New file
@@ -0,0 +1,78 @@
package com.zy.common.model;
import lombok.Data;
/**
 * Created by vincent on 2020/8/6
 */
@Data
public class MatDto {
    // 物料编号
    private String matnr;
    // 物料名称
    private String maktx;
    private String maknx;
    // 库位规格
    private String specs;
    // 物料数量
    private Double anfme;
    // 库位数量
    private Double total;
    //辅数量
    private Double weight;
    // 辅库位数量
    private Double totalWeight;
    //托盘码
    private String barcode;
    //u8旧品名
    private String sku;
    //型号
    private String model;
    //客户名称
    private String supp;
    //开票客户名称
    private String kpCstmrName;
    //单号
    private String orderNo;
    //批号
    private String batch;
//    private String cstateid;
    public MatDto() {
    }
    public MatDto(String matNo, String maktx, Double anfme, Double weight, Double total, Double totalWeight, String specs, String sku, String barcode, String model, String supp, String kpCstmrName, String orderNo, String batch) {
        this.matnr = matNo;
        this.maktx = maktx;
        this.maknx = maktx;
        this.specs = specs;
        this.anfme = anfme;
        this.weight = weight;
        this.total = total;
        this.totalWeight = totalWeight;
        this.sku = sku;
        this.barcode = barcode;
        this.model = model;
        this.supp = supp;
        this.kpCstmrName = kpCstmrName;
        this.orderNo = orderNo;
        this.batch = batch;
//        this.cstateid = cstateid;
    }
}
src/main/java/com/zy/common/model/command/LedCommand.java
New file
@@ -0,0 +1,37 @@
package com.zy.common.model.command;
import com.zy.common.model.MatDto;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
 * led命令报文
 * Created by vincent on 2020/8/11
 */
@Data
@AllArgsConstructor
public class LedCommand extends Object {
    private String title;
    private Integer workNo;
    private Integer staNo;
    private Integer sourceStaNo;
    private String locNo;
    private String sourceLocNo;
    private List<MatDto> matDtos = new ArrayList<>();
    private boolean emptyMk = false;
    private Integer ioType;
    private String barcode;
}
src/main/java/com/zy/common/service/CommonService.java
@@ -221,7 +221,13 @@
//            levList.addAll(locLevList);
            for (Integer lev : locLevList) {
                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("lev1", lev).orderBy("bay1", true).orderBy("row1",true));
                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                        .eq("loc_sts", "O")
                        .eq("lev1", lev)
                        .eq("loc_type1",locTypeDto.getLocType1())
                        .eq("loc_type2",locTypeDto.getLocType2())
                        .orderBy("bay1", true)
                        .orderBy("row1",true));
                for (LocMast locMast : locMasts) {
                    String locNo = locMast.getLocNo();
                    //获取通道组
src/main/java/com/zy/common/web/WcsController.java
@@ -18,6 +18,8 @@
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.web.param.ApplyChangeEnd;
import com.zy.common.web.param.ErrorMsg;
import com.zy.common.web.param.SearchEmptyParam;
import com.zy.common.web.param.SearchLocParam;
import lombok.extern.slf4j.Slf4j;
@@ -86,12 +88,12 @@
        if (Cools.isEmpty(param.getFromPort())) {
            return Re.error("源站编号不能为空");
        }
//        if(Cools.isEmpty(param.getWarehouse())){
//            return Re.error("仓库编号不能为空");
//        }
//        if(!param.getWarehouse().equals(warehouse)){
//            return Re.error("仓库编号不匹配");
//        }
        if(Cools.isEmpty(param.getWarehouse())){
            return Re.error("仓库编号不能为空");
        }
        if(!param.getWarehouse().equals(warehouse)){
            return Re.error("仓库编号不匹配");
        }
        List<WaitPakin> waitPakins = null;
        if (param.getFromPort().equals("101")) {
@@ -105,7 +107,7 @@
                return Re.error("条码不能为空");
            }
            waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarCode()));
            if (Cools.isEmpty(waitPakins) && param.getIoType() != 10) {
            if (Cools.isEmpty(waitPakins)) {
                WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarCode());
                if (wrkMast != null && wrkMast.getIoType() == 103) {
                    return Re.parse(CodeRes.PICK_600);
@@ -132,10 +134,18 @@
        if (Cools.isEmpty(param.getCargoHeight())) {
            return Re.error("高低检测信号不能为空");
        }
        if (!param.getBarCode().startsWith("7")&&!param.getBarCode().startsWith("8")){
            return Re.error("未定义的托盘码规则");
        }
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(Integer.valueOf(param.getFromPort()), true);
        sourceStaNo.setLocType1(param.getCargoHeight().shortValue());
        sourceStaNo.setLocType1(param.getCargoHeight().shortValue()); // 高低库位
        if (param.getBarCode().startsWith("7")){
            sourceStaNo.setLocType2((short) 1); // 宽窄库位 1.窄库位1200*1000*990  1期库位
        }else if (param.getBarCode().startsWith("8")){
            sourceStaNo.setLocType2((short) 2); // 宽窄库位 2.宽库位1200*1000*1270  2期库位
        }
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
        StartupDto dto = null;
@@ -154,7 +164,7 @@
            default:
                break;
        }
        log.info("WCS入库接口返参:{},托盘码:{}", dto, param.getBarCode());
        log.info("WCS满板入库接口返参:{},托盘码:{}", dto, param.getBarCode());
        return Re.ok();
    }
@@ -162,12 +172,12 @@
    @ResponseBody
    public synchronized Re getLocNo(@RequestBody SearchEmptyParam param) {
        log.info("收到WCS空板入库接口请求====>>入参:{}", param);
//        if(Cools.isEmpty(param.getWarehouse())){
//            return Re.error("仓库编号不能为空");
//        }
//        if(!param.getWarehouse().equals(warehouse)){
//            return Re.error("仓库编号不匹配");
//        }
        if(Cools.isEmpty(param.getWarehouse())){
            return Re.error("仓库编号不能为空");
        }
        if(!param.getWarehouse().equals(warehouse)){
            return Re.error("仓库编号不匹配");
        }
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(Integer.valueOf(param.getFromPort()), true);
@@ -176,8 +186,48 @@
        StartupDto dto = null;
        dto = emptyPlateIn(Integer.valueOf(param.getFromPort()), locTypeDto);
        log.info("WCS入库接口返参:{},托盘码:{}", dto);
        log.info("WCS空板入库接口返参:{}", dto);
        return Re.ok();
    }
    @PostMapping("/fromwcs/errorReport")
    @ResponseBody
    public synchronized Re errReport(@RequestBody ErrorMsg param){
        log.info("收到WCS任务入库异常上报===>>入参:{}",param);
        if(Cools.isEmpty(param.getWarehouse())){
            return Re.error("仓库编号不能为空");
        }
        if(!param.getWarehouse().equals(warehouse)){
            return Re.error("仓库编号不匹配");
        }
        return Re.ok();
    }
    @PostMapping("/fromwcs/applyChangeEnd")
    @ResponseBody
    public synchronized Re applyChangeEnd(@RequestBody ApplyChangeEnd param){
        log.info("收到WCS申请最终目的位置===>>入参:{}",param);
        if(Cools.isEmpty(param.getWarehouse())){
            return Re.error("仓库编号不能为空");
        }
        if(!param.getWarehouse().equals(warehouse)){
            return Re.error("仓库编号不匹配");
        }
        if (Cools.isEmpty(param.getTaskId())){
            return Re.error("任务编号不能为空");
        }
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", param.getTaskId()));
        if (wrkMast == null){
            return Re.error("WMS不存在任务号:" + param.getTaskId() + "任务");
        }
        if (wrkMast.getIoType() > 100){
            return Re.error("任务号:" + param.getTaskId() + "是出库任务");
        }
        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 5 || wrkMast.getWrkSts() == 14 || wrkMast.getWrkSts() == 15){
            return Re.error("任务号:" + param.getTaskId() + "已结束");
        }
        String targetNo = wrkMast.getLocNo();
        return Re.ok(targetNo);
    }
@@ -409,7 +459,10 @@
                LocTypeDto locTypeDto = new LocTypeDto();
                locTypeDto.setLocType1(locType1);
                //注意一个板只能放同一种物料(检索新库位)
                StartupDto dto = commonService.getLocNoRunPick(4, 1, 101, wrkDetls.get(0).getMatnr(), wrkDetls.get(0).getBatch(), null, 4, locTypeDto, 2);
//                StartupDto dto = commonService.getLocNoRunPick(4, 1, 101, wrkDetls.get(0).getMatnr(), wrkDetls.get(0).getBatch(), null, 4, locTypeDto, 2);
                FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
                findLocNoAttributeVo.setMatnr(wrkDetls.get(0).getMatnr());
                StartupDto dto = commonService.getLocNoNew(1, 101, findLocNoAttributeVo,locTypeDto,null);
                Date now = new Date();
                wrkMast.setIoTime(now);
                wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57
@@ -500,7 +553,7 @@
                map.put("posiY", locMast.getBay1());
                map.put("posiZ", locMast.getLev1());
                map.put("cargoNo", locMast.getLocNo());
                if(locMast.getLev1() == 1 && locMast.getRow1() == 8 && locMast.getBay1() == 1){
                if(locMast.getLev1() == 1 && locMast.getRow1() == 6 && locMast.getBay1() == 1){
                    map.put("type", "6");
                }else {
                    map.put("type", "0");
@@ -554,7 +607,7 @@
                try {
                    // 保存接口日志
                    apiLogService.save(
                            "wms同步wcs库位失败",
                            "wms同步wcs库位",
                            url + "/" + loc,
                            null,
                            "127.0.0.1",
src/main/java/com/zy/common/web/param/ApplyChangeEnd.java
New file
@@ -0,0 +1,23 @@
package com.zy.common.web.param;
import lombok.Data;
@Data
public class ApplyChangeEnd {
    /*仓库编码*/
    private String warehouse;
    /*任务id
    * 上位系统下发的任务id*/
    private String taskId;
    /*车辆编号*/
    private Integer deviceNo;
    /*申请时间*/
    private String msgTime;
    /*巷道口编号
    * 巷道口所在的货位编码*/
    private String roadNo;
}
src/main/java/com/zy/common/web/param/ErrorMsg.java
@@ -1,7 +1,9 @@
package com.zy.common.web.param;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class ErrorMsg {
    /**
     * 仓库编码
src/main/resources/application.yml
@@ -55,9 +55,10 @@
  #groupCount: 4
  # 由浅入深
  locGroupAscOrder: [
    {rowList: [3,1,2],minBay: 1,maxBay: 16},
    {rowList: [4],minBay: 1,maxBay: 16},
    {rowList: [5,6,7,8,9,10],minBay: 1,maxBay: 16},
    {rowList: [4,3,2],minBay: 1,maxBay: 49},
    {rowList: [6],minBay: 3,maxBay: 48},
    {rowList: [7],minBay: 1,maxBay: 17},
    {rowList: [8,9,10,11,12,13],minBay: 3,maxBay: 48},
  ]
  #是否开启wms下发任务给wcs
  workIssued-fig : true
@@ -68,17 +69,17 @@
  #库位同步
  loc: fromWms/cargoNoSyn
  #货位信息同步
  locInfo: fromWms/cargoLocationSyn
  locInfo : fromWms/cargoLocationSyn
  #任务取消
  cancel: fromWms/taskCancel
  cancel : fromWms/taskCancel
  #任务优先级调整
  priority: fromWms/taskPriority
  priority : fromWms/taskPriority
  #入库站
  inDevp : 101
  #出库站
  outDevp : 100
  #仓库编码
  warehouse : ddthasrs
  warehouse : ddth
# wms参数配置
wms-parameter:
  # 自动补空板功能开关