From cb1ed8e08ef13de563dc4ece9953ffadd78546ba Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 04 一月 2021 09:54:53 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  157 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 130 insertions(+), 27 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 1bc2b2c..bbcdbc3 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -5,16 +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.*;
@@ -28,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 +59,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;
     @Autowired
@@ -94,6 +79,10 @@
     private BasDevpService basDevpService;
     @Autowired
     private LocDetlService locDetlService;
+    @Autowired
+    private BasErrLogService basErrLogService;
+    @Autowired
+    private BasCrnErrorMapper basCrnErrorMapper;
     @Autowired
     private JdbcTemplate jdbcTemplate;
 
@@ -140,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);
 
@@ -721,8 +711,120 @@
     /**
      * 鍫嗗灈鏈哄紓甯镐俊鎭褰�
      */
+    @Async
     public void recCrnErr(){
+        Date now = new Date();
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
+            if (true) {
+//            if (crnProtocol.getModeType() != CrnModeType.STOP) {
+                // 鏈変换鍔�
+                if (crnProtocol.getTaskNo() != 0) {
+                    BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
+                    // 鏈夊紓甯�
+                    if (latest == null) {
+                        if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) {
+                            WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
+                            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(),    // 宸ヤ綔鍙�
+                                    now,    // 鍙戠敓鏃堕棿
+                                    null,    // 缁撴潫鏃堕棿
+                                    wrkMast.getWrkSts(),    // 宸ヤ綔鐘舵��
+                                    wrkMast.getIoType(),    // 鍏ュ嚭搴撶被鍨�
+                                    crn.getId(),    // 鍫嗗灈鏈�
+                                    null,    // plc
+                                    wrkMast.getLocNo(),    // 鐩爣搴撲綅
+                                    wrkMast.getStaNo(),    // 鐩爣绔�
+                                    wrkMast.getSourceStaNo(),    // 婧愮珯
+                                    wrkMast.getSourceLocNo(),    // 婧愬簱浣�
+                                    wrkMast.getBarcode(),    // 鏉$爜
+                                    crnProtocol.getAlarm1().intValue(),    // 寮傚父鐮�
+                                    errName,    // 寮傚父
+                                    1,    // 寮傚父鎯呭喌
+                                    now,    // 娣诲姞鏃堕棿
+                                    null,    // 娣诲姞浜哄憳
+                                    now,    // 淇敼鏃堕棿
+                                    null,    // 淇敼浜哄憳
+                                    "浠诲姟涓紓甯�"    // 澶囨敞
+                            );
+                            if (!basErrLogService.insert(basErrLog)) {
+                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), crnError.getErrName());
+                            }
+                        }
+                    } else {
+                        // 寮傚父淇
+                        if (crnProtocol.getAlarm1() == null || crnProtocol.getAlarm1() == 0) {
+                            latest.setEndTime(now);
+                            latest.setUpdateTime(now);
+                            latest.setStatus(2);
+                            if (!basErrLogService.updateById(latest)) {
+                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+                            }
+                        }
+                    }
+                // 鏃犱换鍔�
+                } else {
+                    BasErrLog latest = basErrLogService.findLatest(crn.getId());
+                    // 鏈夊紓甯�
+                    if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) {
+                        // 璁板綍鏂板紓甯�
+                        if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm1().intValue())) {
+                            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,    // 宸ヤ綔鍙�
+                                    now,    // 鍙戠敓鏃堕棿
+                                    null,    // 缁撴潫鏃堕棿
+                                    null,    // 宸ヤ綔鐘舵��
+                                    null,    // 鍏ュ嚭搴撶被鍨�
+                                    crn.getId(),    // 鍫嗗灈鏈�
+                                    null,    // plc
+                                    null,    // 鐩爣搴撲綅
+                                    null,    // 鐩爣绔�
+                                    null,    // 婧愮珯
+                                    null,    // 婧愬簱浣�
+                                    null,    // 鏉$爜
+                                    crnProtocol.getAlarm1().intValue(),    // 寮傚父鐮�
+                                    errName,    // 寮傚父
+                                    1,    // 寮傚父鎯呭喌
+                                    now,    // 娣诲姞鏃堕棿
+                                    null,    // 娣诲姞浜哄憳
+                                    now,    // 淇敼鏃堕棿
+                                    null,    // 淇敼浜哄憳
+                                    "鏃犱换鍔″紓甯�"    // 澶囨敞
+                            );
+                            if (!basErrLogService.insert(basErrLog)) {
+                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
+                            }
+                        }
+                    // 鏃犲紓甯�
+                    } else {
+                        // 寮傚父淇
+                        if (latest != null && latest.getStatus() == 1) {
+                            latest.setEndTime(now);
+                            latest.setUpdateTime(now);
+                            latest.setStatus(2);
+                            if (!basErrLogService.updateById(latest)) {
+                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+                            }
+                        }
+                    }
+                }
+            }
 
+        }
     }
 
 
@@ -747,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 {
                         // 鎻掑叆宸ヤ綔涓绘。
@@ -859,7 +962,7 @@
                 ledCommand.setStaNo(wrkMast.getStaNo());
                 if (wrkMast.getIoType() != 110) {
                     List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMatnr(), wrkDetl.getAnfme())));
+                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())));
                 }
                 commands.add(ledCommand);
             }
@@ -949,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);

--
Gitblit v1.9.1