From 7f1ee24bca80d28851a95ee2019ea6faeb70d81c Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 29 十二月 2025 17:34:39 +0800
Subject: [PATCH] 1.新增agv状态反馈
---
src/main/java/com/zy/asrs/entity/TransInOutStationAllow.java | 29 +
src/main/java/com/zy/asrs/mapper/TaskMapper.java | 10
src/main/java/com/zy/asrs/entity/TransParent.java | 39 ++
src/main/java/com/zy/asrs/controller/OpenController.java | 14
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 1
src/main/java/com/zy/asrs/entity/WrkMast.java | 4
src/main/resources/mapper/TaskMapper.xml | 11
src/main/java/com/zy/asrs/entity/RcsReturn.java | 20 +
src/main/java/com/zy/asrs/entity/RcsTaskContinue.java | 20 +
src/main/java/com/zy/asrs/entity/AgvTask.java | 486 +++++++++++++++++++++++++
src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java | 23 +
src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java | 45 ++
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java | 318 ++++++++++++++++
src/main/java/com/zy/asrs/service/RcsService.java | 15
src/main/java/com/zy/asrs/entity/RcsReporterTask.java | 21 +
src/main/java/com/zy/asrs/service/TaskService.java | 9
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 26 +
src/main/resources/application.yml | 9
18 files changed, 1,098 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 272e105..b0c8856 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -2,6 +2,9 @@
import com.core.common.R;
import com.zy.asrs.domain.param.ToOutStaParam;
+import com.zy.asrs.entity.RcsReporterTask;
+import com.zy.asrs.entity.RcsReturn;
+import com.zy.asrs.service.RcsService;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
@@ -9,6 +12,8 @@
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -16,6 +21,8 @@
@Slf4j
@RestController
public class OpenController {
+ @Autowired
+ private RcsService rcsService;
@RequestMapping("/open/toOutSta")
public R toOutSta(@RequestBody ToOutStaParam param) {
@@ -47,4 +54,11 @@
return R.ok().add(result);
}
+ // 鍙嶉浠诲姟鎵ц缁撴灉
+ @PostMapping("/api/robot/reporter/task")
+ public RcsReturn reporterTask(@RequestBody RcsReporterTask param){
+
+ return rcsService.reporterTask(param);
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/entity/AgvTask.java b/src/main/java/com/zy/asrs/entity/AgvTask.java
new file mode 100644
index 0000000..26dbb36
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/AgvTask.java
@@ -0,0 +1,486 @@
+package com.zy.asrs.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@TableName("agv_task")
+@Accessors(chain = true)
+public class AgvTask implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value= "")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 浠诲姟绫诲瀷锛� agv , crn
+ */
+ @ApiModelProperty(value= "浠诲姟绫诲瀷锛� agv , crn")
+ @TableField("task_type")
+ private String taskType;
+
+ /**
+ * 宸ヤ綔鍙�
+ */
+ @ApiModelProperty(value= "宸ヤ綔鍙�")
+ @TableField("wrk_no")
+ private Integer wrkNo;
+
+ @ApiModelProperty(value= "涓嬪彂AGV浠诲姟璁℃暟")
+ @TableField("ctn_type")
+ private Integer ctnType=0;
+
+ @ApiModelProperty(value= "")
+ @TableField("inv_wh")
+ private String invWh;
+
+ @ApiModelProperty(value= "")
+ private Date ymd;
+
+ @ApiModelProperty(value= "")
+ private String mk;
+
+ @ApiModelProperty(value= "")
+ @TableField("whs_type")
+ private Integer whsType;
+
+ /**
+ * 宸ヤ綔鐘舵��
+ */
+ @ApiModelProperty(value= "宸ヤ綔鐘舵��")
+ @TableField("wrk_sts")
+ private Long wrkSts;
+
+ /**
+ * 鍏ュ嚭搴撶被鍨�
+ * 3.绔欏埌绔�
+ * 4.绔欏埌鍖哄煙
+ * 5.鍖哄煙鍒扮珯
+ */
+ @ApiModelProperty(value= "鍏ュ嚭搴撶被鍨�")
+ @TableField("io_type")
+ private Integer ioType;
+
+ /**
+ * 鍫嗗灈鏈�
+ */
+ @ApiModelProperty(value= "鍫嗗灈鏈�")
+ @TableField("crn_no")
+ private Integer crnNo;
+
+ @ApiModelProperty(value= "")
+ @TableField("sheet_no")
+ private String sheetNo;
+
+ /**
+ * 浼樺厛绾�
+ */
+ @ApiModelProperty(value= "浼樺厛绾�")
+ @TableField("io_pri")
+ private Double ioPri;
+
+ @ApiModelProperty(value= "")
+ @TableField("wrk_date")
+ private Date wrkDate;
+
+ /**
+ * 鐩爣搴撲綅
+ */
+ @ApiModelProperty(value= "鐩爣搴撲綅")
+ @TableField("loc_no")
+ private String locNo;
+
+ /**
+ * 鐩爣绔�
+ */
+ @ApiModelProperty(value= "鐩爣绔�")
+ @TableField("sta_no")
+ private String staNo;
+
+ /**
+ * 婧愮珯
+ */
+ @ApiModelProperty(value= "婧愮珯")
+ @TableField("source_sta_no")
+ private String sourceStaNo;
+
+ /**
+ * 婧愬簱浣�
+ */
+ @ApiModelProperty(value= "婧愬簱浣�")
+ @TableField("source_loc_no")
+ private String sourceLocNo;
+
+ @ApiModelProperty(value= "")
+ @TableField("loc_sts")
+ private String locSts;
+
+ @ApiModelProperty(value= "1.娴峰悍AGV 2.鍗庢檽AGV 榛樿鏄�1.娴峰悍")
+ @TableField("plt_type")
+ private Integer pltType=1;
+
+ @ApiModelProperty(value= "鏂欐灦鍙�")
+ private String packed;
+
+ /**
+ * 鎷f枡
+ */
+ @ApiModelProperty(value= "鎷f枡")
+ private String picking;
+
+ @ApiModelProperty(value= "")
+ @TableField("link_mis")
+ private String linkMis;
+
+ @ApiModelProperty(value= "")
+ @TableField("online_yn")
+ private String onlineYn;
+
+ @ApiModelProperty(value= "鏄惁浠诲姟鎶ラ敊")
+ @TableField("upd_mk")
+ private String updMk;
+
+ /**
+ * 閫�鍑�
+ */
+ @ApiModelProperty(value= "閫�鍑�")
+ @TableField("exit_mk")
+ private String exitMk;
+
+ /**
+ * 绌烘澘
+ */
+ @ApiModelProperty(value= "绌烘澘")
+ @TableField("empty_mk")
+ private String emptyMk;
+
+ /**
+ * 宸ヤ綔鏃堕棿
+ */
+ @ApiModelProperty(value= "宸ヤ綔鏃堕棿")
+ @TableField("io_time")
+ private Date ioTime;
+
+ @ApiModelProperty(value= "")
+ @TableField("ove_mk")
+ private String oveMk;
+
+ @ApiModelProperty(value= "")
+ @TableField("mtn_type")
+ private Double mtnType;
+
+ @ApiModelProperty(value= "")
+ @TableField("user_no")
+ private String userNo;
+
+ /**
+ * 鍫嗗灈鏈哄惎鍔ㄦ椂闂�
+ */
+ @ApiModelProperty(value= "鍫嗗灈鏈哄惎鍔ㄦ椂闂�")
+ @TableField("crn_str_time")
+ private Date crnStrTime;
+
+ /**
+ * 鍫嗗灈鏈哄仠姝㈡椂闂�
+ */
+ @ApiModelProperty(value= "鍫嗗灈鏈哄仠姝㈡椂闂�")
+ @TableField("crn_end_time")
+ private Date crnEndTime;
+
+ @ApiModelProperty(value= "")
+ @TableField("plc_str_time")
+ private Date plcStrTime;
+
+ @ApiModelProperty(value= "")
+ @TableField("crn_pos_time")
+ private Date crnPosTime;
+
+ @ApiModelProperty(value= "")
+ @TableField("load_time")
+ private Double loadTime;
+
+ @ApiModelProperty(value= "")
+ @TableField("exp_time")
+ private Double expTime;
+
+ @ApiModelProperty(value= "")
+ @TableField("ref_wrkno")
+ private Double refWrkno;
+
+ /**
+ * 鎷f枡鏃堕棿
+ */
+ @ApiModelProperty(value= "鎷f枡鏃堕棿")
+ @TableField("ref_iotime")
+ private Date refIotime;
+
+ /**
+ * 淇敼浜哄憳
+ */
+ @ApiModelProperty(value= "淇敼浜哄憳")
+ @TableField("modi_user")
+ private Long modiUser;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value= "淇敼鏃堕棿")
+ @TableField("modi_time")
+ private Date modiTime;
+
+ /**
+ * 鍒涘缓鑰�
+ */
+ @ApiModelProperty(value= "鍒涘缓鑰�")
+ @TableField("appe_user")
+ private Long appeUser;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @TableField("appe_time")
+ private Date appeTime;
+
+ @ApiModelProperty(value= "")
+ @TableField("pause_mk")
+ private String pauseMk;
+
+ @ApiModelProperty(value= "")
+ @TableField("error_time")
+ private Date errorTime;
+
+ @ApiModelProperty(value= "")
+ @TableField("error_memo")
+ private String errorMemo;
+
+ @ApiModelProperty(value= "")
+ @TableField("ctn_kind")
+ private Integer ctnKind;
+
+ @ApiModelProperty(value= "")
+ @TableField("manu_type")
+ private String manuType;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value= "澶囨敞")
+ private String memo;
+
+ @ApiModelProperty(value= "")
+ @TableField("sc_weight")
+ private Double scWeight;
+
+ @ApiModelProperty(value= "")
+ @TableField("log_mk")
+ private String logMk;
+
+ @ApiModelProperty(value= "")
+ @TableField("log_err_time")
+ private Date logErrTime;
+
+ @ApiModelProperty(value= "")
+ @TableField("log_err_memo")
+ private String logErrMemo;
+
+ /**
+ * 鏉$爜
+ */
+ @ApiModelProperty(value= "鏉$爜")
+ private String barcode;
+
+ // Y:閿�鍞鍗曞嚭搴撲换鍔�
+ @ApiModelProperty(value= "")
+ @TableField("Pdc_type")
+ private String PdcType;
+
+ @ApiModelProperty(value= "")
+ @TableField("ctn_no")
+ private String ctnNo;
+
+ /**
+ * 婊℃澘
+ */
+ @ApiModelProperty(value= "婊℃澘")
+ @TableField("full_plt")
+ private String fullPlt;
+
+ /**
+ * 鍏堝叆鍝� / 鍙岄噸鍏ュ簱
+ */
+ @ApiModelProperty(value= "鍏堝叆鍝�")
+ @TableField("pre_have")
+ private String preHave;
+
+ /**
+ * 绌烘搷浣� / 鍙栬揣鏃犵
+ */
+ @ApiModelProperty(value= "绌烘搷浣�")
+ @TableField("take_none")
+ private String takeNone;
+
+ /**
+ * 澶栭儴浠诲姟缂栧彿
+ */
+ @ApiModelProperty(value= "澶栭儴浠诲姟缂栧彿")
+ @TableField("task_no")
+ private String taskNo;
+
+ public String getYmd$(){
+ if (Cools.isEmpty(this.ymd)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ymd);
+ }
+
+ public String getCrnNo$(){
+ BasCrnpService service = SpringUtils.getBean(BasCrnpService.class);
+ BasCrnp basCrnp = service.selectById(this.crnNo);
+ if (!Cools.isEmpty(basCrnp)){
+ return String.valueOf(basCrnp.getCrnNo());
+ }
+ return null;
+ }
+
+ public String getWrkDate$(){
+ if (Cools.isEmpty(this.wrkDate)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.wrkDate);
+ }
+
+ public String getLocNo$(){
+ LocMastService service = SpringUtils.getBean(LocMastService.class);
+ LocMast locMast = service.selectById(this.locNo);
+ if (!Cools.isEmpty(locMast)){
+ return String.valueOf(locMast.getLocNo());
+ }
+ return null;
+ }
+
+ public String getTaskType$(){
+ if (Cools.isEmpty(this.taskType)){return null;}
+ if (taskType.equals("AGV")) {
+ return "AGV浠诲姟";
+ } else {
+ return "鍫嗗灈鏈轰换鍔�";
+ }
+ }
+
+ public String getSourceLocNo$(){
+ LocMastService service = SpringUtils.getBean(LocMastService.class);
+ LocMast locMast = service.selectById(this.sourceLocNo);
+ if (!Cools.isEmpty(locMast)){
+ return String.valueOf(locMast.getLocNo());
+ }
+ return null;
+ }
+
+ public String getIoTime$(){
+ if (Cools.isEmpty(this.ioTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
+ }
+
+ public String getCrnStrTime$(){
+ if (Cools.isEmpty(this.crnStrTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnStrTime);
+ }
+
+ public String getCrnEndTime$(){
+ if (Cools.isEmpty(this.crnEndTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnEndTime);
+ }
+
+ public String getPlcStrTime$(){
+ if (Cools.isEmpty(this.plcStrTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.plcStrTime);
+ }
+
+ public String getCrnPosTime$(){
+ if (Cools.isEmpty(this.crnPosTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnPosTime);
+ }
+
+ public String getRefIotime$(){
+ if (Cools.isEmpty(this.refIotime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.refIotime);
+ }
+
+ public String getModiUser$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.modiUser);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getUsername());
+ }
+ return null;
+ }
+
+ public String getModiTime$(){
+ if (Cools.isEmpty(this.modiTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
+ }
+
+ public String getAppeUser$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.appeUser);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getUsername());
+ }
+ return null;
+ }
+
+ public String getAppeTime$(){
+ if (Cools.isEmpty(this.appeTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
+ }
+
+ public String getErrorTime$(){
+ if (Cools.isEmpty(this.errorTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.errorTime);
+ }
+
+
+ public String getLogErrTime$(){
+ if (Cools.isEmpty(this.logErrTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.logErrTime);
+ }
+}
diff --git a/src/main/java/com/zy/asrs/entity/RcsReporterTask.java b/src/main/java/com/zy/asrs/entity/RcsReporterTask.java
new file mode 100644
index 0000000..e47371e
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/RcsReporterTask.java
@@ -0,0 +1,21 @@
+package com.zy.asrs.entity;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.Data;
+
+// 浠诲姟鎵ц鍙嶉
+@Data
+public class RcsReporterTask {
+
+ // 浠诲姟鍙�
+ private String robotTaskCode;
+ // 褰撳墠鎵ц浠诲姟鐨勬満鍣ㄤ汉鍞竴鏍囪瘑銆�
+ private String singleRobotCode;
+ // 鐩爣璺緞搴忓垪锛�0 璧风偣搴忓彿锛�1 缁堢偣搴忓彿銆�
+ private Integer currentSeq;
+ // 璇︾粏淇℃伅
+ private JSONObject extra;
+
+ //鍗庢檽AGV浠诲姟鐘舵�佸強璇锋眰
+ private String method;
+}
diff --git a/src/main/java/com/zy/asrs/entity/RcsReturn.java b/src/main/java/com/zy/asrs/entity/RcsReturn.java
new file mode 100644
index 0000000..451dac4
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/RcsReturn.java
@@ -0,0 +1,20 @@
+package com.zy.asrs.entity;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.Data;
+
+// 娴峰悍杩斿洖
+@Data
+public class RcsReturn {
+
+ // SUCCESS 鎴愬姛
+// Err_TaskTypeNotSupport 浠诲姟绫诲瀷涓嶆敮鎸�
+// Err_RobotGroupsNotMatch 鏈哄櫒浜鸿祫婧愮粍缂栧彿涓庝换鍔′笉鍖归厤锛屾棤娉曡皟搴�
+// Err_RobotCodeNotMatch 鏈哄櫒浜虹紪鍙蜂笌浠诲姟涓嶅尮閰嶏紝鏃犳硶璋冨害
+// Err_TargetRouteError 浠诲姟璺緞鍙傛暟鏈夎
+ private String code;
+
+ private String message;
+
+ private JSONObject data;
+}
diff --git a/src/main/java/com/zy/asrs/entity/RcsTaskContinue.java b/src/main/java/com/zy/asrs/entity/RcsTaskContinue.java
new file mode 100644
index 0000000..77ce0c3
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/RcsTaskContinue.java
@@ -0,0 +1,20 @@
+package com.zy.asrs.entity;
+
+import lombok.Data;
+
+// 缁х画鎵ц浠诲姟
+@Data
+public class RcsTaskContinue {
+
+ // 浠诲姟閾剧紪鍙�
+ private String robotTaskCode;
+ // 瑙﹀彂绫诲瀷锛�
+ //SITE 绔欑偣缂栧彿瑙﹀彂
+ //CARRIER 杞藉叿缂栧彿瑙﹀彂
+ //ROBOT 杞﹀彿瑙﹀彂
+ //TASK 浠诲姟閾剧紪鍙疯Е鍙�
+ private String triggerType;
+ // 涓� triggerType 瀵瑰簲鐨勮Е鍙戠紪鍙�
+ private String triggerCode;
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/TransInOutStationAllow.java b/src/main/java/com/zy/asrs/entity/TransInOutStationAllow.java
new file mode 100644
index 0000000..d1516ed
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/TransInOutStationAllow.java
@@ -0,0 +1,29 @@
+package com.zy.asrs.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+// 鍏ョ珯鍏佽銆佺绔欏厑璁�
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class TransInOutStationAllow extends TransParent {
+ //浠诲姟缂栧彿
+ private String taskno;
+ //浠诲姟鍚嶇О
+ private String taskname;
+ //AGV缂栧彿
+ private String AgvCode;
+ //杩愯緭绫诲瀷
+ private String TransType;
+ //鐢熶骇绾跨紪鍙�
+ private String ProductLineId;
+ //宸ヤ綅缂栧彿
+ private String StationId;
+
+ //浠诲姟绫诲瀷
+
+ private String taskType;
+
+ // 鏄惁鍏佽锛孻 鍏佽锛汵锛屼笉鍏佽
+ private String status;
+}
diff --git a/src/main/java/com/zy/asrs/entity/TransParent.java b/src/main/java/com/zy/asrs/entity/TransParent.java
new file mode 100644
index 0000000..58d5ca8
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/TransParent.java
@@ -0,0 +1,39 @@
+package com.zy.asrs.entity;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+// 鍑哄叆绔欒姹傜户鎵跨埗绫伙細鍏ョ珯璇锋眰銆佸叆绔欏厑璁搞�佺绔欒姹傘�佺绔欏厑璁搞�佺绔欏畬鎴�
+@Data
+public class TransParent {
+
+ // 浠诲姟缂栧彿锛寃cs_task_header琛ㄤ腑鐨則ask_no
+ private String taskno;
+ // 浠诲姟鍚嶇О锛寃cs_task_header琛ㄤ腑鐨則ask_name
+ private String taskname;
+ // AGV缂栫爜
+ @JsonProperty("AgvCode")
+ @JSONField(name = "AgvCode")
+ private String AgvCode;
+ // 杩愯緭绫诲瀷
+ @JsonProperty("TransType")
+ @JSONField(name = "TransType")
+ private String TransType;
+ // 鐢熶骇绾跨紪鐮�
+ @JsonProperty("ProductLineId")
+ @JSONField(name = "ProductLineId")
+ private String ProductLineId;
+ // 宸ヤ綅缂栫爜
+ @JsonProperty("StationId")
+ @JSONField(name = "StationId")
+ private String StationId;
+ // 浠诲姟绫诲瀷
+ @JsonProperty("TaskType")
+ @JSONField(name = "TaskType")
+ private String TaskType;
+
+ //璇锋眰绫诲瀷
+ private String method;
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index 87a11a0..ecce007 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -25,6 +25,10 @@
private static final long serialVersionUID = 1L;
+ @ApiModelProperty(value= "")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
/**
* 宸ヤ綔鍙�
*/
diff --git a/src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java b/src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java
new file mode 100644
index 0000000..6a0784a
--- /dev/null
+++ b/src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java
@@ -0,0 +1,45 @@
+package com.zy.asrs.enums;
+
+public enum RcsRetMethodEnum {
+
+ TASK_START("start", "浠诲姟寮�濮�"),
+ TASK_OUT_BIN("outbin", "璧板嚭鍌ㄤ綅"),
+
+ APPLY_IN_STATION("applyInStation", "鍏ョ珯璇锋眰"),
+ APPLY_OFF_STATION("applyOutStation", "绂荤珯璇锋眰"),
+ ARRIVE_ON_STATION("arriveOnStation", "鍒扮珯瀹屾垚"),
+ ARRIVE_OFF_STATION("arriveOffStation", "绂荤珯瀹屾垚"),
+
+
+ APPLY_PUT("applyPut", "鏀捐揣鐢宠"),
+ TASK_END("end", "浠诲姟瀹屾垚"),
+ APPLY_PICK("applyPick", "鍙栬揣鐢宠"),
+ PICK_COMPLETE("pickComplete", "rcs鍙栬揣瀹屾垚锛屽凡閫�鍑鸿緭閫佺嚎");
+
+
+
+ private String code;
+ private String message;
+
+ RcsRetMethodEnum(String code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public static RcsRetMethodEnum getEnum(String code) {
+ for (RcsRetMethodEnum method : RcsRetMethodEnum.values()) {
+ if (method.getCode().equals(code)) {
+ return method;
+ }
+ }
+ return null;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/mapper/TaskMapper.java b/src/main/java/com/zy/asrs/mapper/TaskMapper.java
new file mode 100644
index 0000000..5b43cb5
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/TaskMapper.java
@@ -0,0 +1,10 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.AgvTask;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface TaskMapper extends BaseMapper<AgvTask> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/RcsService.java b/src/main/java/com/zy/asrs/service/RcsService.java
new file mode 100644
index 0000000..0866675
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/RcsService.java
@@ -0,0 +1,15 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.RcsReporterTask;
+import com.zy.asrs.entity.RcsReturn;
+
+public interface RcsService {
+
+ /**
+ * 2.2.1浠诲姟鎵ц鍥為
+ *
+ * @param rcsReporterTask
+ * @return
+ */
+ RcsReturn reporterTask(RcsReporterTask rcsReporterTask);
+}
diff --git a/src/main/java/com/zy/asrs/service/TaskService.java b/src/main/java/com/zy/asrs/service/TaskService.java
new file mode 100644
index 0000000..eaad23f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/TaskService.java
@@ -0,0 +1,9 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.AgvTask;
+import org.springframework.stereotype.Service;
+
+@Service
+public interface TaskService extends IService<AgvTask> {
+}
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 7288c3c..986bd05 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2436,6 +2436,7 @@
int workNo = commonService.getWorkNo(0);
// 淇濆瓨宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
+ wrkMast.setId();
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
new file mode 100644
index 0000000..2347bfc
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -0,0 +1,318 @@
+package com.zy.asrs.service.impl;
+
+import com.alibaba.excel.util.StringUtils;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.enums.RcsRetMethodEnum;
+import com.zy.asrs.service.RcsService;
+import com.zy.asrs.service.TaskService;
+import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.Task;
+import com.zy.core.model.protocol.StaProtocol;
+import com.zy.core.thread.SiemensDevpThread;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.ConnectException;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+@Slf4j
+@Service
+public class RcsServiceImpl implements RcsService {
+ // 娴峰悍RCS鍦板潃
+ @Value("${hik.url}")
+ private String HIK_URL;
+
+ @Autowired
+ private TaskService taskService;
+
+
+ /**
+ * 2.2.1浠诲姟鎵ц鍥為
+ * 鍘傚锛氭捣閲忋�佸崕鏅�
+ *
+ * @param rcsReporterTask
+ * @return
+ */
+ @Override
+ public RcsReturn reporterTask(RcsReporterTask rcsReporterTask) {
+
+ RcsReturn rcsReturn = new RcsReturn();
+
+ String robotTaskCode = rcsReporterTask.getRobotTaskCode();
+ String singleRobotCode = rcsReporterTask.getSingleRobotCode();
+ String[] split = robotTaskCode.split("-");
+ robotTaskCode = split[0];
+ JSONObject values = rcsReporterTask.getExtra().getJSONObject("values");
+ // start : 浠诲姟寮�濮嬶紱outbin : 璧板嚭鍌ㄤ綅锛沞nd : 浠诲姟瀹屾垚
+ String method = values.getString("method");
+ String carrierType = values.getString("carrierType");
+ String slotCategory = values.getString("slotCategory");
+ String slotCode = values.getString("slotCode");
+ EntityWrapper<AgvTask> wrapper = new EntityWrapper<>();
+ wrapper.eq("task_no", robotTaskCode);
+ AgvTask task = taskService.selectOne(wrapper);
+ if(!Cools.isEmpty(task)){
+ try {
+ // q3,q8=1
+ if ("1".equals(carrierType)) { //AGV
+
+ switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
+ //鏀捐揣鐢宠
+ case APPLY_PUT: {
+ Integer sourceStaNo = Integer.valueOf(task.getStaNo());
+ SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ //wcs鍙嶉rcs缁х画鎵ц
+ if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo());
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(task.getTaskNo());
+
+ String url =HIK_URL + "api/robot/controller/task/extend/continue";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+ if (!StringUtils.isEmpty(response) && response.contains("code")){
+ RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+ if("200".equals(rcsReturn1.getCode())) {
+ //鍑哄彂PLC绔欑偣鐨勬壂鐮佸櫒鎵爜
+ boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
+ log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
+ if (result) {
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ }
+ }
+ }
+ break;
+
+ //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑
+ case TASK_END: {
+ Integer sourceStaNo = Integer.valueOf(task.getStaNo());
+ SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
+ if (staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() ==0) {
+ staProtocol.setWorkNo((short) 9991);
+ staProtocol.setStaNo(Short.valueOf(task.getStaNo()));
+ boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
+ log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
+ if(result){
+ // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+ task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+ task.setModiTime(new Date());
+ taskService.updateById(task);
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ }
+ break;
+ //rcs璇锋眰wms鍙栬揣鐢宠
+ case APPLY_PICK: {
+ Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+ SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ //鍒ゆ柇绔欑偣鏄惁鏈夋枡鏋跺拰鎵樼洏
+ if (staProtocol != null && staProtocol.isLoading()
+ && staProtocol.isEmptyOutType()
+ && staProtocol.getWorkNo() >0 && staProtocol.getWorkNo() <9990) {
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo());
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(task.getTaskNo());
+
+ String url =HIK_URL + "api/robot/controller/task/extend/continue";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+ if (!StringUtils.isEmpty(response) && response.contains("code")){
+ RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+ if("200".equals(rcsReturn1.getCode())) {
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ }
+ }
+ break;
+ //rcs鍙栬揣瀹屾垚锛屽凡閫�鍑鸿緭閫佺嚎
+ case PICK_COMPLETE: {
+ Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+ SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
+ if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType() && staProtocol.getWorkNo() >0 && staProtocol.getWorkNo() <9990) {
+ staProtocol.setWorkNo((short) 0);
+ staProtocol.setStaNo((short) 0);
+ boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
+ log.info("AGV鍙栬揣瀹屾垚锛岀粰绔欑偣鍐�0宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
+ if(result){
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+
+ }
+ }
+ break;
+
+ default: {
+ }
+ break;
+ }
+ }
+
+ } catch (Exception e) {
+ log.error("RCS鍙嶉浠诲姟杩涘害澶勭悊寮傚父 - {}", rcsReporterTask, e);
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("鍐呴儴澶勭悊寮傚父");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ return rcsReturn;
+ }
+
+ /**
+ * 鍚戞寚瀹� URL 鍙戦�丳OST鏂规硶鐨勮姹�
+ *
+ * @param url 鍙戦�佽姹傜殑 URL
+ * @param param 璇锋眰鍙傛暟锛岃姹傚弬鏁板簲璇ユ槸 name1=value1&name2=value2 鐨勫舰寮忋��
+ * @return 鎵�浠h〃杩滅▼璧勬簮鐨勫搷搴旂粨鏋�
+ */
+ public static String sendPost(String url, String param) {
+ PrintWriter out = null;
+ BufferedReader in = null;
+ StringBuilder result = new StringBuilder();
+ try
+ {
+ log.info("sendPost - {} - {}", url, param);
+ URL realUrl = new URL(url);
+ URLConnection conn = realUrl.openConnection();
+ conn.setRequestProperty("Content-Type", "application/json");
+ conn.setRequestProperty("Content-Length", "<calculated when request is sent>");
+ conn.setRequestProperty("Host", "<calculated when request is sent>");
+ conn.setRequestProperty("Accept", "*/*");
+ conn.setRequestProperty("Accept-Encoding", "gzip, deflate, br");
+ conn.setRequestProperty("Connection", "keep-alive");
+
+ conn.setRequestProperty("X-lr-request-id", String.valueOf(new Date().getTime()));
+ conn.setRequestProperty("X-lr-version", "4.3");
+
+ conn.setConnectTimeout(5000);
+ conn.setReadTimeout(5000);
+ conn.setDoOutput(true);
+ conn.setDoInput(true);
+ out = new PrintWriter(conn.getOutputStream());
+ out.print(param);
+ out.flush();
+ in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
+ String line;
+ while ((line = in.readLine()) != null)
+ {
+ result.append(line);
+ }
+ log.info("recv - {}", result);
+ }
+ catch (ConnectException e)
+ {
+ log.error("璋冪敤HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
+ }
+ catch (SocketTimeoutException e)
+ {
+ log.error("璋冪敤HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
+ }
+ catch (IOException e)
+ {
+ log.error("璋冪敤HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
+ }
+ catch (Exception e)
+ {
+ log.error("璋冪敤HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
+ }
+ finally
+ {
+ try
+ {
+ if (out != null)
+ {
+ out.close();
+ }
+ if (in != null)
+ {
+ in.close();
+ }
+ }
+ catch (IOException ex)
+ {
+ log.error("璋冪敤in.close Exception, url=" + url + ",param=" + param, ex);
+ }
+ }
+ return result.toString();
+ }
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
new file mode 100644
index 0000000..1191a64
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -0,0 +1,23 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.AgvTask;
+import com.zy.asrs.entity.WaitPakin;
+import com.zy.asrs.mapper.TaskMapper;
+import com.zy.asrs.service.TaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+@Service
+public class TaskServiceImpl extends ServiceImpl<TaskMapper, AgvTask> implements TaskService {
+
+}
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 6896818..1c6ae47 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -131,6 +131,9 @@
case 2:
write((StaProtocol)task.getData());
break;
+ case 3:
+ write1((StaProtocol)task.getData());
+ break;
default:
break;
}
@@ -340,6 +343,29 @@
}
}
+ /**
+ * 鎵爜鍣ㄨЕ鍙�
+ */
+ private void write1(StaProtocol staProtocol) throws InterruptedException {
+ if (null == staProtocol) {
+ return;
+ }
+ ArrayList<Integer> staNos = getStaNo();
+ int index = staNos.indexOf(staProtocol.getSiteId());
+ if(staProtocol.getSiteId() == 307){
+ index = 0;
+ }
+ OperateResult writeResult1 = siemensS7Net.Write("DB100.500" + index, 1); // 鎵爜鍣ㄨЕ鍙�
+ if (!writeResult1.IsSuccess) {
+
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
+ log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ } else {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
+ log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
+ }
+ }
+
// 鏇存柊鍏ュ嚭搴撴ā寮�
private void updateIoMode() throws InterruptedException {
if (this.ioModeOf2F != IoModeType.NONE) {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index cf5a1e7..917f1c4 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -36,6 +36,11 @@
wms:
url: 127.0.0.1:8083/ljqwms
+#娴峰悍瀵规帴
+hik:
+ switch: false
+ url: http://172.26.11.98:80/rcs/rtas/
+
zyHikUrl: 10.10.10.200:9091/hik
# 涓嬩綅鏈洪厤缃�
@@ -43,13 +48,13 @@
# 鍙屾繁
doubleDeep: true
# 鍙屾繁搴撲綅鎺掑彿
- doubleLocs: 3
+ doubleLocs: 1
# 宸︽繁搴撲綅鎺掑彿
# doubleLocsLeft: 4,7,11,15,19,23
# 鍙虫繁搴撲綅鎺掑彿
doubleLocsRight: 1
# 宸︽祬搴撲綅鎺掑彿
- shallowLocsLeft: 1
+ shallowLocsLeft: 2
# 鍙虫祬搴撲綅鎺掑彿
shallowLocsRight: 2
# 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml
new file mode 100644
index 0000000..48f43f9
--- /dev/null
+++ b/src/main/resources/mapper/TaskMapper.xml
@@ -0,0 +1,11 @@
+<?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.TaskMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AgvTask">
+ <id column="id" property="id" />
+ <result column="task_type" property="taskType" />
+
+ </resultMap>
+</mapper>
--
Gitblit v1.9.1