| New file | 
|  |  |  | 
|---|
|  |  |  | package com.zy.asrs.entity; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.enums.IdType; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.annotations.TableField; | 
|---|
|  |  |  | import java.text.SimpleDateFormat; | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  | import org.springframework.format.annotation.DateTimeFormat; | 
|---|
|  |  |  | import io.swagger.annotations.ApiModelProperty; | 
|---|
|  |  |  | import lombok.Data; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.annotations.TableName; | 
|---|
|  |  |  | import java.io.Serializable; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Data | 
|---|
|  |  |  | @TableName("asr_bas_rgv_err_log") | 
|---|
|  |  |  | public class BasRgvErrLog implements Serializable { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static final long serialVersionUID = 1L; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiModelProperty(value= "") | 
|---|
|  |  |  | @TableId(value = "id", type = IdType.INPUT) | 
|---|
|  |  |  | 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("rtv_no") | 
|---|
|  |  |  | private Integer rtvNo; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 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 BasRgvErrLog() {} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public BasRgvErrLog(String uuid,Integer wrkNo,Date startTime,Date endTime,Long wrkSts,Integer ioType,Integer rtvNo,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.rtvNo = rtvNo; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //    BasRgvErrLog basRgvErrLog = new BasRgvErrLog( | 
|---|
|  |  |  | //            null,    // [非空] | 
|---|
|  |  |  | //            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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
| New file | 
|  |  |  | 
|---|
|  |  |  | package com.zy.asrs.mapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.zy.asrs.entity.BasRgvErrLog; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.BaseMapper; | 
|---|
|  |  |  | import org.apache.ibatis.annotations.Mapper; | 
|---|
|  |  |  | import org.springframework.stereotype.Repository; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Mapper | 
|---|
|  |  |  | @Repository | 
|---|
|  |  |  | public interface BasRgvErrLogMapper extends BaseMapper<BasRgvErrLog> { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
| New file | 
|  |  |  | 
|---|
|  |  |  | package com.zy.asrs.service; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.zy.asrs.entity.BasErrLog; | 
|---|
|  |  |  | import com.zy.asrs.entity.BasRgvErrLog; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.service.IService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public interface BasRgvErrLogService extends IService<BasRgvErrLog> { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasRgvErrLog findLatestByTaskNo(Integer rgvNo, Integer taskNo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasRgvErrLog findLatest(Integer rgvNo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
| New file | 
|  |  |  | 
|---|
|  |  |  | package com.zy.asrs.service.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
|---|
|  |  |  | import com.zy.asrs.entity.BasErrLog; | 
|---|
|  |  |  | import com.zy.asrs.mapper.BasRgvErrLogMapper; | 
|---|
|  |  |  | import com.zy.asrs.entity.BasRgvErrLog; | 
|---|
|  |  |  | import com.zy.asrs.service.BasRgvErrLogService; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.service.impl.ServiceImpl; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Service("basRgvErrLogService") | 
|---|
|  |  |  | public class BasRgvErrLogServiceImpl extends ServiceImpl<BasRgvErrLogMapper, BasRgvErrLog> implements BasRgvErrLogService { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public BasRgvErrLog findLatestByTaskNo(Integer rgvNo, Integer taskNo) { | 
|---|
|  |  |  | List<BasRgvErrLog> basRgvErrLog = this.baseMapper.selectList(new EntityWrapper<BasRgvErrLog>() | 
|---|
|  |  |  | .eq("rgv_no", rgvNo) | 
|---|
|  |  |  | .eq("wrk_no", taskNo) | 
|---|
|  |  |  | .orderBy("start_time", false)); | 
|---|
|  |  |  | if (basRgvErrLog == null || basRgvErrLog.size() == 0) { | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return basRgvErrLog.get(0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public BasRgvErrLog findLatest(Integer crnNo) { | 
|---|
|  |  |  | List<BasRgvErrLog> 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.core.exception.CoolException; | 
|---|
|  |  |  | import com.zy.asrs.entity.*; | 
|---|
|  |  |  | import com.zy.asrs.mapper.BasCrnErrorMapper; | 
|---|
|  |  |  | import com.zy.asrs.mapper.BasRgvErrMapper; | 
|---|
|  |  |  | import com.zy.asrs.mapper.WaitPakinMapper; | 
|---|
|  |  |  | import com.zy.asrs.mapper.WrkMastMapper; | 
|---|
|  |  |  | import com.zy.asrs.service.*; | 
|---|
|  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private WrkDetlService wrkDetlService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private WaitPakinMapper waitPakinMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocMastService locMastService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private StaDescService staDescService; | 
|---|
|  |  |  | 
|---|
|  |  |  | private BasErrLogService basErrLogService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private BasCrnErrorMapper basCrnErrorMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private BasRgvErrMapper basRgvErrMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private BasRgvErrLogService basRgvErrLogService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Value("${wms.url}") | 
|---|
|  |  |  | private String wmsUrl; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 异常信息记录 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public synchronized void recErr() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | this.recCrnErr(); | 
|---|
|  |  |  | this.recRgvErr(); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("recErr fail", e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * RGV异常信息记录 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public synchronized void recRgvErr() { | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | for (RgvSlave rgv : slaveProperties.getRgv()) { | 
|---|
|  |  |  | // 获取RGV信息 | 
|---|
|  |  |  | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); | 
|---|
|  |  |  | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); | 
|---|
|  |  |  | if (rgvProtocol == null) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (true) { | 
|---|
|  |  |  | // 有任务 | 
|---|
|  |  |  | if (rgvProtocol.getTaskNo1() != 0 || rgvProtocol.getTaskNo2() != 0) { | 
|---|
|  |  |  | Integer taskNo = rgvProtocol.getTaskNo1() > 0 ? rgvProtocol.getTaskNo1().intValue() : rgvProtocol.getTaskNo2().intValue(); | 
|---|
|  |  |  | BasRgvErrLog latest = basRgvErrLogService.findLatestByTaskNo(rgv.getId(), taskNo); | 
|---|
|  |  |  | // 有异常 | 
|---|
|  |  |  | if (latest == null) { | 
|---|
|  |  |  | if (rgvProtocol.getAlarm() != null && rgvProtocol.getAlarm() > 0) { | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastMapper.selectById(taskNo); | 
|---|
|  |  |  | if (wrkMast == null) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm()); | 
|---|
|  |  |  | String errName = rgvErr == null ? String.valueOf(rgvProtocol.getAlarm()) : rgvErr.getErrName(); | 
|---|
|  |  |  | BasRgvErrLog basRgvErrLog = new BasRgvErrLog( | 
|---|
|  |  |  | null,    // 编号 | 
|---|
|  |  |  | wrkMast.getWrkNo(),    // 工作号 | 
|---|
|  |  |  | now,    // 发生时间 | 
|---|
|  |  |  | null,    // 结束时间 | 
|---|
|  |  |  | wrkMast.getWrkSts(),    // 工作状态 | 
|---|
|  |  |  | wrkMast.getIoType(),    // 入出库类型 | 
|---|
|  |  |  | rgv.getId(),    // 堆垛机 | 
|---|
|  |  |  | null,    // plc | 
|---|
|  |  |  | wrkMast.getLocNo(),    // 目标库位 | 
|---|
|  |  |  | wrkMast.getStaNo(),    // 目标站 | 
|---|
|  |  |  | wrkMast.getSourceStaNo(),    // 源站 | 
|---|
|  |  |  | wrkMast.getSourceLocNo(),    // 源库位 | 
|---|
|  |  |  | wrkMast.getBarcode(),    // 条码 | 
|---|
|  |  |  | (int) rgvProtocol.getAlarm(),    // 异常码 | 
|---|
|  |  |  | errName,    // 异常 | 
|---|
|  |  |  | 1,    // 异常情况 | 
|---|
|  |  |  | now,    // 添加时间 | 
|---|
|  |  |  | null,    // 添加人员 | 
|---|
|  |  |  | now,    // 修改时间 | 
|---|
|  |  |  | null,    // 修改人员 | 
|---|
|  |  |  | "任务中异常"    // 备注 | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (!basRgvErrLogService.insert(basRgvErrLog)) { | 
|---|
|  |  |  | log.error("RGV异常记录失败 ===>> [id:{}] [error:{}]", rgv.getId(), errName); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // 异常修复 | 
|---|
|  |  |  | if (rgvProtocol.getAlarm() == null || rgvProtocol.getAlarm() == 0) { | 
|---|
|  |  |  | latest.setEndTime(now); | 
|---|
|  |  |  | latest.setUpdateTime(now); | 
|---|
|  |  |  | latest.setStatus(2); | 
|---|
|  |  |  | if (!basRgvErrLogService.updateById(latest)) { | 
|---|
|  |  |  | log.error("堆垛机plc异常记录修复失败 ===>> [id:{}] [errLogId:{}]", rgv.getId(), latest.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 无任务 | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | BasRgvErrLog latest = basRgvErrLogService.findLatest(rgv.getId()); | 
|---|
|  |  |  | // 有异常 | 
|---|
|  |  |  | if (rgvProtocol.getAlarm() != null && rgvProtocol.getAlarm() > 0) { | 
|---|
|  |  |  | // 记录新异常 | 
|---|
|  |  |  | if (latest == null || (latest.getErrCode() != rgvProtocol.getAlarm().intValue())) { | 
|---|
|  |  |  | BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm()); | 
|---|
|  |  |  | String errName = rgvErr == null ? String.valueOf(rgvProtocol.getAlarm()) : rgvErr.getErrName(); | 
|---|
|  |  |  | BasRgvErrLog basRgvErrLog = new BasRgvErrLog( | 
|---|
|  |  |  | null,    // 编号 | 
|---|
|  |  |  | null,    // 工作号 | 
|---|
|  |  |  | now,    // 发生时间 | 
|---|
|  |  |  | null,    // 结束时间 | 
|---|
|  |  |  | null,    // 工作状态 | 
|---|
|  |  |  | null,    // 入出库类型 | 
|---|
|  |  |  | rgv.getId(),    // 堆垛机 | 
|---|
|  |  |  | null,    // plc | 
|---|
|  |  |  | null,    // 目标库位 | 
|---|
|  |  |  | null,    // 目标站 | 
|---|
|  |  |  | null,    // 源站 | 
|---|
|  |  |  | null,    // 源库位 | 
|---|
|  |  |  | null,    // 条码 | 
|---|
|  |  |  | (int) rgvProtocol.getAlarm(),    // 异常码 | 
|---|
|  |  |  | errName,    // 异常 | 
|---|
|  |  |  | 1,    // 异常情况 | 
|---|
|  |  |  | now,    // 添加时间 | 
|---|
|  |  |  | null,    // 添加人员 | 
|---|
|  |  |  | now,    // 修改时间 | 
|---|
|  |  |  | null,    // 修改人员 | 
|---|
|  |  |  | "无任务异常"    // 备注 | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (!basRgvErrLogService.insert(basRgvErrLog)) { | 
|---|
|  |  |  | log.error("RGV异常记录失败 ===>> [id:{}] [error:{}]", rgv.getId(), errName); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 无异常 | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // 异常修复 | 
|---|
|  |  |  | if (latest != null && latest.getStatus() == 1) { | 
|---|
|  |  |  | latest.setEndTime(now); | 
|---|
|  |  |  | latest.setUpdateTime(now); | 
|---|
|  |  |  | latest.setStatus(2); | 
|---|
|  |  |  | if (!basRgvErrLogService.updateById(latest)) { | 
|---|
|  |  |  | log.error("RGV异常记录修复失败 ===>> [id:{}] [errLogId:{}]", rgv.getId(), latest.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 堆垛机异常信息记录 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public synchronized void recCrnErr() { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // ------------------------------------------------------------------------------- | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | generator.url="localhost:1433;databasename=xjhsasrs"; | 
|---|
|  |  |  | generator.username="sa"; | 
|---|
|  |  |  | generator.password="sa@123"; | 
|---|
|  |  |  | generator.table="asr_bas_rgv_err"; | 
|---|
|  |  |  | generator.table="asr_bas_rgv_err_log"; | 
|---|
|  |  |  | generator.packagePath="com.zy.asrs"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | generator.controller = false; | 
|---|
|  |  |  | 
|---|
|  |  |  | //                    mainService.rgvOutDStnToOutStn(); | 
|---|
|  |  |  | ////////////////////////////////////////////////////////////////// | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 堆垛机异常信息记录 | 
|---|
|  |  |  | mainService.recCrnErr(); | 
|---|
|  |  |  | // 异常信息记录 | 
|---|
|  |  |  | mainService.recErr(); | 
|---|
|  |  |  | // 入库  ===>> 空栈板初始化入库,叉车入库站放货 | 
|---|
|  |  |  | mainService.storeEmptyPlt(); | 
|---|
|  |  |  | // 出库  ===>> 工作档信息写入led显示器 | 
|---|
|  |  |  | 
|---|
|  |  |  | enable: false | 
|---|
|  |  |  |  | 
|---|
|  |  |  | wms: | 
|---|
|  |  |  | url: localhost:8080/stwms | 
|---|
|  |  |  | url: localhost:8080/hswms | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 下位机配置 | 
|---|
|  |  |  | wcs-slave: | 
|---|
| New file | 
|  |  |  | 
|---|
|  |  |  | <?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.BasRgvErrLogMapper"> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 通用查询映射结果 --> | 
|---|
|  |  |  | <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasRgvErrLog"> | 
|---|
|  |  |  | <result 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="rtv_no" property="rtvNo" /> | 
|---|
|  |  |  | <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> | 
|---|