自动化立体仓库 - WMS系统
pang.jiabao
2 天以前 b6e0bec71de45cad64e9de14977770053be7e010
流程更改
1个文件已修改
52 ■■■■■ 已修改文件
src/main/java/com/zy/common/web/WcsController.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java
@@ -92,15 +92,21 @@
        if(param.getIoType() == 1) {
            List<SearchLocParam.WantBucket> wantBucketFlag = param.getWantBucketFlag();
            Optional<SearchLocParam.WantBucket> first = wantBucketFlag.stream().filter(wantBucket -> wantBucket.getBucketType() == param.getBucketType()).findFirst();
            if (first.isPresent()) {
                if(waitPakin == null) {
                    return R.error("入库通知档为空");
                } else {
                    dto = startupFullPutStore(param,waitPakin,first.get()); // 直供罐装线任务
                    if (dto != null) {
                        log.info("WCS入库直供罐装线接口返参:{},托盘码:{}", dto, param.getBarcode());
                        return R.ok().add(dto);
            for(SearchLocParam.WantBucket wantBucket: wantBucketFlag) {
                if(wantBucket.getBucketType() != 0 && wantBucket.getBucketType() == param.getBucketType()) { // 罐装线有要桶信号并且当前桶是罐装线要的桶
                    if(waitPakin == null) {
                        return R.error("入库通知档为空");
                    } else {
                        int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("wrk_sts", 2).eq("sta_no", wantBucket.getSite()));
                        if(wantBucket.getSite() == 1071 && count < 12 || wantBucket.getSite() == 1064 && count < 10 || wantBucket.getSite() == 1078 && count < 12) {
                            dto = startupFullPutStore(param,waitPakin,wantBucket); // 直供罐装线任务
                            if (dto != null) {
                                log.info("WCS入库直供罐装线接口返参:{},托盘码:{}", dto, param.getBarcode());
                                return R.ok().add(dto);
                            }
                        } else {
                            log.warn("直供灌装线任务已满,入成品库,入库目标站点{},任务数:{}",wantBucket.getSite(),count);
                        }
                    }
                }
            }
@@ -152,9 +158,15 @@
        // 获取系统配置,看成品罐装完成是否直接出到发货口
        Config config = configService.selectConfigByCode("gzwcfh");
        String fhFlag = "";
        boolean fhFlag = false;
        if (config != null && config.getStatus() == 1 && !Cools.isEmpty(config.getValue())) {
            fhFlag = config.getValue();
            String[] split = config.getValue().split("=");
            for(String item : split) {
                if(param.getMatnr().equals(item)) {
                    fhFlag = true;
                    break;
                }
            }
        }
        Date now = new Date();
@@ -205,7 +217,7 @@
//            dto.setSourceStaNo(wrkMast.getSourceStaNo());
//            dto.setStaNo(wrkMast.getStaNo());
//        } else
        if(param.getMatnr().equals(fhFlag)) { // 直接发货
        if(fhFlag) { // 直接发货
            // 生成工作档 ------------------------------------------------------
            WrkMast wrkMast = new WrkMast();
            wrkMast.setWrkNo(commonService.getWorkNo(0));
@@ -215,7 +227,7 @@
            wrkMast.setIoPri(13D); // 优先级
//            wrkMast.setCrnNo(dto.getCrnNo());
            wrkMast.setSourceStaNo(param.getSourceStaNo());
            wrkMast.setStaNo(1024);
            wrkMast.setStaNo(1016);
//            wrkMast.setLocNo(dto.getLocNo());
            wrkMast.setBarcode(wrkMast1.getBarcode()); // 托盘码
            wrkMast.setFullPlt("Y"); // 满板:Y
@@ -699,13 +711,13 @@
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
        // 判断空桶库有多少这种桶型
        int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("matnr", param.getBucketType()).where("CAST(SUBSTRING(loc_no, 1, 2) as int) >= 9"));
        // 小于10个则直供罐装线,避免入空桶库后在出库
        if (count > 10) {
             return null;
        }
//        // 判断空桶库有多少这种桶型
//        int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("matnr", param.getBucketType()).where("CAST(SUBSTRING(loc_no, 1, 2) as int) >= 9"));
//
//        // 小于10个则直供罐装线,避免入空桶库后在出库
//        if (count > 10) {
//             return null;
//        }
        StartupDto dto = commonService.getLocNo(param,wantBucket.getSite());
        int workNo = dto.getWorkNo();