From 352b3946e1afb9a27c96f58bb138e2ba5a010ec0 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 21 六月 2024 19:52:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java |    5 +
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java           |   50 ++++++++++++----
 src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java            |    3 +
 src/main/resources/mapper/BasJarMastMapper.xml                        |   28 +++++++++
 src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java     |   24 ++++++-
 src/main/java/com/zy/asrs/service/WrkMastExecuteService.java          |    2 
 src/main/java/com/zy/asrs/service/BasJarMastService.java              |   10 ++-
 src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java                |   13 +++-
 8 files changed, 110 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
index 1d4626b..ea35df4 100644
--- a/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
@@ -12,12 +12,17 @@
 @Repository
 public interface BasJarMastMapper extends BaseMapper<BasJarMast> {
 
-    List<BasJarMast> getJarMastByJarId(@Param("jarId") Long jarId);
+    List<BasJarMast> getJarMastByJarId(@Param("jarId") Integer jarId);
 
-    BasJarMast getJarMastByJarIdMax(@Param("jarId") Long jarId);
+    BasJarMast getJarMastByJarIdMax(@Param("jarId") Integer jarId);
 
-    BasJarMast getJarMastByJarIdMin(@Param("jarId") Long jarId);
+    BasJarMast getJarMastByJarIdMin(@Param("jarId") Integer jarId);
 
-    Integer getJarMastByJarIdCount(@Param("jarId") Long jarId);
+    Integer getJarMastByJarIdCount(@Param("jarId") Integer jarId);
+
+    Integer selectJarMastOperation1(@Param("jarId") Integer jarId);
+    Integer selectJarMastOperation2(@Param("jarId") Integer jarId);
+    Integer selectJarMastOperation3(@Param("jarId") Integer jarId);
+    Integer selectJarMastOperation4(@Param("jarId") Integer jarId);
 
 }
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
index 53d39fc..6863ec1 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
@@ -3,10 +3,13 @@
 import com.zy.asrs.entity.WrkMastExecute;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 @Mapper
 @Repository
 public interface WrkMastExecuteMapper extends BaseMapper<WrkMastExecute> {
 
+    Integer getWrkMastByJarIdCount(@Param("jarId") Integer jarId);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/BasJarMastService.java b/src/main/java/com/zy/asrs/service/BasJarMastService.java
index 2744d04..3dc1f86 100644
--- a/src/main/java/com/zy/asrs/service/BasJarMastService.java
+++ b/src/main/java/com/zy/asrs/service/BasJarMastService.java
@@ -7,12 +7,14 @@
 
 public interface BasJarMastService extends IService<BasJarMast> {
 
-    List<BasJarMast> getJarMastByJarId(Long jarId);
+    List<BasJarMast> getJarMastByJarId(Integer jarId);
 
-    BasJarMast getJarMastByJarIdMax(Long jarId);
+    BasJarMast getJarMastByJarIdMax(Integer jarId);
 
-    BasJarMast getJarMastByJarIdMin(Long jarId);
+    BasJarMast getJarMastByJarIdMin(Integer jarId);
 
-    Integer getJarMastByJarIdCount(Long jarId);
+    Integer getJarMastByJarIdCount(Integer jarId);
+
+    Integer selectJarMastOperation(Integer jarId,Integer type);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
index bca4c26..8734246 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
@@ -5,4 +5,6 @@
 
 public interface WrkMastExecuteService extends IService<WrkMastExecute> {
 
+    Integer getWrkMastByJarIdCount(Integer jarId);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
index b4a3364..0832ea7 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
@@ -12,7 +12,7 @@
 public class BasJarMastServiceImpl extends ServiceImpl<BasJarMastMapper, BasJarMast> implements BasJarMastService {
 
     @Override
-    public List<BasJarMast> getJarMastByJarId(Long jarId) {
+    public List<BasJarMast> getJarMastByJarId(Integer jarId) {
         return this.baseMapper.getJarMastByJarId(jarId);
     }
 
@@ -20,7 +20,7 @@
     * 鑾峰彇jarLocDigit鏈�澶х殑BasJarMast
     * */
     @Override
-    public BasJarMast getJarMastByJarIdMax(Long jarId) {
+    public BasJarMast getJarMastByJarIdMax(Integer jarId) {
         return this.baseMapper.getJarMastByJarIdMax(jarId);
     }
 
@@ -28,13 +28,29 @@
      * 鑾峰彇jarLocDigit鏈�灏忕殑BasJarMast
      * */
     @Override
-    public BasJarMast getJarMastByJarIdMin(Long jarId) {
+    public BasJarMast getJarMastByJarIdMin(Integer jarId) {
         return this.baseMapper.getJarMastByJarIdMin(jarId);
     }
 
     @Override
-    public Integer getJarMastByJarIdCount(Long jarId) {
+    public Integer getJarMastByJarIdCount(Integer jarId) {
         return this.baseMapper.getJarMastByJarIdCount(jarId);
     }
 
+    @Override
+    public Integer selectJarMastOperation(Integer jarId,Integer type) {
+        switch (type){
+            case 1:
+                return this.baseMapper.selectJarMastOperation1(jarId);
+            case 2:
+                return this.baseMapper.selectJarMastOperation2(jarId);
+            case 3:
+                return this.baseMapper.selectJarMastOperation3(jarId);
+            case 4:
+                return this.baseMapper.selectJarMastOperation4(jarId);
+            default:
+                return 99;
+        }
+    }
+
 }
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 cc21f70..eb15ae1 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -109,6 +109,8 @@
     private WrkMastSplitTwinService wrkMastSplitTwinService;
     @Autowired
     private BasJarMastService basJarMastService;
+    @Autowired
+    private WrkMastExecuteService wrkMastExecuteService;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -4411,18 +4413,42 @@
      */
     public synchronized void jarGenerateWrkMastSta() {
         for (JarSlave jarSlave : slaveProperties.getJar()) {
-            try{
-                Integer count = basJarMastService.getJarMastByJarIdCount(jarSlave.getId().longValue());
-                if (count>=7){
+            for(JarSlave.StaStn staStn : jarSlave.getJarInSta()){
+                // 鑾峰彇纭寲缃愬叆搴撶珯淇℃伅
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, staStn.getDevpPlcId());
+                StaProtocol staProtocol = devpThread.getStation().get(staStn.getStaNo());
+                if (staProtocol == null) {
                     continue;
+                } else {
+                    staProtocol = staProtocol.clone();
                 }
-                BasJarMast jarMastByJarIdMax = basJarMastService.getJarMastByJarIdMax(jarSlave.getId().longValue());
-                if (!Cools.isEmpty(jarMastByJarIdMax) && jarMastByJarIdMax.getJarLocDigit()==7){
-                    continue;
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo()!=0){
+                    try{
+                        if (basJarMastService.selectJarMastOperation(jarSlave.getId(),1)!=0){
+                            break;
+                        }
+                        if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+                            break;
+                        }
+                        if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>=7){
+                            continue;
+                        }
+                        BasJarMast jarMastByJarIdMax = basJarMastService.getJarMastByJarIdMax(jarSlave.getId());
+                        if (!Cools.isEmpty(jarMastByJarIdMax) && jarMastByJarIdMax.getJarLocDigit()==7){
+                            continue;
+                        }
+                        WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+                        if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=2){
+                            continue;
+                        }
+                        if (jarGenerateWrkMastStaExecute(jarSlave,wrkMast)){
+                            return;
+                        };
+                    }catch (Exception e){
+                        log.error(jarSlave.getId()+"鍙峰皬杞﹀浣嶇嚎绋嬫姤閿欙紒"+e);
+                    }
+                    break;
                 }
-                jarGenerateWrkMastStaExecute(jarSlave);
-            }catch (Exception e){
-                log.error(jarSlave.getId()+"鍙峰皬杞﹀浣嶇嚎绋嬫姤閿欙紒"+e);
             }
         }
     }
@@ -4430,7 +4456,7 @@
     /**
      *  Jar浠诲姟鍒涘缓  鎵ц
      */
-    public synchronized boolean jarGenerateWrkMastStaExecute(JarSlave jarSlave) {
+    public synchronized boolean jarGenerateWrkMastStaExecute(JarSlave jarSlave,WrkMast wrkMast) {
         try{
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
             JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
@@ -4451,8 +4477,8 @@
                 return false;
             }
 
-            //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂��
-            if (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0 && !jarOtherProtocol.isLeftDoor() && jarOtherProtocol.jarErr==0){
+            //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂��   Other宸﹂棬鍏抽棴
+            if (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0 && !jarOtherProtocol.isLeftDoor()){
 
             }
 
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
index 06f9976..bfe6bf7 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
@@ -8,5 +8,8 @@
 
 @Service("wrkMastExecuteService")
 public class WrkMastExecuteServiceImpl extends ServiceImpl<WrkMastExecuteMapper, WrkMastExecute> implements WrkMastExecuteService {
-
+    @Override
+    public Integer getWrkMastByJarIdCount(Integer jarId) {
+        return this.baseMapper.getWrkMastByJarIdCount(jarId);
+    }
 }
diff --git a/src/main/resources/mapper/BasJarMastMapper.xml b/src/main/resources/mapper/BasJarMastMapper.xml
index 8d7ed8a..3e23bd0 100644
--- a/src/main/resources/mapper/BasJarMastMapper.xml
+++ b/src/main/resources/mapper/BasJarMastMapper.xml
@@ -51,4 +51,32 @@
         and jar_id = #{jarId}
     </select>
 
+    <select id="selectJarMastOperation1" resultType="Integer">
+        select count(1) from asr_bas_jar_mast
+        where 1=1
+        and jar_id = #{jarId}
+        and wrk_sts
+    </select>
+
+    <select id="selectJarMastOperation2" resultType="Integer">
+        select count(1) from asr_bas_jar_mast
+        where 1=1
+          and jar_id = #{jarId}
+          and wrk_sts
+    </select>
+
+    <select id="selectJarMastOperation3" resultType="Integer">
+        select count(1) from asr_bas_jar_mast
+        where 1=1
+          and jar_id = #{jarId}
+          and wrk_sts
+    </select>
+
+    <select id="selectJarMastOperation4" resultType="Integer">
+        select count(1) from asr_bas_jar_mast
+        where 1=1
+          and jar_id = #{jarId}
+          and wrk_sts
+    </select>
+
 </mapper>

--
Gitblit v1.9.1