1
9 小时以前 e711c834aec2293c53b07efe53e81e3573c289b6
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java
@@ -13,6 +13,7 @@
import com.vincent.rsf.server.manager.service.impl.BasStationAreaServiceImpl;
import com.vincent.rsf.server.manager.service.impl.BasStationServiceImpl;
import com.vincent.rsf.server.manager.service.impl.DeviceSiteServiceImpl;
import com.vincent.rsf.server.manager.utils.WarehouseLocationRetrievalUtil;
import com.vincent.rsf.server.system.constant.GlobalConfigCode;
import com.vincent.rsf.server.system.entity.*;
import com.vincent.rsf.server.system.service.ConfigService;
@@ -132,9 +133,21 @@
                Loc loc2 = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
                sou = loc2.getAreaId().toString();
            }
            List<TaskPathTemplateMerge> taskPathTemplateMergeList = taskPathTemplateMergeService.list(new LambdaQueryWrapper<TaskPathTemplateMerge>().eq(TaskPathTemplateMerge::getSourceType, sou).eq(TaskPathTemplateMerge::getTargetType, end));
            BasContainer containerByBarcode = new WarehouseLocationRetrievalUtil().getContainerByBarcode(task.getBarcode());
            List<TaskPathTemplateMerge> taskPathTemplateMergeList = taskPathTemplateMergeService.list(
                    new LambdaQueryWrapper<TaskPathTemplateMerge>()
                            .eq(TaskPathTemplateMerge::getSourceType, sou)
                            .eq(TaskPathTemplateMerge::getTargetType, end)
                            .apply("container_type != '[]'")  // 不是空数组
                            .apply("JSON_CONTAINS(container_type, {0}) = 1", containerByBarcode.getContainerType().toString())
            );
            if (Objects.isNull(taskPathTemplateMergeList) || taskPathTemplateMergeList.isEmpty() || !endSign) {
                List<TaskPathTemplateMerge> list = taskPathTemplateMergeService.list(new LambdaQueryWrapper<TaskPathTemplateMerge>().eq(TaskPathTemplateMerge::getStepSize,1));
                List<TaskPathTemplateMerge> list = taskPathTemplateMergeService.list(
                        new LambdaQueryWrapper<TaskPathTemplateMerge>()
                                .eq(TaskPathTemplateMerge::getStepSize,1)
                                .apply("container_type != '[]'")  // 不是空数组
                                .apply("JSON_CONTAINS(container_type, {0}) = 1", containerByBarcode.getContainerType().toString())
                );
                if (!Cools.isEmpty(list)) {
                    List<String[]> stationList = new ArrayList<>();
                    list.forEach(taskPathTemplate -> {
@@ -173,10 +186,10 @@
                            if (targSiteArea != null && !targSiteArea.isEmpty()) {
                                for (String areaId : targSiteArea) {
                                    BasStationArea basStationArea = basStationAreaService.getById(Long.parseLong(areaId));
                                    if (basStationArea == null || basStationArea.getStationAlias() == null || basStationArea.getStationAlias().isEmpty()) {
                                    if (basStationArea == null || basStationArea.getStationAliasStaNo() == null || basStationArea.getStationAliasStaNo().isEmpty()) {
                                        continue;
                                    }
                                    siteList.put(basStationArea.getStationAreaId(), basStationArea.getStationAlias());
                                    siteList.put(basStationArea.getStationAreaId(), basStationArea.getStationAliasStaNo());
//                                    siteList.addAll(basStationArea.getStationAlias());
                                }
                                if (!siteList.isEmpty()) {
@@ -196,11 +209,8 @@
                                    if (!siteListRoute.isEmpty()) {
                                        for (String[] siteArray : siteListRoute) {
                                            //出库路径排查
                                            DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                                                    .eq(DeviceSite::getSite, siteArray[1])
                                                    .eq(!Objects.isNull(loc.getChannel()),DeviceSite::getChannel, loc.getChannel())
                                                    .eq(DeviceSite::getType, task.getTaskType()).last("limit 1"),false);
                                            if (!Objects.isNull(deviceSite)) {
                                            boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteArray[1], loc.getBarcode(),"out");
                                            if (available) {
                                                BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
                                                        .eq(BasStation::getStationName, siteArray[1])
                                                        .eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
@@ -218,7 +228,6 @@
                                }
                            }
                        }
                    }
//                    System.out.println("任务:"+task.getTaskCode()+"查询步序为:"+longs);
                }
@@ -234,7 +243,6 @@
    public boolean generateActualPath(Task task,TaskPathTemplateMerge taskPathTemplateMerge,boolean endSignUp) {
        boolean actualPath = false;
        List<Integer> conditionExpression = taskPathTemplateMerge.getConditionExpression();
        Integer i = 0;//it顺序
        Integer j = 0;//suT顺序
@@ -349,17 +357,13 @@
            if (basStation == null){
                return false;
            }
            if (!basStation.getType().equals(0)){
            if (!basStation.getType().equals(0) && !task.getTaskType().equals(TaskType.TASK_TYPE_CROSS_DOCKING_OUT.type)){
                basStation.setUseStatus(LocStsType.LOC_STS_TYPE_S.type);
                basStation.setBarcode(task.getBarcode());
                basStationService.updateById(basStation);
            }
        }
        taskService.updateById(task);
        return actualPath;
        return true;
    }
}