From 57fa3510fe6573f70a5dfc043a775da32530fbc6 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期六, 15 三月 2025 16:22:12 +0800 Subject: [PATCH] 配置信息 --- src/main/java/com/zy/asrs/service/impl/CommonServiceImpl.java | 8 src/main/java/com/zy/asrs/task/TaskLogScheduler.java | 8 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 291 ++++++++------- src/main/resources/mapper/WrkMastMapper.xml | 2 src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java | 196 ++++++++++ src/main/resources/application-prod.yml | 34 src/main/java/com/zy/asrs/entity/wms/WmsResult.java | 4 src/main/java/com/zy/asrs/entity/TaskWrkReport.java | 242 ------------ src/main/java/com/zy/asrs/task/TaskReportScheduler.java | 34 + src/main/java/com/zy/core/model/DevpSlave.java | 1 src/main/java/com/zy/asrs/entity/TaskWrkReportLog.java | 243 ------------ src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 2 src/main/java/com/zy/asrs/entity/wms/WmsFeedback.java | 32 + src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java | 2 src/main/java/com/zy/asrs/service/ToWmsService.java | 13 src/main/resources/application.yml | 7 16 files changed, 451 insertions(+), 668 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/TaskWrkReport.java b/src/main/java/com/zy/asrs/entity/TaskWrkReport.java index 3c8e551..38d21a4 100644 --- a/src/main/java/com/zy/asrs/entity/TaskWrkReport.java +++ b/src/main/java/com/zy/asrs/entity/TaskWrkReport.java @@ -4,18 +4,11 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; -import com.core.common.Cools; -import com.core.common.SpringUtils; -import com.zy.asrs.service.BasWrkIotypeService; -import com.zy.asrs.service.BasWrkStatusService; -import com.zy.system.entity.User; -import com.zy.system.service.UserService; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; -import java.text.SimpleDateFormat; import java.util.Date; @Data @@ -24,11 +17,13 @@ private static final long serialVersionUID = 1L; + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** * wms浠诲姟鍙� */ @ApiModelProperty(value = "wms浠诲姟鍙�") - @TableId(value = "task_no", type = IdType.INPUT) @TableField("task_no") private String taskNo; @@ -81,12 +76,6 @@ @TableField("target_point") private String targetPoint; - /** - * 淇敼浜哄憳 - */ - @ApiModelProperty(value = "淇敼浜哄憳") - @TableField("modi_user") - private Long modiUser; /** * 淇敼鏃堕棿 @@ -108,230 +97,5 @@ @ApiModelProperty(value = "鏉$爜") private String barcode; - /** - * 娲惧彂鏃堕棿 - */ - @ApiModelProperty(value = "娲惧彂鏃堕棿") - @TableField("assign_time") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date assignTime; - - /** - * 鎵ц鏃堕棿 - */ - @ApiModelProperty(value = "鎵ц鏃堕棿") - @TableField("execute_time") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date executeTime; - - /** - * 瀹岀粨鏃堕棿 - */ - @ApiModelProperty(value = "瀹岀粨鏃堕棿") - @TableField("complete_time") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date completeTime; - - /** - * 鍙栨秷鏃堕棿 - */ - @ApiModelProperty(value = "鍙栨秷鏃堕棿") - @TableField("cancel_time") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date cancelTime; - - /** - * 宸ヤ綔鐘舵�� - */ - @ApiModelProperty(value = "宸ヤ綔鐘舵��") - @TableField("wrk_sts") - private Integer wrkSts; - - /** - * 鍫嗗灈鏈哄彿 - */ - @ApiModelProperty(value = "鍫嗗灈鏈哄彿") - @TableField("crn_no") - private Integer crnNo; - - /** - * 鎸囦护鎵ц姝ュ簭 - */ - @ApiModelProperty(value = "鎸囦护鎵ц姝ュ簭") - @TableField("command_step") - private Integer commandStep = 0; - - @ApiModelProperty(value = "绉诲簱鏍囪") - @TableField("transfer_mark") - private Integer transferMark; - - @ApiModelProperty(value = "鍘熷璧风偣") - @TableField("origin_start_point") - private String originStartPoint; - - @ApiModelProperty(value = "鍘熷璧风偣") - @TableField("origin_target_point") - private String originTargetPoint; - - @ApiModelProperty(value = "寮�濮嬩换鍔℃爣璁�") - @TableField("mark_start") - private Integer markStart; - - public TaskWrkReport() { - } - - public TaskWrkReport(String taskNo, Integer status, Integer wrkNo, Date createTime, Integer ioType, Integer ioPri, String startPoint, String targetPoint, Long modiUser, Date modiTime, String memo, String barcode, Date assignTime, Date executeTime, Date completeTime, Date cancelTime, Integer wrkSts) { - this.taskNo = taskNo; - this.status = status; - this.wrkNo = wrkNo; - this.createTime = createTime; - this.ioType = ioType; - this.ioPri = ioPri; - this.startPoint = startPoint; - this.targetPoint = targetPoint; - this.modiUser = modiUser; - this.modiTime = modiTime; - this.memo = memo; - this.barcode = barcode; - this.assignTime = assignTime; - this.executeTime = executeTime; - this.completeTime = completeTime; - this.cancelTime = cancelTime; - this.wrkSts = wrkSts; - } - -// TaskWrk taskWrk = new TaskWrk( -// null, // wms浠诲姟鍙穂闈炵┖] -// null, // 浠诲姟鐘舵�� -// null, // 浠诲姟鍙� -// null, // 浠诲姟鏃堕棿(鎺ユ敹鏃堕棿) -// null, // 浠诲姟绫诲瀷 -// null, // 浼樺厛绾� -// null, // 璧风偣 -// null, // 缁堢偣 -// null, // 淇敼浜哄憳 -// null, // 淇敼鏃堕棿 -// null, // 澶囨敞 -// null, // 鏉$爜 -// null, // 娲惧彂鏃堕棿 -// null, // 鎵ц鏃堕棿 -// null, // 瀹岀粨鏃堕棿 -// null, // 鍙栨秷鏃堕棿 -// null // 宸ヤ綔鐘舵�� -// ); - - public String getStatus$() { - if (null == this.status) { - return null; - } - switch (this.status) { - case 1: - return "鎺ユ敹"; - case 2: - return "娲惧彂"; - case 3: - return "姝ュ簭瀹屾垚"; - case 4: - return "鍙栨秷"; - case 5: - return "瀹岀粨"; - default: - return String.valueOf(this.status); - } - } - - public String getCreateTime$() { - if (Cools.isEmpty(this.createTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); - } - - public String getIoType$() { - BasWrkIotypeService service = SpringUtils.getBean(BasWrkIotypeService.class); - BasWrkIotype basWrkIotype = service.selectById(this.ioType); - if (!Cools.isEmpty(basWrkIotype)) { - return String.valueOf(basWrkIotype.getIoDesc()); - } - return null; - } - - public String getModiUser$() { - UserService service = SpringUtils.getBean(UserService.class); - User user = service.selectById(this.modiUser); - if (!Cools.isEmpty(user)) { - return String.valueOf(user.getUsername()); - } - return null; - } - - public String getModiTime$() { - if (Cools.isEmpty(this.modiTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); - } - - public String getAssignTime$() { - if (Cools.isEmpty(this.assignTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.assignTime); - } - - public String getExecuteTime$() { - if (Cools.isEmpty(this.executeTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.executeTime); - } - - public String getCompleteTime$() { - if (Cools.isEmpty(this.completeTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.completeTime); - } - - public String getCancelTime$() { - if (Cools.isEmpty(this.cancelTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.cancelTime); - } - - public String getWrkSts$() { - BasWrkStatusService service = SpringUtils.getBean(BasWrkStatusService.class); - BasWrkStatus basWrkStatus = service.selectById(this.wrkSts); - if (!Cools.isEmpty(basWrkStatus)) { - return String.valueOf(basWrkStatus.getWrkDesc()); - } - return null; - } - - /** - * 鑾峰彇鎸佺画鏃堕棿 - */ - public String getDurationTime() { - if (Cools.isEmpty(this.createTime)) { - return ""; - } - - Date endDate = new Date(); - if (!Cools.isEmpty(this.assignTime)) { - endDate = this.assignTime; - } - - //鐢ㄦ潵鑾峰彇涓や釜鏃堕棿鐩稿樊鐨勬绉掓暟 - long l = this.createTime.getTime() - endDate.getTime(); - - //鍒嗗埆璁$畻鐩稿樊鐨勫ぉ銆佸皬鏃躲�佸垎銆佺 - long day = l / (24 * 60 * 60 * 1000); - long hour = (l / (60 * 60 * 1000) - day * 24); - long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60); - long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); - - return Math.abs(day) + "澶�" + Math.abs(hour) + "灏忔椂" + Math.abs(min) + "鍒�" + Math.abs(s) + "绉�"; - } } diff --git a/src/main/java/com/zy/asrs/entity/TaskWrkReportLog.java b/src/main/java/com/zy/asrs/entity/TaskWrkReportLog.java index fde683e..4ae777a 100644 --- a/src/main/java/com/zy/asrs/entity/TaskWrkReportLog.java +++ b/src/main/java/com/zy/asrs/entity/TaskWrkReportLog.java @@ -4,18 +4,11 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; -import com.core.common.Cools; -import com.core.common.SpringUtils; -import com.zy.asrs.service.BasWrkIotypeService; -import com.zy.asrs.service.BasWrkStatusService; -import com.zy.system.entity.User; -import com.zy.system.service.UserService; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; -import java.text.SimpleDateFormat; import java.util.Date; @Data @@ -23,6 +16,10 @@ public class TaskWrkReportLog implements Serializable { private static final long serialVersionUID = 1L; + + + @TableId(value = "id", type = IdType.AUTO) + private Long id; /** * wms浠诲姟鍙� @@ -81,12 +78,6 @@ @TableField("target_point") private String targetPoint; - /** - * 淇敼浜哄憳 - */ - @ApiModelProperty(value = "淇敼浜哄憳") - @TableField("modi_user") - private Long modiUser; /** * 淇敼鏃堕棿 @@ -107,231 +98,5 @@ */ @ApiModelProperty(value = "鏉$爜") private String barcode; - - /** - * 娲惧彂鏃堕棿 - */ - @ApiModelProperty(value = "娲惧彂鏃堕棿") - @TableField("assign_time") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date assignTime; - - /** - * 鎵ц鏃堕棿 - */ - @ApiModelProperty(value = "鎵ц鏃堕棿") - @TableField("execute_time") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date executeTime; - - /** - * 瀹岀粨鏃堕棿 - */ - @ApiModelProperty(value = "瀹岀粨鏃堕棿") - @TableField("complete_time") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date completeTime; - - /** - * 鍙栨秷鏃堕棿 - */ - @ApiModelProperty(value = "鍙栨秷鏃堕棿") - @TableField("cancel_time") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date cancelTime; - - /** - * 宸ヤ綔鐘舵�� - */ - @ApiModelProperty(value = "宸ヤ綔鐘舵��") - @TableField("wrk_sts") - private Integer wrkSts; - - /** - * 鍫嗗灈鏈哄彿 - */ - @ApiModelProperty(value = "鍫嗗灈鏈哄彿") - @TableField("crn_no") - private Integer crnNo; - - /** - * 鎸囦护鎵ц姝ュ簭 - */ - @ApiModelProperty(value = "鎸囦护鎵ц姝ュ簭") - @TableField("command_step") - private Integer commandStep = 0; - - @ApiModelProperty(value = "绉诲簱鏍囪") - @TableField("transfer_mark") - private Integer transferMark; - - @ApiModelProperty(value = "鍘熷璧风偣") - @TableField("origin_start_point") - private String originStartPoint; - - @ApiModelProperty(value = "鍘熷璧风偣") - @TableField("origin_target_point") - private String originTargetPoint; - - @ApiModelProperty(value = "寮�濮嬩换鍔℃爣璁�") - @TableField("mark_start") - private Integer markStart; - - public TaskWrkReportLog() { - } - - public TaskWrkReportLog(String taskNo, Integer status, Integer wrkNo, Date createTime, Integer ioType, Integer ioPri, String startPoint, String targetPoint, Long modiUser, Date modiTime, String memo, String barcode, Date assignTime, Date executeTime, Date completeTime, Date cancelTime, Integer wrkSts) { - this.taskNo = taskNo; - this.status = status; - this.wrkNo = wrkNo; - this.createTime = createTime; - this.ioType = ioType; - this.ioPri = ioPri; - this.startPoint = startPoint; - this.targetPoint = targetPoint; - this.modiUser = modiUser; - this.modiTime = modiTime; - this.memo = memo; - this.barcode = barcode; - this.assignTime = assignTime; - this.executeTime = executeTime; - this.completeTime = completeTime; - this.cancelTime = cancelTime; - this.wrkSts = wrkSts; - } - -// TaskWrk taskWrk = new TaskWrk( -// null, // wms浠诲姟鍙穂闈炵┖] -// null, // 浠诲姟鐘舵�� -// null, // 浠诲姟鍙� -// null, // 浠诲姟鏃堕棿(鎺ユ敹鏃堕棿) -// null, // 浠诲姟绫诲瀷 -// null, // 浼樺厛绾� -// null, // 璧风偣 -// null, // 缁堢偣 -// null, // 淇敼浜哄憳 -// null, // 淇敼鏃堕棿 -// null, // 澶囨敞 -// null, // 鏉$爜 -// null, // 娲惧彂鏃堕棿 -// null, // 鎵ц鏃堕棿 -// null, // 瀹岀粨鏃堕棿 -// null, // 鍙栨秷鏃堕棿 -// null // 宸ヤ綔鐘舵�� -// ); - - public String getStatus$() { - if (null == this.status) { - return null; - } - switch (this.status) { - case 1: - return "鎺ユ敹"; - case 2: - return "娲惧彂"; - case 3: - return "姝ュ簭瀹屾垚"; - case 4: - return "鍙栨秷"; - case 5: - return "瀹岀粨"; - default: - return String.valueOf(this.status); - } - } - - public String getCreateTime$() { - if (Cools.isEmpty(this.createTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); - } - - public String getIoType$() { - BasWrkIotypeService service = SpringUtils.getBean(BasWrkIotypeService.class); - BasWrkIotype basWrkIotype = service.selectById(this.ioType); - if (!Cools.isEmpty(basWrkIotype)) { - return String.valueOf(basWrkIotype.getIoDesc()); - } - return null; - } - - public String getModiUser$() { - UserService service = SpringUtils.getBean(UserService.class); - User user = service.selectById(this.modiUser); - if (!Cools.isEmpty(user)) { - return String.valueOf(user.getUsername()); - } - return null; - } - - public String getModiTime$() { - if (Cools.isEmpty(this.modiTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); - } - - public String getAssignTime$() { - if (Cools.isEmpty(this.assignTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.assignTime); - } - - public String getExecuteTime$() { - if (Cools.isEmpty(this.executeTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.executeTime); - } - - public String getCompleteTime$() { - if (Cools.isEmpty(this.completeTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.completeTime); - } - - public String getCancelTime$() { - if (Cools.isEmpty(this.cancelTime)) { - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.cancelTime); - } - - public String getWrkSts$() { - BasWrkStatusService service = SpringUtils.getBean(BasWrkStatusService.class); - BasWrkStatus basWrkStatus = service.selectById(this.wrkSts); - if (!Cools.isEmpty(basWrkStatus)) { - return String.valueOf(basWrkStatus.getWrkDesc()); - } - return null; - } - - /** - * 鑾峰彇鎸佺画鏃堕棿 - */ - public String getDurationTime() { - if (Cools.isEmpty(this.createTime)) { - return ""; - } - - Date endDate = new Date(); - if (!Cools.isEmpty(this.assignTime)) { - endDate = this.assignTime; - } - - //鐢ㄦ潵鑾峰彇涓や釜鏃堕棿鐩稿樊鐨勬绉掓暟 - long l = this.createTime.getTime() - endDate.getTime(); - - //鍒嗗埆璁$畻鐩稿樊鐨勫ぉ銆佸皬鏃躲�佸垎銆佺 - long day = l / (24 * 60 * 60 * 1000); - long hour = (l / (60 * 60 * 1000) - day * 24); - long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60); - long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); - - return Math.abs(day) + "澶�" + Math.abs(hour) + "灏忔椂" + Math.abs(min) + "鍒�" + Math.abs(s) + "绉�"; - } } diff --git a/src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java b/src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java similarity index 90% rename from src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java rename to src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java index a6515e8..49f98f7 100644 --- a/src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java +++ b/src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java @@ -1,4 +1,4 @@ -package com.zy.asrs.entity.param; +package com.zy.asrs.entity.wms; import lombok.Data; diff --git a/src/main/java/com/zy/asrs/entity/wms/WmsFeedback.java b/src/main/java/com/zy/asrs/entity/wms/WmsFeedback.java new file mode 100644 index 0000000..bdaf83e --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/wms/WmsFeedback.java @@ -0,0 +1,32 @@ +package com.zy.asrs.entity.wms; + +import lombok.Data; + +@Data +public class WmsFeedback { + /** + * 鍒嗛厤鐨勮揣浣嶆墍灞炰换鍔D + */ + private String taskNo; + /** + * 2锛氭淳鍙� + * 4锛氬彇娑� + * 5锛氬畬缁� + * 6锛氬簱浣嶄笉涓虹┖ + */ + private Integer status; + /** + * 1:鍏ュ簱锛�2:鍑哄簱 + */ + private Integer ioType; + /** + * 鎵樼洏鐮� + */ + private String barcode; + /** + * 涓婃姤鏃堕棿 + */ + private String reportTime; + + +} diff --git a/src/main/java/com/zy/asrs/entity/param/Result.java b/src/main/java/com/zy/asrs/entity/wms/WmsResult.java similarity index 80% rename from src/main/java/com/zy/asrs/entity/param/Result.java rename to src/main/java/com/zy/asrs/entity/wms/WmsResult.java index 94e8945..c52066b 100644 --- a/src/main/java/com/zy/asrs/entity/param/Result.java +++ b/src/main/java/com/zy/asrs/entity/wms/WmsResult.java @@ -1,9 +1,9 @@ -package com.zy.asrs.entity.param; +package com.zy.asrs.entity.wms; import lombok.Data; @Data -public class Result { +public class WmsResult { /** * 鍒嗛厤鐨勮揣浣嶆墍灞炰换鍔D */ diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java index c8de1b7..daaa6bd 100644 --- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java @@ -106,5 +106,5 @@ WrkMast selectWorkingPakin(@Param("sourceStaNo") Integer sourceStaNo); - WrkMast selectWorkingPakout(@Param("sourceStaNo") Integer sourceStaNo); + WrkMast selectWorkingPakout(@Param("staNo") Integer staNo); } diff --git a/src/main/java/com/zy/asrs/service/ToWmsService.java b/src/main/java/com/zy/asrs/service/ToWmsService.java new file mode 100644 index 0000000..24acf23 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/ToWmsService.java @@ -0,0 +1,13 @@ +package com.zy.asrs.service; + +import com.zy.asrs.entity.TaskWrk; +import com.zy.asrs.entity.wms.StorageEscalationParam; +import com.zy.asrs.entity.wms.WmsResult; + +public interface ToWmsService { + + void addReportLog(TaskWrk taskWrk); + + WmsResult getLocNoFromWms(StorageEscalationParam wmsParam); + +} diff --git a/src/main/java/com/zy/asrs/service/impl/CommonServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CommonServiceImpl.java index 490cc22..bdb42f5 100644 --- a/src/main/java/com/zy/asrs/service/impl/CommonServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/CommonServiceImpl.java @@ -12,8 +12,8 @@ import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.domain.param.CrnOperatorParam; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.Result; -import com.zy.asrs.entity.param.StorageEscalationParam; +import com.zy.asrs.entity.wms.WmsResult; +import com.zy.asrs.entity.wms.StorageEscalationParam; import com.zy.asrs.entity.param.TaskOverToWms; import com.zy.asrs.mapper.BasCrnErrorMapper; import com.zy.asrs.mapper.StaDescMapper; @@ -213,7 +213,7 @@ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } else { if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) { - Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class); + WmsResult result = JSON.parseObject(jsonObject.get("Result").toString(), WmsResult.class); // 鍒涙柊涓�涓叆搴撳伐浣滄。 TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo()); if (Cools.isEmpty(taskWrk)) { @@ -1468,7 +1468,7 @@ return response; } - private TaskWrk createTask1(Result result, String barcode) { + private TaskWrk createTask1(WmsResult result, String barcode) { String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn()); 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 4cacb51..20dd5f3 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -7,14 +7,13 @@ import com.core.common.R; import com.core.exception.CoolException; import com.zy.asrs.controller.CrnController; -import com.zy.asrs.controller.SiteController; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.domain.param.CrnOperatorParam; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.Result; -import com.zy.asrs.entity.param.StorageEscalationParam; import com.zy.asrs.entity.param.TaskOverToWms; +import com.zy.asrs.entity.wms.StorageEscalationParam; +import com.zy.asrs.entity.wms.WmsResult; import com.zy.asrs.mapper.BasCrnErrorMapper; import com.zy.asrs.mapper.StaDescMapper; import com.zy.asrs.mapper.TaskWrkMapper; @@ -90,8 +89,6 @@ private CommandInfoService commandInfoService; @Autowired - private OpenServiceImpl openServiceImpl; - @Autowired private StaDescService staDescService; @Autowired @@ -99,25 +96,33 @@ @Autowired private CommonService commonService; + @Autowired + private ToWmsService toWmsService; + @Value("${wms.url}") private String wmsUrl; + @Value("${wms.inboundTaskApplyPath}") private String inboundTaskApplyPath; - @Value("${wms.TaskExecCallback}") - private String TaskExecCallback; + + @Value("${wms.taskExecCallback}") + private String taskExecCallback; + @Value("${wms.taskStatusFeedbackPath}") private String taskStatusFeedbackPath; + @Autowired private CrnController crnController; - @Autowired - private SiteController siteController; @Value("${wms.code}") private String code; + @Value("${wms.successCode}") private String successCode; + @Value("${wms.msg}") private String msg; + @Value("${wms.data}") private String data; @@ -203,94 +208,14 @@ String response = ""; Boolean success = false; try { - response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath(inboundTaskApplyPath) - .setJson(JSON.toJSONString(storageEscalationParam)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); + WmsResult result = toWmsService.getLocNoFromWms(storageEscalationParam); if (back) { staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } else { - if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get(code)) && jsonObject.get(code).equals(successCode)) { - Result result = JSON.parseObject(jsonObject.get(data).toString(), Result.class); + if (result != null) { - try { - BasDevp basDevp = basDevpService.selectById(inSta.getStaNo()); - if (Cools.isEmpty(basDevp)) { - log.error("绔欑偣鍙峰紓甯�1" + inSta.getStaNo()); - throw new CoolException("绔欑偣鍙峰紓甯�1,鏈煡璇㈠埌绔欑偣淇℃伅" + inSta.getStaNo()); - } - Integer staNoCrnNo = Utils.StaNoCrnNo(inSta.getStaNo()); - if (staNoCrnNo == 0) { - basDevp.setStaErr(1); - basDevpService.updateById(basDevp); - log.error("绔欑偣鍙峰紓甯�2" + inSta.getStaNo()); - throw new CoolException("绔欑偣鍙峰紓甯�2,绔欑偣鍙蜂笉瀛樺湪" + inSta.getStaNo()); - } else { - LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("crn_no", staNoCrnNo.longValue()) - .eq("loc_no", result.getLocNo())); - if (Cools.isEmpty(locMast)) { - basDevp.setStaErr(1); - basDevpService.updateById(basDevp); - log.error("绔欑偣鍙峰紓甯�3" + inSta.getStaNo()); - throw new CoolException("绔欑偣鍙峰紓甯�3锛氭宸烽亾涓嶅瓨鍦ㄧ洰鏍囧簱浣�" + inSta.getStaNo()); - } - } - } catch (Exception e) { -// log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+"寮傚父淇℃伅"+e); - // 閫�鍥� - log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + errMsg); - log.error("鎵爜妫�娴嬬▼搴忓紓甯�,寮傚父淇℃伅" + e); - - staProtocol.setWorkNo((short) 9999); - staProtocol.setStaNo(inSta.getStaNo().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); -// TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo)); -// if (taskWrk != null) { -// taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず -// taskWrkMapper.updateById(taskWrk); -// } - continue; - } - //鏌ョ湅璇ュ簱浣嶆槸鍚︿负绌哄簱浣� - LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("loc_sts", "O") - .eq("loc_no", result.getLocNo())); - if (Cools.isEmpty(locMast)) { - try { - HashMap<String, Object> headParam1 = new HashMap<>(); - headParam1.put("taskNo", result.getTaskNo()); - headParam1.put("status", 6); - headParam1.put("ioType", 1); - headParam1.put("barcode", BoxNo); - String response2; - response2 = new HttpHandler.Builder() - // .setHeaders(headParam) - .setUri(wmsUrl) - .setPath(taskStatusFeedbackPath) - .setJson(JSON.toJSONString(headParam1)) - .build() - .doPost(); - JSONObject jsonObject1 = JSON.parseObject(response2); - apiLogService.save("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms" - , wmsUrl + taskStatusFeedbackPath - , null - , "127.0.0.1" - , JSON.toJSONString(headParam1) - , response - , true - ); - } catch (Exception e) { - log.error("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms", result.getTaskNo()); - throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触,娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==锛屽紓甯镐俊鎭細" + e); - } - } // 鍒涙柊涓�涓叆搴撳伐浣滄。 @@ -322,7 +247,7 @@ bool = true; } apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms" - , wmsUrl + TaskExecCallback + , wmsUrl + taskExecCallback , null , "127.0.0.1" , JSON.toJSONString(hashMap) @@ -407,7 +332,6 @@ continue; } log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk)); -// R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false); staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); staProtocol.setStaNo(staDesc.getStnNo().shortValue()); boolean offer = false; @@ -417,7 +341,6 @@ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e); log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer); } -// JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r)); if (offer) { log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk)); taskWrk.setStatus(5); @@ -426,7 +349,6 @@ } else { log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk)); -// log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯镐俊鎭�:"+JSON.toJSONString(r)); } } } catch (Exception e) { @@ -454,7 +376,6 @@ log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId()); continue; } - // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛� if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO @@ -597,16 +518,13 @@ LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint()); //鍒ゆ柇鍏跺簱浣嶆槸鍚︿负娣卞簱浣嶏紝濡傛灉涓烘繁搴撲綅鎵惧叾娴呭簱浣嶆槸閮芥湁璐� - if (locMast.getRow1() == 1 || locMast.getRow1() == 5) { - LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("row1", (locMast.getRow1() + 1)) - .eq("bay1", locMast.getBay1()) - .eq("lev1", locMast.getLev1()).eq("loc_sts", "F")); - if (!Cools.isEmpty(locMast1)) { - log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣"); - continue; - } - } else if (locMast.getRow1() == 4 || locMast.getRow1() == 8) { + boolean flag = false; + if (locMast.getRow1() == 1 || locMast.getRow1() == 5 || locMast.getRow1() == 9) { + flag = true; + } else if (locMast.getRow1() == 4 || locMast.getRow1() == 8 || locMast.getRow1() == 12) { + flag = true; + } + if (flag) { LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>() .eq("row1", (locMast.getRow1() - 1)) .eq("bay1", locMast.getBay1()) @@ -616,6 +534,7 @@ continue; } } + // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); @@ -674,7 +593,7 @@ .doPost(); JSONObject jsonObject = JSON.parseObject(response); Boolean bool = false; - if (jsonObject.get("ReturnStatus").equals(0)) { + if (jsonObject.get(code).equals(0)) { bool = true; taskWrk.setMarkStart(1); } @@ -754,14 +673,7 @@ .orderBy("io_pri", false)); for (TaskWrk taskWrk : taskWrks) { - // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� -// if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) { -// String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint()); -// TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo); -// if (!Cools.isEmpty(hallowLocNoTask)){ -// continue; -// } -// } + // 鍫嗗灈鏈烘帶鍒惰繃婊� if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { continue; @@ -810,7 +722,7 @@ } try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("TaskNo", taskWrk.getTaskNo()); + headParam.put("taskNo", taskWrk.getTaskNo()); String response; response = new HttpHandler.Builder() // .setHeaders(headParam) @@ -1274,7 +1186,7 @@ return response; } - private TaskWrk createInTask(Result result, String barcode, Integer startPoint) { + private TaskWrk createInTask(WmsResult result, String barcode, Integer startPoint) { //String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn()); String locNo = result.getLocNo(); @@ -1312,56 +1224,161 @@ // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - for (DevpSlave.Sta outSta : devp.getOutSta()) { - WrkMast pakout = wrkMastMapper.selectWorkingPakout(outSta.getStaNo()); - switch (outSta.getStaNo()) { - - case 203: + for (DevpSlave.Sta inSta : devp.getInSta()) { + WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getBackSta()); + switch (inSta.getBackSta()) { + case 116: if (pakout != null) { if (devpThread.ioModeOf1F1 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� devpThread.ioModeOf1F1 = IoModeType.PAKOUT_BOOTING; WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() - && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() - && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { + && !devpThread.getStation().get(inSta.getBackSta()).isLoading() + && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { // 鍑哄簱妯″紡 - devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE; + devpThread.ioModeOf1F1 = IoModeType.PAKOUT_MODE; } } } else { // 鍏ュ簱妯″紡 - devpThread.ioModeOf2F = IoModeType.PAKIN_MODE; + devpThread.ioModeOf1F1 = IoModeType.PAKIN_MODE; } break; - case 401: + case 117: if (pakout != null) { - if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) { + if (devpThread.ioModeOf1F2 != IoModeType.PAKOUT_MODE) { // 鍑哄簱鍒囨崲涓� - devpThread.ioModeOf4F = IoModeType.PAKOUT_BOOTING; + devpThread.ioModeOf1F2 = IoModeType.PAKOUT_BOOTING; WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() - && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() - && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { + && !devpThread.getStation().get(inSta.getBackSta()).isLoading() + && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { // 鍑哄簱妯″紡 - devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE; + devpThread.ioModeOf1F2 = IoModeType.PAKOUT_MODE; } } } else { // 鍏ュ簱妯″紡 - devpThread.ioModeOf4F = IoModeType.PAKIN_MODE; + devpThread.ioModeOf1F2 = IoModeType.PAKIN_MODE; + } + break; + case 118: + if (pakout != null) { + if (devpThread.ioModeOf1F3 != IoModeType.PAKOUT_MODE) { + // 鍑哄簱鍒囨崲涓� + devpThread.ioModeOf1F3 = IoModeType.PAKOUT_BOOTING; + WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() + && !devpThread.getStation().get(inSta.getBackSta()).isLoading() + && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { + // 鍑哄簱妯″紡 + devpThread.ioModeOf1F3 = IoModeType.PAKOUT_MODE; + } + } + } else { + // 鍏ュ簱妯″紡 + devpThread.ioModeOf1F3 = IoModeType.PAKIN_MODE; + } + break; + case 119: + if (pakout != null) { + if (devpThread.ioModeOf1F4 != IoModeType.PAKOUT_MODE) { + // 鍑哄簱鍒囨崲涓� + devpThread.ioModeOf1F4 = IoModeType.PAKOUT_BOOTING; + WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() + && !devpThread.getStation().get(inSta.getBackSta()).isLoading() + && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { + // 鍑哄簱妯″紡 + devpThread.ioModeOf1F4 = IoModeType.PAKOUT_MODE; + } + } + } else { + // 鍏ュ簱妯″紡 + devpThread.ioModeOf1F4 = IoModeType.PAKIN_MODE; + } + break; + case 120: + if (pakout != null) { + if (devpThread.ioModeOf1F5 != IoModeType.PAKOUT_MODE) { + // 鍑哄簱鍒囨崲涓� + devpThread.ioModeOf1F5 = IoModeType.PAKOUT_BOOTING; + WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() + && !devpThread.getStation().get(inSta.getBackSta()).isLoading() + && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { + // 鍑哄簱妯″紡 + devpThread.ioModeOf1F5 = IoModeType.PAKOUT_MODE; + } + } + } else { + // 鍏ュ簱妯″紡 + devpThread.ioModeOf1F5 = IoModeType.PAKIN_MODE; + } + break; + case 203: + if (pakout != null) { + if (devpThread.ioModeOf2F1 != IoModeType.PAKOUT_MODE) { + // 鍑哄簱鍒囨崲涓� + devpThread.ioModeOf2F1 = IoModeType.PAKOUT_BOOTING; + WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() + && !devpThread.getStation().get(inSta.getBackSta()).isLoading() + && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { + // 鍑哄簱妯″紡 + devpThread.ioModeOf2F1 = IoModeType.PAKOUT_MODE; + } + } + } else { + // 鍏ュ簱妯″紡 + devpThread.ioModeOf2F1 = IoModeType.PAKIN_MODE; + } + break; + + case 207: + if (pakout != null) { + if (devpThread.ioModeOf2F2 != IoModeType.PAKOUT_MODE) { + // 鍑哄簱鍒囨崲涓� + devpThread.ioModeOf2F2 = IoModeType.PAKOUT_BOOTING; + WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() + && !devpThread.getStation().get(inSta.getBackSta()).isLoading() + && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { + // 鍑哄簱妯″紡 + devpThread.ioModeOf2F2 = IoModeType.PAKOUT_MODE; + } + } + } else { + // 鍏ュ簱妯″紡 + devpThread.ioModeOf2F2 = IoModeType.PAKIN_MODE; + } + break; + + case 212: + if (pakout != null) { + if (devpThread.ioModeOf2F3 != IoModeType.PAKOUT_MODE) { + // 鍑哄簱鍒囨崲涓� + devpThread.ioModeOf2F3 = IoModeType.PAKOUT_BOOTING; + WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); + if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() + && !devpThread.getStation().get(inSta.getBackSta()).isLoading() + && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) { + // 鍑哄簱妯″紡 + devpThread.ioModeOf2F3 = IoModeType.PAKOUT_MODE; + } + } + } else { + // 鍏ュ簱妯″紡 + devpThread.ioModeOf2F3 = IoModeType.PAKIN_MODE; } break; } } - } - } catch (Exception e) { e.printStackTrace(); } - - } } diff --git a/src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java new file mode 100644 index 0000000..5cbbc86 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java @@ -0,0 +1,196 @@ +package com.zy.asrs.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.Cools; +import com.core.exception.CoolException; +import com.zy.asrs.entity.BasDevp; +import com.zy.asrs.entity.LocMast; +import com.zy.asrs.entity.TaskWrk; +import com.zy.asrs.entity.TaskWrkReport; +import com.zy.asrs.entity.wms.StorageEscalationParam; +import com.zy.asrs.entity.wms.WmsResult; +import com.zy.asrs.service.*; +import com.zy.asrs.utils.Utils; +import com.zy.common.service.CommonService; +import com.zy.common.utils.HttpHandler; +import com.zy.common.utils.Synchro; +import com.zy.core.cache.MessageQueue; +import com.zy.core.enums.SlaveType; +import com.zy.core.model.Task; +import com.zy.core.properties.SlaveProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.Date; +import java.util.HashMap; + +@Service +public class ToWmsServiceImpl implements ToWmsService { + + + @Autowired + private TaskWrkService taskWrkService; + @Autowired + private SlaveProperties slaveProperties; + @Autowired + private TaskWrkReportService taskWrkReportService; + @Autowired + private StaDescService staDescService; + @Autowired + private CommonService commonService; + @Autowired + private LocMastService locMastService; + @Autowired + private BasDevpService basDevpService; + + + @Autowired + private ApiLogService apiLogService; + + + @Value("${wms.url}") + private String wmsUrl; + /** + * 鐢宠鍏ュ簱 + */ + @Value("${wms.inboundTaskApplyPath}") + private String inboundTaskApplyPath; + /** + * 浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS + */ + @Value("${wms.taskExecCallback}") + private String taskExecCallback; + /** + * 浠诲姟瀹屾垚缁撴潫鏃讹紝WCS鍥炶皟WMS + */ + @Value("${wms.taskStatusFeedbackPath}") + private String taskStatusFeedbackPath; + + @Value("${wms.code}") + private String code; + + @Value("${wms.successCode}") + private String successCode; + + @Value("${wms.msg}") + private String msg; + + @Value("${wms.data}") + private String data; +@Override +public void addReportLog(TaskWrk taskWrk) { + TaskWrkReport taskWrkReport = new TaskWrkReport(); + Synchro.Copy(taskWrk, taskWrkReport); + taskWrkReport.setCreateTime(new Date()); + taskWrkReportService.insert(taskWrkReport); + } + + @Override + public WmsResult getLocNoFromWms(StorageEscalationParam wmsParam) { + String response = ""; + Boolean success = false; + try { + response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath(inboundTaskApplyPath) + .setJson(JSON.toJSONString(wmsParam)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get(code)) && jsonObject.get(code).equals(successCode)) { + WmsResult result = JSON.parseObject(jsonObject.get(data).toString(), WmsResult.class); + return result; + } + } catch (IOException e) { + + } finally { + addApiLog("鍏ュ簱浠诲姟璇锋眰鑾峰彇搴撲綅", wmsUrl + inboundTaskApplyPath, JSON.toJSONString(wmsParam), response, success); + } + return null; + } + + public boolean checkLocNo(String locNo) { + try { + BasDevp basDevp = basDevpService.selectById(inSta.getStaNo()); + if (Cools.isEmpty(basDevp)) { + log.error("绔欑偣鍙峰紓甯�1" + inSta.getStaNo()); + throw new CoolException("绔欑偣鍙峰紓甯�1,鏈煡璇㈠埌绔欑偣淇℃伅" + inSta.getStaNo()); + } + Integer staNoCrnNo = Utils.StaNoCrnNo(inSta.getStaNo()); + if (staNoCrnNo == 0) { + basDevp.setStaErr(1); + basDevpService.updateById(basDevp); + log.error("绔欑偣鍙峰紓甯�2" + inSta.getStaNo()); + throw new CoolException("绔欑偣鍙峰紓甯�2,绔欑偣鍙蜂笉瀛樺湪" + inSta.getStaNo()); + } else { + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("crn_no", staNoCrnNo.longValue()) + .eq("loc_no", result.getLocNo())); + if (Cools.isEmpty(locMast)) { + basDevp.setStaErr(1); + basDevpService.updateById(basDevp); + log.error("绔欑偣鍙峰紓甯�3" + inSta.getStaNo()); + throw new CoolException("绔欑偣鍙峰紓甯�3锛氭宸烽亾涓嶅瓨鍦ㄧ洰鏍囧簱浣�" + inSta.getStaNo()); + } + } + } catch (Exception e) { + // log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+"寮傚父淇℃伅"+e); + // 閫�鍥� + log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + errMsg); + log.error("鎵爜妫�娴嬬▼搴忓紓甯�,寮傚父淇℃伅" + e); + + staProtocol.setWorkNo((short) 9999); + staProtocol.setStaNo(inSta.getStaNo().shortValue()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo)); + if (taskWrk != null) { + taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず + taskWrkMapper.updateById(taskWrk); + } + continue; + } + //鏌ョ湅璇ュ簱浣嶆槸鍚︿负绌哄簱浣� + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("loc_sts", "O") + .eq("loc_no", result.getLocNo())); + if (Cools.isEmpty(locMast)) { + try { + HashMap<String, Object> headParam1 = new HashMap<>(); + headParam1.put("taskNo", result.getTaskNo()); + headParam1.put("status", 6); + headParam1.put("ioType", 1); + headParam1.put("barcode", BoxNo); + String response2; + response2 = new HttpHandler.Builder() + // .setHeaders(headParam) + .setUri(wmsUrl) + .setPath(taskStatusFeedbackPath) + .setJson(JSON.toJSONString(headParam1)) + .build() + .doPost(); + JSONObject jsonObject1 = JSON.parseObject(response2); + apiLogService.save("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms" + , wmsUrl + taskStatusFeedbackPath + , null + , "127.0.0.1" + , JSON.toJSONString(headParam1) + , response + , true + ); + } catch (Exception e) { + log.error("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms", result.getTaskNo()); + throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触,娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==锛屽紓甯镐俊鎭細" + e); + } + } + } + + + private void addApiLog(String nameSpace, String url, String param, String response, Boolean success) { + apiLogService.save(nameSpace, url, null, "127.0.0.1", param, response, success); + } +} diff --git a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java index 8ea8636..7e7df3d 100644 --- a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java +++ b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java @@ -10,7 +10,6 @@ import com.zy.common.utils.Synchro; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -33,16 +32,9 @@ @Autowired private TaskWrkReportService taskWrkReportService; - @Value("${wms.url}") - private String wmsUrl; - - @Value("${wms.TaskExecCallback}") - private String TaskExecCallback; - @Scheduled(cron = "0/3 * * * * ? ") public void execute() throws IOException { - for (TaskWrk taskWrk : taskWrkService.selectToBeHistoryData()) { switch (taskWrk.getStatus()) { case 4: diff --git a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java index 60e64f4..1e31a15 100644 --- a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java +++ b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java @@ -2,11 +2,13 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; +import com.core.common.DateUtils; import com.core.exception.CoolException; -import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.entity.TaskWrkReport; import com.zy.asrs.entity.TaskWrkReportLog; +import com.zy.asrs.entity.wms.WmsFeedback; import com.zy.asrs.service.ApiLogService; import com.zy.asrs.service.TaskWrkReportLogService; import com.zy.asrs.service.TaskWrkReportService; @@ -19,7 +21,7 @@ import org.springframework.stereotype.Component; import java.io.IOException; -import java.util.HashMap; +import java.util.Date; /** * 瀹氭椂灏嗕换鍔�(瀹屾垚銆佸彇娑�)杞垚鏃ュ織 @@ -47,30 +49,26 @@ @Scheduled(cron = "0/3 * * * * ? ") public void execute() throws IOException { - Page<TaskWrkReport> taskWrkReportPage = taskWrkReportService.selectPage(new Page<>(0, 10)); + Page<TaskWrkReport> taskWrkReportPage = taskWrkReportService.selectPage(new Page<>(0, 100), new EntityWrapper<TaskWrkReport>().orderBy("createTime", true)); if (taskWrkReportPage.getRecords() != null) { + //鏂板涓�涓繃婊ゆ満鍒� for (TaskWrkReport taskWrk : taskWrkReportPage.getRecords()) { - HashMap<String, Object> headParam = new HashMap<>(); - if (taskWrk.getStatus().equals(TaskStatusType.OVER.id) || taskWrk.getStatus() == 7) {//瀹屾垚 - headParam.put("Result", 1); - } else if (taskWrk.getStatus().equals(TaskStatusType.CANCEL.id)) { - headParam.put("Result", 2); - } + WmsFeedback wmsFeedback = getWmsFeedback(taskWrk); String response = ""; Boolean bool = false; try { - headParam.put("TaskNo", taskWrk.getTaskNo()); log.info("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms={}", taskWrk); response = new HttpHandler.Builder() // .setHeaders(headParam) .setUri(wmsUrl) .setPath(TaskExecCallback) - .setJson(JSON.toJSONString(headParam)) + .setJson(JSON.toJSONString(wmsFeedback)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); TaskWrkReportLog taskWrkLog = new TaskWrkReportLog(); Synchro.Copy(taskWrk, taskWrkLog); + taskWrkLog.setId(null); if (!taskWrkReportLogService.insert(taskWrkLog)) { throw new CoolException("杞巻鍙叉。澶辫触" + taskWrkLog); } @@ -81,11 +79,11 @@ } catch (Exception e) { log.error("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms澶辫触{},杩斿洖鍊�={}", taskWrk, response); } finally { - apiLogService.save("wcs瀹屾垚鎴栬�呭彇娑堜换鍔′笂鎶ms" + apiLogService.save("浠诲姟鐘舵�佷笂鎶�" , wmsUrl + TaskExecCallback , null , "127.0.0.1" - , JSON.toJSONString(headParam) + , JSON.toJSONString(wmsFeedback) , response , bool ); @@ -95,4 +93,14 @@ } + + private WmsFeedback getWmsFeedback(TaskWrkReport taskWrk) { + WmsFeedback feedback = new WmsFeedback(); + feedback.setBarcode(taskWrk.getBarcode()); + feedback.setReportTime(DateUtils.convert(new Date())); + feedback.setIoType(taskWrk.getIoType()); + feedback.setTaskNo(taskWrk.getTaskNo()); + feedback.setStatus(taskWrk.getStatus()); + return feedback; + } } diff --git a/src/main/java/com/zy/core/model/DevpSlave.java b/src/main/java/com/zy/core/model/DevpSlave.java index 799cab2..93cc1db 100644 --- a/src/main/java/com/zy/core/model/DevpSlave.java +++ b/src/main/java/com/zy/core/model/DevpSlave.java @@ -27,6 +27,7 @@ private List<Sta> pickSta = new ArrayList<>(); + @Data public static class Sta { diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 8a952fb..b1772cd 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -1,6 +1,6 @@ wcs-slave: doubleDeep: true #鍙屾繁 - doubleLocs: 1,4,5,8 #鍙屾繁搴撲綅鎺掑彿 1,4,5,8 + doubleLocs: 1,4,5,8,9,12 #鍙屾繁搴撲綅鎺掑彿 groupCount: 4 #涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁� crn[0]: #鍫嗗灈鏈�1 id: 1 @@ -139,8 +139,8 @@ emptyInSta[0]: #绌烘澘鍏ュ簱鍙�0 staNo: 116 inSta[0]: #鍏ュ簱鍙�1 - staNo: 116 - backSta: 101 + staNo: 101 + backSta: 116 barcode: ${wcs-slave.barcode[0].id} inSta[1]: #鍏ュ簱鍙�2 staNo: 117 @@ -151,24 +151,24 @@ backSta: 107 barcode: ${wcs-slave.barcode[2].id} inSta[3]: #鍏ュ簱鍙�4 - staNo: 119 - backSta: 110 + staNo: 110 + backSta: 119 barcode: ${wcs-slave.barcode[3].id} - inSta[4]: #鍏ュ簱鍙�1 - staNo: 120 - backSta: 113 + inSta[4]: #鍏ュ簱鍙�5 + staNo: 113 + backSta: 120 barcode: ${wcs-slave.barcode[4].id} - inSta[5]: #鍏ュ簱鍙�2 - staNo: 203 - backSta: 110 + inSta[5]: #鍏ュ簱鍙�6 + staNo: 202 + backSta: 203 barcode: ${wcs-slave.barcode[5].id} - inSta[6]: #鍏ュ簱鍙�3 - staNo: 207 - backSta: 110 + inSta[6]: #鍏ュ簱鍙�7 + staNo: 206 + backSta: 207 barcode: ${wcs-slave.barcode[6].id} - inSta[7]: #鍏ュ簱鍙�4 - staNo: 212 - backSta: 110 + inSta[7]: #鍏ュ簱鍙�8 + staNo: 211 + backSta: 212 barcode: ${wcs-slave.barcode[7].id} outSta[0]: #鍑哄簱鍙�1 staNo: 116 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e58ae2e..54814ad 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -47,18 +47,13 @@ # 鏄惁寮�鍚笂鎶� start: true # WMS绯荤粺ip - #url: 10.32.53.195:8080 - # WMS绯荤粺ip - # url: 10.210.157.109:8090 url: 10.10.10.222:2410 # 鍏ュ簱浠诲姟鐢宠鎺ュ彛 - #inboundTaskApplyPath: api/InterFace/inboundTaskApply inboundTaskApplyPath: api/StereoscopicCallBack/AcceptTaskStatus - # inboundTaskApplyPath: open/asrs/inboundTaskApply # 浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS taskStatusFeedbackPath: api/StereoscopicCallBack/TaskExecCallback # 浠诲姟瀹屾垚缁撴潫鏃讹紝WCS鍥炶皟WMS - TaskExecCallback: api/StereoscopicCallBack/TaskExecFinishedCallback + taskExecCallback: api/StereoscopicCallBack/TaskExecFinishedCallback # 绉诲簱鐢宠鎺ュ彛 movePath: api/InterFace/get_InterFace_TestStorage code: code diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml index 32279a3..c840ad6 100644 --- a/src/main/resources/mapper/WrkMastMapper.xml +++ b/src/main/resources/mapper/WrkMastMapper.xml @@ -177,7 +177,7 @@ where wrk_no > 0) )) and io_type != 11 - and source_sta_no = #{sourceStaNo} + and sta_no = #{staNo} order by io_time,wrk_no </select> </mapper> -- Gitblit v1.9.1