From 1da5c464f48dca0be85647b1d4f284d92c9b3eba Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 10 十月 2022 10:52:27 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/mapper/BasSteErrLogMapper.java | 12 +
src/main/java/com/zy/asrs/service/BasSteErrLogService.java | 12 +
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 123 +++++++++++++
src/main/resources/mapper/BasSteErrLogMapper.xml | 32 +++
src/main/java/com/zy/asrs/entity/BasSteErrLog.java | 266 +++++++++++++++++++++++++++++
src/main/java/com/zy/asrs/service/impl/BasSteErrLogServiceImpl.java | 36 ++++
src/main/java/com/zy/core/MainProcess.java | 2
7 files changed, 481 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/BasSteErrLog.java b/src/main/java/com/zy/asrs/entity/BasSteErrLog.java
new file mode 100644
index 0000000..aa208ed
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/BasSteErrLog.java
@@ -0,0 +1,266 @@
+package com.zy.asrs.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@TableName("asr_bas_ste_err_log")
+public class BasSteErrLog implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value= "")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 缂栧彿
+ */
+ @ApiModelProperty(value= "缂栧彿")
+ private String uuid;
+
+ /**
+ * 宸ヤ綔鍙�
+ */
+ @ApiModelProperty(value= "宸ヤ綔鍙�")
+ @TableField("wrk_no")
+ private Integer wrkNo;
+
+ /**
+ * 鍙戠敓鏃堕棿
+ */
+ @ApiModelProperty(value= "鍙戠敓鏃堕棿")
+ @TableField("start_time")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date startTime;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ @ApiModelProperty(value= "缁撴潫鏃堕棿")
+ @TableField("end_time")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date endTime;
+
+ /**
+ * 宸ヤ綔鐘舵��
+ */
+ @ApiModelProperty(value= "宸ヤ綔鐘舵��")
+ @TableField("wrk_sts")
+ private Long wrkSts;
+
+ /**
+ * 鍏ュ嚭搴撶被鍨�
+ */
+ @ApiModelProperty(value= "鍏ュ嚭搴撶被鍨�")
+ @TableField("io_type")
+ private Integer ioType;
+
+ /**
+ * 绌挎杞�
+ */
+ @ApiModelProperty(value= "绌挎杞�")
+ @TableField("ste_no")
+ private Integer steNo;
+
+ /**
+ * plc
+ */
+ @ApiModelProperty(value= "plc")
+ @TableField("plc_no")
+ private Integer plcNo;
+
+ /**
+ * 鐩爣搴撲綅
+ */
+ @ApiModelProperty(value= "鐩爣搴撲綅")
+ @TableField("loc_no")
+ private String locNo;
+
+ /**
+ * 鐩爣绔�
+ */
+ @ApiModelProperty(value= "鐩爣绔�")
+ @TableField("sta_no")
+ private Integer staNo;
+
+ /**
+ * 婧愮珯
+ */
+ @ApiModelProperty(value= "婧愮珯")
+ @TableField("source_sta_no")
+ private Integer sourceStaNo;
+
+ /**
+ * 婧愬簱浣�
+ */
+ @ApiModelProperty(value= "婧愬簱浣�")
+ @TableField("source_loc_no")
+ private String sourceLocNo;
+
+ /**
+ * 鏉$爜
+ */
+ @ApiModelProperty(value= "鏉$爜")
+ private String barcode;
+
+ /**
+ * 寮傚父鐮�
+ */
+ @ApiModelProperty(value= "寮傚父鐮�")
+ @TableField("err_code")
+ private Integer errCode;
+
+ /**
+ * 寮傚父
+ */
+ @ApiModelProperty(value= "寮傚父")
+ private String error;
+
+ /**
+ * 寮傚父鎯呭喌 1: 鏈鐞� 2: 宸蹭慨澶�
+ */
+ @ApiModelProperty(value= "寮傚父鎯呭喌 1: 鏈鐞� 2: 宸蹭慨澶� ")
+ private Integer status;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @TableField("create_time")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ /**
+ * 娣诲姞浜哄憳
+ */
+ @ApiModelProperty(value= "娣诲姞浜哄憳")
+ @TableField("create_by")
+ private Long createBy;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value= "淇敼鏃堕棿")
+ @TableField("update_time")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /**
+ * 淇敼浜哄憳
+ */
+ @ApiModelProperty(value= "淇敼浜哄憳")
+ @TableField("update_by")
+ private Long updateBy;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value= "澶囨敞")
+ private String memo;
+
+ public BasSteErrLog() {}
+
+ public BasSteErrLog(String uuid, Integer wrkNo, Date startTime, Date endTime, Long wrkSts, Integer ioType, Integer steNo, Integer plcNo, String locNo, Integer staNo, Integer sourceStaNo, String sourceLocNo, String barcode, Integer errCode, String error, Integer status, Date createTime, Long createBy, Date updateTime, Long updateBy, String memo) {
+ this.uuid = uuid;
+ this.wrkNo = wrkNo;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.wrkSts = wrkSts;
+ this.ioType = ioType;
+ this.steNo = steNo;
+ this.plcNo = plcNo;
+ this.locNo = locNo;
+ this.staNo = staNo;
+ this.sourceStaNo = sourceStaNo;
+ this.sourceLocNo = sourceLocNo;
+ this.barcode = barcode;
+ this.errCode = errCode;
+ this.error = error;
+ this.status = status;
+ this.createTime = createTime;
+ this.createBy = createBy;
+ this.updateTime = updateTime;
+ this.updateBy = updateBy;
+ this.memo = memo;
+ }
+
+// BasSteErrLog basSteErrLog = new BasSteErrLog(
+// null, // 缂栧彿
+// null, // 宸ヤ綔鍙�
+// null, // 鍙戠敓鏃堕棿
+// null, // 缁撴潫鏃堕棿
+// null, // 宸ヤ綔鐘舵��
+// null, // 鍏ュ嚭搴撶被鍨�
+// null, // 绌挎杞�
+// null, // plc
+// null, // 鐩爣搴撲綅
+// null, // 鐩爣绔�
+// null, // 婧愮珯
+// null, // 婧愬簱浣�
+// null, // 鏉$爜
+// null, // 寮傚父鐮�
+// null, // 寮傚父
+// null, // 寮傚父鎯呭喌
+// null, // 娣诲姞鏃堕棿
+// null, // 娣诲姞浜哄憳
+// null, // 淇敼鏃堕棿
+// null, // 淇敼浜哄憳
+// null // 澶囨敞
+// );
+
+ public String getStartTime$(){
+ if (Cools.isEmpty(this.startTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime);
+ }
+
+ public String getEndTime$(){
+ if (Cools.isEmpty(this.endTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.endTime);
+ }
+
+ public String getStatus$(){
+ if (null == this.status){ return null; }
+ switch (this.status){
+ case 1:
+ return "鏈鐞�";
+ case 2:
+ 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 getUpdateTime$(){
+ if (Cools.isEmpty(this.updateTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+ }
+
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasSteErrLogMapper.java b/src/main/java/com/zy/asrs/mapper/BasSteErrLogMapper.java
new file mode 100644
index 0000000..f88dcb3
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/BasSteErrLogMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.BasSteErrLog;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface BasSteErrLogMapper extends BaseMapper<BasSteErrLog> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasSteErrLogService.java b/src/main/java/com/zy/asrs/service/BasSteErrLogService.java
new file mode 100644
index 0000000..305f874
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasSteErrLogService.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.BasSteErrLog;
+
+public interface BasSteErrLogService extends IService<BasSteErrLog> {
+
+ BasSteErrLog findLatestByTaskNo(Integer steNo, Integer taskNo);
+
+ BasSteErrLog findLatest(Integer steNo);
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasSteErrLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasSteErrLogServiceImpl.java
new file mode 100644
index 0000000..19658dc
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasSteErrLogServiceImpl.java
@@ -0,0 +1,36 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.BasErrLog;
+import com.zy.asrs.entity.BasSteErrLog;
+import com.zy.asrs.mapper.BasSteErrLogMapper;
+import com.zy.asrs.service.BasSteErrLogService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("basSteErrLogService")
+public class BasSteErrLogServiceImpl extends ServiceImpl<BasSteErrLogMapper, BasSteErrLog> implements BasSteErrLogService {
+
+ @Override
+ public BasSteErrLog findLatestByTaskNo(Integer steNo, Integer taskNo) {
+ List<BasSteErrLog> basSteErrLogs = this.baseMapper.selectList(new EntityWrapper<BasSteErrLog>().eq("ste_no", steNo).eq("wrk_no", taskNo).orderBy("start_time", false));
+ if (basSteErrLogs == null || basSteErrLogs.size() == 0) {
+ return null;
+ } else {
+ return basSteErrLogs.get(0);
+ }
+ }
+
+ @Override
+ public BasSteErrLog findLatest(Integer steNo) {
+ List<BasSteErrLog> basSteErrLogs = this.baseMapper.selectList(new EntityWrapper<BasSteErrLog>().eq("ste_no", steNo).orderBy("start_time", false));
+ if (basSteErrLogs == null || basSteErrLogs.size() == 0) {
+ return null;
+ } else {
+ return basSteErrLogs.get(0);
+ }
+ }
+
+}
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 595c3d6..1a9d2c7 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -74,11 +74,15 @@
@Autowired
private BasErrLogService basErrLogService;
@Autowired
+ private BasSteErrLogService basSteErrLogService;
+ @Autowired
private BasCrnErrorMapper basCrnErrorMapper;
@Autowired
private BasSteService basSteService;
@Autowired
private WrkChargeService wrkChargeService;
+ @Autowired
+ private BasSteErrService basSteErrService;
@Autowired
private CommonService commonService;
@@ -1871,7 +1875,7 @@
continue;
}
BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
- String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName();
+ String errName = crnError==null? "鏈煡寮傚父":crnError.getErrName();
BasErrLog basErrLog = new BasErrLog(
null, // 缂栧彿
wrkMast.getWrkNo(), // 宸ヤ綔鍙�
@@ -1918,7 +1922,7 @@
// 璁板綍鏂板紓甯�
if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
- String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName();
+ String errName = crnError==null? "鏈煡寮傚父":crnError.getErrName();
BasErrLog basErrLog = new BasErrLog(
null, // 缂栧彿
null, // 宸ヤ綔鍙�
@@ -1964,6 +1968,121 @@
}
}
+ /**
+ * 绌挎杞﹀紓甯镐俊鎭褰�
+ */
+ @Async
+ public void recSteErr(){
+ Date now = new Date();
+ for (SteSlave ste : slaveProperties.getSte()) {
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
+ SteProtocol steProtocol = steThread.getSteProtocol();
+ if (steProtocol == null) {
+ continue;
+ }
+ // 鏈変换鍔�
+ if (steProtocol.getTaskNo() != 0) {
+ BasSteErrLog latest = basSteErrLogService.findLatestByTaskNo(ste.getId(), steProtocol.getTaskNo().intValue());
+ // 鏈夊紓甯�
+ if (latest == null) {
+ if (steProtocol.getAlarm() != null && steProtocol.isAlarm()) {
+ WrkMast wrkMast = wrkMastMapper.selectById(steProtocol.getTaskNo());
+ if (wrkMast == null) {
+ continue;
+ }
+ BasSteErr steErr = basSteErrService.selectById(steProtocol.getAlarm());
+ String errName = steErr==null? "鏈煡寮傚父":steErr.getErrName();
+ BasSteErrLog basSteErrLog = new BasSteErrLog(
+ null, // 缂栧彿
+ wrkMast.getWrkNo(), // 宸ヤ綔鍙�
+ now, // 鍙戠敓鏃堕棿
+ null, // 缁撴潫鏃堕棿
+ wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
+ wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
+ ste.getId(), // 鍫嗗灈鏈�
+ null, // plc
+ wrkMast.getLocNo(), // 鐩爣搴撲綅
+ wrkMast.getStaNo(), // 鐩爣绔�
+ wrkMast.getSourceStaNo(), // 婧愮珯
+ wrkMast.getSourceLocNo(), // 婧愬簱浣�
+ wrkMast.getBarcode(), // 鏉$爜
+ (int) steProtocol.getAlarm(), // 寮傚父鐮�
+ errName, // 寮傚父
+ 1, // 寮傚父鎯呭喌
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ "浠诲姟涓紓甯�" // 澶囨敞
+ );
+ if (!basSteErrLogService.insert(basSteErrLog)) {
+ log.error("绌挎杞lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", ste.getId(), errName);
+ }
+ }
+ } else {
+ // 寮傚父淇
+ if (steProtocol.getAlarm() == null || !steProtocol.isAlarm()) {
+ latest.setEndTime(now);
+ latest.setUpdateTime(now);
+ latest.setStatus(2);
+ if (!basSteErrLogService.updateById(latest)) {
+ log.error("绌挎杞lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", ste.getId(), latest.getId());
+ }
+ }
+ }
+ // 鏃犱换鍔�
+ } else {
+ BasSteErrLog latest = basSteErrLogService.findLatest(ste.getId());
+ // 鏈夊紓甯�
+ if (steProtocol.getAlarm() != null && steProtocol.isAlarm()) {
+ // 璁板綍鏂板紓甯�
+ if (latest == null || (latest.getErrCode() != steProtocol.getAlarm().intValue())) {
+ BasSteErr steErr = basSteErrService.selectById(steProtocol.getAlarm());
+ String errName = steErr==null? "鏈煡寮傚父":steErr.getErrName();
+ BasSteErrLog basSteErrLog = new BasSteErrLog(
+ null, // 缂栧彿
+ null, // 宸ヤ綔鍙�
+ now, // 鍙戠敓鏃堕棿
+ null, // 缁撴潫鏃堕棿
+ null, // 宸ヤ綔鐘舵��
+ null, // 鍏ュ嚭搴撶被鍨�
+ ste.getId(), // 鍫嗗灈鏈�
+ null, // plc
+ null, // 鐩爣搴撲綅
+ null, // 鐩爣绔�
+ null, // 婧愮珯
+ null, // 婧愬簱浣�
+ null, // 鏉$爜
+ (int)steProtocol.getAlarm(), // 寮傚父鐮�
+ errName, // 寮傚父
+ 1, // 寮傚父鎯呭喌
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ "鏃犱换鍔″紓甯�" // 澶囨敞
+ );
+ if (!basSteErrLogService.insert(basSteErrLog)) {
+ log.error("绌挎杞lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", ste.getId(), errName);
+ }
+ }
+ // 鏃犲紓甯�
+ } else {
+ // 寮傚父淇
+ if (latest != null && latest.getStatus() == 1) {
+ latest.setEndTime(now);
+ latest.setUpdateTime(now);
+ latest.setStatus(2);
+ if (!basSteErrLogService.updateById(latest)) {
+ log.error("绌挎杞lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", ste.getId(), latest.getId());
+ }
+ }
+ }
+ }
+ }
+ }
+
// -------------------------------------------------------------------------------
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index af52e13..ccd15ed 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -58,6 +58,8 @@
mainService.carGenerateStore();
// 鍫嗗灈鏈哄紓甯镐俊鎭褰�
mainService.recCrnErr();
+ // 绌挎杞﹀紓甯镐俊鎭褰�
+ mainService.recSteErr();
// 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
mainService.storeEmptyPlt();
// 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
diff --git a/src/main/resources/mapper/BasSteErrLogMapper.xml b/src/main/resources/mapper/BasSteErrLogMapper.xml
new file mode 100644
index 0000000..393f570
--- /dev/null
+++ b/src/main/resources/mapper/BasSteErrLogMapper.xml
@@ -0,0 +1,32 @@
+<?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.BasSteErrLogMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasSteErrLog">
+ <id column="id" property="id" />
+ <result column="uuid" property="uuid" />
+ <result column="wrk_no" property="wrkNo" />
+ <result column="start_time" property="startTime" />
+ <result column="end_time" property="endTime" />
+ <result column="wrk_sts" property="wrkSts" />
+ <result column="io_type" property="ioType" />
+ <result column="ste_no" property="steNo" />
+ <result column="plc_no" property="plcNo" />
+ <result column="loc_no" property="locNo" />
+ <result column="sta_no" property="staNo" />
+ <result column="source_sta_no" property="sourceStaNo" />
+ <result column="source_loc_no" property="sourceLocNo" />
+ <result column="barcode" property="barcode" />
+ <result column="err_code" property="errCode" />
+ <result column="error" property="error" />
+ <result column="status" property="status" />
+ <result column="create_time" property="createTime" />
+ <result column="create_by" property="createBy" />
+ <result column="update_time" property="updateTime" />
+ <result column="update_by" property="updateBy" />
+ <result column="memo" property="memo" />
+
+ </resultMap>
+
+</mapper>
--
Gitblit v1.9.1