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