1
17 小时以前 e19163def1da10e16ad5baf58131a1563acfe7e1
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
@@ -31,6 +31,8 @@
import com.vincent.rsf.server.manager.service.impl.LocServiceImpl;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.manager.enums.LocStsType;
import com.vincent.rsf.server.system.entity.User;
import com.vincent.rsf.server.system.service.impl.UserServiceImpl;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -82,6 +84,8 @@
    private RestTemplate restTemplate;
    @Autowired
    private RemotesInfoProperties.RcsApi rcsApi;
    @Autowired
    private UserServiceImpl userService;
    @Override
@@ -201,7 +205,7 @@
                            String targetSite, String sourceSiteNo, Long loginUserId) {
        Task task = new Task();
        task.setTaskCode(ruleCode)
                .setTaskStatus(TaskStsType.GENERATE_IN.id)
                .setTaskStatus(TaskStsType.MISSION_INITIAL.id)
                .setTaskType(TaskType.TASK_TYPE_IN.type)
                .setWarehType(WarehType.WAREHOUSE_TYPE_CRN.val)
                .setTargLoc(targetLoc)
@@ -471,26 +475,58 @@
        }
        Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, params.getSeqNum()));
        if (Objects.isNull(task)) {
            throw new CoolException("任务不存在可已结束!!");
            throw new CoolException("任务不存在可以结束!!");
        }
        /**料箱搬运中, 修改站点状态*/
//        if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_OBIT.event)) {
//            if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
//                    || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
//                    || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
//                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)
//                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
//                    || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
//
//            }
//            /**取箱完成, 修改任务状态*/
//        } else
        if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_BIN.event)) {
            if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
                /**修改出库站点状态*/
                BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
                        .eq(BasStation::getStationName, task.getOrgSite()));
                if (Objects.isNull(station)) {
                    throw new CoolException("数据错误,站点不存在!!");
                }
                if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
                    station.setUseStatus(LocStsType.LOC_STS_TYPE_O.type);
                    station.setBarcode(null);
                    if (!basStationService.updateById(station)) {
                        throw new CoolException("站点状态修改失败!!");
                    }
                }
            } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_OUT.type)) {
                /**修改出库站点状态*/
                BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
                        .eq(BasStation::getStationName, task.getOrgLoc()));
                if (Objects.isNull(station)) {
                    throw new CoolException("数据错误,站点不存在!!");
                }
                if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
                    station.setUseStatus(LocStsType.LOC_STS_TYPE_O.type);
                    station.setBarcode(null);
                    if (!basStationService.updateById(station)) {
                        throw new CoolException("站点状态修改失败!!");
                    }
                }
            }
            /**取箱完成, 修改任务状态*/
        } else
        if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_END.event)) {
            if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
@@ -517,7 +553,7 @@
                    || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)) {
                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_OUT.type)) {
                /**修改出库站点状态*/
@@ -536,6 +572,21 @@
                if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
                        .lt(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id)
                        .set(Task::getTaskStatus, TaskStsType.AWAIT.id))) {
                    throw new CoolException("任务状态修改失败!!");
                }
            }
        } else if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_TRANSFER.event)) {
            if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
                if (!taskService.update(new LambdaUpdateWrapper<Task>()
                        .lt(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id)
                        .eq(Task::getTaskCode, task.getTaskCode())
                        .set(Task::getOrgSite, task.getTargSite())
                        .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id))) {
                    throw new CoolException("任务状态修改失败!!");
                }
            }
@@ -938,30 +989,39 @@
        if (Objects.isNull(params)) {
            return R.error("参数不能为空!!");
        }
        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, params.getBarcode()));
        if (waitPakins.isEmpty()) {
            throw new CoolException("单据不存在 !!");
        }
        BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, params.getSourceStaNo()).orderByDesc(BasStation::getId), false);
        if (Objects.isNull(basStation)) {
            throw new CoolException(params.getSourceStaNo()+"站点不存在!!");
        }
        if (!basStation.getType().equals(StationTypeEnum.STATION_TYPE_MUTI.type)) {
            throw new CoolException(params.getSourceStaNo()+"站点非光电站点!!请使用PDA绑定入库");
            throw new CoolException(params.getSourceStaNo()+"站点非智能站点!!请使用PDA绑定入库");
        }
        Task one = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getBarcode()));
        if (!Cools.isEmpty(one)) {
            if (!one.getTaskStatus().equals(TaskStsType.WCS_EXECUTE_IN.id)) {
                return R.error("任务已存在但是状态不一致!!!").add("任务已存在但是状态不一致!!!");
            }
            InTaskWcsReportParam inTaskWcsReportParam = new InTaskWcsReportParam();
            inTaskWcsReportParam.setTaskNo(one.getTaskCode());
            inTaskWcsReportParam.setLocNo(one.getTargLoc());
            inTaskWcsReportParam.setTaskPri(one.getSort());
            return R.ok("任务已存在直接下发!").add(inTaskWcsReportParam);
        }
        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, params.getBarcode()));
        if (waitPakins.isEmpty()) {
            throw new CoolException("组托单据不存在 !!");
        }
        GenerateTaskParams taskParams = new GenerateTaskParams();
        taskParams.setWaitPakins(waitPakins)
                .setSiteId(basStation.getId());
        R r = taskService.generateTasksWcs(taskParams, 111L,params.getRowList());//lsh待修改  WCS用户信息
        User wcs = userService.getByUsername("wcs", 1L);
        Long wcsId = 1111L;
        if (!Cools.isEmpty(wcs)) {
            wcsId = wcs.getId();
        }
        R r = taskService.generateTasksWcs(taskParams, wcsId,params.getRowList());
        if (r.get("msg").equals("任务生成完毕!")) {
            one = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getBarcode()));
            InTaskWcsReportParam inTaskWcsReportParam = new InTaskWcsReportParam();
@@ -1025,7 +1085,7 @@
        }
        if (params.getMsgType().equals(WcsMsgTypeEvent.TASK_COMPLETE.event)){
            if (!Cools.isEmpty(one)) {
                one.setTaskStatus(TaskStsType.GENERATE_IN.id);
                one.setTaskStatus(TaskStsType.MISSION_INITIAL.id);
                one.setOrgSite(one.getTargSite());
                if (!taskService.updateById(one)) {
//                    throw new CoolException("完成任务失败");