自动化立体仓库 - WCS系统
#
luxiaotao1123
2021-01-04 cb1ed8e08ef13de563dc4ece9953ffadd78546ba
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -5,17 +5,20 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.WorkNoType;
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.VersionUtils;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.MatDto;
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
import com.zy.common.utils.CollectionUtils;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
@@ -29,7 +32,6 @@
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.DevpThread;
import com.zy.core.thread.LedThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -56,24 +58,6 @@
    @Autowired
    private RowLastnoService rowLastnoService;
    public void test(){
        try {
            // 工作号
            int workNo = commonService.getWorkNo(0);
            System.out.println(workNo);
            if (workNo > 0) {
                throw new CoolException("21321");
            }
            RowLastno rowLastno = rowLastnoService.selectById(1);
            rowLastno.setCurrentRow(rowLastno.getCurrentRow() + 1);
            rowLastnoService.updateById(rowLastno);
            System.out.println(rowLastno.getCurrentRow());
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
    }
    @Autowired
    private CommonService commonService;
@@ -145,11 +129,12 @@
                    }
                    try {
                        // 工作号
                        int workNo = commonService.getWorkNo(0);
                        // 检索库位
                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
                        List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
                        StartupDto startupDto = commonService.getLocNo(1, 1, inSta.getStaNo(), matNos);
                        StartupDto startupDto = commonService.getLocNo(1, 1, inSta.getStaNo(), matNos, locTypeDto);
                        // 工作号
                        int workNo = startupDto.getWorkNo();
                        // 插入工作明细档
                        wrkDetlService.createWorkDetail(workNo, waitPakins, barcode);
@@ -736,8 +721,8 @@
            if (crnProtocol == null) {
                continue;
            }
            // 只在连线模式下记录
            if (crnProtocol.getModeType() == CrnModeType.AUTO) {
            if (true) {
//            if (crnProtocol.getModeType() != CrnModeType.STOP) {
                // 有任务
                if (crnProtocol.getTaskNo() != 0) {
                    BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
@@ -745,7 +730,11 @@
                    if (latest == null) {
                        if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) {
                            WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
                            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
                            if (wrkMast == null) {
                                continue;
                            }
                            BasCrnError crnError = basCrnErrorMapper.selectById(crn.getId()==2?(crnProtocol.getAlarm1()+1000):crnProtocol.getAlarm1());
                            String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName();
                            BasErrLog basErrLog = new BasErrLog(
                                    null,    // 编号
                                    wrkMast.getWrkNo(),    // 工作号
@@ -761,7 +750,7 @@
                                    wrkMast.getSourceLocNo(),    // 源库位
                                    wrkMast.getBarcode(),    // 条码
                                    crnProtocol.getAlarm1().intValue(),    // 异常码
                                    crnError.getErrName(),    // 异常
                                    errName,    // 异常
                                    1,    // 异常情况
                                    now,    // 添加时间
                                    null,    // 添加人员
@@ -791,7 +780,8 @@
                    if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) {
                        // 记录新异常
                        if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm1().intValue())) {
                            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
                            BasCrnError crnError = basCrnErrorMapper.selectById(crn.getId()==2?(crnProtocol.getAlarm1()+1000):crnProtocol.getAlarm1());
                            String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName();
                            BasErrLog basErrLog = new BasErrLog(
                                    null,    // 编号
                                    null,    // 工作号
@@ -807,7 +797,7 @@
                                    null,    // 源库位
                                    null,    // 条码
                                    crnProtocol.getAlarm1().intValue(),    // 异常码
                                    crnError.getErrName(),    // 异常
                                    errName,    // 异常
                                    1,    // 异常情况
                                    now,    // 添加时间
                                    null,    // 添加人员
@@ -816,7 +806,7 @@
                                    "无任务异常"    // 备注
                            );
                            if (!basErrLogService.insert(basErrLog)) {
                                log.error("堆垛机plc异常记录失败 ===>> [id:{}] [error:{}]", crn.getId(), crnError.getErrName());
                                log.error("堆垛机plc异常记录失败 ===>> [id:{}] [error:{}]", crn.getId(), errName);
                            }
                        }
                    // 无异常
@@ -859,10 +849,11 @@
                // 站点条件判断
                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
                        && staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk()) {
                    // 工作号
                    int workNo = commonService.getWorkNo(0);
                    // 检索库位
                    StartupDto startupDto = commonService.getLocNo(1, 10, emptyInSta.getStaNo(), null);
                    LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
                    StartupDto startupDto = commonService.getLocNo(1, 10, emptyInSta.getStaNo(), null, locTypeDto);
                    // 工作号
                    int workNo = startupDto.getWorkNo();
                    try {
                        // 插入工作主档
@@ -1061,7 +1052,7 @@
            String locNo = loc.getLocNo();
            // 获取工作号
            int workNo = commonService.getWorkNo(0);
            int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
            // 保存工作档
            WrkMast wrkMast = new WrkMast();
            wrkMast.setWrkNo(workNo);