From 5a0f4ce17e31d84068bdb2f62d5bb7ef27f87d0f Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期六, 22 六月 2024 09:33:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java |    6 +
 src/main/java/com/zy/core/enums/JarModeType.java                      |    9 +-
 src/main/resources/mapper/BasJarMapper.xml                            |    5 +
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java           |  118 ++++++++++++++++++++---------
 src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java            |    2 
 src/main/resources/mapper/BasJarMastMapper.xml                        |   20 +++-
 src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java     |    8 ++
 src/main/java/com/zy/asrs/service/WrkMastExecuteService.java          |    2 
 src/main/java/com/zy/asrs/service/BasJarMastService.java              |    2 
 src/main/java/com/zy/asrs/entity/BasJarMast.java                      |   32 +++++++
 src/main/java/com/zy/asrs/entity/BasJar.java                          |   34 ++++++++
 src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java                |    2 
 12 files changed, 191 insertions(+), 49 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/BasJar.java b/src/main/java/com/zy/asrs/entity/BasJar.java
index 8c5d91f..c24010d 100644
--- a/src/main/java/com/zy/asrs/entity/BasJar.java
+++ b/src/main/java/com/zy/asrs/entity/BasJar.java
@@ -119,6 +119,40 @@
     @TableField("right_out_enable")
     private String rightOutEnable;
 
+    /**
+     * 鍏ョ綈灏忚溅
+     */
+    @ApiModelProperty(value= "鍏ョ綈灏忚溅")
+    @TableField("enter_ste_no")
+    private Integer enterSteNo;
+
+    /**
+     * 鍑虹綈灏忚溅
+     */
+    @ApiModelProperty(value= "鍑虹綈灏忚溅")
+    @TableField("out_ste_id")
+    private Integer outSteId;
+
+    /**
+     * 鍏ョ綈RGV
+     */
+    @ApiModelProperty(value= "鍏ョ綈RGV")
+    @TableField("enter_rgv_id")
+    private Integer enterRgvId;
+
+    /**
+     * 鍑虹綈RGV
+     */
+    @ApiModelProperty(value= "鍑虹綈RGV")
+    @TableField("out_rgv_id")
+    private Integer outRgvId;
+
+    /**
+     * 鍐峰嵈
+     */
+    @ApiModelProperty(value= "鍐峰嵈")
+    private Integer burial;
+
     public BasJar() {}
 
     public BasJar(Integer jarNo,Integer region,Integer jarCode,Integer staNo,Integer jarStatus,Integer jarCount,Integer jarErr,String leftDoor,String rightDoor,String leftInEnable,String leftOutEnable,String autoing,Integer jarMode,String rightInEnable,String rightOutEnable) {
diff --git a/src/main/java/com/zy/asrs/entity/BasJarMast.java b/src/main/java/com/zy/asrs/entity/BasJarMast.java
index f69f651..0f36fef 100644
--- a/src/main/java/com/zy/asrs/entity/BasJarMast.java
+++ b/src/main/java/com/zy/asrs/entity/BasJarMast.java
@@ -146,9 +146,15 @@
     @TableField("jar_loc_digit")
     private Integer jarLocDigit;
 
+    /**
+     * 鍐峰嵈
+     */
+    @ApiModelProperty(value= "鍐峰嵈")
+    private Integer burial;
+
     public BasJarMast() {}
 
-    public BasJarMast(Long wrkNo,Integer enterStaNo,Integer outStaNo,Integer jarEnterStaNo,Integer jarOutStaNo,Integer jarId,Integer jarRegin,Integer status,Integer enterSteNo,Integer outSteId,Integer enterRgvId,Integer outRgvId,Date ioTime,Date modiTime,Date appeTime) {
+    public BasJarMast(Long wrkNo,Integer enterStaNo,Integer outStaNo,Integer jarEnterStaNo,Integer jarOutStaNo,Integer jarId,Integer jarRegin,Integer status,Integer enterSteNo,Integer outSteId,Integer enterRgvId,Integer outRgvId,Date ioTime,Date modiTime,Date appeTime,Integer jarLocDigit,Integer burial) {
         this.wrkNo = wrkNo;
         this.enterStaNo = enterStaNo;
         this.outStaNo = outStaNo;
@@ -164,8 +170,32 @@
         this.ioTime = ioTime;
         this.modiTime = modiTime;
         this.appeTime = appeTime;
+        this.jarLocDigit = jarLocDigit;
+        this.burial = burial;
     }
 
+    public BasJarMast(BasJar jar,WrkMast wrkMast,Integer jarLocDigit) {
+        Date now = new Date();
+        this.wrkNo = wrkMast.getWrkNo().longValue();
+        this.enterStaNo = wrkMast.getSourceStaNo();
+        this.outStaNo = wrkMast.getStaNo();
+//        this.jarEnterStaNo = jarEnterStaNo;
+        this.jarOutStaNo = jar.getStaNo();
+        this.jarId = jar.getJarNo();
+        this.jarRegin = jar.getRegion();
+        this.status = 0;
+        this.enterSteNo = jar.getEnterSteNo();
+        this.outSteId = jar.getOutSteId();
+        this.enterRgvId = jar.getEnterRgvId();;
+        this.outRgvId = jar.getOutRgvId();;
+        this.ioTime = wrkMast.getIoTime();
+        this.modiTime = now;
+        this.appeTime = now;
+        this.jarLocDigit = jarLocDigit;
+        this.burial = jar.getBurial();
+    }
+
+
 //    BasJarMast basJarMast = new BasJarMast(
 //            null,    // 宸ヤ綔鍙穂闈炵┖]
 //            null,    // 鍏ュ簱婧愮珯鐐筟闈炵┖]
diff --git a/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
index ea35df4..9dc0c74 100644
--- a/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
@@ -12,6 +12,8 @@
 @Repository
 public interface BasJarMastMapper extends BaseMapper<BasJarMast> {
 
+    BasJarMast getJarMastByWrkNo(@Param("wrkNo") Long wrkNo);
+
     List<BasJarMast> getJarMastByJarId(@Param("jarId") Integer jarId);
 
     BasJarMast getJarMastByJarIdMax(@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 6863ec1..810ebd6 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
@@ -10,6 +10,8 @@
 @Repository
 public interface WrkMastExecuteMapper extends BaseMapper<WrkMastExecute> {
 
+    WrkMastExecute getWrkMastByWrkNo(@Param("wrkNo") Long wrkNo);
+
     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 3dc1f86..5b06c9b 100644
--- a/src/main/java/com/zy/asrs/service/BasJarMastService.java
+++ b/src/main/java/com/zy/asrs/service/BasJarMastService.java
@@ -7,6 +7,8 @@
 
 public interface BasJarMastService extends IService<BasJarMast> {
 
+    BasJarMast getJarMastByWrkNo(Long wrkNo);
+
     List<BasJarMast> getJarMastByJarId(Integer jarId);
 
     BasJarMast getJarMastByJarIdMax(Integer jarId);
diff --git a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
index 8734246..1049822 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
@@ -5,6 +5,8 @@
 
 public interface WrkMastExecuteService extends IService<WrkMastExecute> {
 
+    WrkMastExecute getWrkMastByWrkNo(Long wrkNo);
+
     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 0832ea7..23a310d 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
@@ -11,6 +11,14 @@
 @Service("basJarMastService")
 public class BasJarMastServiceImpl extends ServiceImpl<BasJarMastMapper, BasJarMast> implements BasJarMastService {
 
+    /*
+     * 鑾峰彇BasJarMast
+     * */
+    @Override
+    public BasJarMast getJarMastByWrkNo(Long wrkNo) {
+        return this.baseMapper.getJarMastByWrkNo(wrkNo);
+    }
+
     @Override
     public List<BasJarMast> getJarMastByJarId(Integer jarId) {
         return this.baseMapper.getJarMastByJarId(jarId);
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 eb15ae1..e8eb287 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -111,9 +111,14 @@
     private BasJarMastService basJarMastService;
     @Autowired
     private WrkMastExecuteService wrkMastExecuteService;
+    @Autowired
+    private BasJarService basJarService;
+    @Autowired
+    private BasJarMapper basJarMapper;
 
     @Value("${wms.url}")
     private String wmsUrl;
+
 
 
     /**
@@ -4413,42 +4418,63 @@
      */
     public synchronized void jarGenerateWrkMastSta() {
         for (JarSlave jarSlave : slaveProperties.getJar()) {
-            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();
-                }
-                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);
+            try{
+                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();
                     }
-                    break;
+                    if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo()!=0){
+                        try{
+                            if (basJarMastService.selectJarMastOperation(jarSlave.getId(),1)!=0){
+                                break;
+                            }
+                            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),1)!=0){
+//                            log.error("{}鍙峰皬杞�",jarSlave.getJarOtherId());
+                                break;
+                            }
+                            if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+                                break;
+                            }
+                            if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>=7){
+                                break;
+                            }
+                            BasJarMast jarMastByJarIdMax = basJarMastService.getJarMastByJarIdMax(jarSlave.getId());
+                            int jarLocDigit = 0;
+                            if (Cools.isEmpty(jarMastByJarIdMax)){
+                                jarLocDigit = 1;
+                            } else if (jarMastByJarIdMax.getJarLocDigit()<7){
+                                jarLocDigit = jarMastByJarIdMax.getJarLocDigit()+1;
+                            } else {
+                                continue;
+                            }
+                            WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+                            if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=2){
+                                continue;
+                            }
+                            BasJarMast basJarMast = basJarMastService.getJarMastByWrkNo(wrkMast.getWrkNo().longValue());
+                            if (!Cools.isEmpty(basJarMast)){
+                                continue;
+                            }
+                            WrkMastExecute wrkMastExecute = wrkMastExecuteService.getWrkMastByWrkNo(wrkMast.getWrkNo().longValue());
+                            if (!Cools.isEmpty(wrkMastExecute)){
+                                continue;
+                            }
+                            if (jarGenerateWrkMastStaExecute(jarSlave,wrkMast,jarLocDigit,staStn.getStaNo())){
+                                return;
+                            }
+                        }catch (Exception e){
+                            log.error(jarSlave.getId()+"鍙峰皬杞﹀浣嶇嚎绋嬫姤閿欙紒"+e);
+                        }
+                        break;
+                    }
                 }
+            } catch (Exception e){
+                log.error("{}鍙风~鍖栫綈Jar浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
             }
         }
     }
@@ -4456,7 +4482,7 @@
     /**
      *  Jar浠诲姟鍒涘缓  鎵ц
      */
-    public synchronized boolean jarGenerateWrkMastStaExecute(JarSlave jarSlave,WrkMast wrkMast) {
+    public synchronized boolean jarGenerateWrkMastStaExecute(JarSlave jarSlave,WrkMast wrkMast,Integer jarLocDigit,Integer staNo) {
         try{
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
             JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
@@ -4477,13 +4503,29 @@
                 return false;
             }
 
-            //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂��   Other宸﹂棬鍏抽棴
-            if (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0 && !jarOtherProtocol.isLeftDoor()){
+            BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+            if (Cools.isEmpty(basJar)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                return false;
+            }
 
+            if (basJar.getJarMode()!=1 && basJar.getJarMode()!=0){
+                return false;
+            }
+
+            //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂��   Other宸﹂棬鍏抽棴
+            if (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0 && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0
+                    && !jarOtherProtocol.isLeftDoor() && jarOtherProtocol.leftDoorOpen==0  && jarOtherProtocol.leftDoorClose==0){
+                if (jarProtocol.statusType == JarStatusType.IDLE || jarProtocol.statusType == JarStatusType.MOVING){
+                    BasJarMast basJarMast = new BasJarMast(basJar, wrkMast, jarLocDigit);
+                    basJarMast.setJarEnterStaNo(staNo);//鍏ョ~鍖栫綈绔欑偣
+                    basJarMastService.insert(basJarMast);
+                    return true;
+                }
             }
 
         } catch (Exception e){
-//            log.error("鍫嗗灈鏈哄伐浣嶄簩瀹屾垚绛夊緟纭寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crn.getId(),e.getMessage(),2);
+            log.error("{}鍙风~鍖栫綈鐢熸垚BasJarMast鍒濆浠诲姟澶辫触,寮傚父鍘熷洜={},宸ヤ綔鍙�={},纭寲搴撲綅={}",jarSlave.getId(),e.getMessage(),wrkMast,jarLocDigit);
         }
         return false;
     }
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 bfe6bf7..b502354 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
@@ -8,6 +8,12 @@
 
 @Service("wrkMastExecuteService")
 public class WrkMastExecuteServiceImpl extends ServiceImpl<WrkMastExecuteMapper, WrkMastExecute> implements WrkMastExecuteService {
+
+    @Override
+    public WrkMastExecute getWrkMastByWrkNo(Long wrkNo) {
+        return this.baseMapper.getWrkMastByWrkNo(wrkNo);
+    }
+
     @Override
     public Integer getWrkMastByJarIdCount(Integer jarId) {
         return this.baseMapper.getWrkMastByJarIdCount(jarId);
diff --git a/src/main/java/com/zy/core/enums/JarModeType.java b/src/main/java/com/zy/core/enums/JarModeType.java
index 9229395..d3570fd 100644
--- a/src/main/java/com/zy/core/enums/JarModeType.java
+++ b/src/main/java/com/zy/core/enums/JarModeType.java
@@ -4,10 +4,11 @@
 
     NONE(-1, "绂荤嚎"),
     STOP(0, "绂荤嚎"),
-    HAND(1, "鎵嬪姩"),
-    HALF_AUTO(2, "鑷姩"),
-    AUTO(3, "鍏朵粬"),
-    AUTO2(100, "鍏跺畠"),
+//    HAND(1, "鎵嬪姩"),
+    HALF_AUTO(1, "鎵嬪姩"),
+    AUTO(2, "鑷姩"),
+    OTHER(3, "鍏朵粬"),
+    OTHER2(100, "鍏跺畠"),
     ;
 
     public Integer id;
diff --git a/src/main/resources/mapper/BasJarMapper.xml b/src/main/resources/mapper/BasJarMapper.xml
index 0b91213..bb45963 100644
--- a/src/main/resources/mapper/BasJarMapper.xml
+++ b/src/main/resources/mapper/BasJarMapper.xml
@@ -19,6 +19,11 @@
         <result column="jar_mode" property="jarMode" />
         <result column="right_in_enable" property="rightInEnable" />
         <result column="right_out_enable" property="rightOutEnable" />
+        <result column="enter_ste_no" property="enterSteNo" />
+        <result column="out_ste_id" property="outSteId" />
+        <result column="enter_rgv_id" property="enterRgvId" />
+        <result column="out_rgv_id" property="outRgvId" />
+        <result column="burial" property="burial" />
 
     </resultMap>
 
diff --git a/src/main/resources/mapper/BasJarMastMapper.xml b/src/main/resources/mapper/BasJarMastMapper.xml
index 3e23bd0..7990a38 100644
--- a/src/main/resources/mapper/BasJarMastMapper.xml
+++ b/src/main/resources/mapper/BasJarMastMapper.xml
@@ -21,14 +21,22 @@
         <result column="modi_time" property="modiTime" />
         <result column="appe_time" property="appeTime" />
         <result column="jar_loc_digit" property="jarLocDigit" />
+        <result column="burial" property="burial" />
 
     </resultMap>
+
+    <select id="getJarMastByWrkNo" resultMap="BaseResultMap">
+        select top 1 * from asr_bas_jar_mast
+        where 1=1
+          and wrk_no = #{wrkNo}
+        order by jar_loc_digit desc
+    </select>
 
     <select id="getJarMastByJarId" resultMap="BaseResultMap">
         select * from asr_bas_jar_mast
         where 1=1
         and jar_id = #{jarId}
-        order by jar_loc_digit
+        order by jar_loc_digit desc
     </select>
 
     <select id="getJarMastByJarIdMax" resultMap="BaseResultMap">
@@ -54,29 +62,29 @@
     <select id="selectJarMastOperation1" resultType="Integer">
         select count(1) from asr_bas_jar_mast
         where 1=1
-        and jar_id = #{jarId}
-        and wrk_sts
+          and jar_id = #{jarId}
+          and wrk_sts in (0,1,2,3)
     </select>
 
     <select id="selectJarMastOperation2" resultType="Integer">
         select count(1) from asr_bas_jar_mast
         where 1=1
           and jar_id = #{jarId}
-          and wrk_sts
+          and wrk_sts in (4,5,6,7)
     </select>
 
     <select id="selectJarMastOperation3" resultType="Integer">
         select count(1) from asr_bas_jar_mast
         where 1=1
           and jar_id = #{jarId}
-          and wrk_sts
+          and wrk_sts in (0,1,2,3)
     </select>
 
     <select id="selectJarMastOperation4" resultType="Integer">
         select count(1) from asr_bas_jar_mast
         where 1=1
           and jar_id = #{jarId}
-          and wrk_sts
+          and wrk_sts in (0,1,2,3)
     </select>
 
 </mapper>

--
Gitblit v1.9.1