From 1d5dea48f866528cb4c26be9eadf315e3ce0262f Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 12 八月 2025 19:58:34 +0800
Subject: [PATCH] 1
---
/dev/null | 336 --
src/main/java/com/zy/asrs/controller/ConsoleController.java | 4
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 5962 +++++++++++++++++++++++-----------------------
src/main/java/com/zy/asrs/WrkMast.java | 469 +++
src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java | 80
src/main/java/com/zy/core/CtuMainProcess.java | 4
src/main/java/com/zy/asrs/entity/WrkMast.java | 48
src/main/resources/mapper/WrkMastMapper.xml | 3
src/main/java/com/zy/core/MainProcess.java | 210
src/main/java/com/zy/asrs/controller/CrnController.java | 5
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 317 +-
src/main/resources/application.yml | 8
12 files changed, 3,763 insertions(+), 3,683 deletions(-)
diff --git a/src/main/java/com/zy/asrs/WrkMast.java b/src/main/java/com/zy/asrs/WrkMast.java
new file mode 100644
index 0000000..ff69cae
--- /dev/null
+++ b/src/main/java/com/zy/asrs/WrkMast.java
@@ -0,0 +1,469 @@
+package com.zy.asrs;
+
+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.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.BasWrkIotype;
+import com.zy.asrs.entity.BasWrkStatus;
+import com.zy.asrs.entity.LocMast;
+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 java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@TableName("asr_wrk_mast")
+public class WrkMast implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+
+
+ /**
+ * 宸ヤ綔鍙�
+ */
+ @ApiModelProperty(value = "宸ヤ綔鍙�")
+ @TableId(value = "wrk_no", type = IdType.AUTO)
+ @TableField("wrk_no")
+ private Long wrkNo;
+
+ /**
+ * plc宸ヤ綔鍙�
+ */
+ @ApiModelProperty(value = "plc宸ヤ綔鍙�")
+ @TableField("plc_wrk_no")
+ private Integer plcWrkNo;
+
+ @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;
+
+ /**
+ * 鍏ュ嚭搴撶被鍨�
+ */
+ @ApiModelProperty(value = "鍏ュ嚭搴撶被鍨�")
+ @TableField("io_type")
+ private Integer ioType;
+
+ /**
+ * 鍫嗗灈鏈�
+ */
+ @ApiModelProperty(value = "鍫嗗灈鏈�")
+ @TableField("crn_no")
+ private String 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("source_loc_no")
+ private String sourceLocNo;
+
+ @ApiModelProperty(value = "")
+ @TableField("loc_sts")
+ private String locSts;
+
+ /**
+ * 鎷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("plt_type")
+ private Integer pltType;
+
+ /**
+ * 绌烘澘
+ */
+ @ApiModelProperty(value = "绌烘澘")
+ @TableField("empty_mk")
+ private String emptyMk;
+
+ /**
+ * 宸ヤ綔鏃堕棿
+ */
+ @ApiModelProperty(value = "宸ヤ綔鏃堕棿")
+ @TableField("io_time")
+ private Date ioTime;
+
+ @ApiModelProperty(value = "")
+ @TableField("ctn_type")
+ private Integer ctnType;
+
+ @ApiModelProperty(value = "")
+ private String packed;
+
+ @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;
+
+ public WrkMast() {
+ }
+
+ 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 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 void setErrorMemo(String errorMemo) {
+// if (errorMemo.length() > 255) {
+// errorMemo = errorMemo.substring(0, 150);
+// }
+// this.errorMemo = errorMemo;
+// }
+
+ 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/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index 208b218..e748fce 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -231,8 +231,6 @@
if (wrkMast != null) {
vo.setWrkSts(wrkMast.getWrkSts$()); // 宸ヤ綔鐘舵��
vo.setIoType(wrkMast.getIoType$()); // 鍏ュ嚭搴撶被鍨�
- vo.setSourceStaNo(wrkMast.getSourceStaNo$());
- vo.setStaNo(wrkMast.getStaNo$());
vo.setSourceLocNo(wrkMast.getSourceLocNo$());
vo.setLocNo(wrkMast.getLocNo$());
}
@@ -275,8 +273,6 @@
if (crnProtocol.getTaskNo() > 0) {
WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
if (wrkMast != null) {
- vo.setSourceStaNo(wrkMast.getSourceStaNo$());
- vo.setStaNo(wrkMast.getStaNo$());
vo.setWrkSts(wrkMast.getWrkSts$()); // 宸ヤ綔鐘舵��
vo.setIoType(wrkMast.getIoType$()); // 鍏ュ嚭搴撶被鍨�
vo.setSourceLocNo(wrkMast.getSourceLocNo$());
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 5720631..f6bda11 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -20,7 +20,6 @@
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.service.impl.MainServiceImpl;
import com.zy.asrs.utils.VersionUtils;
import com.zy.core.CrnThread;
import com.zy.core.cache.MessageQueue;
@@ -65,8 +64,6 @@
private BasCrnErrorMapper basCrnErrorMapper;
@Autowired
private BasCrnpService basCrnpService;
- @Autowired
- private MainServiceImpl mainService;
@Autowired
private LocMastService locMastService;
@@ -160,8 +157,6 @@
WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
if (wrkMast != null) {
vo.setStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵��
- vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 婧愮珯
- vo.setStaNo(wrkMast.getStaNo$()); // 鐩爣绔�
vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣�
vo.setLocNo(wrkMast.getLocNo()); // 鐩爣搴撲綅
}
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
deleted file mode 100644
index 3be5b88..0000000
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ /dev/null
@@ -1,336 +0,0 @@
-package com.zy.asrs.controller;
-
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.annotations.ManagerAuth;
-import com.core.common.R;
-import com.core.exception.CoolException;
-import com.zy.asrs.domain.enums.RgvStatusType;
-import com.zy.asrs.domain.param.CrnOperatorParam;
-import com.zy.asrs.domain.param.RgvOperatorParam;
-import com.zy.asrs.domain.vo.RgvMsgTableVo;
-import com.zy.asrs.domain.vo.RgvStateTableVo;
-import com.zy.asrs.entity.BasRgv;
-import com.zy.asrs.entity.BasRgvErr;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.mapper.BasRgvErrMapper;
-import com.zy.asrs.service.BasRgvService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.service.impl.MainServiceImpl;
-import com.zy.core.cache.MessageQueue;
-import com.zy.core.cache.OutputQueue;
-import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.RgvModeType;
-import com.zy.core.enums.RgvTaskModeType;
-import com.zy.core.enums.SlaveType;
-import com.zy.core.model.RgvSlave;
-import com.zy.core.model.Task;
-import com.zy.core.model.command.RgvCommand;
-import com.zy.core.model.protocol.RgvProtocol;
-import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.RgvThread;
-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.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * RGV鎺ュ彛
- * Created by vincent on 2020-06-01
- */
-@Slf4j
-@RestController
-@RequestMapping("/rgv")
-public class RgvController {
-
- @Autowired
- private SlaveProperties slaveProperties;
- @Autowired
- private WrkMastService wrkMastService;
- @Autowired
- private BasRgvErrMapper basRgvErrMapper;
- @Autowired
- private BasRgvService basRgvService;
- @Autowired
- private MainServiceImpl mainService;
- @Autowired
- private LocMastService locMastService;
-
- @ManagerAuth(memo = "瑙i攣灏忚溅")
- @PostMapping("/lock")
- public R lock(CrnOperatorParam param){
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, param.getRgvNo());
- rgvThread.setPakMk(true);
- return R.ok();
- }
-
- @PostMapping("/table/rgv/state")
- @ManagerAuth(memo = "RGV淇℃伅琛�")
- public R rgvStateTable(){
- List<RgvStateTableVo> list = new ArrayList<>();
- List<BasRgv> rgvs = basRgvService.selectList(new EntityWrapper<BasRgv>().orderBy("rgv_no"));
- for (BasRgv basRgv : rgvs) {
- // 琛ㄦ牸琛�
- RgvStateTableVo vo = new RgvStateTableVo();
- vo.setRgvNo(basRgv.getRgvNo()); // RGV鍙�
- list.add(vo);
- // 鑾峰彇RGV淇℃伅
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo());
- if (rgvThread == null) {
- continue;
- }
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }
- vo.setStatusType(rgvProtocol.modeType.desc); // 妯″紡鐘舵��
- vo.setStatus(rgvProtocol.getStatusType().desc); // 鐘舵��
- vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 宸ヤ綅1浠诲姟鍙�
- vo.setStatus1(rgvProtocol.getStatusType1().desc); // 宸ヤ綅1鐘舵��
- vo.setLoading1(rgvProtocol.getLoaded1()==1?"鏈夌墿":"鏃犵墿"); // 宸ヤ綅1鏈夌墿
- vo.setRgvPos(rgvProtocol.getRgvPos());
- vo.setRgvPos1(rgvProtocol.getRgvPosI());
- vo.setWalkPos(rgvProtocol.getWalkPos()==1?"鍦ㄥ畾浣�":"涓嶅湪瀹氫綅");
- vo.setPakMk(rgvThread.isPakMk()?"鏃犻攣":"閿佸畾");
-// vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 宸ヤ綅2浠诲姟鍙�
-// vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
-// vo.setLoading2(rgvProtocol.getLoaded2()==1?"鏈夌墿":"鏃犵墿"); // 宸ヤ綅2鏈夌墿
-
- vo.setWarnCode(String.valueOf(rgvProtocol.getAlarm()));
- if (rgvProtocol.getAlarm() > 0) {
- BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm());
- vo.setAlarm(rgvErr==null?"鏈煡寮傚父":rgvErr.getErrName());
- }
- }
- return R.ok().add(list);
- }
-
- @PostMapping("/table/rgv/msg")
- @ManagerAuth(memo = "RGV鏁版嵁琛�")
- public R rgvMsgTable(){
- List<RgvMsgTableVo> list = new ArrayList<>();
- List<BasRgv> rgvs = basRgvService.selectList(new EntityWrapper<BasRgv>().orderBy("rgv_no"));
- for (BasRgv basRgv : rgvs) {
- // 琛ㄦ牸琛�
- RgvMsgTableVo vo = new RgvMsgTableVo();
- vo.setRgvNo(basRgv.getRgvNo()); // RGV鍙�
- list.add(vo);
- // 鑾峰彇RGV淇℃伅
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo());
- if (rgvThread == null) {
- continue;
- }
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }
-
- vo.setWorkNo(rgvProtocol.getTaskNo1()); // 浠诲姟鍙�
- if (rgvProtocol.getTaskNo1()>0) {
- WrkMast wrkMast = wrkMastService.selectById(rgvProtocol.getTaskNo1());
- if (wrkMast != null) {
- vo.setStatus(RgvStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵��
- vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 婧愮珯
- vo.setStaNo(wrkMast.getStaNo$()); // 鐩爣绔�
- vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣�
- vo.setLocNo(wrkMast.getLocNo()); // 鐩爣搴撲綅
- }
- } else {
- vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc); // 妯″紡鐘舵��
- }
- vo.setXspeed(rgvProtocol.getXSpeed()); // 璧拌閫熷害锛坢/min)
- vo.setXdistance(rgvProtocol.getXDistance()); // 璧拌璺濈(Km)
- vo.setXduration(rgvProtocol.getXDuration()); // 璧拌鏃堕暱(H)
- }
- return R.ok().add(list);
- }
-
- @PostMapping("/output/site")
- @ManagerAuth(memo = "RGV鎶ユ枃鏃ュ織杈撳嚭")
- public R rgvOutput(){
- StringBuilder str = new StringBuilder();
- String s;
- int i = 0;
- while((s = OutputQueue.RGV.poll()) != null && i <=10) {
- str.append("\n").append(s);
- i++;
- }
- return R.ok().add(str.toString());
- }
-
- /****************************************************************/
- /************************** 鎵嬪姩鎿嶄綔 ******************************/
- /****************************************************************/
-
- @ManagerAuth(memo = "鍙栨斁璐�")
- @PostMapping("/operator/put")
- public R rgvFetchPut(RgvOperatorParam param){
- RgvCommand command = new RgvCommand();
- command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
- command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
- command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
-// command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
-// command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
-// command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
-// command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
-// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
- command.setCommand((short) 0);
-
- return rgvControl(command)? R.ok(): R.error();
- }
-
- @ManagerAuth(memo = "鍙栬揣")
- @PostMapping("/operator/take")
- public R rgvFetch(RgvOperatorParam param){
- RgvCommand command = new RgvCommand();
- command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栬揣
- command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
- command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
- command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
- command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
- command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
- command.setCommand((short) 0);
-
- return rgvControl(command)? R.ok(): R.error();
- }
-
- @ManagerAuth(memo = "鏀捐揣")
- @PostMapping("/operator/stockMove")
- public R rgvPut(RgvOperatorParam param){
- RgvCommand command = new RgvCommand();
- command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.PUT); // 浠诲姟妯″紡: 鏀捐揣
- command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
- command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
- command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
- command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
- command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
- command.setCommand((short) 0);
-
- return rgvControl(command)? R.ok(): R.error();
- }
-
-
-
- @ManagerAuth(memo = "浠诲姟瀹屾垚")
- @PostMapping("/operator/taskComplete")
- public R rgvTaskComplete(RgvOperatorParam param){
- RgvCommand command = new RgvCommand();
- command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1((short) 1); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡
- command.setSourceStaNo1((short) 0); // 婧愮珯
- command.setDestinationStaNo1((short) 0); // 鐩爣绔�
- command.setAckFinish2((short) 1); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode2(RgvTaskModeType.NONE); // 浠诲姟妯″紡
- command.setSourceStaNo2((short) 0); // 婧愮珯
- command.setDestinationStaNo2((short) 0); // 鐩爣绔�
- command.setCommand((short) 0);
-
- return rgvControl(command)? R.ok(): R.error();
- }
-
- @ManagerAuth(memo = "娓呴櫎鍛戒护")
- @PostMapping("/operator/clearCommand")
- public R rgvClearCommand(RgvOperatorParam param){
- if (param.getRgvNo() == null) {
- throw new CoolException("璇烽�夋嫨RGV鍙�");
- }
- RgvCommand command = new RgvCommand();
- command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡
- command.setSourceStaNo1((short) 0); // 婧愮珯
- command.setDestinationStaNo1((short) 0); // 鐩爣绔�
- command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode2(RgvTaskModeType.NONE); // 浠诲姟妯″紡
- command.setSourceStaNo2((short) 0); // 婧愮珯
- command.setDestinationStaNo2((short) 0); // 鐩爣绔�
- command.setCommand((short) 0);
-
- return rgvControl(command)? R.ok(): R.error();
- }
-
- @ManagerAuth(memo = "鎵嬪姩澶嶄綅")
- @PostMapping("/operator/handleReset")
- public R handleReset(RgvOperatorParam param) throws Exception {
- if (param.getRgvNo() == null) {
- throw new CoolException("璇烽�夋嫨RGV");
- }
- // 鑾峰彇RGV缂撳瓨
- for (RgvSlave rgv : slaveProperties.getRgv()) {
- // 鑾峰彇RGV淇℃伅
- if (param.getRgvNo().equals(rgv.getId())) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
- if (rgvThread == null) {
- throw new CoolException("RGV涓嶅湪绾�");
- }
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- throw new CoolException("RGV涓嶅湪绾�");
- }
- RgvCommand Command = new RgvCommand();
- Command.setRgvNo(rgv.getId()); // RGV缂栧彿
- Command.setTaskMode1(RgvTaskModeType.NONE);
- Command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
- Command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
- Command.setCommand((short) 0); // 浠诲姟瀹屾垚纭浣�
- // 寤舵椂鍙戦��
- Thread.sleep(1000L);
- if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(4, Command))) {
- return R.ok();
- } else {
- throw new CoolException("鍛戒护涓嬪彂澶辫触");
- }
-
- }
- }
- return R.error();
- }
-
- private boolean rgvControl(RgvCommand command){
- if (command.getRgvNo() == null) {
- throw new CoolException("璇烽�夋嫨RGV");
- }
- for (RgvSlave rgv : slaveProperties.getRgv()) {
- // 鑾峰彇RGV淇℃伅
- if (command.getRgvNo().equals(rgv.getId())) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
- if (rgvThread == null) {
- throw new CoolException("RGV涓嶅湪绾�");
- }
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- throw new CoolException("RGV涓嶅湪绾�");
- }
- if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(4, command))) {
- return true;
- } else {
- throw new CoolException("鍛戒护涓嬪彂澶辫触");
- }
- }
- }
- return false;
- }
-
-}
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index e896efc..18cda39 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -28,9 +28,16 @@
* 宸ヤ綔鍙�
*/
@ApiModelProperty(value= "宸ヤ綔鍙�")
- @TableId(value = "wrk_no", type = IdType.INPUT)
+ @TableId(value = "wrk_no", type = IdType.AUTO)
@TableField("wrk_no")
- private Integer wrkNo;
+ private Long wrkNo;
+
+ /**
+ * 宸ヤ綔鍙�
+ */
+ @ApiModelProperty(value= "宸ヤ綔鍙�")
+ @TableField("plc_wrk_no")
+ private Integer plcWrkNo;
@ApiModelProperty(value= "")
@TableField("inv_wh")
@@ -65,7 +72,7 @@
*/
@ApiModelProperty(value= "鍫嗗灈鏈�")
@TableField("crn_no")
- private Integer crnNo;
+ private String crnNo;
@ApiModelProperty(value= "")
@TableField("sheet_no")
@@ -89,19 +96,6 @@
@TableField("loc_no")
private String locNo;
- /**
- * 鐩爣绔�
- */
- @ApiModelProperty(value= "鐩爣绔�")
- @TableField("sta_no")
- private Integer staNo;
-
- /**
- * 婧愮珯
- */
- @ApiModelProperty(value= "婧愮珯")
- @TableField("source_sta_no")
- private Integer sourceStaNo;
/**
* 婧愬簱浣�
@@ -358,23 +352,7 @@
return null;
}
- public String getStaNo$(){
- BasDevpService service = SpringUtils.getBean(BasDevpService.class);
- BasDevp basDevp = service.selectById(this.staNo);
- if (!Cools.isEmpty(basDevp)){
- return String.valueOf(basDevp.getDevNo());
- }
- return null;
- }
- public String getSourceStaNo$(){
- BasDevpService service = SpringUtils.getBean(BasDevpService.class);
- BasDevp basDevp = service.selectById(this.sourceStaNo);
- if (!Cools.isEmpty(basDevp)){
- return String.valueOf(basDevp.getDevNo());
- }
- return null;
- }
public String getSourceLocNo$(){
LocMastService service = SpringUtils.getBean(LocMastService.class);
@@ -470,12 +448,6 @@
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.errorTime);
}
- public void setErrorMemo(String errorMemo) {
- if (errorMemo.length() > 255) {
- errorMemo = errorMemo.substring(0, 150);
- }
- this.errorMemo = errorMemo;
- }
public String getLogErrTime$(){
if (Cools.isEmpty(this.logErrTime)){
diff --git a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
index 6eb2d28..db82921 100644
--- a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
@@ -1,10 +1,11 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.mapper.*;
-import com.zy.asrs.service.*;
-import com.zy.common.service.CommonService;
+import com.zy.asrs.mapper.WrkMastMapper;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkMastService;
import com.zy.common.utils.News;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
@@ -16,7 +17,6 @@
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 org.springframework.transaction.annotation.Transactional;
@@ -27,7 +27,7 @@
* Created by vincent on 2020/8/6
*/
@Slf4j
-@Service("mainService")
+@Service("ctuMainService")
@Transactional
public class CtuMainServiceImpl {
@@ -36,8 +36,12 @@
@Autowired
private SlaveProperties slaveProperties;
+
@Autowired
private WrkMastMapper wrkMastMapper;
+
+ @Autowired
+ private LocMastService locMastService;
@Autowired
private WrkMastService wrkMastService;
@@ -62,28 +66,49 @@
staProtocol = staProtocol.clone();
}
// 鍒ゆ柇鏄惁婊¤冻鏉′欢
- if (!staProtocol.isLoading()) {
- continue;
- }
- if (staProtocol.isAutoing() && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
- && staProtocol.isPakMk()) {
+// if (!staProtocol.isLoading()) {
+// continue;
+// }
+ // && staProtocol.isInEnable()
+ if (staProtocol.isAutoing() && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) {
WrkMast wrkMast = wrkMastMapper.selectByWrkNo(staProtocol.getWorkNo());
- if (wrkMast.getWrkSts() == 106) {
+ if (wrkMast != null) {
//涓嬪彂绉诲姩浠诲姟锛屽苟鐢熸垚鍏ュ簱宸ヤ綔妗�
-
- } else {
- log.info("" + mark + " - " + staProtocol.getWorkNo() + " - 鎵句笉鍒板搴旂殑宸ヤ綔妗�");
+ WrkMast in = new WrkMast();
+ wrkMast.setWrkSts(223L);
+ wrkMast.setModiTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ in.setSourceLocNo("1007");
+ in.setLocNo(wrkMast.getSourceLocNo());
+ in.setIoType(10);
+ in.setIoTime(new Date());
+ in.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ in.setIoPri(13D); // 浼樺厛绾э細13
+ in.setFullPlt("Y"); // 婊℃澘锛歒
+ in.setPicking("N"); // 鎷f枡
+ in.setExitMk("N"); // 閫�鍑�
+ in.setEmptyMk("Y"); // 绌烘澘
+ in.setLinkMis("N");
+ in.setAppeTime(new Date());
+ in.setModiTime(new Date());
+ in.setBarcode(wrkMast.getBarcode());
+ in.setPlcWrkNo(wrkMast.getPlcWrkNo());
+ wrkMastService.insert(in);
+ LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+ locMast.setLocSts("S");
+ locMast.setModiTime(new Date());
+ locMastService.selectById(locMast);
}
}
}
}
}
+
/**
- * 鍑哄簱绔欏埌鎷f枡绔�
+ * 鍑哄簱
*/
- public synchronized void generateStoreWrkFile0(Integer mark) {
+ public synchronized void out(Integer mark) {
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鍏ュ簱鍙�
@@ -100,13 +125,12 @@
if (!staProtocol.isLoading()) {
continue;
}
-
- if (staProtocol.isAutoing() && staProtocol.isOutEnable()
- && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
- && staProtocol.isPakMk()) {
+ //&& staProtocol.isOutEnable()
+ if (staProtocol.isAutoing() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) && staProtocol.isPakMk()) {
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
// 鍒ゆ柇閲嶅宸ヤ綔妗�
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_sta_no", staProtocol.getSiteId()).eq("wrk_sts", 105));
+ // 106涔熺畻涓婏紝浠ュ悗106-銆�107鐢ㄤ簬鏇存柊搴撳瓨
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("loc_no", "1001").in("wrk_sts", 106,107));
if (wrkMast == null) {
continue;
}
@@ -114,14 +138,14 @@
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ staProtocol.setWorkNo(wrkMast.getPlcWrkNo());
+ staProtocol.setStaNo((short) 1004);
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.info("杈撻�佺嚎涓嬪彂3锛歿},{}", wrkMast.getWrkNo(), wrkMast.getStaNo());
+ log.info("杈撻�佺嚎涓嬪彂3锛歿},{}", wrkMast.getWrkNo(), 1004);
if (result) {
// 鏇存柊宸ヤ綔涓绘。
- wrkMast.setWrkSts(106L);
+ wrkMast.setWrkSts(108L);
wrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(wrkMast) == 0) {
News.error("" + mark + " - 1" + " - 鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
@@ -131,9 +155,7 @@
}
} else {
- News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
- + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo()
- + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk() + "銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp());
+ News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk() + "銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp());
}
}
}
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 9c8ba39..1207dc7 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1,909 +1,851 @@
-package com.zy.asrs.service.impl;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.exception.CoolException;
-import com.zy.asrs.entity.*;
-import com.zy.asrs.mapper.*;
-import com.zy.asrs.service.*;
-import com.zy.asrs.utils.RouteUtils;
-import com.zy.asrs.utils.Utils;
-import com.zy.asrs.utils.VersionUtils;
-import com.zy.common.model.LocTypeDto;
-import com.zy.common.model.MatDto;
-import com.zy.common.model.SearchLocParam;
-import com.zy.common.model.StartupDto;
-import com.zy.common.service.CommonService;
-import com.zy.common.utils.CollectionUtils;
-import com.zy.common.utils.HttpHandler;
-import com.zy.common.utils.News;
-import com.zy.core.CrnThread;
-import com.zy.core.DevpThread;
-import com.zy.core.cache.MessageQueue;
-import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.*;
-import com.zy.core.model.*;
-import com.zy.core.model.command.CrnCommand;
-import com.zy.core.model.command.LedCommand;
-import com.zy.core.model.command.RgvCommand;
-import com.zy.core.model.protocol.CrnProtocol;
-import com.zy.core.model.protocol.RgvProtocol;
-import com.zy.core.model.protocol.StaProtocol;
-import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.BarcodeThread;
-import com.zy.core.thread.LedThread;
-import com.zy.core.thread.RgvThread;
-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 org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
-
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-
-/**
- * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
- * Created by vincent on 2020/8/6
- */
-@Slf4j
-@Service("mainService")
-@Transactional
-public class MainServiceImpl {
-
- public static final long COMMAND_TIMEOUT = 5 * 1000;
-
- @Autowired
- private CommonService commonService;
- @Autowired
- private SlaveProperties slaveProperties;
- @Autowired
- private WrkMastMapper wrkMastMapper;
- @Autowired
- private WrkDetlService wrkDetlService;
- @Autowired
- private WaitPakinMapper waitPakinMapper;
- @Autowired
- private LocMastService locMastService;
- @Autowired
- private StaDescService staDescService;
- @Autowired
- private BasCrnpService basCrnpService;
- @Autowired
- private BasDevpService basDevpService;
- @Autowired
- private LocDetlService locDetlService;
- @Autowired
- private BasErrLogService basErrLogService;
- @Autowired
- private BasCrnErrorMapper basCrnErrorMapper;
- @Autowired
- private WrkMastStaMapper wrkMastStaMapper;
- @Autowired
- private BasRgvService basRgvService;
- @Autowired
- private BasRgvMapMapper basRgvMapMapper;
- @Autowired
- private WrkMastService wrkMastService;
- @Autowired
- private BasRgvMapService basRgvMapService;
-
- @Value("${wms.url}")
- private String wmsUrl;
-
- public Integer wrkNo = 10000;
-
- /**
- * 缁勬墭
- * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
- */
- public synchronized void generateStoreWrkFile(Integer mark) {
- String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
- // 鏍规嵁杈撻�佺嚎plc閬嶅巻
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鍏ュ簱鍙�
- for (DevpSlave.Sta inSta : devp.getInSta()) {
- // 鑾峰彇鏉$爜鎵弿浠俊鎭�
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
- if (barcodeThread == null) {
- continue;
- }
- String barcode = barcodeThread.getBarcode();
- // 灏哄妫�娴嬪紓甯�
- 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 && staProtocol.isBarcodeErr()) {
- errMsg = "鎵爜澶辫触";
- back = true;
- }
-
- // 閫�鍥�
- if (back) {
- log.info("errmsg: " + errMsg);
-// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
-
- if (!staProtocol.isLoading()) {
- continue;
- }
- if (!staProtocol.isPakMk()) {
- continue;
- }
- staProtocol.setWorkNo(wrkNo);
- News.info("{}PLC鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
- wrkNo++;
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂1锛�" + wrkNo + "," + inSta.getBackSta());
- }
-
- // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk()
- && staProtocol.isPakMk()) {
- if (Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
- News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-
- staProtocol.setWorkNo(wrkNo);
- News.info("{}barcode鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
- wrkNo++;
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂1锛�" + wrkNo + "," + inSta.getBackSta());
- continue;
- }
- // 鍒ゆ柇閲嶅宸ヤ綔妗�
- WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
- if (wrkMast != null) {
-// int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
-// if (wrkNo1 != 0){
-// if (ledThread != null) {
-// News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
-// }
+//package com.zy.asrs.service.impl;
//
-// }
- News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�=" + wrkMast.getWrkNo()));
- continue;
-// barcodeThread.setBarcode("");
-// staProtocol.setWorkNo(wrkMast.getWrkNo());
-// staProtocol.setStaNo(RouteUtils.SouStaEnd(null,wrkMast.getSourceStaNo()));
+//import com.alibaba.fastjson.JSON;
+//import com.alibaba.fastjson.JSONObject;
+//import com.baomidou.mybatisplus.mapper.EntityWrapper;
+//import com.baomidou.mybatisplus.mapper.Wrapper;
+//import com.core.common.Cools;
+//import com.core.common.DateUtils;
+//import com.core.exception.CoolException;
+//import com.zy.asrs.entity.*;
+//import com.zy.asrs.mapper.*;
+//import com.zy.asrs.service.*;
+//import com.zy.asrs.utils.RouteUtils;
+//import com.zy.asrs.utils.Utils;
+//import com.zy.asrs.utils.VersionUtils;
+//import com.zy.common.model.LocTypeDto;
+//import com.zy.common.model.MatDto;
+//import com.zy.common.model.SearchLocParam;
+//import com.zy.common.model.StartupDto;
+//import com.zy.common.service.CommonService;
+//import com.zy.common.utils.CollectionUtils;
+//import com.zy.common.utils.HttpHandler;
+//import com.zy.common.utils.News;
+//import com.zy.core.CrnThread;
+//import com.zy.core.DevpThread;
+//import com.zy.core.cache.MessageQueue;
+//import com.zy.core.cache.SlaveConnection;
+//import com.zy.core.enums.*;
+//import com.zy.core.model.*;
+//import com.zy.core.model.command.CrnCommand;
+//import com.zy.core.model.command.LedCommand;
+//import com.zy.core.model.command.RgvCommand;
+//import com.zy.core.model.protocol.CrnProtocol;
+//import com.zy.core.model.protocol.RgvProtocol;
+//import com.zy.core.model.protocol.StaProtocol;
+//import com.zy.core.properties.SlaveProperties;
+//import com.zy.core.thread.BarcodeThread;
+//import com.zy.core.thread.LedThread;
+//import com.zy.core.thread.RgvThread;
+//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 org.springframework.transaction.annotation.Transactional;
+//import org.springframework.transaction.interceptor.TransactionAspectSupport;
+//
+//import java.util.*;
+//import java.util.concurrent.TimeUnit;
+//import java.util.stream.Collectors;
+//
+///**
+// * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
+// * Created by vincent on 2020/8/6
+// */
+//@Slf4j
+//@Service("mainService")
+//@Transactional
+//public class MainServiceImpl {
+//
+// public static final long COMMAND_TIMEOUT = 5 * 1000;
+//
+// @Autowired
+// private CommonService commonService;
+// @Autowired
+// private SlaveProperties slaveProperties;
+// @Autowired
+// private WrkMastMapper wrkMastMapper;
+// @Autowired
+// private WrkDetlService wrkDetlService;
+// @Autowired
+// private WaitPakinMapper waitPakinMapper;
+// @Autowired
+// private LocMastService locMastService;
+// @Autowired
+// private StaDescService staDescService;
+// @Autowired
+// private BasCrnpService basCrnpService;
+// @Autowired
+// private BasDevpService basDevpService;
+// @Autowired
+// private LocDetlService locDetlService;
+// @Autowired
+// private BasErrLogService basErrLogService;
+// @Autowired
+// private BasCrnErrorMapper basCrnErrorMapper;
+// @Autowired
+// private WrkMastStaMapper wrkMastStaMapper;
+// @Autowired
+// private BasRgvService basRgvService;
+// @Autowired
+// private BasRgvMapMapper basRgvMapMapper;
+// @Autowired
+// private WrkMastService wrkMastService;
+// @Autowired
+// private BasRgvMapService basRgvMapService;
+//
+// @Value("${wms.url}")
+// private String wmsUrl;
+//
+// public Integer wrkNo = 10000;
+//
+// /**
+// * 缁勬墭
+// * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
+// */
+// public synchronized void generateStoreWrkFile(Integer mark) {
+// String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+// // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// // 閬嶅巻鍏ュ簱鍙�
+// for (DevpSlave.Sta inSta : devp.getInSta()) {
+// // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+// StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+// if (staProtocol == null) {
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+//
+// if (barcodeThread == null) {
+// continue;
+// }
+// String barcode = barcodeThread.getBarcode();
+// // 灏哄妫�娴嬪紓甯�
+// 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 && staProtocol.isBarcodeErr()) {
+// errMsg = "鎵爜澶辫触";
+// back = true;
+// }
+//
+// // 閫�鍥�
+// if (back) {
+// log.info("errmsg: " + errMsg);
+//// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
+// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
+//
+// if (!staProtocol.isLoading()) {
+// continue;
+// }
+// if (!staProtocol.isPakMk()) {
+// continue;
+// }
+// staProtocol.setWorkNo(wrkNo);
+// News.info("{}PLC鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
+// wrkNo++;
+// staProtocol.setStaNo(inSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// log.error("杈撻�佺嚎涓嬪彂1锛�" + wrkNo + "," + inSta.getBackSta());
+// }
+//
+// // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+// if (staProtocol.isAutoing()
+// && staProtocol.isLoading()
+// && staProtocol.isInEnable()
+// && !staProtocol.isEmptyMk()
+// && staProtocol.isPakMk()) {
+// if (Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
+// News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+//
+// staProtocol.setWorkNo(wrkNo);
+// News.info("{}barcode鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
+// wrkNo++;
+// staProtocol.setStaNo(inSta.getBackSta().shortValue());
// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-// log.info("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒))锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// log.error("杈撻�佺嚎涓嬪彂1锛�" + wrkNo + "," + inSta.getBackSta());
+// continue;
+// }
+// // 鍒ゆ柇閲嶅宸ヤ綔妗�
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
+// if (wrkMast != null) {
+//// int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
+//// if (wrkNo1 != 0){
+//// if (ledThread != null) {
+//// News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
+//// }
+////
+//// }
+// News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�=" + wrkMast.getWrkNo()));
+// continue;
+//// barcodeThread.setBarcode("");
+//// staProtocol.setWorkNo(wrkMast.getWrkNo());
+//// staProtocol.setStaNo(RouteUtils.SouStaEnd(null,wrkMast.getSourceStaNo()));
+//// devpThread.setPakMk(staProtocol.getSiteId(), false);
+//// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//// log.info("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒))锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
+////
+//// ledThread.errorReset();
+//// log.info("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
+////
+//// if (!result) {
+//// News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+//// log.error("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒)==>鏇存柊plc绔欑偣淇℃伅澶辫触");
+////
+////// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+//// continue;
+//// }
//
-// ledThread.errorReset();
-// log.info("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
+// }
+// WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+// .eq("barcode", barcode)
+// .in("io_type", 107, 103, 57));
+// if (!Cools.isEmpty(checkPick)) {
+// continue;
+// }
+// try {
+// LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
//
-// if (!result) {
-// News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
-// log.error("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒)==>鏇存柊plc绔欑偣淇℃伅澶辫触");
+// SearchLocParam param = new SearchLocParam();
+// param.setBarcode(barcode);
+// param.setIoType(1);
+// param.setSourceStaNo(inSta.getStaNo());
+// param.setLocType1(locTypeDto.getLocType1());
+// String response = new HttpHandler.Builder()
+// .setTimeout(30,TimeUnit.SECONDS)
+// .setUri(wmsUrl)
+// .setPath("/rpc/pakin/loc/v1")
+// .setJson(JSON.toJSONString(param))
+// .build()
+// .doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+// if (jsonObject.getInteger("code").equals(200)) {
+// StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+// barcodeThread.setBarcode("");
+// staProtocol.setWorkNo(dto.getWorkNo());
+// //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
+// staProtocol.setStaNo(dto.getStaNo().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// log.error("杈撻�佺嚎涓嬪彂2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
//
-//// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+// ledThread.errorReset();
+// log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
+//
+// if (!result) {
+// News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+//
+// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+// }
+// } else {
+// if (jsonObject.getString("msg").equals("宸ヤ綔妗e凡瀛樺湪")) {
+//
+// //宸ヤ綔妗e凡瀛樺湪 鍐嶆杩涘幓
+//// wrkMast = wrkMastMapper.selectPakInStepBarcode(barcode);
+//// if (wrkMast != null) {
+//// barcodeThread.setBarcode("");
+//// staProtocol.setWorkNo(9999);
+//// //staProtocol.setWorkNo(wrkMast.getWrkNo());
+//// //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
+//// staProtocol.setStaNo(inSta.getBackSta().shortValue());
+//// devpThread.setPakMk(staProtocol.getSiteId(), false);
+//// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//// log.error("杈撻�佺嚎涓嬪彂2锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
+//// ledThread.errorReset();
+//// log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
+//// if (!result) {
+//// News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+////
+//// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+//// }
+//// }
+//
+// continue;
+// }
+// staProtocol.setWorkNo(wrkNo);
+// wrkNo++;
+// staProtocol.setStaNo(inSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+////
+//// if (ledThread != null) {
+// String errorMsg = jsonObject.getString("msg");
+// if (!Cools.isEmpty(errorMsg)) {
+// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+// }
+//// }
+//// News.error(methodName + ":璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+// }
+//
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+//
+// }
+//
+//
+// }
+// }
+//// News.infoNoLog(""+mark+" - 0"+" - 缁勬墭 ===銆嬫墽琛屽畬鎴�");
+//
+// }
+//
+// /**
+// * wms鍏ュ簱
+// * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2
+// */
+// public synchronized void generateStoreWrkFile0(Integer mark) {
+// // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// // 閬嶅巻鍏ュ簱鍙�
+// for (DevpSlave.Sta inSta : devp.getInSta()) {
+// // 鑾峰彇鍏ュ簱绔欎俊鎭�
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+// StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+// if (staProtocol == null) {
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+//
+//// // 鍏ュ嚭搴撴ā寮忓垽鏂�
+// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) {
+// continue;
+// }
+//
+// // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+// if (!staProtocol.isLoading()) {
+// continue;
+// }
+// if (staProtocol.isAutoing() && staProtocol.isInEnable()
+// && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
+// && staProtocol.isPakMk()) {
+// News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
+// // 鍒ゆ柇閲嶅宸ヤ綔妗�
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo());
+// if (wrkMast == null) {
+// continue;
+// }
+//
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+//
+// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+// staProtocol.setWorkNo(wrkMast.getWrkNo());
+// staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// log.error("杈撻�佺嚎涓嬪彂3锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
+// if (result) {
+// // 鏇存柊宸ヤ綔涓绘。
+// wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋
+// wrkMast.setModiTime(new Date());
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// News.error("" + mark + " - 1" + " - 鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
+// }
+// } else {
+// News.error("" + mark + " - 2" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+// }
+//
+// } else {
+// News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
+// + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo()
+// + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk() + "銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp());
+// }
+// }
+// }
+//// News.infoNoLog(""+mark+" - 0"+" - wms鍏ュ簱 ===銆嬫墽琛屽畬鎴�");
+//
+// }
+//
+// /**
+// * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
+// */
+// public synchronized void stnToCrnStnPick(Integer mark) {
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// // 閬嶅巻鎷f枡鍏ュ簱鍙�
+// for (DevpSlave.Sta pickSta : devp.getPickSta()) {
+// // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
+// if (barcodeThread == null) {
+// continue;
+// }
+// String barcode = barcodeThread.getBarcode();
+// // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+//
+// StaProtocol staProtocol = devpThread.getStation().get(pickSta.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 && staProtocol.isBarcodeErr()) {
+// errMsg = "鎵爜澶辫触";
+// back = true;
+// }
+//
+// // 閫�鍥�
+// if (back) {
+// log.info("errmsg: " + errMsg);
+//// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
+// MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
+// if (!staProtocol.isLoading()) {
+// continue;
+// }
+// if (!staProtocol.isPakMk()) {
+// continue;
+// }
+// staProtocol.setWorkNo(wrkNo);
+// News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", pickSta.getStaNo(), errMsg, wrkNo);
+// wrkNo++;
+// staProtocol.setStaNo(pickSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// log.error("杈撻�佺嚎涓嬪彂1锛�" + 9999 + "," + pickSta.getBackSta());
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+//
+// // led 寮傚父鏄剧ず
+// if (ledThread != null) {
+// MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
+// }
+// continue;
+// }
+// if (!Cools.isEmpty(barcode)) {
+// News.infoNoLog("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+// if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+// continue;
+// }
+// } else {
+// continue;
+// }
+//
+//
+// if (!Cools.isEmpty(barcode)) {
+//// News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+// if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+// continue;
+// }
+// } else {
+// continue;
+// }
+//
+//
+// if (staProtocol == null) {
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+//
+//// // 鍏ュ嚭搴撴ā寮忓垽鏂�
+//// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
+//
+// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
+// News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
+// WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
+//// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
+// if (wrkMast == null) {
+// // 鏃犳嫞鏂欐暟鎹�
+// continue;
+// }
+// if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
+// || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
+// continue;
+// }
+//
+// // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
+//// int stnNo = 0;
+//// if (wrkMast.getStaNo() == 109) {
+//// stnNo = 127;
+//// } else if (wrkMast.getStaNo() == 113) {
+//// stnNo = 128;
+//// } else {
+//// log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
+//// }
+// // 鑾峰彇鐩爣绔�
+// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+// .eq("type_no", wrkMast.getIoType() - 50)
+// .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+// .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+// StaDesc staDesc = staDescService.selectOne(wrapper);
+// if (Cools.isEmpty(staDesc)) {
+// News.error("" + mark + " - 2" + " - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
+// staProtocol.setWorkNo(wrkNo++);
+// staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue() - (short) 1));
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// log.error("杈撻�佺嚎涓嬪彂4锛�" + 9989 + "," + (pickSta.getStaNo().shortValue() - (short) 1));
+// //LED
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+// // led 寮傚父鏄剧ず
+// if (ledThread != null) {
+// String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�" + pickSta.getBackSta().shortValue() + "绔欑偣";
+// MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
+// }
+// continue;
+// }
+//
+// try {
+// // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+// if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
+// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+// }
+// // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+// if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+// throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+// }
+//
+// Date now = new Date();
+// // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+// Integer staNo = staDesc.getCrnStn();
+// // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+// wrkMast.setIoTime(now);
+// wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+// wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+// wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+// wrkMast.setStaNo(staNo); // 鐩爣绔�
+// wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+// wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+// wrkMast.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+// }
+// // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
+// wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
+// // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+// LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+// locMast.setLocSts("Q");
+// locMast.setModiTime(new Date());
+// if (!locMastService.updateById(locMast)) {
+// throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+// }
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// continue;
+// }
+//
+// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+// staProtocol.setWorkNo(wrkMast.getWrkNo());
+// staProtocol.setStaNo(Short.valueOf(wrkMast.getStaNo().toString()));
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// log.error("杈撻�佺嚎涓嬪彂5锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
+// if (!result) {
+// News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+// }
+//
+// } else {
+// News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
+// + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk());
+// }
+//
+// }
+//
+// }
+//// News.infoNoLog(""+mark+" - 0"+" - 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 ===銆嬫墽琛屽畬鎴�");
+// }
+//
+//
+// //鐩樼偣鍐嶅叆搴�
+// public synchronized void stnToCrnStnPick2() {
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// // 閬嶅巻鎷f枡鍏ュ簱鍙�
+// for (DevpSlave.Sta pickSta : devp.getPickSta()) {
+// // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+// StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
+// if (staProtocol == null) {
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+// if (staProtocol.isAutoing()
+// && staProtocol.isLoading()
+// && staProtocol.isInEnable()
+// && !staProtocol.isEmptyMk()
+//// && staProtocol.getWorkNo() > 0
+// && staProtocol.isPakMk()) {
+//
+// // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
+// if (barcodeThread == null) {
+// continue;
+// }
+// String barcode = barcodeThread.getBarcode();
+// if (!Cools.isEmpty(barcode)) {
+//// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+// if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
+// staProtocol.setWorkNo(wrkNo++);
+// staProtocol.setStaNo(pickSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//
+// // led 寮傚父鏄剧ず
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+// if (ledThread != null) {
+// String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
+// MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
+// }
// continue;
// }
-
- }
- WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
- .eq("barcode", barcode)
- .in("io_type", 107, 103, 57));
- if (!Cools.isEmpty(checkPick)) {
- continue;
- }
- try {
- LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
- SearchLocParam param = new SearchLocParam();
- param.setBarcode(barcode);
- param.setIoType(1);
- param.setSourceStaNo(inSta.getStaNo());
- param.setLocType1(locTypeDto.getLocType1());
- String response = new HttpHandler.Builder()
- .setTimeout(30,TimeUnit.SECONDS)
- .setUri(wmsUrl)
- .setPath("/rpc/pakin/loc/v1")
- .setJson(JSON.toJSONString(param))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- StartupDto dto = jsonObject.getObject("data", StartupDto.class);
- barcodeThread.setBarcode("");
- staProtocol.setWorkNo(dto.getWorkNo());
- //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
- staProtocol.setStaNo(dto.getStaNo().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
-
- ledThread.errorReset();
- log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
-
- if (!result) {
- News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
-
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
- }
- } else {
- if (jsonObject.getString("msg").equals("宸ヤ綔妗e凡瀛樺湪")) {
-
- //宸ヤ綔妗e凡瀛樺湪 鍐嶆杩涘幓
-// wrkMast = wrkMastMapper.selectPakInStepBarcode(barcode);
-// if (wrkMast != null) {
-// barcodeThread.setBarcode("");
-// staProtocol.setWorkNo(9999);
-// //staProtocol.setWorkNo(wrkMast.getWrkNo());
-// //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
-// staProtocol.setStaNo(inSta.getBackSta().shortValue());
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-// log.error("杈撻�佺嚎涓嬪彂2锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
-// ledThread.errorReset();
-// log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
-// if (!result) {
-// News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
-//
-// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-// }
-// }
-
- continue;
- }
- staProtocol.setWorkNo(wrkNo);
- wrkNo++;
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//
-// if (ledThread != null) {
- String errorMsg = jsonObject.getString("msg");
- if (!Cools.isEmpty(errorMsg)) {
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
- }
-// }
-// News.error(methodName + ":璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
- }
-
-
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
-
- }
-
-
- }
- }
-// News.infoNoLog(""+mark+" - 0"+" - 缁勬墭 ===銆嬫墽琛屽畬鎴�");
-
- }
-
- /**
- * wms鍏ュ簱
- * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2
- */
- public synchronized void generateStoreWrkFile0(Integer mark) {
- // 鏍规嵁杈撻�佺嚎plc閬嶅巻
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鍏ュ簱鍙�
- for (DevpSlave.Sta inSta : devp.getInSta()) {
- // 鑾峰彇鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
-// // 鍏ュ嚭搴撴ā寮忓垽鏂�
- if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) {
- continue;
- }
-
- // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (!staProtocol.isLoading()) {
- continue;
- }
- if (staProtocol.isAutoing() && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
- && staProtocol.isPakMk()) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
- // 鍒ゆ柇閲嶅宸ヤ綔妗�
- WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo());
- if (wrkMast == null) {
- continue;
- }
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
- // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂3锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
- if (result) {
- // 鏇存柊宸ヤ綔涓绘。
- wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋
- wrkMast.setModiTime(new Date());
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("" + mark + " - 1" + " - 鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
- }
- } else {
- News.error("" + mark + " - 2" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
- }
-
- } else {
- News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
- + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo()
- + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk() + "銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp());
- }
- }
- }
-// News.infoNoLog(""+mark+" - 0"+" - wms鍏ュ簱 ===銆嬫墽琛屽畬鎴�");
-
- }
-
- /**
- * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
- */
- public synchronized void stnToCrnStnPick(Integer mark) {
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鎷f枡鍏ュ簱鍙�
- for (DevpSlave.Sta pickSta : devp.getPickSta()) {
- // 鑾峰彇鏉$爜鎵弿浠俊鎭�
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
- if (barcodeThread == null) {
- continue;
- }
- String barcode = barcodeThread.getBarcode();
- // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-
- StaProtocol staProtocol = devpThread.getStation().get(pickSta.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 && staProtocol.isBarcodeErr()) {
- errMsg = "鎵爜澶辫触";
- back = true;
- }
-
- // 閫�鍥�
- if (back) {
- log.info("errmsg: " + errMsg);
-// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
- MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
- if (!staProtocol.isLoading()) {
- continue;
- }
- if (!staProtocol.isPakMk()) {
- continue;
- }
- staProtocol.setWorkNo(wrkNo);
- News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", pickSta.getStaNo(), errMsg, wrkNo);
- wrkNo++;
- staProtocol.setStaNo(pickSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂1锛�" + 9999 + "," + pickSta.getBackSta());
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
-
- // led 寮傚父鏄剧ず
- if (ledThread != null) {
- MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
- }
- continue;
- }
- if (!Cools.isEmpty(barcode)) {
- News.infoNoLog("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
- if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
- continue;
- }
- } else {
- continue;
- }
-
-
- if (!Cools.isEmpty(barcode)) {
-// News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
- if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
- continue;
- }
- } else {
- continue;
- }
-
-
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
-// // 鍏ュ嚭搴撴ā寮忓垽鏂�
-// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
-
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
- WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
-// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
- if (wrkMast == null) {
- // 鏃犳嫞鏂欐暟鎹�
- continue;
- }
- if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
- || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
- continue;
- }
-
- // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
-// int stnNo = 0;
-// if (wrkMast.getStaNo() == 109) {
-// stnNo = 127;
-// } else if (wrkMast.getStaNo() == 113) {
-// stnNo = 128;
// } else {
-// log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
-// }
- // 鑾峰彇鐩爣绔�
- Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", wrkMast.getIoType() - 50)
- .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
- .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
- StaDesc staDesc = staDescService.selectOne(wrapper);
- if (Cools.isEmpty(staDesc)) {
- News.error("" + mark + " - 2" + " - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
- staProtocol.setWorkNo(wrkNo++);
- staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue() - (short) 1));
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂4锛�" + 9989 + "," + (pickSta.getStaNo().shortValue() - (short) 1));
- //LED
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
- // led 寮傚父鏄剧ず
- if (ledThread != null) {
- String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�" + pickSta.getBackSta().shortValue() + "绔欑偣";
- MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
- }
- continue;
- }
-
- try {
- // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
- if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
- }
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
- throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
- }
-
- Date now = new Date();
- // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
- Integer staNo = staDesc.getCrnStn();
- // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
- wrkMast.setIoTime(now);
- wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
- wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
- wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
- wrkMast.setStaNo(staNo); // 鐩爣绔�
- wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
- wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
- }
- // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
- wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
- // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
- LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- locMast.setLocSts("Q");
- locMast.setModiTime(new Date());
- if (!locMastService.updateById(locMast)) {
- throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
- }
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- continue;
- }
-
- // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(Short.valueOf(wrkMast.getStaNo().toString()));
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂5锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
- if (!result) {
- News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
- }
-
- } else {
- News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
- + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk());
- }
-
- }
-
- }
-// News.infoNoLog(""+mark+" - 0"+" - 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 ===銆嬫墽琛屽畬鎴�");
- }
-
-
- //鐩樼偣鍐嶅叆搴�
- public synchronized void stnToCrnStnPick2() {
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鎷f枡鍏ュ簱鍙�
- for (DevpSlave.Sta pickSta : devp.getPickSta()) {
- // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk()
-// && staProtocol.getWorkNo() > 0
- && staProtocol.isPakMk()) {
-
- // 鑾峰彇鏉$爜鎵弿浠俊鎭�
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
- if (barcodeThread == null) {
- continue;
- }
- String barcode = barcodeThread.getBarcode();
- if (!Cools.isEmpty(barcode)) {
-// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
- if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
- staProtocol.setWorkNo(wrkNo++);
- staProtocol.setStaNo(pickSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-
- // led 寮傚父鏄剧ず
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
- if (ledThread != null) {
- String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
- MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
- }
- continue;
- }
- } else {
- staProtocol.setWorkNo(wrkNo++);
- staProtocol.setStaNo(pickSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-
- // led 寮傚父鏄剧ず
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
- if (ledThread != null) {
- String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
- MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
- }
- continue;
- }
-
- WrkMast wrkMast = wrkMastMapper.selectPickStep2(barcode);
- if (wrkMast == null) {
- // 鏃犵洏鐐规暟鎹�
- continue;
- }
-
- // 鍑哄簱纭淇″彿浣�
-// if ((Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) && wrkMast.getIoType() != 107) {
+// staProtocol.setWorkNo(wrkNo++);
+// staProtocol.setStaNo(pickSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//
+// // led 寮傚父鏄剧ず
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+// if (ledThread != null) {
+// String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
+// MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
+// }
// continue;
// }
-// if ( wrkMast.getIoType() != 107 || Cools.isEmpty(wrkMast.getStaNo())
-// || Cools.isEmpty(wrkMast.getSourceStaNo())) {
+//
+// WrkMast wrkMast = wrkMastMapper.selectPickStep2(barcode);
+// if (wrkMast == null) {
+// // 鏃犵洏鐐规暟鎹�
// continue;
// }
-
- // 鑾峰彇搴撲綅鍙�
- try {
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
- LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
- SearchLocParam param = new SearchLocParam();
- param.setBarcode(barcode);
- param.setIoType(107);
- param.setSourceStaNo(pickSta.getStaNo()); //浣滀笟绔欑偣
- if (!Cools.isEmpty(locMast)) {
- param.setLocType1(locMast.getLocType1());
- } else {
- param.setLocType1(locTypeDto.getLocType1());
- }
-
- String response = "";
- log.info("鍏ュ簱浣滀笟绔�" + pickSta.getStaNo() + "鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
- try {
- response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/pakin2/loc/v1")
- .setJson(JSON.toJSONString(param))
-// .setTimeout(15, TimeUnit.SECONDS)
- .build()
- .doPost();
- } catch (Exception e) {
- log.error("鍏ュ簱浣滀笟绔�" + pickSta.getStaNo() + "鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
- log.error("stnToCrnStnPick2===>>鐩樼偣鏌ュ簱浣嶅叆搴撴帴鍙eけ璐�", e);
- e.printStackTrace();
- continue;
- }
- log.info("鍏ュ簱浣滀笟绔�" + pickSta.getStaNo() + "鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
- log.info("鍏ュ簱浣滀笟绔�" + pickSta.getStaNo() + "涓嬪彂鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS杩斿洖缁撴灉===>>" + response);
- if (response.equals("")) {
- continue;
- }
- JSONObject jsonObject = JSON.parseObject(response);
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
- Integer code = jsonObject.getInteger("code");
- if (code == 200) {
- StartupDto dto = jsonObject.getObject("data", StartupDto.class);
- if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getStaNo())) {
- log.error("浠诲姟鍙�" + wrkMast.getWrkNo() + "鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶅け璐�===>>" + jsonObject.toJSONString());
- } else {
- log.info("浠诲姟鍙�" + wrkMast.getWrkNo() + "鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶆垚鍔�===>>" + jsonObject.toJSONString());
- try {
- // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(Short.valueOf(dto.getStaNo().toString()));
- devpThread.setPakMk(staProtocol.getSiteId(), false);
-
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- if (!result) {
- log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
- }
- log.info("浠诲姟鍙�" + wrkMast.getWrkNo() + "鐩樼偣鍐嶅叆搴撲换鍔′笅鍙戞垚鍔�===>>" + staProtocol);
-
- ledThread.errorReset();
- log.error("鐩樼偣鍚巐ed閿欒鍒犻櫎");
-
- } catch (Exception e) {
- log.error("鐩樼偣鍐嶅叆搴撳け璐�===>>" + e);
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- }
- } else {
- staProtocol.setWorkNo(wrkNo++);
- staProtocol.setStaNo(pickSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- if (ledThread != null) {
- String errorMsg = jsonObject.getString("msg");
- if (!Cools.isEmpty(errorMsg)) {
- MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
- }
- }
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin2/loc/v1", JSON.toJSONString(param), response);
- }
- } catch (Exception e) {
- log.error("stnToCrnStnPick2===>>fail", e);
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
-
- }
-
- }
-
- }
- }
-
- /**
- * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
- */
- public synchronized void crnStnToOutStn(Integer mark) {
-
- for (CrnSlave crnSlave : slaveProperties.getCrn()) {
- // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
- for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
- // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
- // 鏌ヨ宸ヤ綔妗�
- WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
- if (wrkMast == null) {
- continue;
- }
- // 鍒ゆ柇宸ヤ綔妗f潯浠�
- if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
- continue;
- }
- // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
- // 绉诲姩涓�
- continue;
- }
- // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
- if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
- && crnProtocol.statusType == CrnStatusType.WAITING
- && crnProtocol.forkPosType == CrnForkPosType.HOME) {
- log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�");
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
- // 涓嬪彂绔欑偣淇℃伅
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(), wrkMast.getSourceStaNo()));
- if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
- log.info(staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂澶辫触");
- continue;
- } else {
- log.info(staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂鎴愬姛");
- }
-
- // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
- wrkMast.setWrkSts(14L);
- wrkMast.setCrnEndTime(new Date());
- if (wrkMastMapper.updateById(wrkMast) != 0) {
- // 澶嶄綅鍫嗗灈鏈�
- log.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,{}", wrkMast.getWrkNo());
- crnThread.setResetFlag(true);
- } else {
- News.error("" + mark + " - 1" + " - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
- }
-
- } else {
- News.errorNoLog("" + mark + " - 6" + " - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�"
- + " 鍫嗗灈鏈虹姸鎬侊細" + crnProtocol.modeType + "==鑷姩AUTO锛�" + CrnModeType.AUTO
- + "銆佸爢鍨涙満浠诲姟鍙凤細" + crnProtocol.getTaskNo() + "==宸ヤ綔妗d换鍔″彿锛�" + wrkMast.getWrkNo().shortValue()
- + "銆佺姸鎬佹灇涓撅細" + crnProtocol.statusType + "==WAITING锛�90 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING
- + "銆佽揣鍙変綅缃細" + crnProtocol.forkPosType + "==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME);
- }
-
- }
- }
- }
-// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯 ===銆嬫墽琛屽畬鎴�");
- }
-
- /**
- * 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
- */
- public synchronized void crnIoExecute(Integer mark) {
-
- 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) {
- News.error("" + mark + " - 1" + " - {}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
- continue;
- }
-
-// //鍫嗗灈鏈哄洖鍘熺偣浠诲姟涓�
-// if(crnThread.isBackHpFlag()){
-// continue;
+//
+// // 鍑哄簱纭淇″彿浣�
+//// if ((Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) && wrkMast.getIoType() != 107) {
+//// continue;
+//// }
+//// if ( wrkMast.getIoType() != 107 || Cools.isEmpty(wrkMast.getStaNo())
+//// || Cools.isEmpty(wrkMast.getSourceStaNo())) {
+//// continue;
+//// }
+//
+// // 鑾峰彇搴撲綅鍙�
+// try {
+// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
+// LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+// SearchLocParam param = new SearchLocParam();
+// param.setBarcode(barcode);
+// param.setIoType(107);
+// param.setSourceStaNo(pickSta.getStaNo()); //浣滀笟绔欑偣
+// if (!Cools.isEmpty(locMast)) {
+// param.setLocType1(locMast.getLocType1());
+// } else {
+// param.setLocType1(locTypeDto.getLocType1());
+// }
+//
+// String response = "";
+// log.info("鍏ュ簱浣滀笟绔�" + pickSta.getStaNo() + "鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
+// try {
+// response = new HttpHandler.Builder()
+// .setUri(wmsUrl)
+// .setPath("/rpc/pakin2/loc/v1")
+// .setJson(JSON.toJSONString(param))
+//// .setTimeout(15, TimeUnit.SECONDS)
+// .build()
+// .doPost();
+// } catch (Exception e) {
+// log.error("鍏ュ簱浣滀笟绔�" + pickSta.getStaNo() + "鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
+// log.error("stnToCrnStnPick2===>>鐩樼偣鏌ュ簱浣嶅叆搴撴帴鍙eけ璐�", e);
+// e.printStackTrace();
+// continue;
+// }
+// log.info("鍏ュ簱浣滀笟绔�" + pickSta.getStaNo() + "鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
+// log.info("鍏ュ簱浣滀笟绔�" + pickSta.getStaNo() + "涓嬪彂鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS杩斿洖缁撴灉===>>" + response);
+// if (response.equals("")) {
+// continue;
+// }
+// JSONObject jsonObject = JSON.parseObject(response);
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+// Integer code = jsonObject.getInteger("code");
+// if (code == 200) {
+// StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+// if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getStaNo())) {
+// log.error("浠诲姟鍙�" + wrkMast.getWrkNo() + "鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶅け璐�===>>" + jsonObject.toJSONString());
+// } else {
+// log.info("浠诲姟鍙�" + wrkMast.getWrkNo() + "鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶆垚鍔�===>>" + jsonObject.toJSONString());
+// try {
+// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+// staProtocol.setWorkNo(wrkMast.getWrkNo());
+// staProtocol.setStaNo(Short.valueOf(dto.getStaNo().toString()));
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+//
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// if (!result) {
+// log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+// }
+// log.info("浠诲姟鍙�" + wrkMast.getWrkNo() + "鐩樼偣鍐嶅叆搴撲换鍔′笅鍙戞垚鍔�===>>" + staProtocol);
+//
+// ledThread.errorReset();
+// log.error("鐩樼偣鍚巐ed閿欒鍒犻櫎");
+//
+// } catch (Exception e) {
+// log.error("鐩樼偣鍐嶅叆搴撳け璐�===>>" + e);
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+// }
+// } else {
+// staProtocol.setWorkNo(wrkNo++);
+// staProtocol.setStaNo(pickSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// if (ledThread != null) {
+// String errorMsg = jsonObject.getString("msg");
+// if (!Cools.isEmpty(errorMsg)) {
+// MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
+// }
+// }
+// log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin2/loc/v1", JSON.toJSONString(param), response);
+// }
+// } catch (Exception e) {
+// log.error("stnToCrnStnPick2===>>fail", e);
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+//
+// }
+//
// }
-
- // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
- && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
- // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
- if (crnProtocol.getLastIo().equals("I")) {
- if (basCrnp.getInEnable().equals("Y")) {
- //mark - 1 - ....
- this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
- crnProtocol.setLastIo("O");
- } else if (basCrnp.getOutEnable().equals("Y")) {
- //mark - 2 - ....
- this.locToCrnStn(crn, crnProtocol, mark); // 鍑哄簱
- crnProtocol.setLastIo("I");
- }
- }
- // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
- else if (crnProtocol.getLastIo().equals("O")) {
- if (basCrnp.getOutEnable().equals("Y")) {
- this.locToCrnStn(crn, crnProtocol, mark); // 鍑哄簱
- crnProtocol.setLastIo("I");
- } else if (basCrnp.getInEnable().equals("Y")) {
- this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
- crnProtocol.setLastIo("O");
- }
- }
- }
- // 搴撲綅绉昏浆
- //mark - 3 - ....
- this.locToLoc(crn, crnProtocol, mark);
-// this.crnRebackHp(crnProtocol, crnThread);
-
- }
-// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
- }
-
- /**
- * 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
- */
- public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread) {
+//
+// }
+// }
+//
+// /**
+// * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
+// */
+// public synchronized void crnStnToOutStn(Integer mark) {
+//
+// for (CrnSlave crnSlave : slaveProperties.getCrn()) {
+// // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
+// for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
+// // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+// StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+// if (staProtocol == null) {
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+// if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+// // 鏌ヨ宸ヤ綔妗�
+// WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
+// if (wrkMast == null) {
+// continue;
+// }
+// // 鍒ゆ柇宸ヤ綔妗f潯浠�
+// if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
+// continue;
+// }
+// // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
+// CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+// if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
+// // 绉诲姩涓�
+// continue;
+// }
+// // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+// if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
+// && crnProtocol.statusType == CrnStatusType.WAITING
+// && crnProtocol.forkPosType == CrnForkPosType.HOME) {
+// log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�");
+//
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+//
+// // 涓嬪彂绔欑偣淇℃伅
+// staProtocol.setWorkNo(wrkMast.getWrkNo());
+// staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(), wrkMast.getSourceStaNo()));
+// if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+// log.info(staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂澶辫触");
+// continue;
+// } else {
+// log.info(staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂鎴愬姛");
+// }
+//
+// // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+// wrkMast.setWrkSts(14L);
+// wrkMast.setCrnEndTime(new Date());
+// if (wrkMastMapper.updateById(wrkMast) != 0) {
+// // 澶嶄綅鍫嗗灈鏈�
+// log.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,{}", wrkMast.getWrkNo());
+// crnThread.setResetFlag(true);
+// } else {
+// News.error("" + mark + " - 1" + " - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+// }
+//
+// } else {
+// News.errorNoLog("" + mark + " - 6" + " - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�"
+// + " 鍫嗗灈鏈虹姸鎬侊細" + crnProtocol.modeType + "==鑷姩AUTO锛�" + CrnModeType.AUTO
+// + "銆佸爢鍨涙満浠诲姟鍙凤細" + crnProtocol.getTaskNo() + "==宸ヤ綔妗d换鍔″彿锛�" + wrkMast.getWrkNo().shortValue()
+// + "銆佺姸鎬佹灇涓撅細" + crnProtocol.statusType + "==WAITING锛�90 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING
+// + "銆佽揣鍙変綅缃細" + crnProtocol.forkPosType + "==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME);
+// }
+//
+// }
+// }
+// }
+//// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯 ===銆嬫墽琛屽畬鎴�");
+// }
+//
+// /**
+// * 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
+// */
+// public synchronized void crnIoExecute(Integer mark) {
+//
// for (CrnSlave crn : slaveProperties.getCrn()) {
// // 鑾峰彇鍫嗗灈鏈轰俊鎭�
// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
@@ -913,1245 +855,1199 @@
// }
// BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
// if (basCrnp == null) {
-// log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+// News.error("" + mark + " - 1" + " - {}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
// continue;
// }
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- if (crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) {
- return;
- }
-
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
- if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
- return;
- }
-
- //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12
- if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
- return;
- }
-
- //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2
- if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) {
- return;
- }
- News.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣");
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍥炲師鐐�
- crnCommand.setSourcePosX((short) 0); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY((short) 0); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
- }
- crnThread.setBackHpFlag(true);
- }
-// }
- }
-
- /**
- * 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
- */
- public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol, Integer mark) {
- News.warnNoLog("" + mark + " - 1" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽叆搴�");
- for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
- boolean flag = false;
- // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
- if (staProtocol == null) {
- News.infoNoLog("" + mark + " - 1" + " - 1" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
- if (staDetl == null) {
- News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
- continue;
- }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
- && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
- flag = true;
- }
- if (!flag) {
- News.errorNoLog("" + mark + " - 1" + " - 3" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(浠ヤ笅闇�瑕佸叏true):"
- + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
- + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isInEnable()
- + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining());
- continue;
- }
- // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
- WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
- if (null == wrkMast) {
- News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
-// log.error("鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
- continue;
- }
- // 鑾峰彇搴撲綅淇℃伅
- LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- if (locMast == null) {
- News.error("" + mark + " - 1" + " - 5" + " - 鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
- continue;
- }
- if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
- News.error("" + mark + " - 1" + " - 6" + " - 鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
- continue;
- }
-
- // 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-// News.infoNoLog(""+mark+" - 1"+" - 7"+" - 鍫嗗灈鏈烘帶鍒惰繃婊�:鍫嗗灈鏈烘槸鍚︾┖闂�={}锛屼换鍔″彿={}", crnProtocol.getStatusType(),crnProtocol.getTaskNo());
- continue;
- }
-
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
- if (wrkMastMapper.selectWorking(slave.getId()) != null) {
- continue;
- }
-
- // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
- if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
- News.warnNoLog("" + mark + " - 1" + " - 8" + " - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}", wrkMast.getWrkNo());
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
- LocMast shallowLoc = locMastService.selectById(shallowLocNo);
- // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
- if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
- News.warnNoLog("" + mark + " - 1" + " - 9" + " - // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒搴撲綅鐘舵��={}", shallowLoc.getLocSts());
- WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
- if (null == waitWrkMast) {
- News.error("" + mark + " - 1" + " - 10" + " - {}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
- } else {
- waitWrkMast.setIoPri(15D);
- waitWrkMast.setModiTime(new Date());
- if (wrkMastMapper.updateById(waitWrkMast) == 0) {
- News.error("" + mark + " - 1" + " - 11" + " - 璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
- }
- continue;
- }
-
- } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
- News.warnNoLog("" + mark + " - 1" + " - 12" + " - // F銆丏 搴撲綅鐘舵��={}", shallowLoc.getLocSts());
- // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
- if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
- wrkMast.setUpdMk("Y");
- wrkMast.setIoPri(14D);
- wrkMastMapper.updateById(wrkMast);
- // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
- moveLocForDeepLoc(slave, shallowLoc, mark);
- // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
-// moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
- }
- continue;
- } else if (shallowLoc.getLocSts().equals("Q")) {
- News.warnNoLog("" + mark + " - 1" + " - 13" + " - // Q 搴撲綅鐘舵��={}", shallowLoc.getLocSts());
- WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
- if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
- News.infoNoLog("" + mark + " - 1" + " - 14" + " - // F銆丏 宸ヤ綔鐘舵��(鍒ゆ柇鏉′欢涓�==4)={}", waitWrkMast.getWrkSts());
- continue;
- }
- }
- }
- News.warnNoLog("" + mark + " - 1" + " - 15" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue()
- , crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue()
- , locMast.getRow1().shortValue(), locMast.getBay1().shortValue(), locMast.getLev1().shortValue());
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX((short) (locMast.getRow1() + slave.getOffset())); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY((short) (locMast.getBay1() + slave.getOffset())); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ((short) (locMast.getLev1() + slave.getOffset())); // 鐩爣搴撲綅灞�
- crnCommand.setTraySize(locMast.getLocType1() == 2);
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- News.error("" + mark + " - 1" + " - 16" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
-
-// long startTime = System.currentTimeMillis();
-// while ((System.currentTimeMillis() - startTime) < COMMAND_TIMEOUT) {
//
-// if (true) {
-// break;
+//// //鍫嗗灈鏈哄洖鍘熺偣浠诲姟涓�
+//// if(crnThread.isBackHpFlag()){
+//// continue;
+//// }
+//
+// // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+// if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
+// && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
+// News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
+// // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+// if (crnProtocol.getLastIo().equals("I")) {
+// if (basCrnp.getInEnable().equals("Y")) {
+// //mark - 1 - ....
+// this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
+// crnProtocol.setLastIo("O");
+// } else if (basCrnp.getOutEnable().equals("Y")) {
+// //mark - 2 - ....
+// this.locToCrnStn(crn, crnProtocol, mark); // 鍑哄簱
+// crnProtocol.setLastIo("I");
// }
+// }
+// // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+// else if (crnProtocol.getLastIo().equals("O")) {
+// if (basCrnp.getOutEnable().equals("Y")) {
+// this.locToCrnStn(crn, crnProtocol, mark); // 鍑哄簱
+// crnProtocol.setLastIo("I");
+// } else if (basCrnp.getInEnable().equals("Y")) {
+// this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
+// crnProtocol.setLastIo("O");
+// }
+// }
+// }
+// // 搴撲綅绉昏浆
+// //mark - 3 - ....
+// this.locToLoc(crn, crnProtocol, mark);
+//// this.crnRebackHp(crnProtocol, crnThread);
//
-// try{
-// Thread.sleep(500);
-// }catch(Exception ignore){}
-// }
-
- // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
- Date now = new Date();
- wrkMast.setWrkSts(3L);
- wrkMast.setCrnStrTime(now);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("" + mark + " - 1" + " - 17" + " - 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- }
- }
- News.infoNoLog("" + mark + " - 1" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍏ュ簱鎵ц瀹屾瘯");
- }
-
- /**
- * 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
- * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
- */
- public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol, Integer mark) {
- News.warnNoLog("" + mark + " - 2" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽嚭搴�");
- for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
- // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
-// WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
- List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
- for (WrkMast wrkMast : wrkMasts) {
- if (wrkMast == null) {
- continue;
- }
- // 宸ヤ綔妗g姸鎬佸垽鏂�
- if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
- News.error("" + mark + " - 2" + " - 1" + " - 鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
- continue;
- }
- // 鑾峰彇婧愬簱浣嶄俊鎭�
- LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
- if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
- News.error("" + mark + " - 2" + " - 2" + " - 鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
- continue;
- }
- // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
- if (staProtocol == null) {
- News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
- break;
-// continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
-// // 鍏ュ嚭搴撴ā寮忓垽鏂�
-// if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
-// if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
-// News.infoNoLog(""+mark+" - 2"+" - 4"+" - 鍏ュ嚭搴撴ā寮忥紙姝ゅ鍑哄簱鏂规硶锛屽嚭搴撴ā寮忕户缁�=="+devpThread.ioModeOf2F);
-// continue;
-// }
-
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
- if (staDetl == null) {
- News.error("" + mark + " - 2" + " - 5" + " - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
- break;
-// continue;
- }
- // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
- && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
- // 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-// continue;
- break;
- }
-
- // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
- if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
- News.warnNoLog("" + mark + " - 2" + " - 6" + " - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}", wrkMast.getWrkNo());
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
- LocMast shallowLoc = locMastService.selectById(shallowLocNo);
- // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
- if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
- News.warnNoLog("" + mark + " - 2" + " - 7" + " - // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒搴撲綅鐘舵��={}", shallowLoc.getLocSts());
- WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
- if (null == waitWrkMast) {
- News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
- } else {
- if (waitWrkMast.getWrkSts() == 11) {
- waitWrkMast.setIoPri(15D);
- waitWrkMast.setModiTime(new Date());
- if (wrkMastMapper.updateById(waitWrkMast) == 0) {
- News.error("" + mark + " - 2" + " - 8" + " - 璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
- }
- continue;
- } else {
-
- }
- }
- } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
- News.warnNoLog("" + mark + " - 2" + " - 9" + " - // F銆丏 搴撲綅鐘舵��={}", shallowLoc.getLocSts());
-// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
- //2022-08-16 modify,涓嶆牴鎹畊pdmk鏍囪绉诲簱浠诲姟(瀹规槗琚彇娑堝鑷村牭濉�)锛屾煡璇㈠伐浣滄。鏄惁瀛樺湪浠诲姟
- WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
- // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
-// || Cools.isEmpty(waitWrkMast)) {
- if (Cools.isEmpty(waitWrkMast)) {
- wrkMast.setUpdMk("Y");
- wrkMastMapper.updateById(wrkMast);
- // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
- moveLocForDeepLoc(slave, shallowLoc, mark);
- }
- News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
- continue;
- } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
- News.warnNoLog("" + mark + " - 2" + " - 10" + " - // Q銆丼 搴撲綅鐘舵��={}", shallowLoc.getLocSts());
- WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
- if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
- News.infoNoLog("" + mark + " - 2" + " - 11" + " - // F銆丏 宸ヤ綔鐘舵��(鍒ゆ柇鏉′欢涓�==4)={}", waitWrkMast.getWrkSts());
- continue;
- }
- }
- }
-
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
- if (wrkMastMapper.selectWorking(slave.getId()) != null) {
- break;
-// return;
- }
-
- News.warnNoLog("" + mark + " - 2" + " - 12" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue()
- , sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue()
- , crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue());
-
- // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX((short) (sourceSta.getRow1() + slave.getOffset())); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY((short) (sourceSta.getBay1() + slave.getOffset())); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ((short) (sourceSta.getLev1() + slave.getOffset())); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
- crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
- Date now = new Date();
- wrkMast.setWrkSts(12L);
- wrkMast.setCrnStrTime(now);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- break;
- }
- }
- }
- }
- News.infoNoLog("" + mark + " - 2" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍑哄簱鎵ц瀹屾瘯");
- }
-
+// }
+//// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
+// }
+//
// /**
-// * 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
+// * 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
// */
-// public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol){
-// for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
-// // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
-// WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
-// if (wrkMast == null) {
-// continue;
+// public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread) {
+//// 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;
+//// }
+// if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+// if (crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) {
+// return;
// }
-// // 宸ヤ綔妗g姸鎬佸垽鏂�
-// if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null){
-// log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
-// continue;
+//
+// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
+// if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
+// return;
// }
-// // 鑾峰彇婧愬簱浣嶄俊鎭�
-// LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
-// if (!sourceSta.getLocSts().equals("R") &&!sourceSta.getLocSts().equals("P")) {
-// log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
-// continue;
+//
+// //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12
+// if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
+// return;
// }
-// // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+//
+// //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2
+// if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) {
+// return;
+// }
+// News.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣");
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// CrnCommand crnCommand = new CrnCommand();
+// crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+// crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
+// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+// crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍥炲師鐐�
+// crnCommand.setSourcePosX((short) 0); // 婧愬簱浣嶆帓
+// crnCommand.setSourcePosY((short) 0); // 婧愬簱浣嶅垪
+// crnCommand.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰
+// crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
+// crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
+// crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
+// if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
+// News.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
+// }
+// crnThread.setBackHpFlag(true);
+// }
+//// }
+// }
+//
+// /**
+// * 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
+// */
+// public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol, Integer mark) {
+// News.warnNoLog("" + mark + " - 1" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽叆搴�");
+// for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
+// boolean flag = false;
+// // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
+// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
// StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
// if (staProtocol == null) {
+// News.infoNoLog("" + mark + " - 1" + " - 1" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
// continue;
// } else {
// staProtocol = staProtocol.clone();
// }
-//
-//// // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//// if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
-//
-//
// // 鏌ヨ绔欑偣璇︾粏淇℃伅
// BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
// if (staDetl == null) {
-// log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+// News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
// continue;
// }
-// // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() !=null && staDetl.getCanouting().equals("Y")
-// && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
-// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
+// && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
+// flag = true;
+// }
+// if (!flag) {
+// News.errorNoLog("" + mark + " - 1" + " - 3" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(浠ヤ笅闇�瑕佸叏true):"
+// + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
+// + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isInEnable()
+// + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining());
+// continue;
+// }
+// // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
+// if (null == wrkMast) {
+// News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+//// log.error("鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+// continue;
+// }
+// // 鑾峰彇搴撲綅淇℃伅
+// LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+// if (locMast == null) {
+// News.error("" + mark + " - 1" + " - 5" + " - 鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
+// continue;
+// }
+// if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
+// News.error("" + mark + " - 1" + " - 6" + " - 鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
+// continue;
+// }
//
-// // 鍫嗗灈鏈烘帶鍒惰繃婊�
-// if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+// // 鍫嗗灈鏈烘帶鍒惰繃婊�
+// if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+//// News.infoNoLog(""+mark+" - 1"+" - 7"+" - 鍫嗗灈鏈烘帶鍒惰繃婊�:鍫嗗灈鏈烘槸鍚︾┖闂�={}锛屼换鍔″彿={}", crnProtocol.getStatusType(),crnProtocol.getTaskNo());
+// continue;
+// }
+//
+// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+// if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+// continue;
+// }
+//
+// // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+// if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
+// News.warnNoLog("" + mark + " - 1" + " - 8" + " - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}", wrkMast.getWrkNo());
+// String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
+// LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+// // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
+// if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
+// News.warnNoLog("" + mark + " - 1" + " - 9" + " - // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒搴撲綅鐘舵��={}", shallowLoc.getLocSts());
+// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+// if (null == waitWrkMast) {
+// News.error("" + mark + " - 1" + " - 10" + " - {}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+// } else {
+// waitWrkMast.setIoPri(15D);
+// waitWrkMast.setModiTime(new Date());
+// if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+// News.error("" + mark + " - 1" + " - 11" + " - 璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+// }
+// continue;
+// }
+//
+// } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+// News.warnNoLog("" + mark + " - 1" + " - 12" + " - // F銆丏 搴撲綅鐘舵��={}", shallowLoc.getLocSts());
+// // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
+// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
+// wrkMast.setUpdMk("Y");
+// wrkMast.setIoPri(14D);
+// wrkMastMapper.updateById(wrkMast);
+// // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
+// moveLocForDeepLoc(slave, shallowLoc, mark);
+// // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
+//// moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
+// }
// continue;
-// }
-//
-// // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-// if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
-// String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
-// LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-// // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
-// if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-// if (null == waitWrkMast) {
-// log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
-// } else {
-// if(waitWrkMast.getWrkSts() == 11) {
-// waitWrkMast.setIoPri(15D);
-// waitWrkMast.setModiTime(new Date());
-// if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-// log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
-// }
-// continue;
-// } else {
-//
-// }
-// }
-// } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-// // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
-// wrkMast.setUpdMk("Y");
-// wrkMastMapper.updateById(wrkMast);
-// // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
-// moveLocForDeepLoc(slave, shallowLoc);
-// }
-// log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛�", wrkMast.getWrkNo());
+// } else if (shallowLoc.getLocSts().equals("Q")) {
+// News.warnNoLog("" + mark + " - 1" + " - 13" + " - // Q 搴撲綅鐘舵��={}", shallowLoc.getLocSts());
+// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+// if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
+// News.infoNoLog("" + mark + " - 1" + " - 14" + " - // F銆丏 宸ヤ綔鐘舵��(鍒ゆ柇鏉′欢涓�==4)={}", waitWrkMast.getWrkSts());
// continue;
// }
// }
+// }
+// News.warnNoLog("" + mark + " - 1" + " - 15" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue()
+// , crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue()
+// , locMast.getRow1().shortValue(), locMast.getBay1().shortValue(), locMast.getLev1().shortValue());
//
-// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-// if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-// return;
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// CrnCommand crnCommand = new CrnCommand();
+// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+// crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+//// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+// crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+// crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
+// crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
+// crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
+// crnCommand.setDestinationPosX((short) (locMast.getRow1() + slave.getOffset())); // 鐩爣搴撲綅鎺�
+// crnCommand.setDestinationPosY((short) (locMast.getBay1() + slave.getOffset())); // 鐩爣搴撲綅鍒�
+// crnCommand.setDestinationPosZ((short) (locMast.getLev1() + slave.getOffset())); // 鐩爣搴撲綅灞�
+// crnCommand.setTraySize(locMast.getLocType1() == 2);
+// if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+// News.error("" + mark + " - 1" + " - 16" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+// } else {
+//
+//// long startTime = System.currentTimeMillis();
+//// while ((System.currentTimeMillis() - startTime) < COMMAND_TIMEOUT) {
+////
+//// if (true) {
+//// break;
+//// }
+////
+//// try{
+//// Thread.sleep(500);
+//// }catch(Exception ignore){}
+//// }
+//
+// // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+// Date now = new Date();
+// wrkMast.setWrkSts(3L);
+// wrkMast.setCrnStrTime(now);
+// wrkMast.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// News.error("" + mark + " - 1" + " - 17" + " - 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+// }
+// }
+// }
+// News.infoNoLog("" + mark + " - 1" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍏ュ簱鎵ц瀹屾瘯");
+// }
+//
+// /**
+// * 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
+// * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
+// */
+// public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol, Integer mark) {
+// News.warnNoLog("" + mark + " - 2" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽嚭搴�");
+// for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
+// // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
+//// WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
+// List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
+// for (WrkMast wrkMast : wrkMasts) {
+// if (wrkMast == null) {
+// continue;
+// }
+// // 宸ヤ綔妗g姸鎬佸垽鏂�
+// if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
+// News.error("" + mark + " - 2" + " - 1" + " - 鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
+// continue;
+// }
+// // 鑾峰彇婧愬簱浣嶄俊鎭�
+// LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
+// if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
+// News.error("" + mark + " - 2" + " - 2" + " - 鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
+// continue;
+// }
+// // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+// StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+// if (staProtocol == null) {
+// News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
+// break;
+//// continue;
+// } else {
+// staProtocol = staProtocol.clone();
// }
//
-// // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-// CrnCommand crnCommand = new CrnCommand();
-// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-// crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
-// crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
-// crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓
-// crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪
-// crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰
-// crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
-// crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
-// crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
-// if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
-// log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
-// } else {
-// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-// Date now = new Date();
-// wrkMast.setWrkSts(12L);
-// wrkMast.setCrnStrTime(now);
-// wrkMast.setModiTime(now);
-// if (wrkMastMapper.updateById(wrkMast) == 0) {
-// log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+//// // 鍏ュ嚭搴撴ā寮忓垽鏂�
+//// if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
+//// if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
+//// News.infoNoLog(""+mark+" - 2"+" - 4"+" - 鍏ュ嚭搴撴ā寮忥紙姝ゅ鍑哄簱鏂规硶锛屽嚭搴撴ā寮忕户缁�=="+devpThread.ioModeOf2F);
+//// continue;
+//// }
+//
+// // 鏌ヨ绔欑偣璇︾粏淇℃伅
+// BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+// if (staDetl == null) {
+// News.error("" + mark + " - 2" + " - 5" + " - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+// break;
+//// continue;
+// }
+// // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
+// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+// && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+//
+// // 鍫嗗灈鏈烘帶鍒惰繃婊�
+// if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+//// continue;
+// break;
// }
+//
+// // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+// if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
+// News.warnNoLog("" + mark + " - 2" + " - 6" + " - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}", wrkMast.getWrkNo());
+// String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
+// LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+// // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
+// if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
+// News.warnNoLog("" + mark + " - 2" + " - 7" + " - // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒搴撲綅鐘舵��={}", shallowLoc.getLocSts());
+// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+// if (null == waitWrkMast) {
+// News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+// } else {
+// if (waitWrkMast.getWrkSts() == 11) {
+// waitWrkMast.setIoPri(15D);
+// waitWrkMast.setModiTime(new Date());
+// if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+// News.error("" + mark + " - 2" + " - 8" + " - 璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+// }
+// continue;
+// } else {
+//
+// }
+// }
+// } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+// News.warnNoLog("" + mark + " - 2" + " - 9" + " - // F銆丏 搴撲綅鐘舵��={}", shallowLoc.getLocSts());
+//// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+// //2022-08-16 modify,涓嶆牴鎹畊pdmk鏍囪绉诲簱浠诲姟(瀹规槗琚彇娑堝鑷村牭濉�)锛屾煡璇㈠伐浣滄。鏄惁瀛樺湪浠诲姟
+// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
+// // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
+//// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
+//// || Cools.isEmpty(waitWrkMast)) {
+// if (Cools.isEmpty(waitWrkMast)) {
+// wrkMast.setUpdMk("Y");
+// wrkMastMapper.updateById(wrkMast);
+// // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
+// moveLocForDeepLoc(slave, shallowLoc, mark);
+// }
+// News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
+// continue;
+// } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
+// News.warnNoLog("" + mark + " - 2" + " - 10" + " - // Q銆丼 搴撲綅鐘舵��={}", shallowLoc.getLocSts());
+// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
+// if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
+// News.infoNoLog("" + mark + " - 2" + " - 11" + " - // F銆丏 宸ヤ綔鐘舵��(鍒ゆ柇鏉′欢涓�==4)={}", waitWrkMast.getWrkSts());
+// continue;
+// }
+// }
+// }
+//
+// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+// if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+// break;
+//// return;
+// }
+//
+// News.warnNoLog("" + mark + " - 2" + " - 12" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue()
+// , sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue()
+// , crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue());
+//
+// // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+// CrnCommand crnCommand = new CrnCommand();
+// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+// crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+//// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+// crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+// crnCommand.setSourcePosX((short) (sourceSta.getRow1() + slave.getOffset())); // 婧愬簱浣嶆帓
+// crnCommand.setSourcePosY((short) (sourceSta.getBay1() + slave.getOffset())); // 婧愬簱浣嶅垪
+// crnCommand.setSourcePosZ((short) (sourceSta.getLev1() + slave.getOffset())); // 婧愬簱浣嶅眰
+// crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
+// crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
+// crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
+// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
+// if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+// News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+// } else {
+// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+// Date now = new Date();
+// wrkMast.setWrkSts(12L);
+// wrkMast.setCrnStrTime(now);
+// wrkMast.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+// }
+// break;
+// }
+// }
+// }
+// }
+// News.infoNoLog("" + mark + " - 2" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍑哄簱鎵ц瀹屾瘯");
+// }
+//
+//// /**
+//// * 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
+//// */
+//// public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol){
+//// for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
+//// // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
+//// WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
+//// if (wrkMast == null) {
+//// continue;
+//// }
+//// // 宸ヤ綔妗g姸鎬佸垽鏂�
+//// if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null){
+//// log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
+//// continue;
+//// }
+//// // 鑾峰彇婧愬簱浣嶄俊鎭�
+//// LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
+//// if (!sourceSta.getLocSts().equals("R") &&!sourceSta.getLocSts().equals("P")) {
+//// log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
+//// continue;
+//// }
+//// // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+//// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+//// StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+//// if (staProtocol == null) {
+//// continue;
+//// } else {
+//// staProtocol = staProtocol.clone();
+//// }
+////
+////// // 鍏ュ嚭搴撴ā寮忓垽鏂�
+////// if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
+////
+////
+//// // 鏌ヨ绔欑偣璇︾粏淇℃伅
+//// BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+//// if (staDetl == null) {
+//// log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+//// continue;
+//// }
+//// // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
+//// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() !=null && staDetl.getCanouting().equals("Y")
+//// && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+//// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+////
+//// // 鍫嗗灈鏈烘帶鍒惰繃婊�
+//// if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+//// continue;
+//// }
+////
+//// // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+//// if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
+//// String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
+//// LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+//// // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
+//// if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
+//// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+//// if (null == waitWrkMast) {
+//// log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+//// } else {
+//// if(waitWrkMast.getWrkSts() == 11) {
+//// waitWrkMast.setIoPri(15D);
+//// waitWrkMast.setModiTime(new Date());
+//// if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+//// log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+//// }
+//// continue;
+//// } else {
+////
+//// }
+//// }
+//// } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+//// // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
+//// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
+//// wrkMast.setUpdMk("Y");
+//// wrkMastMapper.updateById(wrkMast);
+//// // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
+//// moveLocForDeepLoc(slave, shallowLoc);
+//// }
+//// log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛�", wrkMast.getWrkNo());
+//// continue;
+//// }
+//// }
+////
+//// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+//// if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+//// return;
+//// }
+////
+//// // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+//// CrnCommand crnCommand = new CrnCommand();
+//// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+//// crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+//// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+//// crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+//// crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓
+//// crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪
+//// crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰
+//// crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
+//// crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
+//// crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
+//// if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+//// log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+//// } else {
+//// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+//// Date now = new Date();
+//// wrkMast.setWrkSts(12L);
+//// wrkMast.setCrnStrTime(now);
+//// wrkMast.setModiTime(now);
+//// if (wrkMastMapper.updateById(wrkMast) == 0) {
+//// log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+//// }
+//// }
+//// }
+//// }
+//// }
+//
+// /**
+// * 搴撲綅绉昏浆
+// */
+// public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol, Integer mark) {
+// // 鑾峰彇宸ヤ綔妗d俊鎭�
+// WrkMast wrkMast = wrkMastMapper.selectLocMove(slave.getId());
+// if (null == wrkMast) {
+// return;
+// }
+// News.warnNoLog("" + mark + " - 3" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽簱浣嶇Щ杞�");
+// // 鑾峰彇婧愬簱浣嶄俊鎭�
+// LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
+// if (null == sourceSta) {
+// News.error("" + mark + " - 3" + " - 1" + " - 宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈡簮搴撲綅澶辫触锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+// return;
+// }
+// // 婧愬簱浣� 搴撲綅鐘舵�佸垽鏂�
+// if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("S")) {
+// return;
+// }
+// // 鑾峰彇鐩爣搴撲綅淇℃伅
+// LocMast sta = locMastService.selectById(wrkMast.getLocNo());
+// if (null == sta) {
+// News.error("" + mark + " - 3" + " - 2" + " - 宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// return;
+// }
+// if (sta.getLocType1() != sourceSta.getLocType1()) {
+// News.error("绉诲簱鐩爣搴撲綅绫诲瀷涓庢簮搴撲綅绫诲瀷涓嶇");
+// return;
+// }
+// // 鑾峰彇鍫嗗灈鏈轰俊鎭� 骞� 鍒ゆ柇鏄惁鍙叆鍑�
+// BasCrnp basCrnp = basCrnpService.selectById(slave.getId());
+// if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) {
+// return;
+// }
+//
+// // 鍫嗗灈鏈烘帶鍒惰繃婊�
+// if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+// return;
+// }
+//
+// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+// if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+// return;
+// }
+//
+// News.warnNoLog("" + mark + " - 3" + " - 3" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue()
+// , sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue()
+// , sta.getRow1().shortValue(), sta.getBay1().shortValue(), sta.getLev1().shortValue());
+//
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// CrnCommand crnCommand = new CrnCommand();
+// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+// crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+// crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+// crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓
+// crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪
+// crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰
+// crnCommand.setDestinationPosX(sta.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
+// crnCommand.setDestinationPosY(sta.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
+// crnCommand.setDestinationPosZ(sta.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
+// if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+// News.error("" + mark + " - 3" + " - 4" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+// } else {
+// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+// Date now = new Date();
+// wrkMast.setWrkSts(12L);
+// wrkMast.setCrnStrTime(now);
+// wrkMast.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// News.error("" + mark + " - 3" + " - 5" + " - 銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+// }
+// }
+// News.infoNoLog("" + mark + " - 3" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氬簱浣嶇Щ杞畬鎴�");
+//
+// }
+//
+// /**
+// * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
+// */
+// public synchronized void storeFinished(Integer mark) {
+//
+// for (CrnSlave crn : slaveProperties.getCrn()) {
+// // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+// CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+// if (crnProtocol == null) {
+// continue;
+// }
+// // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
+// if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
+// News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
+//
+// // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
+// if (wrkMast == null) {
+// News.error("" + mark + " - 1" + " - 鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+// continue;
+// }
+// // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
+// if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
+// wrkMast.setWrkSts(4L);
+// } else {
+// continue;
+// }
+// Date now = new Date();
+// wrkMast.setCrnEndTime(now);
+// wrkMast.setModiTime(now);
+// // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+// if (wrkMastMapper.updateById(wrkMast) > 0) {
+// // 鍫嗗灈鏈哄浣�
+// log.error(wrkMast.getWrkNo() + "浠诲姟淇敼鐘舵��4鎴愬姛锛屽浣嶅爢鍨涙満={}", crnThread.getCrnProtocol().getCrnNo());
+// News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
+// crnThread.setResetFlag(true);
+// }
+// }
+//
+//
+// }
+//// News.infoNoLog(""+mark+" - 0"+" - 瀵瑰伐浣滄。鐨勫畬鎴愭搷浣滄墽琛屽畬鎴�");
+// }
+//
+// /**
+// * 鍫嗗灈鏈哄紓甯镐俊鎭褰�
+// */
+// public synchronized void recCrnErr(Integer mark) {
+// Date now = new Date();
+// for (CrnSlave crn : slaveProperties.getCrn()) {
+// // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+// CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+// if (crnProtocol == null) {
+// continue;
+// }
+// if (true) {
+//// if (crnProtocol.getModeType() != CrnModeType.STOP) {
+// // 鏈変换鍔�
+// if (crnProtocol.getTaskNo() != 0) {
+//
+// BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
+// // 鏈夊紓甯�
+// if (latest == null) {
+// News.warnNoLog("" + mark + " - 1" + " - 寮�濮嬫墽琛岋細鍫嗗灈鏈哄紓甯镐俊鎭褰� 锛� 鏈変换鍔★紝鏈夊紓甯�");
+// if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
+// WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
+// if (wrkMast == null) {
+// continue;
+// }
+// BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
+// String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
+// BasErrLog basErrLog = new BasErrLog(
+// null, // 缂栧彿
+// wrkMast.getWrkNo(), // 宸ヤ綔鍙�
+// now, // 鍙戠敓鏃堕棿
+// null, // 缁撴潫鏃堕棿
+// wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
+// wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
+// crn.getId(), // 鍫嗗灈鏈�
+// null, // plc
+// wrkMast.getLocNo(), // 鐩爣搴撲綅
+// wrkMast.getStaNo(), // 鐩爣绔�
+// wrkMast.getSourceStaNo(), // 婧愮珯
+// wrkMast.getSourceLocNo(), // 婧愬簱浣�
+// wrkMast.getBarcode(), // 鏉$爜
+// (int) crnProtocol.getAlarm(), // 寮傚父鐮�
+// errName, // 寮傚父
+// 1, // 寮傚父鎯呭喌
+// now, // 娣诲姞鏃堕棿
+// null, // 娣诲姞浜哄憳
+// now, // 淇敼鏃堕棿
+// null, // 淇敼浜哄憳
+// "浠诲姟涓紓甯�" // 澶囨敞
+// );
+// if (!basErrLogService.insert(basErrLog)) {
+// News.error("" + mark + " - 2" + " - 鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
+// }
+// }
+// } else {
+// // 寮傚父淇
+// if (crnProtocol.getAlarm() == null || crnProtocol.getAlarm() == 0) {
+// latest.setEndTime(now);
+// latest.setUpdateTime(now);
+// latest.setStatus(2);
+// if (!basErrLogService.updateById(latest)) {
+// News.error("" + mark + " - 3" + " - 鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+// }
+// }
+// }
+// // 鏃犱换鍔�
+// } else {
+// BasErrLog latest = basErrLogService.findLatest(crn.getId());
+// // 鏈夊紓甯�
+// if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
+// News.warnNoLog("" + mark + " - 4" + " - 寮�濮嬫墽琛岋細鍫嗗灈鏈哄紓甯镐俊鎭褰� 锛� 鏃犱换鍔★紝鏈夊紓甯�");
+// // 璁板綍鏂板紓甯�
+// if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
+// BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
+// String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
+// BasErrLog basErrLog = new BasErrLog(
+// null, // 缂栧彿
+// null, // 宸ヤ綔鍙�
+// now, // 鍙戠敓鏃堕棿
+// null, // 缁撴潫鏃堕棿
+// null, // 宸ヤ綔鐘舵��
+// null, // 鍏ュ嚭搴撶被鍨�
+// crn.getId(), // 鍫嗗灈鏈�
+// null, // plc
+// null, // 鐩爣搴撲綅
+// null, // 鐩爣绔�
+// null, // 婧愮珯
+// null, // 婧愬簱浣�
+// null, // 鏉$爜
+// (int) crnProtocol.getAlarm(), // 寮傚父鐮�
+// errName, // 寮傚父
+// 1, // 寮傚父鎯呭喌
+// now, // 娣诲姞鏃堕棿
+// null, // 娣诲姞浜哄憳
+// now, // 淇敼鏃堕棿
+// null, // 淇敼浜哄憳
+// "鏃犱换鍔″紓甯�" // 澶囨敞
+// );
+// if (!basErrLogService.insert(basErrLog)) {
+// News.error("" + mark + " - 5" + " - 鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
+// }
+// }
+// // 鏃犲紓甯�
+// } else {
+// // 寮傚父淇
+// if (latest != null && latest.getStatus() == 1) {
+// latest.setEndTime(now);
+// latest.setUpdateTime(now);
+// latest.setStatus(2);
+// if (!basErrLogService.updateById(latest)) {
+// News.error("" + mark + " - 6" + " - 鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+// }
+// }
+// }
+// }
+// }
+//
+// }
+//// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄紓甯镐俊鎭褰曟墽琛屽畬鎴�");
+// }
+//
+//
+// // -------------------------------------------------------------------------------
+//
+// /**
+// * 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
+// */
+// public synchronized void storeEmptyPlt(Integer mark) {
+//
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// // 閬嶅巻绌烘澘鍏ュ簱鍙�
+// for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
+// // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+// StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
+// if (staProtocol == null) {
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+//
+// LedThread ledThread = null;
+// if (!Cools.isEmpty(emptyInSta.getLed())) {
+// ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, emptyInSta.getLed());
+// }
+//
+// if (!staProtocol.isLoading()) {
+// continue;
+// }
+//
+// // 绔欑偣鏉′欢鍒ゆ柇
+// if (staProtocol.isAutoing()
+// && staProtocol.isLoading()
+// && staProtocol.isInEnable()
+// && staProtocol.isEmptyMk()
+// && staProtocol.isPakMk()
+// && (staProtocol.getWorkNo() != 0 && staProtocol.getWorkNo() > 9700)
+// ) {
+// News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�");
+//
+// try {
+// LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+//
+// SearchLocParam param = new SearchLocParam();
+// param.setIoType(10);
+// param.setSourceStaNo(emptyInSta.getStaNo());
+// param.setLocType1(locTypeDto.getLocType1());
+// String response = new HttpHandler.Builder()
+// .setUri(wmsUrl)
+// .setPath("/rpc/pakin/loc/v1")
+// .setJson(JSON.toJSONString(param))
+// .build()
+// .doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+// if (jsonObject.getInteger("code").equals(200)) {
+// StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+//
+// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+// staProtocol.setWorkNo(dto.getWorkNo());
+// staProtocol.setStaNo(dto.getStaNo().shortValue());
+// //staProtocol.setStaNo(staProtocol.getSiteId().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// log.error("杈撻�佺嚎涓嬪彂6锛�" + dto.getWorkNo() + "," + staProtocol.getSiteId());
+// if (!result) {
+// News.errorNoLog("" + mark + " - 1" + " - 鏇存柊plc绔欑偣淇℃伅澶辫触");
+// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+// }
+//
+// if (ledThread != null) {
+// // 鍛戒护闆嗗悎
+// List<LedCommand> commands = new ArrayList<>();
+// // 缁勮鍛戒护
+// LedCommand ledCommand = new LedCommand();
+// ledCommand.setWorkNo(dto.getWorkNo());
+// ledCommand.setIoType(1);
+// ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+// ledCommand.setLocNo(dto.getLocNo());
+// ledCommand.setStaNo(dto.getStaNo());
+// commands.add(ledCommand);
+// MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(1, commands));
+//// ledThread.errorReset();
+// }
+// } else {
+//// staProtocol.setWorkNo(wrkNo++);
+//// staProtocol.setStaNo(emptyInSta.getBackSta().shortValue());
+//// devpThread.setPakMk(staProtocol.getSiteId(), false);
+//// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//// if (!result) {
+//// News.errorNoLog(""+mark+" - 2"+" - 鏇存柊plc绔欑偣淇℃伅澶辫触");
+//// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+//// }
+////
+// if (ledThread != null) {
+// String errorMsg = jsonObject.getString("msg");
+// if (!Cools.isEmpty(errorMsg)) {
+// MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(3, errorMsg));
+// }
+// }
+//// News.error(""+mark+" - 3"+" - 璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+// }
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+//
+// } else {
+// News.errorNoLog("" + mark + " - 4" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isAutoing() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
+// + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo()
+// + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk());
+// }
+// }
+// }
+//// News.infoNoLog(""+mark+" - 0"+" - 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐ф墽琛屽畬鎴�");
+// }
+//
+// /**
+// * 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
+// */
+// public synchronized void ledExecute(Integer mark) {
+// for (LedSlave led : slaveProperties.getLed()) {
+// // 鑾峰彇杈撻�佺嚎plc绾跨▼
+// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
+// // 鍛戒护闆嗗悎
+// List<LedCommand> commands = new ArrayList<>();
+// // 宸ヤ綔妗i泦鍚�
+// List<WrkMast> wrkMasts = new ArrayList<>();
+// for (Integer staNo : led.getStaArr()) {
+// // 鑾峰彇鍙夎溅绔欑偣
+// StaProtocol staProtocol = devpThread.getStation().get(staNo);
+// if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+// // 鑾峰彇宸ヤ綔妗f暟鎹�
+// WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+// if (null == wrkMast) {
+// continue;
+// }
+// wrkMasts.add(wrkMast);
+// // 缁勮鍛戒护
+// LedCommand ledCommand = new LedCommand();
+// ledCommand.setWorkNo(wrkMast.getWrkNo());
+// ledCommand.setIoType(wrkMast.getIoType());
+// // 鍑哄簱妯″紡
+// switch (wrkMast.getIoType()) {
+// case 1:
+// ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+// break;
+// case 10:
+// ledCommand.setTitle("绌烘澘鍏ュ簱");
+// break;
+// case 101:
+// ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
+// break;
+// case 103:
+// ledCommand.setTitle("鎷f枡鍑哄簱");
+// break;
+// case 104:
+// ledCommand.setTitle("骞舵澘鍑哄簱");
+// break;
+// case 107:
+// ledCommand.setTitle("鐩樼偣鍑哄簱");
+// break;
+// case 110:
+// ledCommand.setTitle("绌烘澘鍑哄簱");
+// ledCommand.setEmptyMk(true);
+// break;
+// default:
+// News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+// break;
+// }
+// ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
+// ledCommand.setStaNo(wrkMast.getStaNo());
+// ledCommand.setBarcode(wrkMast.getBarcode());
+// if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
+// List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
+//
+// wrkDetls.forEach(wrkDetl -> {
+// Double total = 0.0;
+// EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+// LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+// if (Cools.isEmpty(locDetl)) {
+// total = wrkDetl.getAnfme();
+// } else {
+// total = locDetl.getAnfme();
+// }
+// if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
+// ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total));
+// }
+// if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
+// ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total));
+// }
+// if (wrkMast.getIoType() == 107) {
+// ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total));
+// }
+// });
+// }
+// commands.add(ledCommand);
+// }
+// Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
+// // 鑾峰彇LED绾跨▼
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+// // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
+// if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
+// continue;
+// }
+// // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
+// if (!commands.isEmpty()) {
+// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
+// News.error("{}鍙稬ED鏄剧ず鍐呭鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+// continue;
+// }
+// }
+//
+// try {
+// // 淇敼涓绘。led鏍囪
+// for (WrkMast wrkMast : wrkMasts) {
+// wrkMast.setOveMk("Y");
+// wrkMast.setModiTime(new Date());
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+// }
+// }
+//
+// // 鏇存柊绾跨▼褰撳墠宸ヤ綔鍙烽泦鍚�
+// ledThread.setWorkNos(workNos);
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+//
+// }
+// }
+//
+// /**
+// * 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
+// */
+// public synchronized void ledReset() {
+// for (LedSlave led : slaveProperties.getLed()) {
+// // 鑾峰彇杈撻�佺嚎plc绾跨▼
+// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
+// // 鍛戒护闆嗗悎
+// boolean reset = true;
+// for (Integer staNo : led.getStaArr()) {
+// // 鑾峰彇鍙夎溅绔欑偣
+// StaProtocol staProtocol = devpThread.getStation().get(staNo);
+// if (staProtocol == null) {
+// continue;
+// }
+// if (staProtocol.getWorkNo() != 0 || staProtocol.isErr()) {
+// reset = false;
+// break;
+// }
+// }
+// // 鑾峰彇led绾跨▼
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+// // led鏄剧ず榛樿鍐呭
+// if (reset) {
+// if (ledThread == null) {
+// continue;
+// }
+// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
+// News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
// }
// }
// }
// }
-
- /**
- * 搴撲綅绉昏浆
- */
- public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol, Integer mark) {
- // 鑾峰彇宸ヤ綔妗d俊鎭�
- WrkMast wrkMast = wrkMastMapper.selectLocMove(slave.getId());
- if (null == wrkMast) {
- return;
- }
- News.warnNoLog("" + mark + " - 3" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽簱浣嶇Щ杞�");
- // 鑾峰彇婧愬簱浣嶄俊鎭�
- LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
- if (null == sourceSta) {
- News.error("" + mark + " - 3" + " - 1" + " - 宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈡簮搴撲綅澶辫触锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
- return;
- }
- // 婧愬簱浣� 搴撲綅鐘舵�佸垽鏂�
- if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("S")) {
- return;
- }
- // 鑾峰彇鐩爣搴撲綅淇℃伅
- LocMast sta = locMastService.selectById(wrkMast.getLocNo());
- if (null == sta) {
- News.error("" + mark + " - 3" + " - 2" + " - 宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo());
- return;
- }
- if (sta.getLocType1() != sourceSta.getLocType1()) {
- News.error("绉诲簱鐩爣搴撲綅绫诲瀷涓庢簮搴撲綅绫诲瀷涓嶇");
- return;
- }
- // 鑾峰彇鍫嗗灈鏈轰俊鎭� 骞� 鍒ゆ柇鏄惁鍙叆鍑�
- BasCrnp basCrnp = basCrnpService.selectById(slave.getId());
- if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) {
- return;
- }
-
- // 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
- return;
- }
-
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
- if (wrkMastMapper.selectWorking(slave.getId()) != null) {
- return;
- }
-
- News.warnNoLog("" + mark + " - 3" + " - 3" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue()
- , sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue()
- , sta.getRow1().shortValue(), sta.getBay1().shortValue(), sta.getLev1().shortValue());
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX(sta.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(sta.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(sta.getLev1().shortValue()); // 鐩爣搴撲綅灞�
- crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- News.error("" + mark + " - 3" + " - 4" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
- Date now = new Date();
- wrkMast.setWrkSts(12L);
- wrkMast.setCrnStrTime(now);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("" + mark + " - 3" + " - 5" + " - 銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- }
- News.infoNoLog("" + mark + " - 3" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氬簱浣嶇Щ杞畬鎴�");
-
- }
-
- /**
- * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
- */
- public synchronized void storeFinished(Integer mark) {
-
- for (CrnSlave crn : slaveProperties.getCrn()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
- }
- // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
- if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
-
- // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
- WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
- if (wrkMast == null) {
- News.error("" + mark + " - 1" + " - 鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
- continue;
- }
- // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
- if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
- wrkMast.setWrkSts(4L);
- } else {
- continue;
- }
- Date now = new Date();
- wrkMast.setCrnEndTime(now);
- wrkMast.setModiTime(now);
- // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
- if (wrkMastMapper.updateById(wrkMast) > 0) {
- // 鍫嗗灈鏈哄浣�
- log.error(wrkMast.getWrkNo() + "浠诲姟淇敼鐘舵��4鎴愬姛锛屽浣嶅爢鍨涙満={}", crnThread.getCrnProtocol().getCrnNo());
- News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
- crnThread.setResetFlag(true);
- }
- }
-
-
- }
-// News.infoNoLog(""+mark+" - 0"+" - 瀵瑰伐浣滄。鐨勫畬鎴愭搷浣滄墽琛屽畬鎴�");
- }
-
- /**
- * 鍫嗗灈鏈哄紓甯镐俊鎭褰�
- */
- public synchronized void recCrnErr(Integer mark) {
- Date now = new Date();
- for (CrnSlave crn : slaveProperties.getCrn()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
- }
- if (true) {
-// if (crnProtocol.getModeType() != CrnModeType.STOP) {
- // 鏈変换鍔�
- if (crnProtocol.getTaskNo() != 0) {
-
- BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
- // 鏈夊紓甯�
- if (latest == null) {
- News.warnNoLog("" + mark + " - 1" + " - 寮�濮嬫墽琛岋細鍫嗗灈鏈哄紓甯镐俊鎭褰� 锛� 鏈変换鍔★紝鏈夊紓甯�");
- if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
- WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
- if (wrkMast == null) {
- continue;
- }
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
- String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
- BasErrLog basErrLog = new BasErrLog(
- null, // 缂栧彿
- wrkMast.getWrkNo(), // 宸ヤ綔鍙�
- now, // 鍙戠敓鏃堕棿
- null, // 缁撴潫鏃堕棿
- wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
- wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
- crn.getId(), // 鍫嗗灈鏈�
- null, // plc
- wrkMast.getLocNo(), // 鐩爣搴撲綅
- wrkMast.getStaNo(), // 鐩爣绔�
- wrkMast.getSourceStaNo(), // 婧愮珯
- wrkMast.getSourceLocNo(), // 婧愬簱浣�
- wrkMast.getBarcode(), // 鏉$爜
- (int) crnProtocol.getAlarm(), // 寮傚父鐮�
- errName, // 寮傚父
- 1, // 寮傚父鎯呭喌
- now, // 娣诲姞鏃堕棿
- null, // 娣诲姞浜哄憳
- now, // 淇敼鏃堕棿
- null, // 淇敼浜哄憳
- "浠诲姟涓紓甯�" // 澶囨敞
- );
- if (!basErrLogService.insert(basErrLog)) {
- News.error("" + mark + " - 2" + " - 鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
- }
- }
- } else {
- // 寮傚父淇
- if (crnProtocol.getAlarm() == null || crnProtocol.getAlarm() == 0) {
- latest.setEndTime(now);
- latest.setUpdateTime(now);
- latest.setStatus(2);
- if (!basErrLogService.updateById(latest)) {
- News.error("" + mark + " - 3" + " - 鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
- }
- }
- }
- // 鏃犱换鍔�
- } else {
- BasErrLog latest = basErrLogService.findLatest(crn.getId());
- // 鏈夊紓甯�
- if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
- News.warnNoLog("" + mark + " - 4" + " - 寮�濮嬫墽琛岋細鍫嗗灈鏈哄紓甯镐俊鎭褰� 锛� 鏃犱换鍔★紝鏈夊紓甯�");
- // 璁板綍鏂板紓甯�
- if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
- String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
- BasErrLog basErrLog = new BasErrLog(
- null, // 缂栧彿
- null, // 宸ヤ綔鍙�
- now, // 鍙戠敓鏃堕棿
- null, // 缁撴潫鏃堕棿
- null, // 宸ヤ綔鐘舵��
- null, // 鍏ュ嚭搴撶被鍨�
- crn.getId(), // 鍫嗗灈鏈�
- null, // plc
- null, // 鐩爣搴撲綅
- null, // 鐩爣绔�
- null, // 婧愮珯
- null, // 婧愬簱浣�
- null, // 鏉$爜
- (int) crnProtocol.getAlarm(), // 寮傚父鐮�
- errName, // 寮傚父
- 1, // 寮傚父鎯呭喌
- now, // 娣诲姞鏃堕棿
- null, // 娣诲姞浜哄憳
- now, // 淇敼鏃堕棿
- null, // 淇敼浜哄憳
- "鏃犱换鍔″紓甯�" // 澶囨敞
- );
- if (!basErrLogService.insert(basErrLog)) {
- News.error("" + mark + " - 5" + " - 鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
- }
- }
- // 鏃犲紓甯�
- } else {
- // 寮傚父淇
- if (latest != null && latest.getStatus() == 1) {
- latest.setEndTime(now);
- latest.setUpdateTime(now);
- latest.setStatus(2);
- if (!basErrLogService.updateById(latest)) {
- News.error("" + mark + " - 6" + " - 鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
- }
- }
- }
- }
- }
-
- }
-// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄紓甯镐俊鎭褰曟墽琛屽畬鎴�");
- }
-
-
- // -------------------------------------------------------------------------------
-
- /**
- * 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
- */
- public synchronized void storeEmptyPlt(Integer mark) {
-
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻绌烘澘鍏ュ簱鍙�
- for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
- // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
- LedThread ledThread = null;
- if (!Cools.isEmpty(emptyInSta.getLed())) {
- ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, emptyInSta.getLed());
- }
-
- if (!staProtocol.isLoading()) {
- continue;
- }
-
- // 绔欑偣鏉′欢鍒ゆ柇
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && staProtocol.isEmptyMk()
- && staProtocol.isPakMk()
- && (staProtocol.getWorkNo() != 0 && staProtocol.getWorkNo() > 9700)
- ) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�");
-
- try {
- LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
- SearchLocParam param = new SearchLocParam();
- param.setIoType(10);
- param.setSourceStaNo(emptyInSta.getStaNo());
- param.setLocType1(locTypeDto.getLocType1());
- String response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/pakin/loc/v1")
- .setJson(JSON.toJSONString(param))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
- // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
- staProtocol.setWorkNo(dto.getWorkNo());
- staProtocol.setStaNo(dto.getStaNo().shortValue());
- //staProtocol.setStaNo(staProtocol.getSiteId().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂6锛�" + dto.getWorkNo() + "," + staProtocol.getSiteId());
- if (!result) {
- News.errorNoLog("" + mark + " - 1" + " - 鏇存柊plc绔欑偣淇℃伅澶辫触");
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
- }
-
- if (ledThread != null) {
- // 鍛戒护闆嗗悎
- List<LedCommand> commands = new ArrayList<>();
- // 缁勮鍛戒护
- LedCommand ledCommand = new LedCommand();
- ledCommand.setWorkNo(dto.getWorkNo());
- ledCommand.setIoType(1);
- ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
- ledCommand.setLocNo(dto.getLocNo());
- ledCommand.setStaNo(dto.getStaNo());
- commands.add(ledCommand);
- MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(1, commands));
-// ledThread.errorReset();
- }
- } else {
-// staProtocol.setWorkNo(wrkNo++);
-// staProtocol.setStaNo(emptyInSta.getBackSta().shortValue());
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-// if (!result) {
-// News.errorNoLog(""+mark+" - 2"+" - 鏇存柊plc绔欑偣淇℃伅澶辫触");
-// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-// }
//
- if (ledThread != null) {
- String errorMsg = jsonObject.getString("msg");
- if (!Cools.isEmpty(errorMsg)) {
- MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(3, errorMsg));
- }
- }
-// News.error(""+mark+" - 3"+" - 璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
- }
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
-
- } else {
- News.errorNoLog("" + mark + " - 4" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isAutoing() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
- + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo()
- + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk());
- }
- }
- }
-// News.infoNoLog(""+mark+" - 0"+" - 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐ф墽琛屽畬鎴�");
- }
-
- /**
- * 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
- */
- public synchronized void ledExecute(Integer mark) {
- for (LedSlave led : slaveProperties.getLed()) {
- // 鑾峰彇杈撻�佺嚎plc绾跨▼
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
- // 鍛戒护闆嗗悎
- List<LedCommand> commands = new ArrayList<>();
- // 宸ヤ綔妗i泦鍚�
- List<WrkMast> wrkMasts = new ArrayList<>();
- for (Integer staNo : led.getStaArr()) {
- // 鑾峰彇鍙夎溅绔欑偣
- StaProtocol staProtocol = devpThread.getStation().get(staNo);
- if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- // 鑾峰彇宸ヤ綔妗f暟鎹�
- WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
- if (null == wrkMast) {
- continue;
- }
- wrkMasts.add(wrkMast);
- // 缁勮鍛戒护
- LedCommand ledCommand = new LedCommand();
- ledCommand.setWorkNo(wrkMast.getWrkNo());
- ledCommand.setIoType(wrkMast.getIoType());
- // 鍑哄簱妯″紡
- switch (wrkMast.getIoType()) {
- case 1:
- ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
- break;
- case 10:
- ledCommand.setTitle("绌烘澘鍏ュ簱");
- break;
- case 101:
- ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
- break;
- case 103:
- ledCommand.setTitle("鎷f枡鍑哄簱");
- break;
- case 104:
- ledCommand.setTitle("骞舵澘鍑哄簱");
- break;
- case 107:
- ledCommand.setTitle("鐩樼偣鍑哄簱");
- break;
- case 110:
- ledCommand.setTitle("绌烘澘鍑哄簱");
- ledCommand.setEmptyMk(true);
- break;
- default:
- News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
- break;
- }
- ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
- ledCommand.setStaNo(wrkMast.getStaNo());
- ledCommand.setBarcode(wrkMast.getBarcode());
- if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
- List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-
- wrkDetls.forEach(wrkDetl -> {
- Double total = 0.0;
- EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
- LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
- if (Cools.isEmpty(locDetl)) {
- total = wrkDetl.getAnfme();
- } else {
- total = locDetl.getAnfme();
- }
- if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total));
- }
- if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total));
- }
- if (wrkMast.getIoType() == 107) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total));
- }
- });
- }
- commands.add(ledCommand);
- }
- Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
- // 鑾峰彇LED绾跨▼
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
- // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
- if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
- continue;
- }
- // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
- if (!commands.isEmpty()) {
- if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
- News.error("{}鍙稬ED鏄剧ず鍐呭鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
- continue;
- }
- }
-
- try {
- // 淇敼涓绘。led鏍囪
- for (WrkMast wrkMast : wrkMasts) {
- wrkMast.setOveMk("Y");
- wrkMast.setModiTime(new Date());
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
- }
- }
-
- // 鏇存柊绾跨▼褰撳墠宸ヤ綔鍙烽泦鍚�
- ledThread.setWorkNos(workNos);
-
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
-
- }
- }
-
- /**
- * 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
- */
- public synchronized void ledReset() {
- for (LedSlave led : slaveProperties.getLed()) {
- // 鑾峰彇杈撻�佺嚎plc绾跨▼
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
- // 鍛戒护闆嗗悎
- boolean reset = true;
- for (Integer staNo : led.getStaArr()) {
- // 鑾峰彇鍙夎溅绔欑偣
- StaProtocol staProtocol = devpThread.getStation().get(staNo);
- if (staProtocol == null) {
- continue;
- }
- if (staProtocol.getWorkNo() != 0 || staProtocol.isErr()) {
- reset = false;
- break;
- }
- }
- // 鑾峰彇led绾跨▼
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
- // led鏄剧ず榛樿鍐呭
- if (reset) {
- if (ledThread == null) {
- continue;
- }
- if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
- News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
- }
- }
- }
- }
-
- /**
- * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堝叆搴撶増)
- * tip锛氬悓姝�
- */
- @Transactional
- public synchronized void moveLocForDeepLocPakin(CrnSlave crn, LocMast shallowLoc, WrkMast pakinWrkMast) {
- LocMast loc = locMastService.selectById(pakinWrkMast.getLocNo());
-
- // 鑾峰彇宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(0);
- Date now = new Date();
- // 淇濆瓨宸ヤ綔妗�
- WrkMast wrkMast = new WrkMast();
- wrkMast.setWrkNo(workNo);
- wrkMast.setIoTime(now);
- wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
- wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
- wrkMast.setIoPri(15D);
- wrkMast.setCrnNo(crn.getId());
- wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
- wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
- wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
- wrkMast.setPicking("N"); // 鎷f枡
- wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
- wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
- wrkMast.setLinkMis("N");
- wrkMast.setCtnNo("Y"); // 鍏ュ簱闃诲搴撲綅绉昏浆鏍囪
- wrkMast.setAppeTime(now);
- wrkMast.setModiTime(now);
- int res = wrkMastMapper.insert(wrkMast);
- if (res == 0) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
- // 宸ヤ綔妗f槑缁嗕繚瀛�
- if (shallowLoc.getLocSts().equals("F")) {
- List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
- for (LocDetl locDetl : locDetls) {
- WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.setWrkNo(workNo);
- wrkDetl.setIoTime(now);
- wrkDetl.setAnfme(locDetl.getAnfme());
- VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
- wrkDetl.setAppeTime(now);
- wrkDetl.setModiTime(now);
- if (!wrkDetlService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
- }
- }
- }
- // 淇敼婧愬簱浣嶇姸鎬�
- if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
- shallowLoc.setLocSts("S"); // S.鍏ュ簱棰勭害锛屽叆搴撻樆濉炲簱浣嶇Щ杞�
- shallowLoc.setModiTime(now);
- if (!locMastService.updateById(shallowLoc)) {
- throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
- }
- } else {
- throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
- }
-// // 淇敼鐩爣搴撲綅鐘舵��
-// if (loc.getLocSts().equals("O")) {
-// loc.setLocSts("S"); // S.鍏ュ簱棰勭害
-// loc.setModiTime(new Date());
-// if (!locMastService.updateById(loc)) {
-// throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+// /**
+// * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堝叆搴撶増)
+// * tip锛氬悓姝�
+// */
+// @Transactional
+// public synchronized void moveLocForDeepLocPakin(CrnSlave crn, LocMast shallowLoc, WrkMast pakinWrkMast) {
+// LocMast loc = locMastService.selectById(pakinWrkMast.getLocNo());
+//
+// // 鑾峰彇宸ヤ綔鍙�
+// int workNo = commonService.getWorkNo(0);
+// Date now = new Date();
+// // 淇濆瓨宸ヤ綔妗�
+// WrkMast wrkMast = new WrkMast();
+// wrkMast.setWrkNo(workNo);
+// wrkMast.setIoTime(now);
+// wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+// wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+// wrkMast.setIoPri(15D);
+// wrkMast.setCrnNo(crn.getId());
+// wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
+// wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
+// wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
+// wrkMast.setPicking("N"); // 鎷f枡
+// wrkMast.setExitMk("N"); // 閫�鍑�
+// wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
+// wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
+// wrkMast.setLinkMis("N");
+// wrkMast.setCtnNo("Y"); // 鍏ュ簱闃诲搴撲綅绉昏浆鏍囪
+// wrkMast.setAppeTime(now);
+// wrkMast.setModiTime(now);
+// int res = wrkMastMapper.insert(wrkMast);
+// if (res == 0) {
+// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+// }
+// // 宸ヤ綔妗f槑缁嗕繚瀛�
+// if (shallowLoc.getLocSts().equals("F")) {
+// List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
+// for (LocDetl locDetl : locDetls) {
+// WrkDetl wrkDetl = new WrkDetl();
+// wrkDetl.setWrkNo(workNo);
+// wrkDetl.setIoTime(now);
+// wrkDetl.setAnfme(locDetl.getAnfme());
+// VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
+// wrkDetl.setAppeTime(now);
+// wrkDetl.setModiTime(now);
+// if (!wrkDetlService.insert(wrkDetl)) {
+// throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+// }
+// }
+// }
+// // 淇敼婧愬簱浣嶇姸鎬�
+// if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
+// shallowLoc.setLocSts("S"); // S.鍏ュ簱棰勭害锛屽叆搴撻樆濉炲簱浣嶇Щ杞�
+// shallowLoc.setModiTime(now);
+// if (!locMastService.updateById(shallowLoc)) {
+// throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
// }
// } else {
-// throw new CoolException("绉昏浆澶辫触");
+// throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
// }
- wrkMast.setLocNo(shallowLoc.getLocNo());
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- throw new CoolException("淇敼闃诲鍏ュ簱浠诲姟澶辫触");
- }
- }
-
- /**
- * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
- * tip锛氬悓姝�
- */
- private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc, Integer mark) {
-
- try {
- News.warnNoLog("" + mark + "moveLocForDeepLoc" + " - 0" + " - 寮�濮嬫墽琛�:鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)");
- List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
- LocMast loc = null;
- for (Integer row : rows) {
- if (Utils.isDeepLoc(slaveProperties, row)) {
- loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
-
- if (loc != null) {
- if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
- LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
- if (!shallowLoc1.getLocSts().equals("O")) {
- loc = null;
- }
- }
- }
- if (null != loc) {
- break;
- }
- }
- }
- if (null == loc) {
- for (Integer row : rows) {
- if (Utils.isShallowLoc(slaveProperties, row)) {
- loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
-
- if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
- String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
- LocMast deepLoc1 = locMastService.selectById(deepLoc);
- if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) {
- loc = null;
- }
- }
-
- if (null != loc) {
- break;
- }
- }
- }
- }
-
- if (null == loc) {
- News.error("" + mark + "moveLocForDeepLoc" + " - 1" + " - 鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
- throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
- }
-
- // 鑾峰彇宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(0);
- // 淇濆瓨宸ヤ綔妗�
- WrkMast wrkMast = new WrkMast();
- wrkMast.setWrkNo(workNo);
- wrkMast.setIoTime(new Date());
- wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
- wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
- wrkMast.setIoPri(13D);
- wrkMast.setCrnNo(crn.getId());
- wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
- wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
- wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
- wrkMast.setPicking("N"); // 鎷f枡
- wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
- wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
- wrkMast.setLinkMis("N");
- wrkMast.setAppeTime(new Date());
- wrkMast.setModiTime(new Date());
- int res = wrkMastMapper.insert(wrkMast);
- if (res == 0) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 2" + " - 淇濆瓨宸ヤ綔妗eけ璐�");
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
- // 宸ヤ綔妗f槑缁嗕繚瀛�
- if (shallowLoc.getLocSts().equals("F")) {
- List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
- for (LocDetl locDetl : locDetls) {
- WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.setWrkNo(workNo);
- wrkDetl.setIoTime(new Date());
- wrkDetl.setAnfme(locDetl.getAnfme());
- VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
- wrkDetl.setAppeTime(new Date());
- wrkDetl.setModiTime(new Date());
- if (!wrkDetlService.insert(wrkDetl)) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 3" + " - 淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
- throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
- }
- }
- }
- // 淇敼婧愬簱浣嶇姸鎬�
- if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
- shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
- shallowLoc.setModiTime(new Date());
- if (!locMastService.updateById(shallowLoc)) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 4" + " - 鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
- throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
- }
- } else {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 5" + " - 婧愬簱浣嶅嚭搴撳け璐�");
- throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
- }
- // 淇敼鐩爣搴撲綅鐘舵��
- if (loc.getLocSts().equals("O")) {
- loc.setLocSts("S"); // S.鍏ュ簱棰勭害
- loc.setModiTime(new Date());
- if (!locMastService.updateById(loc)) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 6" + " - 鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
- throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
- }
- } else {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 7" + " - 绉昏浆澶辫触");
- throw new CoolException("绉昏浆澶辫触");
- }
- } catch (Exception e) {
- News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- }
-
- /**
- * 鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆
- */
- public synchronized void crnDemoOfLocMove1() {
- try {
- for (CrnSlave crn : slaveProperties.getCrn()) {
- if (!crn.getDemo()) {
- continue;
- } // 蹇呴』涓烘紨绀虹姸鎬�
-
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
- }
-
- // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- // 鑾峰彇绉诲簱宸ヤ綔妗d俊鎭�
- WrkMast wrkMast = wrkMastMapper.selectLocMove(crn.getId());
- if (null != wrkMast) {
- continue;
- }
-
- LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getId());
- LocMast loc = locMastService.queryDemoLoc(crn.getId());
- if (null == sourceLoc || null == loc) {
- continue;
- }
-
- String sourceLocNo = sourceLoc.getLocNo();
- String locNo = loc.getLocNo();
-
- // 鑾峰彇宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(0);
- // 淇濆瓨宸ヤ綔妗�
- wrkMast = new WrkMast();
- wrkMast.setWrkNo(workNo);
- wrkMast.setIoTime(new Date());
- wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
- wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
- wrkMast.setIoPri(13D);
- wrkMast.setCrnNo(crn.getId());
- wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
- wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
- wrkMast.setFullPlt("N"); // 婊℃澘锛歒
- wrkMast.setPicking("N"); // 鎷f枡
- wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
- wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
- wrkMast.setLinkMis("N");
- wrkMast.setAppeTime(new Date());
- wrkMast.setModiTime(new Date());
- int res = wrkMastMapper.insert(wrkMast);
- if (res == 0) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
- // 宸ヤ綔妗f槑缁嗕繚瀛�
-// List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
+//// // 淇敼鐩爣搴撲綅鐘舵��
+//// if (loc.getLocSts().equals("O")) {
+//// loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+//// loc.setModiTime(new Date());
+//// if (!locMastService.updateById(loc)) {
+//// throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+//// }
+//// } else {
+//// throw new CoolException("绉昏浆澶辫触");
+//// }
+// wrkMast.setLocNo(shallowLoc.getLocNo());
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// throw new CoolException("淇敼闃诲鍏ュ簱浠诲姟澶辫触");
+// }
+// }
+//
+// /**
+// * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
+// * tip锛氬悓姝�
+// */
+// private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc, Integer mark) {
+//
+// try {
+// News.warnNoLog("" + mark + "moveLocForDeepLoc" + " - 0" + " - 寮�濮嬫墽琛�:鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)");
+// List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
+// LocMast loc = null;
+// for (Integer row : rows) {
+// if (Utils.isDeepLoc(slaveProperties, row)) {
+// loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+//
+// if (loc != null) {
+// if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
+// String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
+// LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
+// if (!shallowLoc1.getLocSts().equals("O")) {
+// loc = null;
+// }
+// }
+// }
+// if (null != loc) {
+// break;
+// }
+// }
+// }
+// if (null == loc) {
+// for (Integer row : rows) {
+// if (Utils.isShallowLoc(slaveProperties, row)) {
+// loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+//
+// if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
+// String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
+// LocMast deepLoc1 = locMastService.selectById(deepLoc);
+// if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) {
+// loc = null;
+// }
+// }
+//
+// if (null != loc) {
+// break;
+// }
+// }
+// }
+// }
+//
+// if (null == loc) {
+// News.error("" + mark + "moveLocForDeepLoc" + " - 1" + " - 鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
+// throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
+// }
+//
+// // 鑾峰彇宸ヤ綔鍙�
+// int workNo = commonService.getWorkNo(0);
+// // 淇濆瓨宸ヤ綔妗�
+// WrkMast wrkMast = new WrkMast();
+// wrkMast.setWrkNo(workNo);
+// wrkMast.setIoTime(new Date());
+// wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+// wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+// wrkMast.setIoPri(13D);
+// wrkMast.setCrnNo(crn.getId());
+// wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
+// wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
+// wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
+// wrkMast.setPicking("N"); // 鎷f枡
+// wrkMast.setExitMk("N"); // 閫�鍑�
+// wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
+// wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
+// wrkMast.setLinkMis("N");
+// wrkMast.setAppeTime(new Date());
+// wrkMast.setModiTime(new Date());
+// int res = wrkMastMapper.insert(wrkMast);
+// if (res == 0) {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 2" + " - 淇濆瓨宸ヤ綔妗eけ璐�");
+// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+// }
+// // 宸ヤ綔妗f槑缁嗕繚瀛�
+// if (shallowLoc.getLocSts().equals("F")) {
+// List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
// for (LocDetl locDetl : locDetls) {
// WrkDetl wrkDetl = new WrkDetl();
// wrkDetl.setWrkNo(workNo);
@@ -2161,665 +2057,628 @@
// wrkDetl.setAppeTime(new Date());
// wrkDetl.setModiTime(new Date());
// if (!wrkDetlService.insert(wrkDetl)) {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 3" + " - 淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
// throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
// }
// }
- // 淇敼婧愬簱浣嶇姸鎬�
- if (sourceLoc.getLocSts().equals("D")) {
- sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
- sourceLoc.setModiTime(new Date());
- if (!locMastService.updateById(sourceLoc)) {
- throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
- }
- } else {
- throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
- }
- // 淇敼鐩爣搴撲綅鐘舵��
- if (loc.getLocSts().equals("O")) {
- loc.setLocSts("S"); // S.鍏ュ簱棰勭害
- loc.setModiTime(new Date());
- if (!locMastService.updateById(loc)) {
- throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
- }
- } else {
- throw new CoolException("绉昏浆澶辫触");
- }
-
- }
- }
- } catch (Exception e) {
- News.error("鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆澶辫触", e);
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- }
-
- /**
- * 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
- */
- public synchronized void crnIoWrkMast() {
- for (CrnSlave crn : slaveProperties.getCrn()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
- }
- Date now = new Date();
- // 鍫嗗灈鏈烘鍦ㄨ繍琛�
- if (crnProtocol.getStatusType() != CrnStatusType.IDLE && crnProtocol.getTaskNo() != 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- // 鑾峰彇宸ヤ綔妗�
- WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
- if (wrkMast == null) {
- continue;
- }
- // 鍏ュ簱
- if (wrkMast.getWrkSts() == 1 || wrkMast.getWrkSts() == 2) {
- News.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
- // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
- wrkMast.setWrkSts(3L);
- wrkMast.setCrnStrTime(now);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- News.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo());
- }
- // 鍑哄簱銆佺Щ搴�
- if (wrkMast.getWrkSts() == 11) {
- News.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
- // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
- wrkMast.setWrkSts(12L);
- wrkMast.setCrnStrTime(now);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- News.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo());
- }
-
-
- }
-
- }
- }
-
- /**
- * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
- */
- public synchronized void ioConvert() {
- try {
- // 鏍规嵁杈撻�佺嚎plc閬嶅巻
- for (DevpSlave devp : slaveProperties.getDevp()) {
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-
- for (DevpSlave.Sta inSta : devp.getInSta()) {
- if (inSta.getStaNo() == 2) {
- continue;
- }
- WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo());
- switch (inSta.getStaNo()) {
- case 203://1F
- if (pakout != null) {
- if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
- // 鍑哄簱鍒囨崲涓�
- devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
- if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
- && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
- && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
- // 鍑哄簱妯″紡
- devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE;
- }
- }
- } else {
- // 鍏ュ簱妯″紡
- devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
- }
- break;
- case 401://1F
- if (pakout != null) {
- if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
- // 鍑哄簱鍒囨崲涓�
- devpThread.ioModeOf4F = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
- if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
- && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
- && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
- // 鍑哄簱妯″紡
- devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE;
- }
- }
- } else {
- // 鍏ュ簱妯″紡
- devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
- }
- break;
- }
- }
-
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- }
-
-
- }
-
- public synchronized void outOfDevp(Integer mark) {
-
- List<WrkMast> wrkMasts = wrkMastMapper.selectPick();
- if (wrkMasts.size() != 0) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛宱utOfDevp");
- }
- for (WrkMast wrkMast : wrkMasts) {
- if (basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo())) == 0) {
- wrkMast.setCtnNo("Y");
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("" + mark + " - 1" + " - 淇敼{}宸ヤ綔妗eけ璐ワ紝ctn_no", wrkMast.getWrkNo());
- }
- }
- }
-// News.infoNoLog(""+mark+" - 0"+" - outOfDevp鎵ц瀹屾垚");
- }
-
-
- public synchronized void autoEmptyOut() {
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- List<Integer> list = new ArrayList<>();
- list.add(101);
- list.add(112);
- Map<Integer, Integer> map = new HashMap<>();
- map.put(101, 102);
- map.put(112, 111);
- for (Integer site : list) {
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("sta_no", map.get(site)));
- if (!Cools.isEmpty(wrkMast)) {
- continue;
- }
- //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
- StaProtocol staProtocol = devpThread.getStation().get(site);
- if (staProtocol == null) {
- return;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() //鑷姩
- && !staProtocol.isLoading() //鏃犵墿
- && staProtocol.isOutEnable() //鍙嚭淇″彿
- && staProtocol.getWorkNo() == 0
- ) {
- WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(site);
- if (null != pakoutEmpty) {
- return;
- }
- Short loctype1 = 1;
- if (site == 101) {
- loctype1 = 2;
- }
- LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
- locTypeDto.setSiteId(site);
- try {
- String response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/auto/emptyOut/v1")
- .setJson(JSON.toJSONString(locTypeDto))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- String data = jsonObject.get("data").toString();
- News.info((String) jsonObject.get("msg") + "," + data);
- } else {
- News.warnNoLog("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1", "", response);
- }
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- }
- }
-
- }
-
- public synchronized void autoEmptyIn() {
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- List<Integer> list = new ArrayList<>();
- list.add(153);
- list.add(157);
- for (Integer site : list) {
- StaProtocol staProtocol = devpThread.getStation().get(site);
- if (staProtocol == null) {
- return;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() //鑷姩
- && staProtocol.isLoading() //鏈夌墿
- && staProtocol.isInEnable() //鍙叆淇″彿
- && staProtocol.isPakMk()
- && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛�
- ) {
-
- try {
- Short loctype1 = 1;
- if (site == 153) {
- loctype1 = 2;
- }
- LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
- locTypeDto.setSiteId(site);
-
- String response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/auto/emptyIn/v1")
- .setJson(JSON.toJSONString(locTypeDto))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- News.info((String) jsonObject.get("msg"));
- staProtocol.setWorkNo(jsonObject.get("data").hashCode());
- staProtocol.setStaNo(site.shortValue());
- devpThread.setPakMk(site, false);
- MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
- } else {
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response);
- }
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- }
-
- }
-
- }
-
- /*
- * 灏忚溅鍦板浘鏇存柊 鏇存柊閿�
- * */
- public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent, Integer staStart, Integer staEnd, String sign) {
- log.info("灏忚溅鍦板浘鏇存柊锛乕鏍囪锛歿}];[BasRgvMap锛歿}];[staStart锛歿}];[staEnd锛歿}];", sign, JSON.toJSONString(basRgvMapCurrent), staStart, staEnd);
-
-// List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute());
- //鏇存柊褰撳墠灏忚溅閿�
- try {
- Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐�
- log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栨渶杩滅珯鐐�;[farCurrentStaNo锛歿}]", farCurrentStaNo);
- Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //鑾峰彇鍚堝苟骞叉秹椤�
- log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栧悎骞跺共娑夐」;[fallMerge锛歿}]", fallMerge);
- basRgvMapCurrent.setLockEndRoute(fallMerge);
- Integer i = basRgvMapMapper.updateById(basRgvMapCurrent);
-// if (i>0){
-// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫閿�,{}",sign,new Date(),basRgvMapCurrent.getRgvNo(),JSON.toJSONString(basRgvMapCurrent));
// }
-
- //鏇存柊鍙︿竴鍙板皬杞﹀湴鍥�
- Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther(basRgvMapCurrent.getRgvNo());
- log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彿;[rgvNoOther锛歿}]", rgvNoOther);
-
- BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
- log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞�;[basRgvMapOther锛歿}]", JSON.toJSONString(basRgvMapOther));
-
- List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
- Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
- log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�;[lockEndRoute锛歿}]", lockEndRoute);
- basRgvMapOther.setEndRoute(lockEndRoute);
- Integer i1 = basRgvMapMapper.updateById(basRgvMapOther);
-// if (i1>0){
-// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫浣嶇疆,{}",sign,new Date(),basRgvMapOther.getRgvNo(),JSON.toJSONString(basRgvMapOther));
+// // 淇敼婧愬簱浣嶇姸鎬�
+// if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
+// shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+// shallowLoc.setModiTime(new Date());
+// if (!locMastService.updateById(shallowLoc)) {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 4" + " - 鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+// throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+// }
+// } else {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 5" + " - 婧愬簱浣嶅嚭搴撳け璐�");
+// throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
// }
- return true;
- } catch (Exception e) {
- log.error("灏忚溅鍦板浘鏇存柊鍑洪敊锛佸紓甯稿師鍥狅細" + e);
- return false;
- }
- }
-
- /*
- * 鍒锋柊鍦板浘鏁版嵁
- * */
- public synchronized void refreshRgvMap() {
- try {
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
- for (BasRgvMap rgvSlave : basRgvMaps) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- } else {
- rgvProtocol = rgvProtocol.clone();
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�2", rgvSlave.getRgvNo());
- continue;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE &&
- rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded1() == 0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
- && (rgvProtocol.getTaskNo1() == 0)
- && rgvThread.isPakMk()
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-
- Integer rgvNoOther = basRgvMap.getRgvNoOther(rgvProtocol.getRgvNo());
- RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNoOther);
- RgvProtocol rgvProtocolOther = rgvThreadOther.getRgvProtocol();
- if (rgvProtocolOther == null) {
- continue;
- } else {
- rgvProtocolOther = rgvProtocolOther.clone();
- }
- if (rgvProtocolOther.getStatusType() == RgvStatusType.IDLE
- && rgvProtocolOther.getModeType() == RgvModeType.AUTO
- && rgvProtocolOther.getLoaded1() == 0
- && (rgvProtocolOther.getTaskNo1() == 0)
- && rgvThreadOther.isPakMk()
- ) {
- //瀵瑰伐浣滄。杩涜鍒ゆ柇
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
- if (rgvProtocol.getTaskNo1() > 0 && rgvProtocol.getTaskNo1() <= 9000) {
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
- rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(), "2366");
- } else if (rgvProtocol.getTaskNo1() == 0) {
- rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), basRgvMap.getStartRoute(), "2366");
- }
-
- }
-
-
- }
- }
- } catch (Exception e) {
- log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
- log.error("4109琛�" + e);
- }
- }
-
-
- /**
- * 瀹屾垚灏忚溅浠诲姟
- */
- public synchronized void rgvCompleteWrkMastSta() {
- try {
- for (DevpSlave devp : slaveProperties.getDevp()) {
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
- for (BasRgvMap rgvSlave : basRgvMaps) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- } else {
- rgvProtocol = rgvProtocol.clone();
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�3", rgvSlave.getRgvNo());
- continue;
- }
-
- // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
- if ((rgvProtocol.getStatusType1() == RgvStatusType.WAITING || rgvProtocol.getStatusType1() == RgvStatusType.FETCHWAITING)
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && (rgvProtocol.getStatusType() == RgvStatusType.WORKING1)
- ) {
- log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}", rgvProtocol.getRgvNo(), rgvProtocol.getStatusType(), rgvProtocol);
- if (rgvProtocol.getTaskNo1() != 0) {
- if (rgvProtocol.getTaskNo1() == 32222) {
- boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
- if (!rgvComplete) {
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
- }
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
- rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), basRgvMap.getStartRoute(), "2415");
- rgvThread.setPakMk(true);
- break;
- }
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
- if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts() != 1) {
- log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�" + wrkMastSta);
- continue;
- }
-
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (!staProtocol.isAutoing() || !staProtocol.isLoading()) {
- continue;
- }
- WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
- if (!Cools.isEmpty(wrkMast)) {
- if (!staProtocol.isPakMk()) {
- continue;
- }
- // 涓嬪彂绔欑偣淇℃伅
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
- if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
- continue;
- }
- } else {
- log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护,浣嗘湭鏌ヨ鍒板伐浣滄。");
- // 涓嬪彂绔欑偣淇℃伅
- Map<Integer, Integer> map = new HashMap<>();
- map.put(101, 102);
- map.put(112, 111);
- map.put(100, 100);
- staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue());
- staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
-// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
- if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
- continue;
- }
- }
- boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
-// boolean rgvComplete = true;
- if (!rgvComplete) {
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
- break;
- }
- WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
- wrkMast1.setPdcType("Y");
-
- wrkMastService.updateById(wrkMast1);
-
- wrkMastSta.setWrkSts(3);
- wrkMastStaMapper.updateById(wrkMastSta);
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
- rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), basRgvMap.getStartRoute(), "2471");
- rgvThread.setPakMk(true);
- } else {
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒", rgvProtocol.getRgvNo());
- }
- }
- }
- }
- } catch (Exception e) {
- log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�" + e);
- }
- }
-
- /**
- * 鎵ц灏忚溅鎼繍浠诲姟
- */
- public synchronized void rgvRunWrkMastFullSta() {
- boolean wrkEnable = false;
- try {
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
- for (BasRgvMap rgvSlave : basRgvMaps) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- } else {
- rgvProtocol = rgvProtocol.clone();
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo());
- continue;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded1() == 0
- && rgvProtocol.getTaskNo1() == 0
- && rgvThread.isPakMk()
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- if (basRgvMap == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- continue;
- }
- List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
- for (WrkMastSta wrkMastSta : wrkMastStaList) {
- if (wrkMastSta.getType() != 0 || wrkMastSta.getWrkType() != 3 || wrkMastSta.getWrkSts() != 0) {//1:婊$増 3锛氬彇鏀�
- continue;
- }
- //鍒ゆ柇宸ヤ綔缁撴潫浣嶇疆鐘舵��
- BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd()));
- if (!Cools.isEmpty(devNo)) {
- if (devNo.getAutoing().equals("Y") && !devNo.getWrkNo().equals(0) && !devNo.getLoading().equals("N")) {
- continue;
- }
- }
- boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
- wrkEnable = true;
- if (sign) {
- rgvThread.setPakMk(false);
- boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(), "2526");
- if (signMap) {
- Thread.sleep(300);
- wrkMastSta.setWrkSts(1);
- try {
- wrkMastStaMapper.updateById(wrkMastSta);
- return;
- } catch (Exception e) {
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- break;
- } else {
- log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触", wrkMastSta.getWrkNo());
- Thread.sleep(500);
- }
- } else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�", wrkMastSta.getWrkNo());
- Thread.sleep(500);
- }
- break;
- }
- }
-
- }
- if (!wrkEnable) {
- rgvRunWrkMastEmptyStaAvoidance();
- }
- } catch (Exception e) {
- log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�");
- log.error("3875琛�" + e);
- }
- }
-
- /**
- * 鎵ц灏忚溅鎼繍浠诲姟
- */
-// public synchronized void rgvRunWrkMastEmptyStaPut() {//鏀�
-// try{
-// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-// if (rgvProtocol == null) {
-// continue;
+// // 淇敼鐩爣搴撲綅鐘舵��
+// if (loc.getLocSts().equals("O")) {
+// loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+// loc.setModiTime(new Date());
+// if (!locMastService.updateById(loc)) {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 6" + " - 鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+// throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
// }
-// BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-// if (basRgv == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�5", rgvSlave.getId());
-// continue;
-// }
-//
-// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
-// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-// && rgvProtocol.getModeType() == RgvModeType.AUTO
-// && rgvProtocol.getLoaded1()==1 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
-// ) {
-// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// if (basRgvMap == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
-// continue;
-// }
-// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
-// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
-// for (WrkMastSta wrkMastSta : wrkMastStaList){
-// if (wrkMastSta.getType()!=2 || (wrkMastSta.getWrkType()!=2 && wrkMastSta.getWrkType()!=4)){// 2:绌烘澘 2:鏀� 4锛氭媶鐩�
-// continue;
-// }
-// boolean sign = false;
-// if (wrkMastSta.getStaStart()==0 && wrkMastSta.getStaEnd()!=0){//鏀�
-// sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
-// }else {
-// continue;
-// }
-// if (sign){
-// boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd());
-// if (signMap){
-// wrkMastSta.setWrkSts(2);
-// try{
-// wrkMastStaMapper.updateById(wrkMastSta);
-// }catch (Exception e){
-// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-// }
-// return;
-// }else {
-// log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-// }
-// }else {
-// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
-// }
-// break;
-// }
-// }
+// } else {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 7" + " - 绉昏浆澶辫触");
+// throw new CoolException("绉昏浆澶辫触");
// }
-// }catch (Exception e){
-// log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
-// log.error("3933琛�"+e);
+// } catch (Exception e) {
+// News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// }
// }
-
-// public synchronized void rgvRunWrkMastEmptyStaTake() {//鍙�
-// try{
-// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-// if (rgvProtocol == null) {
+//
+// /**
+// * 鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆
+// */
+// public synchronized void crnDemoOfLocMove1() {
+// try {
+// for (CrnSlave crn : slaveProperties.getCrn()) {
+// if (!crn.getDemo()) {
// continue;
-// }
-// BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-// if (basRgv == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�6", rgvSlave.getId());
+// } // 蹇呴』涓烘紨绀虹姸鎬�
+//
+// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+// CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+// if (crnProtocol == null) {
// continue;
// }
//
-// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
+// // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+// if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+// // 鑾峰彇绉诲簱宸ヤ綔妗d俊鎭�
+// WrkMast wrkMast = wrkMastMapper.selectLocMove(crn.getId());
+// if (null != wrkMast) {
+// continue;
+// }
+//
+// LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getId());
+// LocMast loc = locMastService.queryDemoLoc(crn.getId());
+// if (null == sourceLoc || null == loc) {
+// continue;
+// }
+//
+// String sourceLocNo = sourceLoc.getLocNo();
+// String locNo = loc.getLocNo();
+//
+// // 鑾峰彇宸ヤ綔鍙�
+// int workNo = commonService.getWorkNo(0);
+// // 淇濆瓨宸ヤ綔妗�
+// wrkMast = new WrkMast();
+// wrkMast.setWrkNo(workNo);
+// wrkMast.setIoTime(new Date());
+// wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+// wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+// wrkMast.setIoPri(13D);
+// wrkMast.setCrnNo(crn.getId());
+// wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
+// wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
+// wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+// wrkMast.setPicking("N"); // 鎷f枡
+// wrkMast.setExitMk("N"); // 閫�鍑�
+// wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
+// wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
+// wrkMast.setLinkMis("N");
+// wrkMast.setAppeTime(new Date());
+// wrkMast.setModiTime(new Date());
+// int res = wrkMastMapper.insert(wrkMast);
+// if (res == 0) {
+// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+// }
+// // 宸ヤ綔妗f槑缁嗕繚瀛�
+//// List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
+//// for (LocDetl locDetl : locDetls) {
+//// WrkDetl wrkDetl = new WrkDetl();
+//// wrkDetl.setWrkNo(workNo);
+//// wrkDetl.setIoTime(new Date());
+//// wrkDetl.setAnfme(locDetl.getAnfme());
+//// VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
+//// wrkDetl.setAppeTime(new Date());
+//// wrkDetl.setModiTime(new Date());
+//// if (!wrkDetlService.insert(wrkDetl)) {
+//// throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+//// }
+//// }
+// // 淇敼婧愬簱浣嶇姸鎬�
+// if (sourceLoc.getLocSts().equals("D")) {
+// sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+// sourceLoc.setModiTime(new Date());
+// if (!locMastService.updateById(sourceLoc)) {
+// throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+// }
+// } else {
+// throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
+// }
+// // 淇敼鐩爣搴撲綅鐘舵��
+// if (loc.getLocSts().equals("O")) {
+// loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+// loc.setModiTime(new Date());
+// if (!locMastService.updateById(loc)) {
+// throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+// }
+// } else {
+// throw new CoolException("绉昏浆澶辫触");
+// }
+//
+// }
+// }
+// } catch (Exception e) {
+// News.error("鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆澶辫触", e);
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+// }
+//
+// /**
+// * 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
+// */
+// public synchronized void crnIoWrkMast() {
+// for (CrnSlave crn : slaveProperties.getCrn()) {
+// // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+// CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+// if (crnProtocol == null) {
+// continue;
+// }
+// Date now = new Date();
+// // 鍫嗗灈鏈烘鍦ㄨ繍琛�
+// if (crnProtocol.getStatusType() != CrnStatusType.IDLE && crnProtocol.getTaskNo() != 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+// // 鑾峰彇宸ヤ綔妗�
+// WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
+// if (wrkMast == null) {
+// continue;
+// }
+// // 鍏ュ簱
+// if (wrkMast.getWrkSts() == 1 || wrkMast.getWrkSts() == 2) {
+// News.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
+// // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+// wrkMast.setWrkSts(3L);
+// wrkMast.setCrnStrTime(now);
+// wrkMast.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// News.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+// }
+// News.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo());
+// }
+// // 鍑哄簱銆佺Щ搴�
+// if (wrkMast.getWrkSts() == 11) {
+// News.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
+// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+// wrkMast.setWrkSts(12L);
+// wrkMast.setCrnStrTime(now);
+// wrkMast.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// News.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+// }
+// News.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo());
+// }
+//
+//
+// }
+//
+// }
+// }
+//
+// /**
+// * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
+// */
+// public synchronized void ioConvert() {
+// try {
+// // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+//
+// for (DevpSlave.Sta inSta : devp.getInSta()) {
+// if (inSta.getStaNo() == 2) {
+// continue;
+// }
+// WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo());
+// switch (inSta.getStaNo()) {
+// case 203://1F
+// if (pakout != null) {
+// if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
+// // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
+// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+// && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
+// && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
+// // 鍑哄簱妯″紡
+// devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE;
+// }
+// }
+// } else {
+// // 鍏ュ簱妯″紡
+// devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
+// }
+// break;
+// case 401://1F
+// if (pakout != null) {
+// if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
+// // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf4F = IoModeType.PAKOUT_BOOTING;
+// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+// && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
+// && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
+// // 鍑哄簱妯″紡
+// devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE;
+// }
+// }
+// } else {
+// // 鍏ュ簱妯″紡
+// devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
+// }
+// break;
+// }
+// }
+//
+// }
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+//
+//
+// }
+//
+// public synchronized void outOfDevp(Integer mark) {
+//
+// List<WrkMast> wrkMasts = wrkMastMapper.selectPick();
+// if (wrkMasts.size() != 0) {
+// News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛宱utOfDevp");
+// }
+// for (WrkMast wrkMast : wrkMasts) {
+// if (basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo())) == 0) {
+// wrkMast.setCtnNo("Y");
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// News.error("" + mark + " - 1" + " - 淇敼{}宸ヤ綔妗eけ璐ワ紝ctn_no", wrkMast.getWrkNo());
+// }
+// }
+// }
+//// News.infoNoLog(""+mark+" - 0"+" - outOfDevp鎵ц瀹屾垚");
+// }
+//
+//
+// public synchronized void autoEmptyOut() {
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+// List<Integer> list = new ArrayList<>();
+// list.add(101);
+// list.add(112);
+// Map<Integer, Integer> map = new HashMap<>();
+// map.put(101, 102);
+// map.put(112, 111);
+// for (Integer site : list) {
+// WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("sta_no", map.get(site)));
+// if (!Cools.isEmpty(wrkMast)) {
+// continue;
+// }
+// //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
+// StaProtocol staProtocol = devpThread.getStation().get(site);
+// if (staProtocol == null) {
+// return;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+// if (staProtocol.isAutoing() //鑷姩
+// && !staProtocol.isLoading() //鏃犵墿
+// && staProtocol.isOutEnable() //鍙嚭淇″彿
+// && staProtocol.getWorkNo() == 0
+// ) {
+// WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(site);
+// if (null != pakoutEmpty) {
+// return;
+// }
+// Short loctype1 = 1;
+// if (site == 101) {
+// loctype1 = 2;
+// }
+// LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
+// locTypeDto.setSiteId(site);
+// try {
+// String response = new HttpHandler.Builder()
+// .setUri(wmsUrl)
+// .setPath("/rpc/auto/emptyOut/v1")
+// .setJson(JSON.toJSONString(locTypeDto))
+// .build()
+// .doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+// if (jsonObject.getInteger("code").equals(200)) {
+// String data = jsonObject.get("data").toString();
+// News.info((String) jsonObject.get("msg") + "," + data);
+// } else {
+// News.warnNoLog("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1", "", response);
+// }
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+// }
+// }
+//
+// }
+//
+// public synchronized void autoEmptyIn() {
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+// List<Integer> list = new ArrayList<>();
+// list.add(153);
+// list.add(157);
+// for (Integer site : list) {
+// StaProtocol staProtocol = devpThread.getStation().get(site);
+// if (staProtocol == null) {
+// return;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+// if (staProtocol.isAutoing() //鑷姩
+// && staProtocol.isLoading() //鏈夌墿
+// && staProtocol.isInEnable() //鍙叆淇″彿
+// && staProtocol.isPakMk()
+// && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛�
+// ) {
+//
+// try {
+// Short loctype1 = 1;
+// if (site == 153) {
+// loctype1 = 2;
+// }
+// LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
+// locTypeDto.setSiteId(site);
+//
+// String response = new HttpHandler.Builder()
+// .setUri(wmsUrl)
+// .setPath("/rpc/auto/emptyIn/v1")
+// .setJson(JSON.toJSONString(locTypeDto))
+// .build()
+// .doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+// if (jsonObject.getInteger("code").equals(200)) {
+// News.info((String) jsonObject.get("msg"));
+// staProtocol.setWorkNo(jsonObject.get("data").hashCode());
+// staProtocol.setStaNo(site.shortValue());
+// devpThread.setPakMk(site, false);
+// MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+// } else {
+// News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response);
+// }
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+// }
+//
+// }
+//
+// }
+//
+// /*
+// * 灏忚溅鍦板浘鏇存柊 鏇存柊閿�
+// * */
+// public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent, Integer staStart, Integer staEnd, String sign) {
+// log.info("灏忚溅鍦板浘鏇存柊锛乕鏍囪锛歿}];[BasRgvMap锛歿}];[staStart锛歿}];[staEnd锛歿}];", sign, JSON.toJSONString(basRgvMapCurrent), staStart, staEnd);
+//
+//// List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute());
+// //鏇存柊褰撳墠灏忚溅閿�
+// try {
+// Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐�
+// log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栨渶杩滅珯鐐�;[farCurrentStaNo锛歿}]", farCurrentStaNo);
+// Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //鑾峰彇鍚堝苟骞叉秹椤�
+// log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栧悎骞跺共娑夐」;[fallMerge锛歿}]", fallMerge);
+// basRgvMapCurrent.setLockEndRoute(fallMerge);
+// Integer i = basRgvMapMapper.updateById(basRgvMapCurrent);
+//// if (i>0){
+//// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫閿�,{}",sign,new Date(),basRgvMapCurrent.getRgvNo(),JSON.toJSONString(basRgvMapCurrent));
+//// }
+//
+// //鏇存柊鍙︿竴鍙板皬杞﹀湴鍥�
+// Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther(basRgvMapCurrent.getRgvNo());
+// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彿;[rgvNoOther锛歿}]", rgvNoOther);
+//
+// BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
+// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞�;[basRgvMapOther锛歿}]", JSON.toJSONString(basRgvMapOther));
+//
+// List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
+// Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
+// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�;[lockEndRoute锛歿}]", lockEndRoute);
+// basRgvMapOther.setEndRoute(lockEndRoute);
+// Integer i1 = basRgvMapMapper.updateById(basRgvMapOther);
+//// if (i1>0){
+//// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫浣嶇疆,{}",sign,new Date(),basRgvMapOther.getRgvNo(),JSON.toJSONString(basRgvMapOther));
+//// }
+// return true;
+// } catch (Exception e) {
+// log.error("灏忚溅鍦板浘鏇存柊鍑洪敊锛佸紓甯稿師鍥狅細" + e);
+// return false;
+// }
+// }
+//
+// /*
+// * 鍒锋柊鍦板浘鏁版嵁
+// * */
+// public synchronized void refreshRgvMap() {
+// try {
+// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
+// for (BasRgvMap rgvSlave : basRgvMaps) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// } else {
+// rgvProtocol = rgvProtocol.clone();
+// }
+// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
+// if (basRgv == null) {
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�2", rgvSlave.getRgvNo());
+// continue;
+// }
+//
+// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE &&
+// rgvProtocol.getModeType() == RgvModeType.AUTO
+// && rgvProtocol.getLoaded1() == 0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+// && (rgvProtocol.getTaskNo1() == 0)
+// && rgvThread.isPakMk()
+// ) {
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+//
+// Integer rgvNoOther = basRgvMap.getRgvNoOther(rgvProtocol.getRgvNo());
+// RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNoOther);
+// RgvProtocol rgvProtocolOther = rgvThreadOther.getRgvProtocol();
+// if (rgvProtocolOther == null) {
+// continue;
+// } else {
+// rgvProtocolOther = rgvProtocolOther.clone();
+// }
+// if (rgvProtocolOther.getStatusType() == RgvStatusType.IDLE
+// && rgvProtocolOther.getModeType() == RgvModeType.AUTO
+// && rgvProtocolOther.getLoaded1() == 0
+// && (rgvProtocolOther.getTaskNo1() == 0)
+// && rgvThreadOther.isPakMk()
+// ) {
+// //瀵瑰伐浣滄。杩涜鍒ゆ柇
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
+// if (rgvProtocol.getTaskNo1() > 0 && rgvProtocol.getTaskNo1() <= 9000) {
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+// rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(), "2366");
+// } else if (rgvProtocol.getTaskNo1() == 0) {
+// rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), basRgvMap.getStartRoute(), "2366");
+// }
+//
+// }
+//
+//
+// }
+// }
+// } catch (Exception e) {
+// log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
+// log.error("4109琛�" + e);
+// }
+// }
+//
+//
+// /**
+// * 瀹屾垚灏忚溅浠诲姟
+// */
+// public synchronized void rgvCompleteWrkMastSta() {
+// try {
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
+// for (BasRgvMap rgvSlave : basRgvMaps) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// } else {
+// rgvProtocol = rgvProtocol.clone();
+// }
+// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
+// if (basRgv == null) {
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�3", rgvSlave.getRgvNo());
+// continue;
+// }
+//
+// // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
+// if ((rgvProtocol.getStatusType1() == RgvStatusType.WAITING || rgvProtocol.getStatusType1() == RgvStatusType.FETCHWAITING)
+// && rgvProtocol.getModeType() == RgvModeType.AUTO
+// && (rgvProtocol.getStatusType() == RgvStatusType.WORKING1)
+// ) {
+// log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}", rgvProtocol.getRgvNo(), rgvProtocol.getStatusType(), rgvProtocol);
+// if (rgvProtocol.getTaskNo1() != 0) {
+// if (rgvProtocol.getTaskNo1() == 32222) {
+// boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
+// if (!rgvComplete) {
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
+// }
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
+// rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), basRgvMap.getStartRoute(), "2415");
+// rgvThread.setPakMk(true);
+// break;
+// }
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+// if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts() != 1) {
+// log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�" + wrkMastSta);
+// continue;
+// }
+//
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+// StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
+// if (staProtocol == null) {
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+// if (!staProtocol.isAutoing() || !staProtocol.isLoading()) {
+// continue;
+// }
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
+// if (!Cools.isEmpty(wrkMast)) {
+// if (!staProtocol.isPakMk()) {
+// continue;
+// }
+// // 涓嬪彂绔欑偣淇℃伅
+// staProtocol.setWorkNo(wrkMast.getWrkNo());
+// staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
+// if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
+// continue;
+// }
+// } else {
+// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护,浣嗘湭鏌ヨ鍒板伐浣滄。");
+// // 涓嬪彂绔欑偣淇℃伅
+// Map<Integer, Integer> map = new HashMap<>();
+// map.put(101, 102);
+// map.put(112, 111);
+// map.put(100, 100);
+// staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue());
+// staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+//// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
+// if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
+// continue;
+// }
+// }
+// boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
+//// boolean rgvComplete = true;
+// if (!rgvComplete) {
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
+// break;
+// }
+// WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+// wrkMast1.setPdcType("Y");
+//
+// wrkMastService.updateById(wrkMast1);
+//
+// wrkMastSta.setWrkSts(3);
+// wrkMastStaMapper.updateById(wrkMastSta);
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
+// rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), basRgvMap.getStartRoute(), "2471");
+// rgvThread.setPakMk(true);
+// } else {
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒", rgvProtocol.getRgvNo());
+// }
+// }
+// }
+// }
+// } catch (Exception e) {
+// log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�" + e);
+// }
+// }
+//
+// /**
+// * 鎵ц灏忚溅鎼繍浠诲姟
+// */
+// public synchronized void rgvRunWrkMastFullSta() {
+// boolean wrkEnable = false;
+// try {
+// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
+// for (BasRgvMap rgvSlave : basRgvMaps) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// } else {
+// rgvProtocol = rgvProtocol.clone();
+// }
+// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
+// if (basRgv == null) {
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo());
+// continue;
+// }
+//
+// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
// && rgvProtocol.getModeType() == RgvModeType.AUTO
-// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+// && rgvProtocol.getLoaded1() == 0
+// && rgvProtocol.getTaskNo1() == 0
+// && rgvThread.isPakMk()
// ) {
// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
// if (basRgvMap == null) {
@@ -2829,210 +2688,301 @@
// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
-// for (WrkMastSta wrkMastSta : wrkMastStaList){
-// if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘 1:鍙�
+// for (WrkMastSta wrkMastSta : wrkMastStaList) {
+// if (wrkMastSta.getType() != 0 || wrkMastSta.getWrkType() != 3 || wrkMastSta.getWrkSts() != 0) {//1:婊$増 3锛氬彇鏀�
// continue;
// }
-// boolean sign = false;
-// if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//鍙�
-// sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
-// } else {
-// continue;
+// //鍒ゆ柇宸ヤ綔缁撴潫浣嶇疆鐘舵��
+// BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd()));
+// if (!Cools.isEmpty(devNo)) {
+// if (devNo.getAutoing().equals("Y") && !devNo.getWrkNo().equals(0) && !devNo.getLoading().equals("N")) {
+// continue;
+// }
// }
-// if (sign){
-// boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute());
-// if (signMap){
+// boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
+// wrkEnable = true;
+// if (sign) {
+// rgvThread.setPakMk(false);
+// boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(), "2526");
+// if (signMap) {
+// Thread.sleep(300);
// wrkMastSta.setWrkSts(1);
-// try{
+// try {
// wrkMastStaMapper.updateById(wrkMastSta);
-// }catch (Exception e){
+// return;
+// } catch (Exception e) {
// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
// }
-// return;
-// }else {
-// log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
+// break;
+// } else {
+// log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触", wrkMastSta.getWrkNo());
+// Thread.sleep(500);
// }
-// }else {
-// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+// } else {
+// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�", wrkMastSta.getWrkNo());
+// Thread.sleep(500);
// }
// break;
// }
// }
+//
// }
-// }catch (Exception e){
-// log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
-// log.error("3989琛�"+e);
+// if (!wrkEnable) {
+// rgvRunWrkMastEmptyStaAvoidance();
+// }
+// } catch (Exception e) {
+// log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�");
+// log.error("3875琛�" + e);
// }
// }
-
- /*
- * 鏈変换鍔′絾鏈墽琛� 姝ゆ椂闇�瑕佽皟鏁村皬杞︿綅缃�
- * */
- public synchronized void rgvRunWrkMastEmptyStaAvoidance() {
- try {
- Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null, 0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
- if (integer == 0) {
- return;
- }
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
- for (BasRgvMap rgvSlave : basRgvMaps) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- } else {
- rgvProtocol = rgvProtocol.clone();
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�1", rgvSlave.getRgvNo());
- continue;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded1() == 0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
- && rgvProtocol.getTaskNo1() == 0
- && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
- && rgvThread.isPakMk()
-// && rgvProtocol.getTaskNo2()==0
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())) {
- continue;
- }
-// if (rgvProtocol.getRgvNo()==1 && rgvProtocol.getRgvPosI().equals(100)){
-// continue;
-// } else if (rgvProtocol.getRgvNo()==2 && rgvProtocol.getRgvPosI().equals(157) ){
+//
+// /**
+// * 鎵ц灏忚溅鎼繍浠诲姟
+// */
+//// public synchronized void rgvRunWrkMastEmptyStaPut() {//鏀�
+//// try{
+//// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+//// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+//// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+//// if (rgvProtocol == null) {
+//// continue;
+//// }
+//// BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
+//// if (basRgv == null) {
+//// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�5", rgvSlave.getId());
+//// continue;
+//// }
+////
+//// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
+//// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+//// && rgvProtocol.getModeType() == RgvModeType.AUTO
+//// && rgvProtocol.getLoaded1()==1 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+//// ) {
+//// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+//// if (basRgvMap == null) {
+//// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
+//// continue;
+//// }
+//// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+//// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
+//// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
+//// for (WrkMastSta wrkMastSta : wrkMastStaList){
+//// if (wrkMastSta.getType()!=2 || (wrkMastSta.getWrkType()!=2 && wrkMastSta.getWrkType()!=4)){// 2:绌烘澘 2:鏀� 4锛氭媶鐩�
+//// continue;
+//// }
+//// boolean sign = false;
+//// if (wrkMastSta.getStaStart()==0 && wrkMastSta.getStaEnd()!=0){//鏀�
+//// sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
+//// }else {
+//// continue;
+//// }
+//// if (sign){
+//// boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd());
+//// if (signMap){
+//// wrkMastSta.setWrkSts(2);
+//// try{
+//// wrkMastStaMapper.updateById(wrkMastSta);
+//// }catch (Exception e){
+//// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+//// }
+//// return;
+//// }else {
+//// log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
+//// }
+//// }else {
+//// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+//// }
+//// break;
+//// }
+//// }
+//// }
+//// }catch (Exception e){
+//// log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
+//// log.error("3933琛�"+e);
+//// }
+//// }
+//
+//// public synchronized void rgvRunWrkMastEmptyStaTake() {//鍙�
+//// try{
+//// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+//// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+//// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+//// if (rgvProtocol == null) {
+//// continue;
+//// }
+//// BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
+//// if (basRgv == null) {
+//// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�6", rgvSlave.getId());
+//// continue;
+//// }
+////
+//// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
+//// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+//// && rgvProtocol.getModeType() == RgvModeType.AUTO
+//// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+//// ) {
+//// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+//// if (basRgvMap == null) {
+//// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
+//// continue;
+//// }
+//// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
+//// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+//// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
+//// for (WrkMastSta wrkMastSta : wrkMastStaList){
+//// if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘 1:鍙�
+//// continue;
+//// }
+//// boolean sign = false;
+//// if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//鍙�
+//// sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
+//// } else {
+//// continue;
+//// }
+//// if (sign){
+//// boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute());
+//// if (signMap){
+//// wrkMastSta.setWrkSts(1);
+//// try{
+//// wrkMastStaMapper.updateById(wrkMastSta);
+//// }catch (Exception e){
+//// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+//// }
+//// return;
+//// }else {
+//// log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
+//// }
+//// }else {
+//// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+//// }
+//// break;
+//// }
+//// }
+//// }
+//// }catch (Exception e){
+//// log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
+//// log.error("3989琛�"+e);
+//// }
+//// }
+//
+// /*
+// * 鏈変换鍔′絾鏈墽琛� 姝ゆ椂闇�瑕佽皟鏁村皬杞︿綅缃�
+// * */
+// public synchronized void rgvRunWrkMastEmptyStaAvoidance() {
+// try {
+// Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null, 0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
+// if (integer == 0) {
+// return;
+// }
+// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
+// for (BasRgvMap rgvSlave : basRgvMaps) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// } else {
+// rgvProtocol = rgvProtocol.clone();
+// }
+// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
+// if (basRgv == null) {
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�1", rgvSlave.getRgvNo());
+// continue;
+// }
+//
+// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+// && rgvProtocol.getModeType() == RgvModeType.AUTO
+// && rgvProtocol.getLoaded1() == 0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+// && rgvProtocol.getTaskNo1() == 0
+// && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+// && rgvThread.isPakMk()
+//// && rgvProtocol.getTaskNo2()==0
+// ) {
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())) {
// continue;
// }
- rgvAvoidanceXY(rgvProtocol.getRgvNo());
- rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), basRgvMap.getStartRoute(), "2727");
- }
- }
- } catch (Exception e) {
- log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
- log.error("4109琛�" + e);
- }
- }
-
- /*
- * 灏忚溅XY绉诲姩 閬胯
- * */
- public synchronized boolean rgvAvoidanceXY(Integer rgvId) {
- BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo(rgvId);
- if (basRgvMap.getStartRoute() == 100 || basRgvMap.getStartRoute() == 101) {
- try {
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1((short) 32222); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
- //basRgvMap.getLockStartRoute().shortValue()
- rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue());
- rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- } catch (Exception e) {
- return false;
-
- }
- } else {
- try {
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1((short) 32222); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
- //basRgvMap.getLockStartRoute().shortValue()
- rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue());
- rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- } catch (Exception e) {
- return false;
-
- }
- }
- }
-
-
- /*
- * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
- * */
- public synchronized boolean rgvTakeFullAll(Integer rgvId, WrkMastSta wrkMastSta) {
- try {
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐�
- rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣
- rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- } catch (Exception e) {
- return false;
- }
- }
-
- /*
- * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
- * */
-// public synchronized boolean rgvTakeFull(Integer rgvId,WrkMastSta wrkMastSta){
-// try{
-// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-// RgvCommand rgvCommand = new RgvCommand();
-// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
-// rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栬揣
-// rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣
-// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
-// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
-// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-// return false;
-// } else {
-// return true;
+//// if (rgvProtocol.getRgvNo()==1 && rgvProtocol.getRgvPosI().equals(100)){
+//// continue;
+//// } else if (rgvProtocol.getRgvNo()==2 && rgvProtocol.getRgvPosI().equals(157) ){
+//// continue;
+//// }
+// rgvAvoidanceXY(rgvProtocol.getRgvNo());
+// rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), basRgvMap.getStartRoute(), "2727");
+// }
// }
-// }catch (Exception e){
-// return false;
+// } catch (Exception e) {
+// log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
+// log.error("4109琛�" + e);
// }
// }
-
- /*
- * 灏忚溅鏀捐揣鑷宠緭閫佺嚎浠诲姟
- * */
-// public synchronized boolean rgvPutFull(Integer rgvId,WrkMastSta wrkMastSta){
-// try{
+//
+// /*
+// * 灏忚溅XY绉诲姩 閬胯
+// * */
+// public synchronized boolean rgvAvoidanceXY(Integer rgvId) {
+// BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo(rgvId);
+// if (basRgvMap.getStartRoute() == 100 || basRgvMap.getStartRoute() == 101) {
+// try {
+//
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// RgvCommand rgvCommand = new RgvCommand();
+// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+// rgvCommand.setTaskNo1((short) 32222); // 宸ヤ綅1宸ヤ綔鍙�
+// rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
+// //basRgvMap.getLockStartRoute().shortValue()
+// rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue());
+// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
+// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
+// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
+// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+// return false;
+// } else {
+// return true;
+// }
+// } catch (Exception e) {
+// return false;
+//
+// }
+// } else {
+// try {
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// RgvCommand rgvCommand = new RgvCommand();
+// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+// rgvCommand.setTaskNo1((short) 32222); // 宸ヤ綅1宸ヤ綔鍙�
+// rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
+// //basRgvMap.getLockStartRoute().shortValue()
+// rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue());
+// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
+// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
+// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
+// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+// return false;
+// } else {
+// return true;
+// }
+// } catch (Exception e) {
+// return false;
+//
+// }
+// }
+// }
+//
+//
+// /*
+// * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
+// * */
+// public synchronized boolean rgvTakeFullAll(Integer rgvId, WrkMastSta wrkMastSta) {
+// try {
// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
// RgvCommand rgvCommand = new RgvCommand();
// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
// rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
-// rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
+// rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐�
+// rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣
// rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣
// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
@@ -3042,79 +2992,129 @@
// } else {
// return true;
// }
-// }catch (Exception e){
+// } catch (Exception e) {
// return false;
// }
// }
-
- /*
- * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟
- * */
-// public synchronized boolean rgvTakeEmpty(Integer rgvId,WrkMastSta wrkMastSta){
-// try{
+//
+// /*
+// * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
+// * */
+//// public synchronized boolean rgvTakeFull(Integer rgvId,WrkMastSta wrkMastSta){
+//// try{
+//// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+//// RgvCommand rgvCommand = new RgvCommand();
+//// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+//// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+//// rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+//// rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栬揣
+//// rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣
+//// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
+//// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
+//// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+//// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+//// return false;
+//// } else {
+//// return true;
+//// }
+//// }catch (Exception e){
+//// return false;
+//// }
+//// }
+//
+// /*
+// * 灏忚溅鏀捐揣鑷宠緭閫佺嚎浠诲姟
+// * */
+//// public synchronized boolean rgvPutFull(Integer rgvId,WrkMastSta wrkMastSta){
+//// try{
+//// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+//// RgvCommand rgvCommand = new RgvCommand();
+//// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+//// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+//// rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+//// rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
+//// rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣
+//// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
+//// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
+//// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+//// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+//// return false;
+//// } else {
+//// return true;
+//// }
+//// }catch (Exception e){
+//// return false;
+//// }
+//// }
+//
+// /*
+// * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟
+// * */
+//// public synchronized boolean rgvTakeEmpty(Integer rgvId,WrkMastSta wrkMastSta){
+//// try{
+//// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+//// RgvCommand rgvCommand = new RgvCommand();
+//// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+//// rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
+//// rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
+//// rgvCommand.setTaskMode2(RgvTaskModeType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栬揣
+//// rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅2璧风偣
+//// rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
+//// if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
+//// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+//// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+//// return false;
+//// } else {
+//// return true;
+//// }
+//// }catch (Exception e){
+//// return false;
+//// }
+//// }
+//
+// /*
+// * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟
+// * */
+//// public synchronized boolean rgvPutEmpty(Integer rgvId,WrkMastSta wrkMastSta){
+//// try{
+//// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+//// RgvCommand rgvCommand = new RgvCommand();
+//// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+//// rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
+//// rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
+//// rgvCommand.setTaskMode2(RgvTaskModeType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣
+//// rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅2鐩爣绔欑偣
+//// rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
+//// if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
+//// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+//// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+//// return false;
+//// } else {
+//// return true;
+//// }
+//// }catch (Exception e){
+//// return false;
+//// }
+//// }
+//
+// /*
+// * 灏忚溅澶嶄綅
+// * */
+// public synchronized boolean rgvComplete(Integer rgvId) {
+// try {
// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-// RgvCommand rgvCommand = new RgvCommand();
-// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-// rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
-// rgvCommand.setTaskMode2(RgvTaskModeType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栬揣
-// rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅2璧风偣
-// rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
-// if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
+// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(3, new RgvCommand()))) {
// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}", rgvId);
// return false;
// } else {
+// log.info("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}", rgvId);
// return true;
// }
-// }catch (Exception e){
+// } catch (Exception e) {
+// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}銆傚紓甯革細" + e, rgvId);
// return false;
// }
// }
-
- /*
- * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟
- * */
-// public synchronized boolean rgvPutEmpty(Integer rgvId,WrkMastSta wrkMastSta){
-// try{
-// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-// RgvCommand rgvCommand = new RgvCommand();
-// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-// rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
-// rgvCommand.setTaskMode2(RgvTaskModeType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣
-// rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅2鐩爣绔欑偣
-// rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
-// if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
-// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-// return false;
-// } else {
-// return true;
-// }
-// }catch (Exception e){
-// return false;
-// }
-// }
-
- /*
- * 灏忚溅澶嶄綅
- * */
- public synchronized boolean rgvComplete(Integer rgvId) {
- try {
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(3, new RgvCommand()))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}", rgvId);
- return false;
- } else {
- log.info("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}", rgvId);
- return true;
- }
- } catch (Exception e) {
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}銆傚紓甯革細" + e, rgvId);
- return false;
- }
- }
-
-}
+//
+//}
diff --git a/src/main/java/com/zy/core/CtuMainProcess.java b/src/main/java/com/zy/core/CtuMainProcess.java
index fc0ba45..10ca97f 100644
--- a/src/main/java/com/zy/core/CtuMainProcess.java
+++ b/src/main/java/com/zy/core/CtuMainProcess.java
@@ -46,8 +46,8 @@
// 鍏ュ簱
ctuMainService.generateStoreWrkFile(1);
- // 鎷f枡瀹屾垚
- //ctuMainService.checkCpm(1);
+ // 鍑哄簱
+ ctuMainService.out(1);
} catch (Exception e) {
e.printStackTrace();
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 38df41c..346856f 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -1,106 +1,106 @@
-package com.zy.core;
-
-import com.zy.asrs.service.impl.MainServiceImpl;
-import com.zy.core.properties.SystemProperties;
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PreDestroy;
-import java.util.ArrayList;
-
-/**
- * WCS涓绘祦绋�
- * Created by vincent on 2020/8/6
- */
-@Data
-@Slf4j
-@Component
-public class MainProcess {
-
- @Autowired
- private MainServiceImpl mainService;
- // 鎵�灞炵嚎绋�
- private Thread thread;
- // 棰戠巼
- private int i = 0;
- private boolean rgcWrk = true;
-
- /**
- * =====>> 寮�濮嬪伐浣�
- */
- public void start(){
- thread = new Thread(() -> {
- while (!Thread.currentThread().isInterrupted()) {
- try {
-
- // 闂撮殧
- Thread.sleep(1000);
-
- // 绯荤粺杩愯鐘舵�佸垽鏂�
- if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
- continue;
- }
-
- // 婕旂ず
-// mainService.crnDemoOfLocMove1();
-
- // 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
-// mainService.ioConvert();
-
-
- // mainService.stnToCrnStnPick2();
-
- // 鍏ュ簱 ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
- mainService.generateStoreWrkFile(1); // 缁勬墭
-// mainService.generateStoreWrkFile0(2); // WMS鍏ュ簱
- Thread.sleep(400);
-
-
- // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
- mainService.stnToCrnStnPick(3);
- // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
- mainService.crnStnToOutStn(4);
- // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
- mainService.crnIoExecute(5);
- // 鍏ュ嚭搴撳寮� ===>> 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
-// mainService.crnIoWrkMast();
- // 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
- mainService.storeFinished(6);
- // 鍫嗗灈鏈哄紓甯镐俊鎭褰�
- mainService.recCrnErr(7);
- // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
- mainService.storeEmptyPlt(8);
- // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
- mainService.ledExecute(9);
- // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
- mainService.ledReset();
-
- mainService.outOfDevp(11);
-
-// if (i>10){
-// //绌烘墭鐩樿嚜鍔ㄥ嚭搴�
-// mainService.autoEmptyOut();
-// //绌烘墭鐩樿嚜鍔ㄥ叆搴�
-// mainService.autoEmptyIn();
-// i=0;
+//package com.zy.core;
+//
+//import com.zy.asrs.service.impl.MainServiceImpl;
+//import com.zy.core.properties.SystemProperties;
+//import lombok.Data;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.stereotype.Component;
+//
+//import javax.annotation.PreDestroy;
+//import java.util.ArrayList;
+//
+///**
+// * WCS涓绘祦绋�
+// * Created by vincent on 2020/8/6
+// */
+//@Data
+//@Slf4j
+//@Component
+//public class MainProcess {
+//
+// @Autowired
+// private MainServiceImpl mainService;
+// // 鎵�灞炵嚎绋�
+// private Thread thread;
+// // 棰戠巼
+// private int i = 0;
+// private boolean rgcWrk = true;
+//
+// /**
+// * =====>> 寮�濮嬪伐浣�
+// */
+// public void start(){
+// thread = new Thread(() -> {
+// while (!Thread.currentThread().isInterrupted()) {
+// try {
+//
+// // 闂撮殧
+// Thread.sleep(1000);
+//
+// // 绯荤粺杩愯鐘舵�佸垽鏂�
+// if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
+// continue;
// }
-// i++;
-
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- thread.start();
- }
-
- @PreDestroy
- public void shutDown(){
- if (thread != null) thread.interrupt();
- }
-
-}
+//
+// // 婕旂ず
+//// mainService.crnDemoOfLocMove1();
+//
+// // 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
+//// mainService.ioConvert();
+//
+//
+// // mainService.stnToCrnStnPick2();
+//
+// // 鍏ュ簱 ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
+// mainService.generateStoreWrkFile(1); // 缁勬墭
+//// mainService.generateStoreWrkFile0(2); // WMS鍏ュ簱
+// Thread.sleep(400);
+//
+//
+// // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
+// mainService.stnToCrnStnPick(3);
+// // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
+// mainService.crnStnToOutStn(4);
+// // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
+// mainService.crnIoExecute(5);
+// // 鍏ュ嚭搴撳寮� ===>> 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
+//// mainService.crnIoWrkMast();
+// // 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
+// mainService.storeFinished(6);
+// // 鍫嗗灈鏈哄紓甯镐俊鎭褰�
+// mainService.recCrnErr(7);
+// // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
+// mainService.storeEmptyPlt(8);
+// // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
+// mainService.ledExecute(9);
+// // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
+// mainService.ledReset();
+//
+// mainService.outOfDevp(11);
+//
+//// if (i>10){
+//// //绌烘墭鐩樿嚜鍔ㄥ嚭搴�
+//// mainService.autoEmptyOut();
+//// //绌烘墭鐩樿嚜鍔ㄥ叆搴�
+//// mainService.autoEmptyIn();
+//// i=0;
+//// }
+//// i++;
+//
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// }
+// });
+// thread.start();
+// }
+//
+// @PreDestroy
+// public void shutDown(){
+// if (thread != null) thread.interrupt();
+// }
+//
+//}
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index bb12fe9..9dc5f37 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -5,19 +5,14 @@
import HslCommunication.Profinet.Siemens.SiemensPLCS;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
-import com.core.common.Cools;
import com.core.common.DateUtils;
-import com.core.common.SpringUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasDevp;
-import com.zy.asrs.entity.BasRgvMap;
import com.zy.asrs.service.BasDevpService;
-import com.zy.asrs.service.BasRgvMapService;
import com.zy.common.utils.News;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
-import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.IoModeType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.DevpSlave;
@@ -47,33 +42,30 @@
private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
private short heartBeatVal = 1;
private StaError1 staError1;
-// public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
-//
-// }};
- public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
- add(100);add(101);add(102);add(103);
- add(104);add(105);add(106);add(107);
- add(108);add(109);add(110);add(111);
- add(112);add(113);add(114);add(115);
- add(116);add(117);add(118);add(119);
- add(120);add(121);add(122);add(123);
- add(200);add(201);add(202);add(203);
- add(204);add(205);add(206);add(207);
- add(208);add(209);add(210);add(211);
- add(212);add(213);add(214);add(215);
- add(216);add(217);add(218);add(219);
- add(220);add(221);add(222);add(223);
+ public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
+ add(1001);
+ add(1002);
+ add(1003);
+ add(1004);
+ add(1005);
+ add(1006);
+ add(1007);
+
+ add(101);
+ add(102);
+ add(103);
+ add(104);
+ add(105);
+ add(106);
+ add(107);
+ add(108);
}};
public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
- add(1); add(2);
- }};
- public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{
- add(101); add(201);
+ add(1);
}};
- private Integer count=0;
/**
* 鏉$爜鏁伴噺
@@ -89,7 +81,7 @@
* 4.鍑哄簱妯″紡
*/
public IoModeType ioModeOf2F = IoModeType.NONE;
-// public IoModeType ioMode = IoModeType.NONE;
+ // public IoModeType ioMode = IoModeType.NONE;
public IoModeType ioModeOf4F = IoModeType.NONE;
// public IoModeType ioMode = IoModeType.NONE;
@@ -124,8 +116,8 @@
break;
// 鍐欐暟鎹� ID+鐩爣绔�
case 2:
- write((StaProtocol)task.getData());
- log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�"+((StaProtocol) task.getData()).getWorkNo()+","+((StaProtocol) task.getData()).getStaNo());
+ write((StaProtocol) task.getData());
+ log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�" + ((StaProtocol) task.getData()).getWorkNo() + "," + ((StaProtocol) task.getData()).getStaNo());
break;
default:
break;
@@ -139,34 +131,31 @@
}
}
+
/**
* 鍒濆鍖栫珯鐐圭姸鎬�
*/
private void initSite() {
- count ++;
ArrayList<Integer> staNos = getStaNo();
- if(count > 48) {
- // 绔欑偣缂栧彿
- for (Integer siteId : staNos) {
- StaProtocol staProtocol = station.get(siteId);
- if (null == staProtocol) {
- staProtocol = new StaProtocol();
- staProtocol.setSiteId(siteId);
- station.put(siteId, staProtocol);
- }
- staProtocol.setWorkNo(0); // ID
- staProtocol.setAutoing(false); // 鑷姩
- staProtocol.setLoading(false); // 鏈夌墿
- staProtocol.setInEnable(false); // 鍙叆
- staProtocol.setOutEnable(false); // 鍙嚭
- staProtocol.setEmptyMk(false); // 绌烘澘淇″彿
- staProtocol.setStaNo((short) 0); // 鐩爣绔�
-
- if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
- staProtocol.setPakMk(true);
- }
+ // 绔欑偣缂栧彿
+ for (Integer siteId : staNos) {
+ StaProtocol staProtocol = station.get(siteId);
+ if (null == staProtocol) {
+ staProtocol = new StaProtocol();
+ staProtocol.setSiteId(siteId);
+ station.put(siteId, staProtocol);
}
- count = 0;
+ staProtocol.setWorkNo(0); // ID
+ staProtocol.setAutoing(false); // 鑷姩
+ staProtocol.setLoading(false); // 鏈夌墿
+ staProtocol.setInEnable(false); // 鍙叆
+ staProtocol.setOutEnable(false); // 鍙嚭
+ staProtocol.setEmptyMk(false); // 绌烘澘淇″彿
+ staProtocol.setStaNo((short) 0); // 鐩爣绔�
+
+ if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+ staProtocol.setPakMk(true);
+ }
}
}
@@ -177,13 +166,13 @@
siemensS7Net.setRack(slave.getRack().byteValue());
siemensS7Net.setSlot(slave.getSlot().byteValue());
OperateResult connect = siemensS7Net.ConnectServer();
- if(connect.IsSuccess){
+ if (connect.IsSuccess) {
result = true;
- OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- News.info("SiemensDevp"+" - 1"+" - 杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+ News.info("SiemensDevp" + " - 1" + " - 杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
} else {
- OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- News.error("SiemensDevp"+" - 2"+" - 杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+ News.error("SiemensDevp" + " - 2" + " - 杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
}
siemensS7Net.ConnectClose();
initSite();
@@ -198,8 +187,8 @@
// updateIoMode();
ArrayList<Integer> staNos = getStaNo();
int staNoSize = staNos.size();
- OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8));
- OperateResultExOne<byte[]> result200 = siemensS7Net.Read("DB101.800", (short) (staNoSize*8));
+ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 2));
+ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.0", (short) (staNoSize * 4));
if (result.IsSuccess) {
for (int i = 0; i < staNoSize; i++) {
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
@@ -210,20 +199,11 @@
station.put(siteId, staProtocol);
}
boolean[] status = null;
- if(i < 24){
- staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8)); // 宸ヤ綔鍙�
-
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4)); // 鐩爣绔�
-
- status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2);
- }else {
- staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result200.Content, (i-24)*8)); // 宸ヤ綔鍙�
-
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result200.Content, (i-24)*8 + 4)); // 鐩爣绔�
-
- status = siemensS7Net.getByteTransform().TransBool(result200.Content, (i-24)*8 + 6, 2);
+ if (i < 7) {
+ staProtocol.setWorkNo((int) siemensS7Net.getByteTransform().TransInt16(result2.Content, i * 4));
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result2.Content, i * 4 + 2));
}
-
+ status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 2, 2);
staProtocol.setAutoing(status[0]); // 鑷姩
staProtocol.setLoading(status[1]); // 鏈夌墿
staProtocol.setInEnable(status[2]); // 鍙叆
@@ -240,87 +220,87 @@
}
//鏉$爜鎵弿鍣�
- ArrayList<Integer> barcodeList = BarcodeList;
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1648", (short) (barcodeList.size() * 8));
- if (result2.IsSuccess) {
- for (int i = 0; i < barcodeList.size(); i++) {
- Integer barcodeId = barcodeList.get(i);
- String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
- if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
- barcodeThread.setBarcode(barcode);
- }
- }
- }
+// ArrayList<Integer> barcodeList = BarcodeList;
+// OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1648", (short) (barcodeList.size() * 8));
+// if (result2.IsSuccess) {
+// for (int i = 0; i < barcodeList.size(); i++) {
+// Integer barcodeId = barcodeList.get(i);
+// String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
+// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
+// if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+// barcodeThread.setBarcode(barcode);
+// }
+// }
+// }
//澶栧舰妫�娴�
- ArrayList<Integer> staNoErrs = staNosErrList;
- int staNoErrsSize = staNoErrs.size();
- OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.1608", (short) (staNoErrsSize*8));
- if (resultErr.IsSuccess){
- for (int i = 0;i<2;i++){
- Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿
- boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1);
- StaProtocol staProtocol = station.get(siteId);
- staProtocol.setFrontErr(status[0]);
- staProtocol.setBackErr(status[1]);
- staProtocol.setHighErr(status[2]);
- staProtocol.setLeftErr(status[3]);
- staProtocol.setRightErr(status[4]);
- staProtocol.setWeightErr(status[5]);
- staProtocol.setBarcodeErr(status[6]);
- }
- }
+// ArrayList<Integer> staNoErrs = staNosErrList;
+// int staNoErrsSize = staNoErrs.size();
+// OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.1608", (short) (staNoErrsSize * 8));
+// if (resultErr.IsSuccess) {
+// for (int i = 0; i < 2; i++) {
+// Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿
+// boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4 + 2, 1);
+// StaProtocol staProtocol = station.get(siteId);
+// staProtocol.setFrontErr(status[0]);
+// staProtocol.setBackErr(status[1]);
+// staProtocol.setHighErr(status[2]);
+// staProtocol.setLeftErr(status[3]);
+// staProtocol.setRightErr(status[4]);
+// staProtocol.setWeightErr(status[5]);
+// staProtocol.setBarcodeErr(status[6]);
+// }
+// }
//plc鏁呴殰
- OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.1728", (short) (staNoSize*4));
- if (resultErr2.IsSuccess) {
- for (int i = 0; i < staNoSize; i++) {
- Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
- boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*4, 1);
- StaProtocol staProtocol = station.get(siteId);
- staProtocol.setBreakerErr(status[0]);
- staProtocol.setInfraredErr(status[1]);
- staProtocol.setOutTimeErr(status[2]);
- staProtocol.setSeizeSeatErr(status[3]);
- staProtocol.setWrkYgoodsN(status[4]);
- staProtocol.setInverterErr(status[5]);
- staProtocol.setContactErr(status[6]);
- staProtocol.setUpcontactErr(status[7]);
-
- }
- }
- OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB13.400", (short) 3);
- if (resultErr3.IsSuccess) {
- if (staError1 == null){
- staError1 = new StaError1();
- }
- boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, 0, 3);
- staError1.setEMERGENCY_Stop_Core(status[0]);
- staError1.setEMERGENCY_STOP1(status[1]);
- staError1.setEMERGENCY_STOP2(status[2]);
- staError1.setEMERGENCY_STOP3(status[3]);
- staError1.setEMERGENCY_STOP4(status[4]);
-
- staError1.setDoor_EMERGENCY_STOP1(status[5]);
- staError1.setDoor_EMERGENCY_STOP2(status[6]);
- staError1.setDoor_EMERGENCY_STOP3(status[7]);
- staError1.setDoor_EMERGENCY_STOP4(status[8]);
- staError1.setDoor_EMERGENCY_STOP5(status[9]);
- staError1.setDoor_EMERGENCY_STOP6(status[10]);
-
- staError1.setDoor_Open_Err1(status[11]);
- staError1.setDoor_Open_Err1(status[12]);
- staError1.setDoor_Open_Err1(status[13]);
- staError1.setDoor_Open_Err1(status[14]);
- staError1.setDoor_Open_Err1(status[15]);
- staError1.setDoor_Open_Err1(status[16]);
-
- }
+// OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.1728", (short) (staNoSize * 4));
+// if (resultErr2.IsSuccess) {
+// for (int i = 0; i < staNoSize; i++) {
+// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+// boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i * 4, 1);
+// StaProtocol staProtocol = station.get(siteId);
+// staProtocol.setBreakerErr(status[0]);
+// staProtocol.setInfraredErr(status[1]);
+// staProtocol.setOutTimeErr(status[2]);
+// staProtocol.setSeizeSeatErr(status[3]);
+// staProtocol.setWrkYgoodsN(status[4]);
+// staProtocol.setInverterErr(status[5]);
+// staProtocol.setContactErr(status[6]);
+// staProtocol.setUpcontactErr(status[7]);
+//
+// }
+// }
+// OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB13.400", (short) 3);
+// if (resultErr3.IsSuccess) {
+// if (staError1 == null) {
+// staError1 = new StaError1();
+// }
+// boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, 0, 3);
+// staError1.setEMERGENCY_Stop_Core(status[0]);
+// staError1.setEMERGENCY_STOP1(status[1]);
+// staError1.setEMERGENCY_STOP2(status[2]);
+// staError1.setEMERGENCY_STOP3(status[3]);
+// staError1.setEMERGENCY_STOP4(status[4]);
+//
+// staError1.setDoor_EMERGENCY_STOP1(status[5]);
+// staError1.setDoor_EMERGENCY_STOP2(status[6]);
+// staError1.setDoor_EMERGENCY_STOP3(status[7]);
+// staError1.setDoor_EMERGENCY_STOP4(status[8]);
+// staError1.setDoor_EMERGENCY_STOP5(status[9]);
+// staError1.setDoor_EMERGENCY_STOP6(status[10]);
+//
+// staError1.setDoor_Open_Err1(status[11]);
+// staError1.setDoor_Open_Err1(status[12]);
+// staError1.setDoor_Open_Err1(status[13]);
+// staError1.setDoor_Open_Err1(status[14]);
+// staError1.setDoor_Open_Err1(status[15]);
+// staError1.setDoor_Open_Err1(status[16]);
+//
+// }
if (result.IsSuccess) {
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
try {
@@ -338,7 +318,7 @@
initSite();
e.printStackTrace();
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- News.error("SiemensDevp"+" - 3"+" - 鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ News.error("SiemensDevp" + " - 3" + " - 鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
} else {
@@ -357,49 +337,30 @@
ArrayList<Integer> staNos = getStaNo();
int index = staNos.indexOf(staProtocol.getSiteId());
- if(index >= 24){
- index = 76 + index;
- }
-
OperateResult write = null;
OperateResult write1 = null;
//浠诲姟涓嬪彂娆℃暟
int writeCount = 0;
do {
- write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+ write = siemensS7Net.Write("DB100." + index * 4, staProtocol.getWorkNo().shortValue()); // 宸ヤ綔鍙�
Thread.sleep(200);
- write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue()); // 鐩爣绔�
- if(write.IsSuccess && write1.IsSuccess){
+ write1 = siemensS7Net.Write("DB100." + (index * 4 + 2), staProtocol.getStaNo().shortValue()); // 鐩爣绔�
+ if (write.IsSuccess && write1.IsSuccess) {
log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
break;
- }
- else {
+ } else {
writeCount++;
log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
}
- }while (writeCount<5);
+ } while (writeCount < 5);
if (!write.IsSuccess) {
staProtocol = station.get(staProtocol.getSiteId());
- if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+ if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) {
staProtocol.setPakMk(true);
}
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
- News.error("SiemensDevp"+" - 4"+" - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
- } else {
- //dang 101,201zhan xaifazhiling qingchu tiaoxingsaomaolide shuju shanchu
- if (staProtocol.getSiteId()==101){
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 1);
- log.info("qingchutiaoma,{}",barcodeThread.getBarcode());
- barcodeThread.clearBarcode();
- }
- if (staProtocol.getSiteId()==201){
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 2);
- log.info("qingchutiaoma,{}",barcodeThread.getBarcode());
- barcodeThread.clearBarcode();
- }
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
- News.info("SiemensDevp"+" - 5"+" - 杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
+ News.error("SiemensDevp" + " - 4" + " - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
}
}
@@ -408,7 +369,7 @@
if (this.ioModeOf2F != IoModeType.NONE) {
if (!siemensS7Net.Write("DB100.180", this.ioModeOf2F.id).IsSuccess) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
- News.error("SiemensDevp"+" - 6"+" - 鍐欏叆杈撻�佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+ News.error("SiemensDevp" + " - 6" + " - 鍐欏叆杈撻�佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
}
}
}
@@ -416,7 +377,7 @@
/**
* 蹇冭烦
*/
- private void heartbeat(){
+ private void heartbeat() {
if (heartBeatVal == 1) {
heartBeatVal = 2;
} else {
@@ -424,7 +385,7 @@
}
OperateResult write = siemensS7Net.Write("DB100.50", heartBeatVal);
if (!write.IsSuccess) {
- News.error("SiemensDevp"+" - 7"+" - 杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
+ News.error("SiemensDevp" + " - 7" + " - 杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
}
}
@@ -447,14 +408,14 @@
public static void main(String[] args) {
System.out.println(staNos1.indexOf(129));
System.out.println(staNos1.size());
- for (int i = 0; i<staNos1.size(); i++) {
+ for (int i = 0; i < staNos1.size(); i++) {
// System.out.println(i*2);
// System.out.println(i*2 + 200);
// System.out.println(i);
}
int index = staNos1.indexOf(128);
- System.out.println(index*2);
- System.out.println(index*2 + 200);
+ System.out.println(index * 2);
+ System.out.println(index * 2 + 200);
}
// public static void main(String[] args) throws Exception {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4bc3220..7266381 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -161,15 +161,15 @@
# 杈撻�佺嚎1
devp[0]:
id: 1
- ip: 10.10.10.140
+ ip: 10.10.10.191
port: 102
rack: 0
slot: 0
# 鍏ュ簱鍙�1
inSta[0]:
- staNo: 1004
+ staNo: 1007
barcode: ${wcs-slave.barcode[0].id}
- backSta: 1004
+ backSta: 1007
led: ${wcs-slave.led[0].id}
# # 鍏ュ簱鍙�1
# inSta[1]:
@@ -209,7 +209,7 @@
# 鏉$爜鎵弿浠�1
barcode[0]:
id: 1
- ip: 10.10.10.143
+ ip: 10.10.10.194
port: 51236
# 鏉$爜鎵弿浠�2
barcode[1]:
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 7921056..2e00bbc 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -5,6 +5,7 @@
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.zy.asrs.entity.WrkMast">
<id column="wrk_no" property="wrkNo" />
+ <id column="plc_wrk_no" property="plcWrkNo" />
<result column="inv_wh" property="invWh" />
<result column="ymd" property="ymd" />
<result column="mk" property="mk" />
@@ -190,6 +191,6 @@
</select>
<select id="selectByWrkNo" resultMap="BaseResultMap">
select * from asr_wrk_mast
- where wrk_no = #{wrkNo}
+ where plc_wrk_no = #{wrkNo} and wrk_sts = 108
</select>
</mapper>
--
Gitblit v1.9.1