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