#
zzgtfwq
2 天以前 236edf0559e2d5a6031b1df56a69454baa0357e5
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.controller.TaskWrkController;
import com.zy.asrs.domain.enums.LedErrorAreaType;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.entity.*;
@@ -13,24 +14,19 @@
import com.zy.asrs.service.*;
import com.zy.asrs.utils.*;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.MatDto;
import com.zy.common.model.SearchLocParam;
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
import com.zy.common.utils.CollectionUtils;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.News;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.*;
import com.zy.core.enums.*;
import com.zy.core.model.*;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.command.LedCommand;
import com.zy.core.model.protocol.*;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.LedThread;
import com.zy.core.thread.RgvThread;
import com.zy.core.thread.SiemensDevpThread;
import com.zy.system.entity.license.LicenseVerify;
@@ -44,7 +40,6 @@
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
 * 立体仓库WCS系统主流程业务
@@ -68,17 +63,11 @@
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private StaDescService staDescService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Autowired
    private BasDevpService basDevpService;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
    private BasErrLogService basErrLogService;
    @Autowired
    private BasCrnErrorMapper basCrnErrorMapper;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
@@ -307,7 +296,7 @@
     */
    public synchronized void storeEmptyPlt() {
        for (DevpSlave devp : slaveProperties.getDevp()) {
            if (devp.getId()==1) continue;
//            if (devp.getId()==1) continue;
            // 遍历空板入库口
            for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
                // 获取空板入库站信息
@@ -1246,14 +1235,39 @@
        for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
            try {
                for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) {
                    boolean create = deviceDetectionCreate(inSta);
                    if (create) {
                        continue;
                    WrkMast wrkMast = deviceDetectionCreate(inSta);
                    if (!Cools.isEmpty(wrkMast)) {
                        TaskWrk taskWrk = new TaskWrk(wrkMast);
                        taskWrkService.insert(taskWrk);
                    }
                }
            } catch (Exception e){
            }
        }
    }
    public synchronized void taskCancel() {
        try {
            List<String> taskList = new ArrayList<>();
            for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
                TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
                ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
                for (TaskProtocol taskProtocol : allTaskProtocol.values()){
                    taskList.add(taskProtocol.getTaskNo().toString());
                }
            }
            Wrapper<TaskWrk> wrkWrapper = new EntityWrapper<TaskWrk>().eq("status", 5);
            for (String taskNo : taskList){
                wrkWrapper.ne("task_no", taskNo);
            }
            int count = taskWrkService.selectCount(wrkWrapper);
            if (count>0){
                taskWrkService.delete(wrkWrapper);
            }
        } catch (Exception e){
        }
    }
    public synchronized void taskStart() {
@@ -1738,31 +1752,33 @@
        return true;
    }
    public boolean deviceDetectionCreate(RgvSlave.RgvStn inSta) {
    public WrkMast deviceDetectionCreate(RgvSlave.RgvStn inSta) {
        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId());
        StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
        if (staProtocol == null) {
            return false;
            return null;
        }
        // 判断是否满足取货条件
        if (staProtocol.isAutoing()
//                && staProtocol.isLoading()
//                && staProtocol.isStaOk()
                && staProtocol.getWorkNo() != 0) {
            TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo());
            if (Cools.isEmpty(taskWrk)){
            WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
            if (!Cools.isEmpty(wrkMast)){
                if (inSta.getStaNo()==117 || inSta.getStaNo()==120 || inSta.getStaNo()==123
                        || inSta.getStaNo()==217 || inSta.getStaNo()==220 || inSta.getStaNo()==223){
                    WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
                    if (!Cools.isEmpty(wrkMast) && wrkMast.getIoType()<100){
                        return true;
                    if (wrkMast.getIoType()>100){
                        return null;
                    }
                } else {
                    return true;
                }
                TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo());
                if (Cools.isEmpty(taskWrk)){
                    return wrkMast;
                }
            }
        }
        return false;
        return null;
    }
    public TaskWrk deviceDetection(RgvSlave.RgvStn inSta) {
@@ -2009,6 +2025,7 @@
                issuedTake.setTaskNo(Long.valueOf(taskWrk.getWrkNo()));
                issuedTake.setTaskStatus(2);
                issuedTake.setTargetPositionStaNo(basDevpPositionSou.getDevNo());
                issuedTake.setTargetPositionStaNoEnd(basDevpPositionSou.getDevNo$());
                issuedTake.setTargetPositionStaNoPlcId(basDevpPositionSou.getPlcId());
                issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
                issuedTake.setTargetPosition(basDevpPositionSou.getPlcPosition());
@@ -2019,6 +2036,7 @@
                issuedPut.setTaskNo(Long.valueOf(taskWrk.getWrkNo()));
                issuedPut.setTaskStatus(3);
                issuedPut.setTargetPositionStaNo(basDevpPositionEnd.getDevNo());
                issuedPut.setTargetPositionStaNoEnd(basDevpPositionEnd.getDevNo$());
                issuedPut.setTargetPositionStaNoPlcId(basDevpPositionEnd.getPlcId());
                issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
                issuedPut.setTargetPosition(basDevpPositionEnd.getPlcPosition());
@@ -2026,13 +2044,11 @@
                issuedPut.setDirection(basDevpPositionEnd.getRgvSign()==1);
                try{
                    if (taskWrk.getIoType()==2 && basDevpPositionEnd.getRgvSign()==1){
                        Date now = new Date();
                        taskWrk.setStatus(TaskStatusType.OVER.id);
                        taskWrk.setModiTime(now);//更新时间
                        taskWrk.setCompleteTime(now);//完结时间
                        taskWrkService.updateById(taskWrk);
                    }
                } catch (Exception e){
                }