#
Junjie
2026-01-12 c397643ce84b62690c814fc1dbca04a110647d1a
src/main/java/com/zy/common/service/CommonService.java
@@ -24,6 +24,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
@Slf4j
@Service
@@ -43,6 +44,8 @@
    private NavigateUtils navigateUtils;
    @Autowired
    private RedisUtil redisUtil;
    @Autowired
    private BasOutStationAreaService basOutStationAreaService;
    /**
     * 生成工作号
@@ -83,8 +86,18 @@
    }
    public boolean completeTask(CompleteTaskParam param) {
        WrkMast wrkMast = null;
        Integer wrkNo = param.getWrkNo();
        WrkMast wrkMast = wrkMastService.selectByWorkNo(wrkNo);
        String taskNo = param.getTaskNo();//wms任务号
        if(wrkNo == null) {
            if (!Cools.isEmpty(taskNo)) {
                wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wms_wrk_no", taskNo));
            }
        }else {
            wrkMast = wrkMastService.selectByWorkNo(wrkNo);
        }
        if (null == wrkMast) {
            throw new CoolException("任务不存在");
        }
@@ -103,8 +116,18 @@
    }
    public boolean cancelTask(CancelTaskParam param) {
        WrkMast wrkMast = null;
        Integer wrkNo = param.getWrkNo();
        WrkMast wrkMast = wrkMastService.selectByWorkNo(wrkNo);
        String taskNo = param.getTaskNo();//wms任务号
        if(wrkNo == null) {
            if (!Cools.isEmpty(taskNo)) {
                wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wms_wrk_no", taskNo));
            }
        }else {
            wrkMast = wrkMastService.selectByWorkNo(wrkNo);
        }
        if (null == wrkMast) {
            throw new CoolException("任务不存在");
        }
@@ -282,7 +305,23 @@
        }
        Integer crnNo = findCrnResult.getCrnNo();
        Integer sourceStationId = this.findOutStationId(findCrnResult, param.getStaNo());
        Integer staNo = param.getStaNo();
        String outArea = param.getOutArea();
        if(Cools.isEmpty(staNo) && Cools.isEmpty(outArea)) {
            throw new CoolException("请传入出库站点或出库区域");
        }
        if(Cools.isEmpty(staNo)) {
            List<BasOutStationArea> areaList = basOutStationAreaService.selectList(new EntityWrapper<BasOutStationArea>().eq("area_code", outArea));
            if (areaList.isEmpty()) {
                throw new CoolException("出库区域不存在");
            }
            int nextInt = new Random().nextInt(areaList.size());
            BasOutStationArea basOutStationArea = areaList.get(nextInt);
            staNo = basOutStationArea.getStationId();
        }
        Integer sourceStationId = this.findOutStationId(findCrnResult, staNo);
        if (sourceStationId == null) {
            throw new CoolException("未找到输送目标站点可走行路径");
        }
@@ -298,7 +337,7 @@
        wrkMast.setIoPri(ioPri);
        wrkMast.setSourceLocNo(locMast.getLocNo()); // 源库位
        wrkMast.setSourceStaNo(sourceStationId);//源站
        wrkMast.setStaNo(param.getStaNo());//目标站
        wrkMast.setStaNo(staNo);//目标站
        wrkMast.setWmsWrkNo(param.getTaskNo());
        wrkMast.setBarcode(locMast.getBarcode());
        wrkMast.setAppeTime(now);