自动化立体仓库 - WMS系统
zwl
5 天以前 632bde0f32999a2b319b706e23d90bc1b5dd8cc2
src/main/java/com/zy/common/web/WcsController.java
@@ -58,6 +58,8 @@
    private WorkService workService;
    @Autowired
    private StaDescService staDescService;
    @Autowired
    private InboundCameraCaptureService inboundCameraCaptureService;
    @PostMapping("/pakin/loc/v1")
    @ResponseBody
@@ -137,7 +139,7 @@
            // 源站点状态检测
            BasDevp sourceStaNoEntity = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
            sourceStaNoEntity.setLocType1(param.getLocType1());
            sourceStaNoEntity.setLocType1((short) (param.getLocType1()!=1?2:1));
            LocTypeDto locTypeDto = new LocTypeDto(sourceStaNoEntity);
            if (waitPakins.get(0).getMatnr().equals("emptyPallet")) {
                locTypeDto.setLocType2((short) 1);
@@ -463,10 +465,7 @@
            // 源站点状态检测
            BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
            // 检索库位
            List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
            List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
            FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(matnrs.get(0), batchs.get(0));
//        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
            FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
            // IoT 指定了目标库位时优先尝试该库位;不可用时再退回现有自动找位规则。
            StartupDto dto = buildPreferredStartupDto(devpNo, extractPreferredInboundLoc(waitPakins));
            if (dto == null) {
@@ -494,6 +493,7 @@
            wrkMast.setScWeight(weight);
            // 把 referenceId/orderNo 透传到工作主档,便于作业完成后继续回传给 IoT。
            wrkMast.setUserNo(waitPakins.get(0).getOrderNo());
            wrkMast.setCubeNumber(waitPakins.get(0).getCubeNumber());
            wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型
            // 操作人员数据
            wrkMast.setAppeTime(now);
@@ -502,6 +502,7 @@
            if (!res) {
                throw new CoolException("保存工作档失败");
            }
            String pic = inboundCameraCaptureService.capture(devpNo, dto.getLocNo(), barcode);
            // 生成工作档明细
            waitPakins.forEach(waitPakin -> {
                WrkDetl wrkDetl = new WrkDetl();
@@ -511,6 +512,9 @@
                wrkDetl.setAppeTime(now);
                wrkDetl.setModiTime(now);
                wrkDetl.setWeight(wrkMast.getScWeight());
                if (!Cools.isEmpty(pic)) {
                    wrkDetl.setPic(pic);
                }
                if (!wrkDetlService.insert(wrkDetl)) {
                    throw new CoolException("保存工作明细失败");
                }