1
Administrator
21 小时以前 14717fd672bc62442175d2ce2ddd3a113f0069b8
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/StartUpOperationHandler.java
@@ -12,12 +12,15 @@
import com.zy.acs.conveyor.core.properties.SlaveProperties;
import com.zy.acs.conveyor.core.service.StationService;
import com.zy.acs.conveyor.entity.Job;
import com.zy.acs.conveyor.enums.WorkNoTypeType;
import com.zy.acs.conveyor.service.JobService;
import com.zy.acs.conveyor.service.WrkLastnoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.Date;
import java.util.Map;
/**
@@ -37,6 +40,10 @@
    @Autowired
    private StationService stationService;
    @Autowired
    private WrkLastnoService wrkLastnoService;
    private final RedisSupport redis = RedisSupport.defaultRedisSupport;
@@ -65,11 +72,11 @@
                    // 判断是否满足条件
                    if (!staProtocol.isStartup() || !staProtocol.isAutoing() || !staProtocol.isLoading()) {
                        if (!staProtocol.isStartup()) {
                            News.error("{}:站点:{},未启动入库", config.getMark(), staProtocol.getSiteId());
                            //News.error("{}:站点:{},未启动入库", config.getMark(), staProtocol.getSiteId());
                            continue;
                        }
                        if (!staProtocol.isAutoing()) {
                            News.error("{}:站点:{},非自动", config.getMark(), staProtocol.getSiteId());
                            //News.error("{}:站点:{},非自动", config.getMark(), staProtocol.getSiteId());
                            continue;
                        }
                        if (!staProtocol.isLoading()) {
@@ -78,25 +85,31 @@
                        }
                    }
                    Job jobByJobNo = jobService.getJobByJobNo(staProtocol.getWorkNo());
                    if (jobByJobNo == null) {
                        News.error("{}:站点:{},找不到任务", config.getMark(), staProtocol.getSiteId());
                        continue;
                    }
                    if (jobByJobNo.getJobSts() != ConveyorStateType.OUTBOUND.getStatus()) {
                        if (jobByJobNo.getJobSts() == ConveyorStateType.STARTUP.getStatus()){
                            continue;
                        }
                        News.error("{}:站点:{},任务状态不对,{}", config.getMark(), staProtocol.getSiteId(), JSON.toJSON(jobByJobNo));
                        continue;
                    }
                    staProtocol.setStaNo(inSta.getStaNo());
                    redis.push(RedisConveyorConstant.CONVEYOR_TASK_FLAG, staProtocol);
//                    Job jobByJobNo = jobService.getJobByJobNo(staProtocol.getWorkNo());
//                    if (jobByJobNo == null) {
//                        News.error("{}:站点:{},找不到任务", config.getMark(), staProtocol.getSiteId());
//                        continue;
//                    }
//                    if (jobByJobNo.getJobSts() != ConveyorStateType.OUTBOUND.getStatus()) {
//                        if (jobByJobNo.getJobSts() == ConveyorStateType.STARTUP.getStatus()) {
//                            continue;
//                        }
//                        News.error("{}:站点:{},任务状态不对,{}", config.getMark(), staProtocol.getSiteId(), JSON.toJSON(jobByJobNo));
//                        continue;
//                    }
                    jobByJobNo.setJobSts(ConveyorStateType.STARTUP.getStatus());
                    if (!jobService.updateById(jobByJobNo)) {
                        News.info("{},启动入库:{},{}", config.getMark(), staProtocol.getWorkNo(), staProtocol.getStaNo());
                    if (staProtocol.getWorkNo() == 0 && staProtocol.isStartUpFlag()) {
                        Job job = initJob(getWorkNo());
                        staProtocol.setWorkNo(job.getJobNo());
                        staProtocol.setStaNo(inSta.getStaNo());
                        staProtocol.setStartUpFlag(false);
                        redis.push(RedisConveyorConstant.CONVEYOR_TASK_FLAG, staProtocol);
                        if (!jobService.insert(job)) {
                            News.info("{},启动入库:{},{}", config.getMark(), staProtocol.getWorkNo(), staProtocol.getStaNo());
                        }
                    }
                }
            }
        } catch (Exception e) {
@@ -104,4 +117,17 @@
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
    }
    private Job initJob(Integer workNo) {
        Job job = new Job();
        job.setJobNo(workNo);
        job.setJobSts(ConveyorStateType.STARTUP.getStatus());
        job.setStartTime(new Date());
        job.setCreateTime(new Date());
        return job;
    }
    private Integer getWorkNo() {
        return wrkLastnoService.nextWorkNo(WorkNoTypeType.WORK_NO_TYPE.type);
    }
}