From f30358a20ae9a74ee7f6c604a8d102c1b9b24659 Mon Sep 17 00:00:00 2001 From: lsh <lsh123456> Date: 星期二, 25 六月 2024 16:24:26 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java | 21 + src/main/java/com/zy/asrs/service/BasJarService.java | 4 src/main/java/com/zy/core/thread/JarThread.java | 160 +++++++-- src/main/resources/mapper/BasJarMapper.xml | 15 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 224 ++++++++++++- src/main/java/com/zy/asrs/mapper/BasJarMapper.java | 3 src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java | 9 src/main/java/com/zy/core/enums/SteTaskModeType.java | 103 +----- src/main/java/com/zy/asrs/entity/BasJar.java | 12 src/main/resources/mapper/WrkMastExecuteMapper.xml | 18 + src/main/java/com/zy/asrs/entity/WrkMastExecute.java | 4 src/main/java/com/zy/core/enums/JarTaskModeType.java | 14 src/main/java/com/zy/core/model/protocol/StaProtocol.java | 2 src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java | 4 src/main/java/com/zy/core/model/command/SteCommand.java | 101 +++--- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 1 src/main/java/com/zy/core/thread/SteThread.java | 86 ++--- src/main/java/com/zy/asrs/service/WrkMastExecuteService.java | 12 src/main/java/com/zy/asrs/entity/BasJarMast.java | 6 src/main/java/com/zy/core/MainProcess.java | 2 src/main/java/com/zy/core/model/command/JarCommand.java | 16 src/main/java/com/zy/core/thread/SiemensDevpThread.java | 104 +++++- src/main/java/com/zy/asrs/utils/SteAndJarUtil.java | 18 + 23 files changed, 631 insertions(+), 308 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/BasJar.java b/src/main/java/com/zy/asrs/entity/BasJar.java index c24010d..6c9e7de 100644 --- a/src/main/java/com/zy/asrs/entity/BasJar.java +++ b/src/main/java/com/zy/asrs/entity/BasJar.java @@ -130,22 +130,22 @@ * 鍑虹綈灏忚溅 */ @ApiModelProperty(value= "鍑虹綈灏忚溅") - @TableField("out_ste_id") - private Integer outSteId; + @TableField("out_ste_no") + private Integer outSteNo; /** * 鍏ョ綈RGV */ @ApiModelProperty(value= "鍏ョ綈RGV") - @TableField("enter_rgv_id") - private Integer enterRgvId; + @TableField("enter_rgv_no") + private Integer enterRgvNo; /** * 鍑虹綈RGV */ @ApiModelProperty(value= "鍑虹綈RGV") - @TableField("out_rgv_id") - private Integer outRgvId; + @TableField("out_rgv_no") + private Integer outRgvNo; /** * 鍐峰嵈 diff --git a/src/main/java/com/zy/asrs/entity/BasJarMast.java b/src/main/java/com/zy/asrs/entity/BasJarMast.java index f39f4bd..c8ab673 100644 --- a/src/main/java/com/zy/asrs/entity/BasJarMast.java +++ b/src/main/java/com/zy/asrs/entity/BasJarMast.java @@ -185,9 +185,9 @@ this.jarRegin = jar.getRegion(); this.status = 0; this.enterSteNo = jar.getEnterSteNo(); - this.outSteId = jar.getOutSteId(); - this.enterRgvId = jar.getEnterRgvId();; - this.outRgvId = jar.getOutRgvId();; + this.outSteId = jar.getOutSteNo(); + this.enterRgvId = jar.getEnterRgvNo();; + this.outRgvId = jar.getOutRgvNo();; this.ioTime = wrkMast.getIoTime(); this.modiTime = now; this.appeTime = now; diff --git a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java index f099c91..ab3248a 100644 --- a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java +++ b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java @@ -140,9 +140,9 @@ private Integer wrkSts; /** - * 浠诲姟绫诲瀷 0: 鏈煡 1: 寮�闂� 2: 鍏抽棬 3: 鍏ョ~鍖栫綈 4: 鍏ュ喎鍗存Ы 5: 绌挎杞﹁繘鍐峰嵈妲� 6: 绌挎杞︾寮�鍐峰嵈妲� 7: 鍑哄喎鍗存Ы + * 浠诲姟绫诲瀷 0: 鏈煡 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬 5: 鍏ョ~鍖栫綈 6: 鍏ュ喎鍗存Ы 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲� 9: 鍑哄喎鍗存Ы 10锛欰=>B 11:B=>A */ - @ApiModelProperty(value= "浠诲姟绫诲瀷 0: 鏈煡 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬 5: 鍏ョ~鍖栫綈 6: 鍏ュ喎鍗存Ы 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲� 9: 鍑哄喎鍗存Ы ") + @ApiModelProperty(value= "浠诲姟绫诲瀷 0: 鏈煡 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬 5: 鍏ョ~鍖栫綈 6: 鍏ュ喎鍗存Ы 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲� 9: 鍑哄喎鍗存Ы 10锛欰=>B 11:B=>A ") @TableField("io_type") private Integer ioType; diff --git a/src/main/java/com/zy/asrs/mapper/BasJarMapper.java b/src/main/java/com/zy/asrs/mapper/BasJarMapper.java index 4c841c4..4d38599 100644 --- a/src/main/java/com/zy/asrs/mapper/BasJarMapper.java +++ b/src/main/java/com/zy/asrs/mapper/BasJarMapper.java @@ -3,10 +3,13 @@ import com.zy.asrs.entity.BasJar; 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 BasJarMapper extends BaseMapper<BasJar> { + BasJar selectByJarNo(@Param("jarNo") Integer jarNo); + } diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java index 810ebd6..ba97d72 100644 --- a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java +++ b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java @@ -6,12 +6,21 @@ import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; + @Mapper @Repository public interface WrkMastExecuteMapper extends BaseMapper<WrkMastExecute> { WrkMastExecute getWrkMastByWrkNo(@Param("wrkNo") Long wrkNo); + List<WrkMastExecute> getWrkMastByJarId(@Param("jarId") Integer jarId); + + List<WrkMastExecute> sselectWrkMastExecuteByType(@Param("type") Integer type); + + List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(@Param("type")Integer type,@Param("ioType")Integer ioType); + + Integer getWrkMastByJarIdCount(@Param("jarId") Integer jarId); } diff --git a/src/main/java/com/zy/asrs/service/BasJarService.java b/src/main/java/com/zy/asrs/service/BasJarService.java index 54a383f..2787a98 100644 --- a/src/main/java/com/zy/asrs/service/BasJarService.java +++ b/src/main/java/com/zy/asrs/service/BasJarService.java @@ -3,6 +3,10 @@ import com.zy.asrs.entity.BasJar; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + public interface BasJarService extends IService<BasJar> { + BasJar selectByJarNo(Integer jarNo); + } diff --git a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java index 1049822..50bd6ef 100644 --- a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java +++ b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java @@ -3,10 +3,18 @@ import com.zy.asrs.entity.WrkMastExecute; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + public interface WrkMastExecuteService extends IService<WrkMastExecute> { - WrkMastExecute getWrkMastByWrkNo(Long wrkNo); + WrkMastExecute getWrkMastExecuteByWrkNo(Long wrkNo); - Integer getWrkMastByJarIdCount(Integer jarId); + List<WrkMastExecute> getWrkMastExecuteByJarNo(Integer jarId); + + List<WrkMastExecute> sselectWrkMastExecuteByType(Integer type); + + List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(Integer type,Integer ioType); + + Integer getWrkMastExecuteByJarIdCount(Integer jarId); } diff --git a/src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java index 7be688b..4cc6601 100644 --- a/src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java @@ -9,4 +9,8 @@ @Service("basJarService") public class BasJarServiceImpl extends ServiceImpl<BasJarMapper, BasJar> implements BasJarService { + @Override + public BasJar selectByJarNo(Integer jarNo){ + return this.baseMapper.selectByJarNo(jarNo); + }; } 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 c8ff8f9..788004e 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -11,10 +11,7 @@ import com.zy.asrs.entity.*; import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; -import com.zy.asrs.utils.CodeDetectionUtil; -import com.zy.asrs.utils.RouteUtils; -import com.zy.asrs.utils.Utils; -import com.zy.asrs.utils.VersionUtils; +import com.zy.asrs.utils.*; import com.zy.common.model.LocTypeDto; import com.zy.common.model.MatDto; import com.zy.common.model.SearchLocParam; @@ -30,9 +27,7 @@ import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.*; import com.zy.core.model.*; -import com.zy.core.model.command.CrnCommand; -import com.zy.core.model.command.LedCommand; -import com.zy.core.model.command.RgvCommand; +import com.zy.core.model.command.*; import com.zy.core.model.cpmmandParam.CrnCommandParam; import com.zy.core.model.protocol.*; import com.zy.core.properties.SlaveProperties; @@ -1167,6 +1162,7 @@ } return false; } + public synchronized boolean crnStnToOutStnTwo(CrnSlave.CrnStn crnStn ,Integer conStation) { try{ Date now = new Date(); @@ -1288,6 +1284,7 @@ } return false; } + public synchronized boolean crnStnToOutStnThree(CrnSlave.CrnStn crnStn ) { try{ // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 @@ -2938,6 +2935,7 @@ } } } + public synchronized boolean storeFinishedExecuteOne(CrnSlave crn) { try{ // 鑾峰彇鍫嗗灈鏈轰俊鎭� @@ -3003,6 +3001,7 @@ } return false; } + public synchronized boolean storeFinishedExecuteTwo(CrnSlave crn) { try{ // 鑾峰彇鍫嗗灈鏈轰俊鎭� @@ -3094,6 +3093,7 @@ } return false; } + public synchronized boolean storeFinishedExecuteThree(CrnSlave crn) { try{ // 鑾峰彇鍫嗗灈鏈轰俊鎭� @@ -3613,6 +3613,7 @@ } } } + /** * 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐� */ @@ -4418,7 +4419,7 @@ public synchronized void jarMastGenerate() { for (JarSlave jarSlave : slaveProperties.getJar()) { try{ - if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){ + if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){ continue; } for(JarSlave.StaStn staStn : jarSlave.getJarInSta()){ @@ -4473,7 +4474,7 @@ if (!Cools.isEmpty(basJarMast)){ continue; } - WrkMastExecute wrkMastExecute = wrkMastExecuteService.getWrkMastByWrkNo(wrkMast.getWrkNo().longValue()); + WrkMastExecute wrkMastExecute = wrkMastExecuteService.getWrkMastExecuteByWrkNo(wrkMast.getWrkNo().longValue()); if (!Cools.isEmpty(wrkMastExecute)){ continue; } @@ -4605,7 +4606,7 @@ for (JarSlave jarSlave : slaveProperties.getJar()) { int i = jarSlave.getId()>2? 1:0; try{ - if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){ + if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){ continue; } @@ -4670,11 +4671,14 @@ public synchronized boolean[] jarWrkMastExecuteGenerateBurial(boolean[] signExecute,Integer sign) { for (JarSlave jarSlave : slaveProperties.getJar()) { + if (jarSlave.getId()<5){ + continue; + } try{ if (signExecute[jarSlave.getId()-5]){ continue; } - if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){ + if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){ signExecute[jarSlave.getId()-5] = true; continue; } @@ -4716,11 +4720,14 @@ public synchronized boolean[] jarWrkMastExecuteGenerateSte(boolean[] signExecute,Integer sign) { for (JarSlave jarSlave : slaveProperties.getJar()) { + if (jarSlave.getId()<5){ + continue; + } try{ if (signExecute[jarSlave.getId()-5]){ continue; } - if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){ + if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){ continue; } @@ -4774,7 +4781,7 @@ */ public synchronized boolean jarWrkMastExecuteGenerate1(JarSlave jarSlave,Integer sign) { try{ - if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){ + if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){ return false; } List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ @@ -4847,13 +4854,13 @@ && !jarOtherProtocol.isLeftDoor() && jarOtherProtocol.leftDoorOpen==0 && jarOtherProtocol.leftDoorClose==0){ if (!jarProtocol.isLeftDoor() && basJarMast.getStatus()==0){ //鐢熸垚寮�闂ㄤ换鍔� OpenTheDoor - if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvId(),1,1})){ + if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),1,1})){ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast)); } return true; } else if (jarProtocol.statusType == JarStatusType.WAITING3 && jarProtocol.isLeftDoor()){ //鐢熸垚鍏ョ~鍖栫綈浠诲姟 - if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvId(),5,1})){ + if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),5,1})){ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast)); } return true; @@ -4881,7 +4888,7 @@ */ public synchronized boolean jarWrkMastExecuteGenerate2(JarSlave jarSlave,Integer sign) { try{ - if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){ + if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){ return false; } List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ @@ -4928,7 +4935,7 @@ && !jarProtocol.isRightDoor() && jarProtocol.isLeftDoor() && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ //鍏宠繘鏂欓棬 - if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMastSign,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvId(),2,1})){ + if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMastSign,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),2,1})){ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMastSign)); } return true; @@ -4950,7 +4957,7 @@ */ public synchronized boolean jarWrkMastExecuteGenerate3(JarSlave jarSlave,Integer sign) { try{ - if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){ + if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){ return false; } List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ @@ -4997,7 +5004,7 @@ && !jarProtocol.isLeftDoor() && !jarProtocol.isRightDoor() && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ //寮�鍑烘枡闂� - if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMastSign,basJar.getJarNo(),new int[]{basJar.getOutSteId(),basJar.getOutRgvId(),3,1})){ + if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMastSign,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),3,1})){ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMastSign)); } return true; @@ -5019,7 +5026,7 @@ */ public synchronized boolean jarWrkMastExecuteGenerate4(JarSlave jarSlave,Integer sign) { try{ - if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){ + if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){ return false; } List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ @@ -5067,7 +5074,7 @@ && !jarProtocol.isLeftDoor() && jarProtocol.isRightDoor() && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ //鍏宠繘鏂欓棬 - if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getJarNo(),new int[]{basJar.getOutSteId(),basJar.getOutRgvId(),3,1})){ + if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),3,1})){ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin)); } return true; @@ -5089,7 +5096,7 @@ */ public synchronized boolean jarWrkMastExecuteGenerate5(JarSlave jarSlave,Integer sign) { try{ - if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){ + if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){ return false; } List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ @@ -5136,7 +5143,7 @@ //闂ㄤ綔涓� 鏃� if (jarProtocol.isAutoing() && jarProtocol.jarErr==0){ //鍏宠繘鏂欓棬 - if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getBurial(),new int[]{basJar.getOutSteId(),basJar.getOutRgvId(),3,1})){ + if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getBurial(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),3,1})){ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin)); } return true; @@ -5154,6 +5161,9 @@ /** * 鍒ゆ柇STE灏忚溅鐘舵�� //瀹屾垚 + * 1锛欰闈� 杩涙枡闈� + * 2锛欱闈� 鍑烘枡闈� + * 3锛氬喎鍗存ЫB闈� 涓婅緭閫佺嚎 */ public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type) { try{ @@ -5201,9 +5211,17 @@ } return false; } - /** - * 鍒ゆ柇RGV灏忚溅鐘舵�� //瀹屾垚 - */ + + /* + * 鍒ゆ柇RGV灏忚溅鐘舵�� //瀹屾垚 + * RGV1;//灏忚溅鏃犺揣绌洪棽 + * RGV2;//灏忚溅杈撻�佺嚎鍙栬揣鍒颁綅 + * RGV3;//灏忚溅杩愯涓� + * RGV3;//灏忚溅杩愯涓� + * RGV4;//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯 鍙�1锛堝乏锛夎揣鐗� + * RGV5;//灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯 鍙�2锛堝彸锛夎揣鐗� + * RGV6;//涓婁綅鏈烘竻闄ゅ钩绉昏溅璧勬枡 + * */ public synchronized boolean jarWrkMastExecuteGenerateRgvStatus(Integer rgvNo,Integer rgvPlcId,Integer type) { try{ //妫�娴婻GV鐘舵�� @@ -5217,6 +5235,7 @@ if (staProtocolRGV == null) { return false; } + return staProtocolRGV.rgvBoolean(type); } catch (Exception e){ log.error("{}鍙稲GV鐘舵�佸垽鏂姸鎬佸紓甯�,寮傚父鍘熷洜={}",rgvNo,e.getMessage()); @@ -5242,6 +5261,46 @@ return false; } + /* + * JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂 + * Action + * */ + public synchronized void jarWrkMastExecuteAction(Integer sign) { + try{ + List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.sselectWrkMastExecuteByTypeAndIoTyper(0, 0); + for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){ + /* + * 浠诲姟绫诲瀷 0: 鏈煡 + * 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬 + * 5: 鍏ョ~鍖栫綈 + * 6: 鍏ュ喎鍗存Ы + * 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲� + * 9: 鍑哄喎鍗存Ы + * 10锛欰=>B 11:B=>A + * */ + switch (wrkMastExecute.getIoType()){ + case 1: + jarWrkMastExecuteActionExecute1(wrkMastExecute,sign); + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + } + } + } catch (Exception e){ + + } + + } + /** * JarWrkMastExecute浠诲姟瀹屾垚 //鏈畬鎴� */ @@ -5253,24 +5312,131 @@ } } + /** + * JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂 //鏈畬鎴� + * 寮�杩涙枡闂� + * 浠诲姟涓嬪彂 + */ + public synchronized boolean jarWrkMastExecuteActionExecute1(WrkMastExecute wrkMastExecute,Integer sign) { + try{ + List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId()); + if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){ + return false; + } + + // 鑾峰彇纭寲缃愪俊鎭� + JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId()); + JarProtocol jarProtocol = jarThread.getJarProtocol(); + if (jarProtocol == null) { + return false; + } + if (jarProtocol.modeType != JarModeType.AUTO){ + return false; + } + + BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo()); + if (Cools.isEmpty(basJar)){ + log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); + return false; + } + + //鍒ゆ柇灏忚溅鐘舵�� + if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){ + return false; + } + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo()); + if (staProtocolRGV == null) { + return false; + } else { + staProtocolRGV = staProtocolRGV.clone(); + } + if (staProtocolRGV == null) { + return false; + } + if (staProtocolRGV.rgvBoolean(1)){ + + //闂ㄤ綔涓� 鏃� + //鑷姩銆佺┖闂层�� 杩涙枡浠叧闂渶鎵撳紑 + if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 + && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ + if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){ + //绉昏蛋 == > 2 + } else { + //鐩存帴寮�闂� + + } + } + return false; + } else { + log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); + return false; + } + + } catch (Exception e){ + log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage()); + } + return false; + } + /* * Rgv 鍔ㄤ綔 * */ - public synchronized boolean jarRgvTake(Integer rgvNo,WrkMastExecute wrkMastExecute,Integer type){ + public synchronized boolean jarRgvTake(WrkMastExecute wrkMastExecute,Integer endRow){ + try { + StaProtocol staProtocol = new StaProtocol(); + staProtocol.setSiteId(wrkMastExecute.getRgvId()); + staProtocol.setEndRow(endRow.shortValue()); + // 涓嬪彂绔欑偣淇℃伅 + if (!MessageQueue.offer(SlaveType.Devp, 2, new Task(9, staProtocol))) { + log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", wrkMastExecute.getRgvId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocol)); + return false; + } + return true; + }catch (Exception e){ + log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛孯gv鍙�={},浠诲姟鏁版嵁={},endRow={}", wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(endRow)); + } return false; } /* * Ste 鍔ㄤ綔 * */ - public synchronized boolean jarSteTake(Integer steNo,WrkMastExecute wrkMastExecute,Integer type){ + public synchronized boolean jarSteTake(WrkMastExecute wrkMastExecute,Integer startLoad,Integer endLoad,SteTaskModeType steTaskModeType,boolean complete){ + try { + SteCommand steCommand = new SteCommand(); + steCommand.setSteNo(wrkMastExecute.getSteId()); + steCommand.setStartLoad(startLoad); + steCommand.setEndLoad(endLoad); + steCommand.setTaskModeType(steTaskModeType); + steCommand.setComplete(complete); + if (!MessageQueue.offer(SlaveType.Ste, steCommand.getSteNo(), new Task(2, steCommand))) { + log.error("绌挎杞te鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={},complete={}", steCommand.getSteNo(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steCommand),complete); + return false; + } + return true; + }catch (Exception e){ + log.error("绌挎杞te鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},complete={}", wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(complete)); + } return false; } /* * Jar 鍔ㄤ綔 * */ - public synchronized boolean jarDoorTake(Integer jarNo,WrkMastExecute wrkMastExecute,Integer type){ + public synchronized boolean jarDoorTake(WrkMastExecute wrkMastExecute,JarTaskModeType jarTaskModeType){ + try{ + JarCommand jarCommand = new JarCommand(); + jarCommand.setJarNo(wrkMastExecute.getJarId()); + jarCommand.setTaskModeType(jarTaskModeType); + if (!MessageQueue.offer(SlaveType.Jar, jarCommand.getJarNo(), new Task(2, jarCommand))) { + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", jarCommand.getJarNo(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarCommand)); + return false; + } + return true; + }catch (Exception e){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarTaskModeType)); + } 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 b502354..072b583 100644 --- a/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java @@ -6,16 +6,33 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + @Service("wrkMastExecuteService") public class WrkMastExecuteServiceImpl extends ServiceImpl<WrkMastExecuteMapper, WrkMastExecute> implements WrkMastExecuteService { @Override - public WrkMastExecute getWrkMastByWrkNo(Long wrkNo) { + public WrkMastExecute getWrkMastExecuteByWrkNo(Long wrkNo) { return this.baseMapper.getWrkMastByWrkNo(wrkNo); } @Override - public Integer getWrkMastByJarIdCount(Integer jarId) { + public List<WrkMastExecute> getWrkMastExecuteByJarNo(Integer jarId) { + return this.baseMapper.getWrkMastByJarId(jarId); + } + + @Override + public List<WrkMastExecute> sselectWrkMastExecuteByType(Integer type) { + return this.baseMapper.sselectWrkMastExecuteByType(type); + } + + @Override + public List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(Integer type,Integer ioType) { + return this.baseMapper.sselectWrkMastExecuteByTypeAndIoTyper(type,ioType); + } + + @Override + public Integer getWrkMastExecuteByJarIdCount(Integer jarId) { return this.baseMapper.getWrkMastByJarIdCount(jarId); } } diff --git a/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java b/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java new file mode 100644 index 0000000..91eb37b --- /dev/null +++ b/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java @@ -0,0 +1,18 @@ +package com.zy.asrs.utils; + +import java.util.regex.Pattern; + +public class SteAndJarUtil { + + /** + * RGV浣嶇疆鏄惁涓庣~鍖栫綈姝e + */ + public static boolean steAndJarNowRow(short steNowRow , Integer jarNo){ + return (steNowRow==(short) 1 && (jarNo == 2 || jarNo == 4)) || (steNowRow==(short)3 && (jarNo == 1 || jarNo == 3)); + } + + public static void main(String[] args) { + + } + +} diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index ed1dee1..399f0e7 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -96,6 +96,8 @@ /************************************JAR璋冨害************************************/ //JarWrkMastExecute浠诲姟鍒涘缓 //纭寲缃� mainService.jarWrkMastExecuteGenerate(k); + + mainService.jarWrkMastExecuteAction(k); //Jar浠诲姟鍒涘缓 //瀹屾垚 mainService.jarMastGenerate(); diff --git a/src/main/java/com/zy/core/enums/JarTaskModeType.java b/src/main/java/com/zy/core/enums/JarTaskModeType.java index a0a324f..55c950f 100644 --- a/src/main/java/com/zy/core/enums/JarTaskModeType.java +++ b/src/main/java/com/zy/core/enums/JarTaskModeType.java @@ -4,10 +4,16 @@ * */ public enum JarTaskModeType { - INIT(1, "宸﹂棬寮�"), // 鍒濆 - OUT_RIGHT(2, "宸﹂棬鍏�"), // 鍙冲嚭搴� - OUT_LEFT(3, "鍙抽棬寮�"), // 宸﹀嚭搴� - IN_RIGHT(4, "鍙抽棬鍏�"), // 鍙冲叆搴� + IN_OPEN_DOOR(1, "杩涙枡寮�闂�"), // 杩涙枡寮�闂� + IN_CLOSE_DOOR(2, "杩涙枡鍏抽棬"), // 杩涙枡鍏抽棬 + OUT_OPEN_DOOR(3, "鍑烘枡寮�闂�"), // 鍑烘枡寮�闂� + OUT_CLOSE_DOOR(4, "鍑烘枡鍏抽棬"), // 鍑烘枡鍏抽棬 + OPEN_THE_DOOR(5, "寮�闂�"), // 寮�闂� + CLOSE_THE_DOOR(6, "鍏抽棬"), // 鍏抽棬 + IN_DOOR_COMPLETE(7, "杩涙枡瀹屾垚"), // 杩涙枡瀹屾垚 + OUT_DOOR_COMPLETE(8, "鍑烘枡瀹屾垚"), // 鍑烘枡瀹屾垚 + OPEN_THE_DOOR_COMPLETE(9, "寮�闂ㄥ畬鎴�"), // 寮�闂ㄥ畬鎴� + CLOSE_THE_DOOR_COMPLETE(10, "鍏抽棬瀹屾垚"), // 鍏抽棬瀹屾垚 ; public Integer id; diff --git a/src/main/java/com/zy/core/enums/SteTaskModeType.java b/src/main/java/com/zy/core/enums/SteTaskModeType.java index 5bf8d9d..b564564 100644 --- a/src/main/java/com/zy/core/enums/SteTaskModeType.java +++ b/src/main/java/com/zy/core/enums/SteTaskModeType.java @@ -8,23 +8,28 @@ public enum SteTaskModeType { INIT(0, "鍒濆"), // 鍒濆 - OUT_RIGHT(1, "鍙冲嚭搴�"), // 鍙冲嚭搴� - OUT_LEFT(2, "宸﹀嚭搴�"), // 宸﹀嚭搴� - IN_RIGHT(4, "鍙冲叆搴�"), // 鍙冲叆搴� - IN_LEFT(3, "宸﹀叆搴�"), // 宸﹀叆搴� - MOVE_LEFT(5, "宸︾Щ搴�"), // 宸︾Щ搴� - MOVE_RIGHT(6, "鍙崇Щ搴�"), // 鍙崇Щ搴� - GO_ORIGIN(8, "鍘诲彸绔�"), // 鍥炲弽鍘熺偣 - BACK_ORIGIN(7, "鍘诲乏绔�"), // 鍥炲師鐐� - WAITING_RIGHT(10, "鍙冲緟鏈�"), // A鐐� - WAITING_LEFT(9, "宸﹀緟鏈�"), // B鐐� -// FIT_LEFT(11, "宸︽惉绉�"), // 宸︽惉绉� -// FIT_RIGHT(12, "鍙虫惉绉�"), // 鍙虫惉绉� - CHARGE_LEFT(13, "宸﹀厖鐢�"), // 宸﹀厖鐢� - CHARGE_RIGHT(14, "鍙冲厖鐢�"), // 宸﹀厖鐢� +// OUT_RIGHT(1, "鍙冲嚭搴�"), // 鍙冲嚭搴� +// OUT_LEFT(2, "宸﹀嚭搴�"), // 宸﹀嚭搴� +// IN_RIGHT(4, "鍙冲叆搴�"), // 鍙冲叆搴� +// IN_LEFT(3, "宸﹀叆搴�"), // 宸﹀叆搴� +// MOVE_LEFT(5, "宸︾Щ搴�"), // 宸︾Щ搴� +// MOVE_RIGHT(6, "鍙崇Щ搴�"), // 鍙崇Щ搴� +// GO_ORIGIN(8, "鍘诲彸绔�"), // 鍥炲弽鍘熺偣 +// BACK_ORIGIN(7, "鍘诲乏绔�"), // 鍥炲師鐐� +// WAITING_RIGHT(10, "鍙冲緟鏈�"), // A鐐� +// WAITING_LEFT(9, "宸﹀緟鏈�"), // B鐐� +//// FIT_LEFT(11, "宸︽惉绉�"), // 宸︽惉绉� +//// FIT_RIGHT(12, "鍙虫惉绉�"), // 鍙虫惉绉� +// CHARGE_LEFT(13, "宸﹀厖鐢�"), // 宸﹀厖鐢� +// CHARGE_RIGHT(14, "鍙冲厖鐢�"), // 宸﹀厖鐢� // CHECK_LEFT(14, "宸︾洏鐐�"), // 宸︾洏鐐� // CHECK_RIGHT(15, "鍙崇洏鐐�"), // 鍙崇洏鐐� - CLOSE_CHARGE(17, "鏂紑鍏呯數"), // 鏂紑鍏呯數 + STE_YDQH_10(10,"鍘熷湴鍙栬揣"), + STE_YDFH_11(11,"鍘熷湴鏀捐揣"), + STE_WFQH_12(12,"寰�杩斿彇璐�"), + STE_WFFH_13(13,"寰�杩旀斁璐�"), + STE_MOVE_14(14,"绉诲姩"), +// CLOSE_CHARGE(17, "鏂紑鍏呯數"), // 鏂紑鍏呯數 ; public Integer id; @@ -56,74 +61,6 @@ } } return null; - } - - public static SteTaskModeType findInByLoc(String locNo, Integer crnNo) { - switch (SteUtils.getGroupRow(locNo, true, crnNo)) { - case 2: - return SteTaskModeType.IN_RIGHT; // 鍙� - case 12: - return SteTaskModeType.IN_LEFT; // 宸� - default: - throw new CoolException("瑙f瀽绌挎杞﹀師鐐瑰畾浣嶅け璐�"); - } - } - - public static SteTaskModeType findOutByLoc(String locNo, Integer crnNo) { - switch (SteUtils.getGroupRow(locNo, false, crnNo)) { - case 2: - return SteTaskModeType.OUT_LEFT; // 鍙� - case 12: - return SteTaskModeType.OUT_RIGHT; // 宸� - default: - throw new CoolException("瑙f瀽绌挎杞﹀師鐐瑰畾浣嶅け璐�"); - } - } - public static SteTaskModeType findOutByLoc2(String locNo, Integer crnNo) { - switch (SteUtils.getGroupRow(locNo, false, crnNo)) { - case 2: - return SteTaskModeType.GO_ORIGIN; // 8 - case 12: - return SteTaskModeType.BACK_ORIGIN; // 7 - default: - throw new CoolException("瑙f瀽绌挎杞﹀師鐐瑰畾浣嶅け璐�"); - } - } - - - // ----------------------------------------------- - - // 鍘诲緟鎼偣 - public static SteTaskModeType findOriginByLoc(SteProtocol steProtocol, Integer crnNo) { - int row = steProtocol.getRow().intValue(); - if (SteUtils.SHUTTLE_GROUP_ROW_LIST.contains(row)) { - return crnNo == 1 ? SteTaskModeType.BACK_ORIGIN : SteTaskModeType.GO_ORIGIN; - } else if (row==13 || row==1){ - return SteTaskModeType.INIT; - } else { - throw new CoolException("瑙f瀽绌挎杞﹀師鐐瑰畾浣嶅け璐�"); - } - } - - public static SteTaskModeType findOriginByLoc(Integer row, Integer crnNo) { - if (SteUtils.SHUTTLE_GROUP_ROW_LIST.contains(row)) { - return crnNo == 1 ? SteTaskModeType.BACK_ORIGIN : SteTaskModeType.GO_ORIGIN; - } else if (row==13 || row==1){ - return SteTaskModeType.INIT; - } else { - throw new CoolException("瑙f瀽绌挎杞﹀師鐐瑰畾浣嶅け璐�"); - } - } - - - public static SteTaskModeType findWaiting(Integer row, Integer crnNo) { - if (SteUtils.SHUTTLE_GROUP_ROW_LIST.contains(row)) { - return crnNo == 1 ? SteTaskModeType.WAITING_LEFT : SteTaskModeType.WAITING_RIGHT; - } else if (row==1||row==13){ - return SteTaskModeType.INIT; - } else { - throw new CoolException("瑙f瀽绌挎杞﹀師鐐瑰畾浣嶅け璐�"); - } } } diff --git a/src/main/java/com/zy/core/model/command/JarCommand.java b/src/main/java/com/zy/core/model/command/JarCommand.java index 95593db..f617c95 100644 --- a/src/main/java/com/zy/core/model/command/JarCommand.java +++ b/src/main/java/com/zy/core/model/command/JarCommand.java @@ -1,7 +1,7 @@ package com.zy.core.model.command; import com.alibaba.fastjson.annotation.JSONField; -import com.zy.core.enums.SteTaskModeType; +import com.zy.core.enums.JarTaskModeType; import lombok.Data; /** @@ -20,14 +20,8 @@ // 浣滀笟绫诲瀷 private Short taskMode = 0; - // 姝e湪鎵ц浠诲姟 - public Boolean execute = Boolean.FALSE; - - // 纭浠诲姟瀹屾垚 - public Boolean complete = Boolean.FALSE; - @JSONField(serialize = false) - private SteTaskModeType taskModeType; + private JarTaskModeType taskModeType; /** * 杈撳叆绌挎杞﹁繍琛岀姝� 1杩愯锛�0绂佹 @@ -36,12 +30,12 @@ public void setTaskMode(Short taskMode){ this.taskMode = taskMode; - this.taskModeType = SteTaskModeType.get(taskModeType); + this.taskModeType = JarTaskModeType.get(taskModeType); } - public void setTaskMode(SteTaskModeType type) { + public void setTaskMode(JarTaskModeType type) { this.taskModeType = type; - this.taskMode = SteTaskModeType.get(type).id.shortValue(); + this.taskMode = JarTaskModeType.get(type).id.shortValue(); } } diff --git a/src/main/java/com/zy/core/model/command/SteCommand.java b/src/main/java/com/zy/core/model/command/SteCommand.java index 08a1ba2..365370e 100644 --- a/src/main/java/com/zy/core/model/command/SteCommand.java +++ b/src/main/java/com/zy/core/model/command/SteCommand.java @@ -16,6 +16,10 @@ // 浠诲姟鍙� private Integer taskNo = 0; + // 璧峰鐐逛綅 + private Integer startLoad = 0; + // 鐩爣鐐逛綅 + private Integer endLoad = 0; // 浣滀笟绫诲瀷 private Short taskMode = 0; @@ -25,62 +29,53 @@ // 纭浠诲姟瀹屾垚 public Boolean complete = Boolean.FALSE; - +// @JSONField(serialize = false) private SteTaskModeType taskModeType; +// +// // 璧峰璁惧鍙� +// private Short startSsbm; +// +// // 鐩殑璁惧鍙� +// private Short endSsbm; +// +// // 鎺у埗妯″紡 0=鑴辨満 1=鑱旀満 +// private Short controlMode; +// +// // 寮�鍚俊鍙� 1-鍚姩 +// private Short open; +// +// // 鍒濆鍖� +// private Short init; +// +// // 澶嶄綅淇″彿 1=澶嶄綅 +// private Boolean reset; +// +// // 鍒犻櫎鎸囦护 1=鍒犻櫎 +// private Boolean delete; +// +// // 鎵樼洏闂磋窛 涓棿鎵樼洏涔嬮棿璺濈 鍗曚綅姣背 +// private Short space; +// +// // 闂磋窛纭 +// private Short spaceYes; +// +// // 鎺掍慨鏀� +// private Short rowModify; +// +// // 鍒椾慨鏀� +// private Short bayModify; +// +// // 灞備慨鏀� +// private Short levModify; +// +// // 淇敼纭 +// private Short modifyYes; - // 鎺� - private Short row; - - // 鍒� - private Short bay; - - // 灞� - private Short lev; - - // 璧峰璁惧鍙� - private Short startSsbm; - - // 鐩殑璁惧鍙� - private Short endSsbm; - - // 鎺у埗妯″紡 0=鑴辨満 1=鑱旀満 - private Short controlMode; - - // 寮�鍚俊鍙� 1-鍚姩 - private Short open; - - // 鍒濆鍖� - private Short init; - - // 澶嶄綅淇″彿 1=澶嶄綅 - private Boolean reset; - - // 鍒犻櫎鎸囦护 1=鍒犻櫎 - private Boolean delete; - - // 鎵樼洏闂磋窛 涓棿鎵樼洏涔嬮棿璺濈 鍗曚綅姣背 - private Short space; - - // 闂磋窛纭 - private Short spaceYes; - - // 鎺掍慨鏀� - private Short rowModify; - - // 鍒椾慨鏀� - private Short bayModify; - - // 灞備慨鏀� - private Short levModify; - - // 淇敼纭 - private Short modifyYes; - - /** - * 杈撳叆绌挎杞﹁繍琛岀姝� 1杩愯锛�0绂佹 - */ - private Short run; +// /** +// * 杈撳叆绌挎杞﹁繍琛岀姝� 1杩愯锛�0绂佹 +// */ +// private Short run; public void setTaskMode(Short taskMode){ this.taskMode = taskMode; diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java index bc4e716..9fd2f8f 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -79,7 +79,7 @@ private boolean barcodeErr; private short endRow;//灏忚溅鐩爣浣� - private short nowRow;//灏忚溅褰撳墠浣� + private short nowRow;//灏忚溅褰撳墠浣� //宸︼細1 涓細 2 鍙筹細3 锛堥潰鏈濆叆鏂欏彛锛� private boolean RGV1;//灏忚溅鏃犺揣绌洪棽 private boolean RGV2;//灏忚溅杈撻�佺嚎鍙栬揣鍒颁綅 private boolean RGV3;//灏忚溅杩愯涓� diff --git a/src/main/java/com/zy/core/thread/JarThread.java b/src/main/java/com/zy/core/thread/JarThread.java index b58c74b..311d53d 100644 --- a/src/main/java/com/zy/core/thread/JarThread.java +++ b/src/main/java/com/zy/core/thread/JarThread.java @@ -20,6 +20,7 @@ import com.zy.core.enums.SlaveType; import com.zy.core.model.JarSlave; import com.zy.core.model.Task; +import com.zy.core.model.command.CrnCommand; import com.zy.core.model.command.JarCommand; import com.zy.core.model.protocol.JarProtocol; import lombok.Data; @@ -150,7 +151,7 @@ jarProtocol.setJarErr((int)siemensS7Net.getByteTransform().TransInt16(result.Content, 14));//寮傚父鐮� jarProtocol.setStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 16));//鐘舵�� - jarProtocol.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, 12) != 2);//鑷姩 + jarProtocol.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, 12) == 2);//鑷姩 // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� BasJarService service = SpringUtils.getBean(BasJarService.class); if (null != service) { @@ -168,6 +169,7 @@ } } catch (Exception e) { // e.printStackTrace(); + log.error(e.getMessage()); OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戣鍙栫~鍖栫綈plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); // News.error("璇诲彇绌挎杞lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); initSte(); @@ -183,41 +185,129 @@ News.error("绌挎杞﹀啓鍏ュ懡浠や负绌�"); return false; } - command.setJarNo(slave.getId()); - OperateResult result = null; - // 寮�濮嬩换鍔� - if (!command.getComplete()) { - //缁勭粐浠诲姟鍓嶏紝鍏堟竻绌哄啓浠诲姟纭浣嶏紝浠ュ強浠诲姟瀹屾垚纭浣� - OperateResult result01 = siemensS7Net.Write("V2000.0", false); - OperateResult result02 = siemensS7Net.Write("V2000.1", false); - // 1.浠诲姟鍙� - OperateResult result0 = siemensS7Net.Write("V998", command.getTaskNo().shortValue()); - try { - Thread.sleep(200); - } catch (InterruptedException e) { - e.printStackTrace(); - } - // 浣滀笟 - if (command.getTaskMode() != 0) { - // 2.浣滀笟 - OperateResult result1 = siemensS7Net.Write("V1000", command.getTaskMode()); - // 3.纭寮�濮嬩换鍔� - if (result0.IsSuccess && result1.IsSuccess) { - result = siemensS7Net.Write("V2000.0", true); - } - } - // 浠诲姟瀹屾垚 - } else { - siemensS7Net.Write("V998", (short) 0); - siemensS7Net.Write("V1000", (short) 0); - siemensS7Net.Write("V2000.0", false); - result = siemensS7Net.Write("V2000.1", true); + command.setJarNo(slave.getId()); + OperateResult result1 = null; + String resultV1 = ""; + short resultS1 = 0; + OperateResult result2 = null; + String resultV2 = null; + short resultS2 = 0; + + switch (command.getTaskMode()){ + case 1: + case 2: + case 3: + case 4: + return false; + case 5://寮�闂� + resultV1 = "V318"; + resultV2 = "V320"; + resultS1 = (short)1; + resultS2 = (short)1; + break; + case 6://鍏抽棬 + resultV1 = "V322"; + resultV2 = "V324"; + resultS1 = (short)1; + resultS2 = (short)1; + break; + case 7: + case 8: + return false; + case 9: + resultV1 = "V318"; + resultV2 = "V320"; + break; + case 10: + resultV1 = "V322"; + resultV2 = "V324"; + break; + default: + return false; } + + result1 = siemensS7Net.Write(resultV1, resultS1); + result2 = siemensS7Net.Write(resultV2, resultS2); + //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + int writeCount = 1; + do { + try{ + if(!result1.IsSuccess){ + log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); + result1 = siemensS7Net.Write(resultV1, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2); + if (resultRead1.IsSuccess) { + short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead1.Content, 0); + if (transInt16 == resultS1 || transInt16 == (short) 2 || transInt16 == (short) 3){ + break; + } else { + log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); + result1 = siemensS7Net.Write(resultV1, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + } else { + log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); + result1 = siemensS7Net.Write(resultV1, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + }catch (Exception e){ + log.error("鍐欏叆纭寲缃恜lc鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); + } + writeCount++; + } while (writeCount<6); + + writeCount = 1; + do { + try{ + if(!result2.IsSuccess){ + log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); + result2 = siemensS7Net.Write(resultV2, resultS2); + Thread.sleep(100); + writeCount++; + continue; + } + OperateResultExOne<byte[]> resultRead2 = siemensS7Net.Read(resultV2, (short) 2); + if (resultRead2.IsSuccess) { + short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead2.Content, 0); + if (transInt16 == resultS1 || transInt16 == (short) 3){ + break; + } else { + log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); + result2 = siemensS7Net.Write(resultV2, resultS2); + Thread.sleep(100); + writeCount++; + continue; + } + } else { + log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); + result2 = siemensS7Net.Write(resultV2, resultS2); + Thread.sleep(100); + writeCount++; + continue; + } + }catch (Exception e){ + log.error("鍐欏叆纭寲缃恜lc鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); + } + writeCount++; + } while (writeCount<6); try { // 鏃ュ織璁板綍 - if (!command.getComplete() && command.getTaskMode() != 0) { + if (command.getTaskMode() != 0) { BasSteOptService bean = SpringUtils.getBean(BasSteOptService.class); if (null != bean) { BasSteOpt basSteOpt = new BasSteOpt( @@ -241,19 +331,15 @@ bean.insert(basSteOpt); } } - } catch (Exception ignore) {} - if (result != null && result.IsSuccess) { + if (result1 != null && result1.IsSuccess && result2 != null && result2.IsSuccess ) { News.info("纭寲缃愬懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSONString(command)); OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 纭寲缃愬懡浠や笅鍙戯細 {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSONString(command))); - try { Thread.sleep(500); - } catch (Exception e){ - - } + } catch (Exception e){ } return true; } else { OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戝啓鍏ョ~鍖栫綈plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 12cc3ad..0929642 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -59,6 +59,7 @@ @SuppressWarnings("InfiniteLoopStatement") public void run() { this.connect(); + sign = System.currentTimeMillis(); while (isRunning) { try { int step = 1; diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index f3acc49..cd891bc 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -197,6 +197,9 @@ Thread.sleep(400); write((StaProtocol)task.getData()); break; + case 9: + write9((StaProtocol)task.getData()); + break; default: break; } @@ -316,27 +319,6 @@ } } } -// Thread.sleep(200); -// OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.100", (short) (staNoSize * 2)); -// if (result1.IsSuccess) { -// for (int i = 0; i < staNoSize; i++) { -// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 -// boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1); -// StaProtocol staProtocol = station.get(siteId); -// staProtocol.setAutoing(status[0]); // 鑷姩 -// staProtocol.setLoading(status[1]); // 鏈夌墿 -// staProtocol.setInEnable(status[2]); // 鍙叆 -// staProtocol.setOutEnable(status[3]);// 鍙嚭 -// staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿 -// staProtocol.setFullPlt(status[5]); // 婊℃墭鐩� -// staProtocol.setHigh(status[6]); // 楂樺簱浣� -// staProtocol.setLow(status[7]); // 浣庡簱浣� -// -// if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { -// staProtocol.setPakMk(true); -// } -// } -// } //鏉$爜鎵弿鍣� Thread.sleep(200); @@ -555,6 +537,86 @@ log.info("杈撻�佺嚎鍛戒护涓嬪彂鐮佸灈瀹屾垚 缁欒緭閫佸浣� [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol)); } } + + /** + * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏� + */ + private void write9(StaProtocol staProtocol) throws InterruptedException { + if (null == staProtocol) { + return; + } + short resultS1 = staProtocol.getEndRow(); + OperateResult result1 = null; + String resultV1 = ""; + switch (staProtocol.getSiteId()){ + case 623: + resultV1 = "1800"; + break; + case 624: + resultV1 = "1806"; + break; + case 625: + resultV1 = "1812"; + break; + case 626: + resultV1 = "1818"; + break; + default: + return; + } + result1 = siemensS7Net.Write(resultV1, resultS1); + //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + int writeCount = 1; + do { + try{ + if(!result1.IsSuccess){ + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result1 = siemensS7Net.Write(resultV1, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2); + if (resultRead1.IsSuccess) { + short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead1.Content, 0); + if (transInt16 == resultS1 || transInt16 == (short) 2 || transInt16 == (short) 3){ + break; + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result1 = siemensS7Net.Write(resultV1, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result1 = siemensS7Net.Write(resultV1, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + }catch (Exception e){ + log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); + } + writeCount++; + } while (writeCount<6); + + if (!result1.IsSuccess) { + staProtocol = station.get(staProtocol.getSiteId()); + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol))); + log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol)); + } else { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); + log.info("杈撻�佺嚎鍛戒护涓嬪彂鐮佸灈瀹屾垚 缁欒緭閫佸浣� [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol)); + } + } + // 鏇存柊鍏ュ嚭搴撴ā寮� private void updateIoMode() throws InterruptedException { if (this.ioModeOf2F != IoModeType.NONE) { diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java index 22155d8..41ef4d8 100644 --- a/src/main/java/com/zy/core/thread/SteThread.java +++ b/src/main/java/com/zy/core/thread/SteThread.java @@ -163,16 +163,16 @@ OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); - // 澶嶄綅淇″彿 - if (steProtocol.getWaiting()) { - if (resetFlag) { - SteCommand steCommand = new SteCommand(); - steCommand.setComplete(true); - if (write(steCommand) && confirmPos()) { - resetFlag = false; - } - } - } +// // 澶嶄綅淇″彿 +// if (steProtocol.getWaiting()) { +// if (resetFlag) { +// SteCommand steCommand = new SteCommand(); +// steCommand.setComplete(true); +// if (write(steCommand) && confirmPos()) { +// resetFlag = false; +// } +// } +// } // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� BasSteService service = SpringUtils.getBean(BasSteService.class); @@ -223,8 +223,10 @@ //缁勭粐浠诲姟鍓嶏紝鍏堟竻绌哄啓浠诲姟纭浣嶏紝浠ュ強浠诲姟瀹屾垚纭浣� siemensS7Net.Write("DB100.0", (short) 0);//璁惧鍙� siemensS7Net.Write("DB100.2", (short) 0);//浠诲姟鍙� - siemensS7Net.Write("DB100.12.0", false);//浠诲姟寮�濮嬬‘璁や綅 - siemensS7Net.Write("DB100.12.1", false);//浠诲姟瀹屾垚纭 + siemensS7Net.Write("DB100.12", (short) 0);//璧峰鐐逛綅 + siemensS7Net.Write("DB100.14", (short) 0);//鐩殑鐐逛綅 + siemensS7Net.Write("DB100.16.0", false);//浠诲姟寮�濮嬬‘璁や綅 + siemensS7Net.Write("DB100.16.1", false);//浠诲姟瀹屾垚纭 // 1.浠诲姟鍙� OperateResult result0 = siemensS7Net.Write("DB100.2", command.getTaskNo().shortValue()); try { @@ -236,9 +238,11 @@ if (command.getTaskMode() != 0) { // 2.浣滀笟 OperateResult result1 = siemensS7Net.Write("DB100.4", command.getTaskMode()); + OperateResult result2 = siemensS7Net.Write("DB100.12", (short) command.getStartLoad().shortValue());//璧峰鐐逛綅 + OperateResult result3 = siemensS7Net.Write("DB100.14", (short) command.getEndLoad().shortValue());//鐩殑鐐逛綅 // 3.纭寮�濮嬩换鍔� - if (result0.IsSuccess && result1.IsSuccess) { - result = siemensS7Net.Write("DB100.12.0", true); + if (result0.IsSuccess && result1.IsSuccess && result2.IsSuccess && result3.IsSuccess) { + result = siemensS7Net.Write("DB100.16.0", true); try { Thread.sleep(300); @@ -249,11 +253,11 @@ } // 浠诲姟瀹屾垚 } else { - siemensS7Net.Write("DB100.2", (short) 0);//浠诲姟鍙� - siemensS7Net.Write("DB100.4.0", (short) 0);//浠诲姟绫诲瀷 - siemensS7Net.Write("DB100.12.0", false);//浠诲姟寮�濮嬬‘璁や綅 +// siemensS7Net.Write("DB100.2", (short) 0);//浠诲姟鍙� +// siemensS7Net.Write("DB100.4.0", (short) 0);//浠诲姟绫诲瀷 + siemensS7Net.Write("DB100.16.0", false);//浠诲姟寮�濮嬬‘璁や綅 - result = siemensS7Net.Write("DB100.12.1", true);//浠诲姟瀹屾垚纭 + result = siemensS7Net.Write("DB100.16.1", true);//浠诲姟瀹屾垚纭 } try { @@ -286,13 +290,6 @@ } catch (Exception ignore) {} if (result != null && result.IsSuccess) { - // 缁存姢鏁版嵁搴撴帓鍒楀眰 - if (!steProtocol.getWaiting()) { - if (!Cools.isEmpty(command.getRow(), command.getBay(), command.getLev())) { - this.modifyPos(command.getRow().intValue(), command.getBay().intValue(), command.getLev().intValue()); - } - } - News.info("绌挎杞﹀懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); return true; @@ -300,13 +297,6 @@ OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戝啓鍏ョ┛姊溅plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); News.error("鍐欏叆绌挎杞lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); return false; - } - } - - public void modifyPos(Integer row, Integer bay, Integer lev) { - BasSteService service = SpringUtils.getBean(BasSteService.class); - if (!service.updatePos(this.slave.getId(), row, bay, lev)) { - News.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev); } } @@ -367,21 +357,21 @@ /******************************************************************************************/ /**************************************** 娴嬭瘯涓撶敤 *****************************************/ /*****************************************************************************************/ - public static void main(String[] args) throws InterruptedException { - SteSlave slave = new SteSlave(); - slave.setId(1); - slave.setIp("192.168.2.1"); - slave.setPort(502); - SteThread thread = new SteThread(slave); - thread.connect(); - thread.readStatus(); - System.out.println(JSON.toJSONString(thread.steProtocol)); - - // 绌挎杞﹁繍琛岀姝� - SteCommand command = new SteCommand(); - command.setRun((short)0); - thread.write(command); - - } +// public static void main(String[] args) throws InterruptedException { +// SteSlave slave = new SteSlave(); +// slave.setId(1); +// slave.setIp("192.168.2.1"); +// slave.setPort(502); +// SteThread thread = new SteThread(slave); +// thread.connect(); +// thread.readStatus(); +// System.out.println(JSON.toJSONString(thread.steProtocol)); +// +// // 绌挎杞﹁繍琛岀姝� +// SteCommand command = new SteCommand(); +//// command.setRun((short)0); +// thread.write(command); +// +// } } diff --git a/src/main/resources/mapper/BasJarMapper.xml b/src/main/resources/mapper/BasJarMapper.xml index bb45963..59d31b4 100644 --- a/src/main/resources/mapper/BasJarMapper.xml +++ b/src/main/resources/mapper/BasJarMapper.xml @@ -4,7 +4,7 @@ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasJar"> - <result column="jar_no" property="jarNo" /> + <id column="jar_no" property="jarNo" /> <result column="region" property="region" /> <result column="jar_code" property="jarCode" /> <result column="sta_no" property="staNo" /> @@ -20,11 +20,18 @@ <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="out_ste_no" property="outSteNo" /> + <result column="enter_rgv_no" property="enterRgvNo" /> + <result column="out_rgv_no" property="outRgvNo" /> <result column="burial" property="burial" /> </resultMap> + <select id="selectByJarNo" resultMap="BaseResultMap"> + select top 1 * from asr_bas_jar + where 1=1 + and jar_no=0 + order by id + </select> + </mapper> diff --git a/src/main/resources/mapper/WrkMastExecuteMapper.xml b/src/main/resources/mapper/WrkMastExecuteMapper.xml index 09c7edf..ca69ed5 100644 --- a/src/main/resources/mapper/WrkMastExecuteMapper.xml +++ b/src/main/resources/mapper/WrkMastExecuteMapper.xml @@ -25,13 +25,27 @@ </resultMap> - <select id="getWrkMastByWrkNo" resultMap="BaseResultMap"> + <select id="getWrkMastExecuteByWrkNo" resultMap="BaseResultMap"> + select top 1 * from jar_wrk_mast_execute + where 1=1 + and jar_id = #{jarId} + </select> + + <select id="getWrkMastExecuteByJarId" resultMap="BaseResultMap"> select * from jar_wrk_mast_execute where 1=1 and jar_id = #{jarId} </select> - <select id="getWrkMastByJarIdCount" resultType="Integer"> + <select id="sselectWrkMastExecuteByType" resultMap="BaseResultMap"> + select * from jar_wrk_mast_execute + where 1=1 + and type = #{type} + and io_type = #{iotype} + and wrk_type = 0; + </select> + + <select id="getWrkMastExecuteByJarIdCount" resultType="Integer"> select count(1) from jar_wrk_mast_execute where 1=1 and jar_id = #{jarId} -- Gitblit v1.9.1