From 808d32829a61f6f1de0b989b2c818327d3bf74ef Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期一, 28 四月 2025 09:20:56 +0800 Subject: [PATCH] * --- src/main/java/com/zy/asrs/entity/param/BasCrnpWmsParam.java | 128 +++++ src/main/java/com/zy/asrs/controller/OpenController.java | 81 +++ src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 832 +++++++++++++++++++++-------------- src/main/java/com/zy/asrs/entity/param/BasRgvWmsParam.java | 31 + src/main/resources/application-prod.yml | 192 +++++--- src/main/java/com/zy/core/DevpThread.java | 1 src/main/java/com/zy/asrs/entity/param/CarryParam.java | 16 src/main/java/com/zy/core/model/protocol/StaProtocol.java | 1 src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java | 2 src/main/java/com/zy/core/model/DevpSlave.java | 4 src/main/java/com/zy/asrs/entity/ToWmsDTO.java | 11 src/main/java/com/zy/core/MainProcess.java | 5 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 5 src/main/java/com/zy/core/thread/SiemensDevpThread.java | 18 src/main/java/com/zy/asrs/entity/StaDesc.java | 16 src/main/java/com/zy/asrs/entity/param/WMSAndAGVInterfaceParam.java | 11 16 files changed, 918 insertions(+), 436 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java index 7af2501..408172d 100644 --- a/src/main/java/com/zy/asrs/controller/OpenController.java +++ b/src/main/java/com/zy/asrs/controller/OpenController.java @@ -8,13 +8,18 @@ import com.core.common.R; import com.core.exception.CoolException; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.CarryParam; -import com.zy.asrs.entity.param.TaskOverParam; -import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; -import com.zy.asrs.entity.param.TaskCreateParam; +import com.zy.asrs.entity.param.*; import com.zy.asrs.service.*; +import com.zy.asrs.service.impl.BasCrnErrorServiceImpl; import com.zy.asrs.utils.Utils; import com.zy.common.web.BaseController; +import com.zy.core.CrnThread; +import com.zy.core.cache.SlaveConnection; +import com.zy.core.enums.SlaveType; +import com.zy.core.model.CrnSlave; +import com.zy.core.model.RgvSlave; +import com.zy.core.model.protocol.CrnProtocol; +import com.zy.core.properties.SlaveProperties; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -30,6 +35,8 @@ @RequestMapping("/open") public class OpenController extends BaseController { + @Autowired + private SlaveProperties slaveProperties; @Autowired private OpenService openService; @Autowired @@ -57,6 +64,9 @@ public static final ArrayList<String> APP_KEY_LIST = new ArrayList<String>() {{ add("ea1f0459efc02a79f046f982767939ae"); }}; + @Autowired + private BasCrnErrorServiceImpl basCrnErrorService; + //agv浠诲姟瀹屾垚 @PostMapping("/toAgvTaskOver") @AppAuth(memo = "agv浠诲姟瀹屾垚鎺ュ彛") @@ -314,13 +324,16 @@ //浠诲姟涓嬪彂鎺ュ彛 @PostMapping("/outboundTaskSend") +// @PostMapping("/taskCreate") +// @AppAuth(memo = "浠诲姟涓嬪彂鎺ュ彛") @Transactional public R outboundTaskSend(@RequestHeader String appkey, - @RequestBody List<CarryParam> params, + @RequestBody List<CarryParam> params,//涓埅涓嬪彂 1锛氬嚭搴擄紝2锛氱Щ搴� 3锛氬叆搴� HttpServletRequest request) { - //auth(appkey, params, request); - List<WMSAndAGVInterfaceParam> params1 =new ArrayList<>(); + auth(appkey, params, request); +// List<WMSAndAGVInterfaceParam> params1 =new ArrayList<>(); for (CarryParam param:params){ + param.updateIoTyoe(param.getIoType());//涓埅涓嬪彂 1锛氬嚭搴擄紝2锛氱Щ搴� 3锛氬叆搴� ====杞崲涓�====> 1锛氬叆搴擄紝2锛氬嚭搴擄紝3锛氱Щ搴� if (Cools.isEmpty(param)){ return R.error("鍙傛暟涓虹┖锛�"); @@ -351,7 +364,18 @@ R r = null; - if(param.getIoType() == 2){ + if(param.getIoType() == 1){ + //鍏ュ簱浠诲姟鍒涘缓 + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() + .eq("type_no",1) + .eq("crn_no",locMast.getCrnNo()) + .eq("stn_no",param.getStartPoint())); + if(Cools.isEmpty(staDesc)){ + return R.error("鍏ュ簱璺姴涓嶅瓨鍦�"); + } + r = openService.taskCreate(new TaskCreateParam(param,staDesc.getCrnNo())); + + }else if(param.getIoType() == 2){ //鍑哄簱浠诲姟鍒涘缓 StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() .eq("type_no",2) @@ -362,6 +386,13 @@ } r = openService.taskCreate(new TaskCreateParam(param,staDesc.getCrnNo())); }else if (param.getIoType() == 3){ + LocMast locMast2 = locMastService.selectByLocNo(param.getTargetPoint()); + if(Cools.isEmpty(locMast2)){ + return R.error("鐩爣搴撲綅鏃犳硶鎵惧埌"); + } + if (!locMast2.getCrnNo().equals(locMast.getCrnNo())){ + return R.error("璧峰搴撲綅涓庣洰鏍囧簱浣嶄笉鍐嶅悓涓�宸烽亾"); + } //绉诲簱浠诲姟鍒涘缓 r = openService.taskCreate(new TaskCreateParam(param,locMast.getCrnNo())); } @@ -383,9 +414,10 @@ //浠诲姟鍙栨秷鎺ュ彛 @PostMapping("/taskCancel") public R taskCancel(@RequestHeader String appkey, - @RequestBody WMSAndAGVInterfaceParam param, + @RequestBody WMSAndAGVInterfaceParam param,//涓埅涓嬪彂 1锛氬嚭搴擄紝2锛氱Щ搴� 3锛氬叆搴� 1锛氬彇娑� 2 瀹屾垚 HttpServletRequest request) { auth(appkey, param, request); +// param.updateTaskStatus(param.getTaskStatus()); if (Cools.isEmpty(param)){ return R.error("鍙傛暟涓虹┖锛�"); } else if (Cools.isEmpty(param.getTaskNo())){ @@ -446,10 +478,35 @@ for (BasDevp basDevp:basDevps){ list.add(basDevp); } - List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>()); - for (BasCrnp basCrnp:basCrnps){ - list.add(basCrnp); + List<BasCrnpWmsParam> basCrnpWmsParamList = new ArrayList<>(); + for (CrnSlave crn : slaveProperties.getCrn()) { + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol == null) { continue; } + BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); + if (basCrnp == null) { + log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId()); + continue; + } + BasCrnpWmsParam basCrnpWmsParam = new BasCrnpWmsParam(); + basCrnpWmsParam.sync(basCrnp); + + basCrnpWmsParam.setCrnNoH(crnProtocol.getLaneNo()); + basCrnpWmsParamList.add(basCrnpWmsParam); + + BasCrnError basCrnError = basCrnErrorService.selectById(basCrnp.getCrnErr()); + basCrnpWmsParam.setCrnErrM(basCrnError.getErrName()); + + list.add(basCrnpWmsParam); } + for (RgvSlave rgvSlave : slaveProperties.getRgv()) { + + } +// List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>()); +// for (BasCrnp basCrnp:basCrnps){ +// list.add(basCrnp); +// } return R.ok(list); } diff --git a/src/main/java/com/zy/asrs/entity/StaDesc.java b/src/main/java/com/zy/asrs/entity/StaDesc.java index 942b614..e52ee3a 100644 --- a/src/main/java/com/zy/asrs/entity/StaDesc.java +++ b/src/main/java/com/zy/asrs/entity/StaDesc.java @@ -69,14 +69,6 @@ private Integer crnNo; /** - * 鍫嗗灈鏈哄彿 - */ - @ApiModelProperty(value= "鍫嗗灈鏈哄彿") - @TableId(value = "LANE_NO", type = IdType.INPUT) - @TableField("LANE_NO") - private Integer laneNo; - - /** * 鍫嗗灈鏈虹珯鐐� */ @ApiModelProperty(value= "鍫嗗灈鏈虹珯鐐�") @@ -307,13 +299,5 @@ return ""; } return basWrkIotype.getIoDesc(); - } - - public Integer getLaneNo() { - return laneNo; - } - - public void setLaneNo(Integer laneNo) { - this.laneNo = laneNo; } } diff --git a/src/main/java/com/zy/asrs/entity/ToWmsDTO.java b/src/main/java/com/zy/asrs/entity/ToWmsDTO.java index ae15179..15d9b12 100644 --- a/src/main/java/com/zy/asrs/entity/ToWmsDTO.java +++ b/src/main/java/com/zy/asrs/entity/ToWmsDTO.java @@ -23,11 +23,18 @@ private Integer stationCode; //搴撲綅绫诲瀷 private Integer locType; + private Integer status;//绌烘弧鐗� - public ToWmsDTO(String barcode, Integer stationCode, Integer locType){ +// public ToWmsDTO(String barcode, Integer stationCode, Integer locType){ +// this.barcode = barcode; +// this.stationCode = stationCode; +// this.locType = locType; +// } + + public ToWmsDTO(String barcode, Integer stationCode, Integer status){ this.barcode = barcode; this.stationCode = stationCode; - this.locType = locType; + this.status = status; } public ToWmsDTO(){ diff --git a/src/main/java/com/zy/asrs/entity/param/BasCrnpWmsParam.java b/src/main/java/com/zy/asrs/entity/param/BasCrnpWmsParam.java new file mode 100644 index 0000000..a130d5d --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/BasCrnpWmsParam.java @@ -0,0 +1,128 @@ +package com.zy.asrs.entity.param; +import com.zy.common.utils.Synchro; +import lombok.Data; + +import java.util.Date; + +@Data +public class BasCrnpWmsParam { + + /** + * 缂栧彿 + */ + private Integer crnNo; + + private Integer crnNoH; + + /** + * 鍙叆 + */ + private String inEnable; + + /** + * 鍙嚭 + */ + private String outEnable; + + /** + * 鐘舵�� + */ + private Integer crnSts; + + /** + * 宸ヤ綔鍙� + */ + private Integer wrkNo; + + /** + * 寮傚父鐮� + */ + private Long crnErr; + private String crnErrM; + + /** + * 婧愬簱浣� + */ + private String frmLocno; + + /** + * 婧愮珯 + */ + private Integer frmSta; + + /** + * 鐩爣绔� + */ + private Integer toSta; + + /** + * 鐩爣搴撲綅 + */ + private String toLocno; + + /** + * 鍒涘缓鑰� + */ + private Long appeUser; + + /** + * 鍒涘缓鏃堕棿 + */ + private Date appeTime; + + /** + * 淇敼浜哄憳 + */ + private Long modiUser; + + /** + * 淇敼鏃堕棿 + */ + private Date modiTime; + + private String hpMk; + + private String retrieveMk; + + private String ctlHp; + + private String ctlRest; + + private String empIn; + + private Integer tankQty; + + private Integer tankQty1; + + public BasCrnpWmsParam() {} + + public BasCrnpWmsParam(Integer crnNo, Integer crnNoH, String inEnable, String outEnable, Integer crnSts, Integer wrkNo, Long crnErr, String frmLocno, Integer frmSta, Integer toSta, String toLocno, Long appeUser, Date appeTime, Long modiUser, Date modiTime, String hpMk, String retrieveMk, String ctlHp, String ctlRest, String empIn, Integer tankQty, Integer tankQty1) { + this.crnNo = crnNo; + this.crnNoH = crnNoH; + this.inEnable = inEnable; + this.outEnable = outEnable; + this.crnSts = crnSts; + this.wrkNo = wrkNo; + this.crnErr = crnErr; + this.frmLocno = frmLocno; + this.frmSta = frmSta; + this.toSta = toSta; + this.toLocno = toLocno; + this.appeUser = appeUser; + this.appeTime = appeTime; + this.modiUser = modiUser; + this.modiTime = modiTime; + this.hpMk = hpMk; + this.retrieveMk = retrieveMk; + this.ctlHp = ctlHp; + this.ctlRest = ctlRest; + this.empIn = empIn; + this.tankQty = tankQty; + this.tankQty1 = tankQty1; + } + + public void sync(Object source) { + Synchro.Copy(source, this); + } + +} diff --git a/src/main/java/com/zy/asrs/entity/param/BasRgvWmsParam.java b/src/main/java/com/zy/asrs/entity/param/BasRgvWmsParam.java new file mode 100644 index 0000000..2f1ef6d --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/BasRgvWmsParam.java @@ -0,0 +1,31 @@ +package com.zy.asrs.entity.param; +import lombok.Data; + +@Data +public class BasRgvWmsParam { + + /** + * 缂栧彿 + */ + private Integer steNo; + + /** + * 鐘舵�� + */ + private Integer crnSts; + + /** + * 宸ヤ綔鍙� + */ + private Integer wrkNo; + + /** + * 寮傚父鐮� + */ + private Long steErr; + private String steErrM; + + + public BasRgvWmsParam() {} + +} diff --git a/src/main/java/com/zy/asrs/entity/param/CarryParam.java b/src/main/java/com/zy/asrs/entity/param/CarryParam.java index 4676313..46fd627 100644 --- a/src/main/java/com/zy/asrs/entity/param/CarryParam.java +++ b/src/main/java/com/zy/asrs/entity/param/CarryParam.java @@ -22,4 +22,20 @@ //澶囨敞 private String meno; + public void updateIoTyoe(Integer ioTypeOld){ + switch (ioTypeOld){ + case 1: + this.ioType = 2; + break; + case 2: + this.ioType = 3; + break; + case 3: + this.ioType = 1; + break; + default: + this.ioType = 3; + } + } + } diff --git a/src/main/java/com/zy/asrs/entity/param/WMSAndAGVInterfaceParam.java b/src/main/java/com/zy/asrs/entity/param/WMSAndAGVInterfaceParam.java index 225eccd..bb087b4 100644 --- a/src/main/java/com/zy/asrs/entity/param/WMSAndAGVInterfaceParam.java +++ b/src/main/java/com/zy/asrs/entity/param/WMSAndAGVInterfaceParam.java @@ -53,5 +53,16 @@ private String requestType; //璇锋眰绫诲瀷: 1=鍙栬揣锛�2=鏀捐揣 private String wharfCode; //鐮佸ご缂栧彿 // +// public void updateTaskStatus(Integer TaskStatusOld){ +// switch (TaskStatusOld){ +// case 1: +// this.taskStatus = 1; +// break; +// case 2: +// this.taskStatus = 3; +// default: +// this.ioType = 0; +// } +// } } diff --git a/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java b/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java index 1a70e31..92b8d62 100644 --- a/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java +++ b/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java @@ -34,6 +34,8 @@ TaskWrk selectCrnNoInWorking(@Param("crnNo") Integer crnNo,@Param("workNo") Integer workNo); + TaskWrk selectWalkSta(@Param("crnNo") Integer crnNo,@Param("workNo") Integer workNo); + List<TaskWrk> selectToBeHistoryData(); int saveToHistory(String taskNo);//灏嗕换鍔¤浆鍘嗗彶鏃ュ織 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 8fda140..d0fc70b 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -155,13 +155,13 @@ } // 閫�鍥� if (back) { - if (stano == inSta.getBackSta().shortValue()){ + if (stano == inSta.getBackSta().shortValue()) { continue; } - if (workNo == 0 && stano == 0){ + if (workNo == 0 && stano == 0) { continue; } - if (!staProtocol.isPakMk()){ + if (!staProtocol.isPakMk()) { continue; } // News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); @@ -180,27 +180,30 @@ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && (workNo == 9991 ) - && staProtocol.isPakMk()) { + && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo>9000 && workNo<10000)) + && staProtocol.isPakMk() + && staProtocol.isPakMkWalk() + ) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); if (barcodeThread == null) { continue; } String barcode = barcodeThread.getBarcode(); - if(!Cools.isEmpty(barcode) && !barcode.equals("99999999")) { + if (!Cools.isEmpty(barcode) && !barcode.equals("99999999")) { // 璇锋眰wms鎺ュ彛锛岃幏鍙栧伐浣滃彿鍜岀洰鏍囧簱浣� - ToWmsDTO toWmsDTO = new ToWmsDTO(barcode,staProtocol.getSiteId(),staProtocol.isHigh() ? 2 : 1); - TaskWrk taskWrk1=taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode",barcode)); - if(!Cools.isEmpty(taskWrk1)){ - log.info("鎵樼洏鐮侊細"+barcode+"浠诲姟妗e瓨鍦�"); - if (taskWrk1.getIoType()==1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())){ + ToWmsDTO toWmsDTO = new ToWmsDTO(barcode, staProtocol.getSiteId(), 0); + TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode)); + if (!Cools.isEmpty(taskWrk1)) { + log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�"); + if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no",1).eq("stn_no",staProtocol.getSiteId())); - if (Cools.isEmpty(staDesc)){ - log.info("鎵樼洏鐮侊細"+barcode+"浠诲姟妗e瓨鍦�"); + .eq("CRN_NO", taskWrk1.getCrnNo()).eq("TYPE_NO", 1).eq("STN_NO", staProtocol.getSiteId())); + + if (Cools.isEmpty(staDesc)) { + log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�"); return; - }else { + } else { staProtocol.setWorkNo(taskWrk1.getWrkNo()); staProtocol.setStaNo(staDesc.getCrnStn()); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); @@ -209,9 +212,9 @@ return; } HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("Content-Type","application/json"); + headParam.put("Content-Type", "application/json"); String response; - try{ + try { response = new HttpHandler.Builder() // .setHeaders(headParam) .setUri(wmsUrl) @@ -219,140 +222,54 @@ .setJson(JSON.toJSONString(toWmsDTO)) .build() .doPost(); - }catch (Exception e){ + } catch (Exception e) { log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触"); - log.error("寮傚父淇℃伅鎵撳嵃锛�"+e); - try{ + log.error("寮傚父淇℃伅鎵撳嵃锛�" + e); + try { BasDevp basDevp = basDevpService.selectById(inSta.getStaNo()); - if (Cools.isEmpty(basDevp)){ - log.error("绔欑偣鍙峰紓甯�"+inSta.getStaNo()); - } else if (basDevp.getStaErr()!=0){ + if (Cools.isEmpty(basDevp)) { + log.error("绔欑偣鍙峰紓甯�" + inSta.getStaNo()); + } else if (basDevp.getStaErr() != 0) { basDevp.setStaErr(2); basDevpService.updateById(basDevp); } - }catch (Exception e1){ + } catch (Exception e1) { // 閫�鍥� - log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+"寮傚父淇℃伅"+e1); + log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + "寮傚父淇℃伅" + e1); } staProtocol.setWorkNo(9999); staProtocol.setStaNo(inSta.getStaNo()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); -// TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo)); -// if (taskWrk != null) { -// taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず -// taskWrkMapper.updateById(taskWrk); -// } continue; } JSONObject jsonObject = JSON.parseObject(response); apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛" - ,wmsUrl+inboundTaskApplyPath - ,null - ,"127.0.0.1" - ,JSON.toJSONString(toWmsDTO) - ,response - ,true + , wmsUrl + inboundTaskApplyPath + , null + , "127.0.0.1" + , JSON.toJSONString(toWmsDTO) + , response + , true ); log.info("鍏ュ簱璇锋眰鍙傛暟{}" + JSON.toJSONString(toWmsDTO)); log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟{}" + JSON.toJSONString(response)); - if (jsonObject.getInteger("code").equals(200) && !Cools.isEmpty(jsonObject.get("data").toString())) { - GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class); - try{ - BasDevp basDevp = basDevpService.selectById(inSta.getStaNo()); - if (Cools.isEmpty(basDevp)){ - log.error("绔欑偣鍙峰紓甯�1"+inSta.getStaNo()); - throw new CoolException("绔欑偣鍙峰紓甯�1,鏈煡璇㈠埌绔欑偣淇℃伅"+inSta.getStaNo()); - } - Integer staNoCrnNo = Utils.StaNoCrnNo(inSta.getStaNo()); - if (staNoCrnNo==0){ - basDevp.setStaErr(1); - basDevpService.updateById(basDevp); - log.error("绔欑偣鍙峰紓甯�2"+inSta.getStaNo()); - throw new CoolException("绔欑偣鍙峰紓甯�2,绔欑偣鍙蜂笉瀛樺湪"+inSta.getStaNo()); - }else { - LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("crn_no", staNoCrnNo.longValue()) - .eq("loc_no", getWmsDto.getLocNo())); - if (Cools.isEmpty(locMast)){ - basDevp.setStaErr(1); - basDevpService.updateById(basDevp); - log.error("绔欑偣鍙峰紓甯�3"+inSta.getStaNo()); - throw new CoolException("绔欑偣鍙峰紓甯�3锛氭宸烽亾涓嶅瓨鍦ㄧ洰鏍囧簱浣�"+inSta.getStaNo()); - } - } - } catch (Exception e){ -// log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+"寮傚父淇℃伅"+e); + if (jsonObject.getInteger("code").equals(200)) { + try { + devpThread.setPakMk(staProtocol.getSiteId(), false); + } catch (Exception e) { // 閫�鍥� - log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+errMsg); - log.error("鎵爜妫�娴嬬▼搴忓紓甯�,寮傚父淇℃伅"+e); + log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + errMsg); + log.error("鎵爜妫�娴嬬▼搴忓紓甯�,寮傚父淇℃伅" + e); staProtocol.setWorkNo(9999); staProtocol.setStaNo(inSta.getStaNo()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); -// TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo)); -// if (taskWrk != null) { -// taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず -// taskWrkMapper.updateById(taskWrk); -// } - continue; - } - //鏌ョ湅璇ュ簱浣嶆槸鍚︿负绌哄簱浣� - LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("loc_sts","O") - .eq("loc_no",getWmsDto.getLocNo())); - if(Cools.isEmpty(locMast)){ - try{ - HashMap<String, Object> headParam1 = new HashMap<>(); - headParam1.put("taskNo",getWmsDto.getTaskNo()); - headParam1.put("status",6); - headParam1.put("ioType",1); - headParam1.put("barcode",barcode); - String response2; - response2 = new HttpHandler.Builder() - // .setHeaders(headParam) - .setUri(wmsUrl) - .setPath(taskStatusFeedbackPath) - .setJson(JSON.toJSONString(headParam1)) - .build() - .doPost(); - JSONObject jsonObject1 = JSON.parseObject(response2); - apiLogService.save("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms" - ,wmsUrl+taskStatusFeedbackPath - ,null - ,"127.0.0.1" - ,JSON.toJSONString(headParam1) - ,response - ,true - ); - }catch (Exception e){ - log.error("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms", getWmsDto.getWrkNo()); - throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触,娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==锛屽紓甯镐俊鎭細"+e); - } } - // 鍒涙柊涓�涓叆搴撳伐浣滄。 - TaskWrk taskWrk = taskWrkService.selectByTaskNo(getWmsDto.getWrkNo()); - if(Cools.isEmpty(taskWrk)) { - taskWrk = createTask(getWmsDto,barcode); - if (Cools.isEmpty(taskWrk)){ - log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛歿}", getWmsDto.getTargetLocationCode()); - }else { - taskWrkService.insert(taskWrk); - StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).eq("stn_no",staProtocol.getSiteId())); - staProtocol.setWorkNo(taskWrk.getWrkNo()); - staProtocol.setStaNo(staDesc.getCrnStn()); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - } - } - - }else { - continue; } - } else { // 閫�鍥� log.error("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); @@ -379,6 +296,254 @@ } } + public void generateStoreWrkFileIsEmptyMk() { + try { + // 鏍规嵁杈撻�佺嚎plc閬嶅巻 + for (DevpSlave devp : slaveProperties.getDevp()) { + // 閬嶅巻鍏ュ簱鍙� + for (DevpSlave.Sta inSta : devp.getInSta()) { + // 鑾峰彇鍏ュ簱绔欎俊鎭� + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + Integer workNo = staProtocol.getWorkNo(); + Integer stano = staProtocol.getStaNo(); + + // 灏哄妫�娴嬪紓甯� + boolean back = false; + String errMsg = ""; + if (staProtocol.isFrontErr()) { + errMsg = "鍓嶈秴闄�"; + back = true; + } + if (!back && staProtocol.isBackErr()) { + errMsg = "鍚庤秴闄�"; + back = true; + } + if (!back && staProtocol.isHighErr()) { + errMsg = "楂樿秴闄�"; + back = true; + } + if (!back && staProtocol.isLeftErr()) { + errMsg = "宸﹁秴闄�"; + back = true; + } + if (!back && staProtocol.isRightErr()) { + errMsg = "鍙宠秴闄�"; + back = true; + } + if (!back && staProtocol.isWeightErr()) { + errMsg = "瓒呴噸"; + back = true; + } + // 閫�鍥� + if (back) { + if (stano == inSta.getBackSta().shortValue()) { + continue; + } + if (workNo == 0 && stano == 0) { + continue; + } + if (!staProtocol.isPakMk()) { + continue; + } +// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); + staProtocol.setWorkNo(workNo); + staProtocol.setStaNo(inSta.getStaNo()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo)); + if (taskWrk != null) { + taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず + taskWrk.setModiTime(new Date()); + taskWrkMapper.updateById(taskWrk); + } + continue; + } + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 + if (staProtocol.isAutoing() && staProtocol.isLoading() + && staProtocol.isInEnable() + && staProtocol.isEmptyMk() && (workNo == 0 || (workNo>9000 && workNo<10000)) + && staProtocol.isPakMk() + && staProtocol.isPakMkWalk() + ) { + // 璇锋眰wms鎺ュ彛锛岃幏鍙栧伐浣滃彿鍜岀洰鏍囧簱浣� + ToWmsDTO toWmsDTO = new ToWmsDTO("", staProtocol.getSiteId(), 1); + + HashMap<String, Object> headParam = new HashMap<>(); + headParam.put("Content-Type", "application/json"); + String response; + try { + response = new HttpHandler.Builder() + // .setHeaders(headParam) + .setUri(wmsUrl) + .setPath(inboundTaskApplyPath) + .setJson(JSON.toJSONString(toWmsDTO)) + .build() + .doPost(); + } catch (Exception e) { + log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触"); + log.error("寮傚父淇℃伅鎵撳嵃锛�" + e); + try { + BasDevp basDevp = basDevpService.selectById(inSta.getStaNo()); + if (Cools.isEmpty(basDevp)) { + log.error("绔欑偣鍙峰紓甯�" + inSta.getStaNo()); + } else if (basDevp.getStaErr() != 0) { + basDevp.setStaErr(2); + basDevpService.updateById(basDevp); + } + } catch (Exception e1) { + // 閫�鍥� + log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + "寮傚父淇℃伅" + e1); + } + staProtocol.setWorkNo(9999); + staProtocol.setStaNo(inSta.getStaNo()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + continue; + } + + JSONObject jsonObject = JSON.parseObject(response); + apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛" + , wmsUrl + inboundTaskApplyPath + , null + , "127.0.0.1" + , JSON.toJSONString(toWmsDTO) + , response + , true + ); + log.info("鍏ュ簱璇锋眰鍙傛暟{}" + JSON.toJSONString(toWmsDTO)); + log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟{}" + JSON.toJSONString(response)); + if (jsonObject.getInteger("code").equals(200)) { + try { + devpThread.setPakMk(staProtocol.getSiteId(), false); + } catch (Exception e) { +// log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+"寮傚父淇℃伅"+e); + // 閫�鍥� + log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + errMsg); + log.error("鎵爜妫�娴嬬▼搴忓紓甯�,寮傚父淇℃伅" + e); + + staProtocol.setWorkNo(9999); + staProtocol.setStaNo(inSta.getStaNo()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + } + } else { + continue; + } + } + } + } + } catch (Exception e) { + log.error("generateStoreWrkFile e", e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + } + + + public void generateStoreWrkFileWalk() { + try { + // 鏍规嵁杈撻�佺嚎plc閬嶅巻 + for (DevpSlave devp : slaveProperties.getDevp()) { + // 閬嶅巻鍏ュ簱鍙� + for (DevpSlave.Sta inSta : devp.getInWalkSta()) { + // 鑾峰彇鍏ュ簱绔欎俊鎭� + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + Integer workNo = staProtocol.getWorkNo(); + + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 + if (staProtocol.isAutoing() && staProtocol.isLoading() + && staProtocol.isInEnable() && (workNo == 0 || (workNo>9000 && workNo<10000)) + && staProtocol.isPakMkWalk() + ) { + if (inSta.isBarcodeSign()){ + // 鑾峰彇鏉$爜鎵弿浠俊鎭� + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); + if (barcodeThread == null) { + continue; + } + String barcode = barcodeThread.getBarcode(); + if (!Cools.isEmpty(barcode) && !barcode.equals("99999999")) { + // 璇锋眰wms鎺ュ彛锛岃幏鍙栧伐浣滃彿鍜岀洰鏍囧簱浣� + ToWmsDTO toWmsDTO = new ToWmsDTO(barcode, staProtocol.getSiteId(), 0); + TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode)); + + if (!Cools.isEmpty(taskWrk1)) { + log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�"); + if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() + .eq("CRN_NO", taskWrk1.getCrnNo()).eq("TYPE_NO", 1).eq("STN_NO", staProtocol.getSiteId())); + + if (Cools.isEmpty(staDesc)) { + log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�"); + return; + } else { + staProtocol.setWorkNo(taskWrk1.getWrkNo()); + staProtocol.setStaNo(staDesc.getCrnStn()); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + } + } + return; + } + } else { + TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>()); + + if (!Cools.isEmpty(taskWrk1)) { + if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() + .eq("CRN_NO", taskWrk1.getCrnNo()).eq("TYPE_NO", 1).eq("STN_NO", staProtocol.getSiteId())); + + if (Cools.isEmpty(staDesc)) { + return; + } else { + staProtocol.setWorkNo(taskWrk1.getWrkNo()); + staProtocol.setStaNo(staDesc.getCrnStn()); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + } + } + return; + } + } + } else { + TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>()); + + if (!Cools.isEmpty(taskWrk1)) { + if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() + .eq("CRN_NO", taskWrk1.getCrnNo()).eq("TYPE_NO", 1).eq("STN_NO", staProtocol.getSiteId())); + + if (Cools.isEmpty(staDesc)) { + return; + } else { + staProtocol.setWorkNo(taskWrk1.getWrkNo()); + staProtocol.setStaNo(staDesc.getCrnStn()); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + } + } + return; + } + } + } + + + } + } + } catch (Exception e) { + log.error("generateStoreWrkFile e", e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + } + /** * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯 */ @@ -388,15 +553,17 @@ // 鑾峰彇鍫嗗灈鏈轰俊鎭� CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); - if (crnProtocol == null) { continue; } + if (crnProtocol == null) { + continue; + } BasCrnp basCrnp = basCrnpService.selectById(crnSlave.getId()); if (basCrnp == null) { log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crnSlave.getId()); continue; } - if (!crnSlave.getId().equals(crnProtocol.getLaneNo())){ + if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { - if (crnOther.getId().equals(crnProtocol.getLaneNo())){ + if (crnOther.getId().equals(crnProtocol.getLaneNo())) { crnSlave.updateCrnInStn(crnOther); } } @@ -404,10 +571,9 @@ // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯 for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) { - List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", crnSlave.getId()).eq("LANE_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo())); -// List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("").eq("crn_stn", crnStn.getStaNo())); - for (StaDesc staDesc : staDescs){ - try{ + List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo())); + for (StaDesc staDesc : staDescs) { + try { // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); @@ -422,33 +588,33 @@ if (taskWrk == null) { continue; } - log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:"+JSON.toJSONString(taskWrk)); + log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk)); // R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false); staProtocol.setWorkNo(taskWrk.getWrkNo()); staProtocol.setStaNo(staDesc.getCrnStn()); boolean offer = false; - try{ + try { offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); - }catch (Exception e){ - log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:"+e); - log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:"+offer); + } catch (Exception e) { + log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e); + log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer); } // JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r)); - if (offer){ - log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:"+JSON.toJSONString(taskWrk)); + if (offer) { + log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk)); Date now = new Date(); taskWrk.setStatus(5); taskWrk.setWrkSts(14); taskWrk.setModiTime(now); taskWrk.setCompleteTime(now); taskWrkService.updateById(taskWrk); - }else { - log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:"+JSON.toJSONString(taskWrk)); + } else { + log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk)); // log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯镐俊鎭�:"+JSON.toJSONString(r)); } } - }catch (Exception e){ - log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�"+e); + } catch (Exception e) { + log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�" + e); } } @@ -464,16 +630,18 @@ // 鑾峰彇鍫嗗灈鏈轰俊鎭� CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); - if (crnProtocol == null) { continue; } + if (crnProtocol == null) { + continue; + } BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); if (basCrnp == null) { log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId()); continue; } - if (!crn.getId().equals(crnProtocol.getLaneNo())){ + if (!crn.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { - if (crnOther.getId().equals(crnProtocol.getLaneNo())){ + if (crnOther.getId().equals(crnProtocol.getLaneNo())) { crn.updateCrnInStn(crnOther); } } @@ -515,7 +683,8 @@ */ public void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) throws IOException { for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) { - List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", slave.getId()).eq("LANE_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo())); + List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo())); + for (StaDesc staDesc : staDescs) { boolean flag = false; // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅 @@ -533,7 +702,7 @@ continue; } if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() - && staDetl.getCanining()!=null && staDetl.getCanining().equals("Y")) { + && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) { flag = true; } if (!flag) { @@ -542,7 +711,7 @@ // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。 TaskWrk taskWrk = taskWrkMapper.selectPakIn(crnProtocol.getLaneNo(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString()); - if(null == taskWrk) { + if (null == taskWrk) { continue; } @@ -601,7 +770,7 @@ // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setCrnNo(staDesc.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙� + crnCommand.setCrnNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙� crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙� crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 @@ -611,23 +780,23 @@ crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� - crnCommand.setCommand((short)1); - if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand),false)) { + crnCommand.setCommand((short) 1); + if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) { log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); - }else{ - try{ + } else { + try { taskWrkService.updateById(taskWrk); - }catch (Exception e){ + } catch (Exception e) { log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); - log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽紓甯革細"+e); + log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e); } - try{ + try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo",taskWrk.getTaskNo()); - headParam.put("status",taskWrk.getStatus()); - headParam.put("ioType",taskWrk.getIoType()); - headParam.put("barcode",taskWrk.getBarcode()); + headParam.put("taskNo", taskWrk.getTaskNo()); + headParam.put("status", taskWrk.getStatus()); + headParam.put("ioType", taskWrk.getIoType()); + headParam.put("barcode", taskWrk.getBarcode()); String response; response = new HttpHandler.Builder() // .setHeaders(headParam) @@ -638,14 +807,14 @@ .doPost(); JSONObject jsonObject = JSON.parseObject(response); apiLogService.save("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms" - ,wmsUrl+taskStatusFeedbackPath - ,null - ,"127.0.0.1" - ,JSON.toJSONString(headParam) - ,response - ,true + , wmsUrl + taskStatusFeedbackPath + , null + , "127.0.0.1" + , JSON.toJSONString(headParam) + , response + , true ); - } catch (Exception e){ + } catch (Exception e) { log.error("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触", JSON.toJSONString(taskWrk)); // throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触"); } @@ -661,19 +830,17 @@ * 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔� * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴� */ - public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol){ + public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) { List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(crnProtocol.getLaneNo(), null); - if (taskWrksInitial.size()==0){ + if (taskWrksInitial.size() == 0) { return; } for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) { - List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", slave.getId()).eq("LANE_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo())); - -// List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnProtocol.getLaneNo()).eq("crn_stn", crnStn.getStaNo())); - for (StaDesc staDesc : staDescs){ + List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo())); + for (StaDesc staDesc : staDescs) { // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗� - List<TaskWrk> taskWrks = taskWrkMapper.selectPakOut(crnProtocol.getLaneNo(),staDesc.getStnNo().toString()); - for (TaskWrk taskWrk : taskWrks){ + List<TaskWrk> taskWrks = taskWrkMapper.selectPakOut(crnProtocol.getLaneNo(), staDesc.getStnNo().toString()); + for (TaskWrk taskWrk : taskWrks) { if (taskWrk == null) { continue; } @@ -699,7 +866,7 @@ } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� - if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() !=null && staDetl.getCanouting().equals("Y") + if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- @@ -725,12 +892,12 @@ command.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺� command.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒� command.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞� - command.setCommand((short)1); - if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, command),false)) { - log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屽贩閬�={}锛屼换鍔℃暟鎹�={}",slave.getId(), taskWrk.getCrnNo(), JSON.toJSON(command)); + command.setCommand((short) 1); + if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, command), false)) { + log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屽贩閬�={}锛屼换鍔℃暟鎹�={}", slave.getId(), taskWrk.getCrnNo(), JSON.toJSON(command)); throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); - }else{ - try{ + } else { + try { // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� Date now = new Date(); taskWrk.setWrkSts(12); @@ -740,16 +907,16 @@ if (taskWrkMapper.updateById(taskWrk) == 0) { log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); } - }catch (Exception e){ + } catch (Exception e) { log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); - log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽紓甯革細"+e); + log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e); } - try{ + try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo",taskWrk.getTaskNo()); - headParam.put("status",taskWrk.getStatus()); - headParam.put("ioType",taskWrk.getIoType()); - headParam.put("barcode",taskWrk.getBarcode()); + headParam.put("taskNo", taskWrk.getTaskNo()); + headParam.put("status", taskWrk.getStatus()); + headParam.put("ioType", taskWrk.getIoType()); + headParam.put("barcode", taskWrk.getBarcode()); String response; response = new HttpHandler.Builder() // .setHeaders(headParam) @@ -760,14 +927,14 @@ .doPost(); JSONObject jsonObject = JSON.parseObject(response); apiLogService.save("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms" - ,wmsUrl+taskStatusFeedbackPath - ,null - ,"127.0.0.1" - ,JSON.toJSONString(headParam) - ,response - ,true + , wmsUrl + taskStatusFeedbackPath + , null + , "127.0.0.1" + , JSON.toJSONString(headParam) + , response + , true ); - }catch (Exception e){ + } catch (Exception e) { log.error("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms澶辫触", JSON.toJSONString(taskWrk)); // throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触"); } @@ -781,16 +948,16 @@ /** * 搴撲綅绉昏浆 */ - public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol){ + public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) { for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) { // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑绉诲簱宸ヤ綔妗� List<TaskWrk> taskWrks = taskWrkMapper.selectList( new EntityWrapper<TaskWrk>() - .eq("CRN_NO",crnProtocol.getLaneNo()) - .eq("WRK_STS",11) - .eq("IO_TYPE",3) - .orderBy("IO_PRI",false)); - for (TaskWrk taskWrk : taskWrks){ + .eq("CRN_NO", crnProtocol.getLaneNo()) + .eq("WRK_STS", 11) + .eq("IO_TYPE", 3) + .orderBy("IO_PRI", false)); + for (TaskWrk taskWrk : taskWrks) { // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� // if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) { @@ -822,8 +989,6 @@ // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - - // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� @@ -838,7 +1003,7 @@ crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� crnCommand.setCommand((short) 1); - if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand),false)) { + if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); } else { // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� @@ -850,12 +1015,12 @@ if (taskWrkMapper.updateById(taskWrk) == 0) { log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); } - try{ + try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo",taskWrk.getTaskNo()); - headParam.put("status",taskWrk.getStatus()); - headParam.put("ioType",taskWrk.getIoType()); - headParam.put("barcode",taskWrk.getBarcode()); + headParam.put("taskNo", taskWrk.getTaskNo()); + headParam.put("status", taskWrk.getStatus()); + headParam.put("ioType", taskWrk.getIoType()); + headParam.put("barcode", taskWrk.getBarcode()); String response; response = new HttpHandler.Builder() // .setHeaders(headParam) @@ -866,14 +1031,14 @@ .doPost(); JSONObject jsonObject = JSON.parseObject(response); apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms" - ,wmsUrl+taskStatusFeedbackPath - ,null - ,"127.0.0.1" - ,JSON.toJSONString(headParam) - ,response - ,true + , wmsUrl + taskStatusFeedbackPath + , null + , "127.0.0.1" + , JSON.toJSONString(headParam) + , response + , true ); - }catch (Exception e){ + } catch (Exception e) { log.error("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触", taskWrk); // throw new CoolException("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触"); } @@ -893,11 +1058,13 @@ // 鑾峰彇鍫嗗灈鏈轰俊鎭� CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); - if (crnProtocol == null) { continue; } + if (crnProtocol == null) { + continue; + } - if (!crn.getId().equals(crnProtocol.getLaneNo())){ + if (!crn.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { - if (crnOther.getId().equals(crnProtocol.getLaneNo())){ + if (crnOther.getId().equals(crnProtocol.getLaneNo())) { crn.updateCrnInStn(crnOther); } } @@ -906,20 +1073,20 @@ // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 if (!Cools.isEmpty(crnProtocol.getTaskFinish()) && crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 - TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crnProtocol.getLaneNo(),crnProtocol.getTaskNo().intValue()); - if (Cools.isEmpty(taskWrk)&&crnProtocol.getTaskNo() !=999) { - log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽贩閬撳彿={}锛屽伐浣滃彿={}", crn.getId(),crnProtocol.getLaneNo(), crnProtocol.getTaskNo()); + TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crnProtocol.getLaneNo(), crnProtocol.getTaskNo().intValue()); + if (Cools.isEmpty(taskWrk) && crnProtocol.getTaskNo() != 999) { + log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽贩閬撳彿={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getLaneNo(), crnProtocol.getTaskNo()); continue; } Thread.sleep(300); //纭瀹屾垚淇″彿 - CrnOperatorParam crnOperatorParam=new CrnOperatorParam(); + CrnOperatorParam crnOperatorParam = new CrnOperatorParam(); crnOperatorParam.setCrnNo(crn.getId()); Date now = new Date(); crnController.crnTaskComplete(crnOperatorParam); - if(!Cools.isEmpty(taskWrk)){ - if(taskWrk.getIoType()==1 && taskWrk.getWrkSts()==3){ + if (!Cools.isEmpty(taskWrk)) { + if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) { taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚 taskWrk.setStatus(5);//瀹岀粨 //鏇存柊搴撲綅鐘舵�� @@ -929,7 +1096,7 @@ locMast.setModiTime(now); locMast.setModiUser(9999L); locMastService.updateById(locMast); - }else if(taskWrk.getIoType()==2&&taskWrk.getWrkSts()==12){ + } else if (taskWrk.getIoType() == 2 && taskWrk.getWrkSts() == 12) { taskWrk.setWrkSts(13);//鍑哄簱瀹屾垚 taskWrk.setStatus(5);//瀹岀粨 //鏇存柊搴撲綅鐘舵�� @@ -939,7 +1106,7 @@ locMast.setModiTime(now); locMast.setModiUser(9999L); locMastService.updateById(locMast); - }else if(taskWrk.getIoType()==3&&taskWrk.getWrkSts()==12){ + } else if (taskWrk.getIoType() == 3 && taskWrk.getWrkSts() == 12) { taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚 taskWrk.setStatus(5);//瀹岀粨 //鏇存柊搴撲綅鐘舵�� @@ -962,12 +1129,12 @@ taskWrkService.updateById(taskWrk); - try{ + try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo",taskWrk.getTaskNo()); - headParam.put("status",taskWrk.getStatus()); - headParam.put("ioType",taskWrk.getIoType()); - headParam.put("barcode",taskWrk.getBarcode()); + headParam.put("taskNo", taskWrk.getTaskNo()); + headParam.put("status", taskWrk.getStatus()); + headParam.put("ioType", taskWrk.getIoType()); + headParam.put("barcode", taskWrk.getBarcode()); String response; log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", headParam); @@ -984,14 +1151,14 @@ // log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", jsonObject); apiLogService.save("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms" - ,wmsUrl+taskStatusFeedbackPath - ,null - ,"127.0.0.1" - ,JSON.toJSONString(headParam) - ,response - ,true + , wmsUrl + taskStatusFeedbackPath + , null + , "127.0.0.1" + , JSON.toJSONString(headParam) + , response + , true ); - }catch (Exception e){ + } catch (Exception e) { log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触", taskWrk); log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e); // throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触"); @@ -1005,7 +1172,7 @@ /** * 鍫嗗灈鏈哄紓甯镐俊鎭褰� */ - public void recCrnErr(){ + public void recCrnErr() { Date now = new Date(); for (CrnSlave crn : slaveProperties.getCrn()) { // 鑾峰彇鍫嗗灈鏈轰俊鎭� @@ -1027,7 +1194,7 @@ continue; } BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); - String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName(); + String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName(); BasErrLog basErrLog = new BasErrLog( null, // 缂栧彿 wrkMast.getWrkNo(), // 宸ヤ綔鍙� @@ -1074,7 +1241,7 @@ // 璁板綍鏂板紓甯� if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); - String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName(); + String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName(); BasErrLog basErrLog = new BasErrLog( null, // 缂栧彿 null, // 宸ヤ綔鍙� @@ -1089,7 +1256,7 @@ null, // 婧愮珯 null, // 婧愬簱浣� null, // 鏉$爜 - (int)crnProtocol.getAlarm(), // 寮傚父鐮� + (int) crnProtocol.getAlarm(), // 寮傚父鐮� errName, // 寮傚父 1, // 寮傚父鎯呭喌 now, // 娣诲姞鏃堕棿 @@ -1120,9 +1287,9 @@ } } - private TaskWrk createTask(GetWmsDto dto, String barcode){ + private TaskWrk createTask(GetWmsDto dto, String barcode) { String wcsLocNo = dto.getLocNo(); - if(Cools.isEmpty(wcsLocNo)){ + if (Cools.isEmpty(wcsLocNo)) { return null; } Date now = new Date(); @@ -1142,7 +1309,7 @@ taskWrk.setCrnNo(locMast.getCrnNo()); taskWrk.setTargetPoint(wcsLocNo); taskWrk.setStartPoint(dto.getStaNo().toString()); - if(taskWrk.getIoType() == 1){ + if (taskWrk.getIoType() == 1) { taskWrk.setWrkSts(2); if (!Cools.isEmpty(taskWrk.getTargetPoint())) { taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint()); @@ -1151,14 +1318,14 @@ return taskWrk; } - public String rgvOtherTaskWrk(RgvSlave slave){ + public String rgvOtherTaskWrk(RgvSlave slave) { RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, slave.getOtherId()); TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache(); ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol(); - if (!allTaskProtocol.isEmpty()){ - for (TaskProtocol taskProtocol : allTaskProtocol.values()){ - if (taskProtocol.getTaskNo() != 0 ){ + if (!allTaskProtocol.isEmpty()) { + for (TaskProtocol taskProtocol : allTaskProtocol.values()) { + if (taskProtocol.getTaskNo() != 0) { return taskProtocol.getTaskNo().toString(); } } @@ -1166,11 +1333,12 @@ return "鏃�"; } - public boolean rgvDetection(RgvSlave slave){ + + public boolean rgvDetection(RgvSlave slave) { RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); - if (rgvProtocol == null || rgvTaskProtocol ==null) { + if (rgvProtocol == null || rgvTaskProtocol == null) { return false; } if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 || rgvProtocol.getRgvPosDestination() == 0L @@ -1183,39 +1351,39 @@ if (rgvProtocolOther == null) { return false; } - if (rgvProtocolOther.statusEnable){ - if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L) || rgvTaskProtocolOther.getAvoid() == -1 || rgvProtocolOther.getRgvPosDestination() == 0L) { + if (rgvProtocolOther.statusEnable) { + if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L) || rgvTaskProtocolOther.getAvoid() == -1 || rgvProtocolOther.getRgvPosDestination() == 0L) { return false; } } return true; } - public TaskWrk deviceDetection(RgvSlave.RgvStn inSta){ + public TaskWrk deviceDetection(RgvSlave.RgvStn inSta) { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId()); StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); - if (staProtocol == null){ + if (staProtocol == null) { return null; } // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢 if (staProtocol.isAutoing() // && staProtocol.isLoading() - && staProtocol.getWorkNo()!=0) { + && staProtocol.getWorkNo() != 0) { TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo().toString()); - if (taskWrk!=null){ + if (taskWrk != null) { return taskWrk; } } return null; } - public boolean rgvOtherStatusEnable(RgvSlave slave){ + public boolean rgvOtherStatusEnable(RgvSlave slave) { RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); if (rgvProtocolOther == null) { return true; } - if (rgvProtocolOther.statusEnable){ + if (rgvProtocolOther.statusEnable) { // if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L)) { return true; // } @@ -1225,8 +1393,8 @@ public synchronized void taskStart() { for (RgvSlave rgvSlave : slaveProperties.getRgv()) { - try{ - if (rgvDetection(rgvSlave)){ + try { + if (rgvDetection(rgvSlave)) { String taskNoNow = rgvOtherTaskWrk(rgvSlave); List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("PLC_POSITION", true)); boolean itSmall = new TrackRangeUtils().IsItSmall(rgvSlave); @@ -1236,9 +1404,9 @@ } List<TaskWrk> taskWrkList = new ArrayList<>(); List<Integer> staList = new ArrayList<>(); - for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()){ + for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) { TaskWrk taskWrk = deviceDetection(inSta); - if (taskWrk!=null){ + if (taskWrk != null) { if (taskWrk.getTaskNo().equals(taskNoNow)) continue; taskWrkList.add(taskWrk); staList.add(inSta.getStaNo()); @@ -1249,9 +1417,9 @@ boolean sign = false; - if (rgvOtherStatusEnable(rgvSlave)){ + if (rgvOtherStatusEnable(rgvSlave)) { //鍒嗘垚涓婁笅涓ら儴鍒嗕换鍔� - List<Integer>[] avoidRange = RouteUtils.gradeRange(staList, basDevpPositions,itSmall); + List<Integer>[] avoidRange = RouteUtils.gradeRange(staList, basDevpPositions, itSmall); List<Integer> rangeListSou = avoidRange[itSmall ? 0 : 1]; List<Integer> rangeListSouOther = avoidRange[itSmall ? 1 : 0]; //灏辫繎鎺掑簭 @@ -1267,87 +1435,87 @@ Long[][] avoidedRange = new TrackRangeUtils().avoidRangeArr(rgvSlave, trackEntireLength, trackBenchmark, avoidDistance); List<Integer> belongToRange = RouteUtils.SortNearby(RouteUtils.belongToRange(rangeList, avoidedRange[0], basDevpPositions), rgvProtocol.RgvPos, basDevpPositions); - for (Integer staNoNow : belongToRange){ - for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()){ - if (rgvStn.getStaNo().equals(staNoNow)){ + for (Integer staNoNow : belongToRange) { + for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { + if (rgvStn.getStaNo().equals(staNoNow)) { TaskWrk taskWrk = deviceDetection(rgvStn); - if (taskWrk!=null){ + if (taskWrk != null) { BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", taskWrk.getTargetPointConvert())); - if (RouteUtils.CheckIfItIsWithinTheRange(rangeList,basDevpPosition.getPlcPosition(),basDevpPositions,itSmall)){ - sign = taskGenerate(rgvSlave,rgvStn,0); + if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { + sign = taskGenerate(rgvSlave, rgvStn, 0); } } break; } } - if (sign){ + if (sign) { break; } } - if (!sign){ + if (!sign) { // 绛涢�夎寖鍥村唴鍙栬揣浠诲姟 - for (Integer staNoNow : belongToRange){ - for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()){ - if (rgvStn.getStaNo().equals(staNoNow)){ - sign = taskGenerate(rgvSlave,rgvStn,0); + for (Integer staNoNow : belongToRange) { + for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { + if (rgvStn.getStaNo().equals(staNoNow)) { + sign = taskGenerate(rgvSlave, rgvStn, 0); break; } } - if (sign){ + if (sign) { break; } } } - if (!sign){ - for (Integer staNoNow : rangeList){ - for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()){ - if (rgvStn.getStaNo().equals(staNoNow)){ + if (!sign) { + for (Integer staNoNow : rangeList) { + for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { + if (rgvStn.getStaNo().equals(staNoNow)) { TaskWrk taskWrk = deviceDetection(rgvStn); - if (taskWrk!=null){ + if (taskWrk != null) { BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", taskWrk.getTargetPointConvert())); - if (RouteUtils.CheckIfItIsWithinTheRange(rangeList,basDevpPosition.getPlcPosition(),basDevpPositions,itSmall)){ - sign = taskGenerate(rgvSlave,rgvStn,0); + if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { + sign = taskGenerate(rgvSlave, rgvStn, 0); } } break; } } - if (sign){ + if (sign) { break; } } } - if (!sign){ + if (!sign) { // 鍗婅竟鍖哄煙鍐呭彇璐т换鍔� - for (Integer staNoNow : rangeList){ - for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()){ - if (rgvStn.getStaNo().equals(staNoNow)){ - sign = taskGenerate(rgvSlave,rgvStn,0); + for (Integer staNoNow : rangeList) { + for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { + if (rgvStn.getStaNo().equals(staNoNow)) { + sign = taskGenerate(rgvSlave, rgvStn, 0); break; } } - if (sign){ + if (sign) { break; } } } - if (!sign){ + if (!sign) { // 鍗婅竟鍖哄煙鍐呮斁璐т换鍔� - for (Integer staNoNow : rangeListOther){ - for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()){ - if (rgvStn.getStaNo().equals(staNoNow)){ + for (Integer staNoNow : rangeListOther) { + for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { + if (rgvStn.getStaNo().equals(staNoNow)) { TaskWrk taskWrk = deviceDetection(rgvStn); - if (taskWrk!=null){ + if (taskWrk != null) { BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", taskWrk.getTargetPointConvert())); - if (RouteUtils.CheckIfItIsWithinTheRange(rangeList,basDevpPosition.getPlcPosition(),basDevpPositions,itSmall)){ - sign = taskGenerate(rgvSlave,rgvStn,0); + if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { + sign = taskGenerate(rgvSlave, rgvStn, 0); } } break; } } - if (sign){ + if (sign) { break; } } @@ -1358,33 +1526,34 @@ RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(rgvSlave.getId()); List<Integer> rangeList = RouteUtils.SortNearby(staList, rgvProtocol.RgvPos, basDevpPositions); // 鍗婅竟鍖哄煙鍐呭彇璐т换鍔� - for (Integer staNoNow : rangeList){ - for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()){ - if (rgvStn.getStaNo().equals(staNoNow)){ - sign = taskGenerate(rgvSlave,rgvStn,0); + for (Integer staNoNow : rangeList) { + for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { + if (rgvStn.getStaNo().equals(staNoNow)) { + sign = taskGenerate(rgvSlave, rgvStn, 0); break; } } - if (sign){ + if (sign) { break; } } } } - } catch (Exception e){ - log.error("浠诲姟鐢熸垚澶辫触===銆嬪紓甯镐俊鎭細{}",e.getMessage()); + } catch (Exception e) { + log.error("浠诲姟鐢熸垚澶辫触===銆嬪紓甯镐俊鎭細{}", e.getMessage()); } } } + //鑾峰彇璧风偣涓庣粓鐐瑰璞� - public RgvSlave.RgvStn getRgvStnNow(RgvSlave rgvSlave,Integer staNo) { - for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()){ - if (rgvStn.getStaNo().equals(staNo)){ + public RgvSlave.RgvStn getRgvStnNow(RgvSlave rgvSlave, Integer staNo) { + for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { + if (rgvStn.getStaNo().equals(staNo)) { return rgvStn; } } - for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvOutSta()){ - if (rgvStn.getStaNo().equals(staNo)){ + for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvOutSta()) { + if (rgvStn.getStaNo().equals(staNo)) { return rgvStn; } } @@ -1392,43 +1561,43 @@ } //鑾峰彇璧风偣涓庣粓鐐瑰璞� - public RgvSlave.RgvStn[] getRgvStnAll(RgvSlave rgvSlave,Integer souSta,Integer endSta) { + public RgvSlave.RgvStn[] getRgvStnAll(RgvSlave rgvSlave, Integer souSta, Integer endSta) { RgvSlave.RgvStn[] rgvStns = new RgvSlave.RgvStn[2]; - for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()){ - if (rgvStn.getStaNo().equals(souSta)){ + for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { + if (rgvStn.getStaNo().equals(souSta)) { rgvStns[0] = rgvStn; } } - for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvOutSta()){ - if (rgvStn.getStaNo().equals(endSta)){ + for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvOutSta()) { + if (rgvStn.getStaNo().equals(endSta)) { rgvStns[1] = rgvStn; } } return rgvStns; } - public boolean taskGenerate(RgvSlave rgvSlave,RgvSlave.RgvStn rgvStn,Integer sign) { - try{ + public boolean taskGenerate(RgvSlave rgvSlave, RgvSlave.RgvStn rgvStn, Integer sign) { + try { RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache(); TaskProtocol issuedTake = new TaskProtocol(); TaskProtocol issuedPut = new TaskProtocol(); - try{ + try { ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol(); - if (allTaskProtocol.size() > 0){ + if (allTaskProtocol.size() > 0) { return false; } TaskWrk taskWrk = deviceDetection(rgvStn); - if (taskWrk == null){ + if (taskWrk == null) { return false; } Integer targetPointConvert = taskWrk.getTargetPointConvert(); - if (targetPointConvert == null){ + if (targetPointConvert == null) { return false; } RgvSlave.RgvStn rgvStnEnd = getRgvStnNow(rgvSlave, targetPointConvert); - if (rgvStnEnd == null){ + if (rgvStnEnd == null) { return false; } @@ -1437,7 +1606,7 @@ //鎵ц issuedTake.setTaskNo(Long.valueOf(taskWrk.getTaskNo())); issuedTake.setTaskStatus(1); - issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(),issuedTake.getTaskStatus())); + issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus())); issuedTake.setTargetPosition(basDevpPositionSou.getPlcPosition()); issuedTake.setIsRunning(1); issuedTake.setDirection(rgvStn.isDirection()); @@ -1445,16 +1614,16 @@ issuedPut.setTaskNo(Long.valueOf(taskWrk.getTaskNo())); issuedPut.setTaskStatus(2); - issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(),issuedPut.getTaskStatus())); + issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus())); issuedPut.setTargetPosition(basDevpPositionEnd.getPlcPosition()); issuedPut.setIsRunning(1); issuedPut.setDirection(rgvStnEnd.isDirection()); - }catch (Exception e){ - log.error("浠诲姟鐢熸垚澶辫触issued1===銆嬪紓甯镐俊鎭細{}",e.getMessage()); + } catch (Exception e) { + log.error("浠诲姟鐢熸垚澶辫触issued1===銆嬪紓甯镐俊鎭細{}", e.getMessage()); return false; } - switch (sign){ + switch (sign) { case 1: taskProtocolCache.updateTaskProtocol(issuedTake); break; @@ -1466,12 +1635,11 @@ taskProtocolCache.updateTaskProtocol(issuedPut); break; } - } catch (Exception e){ - log.error("浠诲姟鐢熸垚澶辫触issued2===銆嬪紓甯镐俊鎭細{}",e.getMessage()); + } catch (Exception e) { + log.error("浠诲姟鐢熸垚澶辫触issued2===銆嬪紓甯镐俊鎭細{}", e.getMessage()); } return true; } - } diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java index 150385a..6170fef 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -97,8 +97,9 @@ if(param.getIoType() == 1){ taskWrk.setWrkSts(1); if (!Cools.isEmpty(param.getTargetPoint())) { - taskWrk.setTargetPoint(Utils.getWcsLocNo(param.getTargetPoint()));//缁堢偣 - taskWrk.setOriginTargetPoint(param.getTargetPoint()); +// taskWrk.setTargetPoint(Utils.getWcsLocNo(param.getTargetPoint()));//缁堢偣 杞崲涓� + taskWrk.setTargetPoint(param.getTargetPoint());//缁堢偣 + taskWrk.setOriginTargetPoint(param.getStartPoint()); } } else if (param.getIoType() == 2) { diff --git a/src/main/java/com/zy/core/DevpThread.java b/src/main/java/com/zy/core/DevpThread.java index 715c3a5..2a8239e 100644 --- a/src/main/java/com/zy/core/DevpThread.java +++ b/src/main/java/com/zy/core/DevpThread.java @@ -9,5 +9,6 @@ Map<Integer, StaProtocol> getStation(); void setPakMk(Integer siteId, boolean pakMk); + void setPakMkWalk(Integer siteId, boolean pakMkWalk); } diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 1408c99..70c82a2 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -41,6 +41,11 @@ // 鍏ュ簱 ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。 mainService.generateStoreWrkFile(); // 缁勬墭 + mainService.generateStoreWrkFileIsEmptyMk(); // 缁勬墭 绌烘墭 + + mainService.generateStoreWrkFileWalk(); // 浠诲姟涓嬪彂 + + // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 mainService.crnStnToOutStn(); // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 diff --git a/src/main/java/com/zy/core/model/DevpSlave.java b/src/main/java/com/zy/core/model/DevpSlave.java index 799cab2..9194540 100644 --- a/src/main/java/com/zy/core/model/DevpSlave.java +++ b/src/main/java/com/zy/core/model/DevpSlave.java @@ -27,6 +27,8 @@ private List<Sta> pickSta = new ArrayList<>(); + private List<Sta> inWalkSta = new ArrayList<>(); + @Data public static class Sta { @@ -37,6 +39,8 @@ private Integer scale; private Integer backSta; + + private boolean barcodeSign; } } 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 0e14a7c..cfaf3d8 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -48,6 +48,7 @@ // 閿佸畾鏍囪 private boolean pakMk = true; + private boolean pakMkWalk = true; // 鍏ュ簱鏆傚瓨鏁� private Short inQty; diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 110e093..a7ddb53 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -191,6 +191,13 @@ staProtocol.setHigh(status[6]); // 楂樺簱浣� staProtocol.setLow(status[7]); // 浣庡簱浣� + + + if (!staProtocol.isPakMkWalk() && !staProtocol.isLoading()) { + staProtocol.setPakMk(true); + staProtocol.setPakMkWalk(true); + } + if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { staProtocol.setPakMk(true); } @@ -394,6 +401,17 @@ } } + /** + * 璁剧疆鍏ュ簱鏍囪 + */ + @Override + public void setPakMkWalk(Integer siteId, boolean pakMkWalk) { + StaProtocol staProtocol = station.get(siteId); + if (null != staProtocol) { + staProtocol.setPakMkWalk(pakMkWalk); + } + } + @Override public void close() { siemensS7Net.ConnectClose(); diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index b8a26bd..76025a1 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -1,7 +1,125 @@ wcs-slave: doubleDeep: false #鍙屾繁 - doubleLocs: 3,6,7,10,13 #鍙屾繁搴撲綅鎺掑彿 3,6,7,10,13 + doubleLocs: 3 #鍙屾繁搴撲綅鎺掑彿 groupCount: 2 #涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁� + devp[0]: #杈撻�佺嚎 + ip: 192.168.4.250 + slot: 0 + port: 102 + rack: 102 + id: 1 + # 鍏ュ簱鍙�1 + inSta[0]: + staNo: 102 + barcode: ${wcs-slave.barcode[0].id} + backSta: 101 +# led: ${wcs-slave.led[0].id} + # 绌烘澘鍏ュ簱鍙�1 + emptyInSta[0]: + staNo: 102 + barcode: ${wcs-slave.barcode[0].id} + backSta: 101 +# led: ${wcs-slave.led[0].id} + # 鎷f枡鍏ュ簱鍙�1 + pickSta[0]: + staNo: 102 + barcode: ${wcs-slave.barcode[0].id} + backSta: 101 + # 鍏ュ簱涓嬪彂鍙�1 + inWalkSta[0]: + staNo: 102 + barcode: ${wcs-slave.barcode[0].id} + backSta: 101 + # 鍏ュ簱涓嬪彂鍙�1 + inWalkSta[1]: + staNo: 102 + barcode: ${wcs-slave.barcode[0].id} + backSta: 101 + # 鍏ュ簱涓嬪彂鍙�1 + inWalkSta[2]: + staNo: 102 + barcode: ${wcs-slave.barcode[0].id} + backSta: 101 + barcodeSign: true + + # 鍑哄簱鍙�1 + outSta[0]: + staNo: 102 + led: ${wcs-slave.led[0].id} +# led: ${wcs-slave.led[0].id} + # RGV绌挎杞�1 + rgv[0]: + id: 1 + ip: 192.168.4.250 + port: 502 + rack: 0 + slot: 0 + otherId: 2 + carBodyJiaoMing: 100 + carBodyKunPeng: 100 + #RGV婧愮珯鐐� + rgvInSta[0]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 100 + direction: true + rgvInSta[1]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 101 + #鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級 true:宸� false:鍙� + direction: false + #RGV鐩爣绔欑偣 + rgvOutSta[0]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 100 + direction: true + rgvOutSta[1]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 101 + #鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級 true:宸� false:鍙� + direction: false + # RGV绌挎杞�2 + rgv[1]: + id: 2 + ip: 192.168.1.1 + port: 502 + rack: 0 + slot: 0 + otherId: 1 + carBodyJiaoMing: 100 + carBodyKunPeng: 100 + #RGV婧愮珯鐐� + rgvInSta[0]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 100 + direction: true + rgvInSta[1]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 101 + #鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級 true:宸� false:鍙� + direction: false + #RGV鐩爣绔欑偣 + rgvOutSta[0]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 100 + direction: true + rgvOutSta[1]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 101 + #鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級 true:宸� false:鍙� + direction: false + + barcode[0]: #鏉$爜鎵弿浠�1 + port: 51236 + ip: 10.10.10.52 + id: 1 + barcode[1]: #鏉$爜鎵弿浠�1 + port: 51236 + ip: 10.10.10.52 + id: 2 + barcode[2]: #鏉$爜鎵弿浠�1 + port: 51236 + ip: 10.10.10.52 + id: 3 crn[0]: #鍫嗗灈鏈�1 ip: 192.168.4.250 id: 1 @@ -101,74 +219,4 @@ row: 1 bay: 1 lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} - barcode[0]: #鏉$爜鎵弿浠�1 - port: 51236 - ip: 10.10.10.52 - id: 1 - devp[0]: #杈撻�佺嚎 - ip: 192.168.4.250 - slot: 0 - port: 102 - rack: 102 - id: 1 - # RGV绌挎杞�1 - rgv[0]: - id: 1 - ip: 192.168.4.250 - port: 502 - rack: 0 - slot: 0 - otherId: 2 - carBodyJiaoMing: 100 - carBodyKunPeng: 100 - #RGV婧愮珯鐐� - rgvInSta[0]: - devpPlcId: ${wcs-slave.devp[0].id} - staNo: 100 - direction: true - rgvInSta[1]: - devpPlcId: ${wcs-slave.devp[0].id} - staNo: 101 - #鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級 true:宸� false:鍙� - direction: false - #RGV鐩爣绔欑偣 - rgvOutSta[0]: - devpPlcId: ${wcs-slave.devp[0].id} - staNo: 100 - direction: true - rgvOutSta[1]: - devpPlcId: ${wcs-slave.devp[0].id} - staNo: 101 - #鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級 true:宸� false:鍙� - direction: false - # RGV绌挎杞�2 - rgv[1]: - id: 2 - ip: 192.168.1.1 - port: 502 - rack: 0 - slot: 0 - otherId: 1 - carBodyJiaoMing: 100 - carBodyKunPeng: 100 - #RGV婧愮珯鐐� - rgvInSta[0]: - devpPlcId: ${wcs-slave.devp[0].id} - staNo: 100 - direction: true - rgvInSta[1]: - devpPlcId: ${wcs-slave.devp[0].id} - staNo: 101 - #鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級 true:宸� false:鍙� - direction: false - #RGV鐩爣绔欑偣 - rgvOutSta[0]: - devpPlcId: ${wcs-slave.devp[0].id} - staNo: 100 - direction: true - rgvOutSta[1]: - devpPlcId: ${wcs-slave.devp[0].id} - staNo: 101 - #鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級 true:宸� false:鍙� - direction: false \ No newline at end of file + devpPlcId: ${wcs-slave.devp[0].id} \ No newline at end of file -- Gitblit v1.9.1