From 82fd6513c1821b6112a50a8b507ba472d2795cdc Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 22 十二月 2020 15:47:08 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/BasErrLogService.java          |   12 
 src/main/java/com/zy/core/thread/SiemensCrnThread.java           |   23 +
 src/main/java/com/zy/asrs/service/impl/BasErrLogServiceImpl.java |   34 ++
 src/main/java/com/zy/asrs/entity/BasCrnOpt.java                  |  334 +++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java      |  112 ++++++
 src/main/java/com/zy/asrs/mapper/BasCrnOptMapper.java            |   12 
 src/main/java/com/zy/asrs/service/BasCrnOptService.java          |    8 
 src/main/java/com/zy/asrs/entity/BasErrLog.java                  |  456 ++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/BasCrnOptServiceImpl.java |   12 
 src/main/java/com/zy/asrs/mapper/BasErrLogMapper.java            |   12 
 10 files changed, 1,015 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/BasCrnOpt.java b/src/main/java/com/zy/asrs/entity/BasCrnOpt.java
new file mode 100644
index 0000000..ed98925
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/BasCrnOpt.java
@@ -0,0 +1,334 @@
+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 java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@TableName("asr_bas_crn_opt")
+public class BasCrnOpt 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 Integer wrkNo;
+
+    /**
+     * 鍫嗗灈鏈�
+     */
+    @ApiModelProperty(value= "鍫嗗灈鏈�")
+    @TableField("crn_no")
+    private Integer crnNo;
+
+    /**
+     * 涓嬪彂鏃堕棿
+     */
+    @ApiModelProperty(value= "涓嬪彂鏃堕棿")
+    @TableField("send_time")
+    private Date sendTime;
+
+    /**
+     * 妯″紡
+     */
+    @ApiModelProperty(value= "妯″紡")
+    private String mode;
+
+    /**
+     * 婧愭帓
+     */
+    @ApiModelProperty(value= "婧愭帓")
+    @TableField("source_row")
+    private Integer sourceRow;
+
+    /**
+     * 婧愬垪
+     */
+    @ApiModelProperty(value= "婧愬垪")
+    @TableField("source_bay")
+    private Integer sourceBay;
+
+    /**
+     * 婧愬眰
+     */
+    @ApiModelProperty(value= "婧愬眰")
+    @TableField("source_lev")
+    private Integer sourceLev;
+
+    /**
+     * 婧愮珯
+     */
+    @ApiModelProperty(value= "婧愮珯")
+    @TableField("source_sta")
+    private Integer sourceSta;
+
+    /**
+     * 鐩爣鎺�
+     */
+    @ApiModelProperty(value= "鐩爣鎺�")
+    @TableField("pos_row")
+    private Integer posRow;
+
+    /**
+     * 鐩爣鍒�
+     */
+    @ApiModelProperty(value= "鐩爣鍒�")
+    @TableField("pos_bay")
+    private Integer posBay;
+
+    /**
+     * 鐩爣灞�
+     */
+    @ApiModelProperty(value= "鐩爣灞�")
+    @TableField("pos_lev")
+    private Integer posLev;
+
+    /**
+     * 鐩爣绔�
+     */
+    @ApiModelProperty(value= "鐩爣绔�")
+    @TableField("pos_sta")
+    private Integer posSta;
+
+    /**
+     * 鍝嶅簲缁撴灉 1: 姝e父  0: 澶辫触  
+     */
+    @ApiModelProperty(value= "鍝嶅簲缁撴灉 1: 姝e父  0: 澶辫触  ")
+    private Integer response;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @ApiModelProperty(value= "淇敼鏃堕棿")
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 淇敼浜哄憳
+     */
+    @ApiModelProperty(value= "淇敼浜哄憳")
+    @TableField("update_by")
+    private Long updateBy;
+
+    public BasCrnOpt() {}
+
+    public BasCrnOpt(Integer wrkNo,Integer crnNo,Date sendTime,String mode,Integer sourceRow,Integer sourceBay,Integer sourceLev,Integer sourceSta,Integer posRow,Integer posBay,Integer posLev,Integer posSta,Integer response,Date updateTime,Long updateBy) {
+        this.wrkNo = wrkNo;
+        this.crnNo = crnNo;
+        this.sendTime = sendTime;
+        this.mode = mode;
+        this.sourceRow = sourceRow;
+        this.sourceBay = sourceBay;
+        this.sourceLev = sourceLev;
+        this.sourceSta = sourceSta;
+        this.posRow = posRow;
+        this.posBay = posBay;
+        this.posLev = posLev;
+        this.posSta = posSta;
+        this.response = response;
+        this.updateTime = updateTime;
+        this.updateBy = updateBy;
+    }
+
+//    BasCrnOpt basCrnOpt = new BasCrnOpt(
+//            null,    // 浠诲姟鍙�
+//            null,    // 鍫嗗灈鏈篬闈炵┖]
+//            null,    // 涓嬪彂鏃堕棿
+//            null,    // 妯″紡
+//            null,    // 婧愭帓
+//            null,    // 婧愬垪
+//            null,    // 婧愬眰
+//            null,    // 婧愮珯
+//            null,    // 鐩爣鎺�
+//            null,    // 鐩爣鍒�
+//            null,    // 鐩爣灞�
+//            null,    // 鐩爣绔�
+//            null,    // 鍝嶅簲缁撴灉
+//            null,    // 淇敼鏃堕棿
+//            null    // 淇敼浜哄憳
+//    );
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Integer getWrkNo() {
+        return wrkNo;
+    }
+
+    public void setWrkNo(Integer wrkNo) {
+        this.wrkNo = wrkNo;
+    }
+
+    public Integer getCrnNo() {
+        return crnNo;
+    }
+
+    public void setCrnNo(Integer crnNo) {
+        this.crnNo = crnNo;
+    }
+
+    public Date getSendTime() {
+        return sendTime;
+    }
+
+    public String getSendTime$(){
+        if (Cools.isEmpty(this.sendTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.sendTime);
+    }
+
+    public void setSendTime(Date sendTime) {
+        this.sendTime = sendTime;
+    }
+
+    public String getMode() {
+        return mode;
+    }
+
+    public void setMode(String mode) {
+        this.mode = mode;
+    }
+
+    public Integer getSourceRow() {
+        return sourceRow;
+    }
+
+    public void setSourceRow(Integer sourceRow) {
+        this.sourceRow = sourceRow;
+    }
+
+    public Integer getSourceBay() {
+        return sourceBay;
+    }
+
+    public void setSourceBay(Integer sourceBay) {
+        this.sourceBay = sourceBay;
+    }
+
+    public Integer getSourceLev() {
+        return sourceLev;
+    }
+
+    public void setSourceLev(Integer sourceLev) {
+        this.sourceLev = sourceLev;
+    }
+
+    public Integer getSourceSta() {
+        return sourceSta;
+    }
+
+    public void setSourceSta(Integer sourceSta) {
+        this.sourceSta = sourceSta;
+    }
+
+    public Integer getPosRow() {
+        return posRow;
+    }
+
+    public void setPosRow(Integer posRow) {
+        this.posRow = posRow;
+    }
+
+    public Integer getPosBay() {
+        return posBay;
+    }
+
+    public void setPosBay(Integer posBay) {
+        this.posBay = posBay;
+    }
+
+    public Integer getPosLev() {
+        return posLev;
+    }
+
+    public void setPosLev(Integer posLev) {
+        this.posLev = posLev;
+    }
+
+    public Integer getPosSta() {
+        return posSta;
+    }
+
+    public void setPosSta(Integer posSta) {
+        this.posSta = posSta;
+    }
+
+    public Integer getResponse() {
+        return response;
+    }
+
+    public String getResponse$(){
+        if (null == this.response){ return null; }
+        switch (this.response){
+            case 1:
+                return "姝e父";
+            case 0:
+                return "澶辫触";
+            default:
+                return String.valueOf(this.response);
+        }
+    }
+
+    public void setResponse(Integer response) {
+        this.response = response;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public String getUpdateTime$(){
+        if (Cools.isEmpty(this.updateTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Long getUpdateBy() {
+        return updateBy;
+    }
+
+    public String getUpdateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.updateBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+    public void setUpdateBy(Long updateBy) {
+        this.updateBy = updateBy;
+    }
+
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/BasErrLog.java b/src/main/java/com/zy/asrs/entity/BasErrLog.java
new file mode 100644
index 0000000..f135e6b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/BasErrLog.java
@@ -0,0 +1,456 @@
+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 java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@TableName("asr_bas_err_log")
+public class BasErrLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @ApiModelProperty(value= "ID")
+    @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")
+    private Date startTime;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @ApiModelProperty(value= "缁撴潫鏃堕棿")
+    @TableField("end_time")
+    private Date endTime;
+
+    /**
+     * 宸ヤ綔鐘舵��
+     */
+    @ApiModelProperty(value= "宸ヤ綔鐘舵��")
+    @TableField("wrk_sts")
+    private Long wrkSts;
+
+    /**
+     * 鍏ュ嚭搴撶被鍨�
+     */
+    @ApiModelProperty(value= "鍏ュ嚭搴撶被鍨�")
+    @TableField("io_type")
+    private Integer ioType;
+
+    /**
+     * 鍫嗗灈鏈�
+     */
+    @ApiModelProperty(value= "鍫嗗灈鏈�")
+    @TableField("crn_no")
+    private Integer crnNo;
+
+    /**
+     * 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")
+    private Date createTime;
+
+    /**
+     * 娣诲姞浜哄憳
+     */
+    @ApiModelProperty(value= "娣诲姞浜哄憳")
+    @TableField("create_by")
+    private Long createBy;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @ApiModelProperty(value= "淇敼鏃堕棿")
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 淇敼浜哄憳
+     */
+    @ApiModelProperty(value= "淇敼浜哄憳")
+    @TableField("update_by")
+    private Long updateBy;
+
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value= "澶囨敞")
+    private String memo;
+
+    public BasErrLog() {}
+
+    public BasErrLog(String uuid,Integer wrkNo,Date startTime,Date endTime,Long wrkSts,Integer ioType,Integer crnNo,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.crnNo = crnNo;
+        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;
+    }
+
+//    BasErrLog basErrLog = new BasErrLog(
+//            null,    // 缂栧彿
+//            null,    // 宸ヤ綔鍙�
+//            null,    // 鍙戠敓鏃堕棿
+//            null,    // 缁撴潫鏃堕棿
+//            null,    // 宸ヤ綔鐘舵��
+//            null,    // 鍏ュ嚭搴撶被鍨�
+//            null,    // 鍫嗗灈鏈�
+//            null,    // plc
+//            null,    // 鐩爣搴撲綅
+//            null,    // 鐩爣绔�
+//            null,    // 婧愮珯
+//            null,    // 婧愬簱浣�
+//            null,    // 鏉$爜
+//            null,    // 寮傚父鐮�
+//            null,    // 寮傚父
+//            null,    // 寮傚父鎯呭喌
+//            null,    // 娣诲姞鏃堕棿
+//            null,    // 娣诲姞浜哄憳
+//            null,    // 淇敼鏃堕棿
+//            null,    // 淇敼浜哄憳
+//            null    // 澶囨敞
+//    );
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
+
+    public Integer getWrkNo() {
+        return wrkNo;
+    }
+
+    public void setWrkNo(Integer wrkNo) {
+        this.wrkNo = wrkNo;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public String getStartTime$(){
+        if (Cools.isEmpty(this.startTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime);
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public String getEndTime$(){
+        if (Cools.isEmpty(this.endTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.endTime);
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Long getWrkSts() {
+        return wrkSts;
+    }
+
+    public void setWrkSts(Long wrkSts) {
+        this.wrkSts = wrkSts;
+    }
+
+    public Integer getIoType() {
+        return ioType;
+    }
+
+    public void setIoType(Integer ioType) {
+        this.ioType = ioType;
+    }
+
+    public Integer getCrnNo() {
+        return crnNo;
+    }
+
+    public void setCrnNo(Integer crnNo) {
+        this.crnNo = crnNo;
+    }
+
+    public Integer getPlcNo() {
+        return plcNo;
+    }
+
+    public void setPlcNo(Integer plcNo) {
+        this.plcNo = plcNo;
+    }
+
+    public String getLocNo() {
+        return locNo;
+    }
+
+    public void setLocNo(String locNo) {
+        this.locNo = locNo;
+    }
+
+    public Integer getStaNo() {
+        return staNo;
+    }
+
+    public void setStaNo(Integer staNo) {
+        this.staNo = staNo;
+    }
+
+    public Integer getSourceStaNo() {
+        return sourceStaNo;
+    }
+
+    public void setSourceStaNo(Integer sourceStaNo) {
+        this.sourceStaNo = sourceStaNo;
+    }
+
+    public String getSourceLocNo() {
+        return sourceLocNo;
+    }
+
+    public void setSourceLocNo(String sourceLocNo) {
+        this.sourceLocNo = sourceLocNo;
+    }
+
+    public String getBarcode() {
+        return barcode;
+    }
+
+    public void setBarcode(String barcode) {
+        this.barcode = barcode;
+    }
+
+    public Integer getErrCode() {
+        return errCode;
+    }
+
+    public void setErrCode(Integer errCode) {
+        this.errCode = errCode;
+    }
+
+    public String getError() {
+        return error;
+    }
+
+    public void setError(String error) {
+        this.error = error;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    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 void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public String getCreateTime$(){
+        if (Cools.isEmpty(this.createTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Long getCreateBy() {
+        return createBy;
+    }
+
+    public String getCreateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.createBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+    public void setCreateBy(Long createBy) {
+        this.createBy = createBy;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public String getUpdateTime$(){
+        if (Cools.isEmpty(this.updateTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Long getUpdateBy() {
+        return updateBy;
+    }
+
+    public String getUpdateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.updateBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+    public void setUpdateBy(Long updateBy) {
+        this.updateBy = updateBy;
+    }
+
+    public String getMemo() {
+        return memo;
+    }
+
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasCrnOptMapper.java b/src/main/java/com/zy/asrs/mapper/BasCrnOptMapper.java
new file mode 100644
index 0000000..744c664
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/BasCrnOptMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.zy.asrs.entity.BasCrnOpt;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface BasCrnOptMapper extends BaseMapper<BasCrnOpt> {
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasErrLogMapper.java b/src/main/java/com/zy/asrs/mapper/BasErrLogMapper.java
new file mode 100644
index 0000000..cd49855
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/BasErrLogMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.zy.asrs.entity.BasErrLog;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface BasErrLogMapper extends BaseMapper<BasErrLog> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasCrnOptService.java b/src/main/java/com/zy/asrs/service/BasCrnOptService.java
new file mode 100644
index 0000000..7538c73
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasCrnOptService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.BasCrnOpt;
+import com.baomidou.mybatisplus.service.IService;
+
+public interface BasCrnOptService extends IService<BasCrnOpt> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasErrLogService.java b/src/main/java/com/zy/asrs/service/BasErrLogService.java
new file mode 100644
index 0000000..3c335c1
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasErrLogService.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.BasErrLog;
+import com.baomidou.mybatisplus.service.IService;
+
+public interface BasErrLogService extends IService<BasErrLog> {
+
+    BasErrLog findLatestByTaskNo(Integer crnNo, Integer taskNo);
+
+    BasErrLog findLatest(Integer crnNo);
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasCrnOptServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasCrnOptServiceImpl.java
new file mode 100644
index 0000000..299afa8
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasCrnOptServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.zy.asrs.mapper.BasCrnOptMapper;
+import com.zy.asrs.entity.BasCrnOpt;
+import com.zy.asrs.service.BasCrnOptService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("basCrnOptService")
+public class BasCrnOptServiceImpl extends ServiceImpl<BasCrnOptMapper, BasCrnOpt> implements BasCrnOptService {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasErrLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasErrLogServiceImpl.java
new file mode 100644
index 0000000..817212c
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasErrLogServiceImpl.java
@@ -0,0 +1,34 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.mapper.BasErrLogMapper;
+import com.zy.asrs.entity.BasErrLog;
+import com.zy.asrs.service.BasErrLogService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("basErrLogService")
+public class BasErrLogServiceImpl extends ServiceImpl<BasErrLogMapper, BasErrLog> implements BasErrLogService {
+
+    @Override
+    public BasErrLog findLatestByTaskNo(Integer crnNo, Integer taskNo) {
+        List<BasErrLog> basErrLogs = this.baseMapper.selectList(new EntityWrapper<BasErrLog>().eq("crn_no", crnNo).eq("wrk_no", taskNo).orderBy("start_time", false));
+        if (basErrLogs == null || basErrLogs.size() == 0) {
+            return null;
+        } else {
+            return basErrLogs.get(0);
+        }
+    }
+
+    @Override
+    public BasErrLog findLatest(Integer crnNo) {
+        List<BasErrLog> basErrLogs = this.baseMapper.selectList(new EntityWrapper<BasErrLog>().eq("crn_no", crnNo).orderBy("start_time", false));
+        if (basErrLogs == null || basErrLogs.size() == 0) {
+            return null;
+        } else {
+            return basErrLogs.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 2972a72..a417f4a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.mapper.BasCrnErrorMapper;
 import com.zy.asrs.mapper.WaitPakinMapper;
 import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.*;
@@ -94,6 +95,10 @@
     private BasDevpService basDevpService;
     @Autowired
     private LocDetlService locDetlService;
+    @Autowired
+    private BasErrLogService basErrLogService;
+    @Autowired
+    private BasCrnErrorMapper basCrnErrorMapper;
     @Autowired
     private JdbcTemplate jdbcTemplate;
 
@@ -721,8 +726,115 @@
     /**
      * 鍫嗗灈鏈哄紓甯镐俊鎭褰�
      */
+    @Async
     public void recCrnErr(){
+        Date now = new Date();
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
+            // 鍙湪杩炵嚎妯″紡涓嬭褰�
+            if (crnProtocol.getModeType() == CrnModeType.AUTO) {
+                // 鏈変换鍔�
+                if (crnProtocol.getTaskNo() != 0) {
+                    BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
+                    // 鏈夊紓甯�
+                    if (latest == null) {
+                        if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) {
+                            WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
+                            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
+                            BasErrLog basErrLog = new BasErrLog(
+                                    null,    // 缂栧彿
+                                    wrkMast.getWrkNo(),    // 宸ヤ綔鍙�
+                                    now,    // 鍙戠敓鏃堕棿
+                                    null,    // 缁撴潫鏃堕棿
+                                    wrkMast.getWrkSts(),    // 宸ヤ綔鐘舵��
+                                    wrkMast.getIoType(),    // 鍏ュ嚭搴撶被鍨�
+                                    crn.getId(),    // 鍫嗗灈鏈�
+                                    null,    // plc
+                                    wrkMast.getLocNo(),    // 鐩爣搴撲綅
+                                    wrkMast.getStaNo(),    // 鐩爣绔�
+                                    wrkMast.getSourceStaNo(),    // 婧愮珯
+                                    wrkMast.getSourceLocNo(),    // 婧愬簱浣�
+                                    wrkMast.getBarcode(),    // 鏉$爜
+                                    crnProtocol.getAlarm1().intValue(),    // 寮傚父鐮�
+                                    crnError.getErrName(),    // 寮傚父
+                                    1,    // 寮傚父鎯呭喌
+                                    now,    // 娣诲姞鏃堕棿
+                                    null,    // 娣诲姞浜哄憳
+                                    now,    // 淇敼鏃堕棿
+                                    null,    // 淇敼浜哄憳
+                                    "浠诲姟涓紓甯�"    // 澶囨敞
+                            );
+                            if (!basErrLogService.insert(basErrLog)) {
+                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), crnError.getErrName());
+                            }
+                        }
+                    } else {
+                        // 寮傚父淇
+                        if (crnProtocol.getAlarm1() == null || crnProtocol.getAlarm1() == 0) {
+                            latest.setEndTime(now);
+                            latest.setUpdateTime(now);
+                            latest.setStatus(2);
+                            if (!basErrLogService.updateById(latest)) {
+                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+                            }
+                        }
+                    }
+                // 鏃犱换鍔�
+                } else {
+                    BasErrLog latest = basErrLogService.findLatest(crn.getId());
+                    // 鏈夊紓甯�
+                    if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) {
+                        // 璁板綍鏂板紓甯�
+                        if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm1().intValue())) {
+                            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
+                            BasErrLog basErrLog = new BasErrLog(
+                                    null,    // 缂栧彿
+                                    null,    // 宸ヤ綔鍙�
+                                    now,    // 鍙戠敓鏃堕棿
+                                    null,    // 缁撴潫鏃堕棿
+                                    null,    // 宸ヤ綔鐘舵��
+                                    null,    // 鍏ュ嚭搴撶被鍨�
+                                    crn.getId(),    // 鍫嗗灈鏈�
+                                    null,    // plc
+                                    null,    // 鐩爣搴撲綅
+                                    null,    // 鐩爣绔�
+                                    null,    // 婧愮珯
+                                    null,    // 婧愬簱浣�
+                                    null,    // 鏉$爜
+                                    crnProtocol.getAlarm1().intValue(),    // 寮傚父鐮�
+                                    crnError.getErrName(),    // 寮傚父
+                                    1,    // 寮傚父鎯呭喌
+                                    now,    // 娣诲姞鏃堕棿
+                                    null,    // 娣诲姞浜哄憳
+                                    now,    // 淇敼鏃堕棿
+                                    null,    // 淇敼浜哄憳
+                                    "鏃犱换鍔″紓甯�"    // 澶囨敞
+                            );
+                            if (!basErrLogService.insert(basErrLog)) {
+                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), crnError.getErrName());
+                            }
+                        }
+                    // 鏃犲紓甯�
+                    } else {
+                        // 寮傚父淇
+                        if (latest != null && latest.getStatus() == 1) {
+                            latest.setEndTime(now);
+                            latest.setUpdateTime(now);
+                            latest.setStatus(2);
+                            if (!basErrLogService.updateById(latest)) {
+                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+                            }
+                        }
+                    }
+                }
+            }
 
+        }
     }
 
 
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 6bdec69..221bf8c 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -8,7 +8,9 @@
 import com.core.common.Arith;
 import com.core.common.DateUtils;
 import com.core.common.SpringUtils;
+import com.zy.asrs.entity.BasCrnOpt;
 import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.service.BasCrnOptService;
 import com.zy.asrs.service.BasCrnpService;
 import com.zy.core.CrnThread;
 import com.zy.core.cache.MessageQueue;
@@ -197,6 +199,27 @@
         array[8] = command.getDestinationPosZ();
         OperateResult result = siemensNet.Write("DB8.0", array);
         if (result.IsSuccess) {
+            // 鏃ュ織璁板綍
+            BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
+            BasCrnOpt basCrnOpt = new BasCrnOpt(
+                    command.getTaskNo().intValue(),    // 浠诲姟鍙�
+                    command.getCrnNo(),    // 鍫嗗灈鏈篬闈炵┖]
+                    new Date(),    // 涓嬪彂鏃堕棿
+                    command.getTaskModeType().toString(),    // 妯″紡
+                    command.getSourcePosX().intValue(),    // 婧愭帓
+                    command.getSourcePosY().intValue(),    // 婧愬垪
+                    command.getSourcePosZ().intValue(),    // 婧愬眰
+                    null,    // 婧愮珯
+                    command.getDestinationPosX().intValue(),    // 鐩爣鎺�
+                    command.getDestinationPosY().intValue(),    // 鐩爣鍒�
+                    command.getDestinationPosZ().intValue(),    // 鐩爣灞�
+                    null,    // 鐩爣绔�
+                    null,    // 鍝嶅簲缁撴灉
+                    null,    // 淇敼鏃堕棿
+                    null    // 淇敼浜哄憳
+            );
+            bean.insert(basCrnOpt);
+
             log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
             return true;

--
Gitblit v1.9.1