#
vincentlu
4 天以前 1c00a6204f96c1de50ec961470ecc6bbbf5bb433
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ValidService.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSON;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.SnowflakeIdWorker;
import com.zy.acs.manager.common.config.UplinkProperties;
import com.zy.acs.manager.common.domain.TaskDto;
import com.zy.acs.manager.common.exception.BusinessException;
import com.zy.acs.manager.manager.entity.Code;
@@ -10,6 +11,7 @@
import com.zy.acs.manager.manager.entity.Sta;
import com.zy.acs.manager.manager.entity.Task;
import com.zy.acs.manager.manager.enums.TaskTypeType;
import com.zy.acs.manager.manager.enums.TaskUplinkStateType;
import com.zy.acs.manager.manager.service.CodeService;
import com.zy.acs.manager.manager.service.LocService;
import com.zy.acs.manager.manager.service.StaService;
@@ -36,22 +38,25 @@
    private MapService mapService;
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private UplinkProperties uplinkProperties;
    public List<Task> validBusDto(List<TaskDto> taskDtoList) {
    public List<Task> validTaskDtoList(List<TaskDto> taskDtoList) {
        List<Task> taskList = new ArrayList<>();
        String uplinkSts = uplinkProperties.getEnabled() ? TaskUplinkStateType.PENDING.toString() : TaskUplinkStateType.SKIPPED.toString();
        for (TaskDto taskDto : taskDtoList) {
            if (Cools.isEmpty(taskDto.getSeqNum())) {
            if (Cools.isEmpty(taskDto.getTaskNo())) {
                throw new BusinessException("Task seqNum can't be empty!");
            }
            Task task = new Task();
            taskList.add(task);
            task.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
            task.setSeqNum(taskDto.getSeqNum());
            task.setSeqNum(taskDto.getTaskNo());
            task.setPriority(taskDto.getPriority());
            // ori --------------------------
            if (!Cools.isEmpty(taskDto.getOriLoc())) {
                Loc oriLoc = locService.selecatByLocNo(taskDto.getOriLoc());
                Loc oriLoc = locService.selectByLocNo(taskDto.getOriLoc());
                if (null == oriLoc) {
                    throw new BusinessException("oriLoc: " + taskDto.getOriLoc() + " doesn't exist!");
                }
@@ -68,7 +73,7 @@
            }
            // dest --------------------------
            if (!Cools.isEmpty(taskDto.getDestLoc())) {
                Loc destLoc = locService.selecatByLocNo(taskDto.getDestLoc());
                Loc destLoc = locService.selectByLocNo(taskDto.getDestLoc());
                if (null == destLoc) {
                    throw new BusinessException("destLoc: " + taskDto.getDestLoc() + " doesn't exist!");
                }
@@ -127,8 +132,8 @@
                    oriLoc = locService.getById(task.getOriLoc());
                    destLoc = locService.getById(task.getDestLoc());
                    startCode = codeService.getById(oriLoc.getCode());
                    endCode = codeService.getById(destLoc.getCode());
                    startCode = codeService.getCacheById(oriLoc.getCode());
                    endCode = codeService.getCacheById(destLoc.getCode());
                    if (null == startCode) {
                        throw new BusinessException("oriLoc:" + oriLoc.getLocNo() + " hasn't been bound to a QrCode yet");
                    }
@@ -140,13 +145,14 @@
                        throw new BusinessException("seqNum:" + task.getSeqNum() + " is wrong,oriLoc:" + task.getOriLoc() + " is unable to reach destLoc" + task.getDestLoc());
                    }
                    task.setPhase(JSON.toJSONString(pathList));
                    task.setUplinkSts(uplinkSts);
                    break;
                case LOC_TO_STA:
                    oriLoc = locService.getById(task.getOriLoc());
                    destSta = staService.getById(task.getDestSta());
                    startCode = codeService.getById(oriLoc.getCode());
                    endCode = codeService.getById(destSta.getCode());
                    startCode = codeService.getCacheById(oriLoc.getCode());
                    endCode = codeService.getCacheById(destSta.getCode());
                    if (null == startCode) {
                        throw new BusinessException("oriLoc:" + oriLoc.getLocNo() + " hasn't been bound to QrCode yet");
                    }
@@ -158,13 +164,14 @@
                        throw new BusinessException("seqNum:" + task.getSeqNum() + " is wrong,oriLoc:" + task.getOriLoc() + " can't move to destSta" + task.getDestSta());
                    }
                    task.setPhase(JSON.toJSONString(pathList));
                    task.setUplinkSts(uplinkSts);
                    break;
                case STA_TO_LOC:
                    oriSta = staService.getById(task.getOriSta());
                    destLoc = locService.getById(task.getDestLoc());
                    startCode = codeService.getById(oriSta.getCode());
                    endCode = codeService.getById(destLoc.getCode());
                    startCode = codeService.getCacheById(oriSta.getCode());
                    endCode = codeService.getCacheById(destLoc.getCode());
                    if (null == startCode) {
                        throw new BusinessException("oriSta:" + oriSta.getStaNo() + " hasn't bound to QrCode yet");
                    }
@@ -176,13 +183,14 @@
                        throw new BusinessException("seqNum:" + task.getSeqNum() + " is wrong,oriSta:" + task.getOriSta() + " is unable to react destLoc" + task.getDestLoc());
                    }
                    task.setPhase(JSON.toJSONString(pathList));
                    task.setUplinkSts(uplinkSts);
                    break;
                case STA_TO_STA:
                    oriSta = staService.getById(task.getOriSta());
                    destSta = staService.getById(task.getDestSta());
                    startCode = codeService.getById(oriSta.getCode());
                    endCode = codeService.getById(destSta.getCode());
                    startCode = codeService.getCacheById(oriSta.getCode());
                    endCode = codeService.getCacheById(destSta.getCode());
                    if (null == startCode) {
                        throw new BusinessException("oriSta:" + oriSta.getStaNo() + " hasn't been bound to a QrCode yet");
                    }
@@ -194,6 +202,7 @@
                        throw new BusinessException("seqNum:" + task.getSeqNum() + " is wrong,oriSta:" + task.getOriSta() + " can't move to destSta" + task.getDestSta());
                    }
                    task.setPhase(JSON.toJSONString(pathList));
                    task.setUplinkSts(uplinkSts);
                    break;
                default:
                    throw new BusinessException("seqNum:" + task.getSeqNum() + " is wrong, cause this type not exist");