cl
19 小时以前 f95a3c836f06078f41389051a9d1c01969a925cb
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -8,6 +8,7 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasCrnErrorMapper;
import com.zy.asrs.mapper.WaitPakinMapper;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
@@ -84,6 +85,8 @@
    private BasCrnErrorMapper basCrnErrorMapper;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WaitPakinMapper waitPakinMapper;
    @Autowired
    private ConfigService configService;
    @Autowired
@@ -310,8 +313,12 @@
                                wrkMastService.updateById(wrkMast);
                                Thread.sleep(3000); // 延时3S
                            }else {
                                // 未组托托盘退回 电视机显示请先组托
                                Integer back = 999;
                                if (ledThread != null) {
                                    String errorMsg = jsonObject.getString("msg");
                                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
                                }
                                barcodeThread.setBarcode("");
                                boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, back));
                                if (result) {
@@ -548,10 +555,21 @@
//        if (!staProtocol.isOutEnable()) {
//            return;
//        }
        //检查是否有正在执行的任务
        List<WrkMast> workingWrkMast = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", 3, 12));
        if (!workingWrkMast.isEmpty()) {
        // 组托档存在已组托未入库则等待,不下发出库
        int waitPakinNotIn = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>()
                .isNull("io_status").or().ne("io_status", "Y"));
        if (waitPakinNotIn > 0) {
            return;
        }
        // 存在进行中/在途任务(2,3,12,13,14)则不下发出库,避免冲突
        // 2 待执行(入库)
        //3 设备执行中(入库)
        //12 设备执行中(出库)
        //13 出库到站点上
        //14 出库等待确认
        int activeCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>()
                .in("wrk_sts", 2, 3, 12, 13, 14));
        if (activeCount > 0) {
            return;
        }