From 012c7432e6a18aac67c0888309aa42d0fa4a862a Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期三, 05 六月 2024 10:47:15 +0800 Subject: [PATCH] #双工位拆分 --- src/main/java/com/zy/asrs/service/BasJarMastStatusService.java | 8 src/main/resources/mapper/WrkMastSplitTwinMapper.xml | 29 + src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 615 ++++++++++++++++++++------ src/main/resources/mapper/BasJarMastMapper.xml | 26 + src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java | 12 src/main/java/com/zy/asrs/service/BasJarMastService.java | 8 src/main/java/com/zy/asrs/service/WrkMastSplitTwinService.java | 8 src/main/java/com/zy/common/CodeBuilder.java | 4 src/main/java/com/zy/asrs/entity/BasJarMastStatus.java | 49 ++ src/main/java/com/zy/asrs/mapper/BasJarMastStatusMapper.java | 12 src/main/java/com/zy/core/enums/CrnTaskModeType.java | 2 src/main/java/com/zy/asrs/mapper/WrkMastSplitTwinMapper.java | 12 src/main/resources/mapper/BasJarMastStatusMapper.xml | 13 src/main/java/com/zy/asrs/entity/WrkMastSplitTwin.java | 276 ++++++++++++ src/main/java/com/zy/asrs/service/impl/WrkMastSplitTwinServiceImpl.java | 12 src/main/java/com/zy/asrs/entity/BasJarMast.java | 211 +++++++++ src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java | 12 src/main/java/com/zy/asrs/service/impl/BasJarMastStatusServiceImpl.java | 12 18 files changed, 1,175 insertions(+), 146 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/BasJarMast.java b/src/main/java/com/zy/asrs/entity/BasJarMast.java new file mode 100644 index 0000000..0780b72 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/BasJarMast.java @@ -0,0 +1,211 @@ +package com.zy.asrs.entity; + +import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.enums.IdType; +import com.baomidou.mybatisplus.annotations.TableField; +import com.core.common.SpringUtils; +import com.zy.asrs.service.BasJarMastStatusService; +import com.zy.asrs.entity.BasJarMastStatus; +import java.text.SimpleDateFormat; +import java.util.Date; +import org.springframework.format.annotation.DateTimeFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.text.SimpleDateFormat; +import java.util.Date; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +@Data +@TableName("asr_bas_jar_mast") +public class BasJarMast implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @ApiModelProperty(value= "ID") + private Long id; + + /** + * 宸ヤ綔鍙� + */ + @ApiModelProperty(value= "宸ヤ綔鍙�") + @TableId(value = "wrk_no", type = IdType.INPUT) + @TableField("wrk_no") + private Long wrkNo; + + /** + * 鍏ュ簱婧愮珯鐐� + */ + @ApiModelProperty(value= "鍏ュ簱婧愮珯鐐�") + @TableField("enter_sta_no") + private Integer enterStaNo; + + /** + * 鍏ュ簱鐩爣绔欑偣 + */ + @ApiModelProperty(value= "鍏ュ簱鐩爣绔欑偣") + @TableField("out_sta_no") + private Integer outStaNo; + + /** + * 鍏ョ~鍖栫綈绔欑偣 + */ + @ApiModelProperty(value= "鍏ョ~鍖栫綈绔欑偣") + @TableField("jar_enter_sta_no") + private Integer jarEnterStaNo; + + /** + * 鍑虹~鍖栫綈绔欑偣 + */ + @ApiModelProperty(value= "鍑虹~鍖栫綈绔欑偣") + @TableField("jar_out_sta_no") + private Integer jarOutStaNo; + + /** + * 纭寲缃怚D + */ + @ApiModelProperty(value= "纭寲缃怚D") + @TableField("jar_id") + private Integer jarId; + + /** + * 鍖哄煙 + */ + @ApiModelProperty(value= "鍖哄煙") + @TableField("jar_regin") + private Integer jarRegin; + + /** + * 宸ヤ綔鐘舵�� + */ + @ApiModelProperty(value= "宸ヤ綔鐘舵��") + private Integer status; + + /** + * 鍏ョ綈灏忚溅 + */ + @ApiModelProperty(value= "鍏ョ綈灏忚溅") + @TableField("enter_ste_no") + private Integer enterSteNo; + + /** + * 鍑虹綈灏忚溅 + */ + @ApiModelProperty(value= "鍑虹綈灏忚溅") + @TableField("out_ste_id") + private Integer outSteId; + + /** + * 鍏ョ綈RGV + */ + @ApiModelProperty(value= "鍏ョ綈RGV") + @TableField("enter_rgv_id") + private Integer enterRgvId; + + /** + * 鍑虹綈RGV + */ + @ApiModelProperty(value= "鍑虹綈RGV") + @TableField("out_rgv_id") + private Integer outRgvId; + + /** + * 鍏ュ簱鏃堕棿 + */ + @ApiModelProperty(value= "鍏ュ簱鏃堕棿") + @TableField("io_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date ioTime; + + /** + * 鍒涘缓鏃堕棿 + */ + @ApiModelProperty(value= "鍒涘缓鏃堕棿") + @TableField("modi_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date modiTime; + + /** + * 鏇存柊鏃堕棿 + */ + @ApiModelProperty(value= "鏇存柊鏃堕棿") + @TableField("appe_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date appeTime; + + public BasJarMast() {} + + public BasJarMast(Long wrkNo,Integer enterStaNo,Integer outStaNo,Integer jarEnterStaNo,Integer jarOutStaNo,Integer jarId,Integer jarRegin,Integer status,Integer enterSteNo,Integer outSteId,Integer enterRgvId,Integer outRgvId,Date ioTime,Date modiTime,Date appeTime) { + this.wrkNo = wrkNo; + this.enterStaNo = enterStaNo; + this.outStaNo = outStaNo; + this.jarEnterStaNo = jarEnterStaNo; + this.jarOutStaNo = jarOutStaNo; + this.jarId = jarId; + this.jarRegin = jarRegin; + this.status = status; + this.enterSteNo = enterSteNo; + this.outSteId = outSteId; + this.enterRgvId = enterRgvId; + this.outRgvId = outRgvId; + this.ioTime = ioTime; + this.modiTime = modiTime; + this.appeTime = appeTime; + } + +// BasJarMast basJarMast = new BasJarMast( +// null, // 宸ヤ綔鍙穂闈炵┖] +// null, // 鍏ュ簱婧愮珯鐐筟闈炵┖] +// null, // 鍏ュ簱鐩爣绔欑偣[闈炵┖] +// null, // 鍏ョ~鍖栫綈绔欑偣[闈炵┖] +// null, // 鍑虹~鍖栫綈绔欑偣[闈炵┖] +// null, // 纭寲缃怚D[闈炵┖] +// null, // 鍖哄煙[闈炵┖] +// null, // 宸ヤ綔鐘舵�乕闈炵┖] +// null, // 鍏ョ綈灏忚溅[闈炵┖] +// null, // 鍑虹綈灏忚溅[闈炵┖] +// null, // 鍏ョ綈RGV[闈炵┖] +// null, // 鍑虹綈RGV[闈炵┖] +// null, // 鍏ュ簱鏃堕棿 +// null, // 鍒涘缓鏃堕棿 +// null // 鏇存柊鏃堕棿 +// ); + + public String getStatus$(){ + BasJarMastStatusService service = SpringUtils.getBean(BasJarMastStatusService.class); + BasJarMastStatus basJarMastStatus = service.selectById(this.status); + if (!Cools.isEmpty(basJarMastStatus)){ + return String.valueOf(basJarMastStatus.getId()); + } + return null; + } + + public String getIoTime$(){ + if (Cools.isEmpty(this.ioTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime); + } + + public String getModiTime$(){ + if (Cools.isEmpty(this.modiTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); + } + + public String getAppeTime$(){ + if (Cools.isEmpty(this.appeTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); + } + + +} diff --git a/src/main/java/com/zy/asrs/entity/BasJarMastStatus.java b/src/main/java/com/zy/asrs/entity/BasJarMastStatus.java new file mode 100644 index 0000000..3231faf --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/BasJarMastStatus.java @@ -0,0 +1,49 @@ +package com.zy.asrs.entity; + +import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableField; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +@Data +@TableName("asr_bas_jar_mast_status") +public class BasJarMastStatus implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @ApiModelProperty(value= "ID") + private Long id; + + /** + * 浠诲姟鍙� + */ + @ApiModelProperty(value= "浠诲姟鍙�") + @TableField("box_specs") + private String boxSpecs; + + /** + * 鍫嗗灈鏈� + */ + @ApiModelProperty(value= "鍫嗗灈鏈�") + @TableField("box_type") + private String boxType; + + public BasJarMastStatus() {} + + public BasJarMastStatus(String boxSpecs,String boxType) { + this.boxSpecs = boxSpecs; + this.boxType = boxType; + } + +// BasJarMastStatus basJarMastStatus = new BasJarMastStatus( +// null, // 浠诲姟鍙穂闈炵┖] +// null // 鍫嗗灈鏈� +// ); + + +} diff --git a/src/main/java/com/zy/asrs/entity/WrkMastSplitTwin.java b/src/main/java/com/zy/asrs/entity/WrkMastSplitTwin.java new file mode 100644 index 0000000..ec0a4d7 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/WrkMastSplitTwin.java @@ -0,0 +1,276 @@ +package com.zy.asrs.entity; + +import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.enums.IdType; +import com.baomidou.mybatisplus.annotations.TableField; +import java.text.SimpleDateFormat; +import java.util.Date; +import org.springframework.format.annotation.DateTimeFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.text.SimpleDateFormat; +import java.util.Date; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +@Data +@TableName("asr_wrk_mast_split_twin") +public class WrkMastSplitTwin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @ApiModelProperty(value= "ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 宸ヤ綔鍙� + */ + @ApiModelProperty(value= "宸ヤ綔鍙�") + @TableField("wrk_no") + private Long wrkNo; + + /** + * 娣诲姞鏃堕棿 + */ + @ApiModelProperty(value= "娣诲姞鏃堕棿") + @TableField("create_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 淇敼鏃堕棿 + */ + @ApiModelProperty(value= "淇敼鏃堕棿") + @TableField("update_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 宸ヤ綅 + */ + @ApiModelProperty(value= "宸ヤ綅") + private Integer type; + + /** + * 宸ヤ綔鐘舵�� 0: 鍒濆 1: 绛夊緟鍙栬揣瀹屾垚 2: 鍙栬揣瀹屾垚寰呬綔涓� 3: 绛夊緟鏀捐揣瀹屾垚 4: 瀹屾垚 + */ + @ApiModelProperty(value= "宸ヤ綔鐘舵�� 0: 鍒濆 1: 绛夊緟鍙栬揣瀹屾垚 2: 鍙栬揣瀹屾垚寰呬綔涓� 3: 绛夊緟鏀捐揣瀹屾垚 4: 瀹屾垚 ") + @TableField("wrk_sts") + private Integer wrkSts; + + /** + * 琛屽彿 + */ + @ApiModelProperty(value= "琛屽彿") + @TableField("line_number") + private Integer lineNumber; + + /** + * 宸ヤ綔绫诲瀷 0: 鏈煡 1: 鍙� 2: 鏀� 3: 鍙栨斁 4: 瀹屾垚 + */ + @ApiModelProperty(value= "宸ヤ綔绫诲瀷 0: 鏈煡 1: 鍙� 2: 鏀� 3: 鍙栨斁 4: 瀹屾垚 ") + @TableField("wrk_type") + private Integer wrkType; + + /** + * 鏍囪鏃堕棿 + */ + @ApiModelProperty(value= "鏍囪鏃堕棿") + @TableField("bign_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date bignTime; + + /** + * 鍫嗗灈鏈哄彿 + */ + @ApiModelProperty(value= "鍫嗗灈鏈哄彿") + @TableField("crn_no") + private Integer crnNo; + + /** + * 璧风偣 + */ + @ApiModelProperty(value= "璧风偣") + @TableField("wrk_start") + private String wrkStart; + + /** + * 缁堢偣 + */ + @ApiModelProperty(value= "缁堢偣") + @TableField("wrk_end") + private String wrkEnd; + + /** + * 璧风偣鎺� + */ + @ApiModelProperty(value= "璧风偣鎺�") + @TableField("start_row") + private Integer startRow; + + /** + * 璧风偣鍒� + */ + @ApiModelProperty(value= "璧风偣鍒�") + @TableField("start_bay") + private Integer startBay; + + /** + * 璧风偣灞� + */ + @ApiModelProperty(value= "璧风偣灞�") + @TableField("start_lev") + private Integer startLev; + + /** + * 缁堢偣鎺� + */ + @ApiModelProperty(value= "缁堢偣鎺�") + @TableField("end_row") + private Integer endRow; + + /** + * 缁堢偣鍒� + */ + @ApiModelProperty(value= "缁堢偣鍒�") + @TableField("end_bay") + private Integer endBay; + + /** + * 缁堢偣灞� + */ + @ApiModelProperty(value= "缁堢偣灞�") + @TableField("end_lev") + private Integer endLev; + + /** + * 浠诲姟绫诲瀷 0: 鏈煡 1: 鍏ュ簱 2: 鍑哄簱 + */ + @ApiModelProperty(value= "浠诲姟绫诲瀷 0: 鏈煡 1: 鍏ュ簱 2: 鍑哄簱 ") + @TableField("io_type") + private Integer ioType; + + public WrkMastSplitTwin() {} + + public WrkMastSplitTwin(Long wrkNo,Date createTime,Date updateTime,Integer type,Integer wrkSts,Integer lineNumber,Integer wrkType,Date bignTime,Integer crnNo,String wrkStart,String wrkEnd,Integer startRow,Integer startBay,Integer startLev,Integer endRow,Integer endBay,Integer endLev,Integer ioType) { + this.wrkNo = wrkNo; + this.createTime = createTime; + this.updateTime = updateTime; + this.type = type; + this.wrkSts = wrkSts; + this.lineNumber = lineNumber; + this.wrkType = wrkType; + this.bignTime = bignTime; + this.crnNo = crnNo; + this.wrkStart = wrkStart; + this.wrkEnd = wrkEnd; + this.startRow = startRow; + this.startBay = startBay; + this.startLev = startLev; + this.endRow = endRow; + this.endBay = endBay; + this.endLev = endLev; + this.ioType = ioType; + } + +// WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin( +// null, // 宸ヤ綔鍙穂闈炵┖] +// null, // 娣诲姞鏃堕棿 +// null, // 淇敼鏃堕棿 +// null, // 宸ヤ綅[闈炵┖] +// null, // 宸ヤ綔鐘舵�乕闈炵┖] +// null, // 琛屽彿[闈炵┖] +// null, // 宸ヤ綔绫诲瀷[闈炵┖] +// null, // 鏍囪鏃堕棿 +// null, // 鍫嗗灈鏈哄彿[闈炵┖] +// null, // 璧风偣[闈炵┖] +// null, // 缁堢偣[闈炵┖] +// null, // 璧风偣鎺抂闈炵┖] +// null, // 璧风偣鍒梉闈炵┖] +// null, // 璧风偣灞俒闈炵┖] +// null, // 缁堢偣鎺抂闈炵┖] +// null, // 缁堢偣鍒梉闈炵┖] +// null, // 缁堢偣灞俒闈炵┖] +// null // 浠诲姟绫诲瀷[闈炵┖] +// ); + + public String getCreateTime$(){ + if (Cools.isEmpty(this.createTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); + } + + public String getUpdateTime$(){ + if (Cools.isEmpty(this.updateTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); + } + + public String getWrkSts$(){ + if (null == this.wrkSts){ return null; } + switch (this.wrkSts){ + case 0: + return "鍒濆"; + case 1: + return "绛夊緟鍙栬揣瀹屾垚"; + case 2: + return "鍙栬揣瀹屾垚寰呬綔涓�"; + case 3: + return "绛夊緟鏀捐揣瀹屾垚"; + case 4: + return "瀹屾垚"; + default: + return String.valueOf(this.wrkSts); + } + } + + public String getWrkType$(){ + if (null == this.wrkType){ return null; } + switch (this.wrkType){ + case 0: + return "鏈煡"; + case 1: + return "鍙�"; + case 2: + return "鏀�"; + case 3: + return "鍙栨斁"; + case 4: + return "瀹屾垚"; + default: + return String.valueOf(this.wrkType); + } + } + + public String getBignTime$(){ + if (Cools.isEmpty(this.bignTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.bignTime); + } + + public String getIoType$(){ + if (null == this.ioType){ return null; } + switch (this.ioType){ + case 0: + return "鏈煡"; + case 1: + return "鍏ュ簱"; + case 2: + return "鍑哄簱"; + default: + return String.valueOf(this.ioType); + } + } + + +} diff --git a/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java new file mode 100644 index 0000000..3cb926c --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java @@ -0,0 +1,12 @@ +package com.zy.asrs.mapper; + +import com.zy.asrs.entity.BasJarMast; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface BasJarMastMapper extends BaseMapper<BasJarMast> { + +} diff --git a/src/main/java/com/zy/asrs/mapper/BasJarMastStatusMapper.java b/src/main/java/com/zy/asrs/mapper/BasJarMastStatusMapper.java new file mode 100644 index 0000000..ca52431 --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/BasJarMastStatusMapper.java @@ -0,0 +1,12 @@ +package com.zy.asrs.mapper; + +import com.zy.asrs.entity.BasJarMastStatus; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface BasJarMastStatusMapper extends BaseMapper<BasJarMastStatus> { + +} diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastSplitTwinMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastSplitTwinMapper.java new file mode 100644 index 0000000..2b7cfc5 --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/WrkMastSplitTwinMapper.java @@ -0,0 +1,12 @@ +package com.zy.asrs.mapper; + +import com.zy.asrs.entity.WrkMastSplitTwin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface WrkMastSplitTwinMapper extends BaseMapper<WrkMastSplitTwin> { + +} diff --git a/src/main/java/com/zy/asrs/service/BasJarMastService.java b/src/main/java/com/zy/asrs/service/BasJarMastService.java new file mode 100644 index 0000000..1a16f9d --- /dev/null +++ b/src/main/java/com/zy/asrs/service/BasJarMastService.java @@ -0,0 +1,8 @@ +package com.zy.asrs.service; + +import com.zy.asrs.entity.BasJarMast; +import com.baomidou.mybatisplus.service.IService; + +public interface BasJarMastService extends IService<BasJarMast> { + +} diff --git a/src/main/java/com/zy/asrs/service/BasJarMastStatusService.java b/src/main/java/com/zy/asrs/service/BasJarMastStatusService.java new file mode 100644 index 0000000..f19f3ec --- /dev/null +++ b/src/main/java/com/zy/asrs/service/BasJarMastStatusService.java @@ -0,0 +1,8 @@ +package com.zy.asrs.service; + +import com.zy.asrs.entity.BasJarMastStatus; +import com.baomidou.mybatisplus.service.IService; + +public interface BasJarMastStatusService extends IService<BasJarMastStatus> { + +} diff --git a/src/main/java/com/zy/asrs/service/WrkMastSplitTwinService.java b/src/main/java/com/zy/asrs/service/WrkMastSplitTwinService.java new file mode 100644 index 0000000..7f1d735 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/WrkMastSplitTwinService.java @@ -0,0 +1,8 @@ +package com.zy.asrs.service; + +import com.zy.asrs.entity.WrkMastSplitTwin; +import com.baomidou.mybatisplus.service.IService; + +public interface WrkMastSplitTwinService extends IService<WrkMastSplitTwin> { + +} diff --git a/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java new file mode 100644 index 0000000..93a7343 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java @@ -0,0 +1,12 @@ +package com.zy.asrs.service.impl; + +import com.zy.asrs.mapper.BasJarMastMapper; +import com.zy.asrs.entity.BasJarMast; +import com.zy.asrs.service.BasJarMastService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +@Service("basJarMastService") +public class BasJarMastServiceImpl extends ServiceImpl<BasJarMastMapper, BasJarMast> implements BasJarMastService { + +} diff --git a/src/main/java/com/zy/asrs/service/impl/BasJarMastStatusServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasJarMastStatusServiceImpl.java new file mode 100644 index 0000000..746d619 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/BasJarMastStatusServiceImpl.java @@ -0,0 +1,12 @@ +package com.zy.asrs.service.impl; + +import com.zy.asrs.mapper.BasJarMastStatusMapper; +import com.zy.asrs.entity.BasJarMastStatus; +import com.zy.asrs.service.BasJarMastStatusService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +@Service("basJarMastStatusService") +public class BasJarMastStatusServiceImpl extends ServiceImpl<BasJarMastStatusMapper, BasJarMastStatus> implements BasJarMastStatusService { + +} 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 9196e54..13036b1 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1550,8 +1550,18 @@ && crnProtocol.getTaskNo() == 0 && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) { - sign[0] = 1; - sign[1] = 1; +// sign[0] = 1; +// sign[1] = 1; + /* + * 浠诲姟鎷嗗垎鐗规畩澶勭悊 + * */ + if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE + && crnProtocol.getTaskNoTwo() == 0 + && crnProtocol.getLoadedTwo() == 0 + && crnProtocol.getForkPosTwo() == 0){ + sign[0] = 1; + sign[1] = 1; + } }else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE && crnProtocol.getTaskNoTwo() == 0 && crnProtocol.getLoadedTwo() == 0 @@ -1561,7 +1571,7 @@ } } - if (sign[0]==1){ + if (sign[0]==1 && sign[1] == 1){ // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡 if (crnProtocol.getLastIo().equals("I")) { if (basCrnp.getInEnable().equals("Y")) { @@ -1569,7 +1579,7 @@ case 3: case 4: case 5: - this.crnStnToLoc1(crn, crnProtocol, sign[1]); // 鍏ュ簱 + this.crnStnToLoc1Big(crn, crnProtocol, sign[1]); // 鍏ュ簱 break; default: continue; @@ -1580,7 +1590,7 @@ case 3: case 4: case 5: - this.locToCrnStn1(crn, crnProtocol, sign[1]); // 鍑哄簱 + this.locToCrnStn1Big(crn, crnProtocol, sign[1]); // 鍑哄簱 break; default: continue; @@ -1595,7 +1605,7 @@ case 3: case 4: case 5: - this.locToCrnStn1(crn, crnProtocol, sign[1]); // 鍑哄簱 + this.locToCrnStn1Big(crn, crnProtocol, sign[1]); // 鍑哄簱 break; default: continue; @@ -1606,7 +1616,7 @@ case 3: case 4: case 5: - this.crnStnToLoc1(crn, crnProtocol, sign[1]); // 鍏ュ簱 + this.crnStnToLoc1Big(crn, crnProtocol, sign[1]); // 鍏ュ簱 break; default: continue; @@ -1881,7 +1891,287 @@ /** * 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣� - * 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ鍚屽彴鍫嗗灈鏈哄伐浣滄。鎵�鏈夌珯鐐瑰叆搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴� + * 2024-06-05 + */ + public synchronized void crnStnToLoc1Big(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) { + List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId()); + for(WrkMast wrkMast : wrkMasts){ + if (wrkMast == null) { + continue; + } + + CrnSlave.CrnStn crnStn = null; + for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){ + if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){ + crnStn = crnStn1; + break; + } + } + if(Cools.isEmpty(crnStn)){ + continue; + } + + boolean flag = false; + // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅 + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + // 鏌ヨ绔欑偣璇︾粏淇℃伅 + BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); + if (staDetl == null) { + log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); + continue; + } + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() + && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) { + flag = true; + } + if (!flag) { + continue; + } + + // 鑾峰彇搴撲綅淇℃伅 + LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); + if (locMast == null) { + log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo()); + continue; + } + if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) { + log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts()); + continue; + } + + //宸ヤ綅 + if (crnStation == 1){ + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { + break; + } + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) { + break; + } + }else if(crnStation == 2){ + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) { + break; + } + }else { + break; + } + + + // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� + if (wrkMastMapper.selectWorking(slave.getId()) != null) { + continue; + } + + // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� + if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) { + String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo()); + LocMast shallowLoc = locMastService.selectById(shallowLocNo); + // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒 + if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) { + WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo); + if (null == waitWrkMast) { + log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo); + } else { + waitWrkMast.setIoPri(15D); + waitWrkMast.setModiTime(new Date()); + if (wrkMastMapper.updateById(waitWrkMast) == 0) { + log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo()); + } + continue; + } + + } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) { + // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔� + if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) { + wrkMast.setUpdMk("Y"); + wrkMast.setIoPri(14D); + wrkMastMapper.updateById(wrkMast); + // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑 + moveLocForDeepLoc(slave, shallowLoc); + // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�) +// moveLocForDeepLocPakin(slave, shallowLoc, wrkMast); + } + continue; + } else if (shallowLoc.getLocSts().equals("Q")) { + WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo); + if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) { + continue; + } + } + } + + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐� + crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� + Date now = new Date(); + wrkMast.setWrkSts(3L); + wrkMast.setCrnStrTime(now); + wrkMast.setModiTime(now); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + } + } + } + + /** + * 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣� + * 2024-01-15 鐓滄槦灏忔枡绠� + */ + public synchronized void crnStnToLoc1Single(CrnSlave slave, CrnProtocol crnProtocol) { + List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId()); + for(WrkMast wrkMast : wrkMasts){ + if (wrkMast == null) { + continue; + } + + CrnSlave.CrnStn crnStn = null; + for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){ + if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){ + crnStn = crnStn1; + break; + } + } + if(Cools.isEmpty(crnStn)){ + continue; + } + + boolean flag = false; + boolean flagOther = false; + // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅 + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther()); + if (staProtocolOther == null) { + continue; + } else { + staProtocolOther = staProtocolOther.clone(); + } + // 鏌ヨ绔欑偣璇︾粏淇℃伅 + BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); + if (staDetl == null) { + log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); + continue; + } + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() + && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) { + flag = true; + } + + // 鏌ヨ绔欑偣璇︾粏淇℃伅 + BasDevp staDetlOther = basDevpService.selectById(crnStn.getStaNoOther()); + if (staDetlOther == null) { + log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNoOther()); + continue; + } + if (staProtocolOther.isAutoing() && staProtocolOther.isLoading() && staProtocolOther.getWorkNo() > 0 && staProtocolOther.isInEnable() + && staDetlOther.getCanining() != null && staDetlOther.getCanining().equals("Y")) { + flagOther = true; + } + if (!flag || !flagOther) { + continue; + } + + //鏌ヨ鍫嗗灈鏈轰换鍔� + WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(wrkMast.getWrkNo()); + if (Cools.isEmpty(wrkMastCrn)){ + continue; + } + + WrkMast wrkMastOther = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoTwo().intValue()); + + // 鑾峰彇搴撲綅淇℃伅 + LocMast locMast = locMastService.selectById(Utils.getRow(wrkMastCrn.getLocNo())%4>2? wrkMastCrn.getLocNoTwo():wrkMastCrn.getLocNoOne()); + if (locMast == null) { + log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMastCrn.getLocNo()); + continue; + } + if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) { + log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", locMast.getLocNo(), locMast.getLocSts()); + continue; + } + + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { + continue; + } + + // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� + if (wrkMastMapper.selectWorking(slave.getId()) != null) { + continue; + } + + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� + Date now = new Date(); + wrkMast.setWrkSts(3L); + wrkMast.setCrnStrTime(now); + wrkMast.setModiTime(now); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + + // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� + wrkMastOther.setWrkSts(3L); + wrkMastOther.setCrnStrTime(now); + wrkMastOther.setModiTime(now); + if (wrkMastMapper.updateById(wrkMastOther) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastOther.getWrkNo()); + } + + wrkMastCrn.setWrkSts(3L); + wrkMastCrn.setModiTime(now); + if (wrkMastCrnMapper.updateById(wrkMastCrn) == 0) { + log.error("淇敼鍫嗗灈鏈哄伐浣滄。鐘舵�� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastCrn.getWrkNo()); + } + } + } + + } + + /** + * 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣� + * 2024-01-15 浼樺寲鍙屽伐浣� */ public synchronized void crnStnToLoc1(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) { List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId()); @@ -2019,140 +2309,6 @@ } } } - } - - /** - * 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣� - * 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ鍚屽彴鍫嗗灈鏈哄伐浣滄。鎵�鏈夌珯鐐瑰叆搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴� - */ - public synchronized void crnStnToLoc1Single(CrnSlave slave, CrnProtocol crnProtocol) { - List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId()); - for(WrkMast wrkMast : wrkMasts){ - if (wrkMast == null) { - continue; - } - - CrnSlave.CrnStn crnStn = null; - for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){ - if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){ - crnStn = crnStn1; - break; - } - } - if(Cools.isEmpty(crnStn)){ - continue; - } - - boolean flag = false; - boolean flagOther = false; - // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅 - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther()); - if (staProtocolOther == null) { - continue; - } else { - staProtocolOther = staProtocolOther.clone(); - } - // 鏌ヨ绔欑偣璇︾粏淇℃伅 - BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); - if (staDetl == null) { - log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); - continue; - } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() - && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) { - flag = true; - } - - // 鏌ヨ绔欑偣璇︾粏淇℃伅 - BasDevp staDetlOther = basDevpService.selectById(crnStn.getStaNoOther()); - if (staDetlOther == null) { - log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNoOther()); - continue; - } - if (staProtocolOther.isAutoing() && staProtocolOther.isLoading() && staProtocolOther.getWorkNo() > 0 && staProtocolOther.isInEnable() - && staDetlOther.getCanining() != null && staDetlOther.getCanining().equals("Y")) { - flagOther = true; - } - if (!flag || !flagOther) { - continue; - } - - //鏌ヨ鍫嗗灈鏈轰换鍔� - WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(wrkMast.getWrkNo()); - if (Cools.isEmpty(wrkMastCrn)){ - continue; - } - - WrkMast wrkMastOther = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoTwo().intValue()); - - // 鑾峰彇搴撲綅淇℃伅 - LocMast locMast = locMastService.selectById(Utils.getRow(wrkMastCrn.getLocNo())%4>2? wrkMastCrn.getLocNoTwo():wrkMastCrn.getLocNoOne()); - if (locMast == null) { - log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMastCrn.getLocNo()); - continue; - } - if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) { - log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", locMast.getLocNo(), locMast.getLocSts()); - continue; - } - - // 鍫嗗灈鏈烘帶鍒惰繃婊� - if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { - continue; - } - - // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� - if (wrkMastMapper.selectWorking(slave.getId()) != null) { - continue; - } - - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� - crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺� - crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞� - if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { - log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); - } else { - // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� - Date now = new Date(); - wrkMast.setWrkSts(3L); - wrkMast.setCrnStrTime(now); - wrkMast.setModiTime(now); - if (wrkMastMapper.updateById(wrkMast) == 0) { - log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); - } - - // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� - wrkMastOther.setWrkSts(3L); - wrkMastOther.setCrnStrTime(now); - wrkMastOther.setModiTime(now); - if (wrkMastMapper.updateById(wrkMastOther) == 0) { - log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastOther.getWrkNo()); - } - - wrkMastCrn.setWrkSts(3L); - wrkMastCrn.setModiTime(now); - if (wrkMastCrnMapper.updateById(wrkMastCrn) == 0) { - log.error("淇敼鍫嗗灈鏈哄伐浣滄。鐘舵�� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastCrn.getWrkNo()); - } - } - } - } /** @@ -2295,7 +2451,7 @@ /** * 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔� - * 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ宸ヤ綔妗f墍鏈夌珯鐐瑰嚭搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴� + * 2024-01-15 浼樺寲鍙屽伐浣� */ public synchronized void locToCrnStn1(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) { List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep12(slave.getId()); @@ -2461,7 +2617,7 @@ /** * 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔� - * 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ宸ヤ綔妗f墍鏈夌珯鐐瑰嚭搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴� + * 2024-01-15 鐓滄槦灏忔枡绠� */ public synchronized void locToCrnStn1Single(CrnSlave slave, CrnProtocol crnProtocol) { List<WrkMastCrn> wrkMastCrnList = wrkMastCrnMapper.selectList(new EntityWrapper<WrkMastCrn>() @@ -2596,6 +2752,177 @@ } /** + * 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔� + * 2024-06-05 鐓滄槦澶ф枡绠� + */ + public synchronized void locToCrnStn1Big(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) { + List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep12(slave.getId()); + for (WrkMast wrkMast : wrkMasts) { + if (wrkMast == null) { + continue; + } + + CrnSlave.CrnStn crnStn = null; + for (CrnSlave.CrnStn crnStn1 : slave.getCrnOutStn()){ + if(crnStn1.getStaNo().equals(wrkMast.getSourceStaNo())){ + crnStn = crnStn1; + break; + } + } + if(Cools.isEmpty(crnStn)){ + continue; + } + + // 宸ヤ綔妗g姸鎬佸垽鏂� + if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) { + log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType()); + continue; + } + //閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟 + if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){ + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(); + if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){ + continue; + } + } + // 鑾峰彇婧愬簱浣嶄俊鎭� + LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo()); + if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) { + log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts()); + continue; + } + // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); + if (staProtocol == null) { + break; +// continue; + } else { + staProtocol = staProtocol.clone(); + } + +// // 鍏ュ嚭搴撴ā寮忓垽鏂� +// if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; } + if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) { + continue; + } + + // 鏌ヨ绔欑偣璇︾粏淇℃伅 + BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); + if (staDetl == null) { + log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); + break; +// continue; + } + // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� + if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") + && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + + + //宸ヤ綅 + if (crnStation == 1){ + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { +// continue; + break; + } + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) { +// continue; + break; + } + }else if(crnStation == 2){ + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) { +// continue; + break; + } + }else { + break; + } + + // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� + if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) { + String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo()); + LocMast shallowLoc = locMastService.selectById(shallowLocNo); + // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒 + if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) { + WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo); + if (null == waitWrkMast) { + log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo); + } else { + if (waitWrkMast.getWrkSts() == 11) { + waitWrkMast.setIoPri(15D); + waitWrkMast.setModiTime(new Date()); + if (wrkMastMapper.updateById(waitWrkMast) == 0) { + log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo()); + } + continue; + } else { + + } + } + } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) { +// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo); + //2022-08-16 modify,涓嶆牴鎹畊pdmk鏍囪绉诲簱浠诲姟(瀹规槗琚彇娑堝鑷村牭濉�)锛屾煡璇㈠伐浣滄。鏄惁瀛樺湪浠诲姟 + WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo); + // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔� +// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk()) +// || Cools.isEmpty(waitWrkMast)) { + if (Cools.isEmpty(waitWrkMast)) { + wrkMast.setUpdMk("Y"); + wrkMastMapper.updateById(wrkMast); + // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑 + moveLocForDeepLoc(slave, shallowLoc); + } + log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo); + continue; + } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) { + WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo); + if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) { + continue; + } + } + } + + // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� + if (wrkMastMapper.selectWorking(slave.getId()) != null) { + break; +// return; + } + + // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐� + crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� + Date now = new Date(); + wrkMast.setWrkSts(12L); + wrkMast.setCrnStrTime(now); + wrkMast.setModiTime(now); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + break; + } + } + } + + } + + /** * 鏌ユ壘宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級,涓擱GV鍏ュ簱鎺ラ┏绔欑鍚堢殑鐨勫叆搴撳伐浣滄。锛屾彁鍙栧嚭鏈�澶�2绗� * @param slave * @return diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastSplitTwinServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastSplitTwinServiceImpl.java new file mode 100644 index 0000000..f0b7c4d --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/WrkMastSplitTwinServiceImpl.java @@ -0,0 +1,12 @@ +package com.zy.asrs.service.impl; + +import com.zy.asrs.mapper.WrkMastSplitTwinMapper; +import com.zy.asrs.entity.WrkMastSplitTwin; +import com.zy.asrs.service.WrkMastSplitTwinService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +@Service("wrkMastSplitTwinService") +public class WrkMastSplitTwinServiceImpl extends ServiceImpl<WrkMastSplitTwinMapper, WrkMastSplitTwin> implements WrkMastSplitTwinService { + +} diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java index 14b29f3..05f6638 100644 --- a/src/main/java/com/zy/common/CodeBuilder.java +++ b/src/main/java/com/zy/common/CodeBuilder.java @@ -17,10 +17,10 @@ // generator.table="sys_host"; // sqlserver generator.sqlOsType = SqlOsType.SQL_SERVER; - generator.url="10.10.10.254:1433;databasename=ahyxasrs"; + generator.url="192.168.4.15:1433;databasename=ahyxasrs"; generator.username="sa"; generator.password="sa@123"; - generator.table="asr_bas_jar"; + generator.table="asr_bas_jar_mast"; generator.packagePath="com.zy.asrs"; generator.controller = false; diff --git a/src/main/java/com/zy/core/enums/CrnTaskModeType.java b/src/main/java/com/zy/core/enums/CrnTaskModeType.java index be4761d..a250628 100644 --- a/src/main/java/com/zy/core/enums/CrnTaskModeType.java +++ b/src/main/java/com/zy/core/enums/CrnTaskModeType.java @@ -12,6 +12,8 @@ GO_ORIGIN(7), // 鍥炲師鐐� BACK_ORIGIN(8), // 鍥炲弽鍘熺偣 CLEAR(9), // 娓呴敊 + SEPARATE_TAKE(11), // 鍗曞彇璐� + SEPARATE_PUT(12), // 鍗曟斁璐� ; public Integer id; diff --git a/src/main/resources/mapper/BasJarMastMapper.xml b/src/main/resources/mapper/BasJarMastMapper.xml new file mode 100644 index 0000000..a73dd49 --- /dev/null +++ b/src/main/resources/mapper/BasJarMastMapper.xml @@ -0,0 +1,26 @@ +<?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.BasJarMastMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasJarMast"> + <id column="id" property="id" /> + <result column="wrk_no" property="wrkNo" /> + <result column="enter_sta_no" property="enterStaNo" /> + <result column="out_sta_no" property="outStaNo" /> + <result column="jar_enter_sta_no" property="jarEnterStaNo" /> + <result column="jar_out_sta_no" property="jarOutStaNo" /> + <result column="jar_id" property="jarId" /> + <result column="jar_regin" property="jarRegin" /> + <result column="status" property="status" /> + <result column="enter_ste_no" property="enterSteNo" /> + <result column="out_ste_id" property="outSteId" /> + <result column="enter_rgv_id" property="enterRgvId" /> + <result column="out_rgv_id" property="outRgvId" /> + <result column="io_time" property="ioTime" /> + <result column="modi_time" property="modiTime" /> + <result column="appe_time" property="appeTime" /> + + </resultMap> + +</mapper> diff --git a/src/main/resources/mapper/BasJarMastStatusMapper.xml b/src/main/resources/mapper/BasJarMastStatusMapper.xml new file mode 100644 index 0000000..759a405 --- /dev/null +++ b/src/main/resources/mapper/BasJarMastStatusMapper.xml @@ -0,0 +1,13 @@ +<?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.BasJarMastStatusMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasJarMastStatus"> + <id column="id" property="id" /> + <result column="box_specs" property="boxSpecs" /> + <result column="box_type" property="boxType" /> + + </resultMap> + +</mapper> diff --git a/src/main/resources/mapper/WrkMastSplitTwinMapper.xml b/src/main/resources/mapper/WrkMastSplitTwinMapper.xml new file mode 100644 index 0000000..f409abe --- /dev/null +++ b/src/main/resources/mapper/WrkMastSplitTwinMapper.xml @@ -0,0 +1,29 @@ +<?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.WrkMastSplitTwinMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WrkMastSplitTwin"> + <id column="id" property="id" /> + <result column="wrk_no" property="wrkNo" /> + <result column="create_time" property="createTime" /> + <result column="update_time" property="updateTime" /> + <result column="type" property="type" /> + <result column="wrk_sts" property="wrkSts" /> + <result column="line_number" property="lineNumber" /> + <result column="wrk_type" property="wrkType" /> + <result column="bign_time" property="bignTime" /> + <result column="crn_no" property="crnNo" /> + <result column="wrk_start" property="wrkStart" /> + <result column="wrk_end" property="wrkEnd" /> + <result column="start_row" property="startRow" /> + <result column="start_bay" property="startBay" /> + <result column="start_lev" property="startLev" /> + <result column="end_row" property="endRow" /> + <result column="end_bay" property="endBay" /> + <result column="end_lev" property="endLev" /> + <result column="io_type" property="ioType" /> + + </resultMap> + +</mapper> -- Gitblit v1.9.1