From f69bc4779fa1abd564fdfea2c99aced36d90b5f8 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 13 五月 2024 19:54:30 +0800
Subject: [PATCH] #二楼
---
src/main/java/com/zy/core/enums/RgvStatusType.java | 6
src/main/java/com/zy/asrs/service/impl/MatnrCodeServiceImpl.java | 16
src/main/resources/mapper/MatnrCodeMapper.xml | 17
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 464 +++++++++++++++---
src/main/resources/mapper/WaitPakinMapper.xml | 47 +
src/main/java/com/zy/asrs/service/MatnrCodeService.java | 9
src/main/resources/mapper/WrkMastMapper.xml | 2
src/main/java/com/zy/asrs/entity/MatnrCode.java | 40 +
src/main/java/com/zy/core/thread/ZyRgvThread.java | 3
src/main/java/com/zy/common/CodeBuilder.java | 2
src/main/resources/mapper/WrkMastStaMapper.xml | 5
src/main/java/com/zy/asrs/mapper/MatnrCodeMapper.java | 13
src/main/java/com/zy/core/model/protocol/StaProtocol.java | 3
src/main/java/com/zy/asrs/entity/WrkMastSta.java | 20
src/main/java/com/zy/asrs/entity/WaitPakin.java | 304 +++++++++---
src/main/java/com/zy/asrs/service/WrkMastService.java | 1
src/main/java/com/zy/asrs/utils/Utils.java | 47 +
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java | 4
src/main/java/com/zy/asrs/entity/CombParam.java | 46 +
src/main/java/com/zy/core/MainProcess.java | 6
src/main/java/com/zy/core/model/command/RgvCommand.java | 14
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 195 ++++++-
src/main/resources/application.yml | 134 +++-
23 files changed, 1,125 insertions(+), 273 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/CombParam.java b/src/main/java/com/zy/asrs/entity/CombParam.java
new file mode 100644
index 0000000..74e7ea9
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/CombParam.java
@@ -0,0 +1,46 @@
+package com.zy.asrs.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/6/28
+ */
+@Data
+public class CombParam {
+
+ // 鍗曟嵁缂栧彿
+ private String orderNo;
+
+ // 鎵樼洏鏉$爜
+ private String barcode;
+
+ // 搴撲綅缂栧彿
+ private String locno;
+
+// // 璐т富
+// private int owner;
+
+ private List<CombMat> combMats;
+
+ @Data
+ public static class CombMat {
+
+ // 鍗曟嵁缂栧彿
+ private String orderNo;
+
+ // 鐗╂枡缂栧彿
+ private String matnr;
+
+ // 搴忓垪鐮�
+ private String batch;
+
+ // 鐗╂枡鏁伴噺
+ private Double anfme;
+
+ private Double weight;
+
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/MatnrCode.java b/src/main/java/com/zy/asrs/entity/MatnrCode.java
new file mode 100644
index 0000000..180ef29
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/MatnrCode.java
@@ -0,0 +1,40 @@
+package com.zy.asrs.entity;
+
+import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+@Data
+@TableName("man_matnr_code")
+public class MatnrCode implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value= "")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty(value= "")
+ private Integer code;
+
+ @ApiModelProperty(value= "")
+ private String matnr;
+
+ public MatnrCode() {}
+
+ public MatnrCode(Integer code,String matnr) {
+ this.code = code;
+ this.matnr = matnr;
+ }
+
+// MatnrCode matnrCode = new MatnrCode(
+// null, //
+// null //
+// );
+
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java
index a18b5bf..77df910 100644
--- a/src/main/java/com/zy/asrs/entity/WaitPakin.java
+++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -1,8 +1,13 @@
package com.zy.asrs.entity;
import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -16,82 +21,117 @@
private static final long serialVersionUID = 1L;
- /**
- * 鐗╂枡
- */
- @ApiModelProperty(value= "鍟嗗搧缂栧彿")
- private String matnr;
-
- /**
- * 鐗╂枡鎻忚堪
- */
- @ApiModelProperty(value= "鍟嗗搧鍚嶇О")
- private String maktx;
-
-
- /**
- * 浠撳簱鍙�
- */
- @ApiModelProperty(value= "瑙勬牸")
- private String lgnum;
-
- /**
- * 浠撳簱鍙�
- */
- @ApiModelProperty(value= "鍨嬪彿")
- private String type;
-
- /**
- * 浠撳簱鍙�
- */
- @ApiModelProperty(value= "鏉$爜")
- private String color;
-
- /**
- * 浠撳簱鍙�
- */
- @ApiModelProperty(value= "鎵瑰彿")
- private String supplier;
-
- /**
- * 浠撳簱鍙�
- */
- @ApiModelProperty(value= "鍗曟嵁缂栧彿")
- private String warehouse;
-
- /**
- * 浠撳簱鍙�
- */
- @ApiModelProperty(value= "鍝侀」鏁�")
- private String brand;
-
- /**
- * 鏁伴噺
- */
- @ApiModelProperty(value= "鏁伴噺")
- private Double anfme;
-
- /**
- * 鍗曚綅
- */
- @ApiModelProperty(value= "鍗曚綅")
- private String altme;
-
- /**
- * 鎵樼洏鏉$爜
- */
+ @TableId("zpallet")
@ApiModelProperty(value= "鎵樼洏鏉$爜")
private String zpallet;
- /**
- * 鐢ㄦ埛ID
- */
- @ApiModelProperty(value= "瀹㈡埛鍚嶇О")
- private String bname;
+ @ApiModelProperty(value= "鏁伴噺")
+ private Double anfme;
@ApiModelProperty(value= "搴撲綅鍙�")
@TableField("loc_no")
- private Date locNo;
+ private String locNo;
+
+ @TableId("matnr")
+ @ApiModelProperty(value= "鍟嗗搧缂栧彿")
+ private String matnr;
+
+ @ApiModelProperty(value= "鍟嗗搧鍚嶇О")
+ private String maktx;
+
+ @TableId("batch")
+ @ApiModelProperty(value= "鎵瑰彿")
+ private String batch;
+
+ @ApiModelProperty(value= "鍗曟嵁缂栧彿")
+ @TableField("order_no")
+ private String orderNo;
+
+ @ApiModelProperty(value= "瑙勬牸")
+ private String specs;
+
+ @ApiModelProperty(value= "鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty(value= "棰滆壊")
+ private String color;
+
+ @ApiModelProperty(value= "鍝佺墝")
+ private String brand;
+
+ @ApiModelProperty(value= "鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty(value= "鍗曚环")
+ private Double price;
+
+ @ApiModelProperty(value= "sku")
+ private String sku;
+
+ @ApiModelProperty(value= "鍗曚綅閲�")
+ private Double units;
+
+ @ApiModelProperty(value= "鏉$爜")
+ private String barcode;
+
+ @ApiModelProperty(value= "浜у湴")
+ private String origin;
+
+ @ApiModelProperty(value= "鍘傚")
+ private String manu;
+
+ @ApiModelProperty(value= "鐢熶骇鏃ユ湡")
+ @TableField("manu_date")
+ private String manuDate;
+
+ @ApiModelProperty(value= "鍝侀」鏁�")
+ @TableField("item_num")
+ private String itemNum;
+
+ @ApiModelProperty(value= "瀹夊叏搴撳瓨閲�")
+ @TableField("safe_qty")
+ private Double safeQty;
+
+ @ApiModelProperty(value= "閲嶉噺")
+ private Double weight;
+
+ @ApiModelProperty(value= "闀垮害")
+ private Double length;
+
+ @ApiModelProperty(value= "浣撶Н")
+ private Double volume;
+
+ @ApiModelProperty(value= "涓夋柟缂栫爜")
+ @TableField("three_code")
+ private String threeCode;
+
+ @ApiModelProperty(value= "渚涘簲鍟�")
+ private String supp;
+
+ @ApiModelProperty(value= "渚涘簲鍟嗙紪鐮�")
+ @TableField("supp_code")
+ private String suppCode;
+
+ @ApiModelProperty(value= "鏄惁鎵规 1: 鏄� 0: 鍚� ")
+ @TableField("be_batch")
+ private Integer beBatch;
+
+ @ApiModelProperty(value= "淇濊川鏈�")
+ @TableField("dead_time")
+ private String deadTime;
+
+ @ApiModelProperty(value= "棰勮澶╂暟")
+ @TableField("dead_warn")
+ private Integer deadWarn;
+
+ @ApiModelProperty(value= "鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 ")
+ private Integer source;
+
+ @ApiModelProperty(value= "瑕佹眰妫�楠� 1: 鏄� 0: 鍚� ")
+ private Integer inspect;
+
+ @ApiModelProperty(value= "鍗遍櫓鍝� 1: 鏄� 0: 鍚� ")
+ private Integer danger;
@ApiModelProperty(value= "鐘舵��")
private String status;
@@ -100,39 +140,124 @@
@TableField("io_status")
private String ioStatus;
- /**
- * 澶囨敞
- */
- @ApiModelProperty(value= "澶囨敞")
- private String memo;
-
- /**
- * 淇敼鏃堕棿
- */
@ApiModelProperty(value= "淇敼鏃堕棿")
@TableField("modi_time")
private Date modiTime;
- /**
- * 淇敼浜哄憳
- */
@ApiModelProperty(value= "淇敼浜哄憳")
@TableField("modi_user")
private Long modiUser;
- /**
- * 娣诲姞鏃堕棿
- */
@ApiModelProperty(value= "娣诲姞鏃堕棿")
@TableField("appe_time")
private Date appeTime;
- /**
- * 鍒涘缓鑰�
- */
@ApiModelProperty(value= "鍒涘缓鑰�")
@TableField("appe_user")
private Long appeUser;
+
+ @ApiModelProperty(value= "澶囨敞")
+ private String memo;
+
+ /**
+ * 鎷ユ湁鑰�
+ */
+ @ApiModelProperty(value= "鎷ユ湁鑰� 1: 鏉板厠 ")
+ private Integer owner;
+
+ /**
+ * 璐х墿褰㈡��:0锛氫唬閲囥��1锛氫粨鍌�
+ */
+ @ApiModelProperty(value= "璐х墿褰㈡��:0锛氫唬閲囥��1锛氫粨鍌�")
+ private Integer payment;
+
+ /**
+ * uuid鏃堕棿鎴�
+ */
+ @ApiModelProperty(value= "uuid")
+ @TableId(value = "uuid", type = IdType.ID_WORKER_STR)
+ @TableField("uuid")
+ private String uuid;
+
+ public String getUserName$(){
+ 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 getOwner$(){
+// LocOwnerService service = SpringUtils.getBean(LocOwnerService.class);
+// LocOwner locOwner = service.selectById(this.owner);
+// if (!Cools.isEmpty(locOwner)){
+// return String.valueOf(locOwner.getOwner());
+// }
+// return null;
+// }
+
+ public String getPayment$(){
+ if (null == this.payment){ return null; }
+ switch (this.payment){
+ case 1:
+ return "浠撳偍";
+ case 0:
+ return "浠i噰";
+ default:
+ return String.valueOf(this.payment);
+ }
+ }
+
+ public String getBeBatch$(){
+ if (null == this.beBatch){ return null; }
+ switch (this.beBatch){
+ case 1:
+ return "鏄�";
+ case 0:
+ return "鍚�";
+ default:
+ return String.valueOf(this.beBatch);
+ }
+ }
+
+ public String getSource$(){
+ if (null == this.source){ return null; }
+ switch (this.source){
+ case 1:
+ return "鍒堕��";
+ case 2:
+ return "閲囪喘";
+ case 3:
+ return "澶栧崗";
+ default:
+ return String.valueOf(this.source);
+ }
+ }
+
+ public String getInspect$(){
+ if (null == this.inspect){ return null; }
+ switch (this.inspect){
+ case 1:
+ return "鏄�";
+ case 0:
+ return "鍚�";
+ default:
+ return String.valueOf(this.inspect);
+ }
+ }
+
+ public String getDanger$(){
+ if (null == this.danger){ return null; }
+ switch (this.danger){
+ case 1:
+ return "鏄�";
+ case 0:
+ return "鍚�";
+ default:
+ return String.valueOf(this.danger);
+ }
+ }
public String getModiTime$(){
if (Cools.isEmpty(this.modiTime)){
@@ -148,4 +273,7 @@
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
}
+// public void sync(Object source) {
+// Synchro.Copy(source, this);
+// }
}
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastSta.java b/src/main/java/com/zy/asrs/entity/WrkMastSta.java
index 666144e..e9d9ab5 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastSta.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastSta.java
@@ -130,6 +130,26 @@
@ApiModelProperty(value= "")
@TableField("matnr2")
private Integer matnr2;
+
+ @ApiModelProperty(value= "")
+ @TableField("type2")
+ private Integer type2;
+
+ @ApiModelProperty(value= "")
+ @TableField("batch")
+ private String batch;
+
+ @ApiModelProperty(value= "")
+ @TableField("batch2")
+ private String batch2;
+
+ @ApiModelProperty(value= "")
+ @TableField("anfme")
+ private Integer anfme;
+
+ @ApiModelProperty(value= "")
+ @TableField("anfme2")
+ private Integer anfme2;
public WrkMastSta() {}
public WrkMastSta(Long wrkNo,Integer wrkStart,Integer wrkEnd,Integer staStart,Integer staEnd,Date createTime,Date updateTime,Integer type,Integer wrkSts,Integer lineNumber,Integer wrkType,Date bignTime,Integer wrkCrn) {
diff --git a/src/main/java/com/zy/asrs/mapper/MatnrCodeMapper.java b/src/main/java/com/zy/asrs/mapper/MatnrCodeMapper.java
new file mode 100644
index 0000000..8561080
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/MatnrCodeMapper.java
@@ -0,0 +1,13 @@
+package com.zy.asrs.mapper;
+
+import com.zy.asrs.entity.MatnrCode;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface MatnrCodeMapper extends BaseMapper<MatnrCode> {
+
+ MatnrCode selectByCode(Integer code);
+}
diff --git a/src/main/java/com/zy/asrs/service/MatnrCodeService.java b/src/main/java/com/zy/asrs/service/MatnrCodeService.java
new file mode 100644
index 0000000..c7e05b2
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/MatnrCodeService.java
@@ -0,0 +1,9 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.MatnrCode;
+import com.baomidou.mybatisplus.service.IService;
+
+public interface MatnrCodeService extends IService<MatnrCode> {
+
+ MatnrCode selectByCode(Integer code);
+}
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index e0b8f2d..191bbea 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -21,4 +21,5 @@
List<WrkMast> selectLaneWrkMast(Integer lane, Boolean pakIn);//鏌ヨ鎸囧畾宸烽亾浠诲姟
WrkMast selectByworkNo(Short workNo);
+ WrkMast selectByworkNo(Integer workNo);
}
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 d33e81d..c8e653d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -92,6 +92,8 @@
private EmptyBarrelInService emptyBarrelInService;
@Autowired
private WrkMastStaService wrkMastStaService;
+ @Autowired
+ private MatnrCodeService matnrCodeService;
@Value("${wms.url}")
private String wmsUrl;
@@ -545,7 +547,7 @@
}
- if (crnStn.getStaNo() == 1016 || crnStn.getStaNo() == 1019) {
+ if (crnStn.getStaNo() > 1013) {
// 鏇存柊宸ヤ綔妗g姸鎬佷负13.RGV鎼繍涓�
wrkMast.setWrkSts(13L);
}else {
@@ -1328,8 +1330,9 @@
// 绔欑偣鏉′欢鍒ゆ柇
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
- && staProtocol.isEmptyMk() && (staProtocol.getWorkNo() >= 9990
- && staProtocol.getWorkNo() <= 9999) && staProtocol.isPakMk()) {
+ && (staProtocol.isEmptyMk() || staProtocol.getStaNo() == 9999)
+// && (staProtocol.getWorkNo() >= 9990 && staProtocol.getWorkNo() <= 9999)
+ && staProtocol.isPakMk()) {
List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
.eq("sta_no", emptyInSta.getStaNo())
.eq("io_type", 10)
@@ -2489,7 +2492,7 @@
}
}
- public synchronized void RGVTaskPut(){
+ public synchronized void RGVTaskCreate(){
for (RgvSlave rgvSlave:slaveProperties.getRgv()){
ZyRgvThread rgvThread = (ZyRgvThread)SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
@@ -2507,8 +2510,14 @@
short sta1 = 0;
short souSta2 = 0;
short sta2 = 0;
- short matnr = 0;
- short matnr2 = 0;
+ Integer matnr = 0;
+ Integer matnr2 = 0;
+ String batch = "";
+ String batch2 = "";
+ short type = 0;
+ short type2 = 0;
+ short anfme = 0;
+ short anfme2 = 0;
//宸ヤ綅涓�浠诲姟
for (RgvSlave.Sta inStn : rgvSlave.getInStn()){
@@ -2520,78 +2529,57 @@
} else {
staProtocol = staProtocol.clone();
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()){
- if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && staProtocol.getWorkNo()>0){
+
WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo());
if (Cools.isEmpty(wrkMast)){
log.error("鏈壘鍒板伐浣滄。");
continue;
}
workNo1 = wrkMast.getWrkNo();
- souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),wrkMast.getSourceStaNo());
+ souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),staProtocol.getSiteId());
sta1 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo());
work1 = true;
devpThread.setPakMk(inStn.getSourceStaNo(),false);
break;
- }
- workNo1 = workNo++;
- souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo());
- if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 1){
- sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2103);
- } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 2) {
- sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2002);
- }else {
- sta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo());
- }
- work1 = true;
- if (inStn.getSourcePlcId() == 4){
- matnr = staProtocol.getMatnr();
- }
- devpThread.setPakMk(inStn.getSourceStaNo(),false);
- break;
+
}
}
-
- //宸ヤ綅浜屼换鍔�
- for (RgvSlave.Sta inStn : rgvSlave.getInStn()){
- if (souSta1 == inStn.getSourceStaNo()){
- continue;
- }
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId());
- StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo());
- if (staProtocol == null) {
- break;
-// continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()&& staProtocol.isPakMk()){
- if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){
- WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo());
- if (Cools.isEmpty(wrkMast)){
- log.error("鏈壘鍒板伐浣滄。");
- continue;
- }
- workNo2 = wrkMast.getWrkNo();
- souSta2 = inStn.getSourceStaNo().shortValue();
- sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo());
- work2 = true;
- devpThread.setPakMk(inStn.getSourceStaNo(),false);
+ if (rgvSlave.getId() != 3){
+ //宸ヤ綅浜屼换鍔�
+ for (RgvSlave.Sta inStn : rgvSlave.getInStn()){
+ if (souSta1 == inStn.getSourceStaNo()){
+ continue;
+ }
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo());
+ if (staProtocol == null) {
break;
+// continue;
+ } else {
+ staProtocol = staProtocol.clone();
}
- workNo2 = workNo++;
- souSta2 = inStn.getSourceStaNo().shortValue();
- sta2 = inStn.getStaNo().shortValue();
- work2 = true;
- if (inStn.getSourcePlcId() == 4){
- matnr2 = staProtocol.getMatnr();
- }
- devpThread.setPakMk(inStn.getSourceStaNo(),false);
- break;
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()&& staProtocol.isPakMk() && staProtocol.getWorkNo()>0){
+
+ WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo());
+ if (Cools.isEmpty(wrkMast)){
+ log.error("鏈壘鍒板伐浣滄。");
+ continue;
+ }
+ workNo2 = wrkMast.getWrkNo();
+ souSta2 = inStn.getSourceStaNo().shortValue();
+ sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo());
+ work2 = true;
+ devpThread.setPakMk(inStn.getSourceStaNo(),false);
+ break;
+ }
+
+
}
}
+
if (work1 || work2){
//rgv浠诲姟涓嬪彂--------------------------------------------------------------
@@ -2611,6 +2599,13 @@
command.setMatnr(matnr);
command.setMatnr2(matnr2);
+ command.setBatch(batch);
+ command.setBatch2(batch2);
+ command.setAnfme(anfme);
+ command.setAnfme2(anfme2);
+
+ command.setType(type);
+ command.setType2(type2);
if (workNo1 == 0 && workNo2 !=0){
command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 2鍙栨斁璐�
@@ -2636,6 +2631,9 @@
public synchronized void RGVTaskOver() {
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+ if (rgvSlave.getId() ==2){
+ continue;
+ }
ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (Cools.isEmpty(rgvProtocol)){
@@ -2646,12 +2644,84 @@
//宸ヤ綅涓�浠诲姟瀹屾垚
if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) {
+
+ try {
+ Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1());
+ WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
+ if (Cools.isEmpty(wrkMastSta1)){
+ log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+ }else {
+ if (wrkMastSta1.getWrkType() == 8 ){
+ wrkMastSta1.setWrkSts(3);
+ wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+ }
+ }
+
+ }catch (Exception e){
+ log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+ continue;
+ }
+
+
+ MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand()));
+ log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
+ }
+
+ //宸ヤ綅浜屼换鍔″畬鎴�
+ if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded2() == 0) {
+ try {
+ Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo2());
+ WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
+ if (Cools.isEmpty(wrkMastSta1)){
+ log.error("瀹屾垚{}鍙疯溅宸ヤ綅浜屼换鍔℃湭鎵惧埌瀵瑰簲宸ヤ綔浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
+ }else {
+ if (wrkMastSta1.getWrkType() == 9 ){
+ wrkMastSta1.setWrkSts(3);
+ wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+ }else if (wrkMastSta1.getWrkType() == 1){
+ wrkMastSta1.setWrkSts(3);
+ wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+ }
+ }
+ }catch (Exception e){
+ log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+ continue;
+ }
+
+
+
+ MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand()));
+ log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2());
+ }
+ }
+ }
+
+ //浜屽彿rgv杈撻�佺嚎鍛戒护涓嬪彂
+ public synchronized void RGVTaskput() {
+ for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+ if (rgvSlave.getId() ==2){
+ continue;
+ }
+ ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (Cools.isEmpty(rgvProtocol)){
+ continue;
+ }else {
+ rgvProtocol = rgvProtocol.clone();
+ }
+
+ //宸ヤ綅涓�浠诲姟瀹屾垚
+ if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN1 && rgvProtocol.getLoaded1() == 1) {
WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1());
+ WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1());
if (Cools.isEmpty(wrkMastSta)){
log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
continue;
}
for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){
+ if (!Objects.equals(Utils.getStaNo(rgvSlave.getId(), wrkMastSta.getWrkEnd()), outStn.getStaNo())){
+ continue;
+ }
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId());
StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo());
if (staProtocol == null) {
@@ -2659,29 +2729,26 @@
} else {
staProtocol = staProtocol.clone();
}
-
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk()){
+ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isPakMk()){
staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue());
- staProtocol.setStaNo(wrkMastSta.getWrkEnd().shortValue());
- if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) {
- continue;
- }
+ staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol));
}
-
}
-
- MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand()));
- log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),wrkMastSta.getWrkNo());
}
//宸ヤ綅浜屼换鍔″畬鎴�
- if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded1() == 0) {
- WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo2(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
+ if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN8 && rgvProtocol.getLoaded2() == 1) {
+ WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
+ WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo2());
if (Cools.isEmpty(wrkMastSta)){
log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
continue;
}
for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){
+ if (wrkMastSta.getStaEnd() != outStn.getStaNo()){
+ continue;
+ }
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId());
StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo());
if (staProtocol == null) {
@@ -2689,18 +2756,12 @@
} else {
staProtocol = staProtocol.clone();
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk()){
-// staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
-//// staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
-// if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) {
-// continue;
-// }
+ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isPakMk()){
+ staProtocol.setWorkNo(wrkMastSta.getWrkNo2().shortValue());
+ staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol));
}
-
}
-
- MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand()));
- log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),wrkMastSta.getWrkNo2());
}
}
}
@@ -2738,8 +2799,12 @@
if (outStn.getStaPlcId() == 2){
if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isPakMk()){
staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue());
- staProtocol.setStaNo((short) 2106);
- staProtocol.setMatnr(wrkMastSta.getMatnr1().shortValue());
+ if (wrkMastSta.getType() == 1){
+ staProtocol.setStaNo((short) 9999);
+ }else {
+ staProtocol.setStaNo((short) 2106);
+ }
+ staProtocol.setMatnr(wrkMastSta.getMatnr1());
if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) {
continue;
@@ -2751,8 +2816,8 @@
}
//宸ヤ綅浜屼换鍔″畬鎴�
- if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN8 && rgvProtocol.getLoaded1() == 1) {
- WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
+ if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN8 && rgvProtocol.getLoaded2() == 1) {
+ WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo2(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
if (Cools.isEmpty(wrkMastSta)){
log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
continue;
@@ -2768,8 +2833,13 @@
if (outStn.getStaPlcId() == 2){
if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isPakMk()){
staProtocol.setWorkNo(wrkMastSta.getWrkNo2().shortValue());
- staProtocol.setStaNo((short) 2106);
- staProtocol.setMatnr(wrkMastSta.getMatnr2().shortValue());
+ if (wrkMastSta.getType2() == 1){
+ staProtocol.setStaNo((short) 9999);
+ }else {
+ staProtocol.setStaNo((short) 2106);
+ }
+
+ staProtocol.setMatnr(wrkMastSta.getMatnr2());
if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) {
continue;
@@ -2797,12 +2867,50 @@
//宸ヤ綅涓�浠诲姟瀹屾垚
if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) {
+ try {
+ Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1());
+ WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
+ if (Cools.isEmpty(wrkMastSta1)){
+ log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+ }else {
+ if (wrkMastSta1.getWrkType() == 8 ){
+ wrkMastSta1.setWrkSts(3);
+ wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+ }
+ }
+
+ }catch (Exception e){
+ log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+ continue;
+ }
+
+
MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand()));
log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
}
//宸ヤ綅浜屼换鍔″畬鎴�
- if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded1() == 0) {
+ if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded2() == 0) {
+ try {
+ Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo2());
+ WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
+ if (Cools.isEmpty(wrkMastSta1)){
+ log.error("瀹屾垚{}鍙疯溅宸ヤ綅浜屼换鍔℃湭鎵惧埌瀵瑰簲宸ヤ綔浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
+ }else {
+ if (wrkMastSta1.getWrkType() == 9 ){
+ wrkMastSta1.setWrkSts(3);
+ wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+ }else if (wrkMastSta1.getWrkType() == 1){
+ wrkMastSta1.setWrkSts(3);
+ wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper);
+ }
+ }
+
+ }catch (Exception e){
+ log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+ continue;
+ }
+
MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand()));
@@ -2832,7 +2940,185 @@
wrkMastSta.setWrkType(command.getTaskMode().intValue());
wrkMastSta.setMatnr1(command.getMatnr().intValue());
wrkMastSta.setMatnr2(command.getMatnr2().intValue());
+ wrkMastSta.setType(command.getType().intValue());
+ wrkMastSta.setType2(command.getType2().intValue());
+ wrkMastSta.setBatch(command.getBatch());
+ wrkMastSta.setBatch2(command.getBatch2());
+ wrkMastSta.setAnfme(command.getAnfme().intValue());
+ wrkMastSta.setAnfme2(command.getAnfme2().intValue());
return wrkMastStaService.insert(wrkMastSta);
}
+ //浜屾湡缁勬墭
+ public synchronized void generateStoreWrkFile2() {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ if (devp.getId() != 2){
+ continue;
+ }
+ // 閬嶅巻鍏ュ簱鍙�
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+ // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+ if (barcodeThread == null) {
+ continue;
+ }
+ String barcode = barcodeThread.getBarcode();
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ 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 (!Cools.isEmpty(barcode)) {
+ log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+ if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ continue;
+ }
+ } else {
+ // led 寮傚父鏄剧ず
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+// if (ledThread != null) {
+// String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
+// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+// }
+ continue;
+ }
+ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+ if (staProtocol.isAutoing()
+ && staProtocol.isLoading()
+ && staProtocol.isInEnable()
+ && !staProtocol.isEmptyMk()
+ && staProtocol.getStaNo() != 9999
+ && staProtocol.isPakMk()) {
+
+ if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+ //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ if (ledThread != null) {
+ String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+ }
+ continue;
+ }
+
+ // 鍒ゆ柇閲嶅宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ if (barcode.length() == 8) {
+ wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
+ if (wrkMast != null) {
+ log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+ continue;
+ }
+ }
+// 鑾峰彇鍏ュ簱閫氱煡妗�
+ List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
+ if (waitPakins.isEmpty()) {
+ try {
+ CreateComb(barcode,staProtocol.getMatnr().intValue(),staProtocol.getWorkNo().intValue());
+ }catch (IOException e) {
+ throw new CoolException(e);
+ }
+ }else {
+ 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()
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/loc/v1")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ if (jsonObject.getInteger("code").equals(200)) {
+ StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+
+ barcodeThread.setBarcode("");
+ staProtocol.setWorkNo(dto.getWorkNo().shortValue());
+ staProtocol.setStaNo(dto.getStaNo().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ ledThread.errorReset();
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ }
+ } else if(jsonObject.getInteger("code").equals(700)) {
+ log.error(barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒");
+ // led 寮傚父鏄剧ず
+ ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ if (ledThread != null) {
+ String errorMsg = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒";
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+ }
+ } else {
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+
+
+ }
+
+ }
+ }
+
+ }
+
+ public void CreateComb(String barcode,Integer code,Integer wrkNo) throws IOException {
+ String batch = "";
+ Double anfme = 0D;
+
+ WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkNo));
+ if (Cools.isEmpty(wrkMastSta)){
+ wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no2", wrkNo));
+ if (Cools.isEmpty(wrkMastSta)){
+ throw new CoolException("鏈壘鍒板搴旂殑浠诲姟淇℃伅");
+ }
+ batch = wrkMastSta.getBatch2();
+ anfme = wrkMastSta.getAnfme2().doubleValue();
+ code = wrkMastSta.getMatnr2();
+ }else {
+ batch = wrkMastSta.getBatch();
+ anfme = wrkMastSta.getAnfme().doubleValue();
+ code = wrkMastSta.getMatnr1();
+ }
+ MatnrCode matnrCode = matnrCodeService.selectByCode(code);
+ if (Cools.isEmpty(matnrCode)){
+ throw new CoolException("鏈壘鍒板搴旂殑鐗╂枡淇℃伅");
+ }
+ CombParam combParam = new CombParam();
+ ArrayList<CombParam.CombMat> combMats = new ArrayList<>();
+ CombParam.CombMat combMat = new CombParam.CombMat();
+ combParam.setBarcode(barcode);
+ combMat.setMatnr(matnrCode.getMatnr());
+ combMat.setBatch(batch);
+ combMat.setAnfme(anfme);
+
+ combMats.add(combMat);
+ combParam.setCombMats(combMats);
+
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/mobile/comb/auth")
+ .setJson(JSON.toJSONString(combParam))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MatnrCodeServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MatnrCodeServiceImpl.java
new file mode 100644
index 0000000..2e0a67b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/MatnrCodeServiceImpl.java
@@ -0,0 +1,16 @@
+package com.zy.asrs.service.impl;
+
+import com.zy.asrs.mapper.MatnrCodeMapper;
+import com.zy.asrs.entity.MatnrCode;
+import com.zy.asrs.service.MatnrCodeService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("matnrCodeService")
+public class MatnrCodeServiceImpl extends ServiceImpl<MatnrCodeMapper, MatnrCode> implements MatnrCodeService {
+
+ @Override
+ public MatnrCode selectByCode(Integer code) {
+ return this.baseMapper.selectByCode(code);
+ }
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index 0791e9b..d0352f3 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -67,4 +67,8 @@
public WrkMast selectByworkNo(Short workNo) {
return this.baseMapper.selectByWrkNo(Integer.valueOf(workNo));
}
+ @Override
+ public WrkMast selectByworkNo(Integer workNo) {
+ return this.baseMapper.selectByWrkNo(workNo);
+ }
}
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index a41eae0..3ea9a06 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -9,6 +9,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2020/8/27
@@ -19,13 +20,18 @@
public static short getRgvStaNo(Integer rgvNo,Integer staNo){
Map<Integer, Short> rgv1Map = new HashMap<>();
+ rgv1Map.put(1014,(short)1);rgv1Map.put(1020,(short)2);
+ rgv1Map.put(1023,(short)3);rgv1Map.put(1017,(short)4);
+ rgv1Map.put(2013,(short)5);rgv1Map.put(2401,(short)6);
+ rgv1Map.put(2114,(short)7);
Map<Integer, Short> rgv2Map = new HashMap<>();
rgv2Map.put(4007, (short) 1);rgv2Map.put(4001, (short) 2);
rgv2Map.put(2003, (short) 3);rgv2Map.put(2103, (short) 4);
- rgv2Map.put(4016, (short) 5);rgv2Map.put(4010, (short) 6);
- rgv2Map.put(2301, (short) 7);rgv2Map.put(2002, (short) 8);
- rgv2Map.put(2001, (short) 9);
+ rgv2Map.put(4016, (short) 6);rgv2Map.put(4010, (short) 7);
+ rgv2Map.put(2301, (short) 5);rgv2Map.put(2002, (short) 8);
+ rgv2Map.put(2102, (short) 9);
Map<Integer, Short> rgv3Map = new HashMap<>();
+ rgv3Map.put(2402,(short)1);rgv3Map.put(3001,(short)2);
switch (rgvNo){
case 1:
return rgv1Map.get(staNo);
@@ -37,12 +43,45 @@
return 0;
}
+ public static Integer getStaNo(Integer rgvNo,Integer staNo){
+ Map<Integer, Short> rgv1Map = new HashMap<>();
+ rgv1Map.put(1014,(short)1);rgv1Map.put(1020,(short)2);
+ rgv1Map.put(1023,(short)3);rgv1Map.put(1017,(short)4);
+ rgv1Map.put(2013,(short)5);rgv1Map.put(2401,(short)6);
+ rgv1Map.put(2114,(short)7);
+ Map<Integer, Short> rgv2Map = new HashMap<>();
+ rgv2Map.put(4007, (short) 1);rgv2Map.put(4001, (short) 2);
+ rgv2Map.put(2003, (short) 3);rgv2Map.put(2103, (short) 4);
+ rgv2Map.put(4016, (short) 6);rgv2Map.put(4010, (short) 7);
+ rgv2Map.put(2301, (short) 5);rgv2Map.put(2002, (short) 8);
+ rgv2Map.put(2102, (short) 9);
+ Map<Integer, Short> rgv3Map = new HashMap<>();
+ rgv3Map.put(2402,(short)1);rgv3Map.put(3001,(short)2);
+ rgv1Map.entrySet().stream().collect(Collectors.toMap(entity ->entity.getValue(),entity-> entity.getKey())).get(staNo);
+ switch (rgvNo){
+ case 1:
+ return rgv1Map.entrySet().stream().collect(Collectors.toMap(entity ->entity.getValue(),entity-> entity.getKey())).get(staNo.shortValue());
+ case 2:
+ return rgv2Map.entrySet().stream().collect(Collectors.toMap(entity ->entity.getValue(),entity-> entity.getKey())).get(staNo.shortValue());
+ case 3:
+ return rgv3Map.entrySet().stream().collect(Collectors.toMap(entity ->entity.getValue(),entity-> entity.getKey())).get(staNo.shortValue());
+ }
+ return 0;
+ }
+
public static short getRgvEndStaNo(Integer rgvNo,Integer staNo){
Map<Integer, Integer> rgv1Map = new HashMap<>();
+ rgv1Map.put(3007,2401);rgv1Map.put(3012,2401);
+ rgv1Map.put(4002,2013); rgv1Map.put(4011,2013);
+ rgv1Map.put(2101,2013);rgv1Map.put(2001,2013);
+ rgv1Map.put(1022,1020);rgv1Map.put(1025,1023);
Map<Integer, Integer> rgv2Map = new HashMap<>();
rgv2Map.put(4002,4001); rgv2Map.put(4011,4010);
- rgv2Map.put(2101,2102);
+ rgv2Map.put(2101,2102);rgv2Map.put(2001,2002);
Map<Integer, Integer> rgv3Map = new HashMap<>();
+ rgv3Map.put(3007,3001);rgv3Map.put(3012,3001);
+ rgv3Map.put(1022,2402);rgv3Map.put(1025,2402);
+ rgv3Map.put(1016,2402);rgv3Map.put(1019,2402);
switch (rgvNo){
case 1:
return getRgvStaNo(rgvNo,rgv1Map.get(staNo));
diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java
index a172bd3..151c29d 100644
--- a/src/main/java/com/zy/common/CodeBuilder.java
+++ b/src/main/java/com/zy/common/CodeBuilder.java
@@ -20,7 +20,7 @@
generator.url="127.0.0.1:1433;databasename=mdqdasrs";
generator.username="sa";
generator.password="sa@123";
- generator.table="man_emptyBarrel_in";
+ generator.table="man_matnr_code";
generator.packagePath="com.zy.asrs";
generator.html = false;
generator.htmlDetail = false;
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index d75b130..ea253b2 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -74,12 +74,16 @@
// //绌烘《鍑哄簱瀹屾垚
// mainService.crn5StnToOutStn();
//rgv浠诲姟
- mainService.RGVTaskPut();
+ mainService.RGVTaskCreate();
//rgv1,3浠诲姟瀹屾垚
+ mainService.RGVTaskput();
mainService.RGVTaskOver();
+
//rgv2浠诲姟瀹屾垚
mainService.RGV2Taskput();
mainService.RGV2TaskOver();
+ //浜屾湡缁勬墭
+ mainService.generateStoreWrkFile2();
} catch (Exception e) {
diff --git a/src/main/java/com/zy/core/enums/RgvStatusType.java b/src/main/java/com/zy/core/enums/RgvStatusType.java
index 6159b49..26c5663 100644
--- a/src/main/java/com/zy/core/enums/RgvStatusType.java
+++ b/src/main/java/com/zy/core/enums/RgvStatusType.java
@@ -14,9 +14,13 @@
OUTSTN1((short)5,"宸ヤ綔浣�1璇锋眰鍑虹珯"),
OUTSTN8((short)6,"宸ヤ綔浣�2璇锋眰鍑虹珯"),
- WALKING((short) 9, "璧拌涓�"),
+
+ WALKING((short) 7, "鏀捐揣涓�"),
+ WALKING2((short) 8, "绛夊緟璐т綅2浠诲姟鎵ц"),
WAITING((short) 90, "宸ヤ綅涓�浠诲姟瀹屾垚绛夊緟WCS纭"),
WAITING2((short) 91, "宸ヤ綅浜屼换鍔″畬鎴愮瓑寰匴CS纭"),
+
+ WAITING3((short)98,"鑱旀満浠诲姟涓柇"),
ALARM((short) 99, "鎶ヨ"),
OTHER((short) 100, "鍏朵粬"),
;
diff --git a/src/main/java/com/zy/core/model/command/RgvCommand.java b/src/main/java/com/zy/core/model/command/RgvCommand.java
index ec5ea94..020142b 100644
--- a/src/main/java/com/zy/core/model/command/RgvCommand.java
+++ b/src/main/java/com/zy/core/model/command/RgvCommand.java
@@ -53,9 +53,19 @@
@JSONField(serialize = false)
private RgvTaskModeType taskModeType;
- private Short matnr;
+ private Integer matnr;
- private Short matnr2;
+ private Integer matnr2;
+
+ private Short type;
+ private Short type2;
+
+ private String batch;
+ private String batch2;
+
+ private Short anfme;
+ private Short anfme2;
+
//**************宸ヤ綅2**************
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index dc03705..42518f9 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -23,7 +23,8 @@
// ----------------------------------------------------------------
// 鐗╂枡浠g爜
- private Short matnr;
+ private Integer matnr;
+ private String batch;
// ----------------------------------------------------------------
// 鑷姩
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 85db633..287bcb4 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -67,11 +67,17 @@
}};
public static final ArrayList<Integer> staNos5 = new ArrayList<Integer>() {{
- add(4001);add(4002);add(4003);add(4004);add(4005);add(4006);add(4007);
+ add(4016);
}};
public static final ArrayList<Integer> staNos6 = new ArrayList<Integer>() {{
- add(4010);add(4011);add(4012);add(4013);add(4014);add(4015);add(4016);
+ add(2007);add(2008);add(2009);add(2010);add(2011);add(2012);add(2013);
+ add(2108);add(2109);add(2110);add(2111);add(2112);add(2113);add(2114);
+ add(2401);add(2402);add(2403);
+ }};
+ public static final ArrayList<Integer> staNos7 = new ArrayList<Integer>() {{
+ add(3001);add(3002);add(3003);add(3004);add(3005);add(3006);add(3007);
+ add(3008);add(3009);add(3010);add(3011);add(3012);
}};
@@ -94,17 +100,21 @@
}};
public static final ArrayList<Integer> writeStaNos4 = new ArrayList<Integer>() {{
- add(3001);
- add(3007);
- add(3012);
+ add(4007);
}};
public static final ArrayList<Integer> writeStaNos5 = new ArrayList<Integer>() {{
- add(4001);add(4007);
+ add(4016);
}};
public static final ArrayList<Integer> writeStaNos6 = new ArrayList<Integer>() {{
- add(4010);add(4016);
+ add(2007);add(2008);add(2009);add(2010);add(2011);add(2012);add(2013);
+ add(2108);add(2109);add(2110);add(2111);add(2112);add(2113);add(2114);
+ add(2401);add(2402);add(2403);
+ }};
+ public static final ArrayList<Integer> writeStaNos7 = new ArrayList<Integer>() {{
+ add(3001);add(3002);add(3003);add(3004);add(3005);add(3006);add(3007);
+ add(3008);add(3009);add(3010);add(3011);add(3012);
}};
public static final ArrayList<Integer> errorStaNos1 = new ArrayList<Integer>() {{
@@ -117,6 +127,10 @@
public static final ArrayList<Integer> errorStaNos4 = new ArrayList<Integer>() {{
add(3007);add(3012);
+ }};
+
+ public static final ArrayList<Integer> errorStaNos7 = new ArrayList<Integer>() {{
+ add(3006);add(3007);
}};
/**
@@ -152,6 +166,8 @@
return staNos5;
case 6:
return staNos6;
+ case 7:
+ return staNos7;
default:
throw new CoolException("鑾峰彇绔欑偣澶辫触锛�");
}
@@ -171,6 +187,8 @@
return writeStaNos5;
case 6:
return writeStaNos6;
+ case 7:
+ return writeStaNos7;
default:
throw new CoolException("鑾峰彇绔欑偣澶辫触锛�");
}
@@ -184,6 +202,8 @@
return errorStaNos2;
case 4:
return errorStaNos4;
+ case 7:
+ return errorStaNos7;
default:
throw new CoolException("鑾峰彇绔欑偣澶辫触锛�");
}
@@ -205,6 +225,8 @@
case 1:
switch (slave.getId()){
case 1:
+ case 6:
+ case 7:
read();break;
case 2:
read10();break;
@@ -212,6 +234,8 @@
read30();break;
case 4:
read33();break;
+ case 5:
+ read55();break;
}
break;
@@ -220,7 +244,9 @@
switch (slave.getId()){
case 1:
case 3:
- write((StaProtocol)task.getData());
+ case 6:
+ case 7:
+ write((StaProtocol)task.getData());break;
case 2:
write10((StaProtocol)task.getData());break;
@@ -319,25 +345,62 @@
}
}
}
+ } else if (slave.getId() == 7) {
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> result2 = null;
+ result2 = siemensS7Net.Read("DB101.104.0", (short) (barcodeSize * 8));
+ if (result2.IsSuccess) {
+ for (int i = 0; i < barcodeSize; i++) {
+ String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 4);
+ if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+ barcodeThread.setBarcode(barcode);
+ }
+ }
+ }
}
- //鎶ヨ淇℃伅
- Thread.sleep(200);
- OperateResultExOne<byte[]> result3 = null;
- result3 = siemensS7Net.Read("DB101.200.0", (short) (getErrorStaNo().size() * 4));
- if (result3.IsSuccess) {
- for (int i = 0; i < getErrorStaNo().size(); i++) {
- Integer siteId = getErrorStaNo().get(i); // 绔欑偣缂栧彿
- StaProtocol staProtocol = station.get(siteId);
+ if (slave.getId() ==1){
+ //鎶ヨ淇℃伅
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> result3 = null;
+ result3 = siemensS7Net.Read("DB101.200.0", (short) (getErrorStaNo().size() * 4));
+ if (result3.IsSuccess) {
+ for (int i = 0; i < getErrorStaNo().size(); i++) {
+ Integer siteId = getErrorStaNo().get(i); // 绔欑偣缂栧彿
+ StaProtocol staProtocol = station.get(siteId);
// staProtocol.setLocType1(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4)); // 搴撲綅楂樺害
- boolean[] status = siemensS7Net.getByteTransform().TransBool(result3.Content, i*4+2, 1);
- 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]);
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result3.Content, i*4+2, 1);
+ 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]);
+ }
+
+ }
+ } else if (slave.getId() == 7) {
+ //鎶ヨ淇℃伅
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> result3 = null;
+ result3 = siemensS7Net.Read("DB101.96.0", (short) (getErrorStaNo().size() * 4));
+ if (result3.IsSuccess) {
+ for (int i = 0; i < getErrorStaNo().size(); i++) {
+ Integer siteId = getErrorStaNo().get(i); // 绔欑偣缂栧彿
+ StaProtocol staProtocol = station.get(siteId);
+// staProtocol.setLocType1(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4)); // 搴撲綅楂樺害
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result3.Content, i*4+2, 1);
+ 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]);
+ }
+
}
}
@@ -384,7 +447,7 @@
}
staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 10)); // 宸ヤ綔鍙�
staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*10 + 4 )); // 鐩爣绔�
- staProtocol.setMatnr(siemensS7Net.getByteTransform().TransInt16(result.Content, i*10 + 6 )); // 鐩爣绔�
+ staProtocol.setMatnr((int) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 10 + 6)); // 鐩爣绔�
}
}
Thread.sleep(200);
@@ -413,14 +476,14 @@
}
// 鏉$爜鎵弿鍣�
- if(slave.getId() == 1) {
+ if(slave.getId() == 2) {
Thread.sleep(200);
OperateResultExOne<byte[]> result2 = null;
- result2 = siemensS7Net.Read("DB101.208.0", (short) (barcodeSize * 8));
+ result2 = siemensS7Net.Read("DB101.194.0", (short) (8));
if (result2.IsSuccess) {
- for (int i = 0; i < barcodeSize; i++) {
+ for (int i = 0; i < 1; i++) {
String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 3);
if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
barcodeThread.setBarcode(barcode);
}
@@ -523,13 +586,15 @@
int staNoSize = staNos.size();
OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size() * 8));
- result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size()*6));
+ result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size()*30));
if (result.IsSuccess) {
for (int i = 0; i < staNoSize; i++) {
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*4, 1);
short tongType = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 2);
- short matnr = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 4);
+ Integer matnr = siemensS7Net.getByteTransform().TransInt32(result.Content, i * 4 + 4);
+ short amount = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 8);
+ String batch = siemensS7Net.getByteTransform().TransString(result.Content, i * 4+10, 20, "UTF-8");
StaProtocol staProtocol = station.get(siteId);
if (null == staProtocol) {
staProtocol = new StaProtocol();
@@ -539,8 +604,76 @@
staProtocol.setAutoing(status[0]); // 鑷姩
staProtocol.setLoading(status[1]); // 鏈夌墿
staProtocol.setInEnable(status[2]); // 鍙叆
+ staProtocol.setEmptyOutPalletRequire(status[3]);
staProtocol.setMatnr(matnr);
staProtocol.setTongType(tongType);
+ staProtocol.setBatch(batch);
+ staProtocol.setAmount(amount);
+ staProtocol.setLow(true);
+
+
+
+ if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+ staProtocol.setPakMk(true);
+ }
+ }
+ }
+
+ if (result.IsSuccess) {
+
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+
+ // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+ try {
+ List<BasDevp> basDevps = new ArrayList<>();
+ for (Integer siteId : staNos) {
+ StaProtocol staProtocol = station.get(siteId);
+ basDevps.add(staProtocol.toSqlModel());
+ }
+
+ BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+ if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
+ throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
+ }
+ } catch (Exception e) {
+ 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()));
+ log.error("鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ }
+
+ } 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()));
+// log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ }
+ }
+
+ private void read55() throws InterruptedException {
+ ArrayList<Integer> staNos = getStaNo();
+ int staNoSize = staNos.size();
+ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size() * 8));
+
+ result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size()*28));
+ if (result.IsSuccess) {
+ for (int i = 0; i < staNoSize; i++) {
+ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*4, 1);
+// short tongType = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 2);
+ Integer matnr = siemensS7Net.getByteTransform().TransInt32(result.Content, i * 4 + 2);
+ short amount = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 6);
+ String batch = siemensS7Net.getByteTransform().TransString(result.Content, i * 4+8, 20, "UTF-8");
+ StaProtocol staProtocol = station.get(siteId);
+ if (null == staProtocol) {
+ staProtocol = new StaProtocol();
+ staProtocol.setSiteId(siteId);
+ station.put(siteId, staProtocol);
+ }
+ staProtocol.setAutoing(status[0]); // 鑷姩
+ staProtocol.setLoading(status[1]); // 鏈夌墿
+ staProtocol.setInEnable(status[2]); // 鍙叆
+ staProtocol.setEmptyOutPalletRequire(status[3]);
+ staProtocol.setMatnr(matnr);
+ staProtocol.setAmount(amount);
+ staProtocol.setBatch(batch);
staProtocol.setLow(true);
diff --git a/src/main/java/com/zy/core/thread/ZyRgvThread.java b/src/main/java/com/zy/core/thread/ZyRgvThread.java
index 5df1199..10186fa 100644
--- a/src/main/java/com/zy/core/thread/ZyRgvThread.java
+++ b/src/main/java/com/zy/core/thread/ZyRgvThread.java
@@ -108,7 +108,7 @@
*/
private void readStatus(){
try {
- OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 34);
+ OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 38);
if (result.IsSuccess) {
if (null == rgvProtocol) {
rgvProtocol = new RgvProtocol();
@@ -126,6 +126,7 @@
rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 24));//澶囩敤2
rgvProtocol.setxDistance(siemensNet.getByteTransform().TransSingle(result.Content, 28));//澶囩敤3
rgvProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 32));//澶囩敤4
+ rgvProtocol.setLoaded2(siemensNet.getByteTransform().TransInt16(result.Content, 36));//宸ヤ綅1鏈夌墿
OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index fd78601..47fb6bf 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -147,7 +147,7 @@
# 杈撻�佺嚎1
devp[0]:
id: 1
- ip: 10.10.10.1
+ ip: 10.10.10.111
port: 102
rack: 0
slot: 0
@@ -225,6 +225,16 @@
port: 102
rack: 0
slot: 0
+ # 鍏ュ簱鍙�1
+ inSta[0]:
+ staNo: 2106
+ barcode: ${wcs-slave.barcode[2].id}
+ backSta: 2105
+ led: ${wcs-slave.led[0].id}
+ # 绌烘澘鍏ュ簱鍙�1
+ emptyInSta[0]:
+ staNo: 2106
+ led: ${wcs-slave.led[0].id}
# 杈撻�佺嚎3
devp[2]:
id: 3
@@ -239,13 +249,40 @@
port: 102
rack: 0
slot: 0
-# # 杈撻�佺嚎5
-# devp[4]:
-# id: 5
-# ip: 10.10.10.33
-# port: 102
-# rack: 0
-# slot: 0
+ # 杈撻�佺嚎5
+ devp[4]:
+ id: 5
+ ip: 10.10.10.55
+ port: 102
+ rack: 0
+ slot: 0
+ # 杈撻�佺嚎5
+ devp[5]:
+ id: 6
+ ip: 10.10.10.14
+ port: 102
+ rack: 0
+ slot: 0
+ # 杈撻�佺嚎5
+ devp[6]:
+ id: 7
+ ip: 10.10.10.20
+ port: 102
+ rack: 0
+ slot: 0
+ # 鍏ュ簱鍙�1
+ inSta[0]:
+ staNo: 3006
+ barcode: ${wcs-slave.barcode[3].id}
+ backSta: 3007
+ led: ${wcs-slave.led[0].id}
+ # 鍏ュ簱鍙�1
+ inSta[1]:
+ staNo: 3011
+ barcode: ${wcs-slave.barcode[4].id}
+ backSta: 3012
+ led: ${wcs-slave.led[0].id}
+
# # RGV1
rgv[0]:
id: 2
@@ -260,43 +297,51 @@
staPlcId: 2
inStn[1]:
sourceStaNo: 2003
- sourcePlcId: 4
-
+ sourcePlcId: 2
+ inStn[2]:
+ sourceStaNo: 2102
+ sourcePlcId: 2
+ staNo: 2103
+ staPlcId: 2
+ inStn[3]:
+ sourceStaNo: 4016
+ sourcePlcId: 5
+ staNo: 2103
+ staPlcId: 2
outStn[0]:
staNo: 2103
staPlcId: 2
-# # RGV2
-# rgv[1]:
-# id: 2
-# ip: 10.10.10.121
-# port: 102
-# rack: 0
-# slot: 0
-# inStn[0]:
-# devpPlcId: ${wcs-slave.devp[0].id}
-# sourceStaNo: 3001
-# outStn[0]:
-# devpPlcId: ${wcs-slave.devp[0].id}
-# sourceStaNo: 2402
-# # RGV1
-# rgv[2]:
-# id: 3
-# ip: 10.10.10.122
-# port: 102
-# rack: 0
-# slot: 0
-# inStn[0]:
-# devpPlcId: ${wcs-slave.devp[0].id}
-# sourceStaNo: 2102
-# inStn[1]:
-# devpPlcId: ${wcs-slave.devp[0].id}
-# sourceStaNo: 4007
-# inStn[2]:
-# devpPlcId: ${wcs-slave.devp[0].id}
-# sourceStaNo: 4016
-# outStn[0]:
-# devpPlcId: ${wcs-slave.devp[0].id}
-# sourceStaNo: 2003
+ # RGV2
+ rgv[1]:
+ id: 1
+ ip: 10.10.10.133
+ port: 102
+ rack: 0
+ slot: 0
+ # RGV1
+ rgv[2]:
+ id: 3
+ ip: 10.10.10.135
+ port: 102
+ rack: 0
+ slot: 0
+ inStn[0]:
+ sourceStaNo: 2402
+ sourcePlcId: 6
+ staNo: 3001
+ staPlcId: 7
+ inStn[1]:
+ sourceStaNo: 3001
+ sourcePlcId: 7
+ staNo: 2402
+ staPlcId: 6
+ outStn[0]:
+ staNo: 2402
+ staPlcId: 6
+ outStn[1]:
+ staNo: 3001
+ staPlcId: 7
+
# 鏉$爜鎵弿浠�1
barcode[0]:
@@ -318,6 +363,11 @@
id: 4
ip: 10.10.10.3
port: 51236
+ # 鏉$爜鎵弿浠�4
+ barcode[4]:
+ id: 5
+ ip: 10.10.10.3
+ port: 51236
# LED1
led[0]:
diff --git a/src/main/resources/mapper/MatnrCodeMapper.xml b/src/main/resources/mapper/MatnrCodeMapper.xml
new file mode 100644
index 0000000..5ad5a34
--- /dev/null
+++ b/src/main/resources/mapper/MatnrCodeMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.MatnrCodeMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.MatnrCode">
+ <id column="id" property="id" />
+ <result column="code" property="code" />
+ <result column="matnr" property="matnr" />
+
+ </resultMap>
+ <select id="selectByCode" resultMap="BaseResultMap">
+ select * from man_matnr_code
+ where code = #{code}
+ </select>
+
+</mapper>
diff --git a/src/main/resources/mapper/WaitPakinMapper.xml b/src/main/resources/mapper/WaitPakinMapper.xml
index 4615185..d666504 100644
--- a/src/main/resources/mapper/WaitPakinMapper.xml
+++ b/src/main/resources/mapper/WaitPakinMapper.xml
@@ -4,27 +4,52 @@
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.zy.asrs.entity.WaitPakin">
+ <result column="zpallet" property="zpallet" />
+ <result column="loc_no" property="locNo" />
+ <result column="anfme" property="anfme" />
<result column="matnr" property="matnr" />
<result column="maktx" property="maktx" />
- <result column="lgnum" property="lgnum" />
- <result column="type" property="type" />
+ <result column="batch" property="batch" />
+ <result column="order_no" property="orderNo" />
+
+ <result column="specs" property="specs" />
+ <result column="model" property="model" />
<result column="color" property="color" />
- <result column="supplier" property="supplier" />
- <result column="warehouse" property="warehouse" />
<result column="brand" property="brand" />
- <result column="anfme" property="anfme" />
- <result column="altme" property="altme" />
- <result column="zpallet" property="zpallet" />
- <result column="bname" property="bname" />
- <result column="loc_no" property="locNo" />
+ <result column="unit" property="unit" />
+ <result column="price" property="price" />
+ <result column="sku" property="sku" />
+ <result column="units" property="units" />
+ <result column="barcode" property="barcode" />
+ <result column="origin" property="origin" />
+ <result column="manu" property="manu" />
+ <result column="manu_date" property="manuDate" />
+ <result column="item_num" property="itemNum" />
+ <result column="safe_qty" property="safeQty" />
+ <result column="weight" property="weight" />
+ <result column="length" property="length" />
+ <result column="volume" property="volume" />
+ <result column="three_code" property="threeCode" />
+ <result column="supp" property="supp" />
+ <result column="supp_code" property="suppCode" />
+ <result column="be_batch" property="beBatch" />
+ <result column="dead_time" property="deadTime" />
+ <result column="dead_warn" property="deadWarn" />
+ <result column="source" property="source" />
+ <result column="inspect" property="inspect" />
+ <result column="danger" property="danger" />
+
<result column="status" property="status" />
<result column="io_status" property="ioStatus" />
- <result column="memo" property="memo" />
+
<result column="modi_time" property="modiTime" />
<result column="modi_user" property="modiUser" />
<result column="appe_time" property="appeTime" />
<result column="appe_user" property="appeUser" />
-
+ <result column="memo" property="memo" />
+ <result column="owner" property="owner" />
+ <result column="payment" property="payment" />
+ <result column="uuid" property="uuid" />
</resultMap>
</mapper>
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index cd06b5a..13479b9 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -205,7 +205,7 @@
</select>
<select id="selectByWrkNo" resultMap="BaseResultMap">
- select top 1 * from dbo.asr_wrk_mast where wrk_no = #{wrkNo} order by io_pri desc,io_time,wrk_no asc
+ select top 1 * from dbo.asr_wrk_mast where wrk_no = #{wrkNo} and (wrk_sts = 13 or wrk_sts = 2) order by io_pri desc,io_time,wrk_no asc
</select>
<select id="selectCrn5Task2" resultMap="BaseResultMap">
select * from dbo.asr_wrk_mast where wrk_sts=1 and io_type=1 and crn_no=5 order by io_pri desc,io_time,wrk_no ASC
diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml
index 1a5a379..8027a6b 100644
--- a/src/main/resources/mapper/WrkMastStaMapper.xml
+++ b/src/main/resources/mapper/WrkMastStaMapper.xml
@@ -21,6 +21,11 @@
<result column="wrk_no2" property="wrkNo2"/>
<result column="matnr1" property="matnr1"/>
<result column="matnr2" property="matnr2"/>
+ <result column="type2" property="type2"/>
+ <result column="batch" property="batch"/>
+ <result column="batch2" property="batch2"/>
+ <result column="anfme" property="anfme"/>
+ <result column="anfme2" property="anfme2"/>
</resultMap>
<select id="selectByRgvNoandWrkNo" resultMap="BaseResultMap">
--
Gitblit v1.9.1