自动化立体仓库 - WMS系统
#
LSH
2023-05-16 2bf65500161ae37c120d0d9af8f6d8dd7afdec75
#
15个文件已修改
359 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/LocMastController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasDevp.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocMast.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/FireHeartScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/MoveLocScheduler.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/MoveLocHandler.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/StandingHandler.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/PostMesDataUtils.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocMastMapper.xml 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/basDevp/basDevp.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/locMast/locMast.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -82,7 +82,11 @@
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
            } else {
                wrapper.like(entry.getKey(), val);
                if (entry.getKey().equals("loc_type2")){
                    wrapper.eq(entry.getKey(), val);
                }else {
                    wrapper.like(entry.getKey(), val);
                }
            }
        }
    }
@@ -197,20 +201,20 @@
                    locMast.setBay1(b); // 列
                    locMast.setLev1(l); // 层
                    locMast.setCrnNo(crnNo); // 堆垛机
                    locMast.setLocType1(!Cools.isEmpty(param.getLocType1()) ? param.getLocType1() : 1);
                    locMast.setLocType2(param.getLocType2());
                    locMast.setLocType3(param.getLocType3());
                    locMast.setLocType1((short)0);
                    locMast.setLocType2((short)0);
                    locMast.setLocType3((short)0);
                    locMast.setAppeUser(getUserId());
                    locMast.setAppeTime(now);
                    locMast.setModiUser(getUserId());
                    locMast.setModiTime(now);
                    if (r==equipmentRow){
                    if (r==equipmentRow && b<3){
                        locMast.setChannel(l+(b-2)*param.getEndLev());
                        locMast.setLocType1((short)1);
                        int i = (locMast.getChannel() - 1) / (channelMax / equipmentCount) + 1;
                        locMast.setLocType2((short)i);
                    }
                    if (r==quietRow){
                    if (r==quietRow && b<3){
                        locMast.setLocType1((short)2);
                    }
                    list.add(locMast);
src/main/java/com/zy/asrs/entity/BasDevp.java
@@ -228,9 +228,13 @@
            case 0:
                return "未知";
            case 1:
                return "低库位";
                return "测试库位";
            case 2:
                return "高库位";
                return "静置库位";
            case 3:
                return "测试前暂存库位";
            case 4:
                return "NG库位";
            default:
                return String.valueOf(this.locType1);
        }
@@ -240,13 +244,22 @@
        if (null == this.locType2){ return null; }
        switch (this.locType2){
            case 0:
                return "未知";
                return "";
            case 1:
                return "窄库位";
                return "1号";
            case 2:
                return "宽库位";
                return "2号";
            case 3:
                return "3号";
            case 4:
                return "4号";
            case 5:
                return "5号";
            case 6:
                return "6号";
            default:
                return String.valueOf(this.locType2);
//                return String.valueOf(this.locType2);
                return "";
        }
    }
src/main/java/com/zy/asrs/entity/LocMast.java
@@ -90,11 +90,11 @@
    @TableField("loc_type")
    private String locType;
    @ApiModelProperty(value= "高低类型{0:未知,1:低库位,2:高库位}")
    @ApiModelProperty(value= "库位类型:1:测试库位、2:静置库位、3:测试前暂存库为、4:测试失败库位、0:未知")
    @TableField("loc_type1")
    private Short locType1;
    @ApiModelProperty(value= "宽窄类型{0:未知,1:窄库位,2:宽库位}")
    @ApiModelProperty(value= "通道:1、2、3、4、5、6")
    @TableField("loc_type2")
    private Short locType2;
@@ -236,6 +236,10 @@
                return "测试库位";
            case 2:
                return "静置库位";
            case 3:
                return "测试前暂存库位";
            case 4:
                return "NG库位";
            default:
                return String.valueOf(this.locType1);
        }
@@ -259,7 +263,8 @@
            case 6:
                return "6号";
            default:
                return String.valueOf(this.locType2);
//                return String.valueOf(this.locType2);
                return "";
        }
    }
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -604,7 +604,7 @@
            matNew.setTagId(tag.getId());
            matNew.setMatnr(param.getPackName());
            matNew.setMaktx(param.getPackName());
            matNew.setDeadWarn(mat.getDeadWarn());
            matNew.setDeadWarn(480);//8小时  480分钟
            matNew.setCreateBy(9999L);//9999表示erp下发
            matNew.setCreateTime(new Date());
            matNew.setUpdateBy(9999L);//9999表示erp下发
src/main/java/com/zy/asrs/task/FireHeartScheduler.java
@@ -20,7 +20,7 @@
    /**
     *
     */
    @Scheduled(cron = "0/60 * * * * ? ")
//    @Scheduled(cron = "0/60 * * * * ? ")
    private void execute() {
        if (!confirmDeep) return;
src/main/java/com/zy/asrs/task/MoveLocScheduler.java
@@ -1,5 +1,6 @@
package com.zy.asrs.task;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.FireOutHandler;
import com.zy.asrs.task.handler.MoveLocHandler;
@@ -17,6 +18,8 @@
    private boolean confirmDeep;
    @Autowired
    private MoveLocHandler moveLocHandler;
    @Autowired
    private LocMastService locMastService;
    /**
     *
src/main/java/com/zy/asrs/task/handler/MoveLocHandler.java
@@ -2,14 +2,16 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.TestMastService;
import com.zy.asrs.service.WorkService;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.PostMesDataUtils;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -35,18 +37,31 @@
    private TestMastService testMastService;
    @Autowired
    private WorkService workService;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private CommonService commonService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Value("${channel.equipmentRow}")
    private Integer equipmentRow;  //测试库位所在排号
    @Value("${channel.quietRow}")
    private Integer quietRow;  //静置库位所在排号
    @Value("${mes.url}")
    private String mesUrl;
    @Value("${mes.inPath}")
    private String inpath;
    @Transactional
    public ReturnT<String> start() {
        //测试失败(NG)移库
        try {
            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                    .eq("loc_sts", "F")
                    .eq("pack_status", 3)
                    .eq("pack_status", 4)
                    .eq("row1", equipmentRow)
                    .eq("loc_type1", (short) 1)
                    .eq("fire_status",0)
@@ -61,12 +76,13 @@
                    if (!Cools.isEmpty(testMast)){
                        if (testMast.getStatus()==4){
                            //移库开始,查询目标库位
                            LocMast targetLocNo = locMastService.queryFreeLocMast(quietRow,(short)2);
                            LocMast targetLocNo = locMastService.queryFreeLocMast(2,(short)4);
                            if (Cools.isEmpty(targetLocNo)){
                                targetLocNo=locMastService.queryFreeLocMast(equipmentRow,(short)2);
                                targetLocNo=locMastService.queryFreeLocMast(1,(short)4);
                            }
                            if (targetLocNo != null){
                                workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)Integer.parseInt(testMast.getUserId()));
                                return SUCCESS;
                            }else {
                                log.error("测试完成自动移库--->没有空库位!");
                            }
@@ -83,7 +99,167 @@
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return FAIL.setMsg(e.getMessage());
        }
        //测试成功 出库、移库
        try {
            List<LocMast> locMasts2 = locMastService.selectList(new EntityWrapper<LocMast>()
                    .eq("loc_sts", "F")
                    .eq("pack_status", 4)
                    .eq("row1", equipmentRow)
                    .eq("loc_type1", (short) 1)
                    .eq("fire_status",0)
            );
            if (!Cools.isEmpty(locMasts2)){
                for (LocMast locMast:locMasts2){
                    TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>()
                            .eq("loc_no",locMast.getLocNo())
                            .eq("barcode",locMast.getBarcode())
                            .eq("status",4)
                    );
                    if (!Cools.isEmpty(testMast)){
                        if (testMast.getStatus()==4){
                            //移库开始,查询目标库位
                            LocMast targetLocNo = locMastService.queryFreeLocMast(4,(short)2);
                            if (Cools.isEmpty(targetLocNo)){
                                targetLocNo=locMastService.queryFreeLocMast(3,(short)2);
                            }
                            if (targetLocNo != null){
                                //生成出库任务
                                if (outLoc(locMast)){
                                    return SUCCESS;
                                }
                            }else {
                                //3\4排满  向2排移库,查询目标库位
                                targetLocNo = locMastService.queryFreeLocMast(2,(short)2);
                                if (Cools.isEmpty(targetLocNo)){
                                    targetLocNo=locMastService.queryFreeLocMast(1,(short)2);
                                }
                                if (targetLocNo != null){
                                    workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)Integer.parseInt(testMast.getUserId()));
                                    return SUCCESS;
                                }else {
                                    log.error("测试完成自动移库--->没有空库位!");
                                }
                            }
                        }else if (testMast.getStatus()!=4) {
                            log.error("测试状态异常,库位号为:" + testMast.getLocNo());
                        }
                    }else {
                        log.error("测试库位:"+locMast.getLocNo()+"所属测试档为空或者不状态为4");
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return FAIL.setMsg(e.getMessage());
        }
        //测试有空库位 移库
        try {
            List<LocMast> locMasts3 = locMastService.selectList(new EntityWrapper<LocMast>()
                    .eq("loc_sts", "F")
                    .eq("pack_status", 0)
                    .eq("loc_type1", (short) 3)
                    .eq("fire_status",0)
            );
            if (!Cools.isEmpty(locMasts3)){
                for (LocMast locMast:locMasts3){
                    //移库开始,查询目标库位
                    LocMast targetLocNo = locMastService.queryFreeLocMast(equipmentRow,(short)1);
                    if (targetLocNo != null){
                        workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)9999);
                    }else {
//                        log.error("向测试库位移库失败--->等待空库位!");
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return FAIL.setMsg(e.getMessage());
        }
        return SUCCESS;
    }
    public boolean outLoc(LocMast locMast){
        try {
            Date now = new Date();
            Integer ioType = 101;   //入出库类型
            LocDetl locDetl=locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",locMast.getLocNo()));
            if (Cools.isEmpty(locDetl)){
                log.error("库位:"+locMast.getLocNo()+"没有明细");
            } else if (Cools.isEmpty(locDetl.getDeadWarn())){
                log.error("库位:"+locMast.getLocNo()+"没有静置时间");
            } else if (Cools.isEmpty(locMast.getModiTime())){
                log.error("库位:"+locMast.getLocNo()+"modiTime为空");
            } else if (Cools.isEmpty(locMast.getBarcode())){
                log.error("库位:"+locMast.getLocNo()+"Pack码为空");
            } else {
                // 生成工作号
                int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
                // 生成工作档
                WrkMast wrkMast = new WrkMast();
                wrkMast.setWrkNo(workNo);
                wrkMast.setIoTime(now);
                wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
                wrkMast.setIoType(ioType); // 入出库状态
                wrkMast.setIoPri(13D); // 优先级:13
                wrkMast.setCrnNo(1);
                wrkMast.setSourceStaNo(203); // 源站
                wrkMast.setStaNo(205); // 目标站  2号堆垛机入库站
                wrkMast.setSourceLocNo(locMast.getLocNo()); // 源库位
                wrkMast.setFullPlt("Y"); // 满板:Y
                wrkMast.setPicking("N"); // 拣料
                wrkMast.setExitMk("N"); // 退出
                wrkMast.setEmptyMk("N"); // 空板
                wrkMast.setLinkMis("N");
                wrkMast.setBarcode(locMast.getBarcode());
                wrkMast.setAppeTime(now);
                wrkMast.setModiTime(now);
                if (!wrkMastService.insert(wrkMast)) {
                    log.error("保存工作档失败,出库库位号:"+locMast.getLocNo());
                    return false;
                }
                // 生成工作档明细
                WrkDetl wrkDetl = new WrkDetl();
                wrkDetl.sync(locDetl);
                wrkDetl.setWrkNo(workNo);
                wrkDetl.setIoTime(now);
                wrkDetl.setAnfme(1.0); // 数量
                wrkDetl.setAppeTime(now);
                wrkDetl.setModiTime(now);
                if (!wrkDetlService.insert(wrkDetl)) {
                    log.error("保存工作档明细失败");
                    return false;
                }
                // 修改库位状态:   F.在库 ====>>> R.出库预约
                if (locMast.getLocSts().equals("F")) {
                    locMast.setLocSts("R");
                    locMast.setModiTime(now);
                    locMast.setPackStatus(6); //6:静置完成
                    CombParam combParam = new CombParam();
                    combParam.setPackNo(locMast.getBarcode());
                    combParam.setLocNo(locMast.getLocNo());
                    combParam.setPackSts(6);
                    combParam.setRequestTime(DateUtils.convert(new Date()));
                    new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam);
                    if (!locMastService.updateById(locMast)) {
                        log.error("预约库位状态失败,库位号:"+locMast.getLocNo());
                        return false;
                    }else {
                        return true;
                    }
                } else {
                    log.error(locMast.getLocNo() + "库位不是在库状态");
                }
            }
            return false;
        } catch (Exception e) {
            return false;
        }
    }
}
src/main/java/com/zy/asrs/task/handler/StandingHandler.java
@@ -63,7 +63,8 @@
            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                    .eq("fire_status", 0)
                    .eq("loc_sts", "F")
                    .eq("pack_status", 5));
                    .eq("loc_type1",(short)2)
                    .eq("pack_status", 6));
            Integer ioType = 101;   //入出库类型
            //静置完成出库站104
            for(LocMast locMast : locMasts){
@@ -86,8 +87,12 @@
                    wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
                    wrkMast.setIoType(ioType); // 入出库状态
                    wrkMast.setIoPri(13D); // 优先级:13
                    wrkMast.setCrnNo(1);
                    wrkMast.setSourceStaNo(107); // 源站
                    wrkMast.setCrnNo(locMast.getCrnNo());
                    if (wrkMast.getCrnNo()==1){
                        wrkMast.setSourceStaNo(203); // 源站
                    }else {
                        wrkMast.setSourceStaNo(210); // 源站
                    }
                    wrkMast.setStaNo(104); // 目标站
                    wrkMast.setSourceLocNo(locMast.getLocNo()); // 源库位
                    wrkMast.setFullPlt("Y"); // 满板:Y
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -155,22 +155,27 @@
                        locMast.setModiTime(now);
                        locMast.setFireStatus(0);
                        if (locMast.getCrnNo()==1){
                            locMast.setPackStatus(1);
                            if (locMast.getLocType1()==1){
                                locMast.setPackStatus(1);
                            }else {
                                locMast.setPackStatus(0);
                            }
                        }else {
                            locMast.setPackStatus(6);
                            locMast.setPackStatus(5);
                            TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>()
                                    .eq("barcode",locMast.getBarcode())
                                    .eq("status",4)
                            );
                            testMast.setStatus(5);
                            testMast.setModiTime(new Date());
                            if (!testMastService.update(testMast,new EntityWrapper<TestMast>().eq("barcode",locMast.getBarcode()).eq("status",4))){
                                throw new CoolException("更改测试状态失败");
                            }
                        }
                        if (!locMastService.updateById(locMast)) {
//                            exceptionHandle("全板入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("全板入库 ===>> 修改库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }else {
                            //2.入库完成
                            CombParam combParam = new CombParam();
                            combParam.setPackNo(locMast.getBarcode());
                            combParam.setLocNo(locMast.getLocNo());
                            combParam.setPackSts(2);
                            combParam.setRequestTime(DateUtils.convert(new Date()));
                            new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam);
                        }
                    }
                    break;
@@ -327,10 +332,17 @@
                    locMast.setIoTime(now);
                    locMast.setModiTime(now);
                    locMast.setFireStatus(0);
                    if (locMast.getLocType1()==sourceLoc.getLocType1()){
                    if (locMast.getLocType1().equals(sourceLoc.getLocType1())){
                        locMast.setPackStatus(packStatus);
                    }else if (locMast.getLocType1().equals((short)1) && sourceLoc.getLocType1().equals((short)3)){
                        locMast.setPackStatus(1);
                    }else {
                        locMast.setPackStatus(5); //5:静置中
                        if (locMast.getLocType1().equals((short)4)){
                            locMast.setPackStatus(4); //4:NG
                        }else {
                            locMast.setPackStatus(5); //5:静置中
                        }
                        if (locMast.getLocType1()==1 && sourceLoc.getLocType1()==2){
                            TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>()
                                    .eq("loc_no",sourceLoc.getLocNo())
src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONObject;
import com.core.exception.CoolException;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.impl.ApiLogServiceImpl;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.utils.HttpHandler;
@@ -13,15 +14,10 @@
@Slf4j
public class PostMesDataUtils extends AbstractHandler<String> {
    @Autowired
    private ApiLogService apiLogService;
    @Value("${mes.start}")
    private boolean start;  //上报开关
    private ApiLogService apiLogService = new ApiLogServiceImpl();
    public ReturnT<String> postMesData(String name,String URL,String mesPath, Object combParam){
        if (!start){
            return SUCCESS;
        }
        if(combParam != null){
            String response = "";
            boolean success = false;
src/main/java/com/zy/common/service/CommonService.java
@@ -159,19 +159,29 @@
        rowLastno.setCurrentRow(curRow);
        rowLastnoService.updateById(rowLastno);
        // 开始查找库位 ==============================>
        int ruleId = Integer.parseInt(Parameter.get().getFindLocRule());
        if (whsType != 1) {
            locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
        } else if (ruleId == 1) {  //按测试设备排序,优先排满单台设备
            locMast = locMastService.queryFreeLocMast1(curRow, locTypeDto.getLocType1(), channelMax + 1);
        } else if (ruleId == 2) {  //按通道排序,均匀分配每台设备
            Short locType2 = getLocType2Small(curRow, locTypeDto.getLocType1());
            locMast = locMastService.queryFreeLocMast2(curRow, locTypeDto.getLocType1(), locType2);
        } else { //默认规则
        if (crnNo==1){
            LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("loc_type2", (short) 3));
            if (!Cools.isEmpty(locMast1)){
                locMast = locMastService.queryFreeLocMast(2,(short)3);
                if (Cools.isEmpty(locMast)){
                    locMast = locMastService.queryFreeLocMast(1,(short)3);
                }
            }
        }
        if (Cools.isEmpty(locMast)){
            // 开始查找库位 ==============================>
            int ruleId = Integer.parseInt(Parameter.get().getFindLocRule());
            if (whsType != 1) {
                locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
            } else if (ruleId == 1) {  //按测试设备排序,优先排满单台设备
                locMast = locMastService.queryFreeLocMast1(curRow, locTypeDto.getLocType1(), channelMax + 1);
            } else if (ruleId == 2) {  //按通道排序,均匀分配每台设备
                Short locType2 = getLocType2Small(curRow, locTypeDto.getLocType1());
                locMast = locMastService.queryFreeLocMast2(curRow, locTypeDto.getLocType1(), locType2);
            } else { //默认规则
                locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
            }
        }
        // 2.库位当前所属尺寸无空库位时,调整尺寸参数,向上兼容检索库位
src/main/java/com/zy/common/web/WcsController.java
@@ -88,11 +88,11 @@
            }
        }
        if (Cools.isEmpty(param.getLocType1())){
            return R.error("高低检测信号不能为空");
            param.setLocType1((short)1);
        }
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), false);
//        sourceStaNo.setLocType1(param.getLocType1());
        sourceStaNo.setLocType1((short)1);
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
src/main/resources/mapper/LocMastMapper.xml
@@ -46,9 +46,14 @@
        from asr_loc_mast
        where row1=#{row}
        and loc_sts='O'
        <if test="locType1 != null">
            and loc_type1 != 1
        </if>
        <choose>
            <when test="locType1 != null">
                and loc_type1 = #{locType1}
            </when>
            <otherwise>
                and 1!=1
            </otherwise>
        </choose>
        order by lev1 asc,bay1 asc
    </select>
src/main/webapp/static/js/basDevp/basDevp.js
@@ -77,7 +77,7 @@
                }}
            ,{field: 'wrkNo', align: 'center',title: '工作号', edit:true,  style:'color: blue;font-weight: bold'}
            // ,{field: 'wrkNo1', align: 'center',title: ''}
            ,{field: 'locType1$', align: 'center',title: '高低'}
            ,{field: 'locType1$', align: 'center',title: '库位类型'}
            ,{field: 'barcode', align: 'center',title: '条形码'}
            ,{field: 'inQty', align: 'center',title: '入库暂存'}
            // ,{field: 'row1', align: 'center',title: ''}
src/main/webapp/views/locMast/locMast.html
@@ -65,6 +65,8 @@
                <!--                    <option style="display: none"></option>-->
                <option value="">设备号</option>
                <option value="0">静置库位</option>
                <option value="10">NG库位</option>
                <option value="11">测试前暂存库位</option>
                <option value="1">1号</option>
                <option value="2">2号</option>
                <option value="3">3号</option>