自动化立体仓库 - WMS系统
#
yxFwq
5 天以前 04908371e0955028fadedfa73d94cbe270474344
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -39,6 +39,10 @@
    // 库位排号分配默认类别
    private static final int DEFAULT_ROW_NO_TYPE = 1;
    public static final List<Integer> OVER_TORN_STA_NO_LIST = new ArrayList<Integer>() {{
        add(126);add(131);add(310);add(312);
    }};
    @Autowired
    private MatService matService;
    @Autowired
@@ -168,7 +172,7 @@
            }
            if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
                if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo()));
                if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo() , paramLocDetl.getPio()));
            }
        }
@@ -215,6 +219,9 @@
                        .eq("stn_no", param.getOutSite())
                        .eq("crn_no", locMast.getCrnNo());
                StaDesc staDesc = staDescService.selectOne(wrapper);
                if (Cools.isEmpty(staDesc)) {
                    throw new CoolException("出库路径不存在");
                }
                Integer sourceStaNo = staDesc.getCrnStn();
                if (Cools.isEmpty(sourceStaNo)) {
                    throw new CoolException("检索源站失败");
@@ -282,10 +289,13 @@
            }else if (locMast.getLocSts().equals("F")){
                // 获取源站
                Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                        .eq("type_no", 110)
                        .eq("type_no", 101)
                        .eq("stn_no", param.getOutSite())
                        .eq("crn_no", locMast.getCrnNo());
                StaDesc staDesc = staDescService.selectOne(wrapper);
                if (Cools.isEmpty(staDesc)) {
                    throw new CoolException("出库路径不存在");
                }
                Integer sourceStaNo = staDesc.getCrnStn();
                if (Cools.isEmpty(sourceStaNo)) {
                    throw new CoolException("检索源站失败");
@@ -341,7 +351,7 @@
                    WaitPakin waitPakin = new WaitPakin();
                    waitPakin.sync(locDetl);
                    waitPakin.setBatch(locDetl.getBatch());       //木箱编码  //批次  唯一值  箱号
                    waitPakin.setModel(locDetl.getModel());       //卷号  唯一值
                    waitPakin.setModel(locDetl.getModel());       //MES工作号  唯一值
                    waitPakin.setIoStatus("Y");     // 入出状态
                    waitPakin.setAnfme(locDetl.getAnfme());  // 数量
                    waitPakin.setStatus("Y");    // 状态
@@ -524,7 +534,8 @@
        for (OutLocDto dto : dtos) {
            // 判断入出库类型:101.全板出库 or 103.拣料出库
            if (ioWorkType == null) {
                ioType = dto.isAll() ? 101 : 103;
//                ioType = dto.isAll() ? 101 : 103;
                ioType = 101;
            } else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) {
                ioType = 107;
            }
@@ -548,7 +559,7 @@
            wrkMast.setIoTime(now);
            wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
            wrkMast.setIoType(ioType); // 入出库状态
            wrkMast.setIoPri(13D); // 优先级:13
            wrkMast.setIoPri(dto.getLocDetlDtos().get(0).getPio()); // 优先级:13
            wrkMast.setCrnNo(locMast.getCrnNo());
            wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站
            wrkMast.setStaNo(staDesc.getStnNo()); // 目标站
@@ -559,8 +570,8 @@
            wrkMast.setEmptyMk("N"); // 空板
            wrkMast.setLinkMis("N");
            wrkMast.setSheetNo("0");
            if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){
                wrkMast.setSheetNo("3");
            if (!OVER_TORN_STA_NO_LIST.contains(staDesc.getStnNo())){
                wrkMast.setSheetNo("2");
            }
            wrkMast.setBarcode(locMast.getBarcode());
            wrkMast.setAppeUser(userId); // 操作人员数据
@@ -777,6 +788,9 @@
                    .eq("stn_no", param.getOutSite())
                    .eq("crn_no", locMast.getCrnNo());
            StaDesc staDesc = staDescService.selectOne(wrapper);
            if (Cools.isEmpty(staDesc)) {
                throw new CoolException("出库路径不存在");
            }
            Integer sourceStaNo = staDesc.getCrnStn();
            if (Cools.isEmpty(sourceStaNo)) {
                throw new CoolException("检索源站失败");
@@ -788,7 +802,7 @@
            wrkMast.setIoTime(now);
            wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
            wrkMast.setIoType(110); // 入出库状态: 110.空板出库
            wrkMast.setIoPri(10D);
            wrkMast.setIoPri(12D);
            wrkMast.setSourceStaNo(sourceStaNo); // 源站
            wrkMast.setStaNo(param.getOutSite()); // 目标站
            wrkMast.setCrnNo(locMast.getCrnNo());
@@ -836,6 +850,9 @@
                        .eq("stn_no", param.getOutSite())
                        .eq("crn_no", locMast.getCrnNo());
                StaDesc staDesc = staDescService.selectOne(wrapper);
                if (Cools.isEmpty(staDesc)) {
                    throw new CoolException("出库路径不存在");
                }
                Integer sourceStaNo = staDesc.getCrnStn();
                if (Cools.isEmpty(sourceStaNo)) {
                    throw new CoolException("检索源站失败");
@@ -907,6 +924,9 @@
                        .eq("stn_no", param.getOutSite())
                        .eq("crn_no", locMast.getCrnNo());
                StaDesc staDesc = staDescService.selectOne(wrapper);
                if (Cools.isEmpty(staDesc)) {
                    throw new CoolException("出库路径不存在");
                }
                Integer sourceStaNo = staDesc.getCrnStn();
                if (Cools.isEmpty(sourceStaNo)) {
                    throw new CoolException("检索源站失败");
@@ -1085,6 +1105,9 @@
                    .eq("stn_no", param.getOutSite())
                    .eq("crn_no", locMast.getCrnNo());
            StaDesc staDesc = staDescService.selectOne(wrapper);
            if (Cools.isEmpty(staDesc)) {
                throw new CoolException("出库路径不存在");
            }
            Integer sourceStaNo = staDesc.getCrnStn();
            if (Cools.isEmpty(sourceStaNo)) {
                throw new CoolException("检索源站失败");
@@ -1262,7 +1285,7 @@
        wrkMast.setCrnEndTime(now);
        wrkMast.setModiTime(now);
        wrkMast.setModiUser(userId);
        wrkMast.setSheetNo("3");
        wrkMast.setSheetNo("2");
        // 完成操作人员记录
        wrkMast.setManuType("手动完成");
        if (!wrkMastService.updateById(wrkMast)) {
@@ -1396,9 +1419,26 @@
    public void cancelWrkMast(String workNo, Long userId) {
        Date now = new Date();
        WrkMast wrkMast = wrkMastService.selectById(workNo);
        if (Cools.isEmpty(wrkMast)){
        if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()>12 || (wrkMast.getWrkSts()>3 && wrkMast.getWrkSts()<5)){
            throw new CoolException(workNo+"工作档不存在");
        }
        if (Cools.isEmpty(wrkMast.getLocNo()) && Cools.isEmpty(wrkMast.getSourceLocNo())){
            int devCount = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
            if (devCount!=0){
                throw new CoolException("取消失败,工作号:"+wrkMast.getWrkNo()+"在输送线上运行中!!!");
            }
            try{
                wrkMastService.deleteById(wrkMast.getWrkNo());
                List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
                if (!wrkDetls.isEmpty()) {
//                    wrkDetlService.deleteById(wrkMast.getWrkNo());
                    wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                }
            }catch (Exception e){
                throw new CoolException("取消失败,异常"+e);
            }
            return;
        }
        String locNo = ""; // 待修改目标库位
        String locSts = ""; // 待修改目标库位状态
        // 入库取消(修改目标库位)