From 986cf93c869bf8d5181f96a4a8b1a6092fc34247 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 05 七月 2023 16:57:06 +0800
Subject: [PATCH] RGV control
---
src/main/java/com/zy/common/config/RedisConfig.java | 3
src/main/java/com/zy/common/utils/RedisUtil.java | 29 +
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 548 +++++++++++++++++++++++---------------
src/main/resources/mapper/BasRgvPathMapper.xml | 24 +
src/main/java/com/zy/asrs/entity/BasRgvPath.java | 154 +++++++++++
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 14 +
src/main/resources/mapper/WrkMastMapper.xml | 15 +
src/main/java/com/zy/asrs/service/impl/BasRgvPathServiceImpl.java | 16 +
src/main/java/com/zy/asrs/mapper/BasRgvPathMapper.java | 14 +
src/main/java/com/zy/core/MainProcess.java | 4
src/main/java/com/zy/asrs/service/BasRgvPathService.java | 10
11 files changed, 608 insertions(+), 223 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/BasRgvPath.java b/src/main/java/com/zy/asrs/entity/BasRgvPath.java
new file mode 100644
index 0000000..280ce40
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/BasRgvPath.java
@@ -0,0 +1,154 @@
+package com.zy.asrs.entity;
+
+import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.core.common.SpringUtils;
+import com.zy.system.service.UserService;
+import com.zy.system.entity.User;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import org.springframework.format.annotation.DateTimeFormat;
+import com.core.common.SpringUtils;
+import com.zy.system.service.UserService;
+import com.zy.system.entity.User;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+@Data
+@TableName("asr_bas_rgv_path")
+public class BasRgvPath implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * RGV缂栧彿
+ */
+ @ApiModelProperty(value= "RGV缂栧彿")
+ @TableId(value = "rgv_no", type = IdType.INPUT)
+ @TableField("rgv_no")
+ private Integer rgvNo;
+
+ /**
+ * RGV杩愯璺緞
+ */
+ @ApiModelProperty(value= "RGV杩愯璺緞")
+ private String path;
+
+ /**
+ * 鐘舵�� 1: 姝e父 0: 绂佺敤
+ */
+ @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ")
+ private Integer status;
+
+ /**
+ * 娣诲姞浜哄憳
+ */
+ @ApiModelProperty(value= "娣诲姞浜哄憳")
+ @TableField("create_by")
+ private Long createBy;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @TableField("create_time")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ /**
+ * 淇敼浜哄憳
+ */
+ @ApiModelProperty(value= "淇敼浜哄憳")
+ @TableField("update_by")
+ private Long updateBy;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value= "淇敼鏃堕棿")
+ @TableField("update_time")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value= "澶囨敞")
+ private String memo;
+
+ public BasRgvPath() {}
+
+ public BasRgvPath(Integer rgvNo,String path,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
+ this.rgvNo = rgvNo;
+ this.path = path;
+ this.status = status;
+ this.createBy = createBy;
+ this.createTime = createTime;
+ this.updateBy = updateBy;
+ this.updateTime = updateTime;
+ this.memo = memo;
+ }
+
+// BasRgvPath basRgvPath = new BasRgvPath(
+// null, // RGV缂栧彿[闈炵┖]
+// null, // RGV杩愯璺緞
+// null, // 鐘舵��
+// null, // 娣诲姞浜哄憳
+// null, // 娣诲姞鏃堕棿
+// null, // 淇敼浜哄憳
+// null, // 淇敼鏃堕棿
+// null // 澶囨敞
+// );
+
+ public String getStatus$(){
+ if (null == this.status){ return null; }
+ switch (this.status){
+ case 1:
+ return "姝e父";
+ case 0:
+ return "绂佺敤";
+ default:
+ return String.valueOf(this.status);
+ }
+ }
+
+ public String getCreateBy$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.createBy);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getUsername());
+ }
+ return null;
+ }
+
+ public String getCreateTime$(){
+ if (Cools.isEmpty(this.createTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+ }
+
+ public String getUpdateBy$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.updateBy);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getUsername());
+ }
+ return null;
+ }
+
+ public String getUpdateTime$(){
+ if (Cools.isEmpty(this.updateTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+ }
+
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasRgvPathMapper.java b/src/main/java/com/zy/asrs/mapper/BasRgvPathMapper.java
new file mode 100644
index 0000000..57967ac
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/BasRgvPathMapper.java
@@ -0,0 +1,14 @@
+package com.zy.asrs.mapper;
+
+import com.zy.asrs.entity.BasRgvPath;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface BasRgvPathMapper extends BaseMapper<BasRgvPath> {
+
+ BasRgvPath selectByRgvNo(Integer rgvNo);
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 6237eef..dad8f44 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -177,6 +177,20 @@
/*================================================RGV浠诲姟缁戝畾鐩稿叧 ==================================================*/
/**
+ * 鑾峰彇绛夊緟缁戝畾RGV鐨勪换鍔�
+ * @return
+ */
+ List<WrkMast> selectWaitBindRGV();
+
+ /**
+ * 鏌ユ壘鏄惁瀛樺湪鍏ュ嚭搴撳伐浣滀腑绛夊緟RGV鎼繍鐨勪换鍔�
+ *
+ * @param rgvNo
+ * @return
+ */
+ List<WrkMast> selectIoRgvNo(@Param("rgvNo") Integer rgvNo);
+
+ /**
* 鏌ユ壘鏄惁瀛樺湪鍏ュ簱宸ヤ綔涓鍦ㄨ蛋鍚慠GV鐨勪换鍔�
* @param wrkNo
* @return
diff --git a/src/main/java/com/zy/asrs/service/BasRgvPathService.java b/src/main/java/com/zy/asrs/service/BasRgvPathService.java
new file mode 100644
index 0000000..a6708cd
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasRgvPathService.java
@@ -0,0 +1,10 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.BasRgvPath;
+import com.baomidou.mybatisplus.service.IService;
+
+public interface BasRgvPathService extends IService<BasRgvPath> {
+
+ BasRgvPath selectByRgvNo(Integer rgvNo);
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasRgvPathServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasRgvPathServiceImpl.java
new file mode 100644
index 0000000..c50e3a8
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasRgvPathServiceImpl.java
@@ -0,0 +1,16 @@
+package com.zy.asrs.service.impl;
+
+import com.zy.asrs.mapper.BasRgvPathMapper;
+import com.zy.asrs.entity.BasRgvPath;
+import com.zy.asrs.service.BasRgvPathService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("basRgvPathService")
+public class BasRgvPathServiceImpl extends ServiceImpl<BasRgvPathMapper, BasRgvPath> implements BasRgvPathService {
+
+ @Override
+ public BasRgvPath selectByRgvNo(Integer rgvNo) {
+ return this.baseMapper.selectByRgvNo(rgvNo);
+ }
+}
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 a0aefbe..0e6d25b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -10,7 +10,6 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasCrnErrorMapper;
import com.zy.asrs.mapper.BasRgvErrMapper;
-import com.zy.asrs.mapper.WaitPakinMapper;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
@@ -88,6 +87,8 @@
private BasRgvErrMapper basRgvErrMapper;
@Autowired
private BasRgvErrLogService basRgvErrLogService;
+ @Autowired
+ private BasRgvPathService basRgvPathService;
@Value("${wms.url}")
private String wmsUrl;
@@ -513,9 +514,17 @@
}
/**
- * 缁戝畾灏忚溅鏂规硶
+ * 鎼滅储RGV杞︺�傞�氳繃鐩爣绔欐悳绱㈠摢鍙拌溅鍙敤
*/
- public synchronized void rgvBindSte() {
+ public synchronized Integer searchRgvNo(Integer staNo) {
+ BasDevp basDevp = basDevpService.selectById(staNo);
+ if (basDevp == null) {
+ return null;//鐩爣绔欎笉瀛樺湪
+ }
+ //璺緞鍊�
+ int path = basDevp.getLocType3().intValue();
+
+ ArrayList<RgvThread> list = new ArrayList<>();
for (RgvSlave rgv : slaveProperties.getRgv()) {
// 鑾峰彇RGV淇℃伅
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
@@ -529,78 +538,63 @@
continue;
}
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�, 骞朵笖鏃犱换鍔°�佹棤鐗╂椂鎵嶇户缁墽琛�
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0
- && rgvProtocol.getLoaded1() == 0 && rgvProtocol.getLoaded2() == 0
- ) {
- // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
- if (rgvProtocol.getLastIo().equals("I")) {
- if (basRgv.getInEnable().equals("Y")) {
- this.rgvBindSteIn(rgv, rgvProtocol); // 鍏ュ簱
- rgvProtocol.setLastIo("O");
- } else if (basRgv.getOutEnable().equals("Y")) {
- this.rgvBindSteOut(rgv, rgvProtocol); // 鍑哄簱
- rgvProtocol.setLastIo("I");
- }
+ list.add(rgvThread);
+ }
+
+ if (list.size() > 1) {
+ //瓒呰繃涓ゅ彴杞︼紝鎸夌収閰嶇疆鐨勮鍒欒繘琛屽垎閰�
+ for (RgvThread rgvThread : list) {
+ //鑾峰彇杞﹁締閰嶇疆鐨勮矾寰勮鍒�
+ BasRgvPath basRgvPath = basRgvPathService.selectByRgvNo(rgvThread.getSlave().getId());
+ if (basRgvPath == null) {
+ continue;
}
- // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
- else if (rgvProtocol.getLastIo().equals("O")) {
- if (basRgv.getOutEnable().equals("Y")) {
- this.rgvBindSteOut(rgv, rgvProtocol); // 鍑哄簱
- rgvProtocol.setLastIo("I");
- } else if (basRgv.getInEnable().equals("Y")) {
- this.rgvBindSteIn(rgv, rgvProtocol); // 鍏ュ簱
- rgvProtocol.setLastIo("O");
- }
+ //鐩爣绔欐槸鍚﹀寘鍚綋鍓嶈矾寰勪腑
+ List<Integer> rgvPath = JSON.parseArray(basRgvPath.getPath(), Integer.class);
+ if (rgvPath.contains(path)) {
+ //褰撳墠璺緞涓寘鍚洰鏍囩珯锛屽垯閫夊畾杩欏彴杞�
+ return rgvThread.getSlave().getId();
}
+ }
+ }else {
+ //灏忎簬鎴栫瓑浜�1鍙拌溅锛屽垎閰嶅叏璺緞
+ List<Integer> rgvPath = new ArrayList<Integer>(){{
+ add(1);add(2);add(3);add(4);add(5);add(6);
+ add(7);add(8);add(9);add(10);add(11);add(12);
+ add(13);add(14);add(15);add(16);add(17);add(18);
+ }};
+ if (rgvPath.contains(path)) {
+ //褰撳墠璺緞涓寘鍚洰鏍囩珯锛屽垯閫夊畾杩欏彴杞�
+ return list.get(0).getSlave().getId();
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * 缁戝畾灏忚溅鏂规硶
+ */
+ public synchronized void rgvBindSte() {
+ //鑾峰彇绛夊緟缁戝畾RGV鐨勪换鍔�
+ List<WrkMast> wrkMasts = wrkMastMapper.selectWaitBindRGV();
+ for (WrkMast wrkMast : wrkMasts) {
+ //鐩爣绔�
+ Integer staNo = wrkMast.getStaNo();
+ //閫氳繃鐩爣绔欐悳绱gv鍙�
+ Integer rgvNo = this.searchRgvNo(staNo);
+ if (rgvNo == null) {//鏈壘鍒板彲鐢ㄧ殑rgv
+ continue;
+ }
+
+ wrkMast.setRgvNo(rgvNo);//缁戝畾rgv鍙�
+ wrkMast.setRgvDstaNo(wrkMast.getSourceStaNo());//璁剧疆RGV鍓嶅線宸ヤ綔妗f簮绔欏彇璐�
+ if (wrkMastMapper.updateById(wrkMast)==0){
+ log.error("缁戝畾灏忚溅鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
}
}
}
- /**
- * 缁戝畾灏忚溅鍏ュ簱鏂规硶
- */
- public synchronized void rgvBindSteIn(RgvSlave slave, RgvProtocol rgvProtocol) {
- for (RgvSlave.RgvStn rgvStn: slave.getRgvInSStn()){
- Integer staNo = rgvStn.getStaNo();
- BasDevp basDevp = basDevpService.selectById(rgvStn.getDevpPlcId());
- if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0){
- continue;
- }else {
- WrkMast wrkMast = wrkMastMapper.selectRgvInSteWrkNo(basDevp.getWrkNo());
- if (!Cools.isEmpty(wrkMast)){
- wrkMast.setRgvNo(wrkMast.getCrnNo()>3 ? 2 : 1);
- wrkMast.setAppeTime(new Date());
- if (wrkMastMapper.updateById(wrkMast)==0){
- log.error("缁戝畾灏忚溅鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
- }
- }
- }
- }
- }
-
- /**
- * 缁戝畾灏忚溅鍑哄簱鏂规硶
- */
- public synchronized void rgvBindSteOut(RgvSlave slave, RgvProtocol rgvProtocol) {
- for (RgvSlave.RgvStn rgvStn: slave.getRgvOutSStn()){
- BasDevp basDevp = basDevpService.selectById(rgvStn.getDevpPlcId());
- if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0){
- continue;
- }else {
- WrkMast wrkMast = wrkMastMapper.selectRgvOutSteWrkNo(basDevp.getWrkNo());
- if (!Cools.isEmpty(wrkMast)){
- wrkMast.setRgvNo(rgvStn.getStaNo());
- wrkMast.setAppeTime(new Date());
- if (wrkMastMapper.updateById(wrkMast)==0){
- log.error("缁戝畾灏忚溅鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
- }
- }
- }
- }
- }
/**
* 鍏ュ嚭搴� ===>> RGV鍏ュ嚭搴撲綔涓氫笅鍙�
*/
@@ -618,32 +612,125 @@
continue;
}
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�, 骞朵笖鏃犱换鍔°�佹棤鐗╂椂鎵嶇户缁墽琛�
+ // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0
- && rgvProtocol.getLoaded1() == 0 && rgvProtocol.getLoaded2() == 0
+// && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0
+// && rgvProtocol.getLoaded1() == 0 && rgvProtocol.getLoaded2() == 0
) {
- // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
- if (rgvProtocol.getLastIo().equals("I")) {
- if (basRgv.getInEnable().equals("Y")) {
- this.rgvInStn(rgv, rgvProtocol); // 鍏ュ簱
- rgvProtocol.setLastIo("O");
- } else if (basRgv.getOutEnable().equals("Y")) {
- this.rgvOutStn(rgv, rgvProtocol); // 鍑哄簱
- rgvProtocol.setLastIo("I");
+
+ //鏌ユ壘鏄惁瀛樺湪鍏ュ嚭搴撳伐浣滀腑绛夊緟RGV鎼繍鐨勪换鍔�
+ List<WrkMast> wrkMasts = wrkMastMapper.selectIoRgvNo(rgv.getId());
+ for (WrkMast wrkMast : wrkMasts) {
+ if (wrkMast.getWrkSts() == 2) {//2.璁惧涓婅蛋1 => 3.RGV鍙栬揣涓�
+ if (rgvProtocol.getTaskNo1() != 0 || rgvProtocol.getLoaded1() != 0) {//RGV鏄惁鏃犱换鍔°�丷GV鏄惁鏃犺揣
+ continue;
+ }
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ RgvCommand rgvCommand = new RgvCommand();
+ rgvCommand.setRgvNo(wrkMast.getRgvNo()); // RGV缂栧彿
+ rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+ rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+ rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栬揣
+ rgvCommand.setDestinationStaNo1(wrkMast.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
+ rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getRgvNo(), new Task(4, rgvCommand))) {
+ //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getRgvNo(), JSON.toJSON(rgvCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋1 => 3.RGV鍙栬揣涓�
+ Date now = new Date();
+ wrkMast.setWrkSts(3L);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋1 => 3.RGV鍙栬揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+ }
+ } else if (wrkMast.getWrkSts() == 4) {//4.RGV鍙栬揣瀹屾垚 => 5.RGV鏀捐揣涓�
+ if (rgvProtocol.getTaskNo1() == 0 || !rgvProtocol.getTaskNo1().equals(wrkMast.getWrkNo().shortValue())) {//RGV蹇呴』鏈変换鍔′笖浠诲姟鍜屽綋鍓嶅伐浣滄。涓�鑷�
+ continue;
+ }
+ if (rgvProtocol.getLoaded1() == 0) {//RGV蹇呴』鏈夌墿
+ continue;
+ }
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ RgvCommand rgvCommand = new RgvCommand();
+ rgvCommand.setRgvNo(wrkMast.getRgvNo()); // RGV缂栧彿
+ rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+ rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+ rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
+ rgvCommand.setDestinationStaNo1(wrkMast.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
+ rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getRgvNo(), new Task(4, rgvCommand))) {
+ //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getRgvNo(), JSON.toJSON(rgvCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 4.RGV鍙栬揣瀹屾垚 => 5.RGV鏀捐揣涓�
+ Date now = new Date();
+ wrkMast.setWrkSts(5L);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 4.RGV鍙栬揣瀹屾垚 => 5.RGV鏀捐揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+ }
+ } else if (wrkMast.getWrkSts() == 23) {//23.璁惧涓婅蛋1 => 24.RGV鍙栬揣涓�
+ if (rgvProtocol.getTaskNo1() != 0 || rgvProtocol.getLoaded1() != 0) {//RGV鏄惁鏃犱换鍔°�丷GV鏄惁鏃犺揣
+ continue;
+ }
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ RgvCommand rgvCommand = new RgvCommand();
+ rgvCommand.setRgvNo(wrkMast.getRgvNo()); // RGV缂栧彿
+ rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+ rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+ rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栬揣
+ rgvCommand.setDestinationStaNo1(wrkMast.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
+ rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getRgvNo(), new Task(4, rgvCommand))) {
+ //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getRgvNo(), JSON.toJSON(rgvCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 23.璁惧涓婅蛋1 => 24.RGV鍙栬揣涓�
+ Date now = new Date();
+ wrkMast.setWrkSts(24L);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 23.璁惧涓婅蛋1 => 24.RGV鍙栬揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+ }
+ } else if (wrkMast.getWrkSts() == 25) {//25.RGV鍙栬揣瀹屾垚 => 26.RGV鏀捐揣涓�
+ if (rgvProtocol.getTaskNo1() == 0 || !rgvProtocol.getTaskNo1().equals(wrkMast.getWrkNo().shortValue())) {//RGV蹇呴』鏈変换鍔′笖浠诲姟鍜屽綋鍓嶅伐浣滄。涓�鑷�
+ continue;
+ }
+ if (rgvProtocol.getLoaded1() == 0) {//RGV蹇呴』鏈夌墿
+ continue;
+ }
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ RgvCommand rgvCommand = new RgvCommand();
+ rgvCommand.setRgvNo(wrkMast.getRgvNo()); // RGV缂栧彿
+ rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+ rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+ rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
+ rgvCommand.setDestinationStaNo1(wrkMast.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
+ rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getRgvNo(), new Task(4, rgvCommand))) {
+ //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getRgvNo(), JSON.toJSON(rgvCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 25.RGV鍙栬揣瀹屾垚 => 26.RGV鏀捐揣涓�
+ Date now = new Date();
+ wrkMast.setWrkSts(26L);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 25.RGV鍙栬揣瀹屾垚 => 26.RGV鏀捐揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+ }
}
}
- // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
- else if (rgvProtocol.getLastIo().equals("O")) {
- if (basRgv.getOutEnable().equals("Y")) {
- this.rgvOutStn(rgv, rgvProtocol); // 鍑哄簱
- rgvProtocol.setLastIo("I");
- } else if (basRgv.getInEnable().equals("Y")) {
- this.rgvInStn(rgv, rgvProtocol); // 鍏ュ簱
- rgvProtocol.setLastIo("O");
- }
- }
+
}
}
}
@@ -1598,6 +1685,7 @@
* 鏍规嵁RGV瀹屾垚淇″彿锛屾墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屽拰RGV鐨勪换鍔′笅鍙�
*/
public synchronized void rgvFinished() {
+ Date now = new Date();
for (RgvSlave rgv : slaveProperties.getRgv()) {
// 鑾峰彇RGV淇℃伅
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
@@ -1605,133 +1693,161 @@
if (rgvProtocol == null) {
continue;
}
- // 宸ヤ綅1鐘舵�侊細鍙栬揣瀹屾垚绛夊緟纭91 骞朵笖 浠诲姟瀹屾垚浣� = 1
- if (rgvProtocol.statusType1 == RgvStatusType.FETCHWAITING && rgvProtocol.getTaskNo1() != 0) {
- //宸ヤ綅1鍙栬揣瀹屾垚鍚庯紝宸ヤ綅2鏄棤璐х┖闂茬姸鎬佹椂锛屽噯澶囩粰宸ヤ綅2鍙戜换鍔★紝纭鏄惁鏈夊緟鎵цRGV浠诲姟
- if (rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getTaskNo1() > 0 && rgvProtocol.getTaskNo2() == 0
- && rgvProtocol.getLoaded1() > 0 && rgvProtocol.getLoaded2() == 0
- && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
- ) {
- WrkMast wrkMast1 = wrkMastMapper.selectPakInStep3(rgvProtocol.getTaskNo1().intValue());
- if (wrkMast1 == null) {
- log.error("RGV宸ヤ綅1澶勪簬绛夊緟纭涓斿彇璐т换鍔″畬鎴愮姸鎬侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�俁GV鍙�={}锛屽伐浣滃彿={}", rgv.getId(), rgvProtocol.getTaskNo1());
- continue;
- }
- List<WrkMast> wrkMastTask = new ArrayList<>();
- List<WrkMast> list = new ArrayList<>();
- Integer type = 0;//1鍏ュ簱锛�2鍑哄簱
- if(wrkMast1.getWrkSts()==6L){
- wrkMastTask = getRgvInTask(rgv);
- list = wrkMastMapper.selectRgvInWorking(rgv.getId());
- type = 1;
- } else if(wrkMast1.getWrkSts()==16L){
- wrkMastTask = getRgvOutTask(rgv);
- list = wrkMastMapper.selectRgvOutWorking(rgv.getId());
- type = 2;
- }
- if(wrkMastTask.size() > 0){//鏈夌户缁墽琛屼换鍔★紝涓嬪彂鍙栬揣浠诲姟缁欏伐浣�2
- // 宸茬粡瀛樺湪RGV鎵ц浠诲姟鏃讹紝鍒欒繃婊�
- if (list.size() > 1) {
- continue;
- }
- WrkMast wrkMast2 = wrkMastTask.get(0);
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgv.getId()); // RGV缂栧彿
- rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo2(wrkMast2.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
- rgvCommand.setTaskMode2(RgvTaskModeType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栬揣
- rgvCommand.setSourceStaNo2(wrkMast2.getRgvSstaNo().shortValue()); //宸ヤ綅2婧愮珯鐐�
- rgvCommand.setDestinationStaNo2(wrkMast2.getRgvDstaNo().shortValue()); //宸ヤ綅2鐩爣绔欑偣
- rgvCommand.setCommand((short) 0); //宸ヤ綅1銆�2浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast2.getRgvNo(), new Task(5, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgv.getId(), JSON.toJSON(rgvCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 6.RGV鍏ュ簱鍙栬揣涓�
- Date now = new Date();
- wrkMast2.setWrkSts(type==1 ? 6L : 16L);
- wrkMast2.setCrnStrTime(now);
- wrkMast2.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast2) == 0) {
- log.error("宸ヤ綅2淇敼宸ヤ綔妗g姸鎬� 2/14.璁惧涓婅蛋 => 6/16.RGV鍏ュ簱鍙栬揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast2.getWrkNo());
- }
- }
- } else {//娌℃湁缁х画鎵ц浠诲姟锛屼笅鍙戞斁璐т换鍔$粰宸ヤ綅1
- if(type == 1 && wrkMast1.getWrkSts() != 6L){//RGV鍏ュ簱鍙栬揣涓�
- continue;
- }
- if(type == 2 && wrkMast1.getWrkSts() != 16L){//RGV鍑哄簱鍙栬揣涓�
- continue;
- }
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgv.getId()); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(wrkMast1.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
- rgvCommand.setSourceStaNo1(wrkMast1.getRgvSstaNo().shortValue()); //宸ヤ綅1婧愮珯鐐�
- rgvCommand.setDestinationStaNo1(wrkMast1.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setCommand((short) 0); //宸ヤ綅1銆�2浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast1.getRgvNo(), new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2浠诲姟纭锛� step=4锛屽伐浣�1纭锛� step=5锛屽伐浣�2浠诲姟纭
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgv.getId(), JSON.toJSON(rgvCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 6.RGV鍏ュ簱鍙栬揣涓� => 7.RGV鍏ュ簱鏀捐揣涓�
- Date now = new Date();
- wrkMast1.setWrkSts(type==1 ? 7L : 17L);
- wrkMast1.setCrnEndTime(now);
- wrkMast1.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast1) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 6/16.RGV鍏ュ簱鍙栬揣涓� => 7/17.RGV鍏ュ簱鏀捐揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast1.getWrkNo());
- }
- log.error("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgv.getId(), JSON.toJSON(rgvCommand));
- }
- }
- } else if (rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getTaskNo1() > 0 && rgvProtocol.getTaskNo2() > 0
- && rgvProtocol.getLoaded1() > 0 && rgvProtocol.getLoaded2() > 0
- && rgvProtocol.statusType2 == RgvStatusType.FETCHWAITING){
- // 宸ヤ綅2鐘舵�侊細涔熸槸鍙栬揣瀹屾垚绛夊緟纭91 骞朵笖 浠诲姟瀹屾垚浣� = 1, 宸ヤ綅1銆�2鍚屾椂涓嬪彂鏀捐揣浠诲姟
- WrkMast wrkMast1 = wrkMastMapper.selectPakInStep3(rgvProtocol.getTaskNo1().intValue());
- WrkMast wrkMast2 = wrkMastMapper.selectPakInStep3(rgvProtocol.getTaskNo2().intValue());
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgv.getId()); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(wrkMast1.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
- rgvCommand.setSourceStaNo1(wrkMast1.getRgvSstaNo().shortValue()); //宸ヤ綅1婧愮珯鐐�
- rgvCommand.setDestinationStaNo1(wrkMast1.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo2(wrkMast2.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
- rgvCommand.setTaskMode2(RgvTaskModeType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣
- rgvCommand.setSourceStaNo2(wrkMast2.getRgvSstaNo().shortValue()); //宸ヤ綅2婧愮珯鐐�
- rgvCommand.setDestinationStaNo2(wrkMast2.getRgvDstaNo().shortValue()); //宸ヤ綅2鐩爣绔欑偣
- rgvCommand.setCommand((short) 0); //宸ヤ綅1銆�2浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast1.getRgvNo(), new Task(2, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2浠诲姟纭锛� step=4锛屽伐浣�1纭锛� step=5锛屽伐浣�2浠诲姟纭
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgv.getId(), JSON.toJSON(rgvCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 6.RGV鍏ュ簱鍙栬揣涓�
- Date now = new Date();
- wrkMast1.setWrkSts(wrkMast1.getWrkSts()==6L ? 7L : 17L);
- wrkMast1.setCrnStrTime(now);
- wrkMast1.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast1) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 6/16.RGV鍏ュ簱鍙栬揣涓� => 7/17.RGV鍏ュ簱鏀捐揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast1.getWrkNo());
- }
-
- wrkMast2.setWrkSts(wrkMast2.getWrkSts()==6L ? 7L : 17L);
- wrkMast2.setCrnStrTime(now);
- wrkMast2.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast2) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 6/16.RGV鍏ュ簱鍙栬揣涓� => 7/17.RGV鍏ュ簱鏀捐揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast2.getWrkNo());
- }
- }
+ //鍒ゆ柇RGV鏄惁绌洪棽锛屽伐浣�1鏄惁绌洪棽锛屽伐浣�1鏄惁鏈夌墿锛屾槸鍚︿负鐢佃剳妯″紡锛屽伐浣�1鏄惁鏈夊伐浣滃彿
+ if (rgvProtocol.statusType1 == RgvStatusType.FETCHWAITING
+ && rgvProtocol.getModeType() == RgvModeType.AUTO
+ && rgvProtocol.getTaskNo1() != 0
+ && rgvProtocol.getStatus() != 0
+ && rgvProtocol.getStatus1() != 0
+ ) {
+ WrkMast wrkMast1 = wrkMastMapper.selectPakInStep3(rgvProtocol.getTaskNo1().intValue());
+ if (wrkMast1 == null) {
+ log.error("RGV宸ヤ綅1澶勪簬绛夊緟纭涓斿彇璐т换鍔″畬鎴愮姸鎬侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�俁GV鍙�={}锛屽伐浣滃彿={}", rgv.getId(), rgvProtocol.getTaskNo1());
+ continue;
}
+
+ if (wrkMast1.getWrkSts() == 3) {//3.RGV鍙栬揣涓� => 4.RGV鍙栬揣瀹屾垚
+ wrkMast1.setWrkSts(4L);
+ }else if(wrkMast1.getWrkSts() == 5){//5.RGV鏀捐揣涓� => 6.RGV鏀捐揣瀹屾垚
+ rgvProtocol.setTaskNo1((short) 0);//鍏ュ簱浠诲姟瀹屾垚锛屾竻绌轰换鍔″彿
+ wrkMast1.setWrkSts(6L);
+ } else if (wrkMast1.getWrkSts() == 24) {//24.RGV鍙栬揣涓� => 25.RGV鍙栬揣瀹屾垚
+ wrkMast1.setWrkSts(25L);//
+ } else if (wrkMast1.getWrkSts() == 26) {//26.RGV鏀捐揣涓� => 27.RGV鏀捐揣瀹屾垚
+ rgvProtocol.setTaskNo1((short) 0);//鍑哄簱浠诲姟瀹屾垚锛屾竻绌轰换鍔″彿
+ wrkMast1.setWrkSts(27L);//27.RGV鏀捐揣瀹屾垚
+ }
+
+ wrkMast1.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast1) == 0) {
+ log.error("宸ヤ綅1淇敼宸ヤ綔妗g姸鎬佸け璐ワ紒锛侊紝宸ヤ綔鍙�={}", wrkMast1.getWrkNo());
+ }
+
+// //宸ヤ綅1鍙栬揣瀹屾垚鍚庯紝宸ヤ綅2鏄棤璐х┖闂茬姸鎬佹椂锛屽噯澶囩粰宸ヤ綅2鍙戜换鍔★紝纭鏄惁鏈夊緟鎵цRGV浠诲姟
+// if (rgvProtocol.getModeType() == RgvModeType.AUTO
+// && rgvProtocol.getTaskNo1() > 0 && rgvProtocol.getTaskNo2() == 0
+// && rgvProtocol.getLoaded1() > 0 && rgvProtocol.getLoaded2() == 0
+// && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
+// ) {
+// WrkMast wrkMast1 = wrkMastMapper.selectPakInStep3(rgvProtocol.getTaskNo1().intValue());
+// if (wrkMast1 == null) {
+// log.error("RGV宸ヤ綅1澶勪簬绛夊緟纭涓斿彇璐т换鍔″畬鎴愮姸鎬侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�俁GV鍙�={}锛屽伐浣滃彿={}", rgv.getId(), rgvProtocol.getTaskNo1());
+// continue;
+// }
+// List<WrkMast> wrkMastTask = new ArrayList<>();
+// List<WrkMast> list = new ArrayList<>();
+// Integer type = 0;//1鍏ュ簱锛�2鍑哄簱
+// if(wrkMast1.getWrkSts()==6L){
+// wrkMastTask = getRgvInTask(rgv);
+// list = wrkMastMapper.selectRgvInWorking(rgv.getId());
+// type = 1;
+// } else if(wrkMast1.getWrkSts()==16L){
+// wrkMastTask = getRgvOutTask(rgv);
+// list = wrkMastMapper.selectRgvOutWorking(rgv.getId());
+// type = 2;
+// }
+// if(wrkMastTask.size() > 0){//鏈夌户缁墽琛屼换鍔★紝涓嬪彂鍙栬揣浠诲姟缁欏伐浣�2
+// // 宸茬粡瀛樺湪RGV鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+// if (list.size() > 1) {
+// continue;
+// }
+// WrkMast wrkMast2 = wrkMastTask.get(0);
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// RgvCommand rgvCommand = new RgvCommand();
+// rgvCommand.setRgvNo(rgv.getId()); // RGV缂栧彿
+// rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
+// rgvCommand.setTaskNo2(wrkMast2.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
+// rgvCommand.setTaskMode2(RgvTaskModeType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栬揣
+// rgvCommand.setSourceStaNo2(wrkMast2.getRgvSstaNo().shortValue()); //宸ヤ綅2婧愮珯鐐�
+// rgvCommand.setDestinationStaNo2(wrkMast2.getRgvDstaNo().shortValue()); //宸ヤ綅2鐩爣绔欑偣
+// rgvCommand.setCommand((short) 0); //宸ヤ綅1銆�2浠诲姟纭
+// if (!MessageQueue.offer(SlaveType.Crn, wrkMast2.getRgvNo(), new Task(5, rgvCommand))) {
+// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgv.getId(), JSON.toJSON(rgvCommand));
+// } else {
+// // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 6.RGV鍏ュ簱鍙栬揣涓�
+// Date now = new Date();
+// wrkMast2.setWrkSts(type==1 ? 6L : 16L);
+// wrkMast2.setCrnStrTime(now);
+// wrkMast2.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast2) == 0) {
+// log.error("宸ヤ綅2淇敼宸ヤ綔妗g姸鎬� 2/14.璁惧涓婅蛋 => 6/16.RGV鍏ュ簱鍙栬揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast2.getWrkNo());
+// }
+// }
+// } else {//娌℃湁缁х画鎵ц浠诲姟锛屼笅鍙戞斁璐т换鍔$粰宸ヤ綅1
+// if(type == 1 && wrkMast1.getWrkSts() != 6L){//RGV鍏ュ簱鍙栬揣涓�
+// continue;
+// }
+// if(type == 2 && wrkMast1.getWrkSts() != 16L){//RGV鍑哄簱鍙栬揣涓�
+// continue;
+// }
+//
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// RgvCommand rgvCommand = new RgvCommand();
+// rgvCommand.setRgvNo(rgv.getId()); // RGV缂栧彿
+// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+// rgvCommand.setTaskNo1(wrkMast1.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+// rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
+// rgvCommand.setSourceStaNo1(wrkMast1.getRgvSstaNo().shortValue()); //宸ヤ綅1婧愮珯鐐�
+// rgvCommand.setDestinationStaNo1(wrkMast1.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
+// rgvCommand.setCommand((short) 0); //宸ヤ綅1銆�2浠诲姟纭
+// if (!MessageQueue.offer(SlaveType.Crn, wrkMast1.getRgvNo(), new Task(4, rgvCommand))) {
+// //step=2,宸ヤ綅1銆�2浠诲姟纭锛� step=4锛屽伐浣�1纭锛� step=5锛屽伐浣�2浠诲姟纭
+// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgv.getId(), JSON.toJSON(rgvCommand));
+// } else {
+// // 淇敼宸ヤ綔妗g姸鎬� 6.RGV鍏ュ簱鍙栬揣涓� => 7.RGV鍏ュ簱鏀捐揣涓�
+// Date now = new Date();
+// wrkMast1.setWrkSts(type==1 ? 7L : 17L);
+// wrkMast1.setCrnEndTime(now);
+// wrkMast1.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast1) == 0) {
+// log.error("淇敼宸ヤ綔妗g姸鎬� 6/16.RGV鍏ュ簱鍙栬揣涓� => 7/17.RGV鍏ュ簱鏀捐揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast1.getWrkNo());
+// }
+// log.error("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgv.getId(), JSON.toJSON(rgvCommand));
+// }
+// }
+// } else if (rgvProtocol.getModeType() == RgvModeType.AUTO
+// && rgvProtocol.getTaskNo1() > 0 && rgvProtocol.getTaskNo2() > 0
+// && rgvProtocol.getLoaded1() > 0 && rgvProtocol.getLoaded2() > 0
+// && rgvProtocol.statusType2 == RgvStatusType.FETCHWAITING){
+// // 宸ヤ綅2鐘舵�侊細涔熸槸鍙栬揣瀹屾垚绛夊緟纭91 骞朵笖 浠诲姟瀹屾垚浣� = 1, 宸ヤ綅1銆�2鍚屾椂涓嬪彂鏀捐揣浠诲姟
+// WrkMast wrkMast1 = wrkMastMapper.selectPakInStep3(rgvProtocol.getTaskNo1().intValue());
+// WrkMast wrkMast2 = wrkMastMapper.selectPakInStep3(rgvProtocol.getTaskNo2().intValue());
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// RgvCommand rgvCommand = new RgvCommand();
+// rgvCommand.setRgvNo(rgv.getId()); // RGV缂栧彿
+// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+// rgvCommand.setTaskNo1(wrkMast1.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+// rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
+// rgvCommand.setSourceStaNo1(wrkMast1.getRgvSstaNo().shortValue()); //宸ヤ綅1婧愮珯鐐�
+// rgvCommand.setDestinationStaNo1(wrkMast1.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
+// rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
+// rgvCommand.setTaskNo2(wrkMast2.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
+// rgvCommand.setTaskMode2(RgvTaskModeType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣
+// rgvCommand.setSourceStaNo2(wrkMast2.getRgvSstaNo().shortValue()); //宸ヤ綅2婧愮珯鐐�
+// rgvCommand.setDestinationStaNo2(wrkMast2.getRgvDstaNo().shortValue()); //宸ヤ綅2鐩爣绔欑偣
+// rgvCommand.setCommand((short) 0); //宸ヤ綅1銆�2浠诲姟纭
+// if (!MessageQueue.offer(SlaveType.Crn, wrkMast1.getRgvNo(), new Task(2, rgvCommand))) {
+// //step=2,宸ヤ綅1銆�2浠诲姟纭锛� step=4锛屽伐浣�1纭锛� step=5锛屽伐浣�2浠诲姟纭
+// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgv.getId(), JSON.toJSON(rgvCommand));
+// } else {
+// // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 6.RGV鍏ュ簱鍙栬揣涓�
+// Date now = new Date();
+// wrkMast1.setWrkSts(wrkMast1.getWrkSts()==6L ? 7L : 17L);
+// wrkMast1.setCrnStrTime(now);
+// wrkMast1.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast1) == 0) {
+// log.error("淇敼宸ヤ綔妗g姸鎬� 6/16.RGV鍏ュ簱鍙栬揣涓� => 7/17.RGV鍏ュ簱鏀捐揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast1.getWrkNo());
+// }
+//
+// wrkMast2.setWrkSts(wrkMast2.getWrkSts()==6L ? 7L : 17L);
+// wrkMast2.setCrnStrTime(now);
+// wrkMast2.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast2) == 0) {
+// log.error("淇敼宸ヤ綔妗g姸鎬� 6/16.RGV鍏ュ簱鍙栬揣涓� => 7/17.RGV鍏ュ簱鏀捐揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast2.getWrkNo());
+// }
+// }
+// }
}
}
diff --git a/src/main/java/com/zy/common/config/RedisConfig.java b/src/main/java/com/zy/common/config/RedisConfig.java
index d356517..cf99252 100644
--- a/src/main/java/com/zy/common/config/RedisConfig.java
+++ b/src/main/java/com/zy/common/config/RedisConfig.java
@@ -5,6 +5,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.*;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
@@ -14,7 +15,7 @@
* Redis閰嶇疆绫�
* Created by vincent on 2019-12-23
*/
-//@Configuration
+@Configuration
//@EnableCaching // 寮�鍚暟鎹紦瀛樻満鍒�
public class RedisConfig extends CachingConfigurerSupport {
diff --git a/src/main/java/com/zy/common/utils/RedisUtil.java b/src/main/java/com/zy/common/utils/RedisUtil.java
index b2df114..95da6dc 100644
--- a/src/main/java/com/zy/common/utils/RedisUtil.java
+++ b/src/main/java/com/zy/common/utils/RedisUtil.java
@@ -2,8 +2,11 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -13,13 +16,16 @@
* redisTemplate灏佽
*
*/
-//@Component
+@Component
public class RedisUtil {
- @Autowired
- private RedisTemplate<String, Object> redisTemplate;
+// @Autowired
+// private RedisTemplate<String, Object> redisTemplate;
- public RedisUtil(RedisTemplate<String, Object> redisTemplate) {
+ @Autowired
+ private RedisTemplate redisTemplate;
+
+ public RedisUtil(RedisTemplate redisTemplate) {
this.redisTemplate = redisTemplate;
}
@@ -96,6 +102,21 @@
}
/**
+ * 鑾峰彇鍏ㄩ儴鏁版嵁
+ * @return
+ */
+ public HashMap<Object, Object> getRedis() {
+ Set<String> keys = redisTemplate.keys("*");
+ HashMap<Object, Object> map = new HashMap<>();
+ for (String key : keys) {
+ Object value = redisTemplate.opsForValue().get(key);
+ map.put(key, value);
+ }
+
+ return map;//杩斿洖鍏ㄩ儴鏁版嵁闆嗗悎
+ }
+
+ /**
* 鏅�氱紦瀛樻斁鍏�
*
* @param key 閿�
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 9b954fc..490c4b9 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -68,8 +68,8 @@
mainService.rgvIoExecute();
// RGV鍏ュ簱 ===>> 鏍规嵁RGV瀹屾垚淇″彿,鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
mainService.rgvFinished();
- // 鍏ュ嚭搴� ===>> RGV鍑哄簱绔欏埌绯荤粺鍏ュ嚭搴撶珯
- mainService.rgvDestStnToCrnStn();
+// // 鍏ュ嚭搴� ===>> RGV鍑哄簱绔欏埌绯荤粺鍏ュ嚭搴撶珯
+// mainService.rgvDestStnToCrnStn();
// // 鍑哄簱 ===>> RGV鍑哄簱绔欏埌绯荤粺鍑哄簱绔�
// mainService.rgvOutDStnToOutStn();
//////////////////////////////////////////////////////////////////
diff --git a/src/main/resources/mapper/BasRgvPathMapper.xml b/src/main/resources/mapper/BasRgvPathMapper.xml
new file mode 100644
index 0000000..1fc1904
--- /dev/null
+++ b/src/main/resources/mapper/BasRgvPathMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.BasRgvPathMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasRgvPath">
+ <result column="rgv_no" property="rgvNo" />
+ <result column="path" property="path" />
+ <result column="status" property="status" />
+ <result column="create_by" property="createBy" />
+ <result column="create_time" property="createTime" />
+ <result column="update_by" property="updateBy" />
+ <result column="update_time" property="updateTime" />
+ <result column="memo" property="memo" />
+
+ </resultMap>
+
+ <select id="selectByRgvNo" resultMap="BaseResultMap">
+ select * from asr_bas_rgv_path
+ where 1=1
+ and rgv_no = #{rgvNo}
+ </select>
+
+</mapper>
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index bf37b5f..ae4b2c5 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -240,6 +240,13 @@
<!-- RGV璋冨害鍏ュ嚭搴撶浉鍏� -->
<!-- ==============================================RGV浠诲姟缁戝畾鐩稿叧 ============================================== -->
+ <select id="selectWaitBindRGV" resultMap="BaseResultMap">
+ select * from dbo.asr_wrk_mast
+ where 1=1
+ and wrk_sts in (2,22)
+ and rgv_no is null
+ </select>
+
<select id="selectRgvInSteWrkNo" resultMap="BaseResultMap">
select top 1 * from dbo.asr_wrk_mast where 1=1 and wrk_sts =12 and wrk_no=#{wrkNo} and rgv_no is null
</select>
@@ -248,6 +255,14 @@
select top 1 * from dbo.asr_wrk_mast where 1=1 and wrk_sts =24 and wrk_no=#{wrkNo} and rgv_no is null
</select>
+ <select id="selectIoRgvNo" resultMap="BaseResultMap">
+ select * from dbo.asr_wrk_mast
+ where 1=1
+ and wrk_sts in (2,4,23,25)
+ and rgv_no = #{rgvNo}
+ order by io_pri desc,io_time desc,wrk_no ASC
+ </select>
+
<select id="selectRgvInSteNo" resultMap="BaseResultMap">
select top 1 * from dbo.asr_wrk_mast where 1=1 and wrk_sts =12 and rgv_no=#{rgvNo}
<if test="rgvNo == 1">
--
Gitblit v1.9.1