自动化立体仓库 - WMS系统
skyouc
4 天以前 dcd2e9ad65580de56147956e718059f50f1691d2
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1760,53 +1760,44 @@
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void combInPub(CompleteParam param, Long userId) {
    public R combInPub(CompleteParam param, Long userId) {
        if (Objects.isNull(param.getBarcode())) {
            throw new CoolException("托盘码不能为空!!");
        }
        if (Objects.isNull(param.getStation())) {
        if (Objects.isNull(param.getSourceStaNo())) {
            throw new CoolException("站点不能为空!!");
        }
//        // TODO 修改缓存站点状态及数据
//        Task task = taskService.selectOne(new EntityWrapper<Task>()
//                .eq("wrk_sts", 14L)
//                .eq("barcode", param.getCarBarcode()));
//        if (Objects.isNull(task)) {
//            throw new CoolException("数据错误,任务不存在!!");
//        }
//        List<TaskDetl> taskDetls = taskDetlService
//                .selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
//        if (Objects.isNull(taskDetls) || taskDetls.isEmpty()) {
//            throw new CoolException("数据错误,任务明细不存在!!");
//        }
        if (Objects.isNull(param.getLocType1())) {
            param.setLocType1((short)1);
        }
        BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>()
                .eq("dev_no", param.getStation()));
        log.info("WCS任务生成请求参数:", JSONObject.toJSONString(param));
        BasDevp station = basDevpService.selectOne(new EntityWrapper<BasDevp>()
                .eq("dev_no", param.getSourceStaNo()));
        if (Objects.isNull(station)) {
            throw new CoolException("站点不存在!!");
        }
        station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
        station.setBarcode("");
        if (!basStationService.updateById(station)) {
            throw new CoolException("站点状态修改失败!");
        }
        basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo()));
//        // 任务完成
//        task.setWrkSts(15L);
//
//        if (!taskService.updateById(task)) {
//            throw new CoolException("AGV任务完成失败!!");
//        }
        List<WaitPakin> waitPakins = waitPakinService
                .selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
                .selectList(new EntityWrapper<WaitPakin>()
                        .eq("io_status" , "N")
                        .eq("zpallet", param.getBarcode()));
        if (Objects.isNull(waitPakins) || waitPakins.isEmpty()) {
            throw new CoolException("数据错误,组拖档已不存在!!");
        }
        generateCrnInTask(waitPakins, station, param.getLocType1(), userId);
        WrkMast wrkMast = generateCrnInTask(waitPakins, station, param.getLocType1(), userId);
        Map<String, Object> response = new HashMap<>();
        response.put("taskNo", wrkMast.getWrkNo());
        response.put("locNo", wrkMast.getLocNo());
        response.put("taskPri", wrkMast.getIoPri());
        return R.ok("任务生成成功").add(response);
    }
    /**
@@ -1868,7 +1859,6 @@
                if (!basStationDetlService.insert(basStationDetl)) {
                    throw new CoolException("插入明细失败");
                }
            } else {
                BigDecimal anfme = new BigDecimal(basStationDetl.getAnfme().toString()).add(combMat.getWorkQty());
                basStationDetl.setAnfme(anfme.doubleValue());
@@ -1947,18 +1937,18 @@
     * @date 2025/12/9 13:54
     */
    @Transactional(rollbackFor = Exception.class)
    public void generateCrnInTask(List<WaitPakin> waitPakins, BasStation station, Short locType, Long userId) {
    public WrkMast generateCrnInTask(List<WaitPakin> waitPakins, BasDevp station, Short locType, Long userId) {
        Date now = new Date();
        StationRela rela = stationRelaService.selectOne(new EntityWrapper<StationRela>()
                .eq("agv_sta", station.getDevNo())
                .orderAsc(Arrays.asList("crn_sta"))
                .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
//        StationRela rela = stationRelaService.selectOne(new EntityWrapper<StationRela>()
//                .eq("agv_sta", station.getDevNo())
//                .orderAsc(Arrays.asList("crn_sta"))
//                .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
//
//        if (Objects.isNull(rela)) {
//            throw new CoolException("未绑定作业站点!!");
//        }
        if (Objects.isNull(rela)) {
            throw new CoolException("未绑定作业站点!!");
        }
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(Integer.parseInt(rela.getCrnSta()), true);
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(station.getDevNo(), true);
        sourceStaNo.setLocType1(locType);
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
        WaitPakin pakin = waitPakins.stream().findFirst().get();
@@ -1966,6 +1956,7 @@
        WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", pakin.getZpallet()));
        WrkMast wrkMast = new WrkMast();
        String locNo;
        if (!Objects.isNull(mast)) {
            if (mast.getIoType().equals(TaskIOType.MERGE_OUT.type) || mast.getIoType().equals(TaskIOType.PICK_OUT.type) || mast.getIoType().equals(TaskIOType.CHECK_OUT.type)) {
                int ioType = mast.getIoType() - 50;
@@ -1979,6 +1970,7 @@
                if (!res) {
                    throw new CoolException("保存工作档失败");
                }
                locNo = mast.getLocNo();
                // 更新源站点信息
                sourceStaNo.setWrkNo(mast.getWrkNo());
                sourceStaNo.setModiTime(now);
@@ -1999,8 +1991,10 @@
            } else {
                throw new CoolException("托盘已存在任务档!!");
            }
        } else {
            StartupDto dto = commonService.getLocNo(1, sourceStaNo.getDevNo(), findLocNoAttributeVo, locTypeDto);
            int workNo = dto.getWorkNo();
            // 生成工作档
            wrkMast.setWrkNo(workNo);
@@ -2028,6 +2022,7 @@
            if (!res) {
                throw new CoolException("保存工作档失败");
            }
            locNo = dto.getLocNo();
            // 更新源站点信息
            sourceStaNo.setWrkNo(workNo);
            sourceStaNo.setModiTime(now);
@@ -2061,16 +2056,18 @@
        });
//        // 更新入库通知档 ioStatus ===>> Y
//        Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
//                .eq("zpallet", pakin.getZpallet());
//        WaitPakin setParam = new WaitPakin();
//        setParam.setLocNo(dto.getLocNo());
//        setParam.setIoStatus("Y");
//        setParam.setModiTime(now);
//        if (!waitPakinService.update(setParam, wrapper)) {
//            throw new CoolException("更新通知档失败");
//        }
        // 更新入库通知档 ioStatus ===>> Y
        Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
                .eq("zpallet", pakin.getZpallet());
        WaitPakin setParam = new WaitPakin();
        setParam.setLocNo(locNo);
        setParam.setIoStatus("Y");
        setParam.setModiTime(now);
        if (!waitPakinService.update(setParam, wrapper)) {
            throw new CoolException("更新通知档失败");
        }
        return wrkMast;
    }
    /**