自动化立体仓库 - WMS系统
1.新增组托入库生成AGV搬运任务,执行AGV搬运任务时判断堆垛机接驳站点是否有空料架,有的话需要进行搬离(没有出库任务的情况下)
2.完善配盘出库单agv目标地点,可能是区域也可能是站点
Q为区域;Z为站点
3.完善立库入库找规则方法
15个文件已修改
229 ■■■■ 已修改文件
pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OutController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasDevp.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderPakout.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WorkService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/LocTypeDto.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/common.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -124,7 +124,7 @@
    </dependencies>
    <build>
        <finalName>ljqwms</finalName>
        <finalName>hkwms</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
src/main/java/com/zy/asrs/controller/OutController.java
@@ -232,12 +232,13 @@
            i++;
            //配盘出库单使用,下发需要出的空板任务
            if (orderPakout.getDocType() == 11) {
                if (size<5&&i==size){
                if (i==size){
                    for (;j<=orderPakout.getPayType();j++){
                        String bar="";
                        if(!Cools.isEmpty(orderPakout.getShipCode())&&orderPakout.getShipCode().equals("A01")){
                            bar = "A01";
                        }
                        //具体待定
//                        if(!Cools.isEmpty(orderPakout.getShipCode())&&orderPakout.getShipCode().equals("A01")){
//                            bar = "A01";
//                        }
                        LocMast locMast = new  LocMast();
                        if(Cools.isEmpty(bar)){
                            locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
@@ -254,11 +255,17 @@
                        EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
                        emptyPlateOutParam.setOutSite(303);
                        emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locNo);}});
                        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,ioPri);
                        String agvSta = "";
                        if(locMast.getLocType3()==2){
                        }else {
                            agvSta = orderPakout.getCstmrName();//agv目标站点位置
                        }
                        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,ioPri,agvSta);
                        ioPri--;
                    }
                }else if(i == 5){
                }else if(i == 4){
                    String bar="";
                    if(!Cools.isEmpty(orderPakout.getShipCode())&&orderPakout.getShipCode().equals("A01")){
                        bar = "A01";
@@ -279,7 +286,13 @@
                    EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
                    emptyPlateOutParam.setOutSite(303);
                    emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locNo);}});
                    WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,ioPri);
                    String agvSta = "";
                    if(locMast.getLocType3()==2){
                    }else {
                        agvSta = orderPakout.getCstmrName();//agv目标站点位置
                    }
                    WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,ioPri,agvSta);
                    ioPri--;
                }
            }
src/main/java/com/zy/asrs/entity/BasDevp.java
@@ -94,9 +94,9 @@
    private String downing;
    /**
     * 需求1
     * 料架
     */
    @ApiModelProperty(value= "需求1")
    @ApiModelProperty(value= "料架")
    private String inreq1;
    /**
src/main/java/com/zy/asrs/entity/OrderPakout.java
@@ -74,6 +74,13 @@
    private String shipCode;
    /**
     * AGV目标站点
     */
    @ApiModelProperty(value= "AGV目标站点")
    @TableField("cstmr_name")
    private String cstmrName;
    /**
     * 项目编号
     */
    @ApiModelProperty(value= "项目编号")
@@ -110,12 +117,6 @@
    @ApiModelProperty(value= "客户编号")
    private Long cstmr;
    /**
     * 客户
     */
    @ApiModelProperty(value= "客户")
    @TableField("cstmr_name")
    private String cstmrName;
    /**
     * 联系方式
src/main/java/com/zy/asrs/service/WorkService.java
@@ -58,7 +58,7 @@
     * @param param
     * @return
     */
    public WrkMast emptyPlateOut(EmptyPlateOutParam param,Integer ioPri);
    public WrkMast emptyPlateOut(EmptyPlateOutParam param,Integer ioPri,String agvSta);
    /**
     * 盘点出库
src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -967,6 +967,7 @@
            orderPakout.setUpdateTime(now);
            orderPakout.setMemo(JSONObject.toJSONString(mesCallOutApply));
            orderPakout.setPakinPakoutStatus(2);
            orderPakout.setCstmrName(mesCallOutApply.getStationId());//agv目标站点
            if (!orderPakoutService.insert(orderPakout)) {
                log.error("MES保存出库订单(叫料)主档失败");
                throw new CoolException("保存出库订单(叫料)主档失败");
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -606,9 +606,9 @@
                if (Cools.isEmpty(mat)) {
                    throw new CoolException(detlDto.getMatnr() + "商品档案不存在");
                }
                if (mat.getUpQty().compareTo(detlDto.getAnfme()) < 0) {
                    throw new CoolException("物料:" + detlDto.getMatnr() + "单次最大组托上限为:" + mat.getUpQty());
                }
//                if (mat.getUpQty().compareTo(detlDto.getAnfme()) < 0) {
//                    throw new CoolException("物料:" + detlDto.getMatnr() + "单次最大组托上限为:" + mat.getUpQty());
//                }
                WaitPakin waitPakin = new WaitPakin();
                BeanUtils.copyProperties(mat, waitPakin);
                waitPakin.setBatch(detlDto.getBatch());
@@ -704,6 +704,9 @@
//                if (suplus < 0) {
//                    throw new CoolException("物料:" + detlDto.getMatnr() + ", 超出当前托盘装载上限!!");
//                }
                OrderDetlPakin detls = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>()
                        .eq("order_no", param.getOrderNo())
                        .eq("matnr", detlDto.getMatnr()));
                WaitPakin waitPakin = new WaitPakin();
                BeanUtils.copyProperties(mat, waitPakin);
@@ -719,6 +722,7 @@
                waitPakin.setAppeTime(now);
                waitPakin.setModiUser(userId);
                waitPakin.setModiTime(now);
                waitPakin.setStandby1(detls.getStandby1());//配盘号
                if (!waitPakinService.insert(waitPakin)) {
                    throw new CoolException("保存入库通知档失败");
                }
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -105,7 +105,7 @@
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
        // 检索库位
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo,"");
//        List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
//        List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList());
        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(param.getList().get(0));
@@ -411,9 +411,22 @@
        String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
        OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
        int ioType = orderPakout.getDocType() == 8 ? 107 : (taskDto.isAll() ? 101 : 103);
        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
//        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
        // 生成工作号
        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
        //出库任务堆垛机出库站点指定
        String SourceStaNo = "";
        if(locMast.getLocType3()==2&&orderPakout.getDocType()==11){
            SourceStaNo = "303";
        }else if (locMast.getLocType3()==2&&!Cools.isEmpty(orderPakout.getCstmrName())){
            SourceStaNo = "307";
        }else if (locMast.getLocType3()==1&&locMast.getLocType2()==1){
            SourceStaNo = "402";
        }else if (locMast.getLocType3()==1&&locMast.getLocType2()==2){
            SourceStaNo = "401";
        }
        // 生成工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
@@ -422,8 +435,8 @@
        wrkMast.setIoType(ioType); // 入出库状态
        wrkMast.setIoPri(ioPri+0.0); // 优先级:13
        wrkMast.setCrnNo(locMast.getCrnNo());
        wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 源站
        wrkMast.setStaNo(staDesc.getStnNo() + ""); // 目标站
        wrkMast.setSourceStaNo(SourceStaNo); // 源站
        wrkMast.setStaNo(SourceStaNo); // 目标站
        wrkMast.setSourceLocNo(taskDto.getLocNo()); // 源库位
        wrkMast.setFullPlt("Y"); // 满板:Y
        wrkMast.setPicking("N"); // 拣料
@@ -435,6 +448,11 @@
        wrkMast.setAppeTime(now);
        wrkMast.setModiUser(userId);
        wrkMast.setModiTime(now);
        if(locMast.getLocType3()==2&&orderPakout.getDocType()==11){
        }else {
            wrkMast.setMemo(orderPakout.getCstmrName());//agv目标站点
        }
        if (!wrkMastService.insert(wrkMast)) {
            throw new CoolException("保存工作档失败,出库库位号:" + taskDto.getLocNo());
        }
@@ -502,7 +520,7 @@
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
        // 检索库位
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo,"");
        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
        StartupDto dto = commonService.getLocNo(10, devpNo, findLocNoAttributeVo, locTypeDto);
@@ -629,7 +647,7 @@
    @Override
    @Transactional
    public WrkMast emptyPlateOut(EmptyPlateOutParam param,Integer ioPri) {
    public WrkMast emptyPlateOut(EmptyPlateOutParam param,Integer ioPri,String agvSta) {
        WrkMast wrkMast = new WrkMast();
        if (Cools.isEmpty(param.getOutSite())) {
            throw new CoolException("站点不存在");
@@ -642,10 +660,21 @@
            if (Cools.isEmpty(locMast)) {
                throw new CoolException(locNo + "库位不存在");
            }
            //出库任务堆垛机出库站点指定
            String SourceStaNo = "";
            if(locMast.getLocType3()==2){
                SourceStaNo = "303";
            }else if (locMast.getLocType3()==1&&locMast.getLocType2()==1){
                SourceStaNo = "402";
            }else if (locMast.getLocType3()==1&&locMast.getLocType2()==2){
                SourceStaNo = "401";
            }
            // 获取源站
            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                    .eq("type_no", 110)
                    .eq("stn_no", param.getOutSite())
                    .eq("stn_no", SourceStaNo)
                    .eq("crn_no", locMast.getCrnNo());
            StaDesc staDesc = staDescService.selectOne(wrapper);
            Integer sourceStaNo = staDesc.getCrnStn();
@@ -661,7 +690,7 @@
            wrkMast.setIoType(110); // 入出库状态: 110.空板出库
            wrkMast.setIoPri(ioPri+0.0);
            wrkMast.setSourceStaNo(sourceStaNo + ""); // 源站
            wrkMast.setStaNo(param.getOutSite() + ""); // 目标站
            wrkMast.setStaNo(staDesc.getStnNo() + ""); // 目标站
            wrkMast.setCrnNo(locMast.getCrnNo());
            wrkMast.setSourceLocNo(locNo); // 源库位
            wrkMast.setFullPlt("N"); // 满板:Y
@@ -673,7 +702,7 @@
            wrkMast.setAppeTime(now);
            wrkMast.setModiUser(1L);
            wrkMast.setModiTime(now);
            wrkMast.setMemo("生成自动空板出库");
            wrkMast.setMemo(agvSta);//agv目标站点
            boolean res = wrkMastService.insert(wrkMast);
            if (!res) {
                throw new CoolException("保存工作档失败");
src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
@@ -3,10 +3,12 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.Task;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.TaskService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.service.impl.BasDevpServiceImpl;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.AGVTaskReportHandler;
import org.slf4j.Logger;
@@ -31,6 +33,8 @@
    private Boolean switchErpReportOld;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private BasDevpServiceImpl basDevpService;
    /**
     * 满板和空板出库任务,出到输送线后创建AGV搬运任务
@@ -40,13 +44,20 @@
        if (!switchErpReportOld){
            return;
        }
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 300));
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 30));
        if (wrkMasts.isEmpty()){
            return;
        }
        for (WrkMast wrkMast : wrkMasts){
            //查询是否有源站和目标站有一样的agv搬运任务
            //如果有则跳过本次agv搬运任务下发
            //mes给的agv目标站点需要解析 Q:区域 ; Z: 站点
            String[] split = wrkMast.getMemo().split("-");
            //入出库状态: 3.站到站  4.站到区域
            Integer ioType = split[0].equals("Q") ? 4 : 3;
            //agv目标站点
            String stnNo = split[1];
            Task task1 = taskService.selectOne(new EntityWrapper<Task>()
                    .in("source_sta_no", wrkMast.getSourceStaNo(), wrkMast.getMemo())
                    .in("sta_no", wrkMast.getSourceStaNo(), wrkMast.getMemo()));
@@ -61,13 +72,13 @@
                    .setTaskNo(TaskNo)
                    .setIoTime(date)
                    .setWrkSts(301L) // 工作状态:301.任务下发
                    .setIoType(3) // 入出库状态: 3.站到站
                        .setIoType(ioType) // 入出库状态: 3.站到站  4.站到区域
                    .setTaskType("agv")
                    .setIoPri(10D)
                    .setFullPlt("Y") // 满板:Y
                    .setPicking("N") // 拣料
                    .setExitMk("N")// 退出
                    .setStaNo(wrkMast.getMemo())
                        .setStaNo(stnNo)
                    .setSourceStaNo(wrkMast.getSourceStaNo())//空料架缓存区E1
                    .setEmptyMk("N")// 空板
                    .setBarcode(wrkMast.getBarcode())// 托盘码
@@ -106,7 +117,67 @@
                        .andNew()
                        .in("source_sta_no", task.getSourceStaNo(), task.getStaNo())
                        .in("sta_no", task.getStaNo(), task.getSourceStaNo()));
                Boolean flag = true;
                if (Cools.isEmpty(task1)) {
                    //agv搬运移动任务下发时,搬运目标点是否是立库AGV和堆垛机接驳站点
                    //如果是接驳站点则需要判断接驳站点是否有空料架
                    //如果有空料架需要判断是否有出库任务
                    //有出库任务则禁止下发本次搬运任务
                    if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) {
                        BasDevp basDevp = basDevpService.checkSiteStatus(Integer.parseInt(task.getStaNo()));
                        if (basDevp != null && !Cools.isEmpty(basDevp.getInreq1()) && basDevp.getInreq1().equals("Y")) {
                            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                                    .in("io_type", 101, 110)
                                    .eq("sta_no", task1.getStaNo()));
                            flag = false;
                            if (Cools.isEmpty(wrkMasts)) {
                                //判断是否已经生成空料架搬运回空料架补库区
                                //如果有的话,不在生成任务
                                Task task2 = taskService.selectOne(new EntityWrapper<Task>().eq("sta_no", task1.getStaNo()).eq("source_sta_no", task1.getSourceStaNo()));
                                //有入库任务搬运,需要生成空料架搬运到空料架缓冲区AGV任务
                                if (Cools.isEmpty(task2)) {
                                    //生成AGV搬运出库任务
                                    // 保存工作档
                                    String SourceStaNo = "";
                                    if (task.getStaNo().equals("401")) {
                                        //大料架缓冲区
                                        SourceStaNo = "E3";
                                    }else if (task.getStaNo().equals("402")) {
                                        SourceStaNo = "E2";
                                    }else if (task.getStaNo().equals("307")) {
                                        SourceStaNo = "E1";
                                    }
                                    Task task3 = new Task();
                                    Date date = new Date();
                                    String TaskNo = task.getTaskNo() + "-" + date.getTime();
                                    task3.setWrkNo(999999)
                                            .setTaskNo(TaskNo)
                                            .setIoTime(date)
                                            .setWrkSts(301L) // 工作状态:301.任务下发
                                            .setIoType(4) // 入出库状态: 3.站到站  4.站到区域
                                            .setTaskType("agv")
                                            .setIoPri(10D)
                                            .setFullPlt("Y") // 满板:Y
                                            .setPicking("N") // 拣料
                                            .setExitMk("N")// 退出
                                            .setStaNo(task.getStaNo())
                                            .setSourceStaNo(SourceStaNo)//空料架缓存区E1
                                            .setEmptyMk("N")// 空板
                                            .setBarcode("")// 托盘码
                                            .setLinkMis("N")
                                            .setAppeUser(9945L)
                                            .setAppeTime(date)
                                            .setModiUser(9945L)
                                            .setModiTime(date);
                                    if (!taskService.insert(task)) {
                                        throw new CoolException("保存工作档失败");
                                    }
                                }
                            }
                        }
                    }
                    if (flag) {
                    //AGV任务下发
                    ReturnT<String> start = AGVTaskReportHandler.start(task);
                    if (!start.isSuccess()){
@@ -118,6 +189,9 @@
                        }
                    }
                }
                }
            }
        }
    }
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -228,7 +228,7 @@
                    }
                }
                String url = MES_URL + "loadComplete";
                String url = MES_URL + "issueCompleteFit";
                String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(result));
                if (!StringUtils.isEmpty(response) && response.contains("Success")) {
                    MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
src/main/java/com/zy/common/model/LocTypeDto.java
@@ -1,6 +1,7 @@
package com.zy.common.model;
import com.alibaba.fastjson.JSON;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasDevp;
import lombok.Data;
@@ -25,15 +26,20 @@
    public LocTypeDto() {
    }
    public LocTypeDto(BasDevp basDevp) {
        if (basDevp.getLocType2() == null || basDevp.getLocType2() == 0) {
    public LocTypeDto(BasDevp basDevp,String barcode) {
        if (basDevp.getLocType1() == null || basDevp.getLocType1() == 0) {
            throw new CoolException("plc高低检测异常");
        }
        if (basDevp.getLocType2() == 1) {
        if (basDevp.getLocType1() == 1) {
            this.locType1 = 1; // 低库位
        } else {
            this.locType1 = 2; // 高库位
        }
        if (!Cools.isEmpty(barcode)&&barcode.substring(0,1).equals("4")){
            this.locType2 = 1;
        }else if (!Cools.isEmpty(barcode)&&barcode.substring(0,1).equals("5")){
            this.locType2 = 2;
        }
        log.info(JSON.toJSONString(this));
    }
src/main/java/com/zy/common/service/CommonService.java
@@ -170,11 +170,16 @@
            throw new CoolException("入库请求库位失败:路径不存在" + staDescId +"," + sourceStaNo);
        }
        Short locType1 = 1;
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("loc_type1", locType1).orderBy("lev1").orderBy("bay1").orderBy("row1"));
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                .eq("loc_sts", "O")
                .eq("loc_type1", locTypeDto.getLocType1())
                .eq("loc_type2", locTypeDto.getLocType2())
                .orderBy("lev1")
                .orderBy("bay1")
                .orderBy("row1"));
        if (locMast == null) {
            log.error("入库请求库位失败:无库位" + locType1);
            throw new CoolException("入库请求库位失败:无库位" + locType1);
            log.error("入库请求库位失败:无库位" + locTypeDto.getLocType1());
            throw new CoolException("入库请求库位失败:无库位" + locTypeDto.getLocType1());
        }
        StartupDto startupDto = new StartupDto();
src/main/java/com/zy/common/web/WcsController.java
@@ -90,9 +90,9 @@
        }
        // 源站点状态检测
//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
//        sourceStaNo.setLocType2(param.getLocType1());
        LocTypeDto locTypeDto = new LocTypeDto();
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
        sourceStaNo.setLocType1(param.getLocType1());
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo,param.getBarcode());
        StartupDto dto = null;
        switch (param.getIoType()) {
@@ -156,7 +156,7 @@
        EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
        emptyPlateOutParam.setOutSite(12);
        emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locMast.getLocNo()+"");}});
        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,50);
        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,50,"");
        return R.ok(!Cools.isEmpty(wrkMast)? R.ok("自动空托出库成功,工作号:" + wrkMast.getWrkNo()) : R.error("生成自动空托出库失败"));
    }
src/main/resources/application-dev.yml
@@ -1,5 +1,5 @@
server:
  port: 8083
  port: 8084
  servlet:
    context-path: /@pom.build.finalName@
@@ -12,7 +12,7 @@
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    username: sa
    password: sa@123
    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jnejc-ljqwms
    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jnejc-hkwms
#    username: sa
#    password: Skyouc#23
#    url: jdbc:sqlserver://192.168.4.24:1433;databasename=jsxswms
@@ -138,7 +138,7 @@
#海康对接
hik:
  switch: false
  switch: true
  url: http://172.26.11.98:80/
#华晓对接
src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
var baseUrl = "/ljqwms";
var baseUrl = "/hkwms";
// 详情窗口-高度
var detailHeight = '80%';