From b40eab1e582d72ca2e71afb2f5604671f5193f22 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期三, 13 八月 2025 20:09:00 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/ClearDeviceDataLogScheduler.java | 24 ++++++ src/main/java/com/zy/core/thread/RgvThread.java | 19 ++++ src/main/resources/mapper/DeviceDataLogMapper.xml | 16 ++++ src/main/java/com/zy/core/thread/SiemensCrnThread.java | 19 ++++ src/main/java/com/zy/asrs/mapper/DeviceDataLogMapper.java | 16 ++++ src/main/java/com/zy/asrs/service/impl/DeviceDataLogServiceImpl.java | 17 ++++ src/main/java/com/zy/asrs/entity/DeviceDataLog.java | 83 ++++++++++++++++++++ src/main/java/com/zy/asrs/service/DeviceDataLogService.java | 10 ++ src/main/java/com/zy/core/model/protocol/RgvProtocol.java | 5 + src/main/java/com/zy/core/model/protocol/CrnProtocol.java | 5 + 10 files changed, 214 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/DeviceDataLog.java b/src/main/java/com/zy/asrs/entity/DeviceDataLog.java new file mode 100644 index 0000000..2598c30 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/DeviceDataLog.java @@ -0,0 +1,83 @@ +package com.zy.asrs.entity; + +import com.core.common.Cools;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("wcs_device_data_log") +public class DeviceDataLog implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value= "") + private Long id; + + /** + * 璁惧绫诲瀷 + */ + @ApiModelProperty(value= "璁惧绫诲瀷") + private String type; + + /** + * 璁惧鍙� + */ + @ApiModelProperty(value= "璁惧鍙�") + @TableField("device_no") + private Integer deviceNo; + + /** + * 婧愭暟鎹� + */ + @ApiModelProperty(value= "婧愭暟鎹�") + @TableField("origin_data") + private String originData; + + /** + * 婧愭暟鎹В鏋愬悗寰楀埌鐨剋cs鏁版嵁 + */ + @ApiModelProperty(value= "婧愭暟鎹В鏋愬悗寰楀埌鐨剋cs鏁版嵁") + @TableField("wcs_data") + private String wcsData; + + /** + * 閲囬泦鏃堕棿 + */ + @ApiModelProperty(value= "閲囬泦鏃堕棿") + @TableField("create_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + + public DeviceDataLog() {} + + public DeviceDataLog(String type,Integer deviceNo,String originData,String wcsData,Date createTime) { + this.type = type; + this.deviceNo = deviceNo; + this.originData = originData; + this.wcsData = wcsData; + this.createTime = createTime; + } + +// DeviceDataLog deviceDataLog = new DeviceDataLog( +// null, // 璁惧绫诲瀷 +// null, // 璁惧鍙� +// null, // 婧愭暟鎹� +// null, // 婧愭暟鎹В鏋愬悗寰楀埌鐨剋cs鏁版嵁 +// null // 閲囬泦鏃堕棿 +// ); + + public String getCreateTime$(){ + if (Cools.isEmpty(this.createTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); + } + + +} diff --git a/src/main/java/com/zy/asrs/mapper/DeviceDataLogMapper.java b/src/main/java/com/zy/asrs/mapper/DeviceDataLogMapper.java new file mode 100644 index 0000000..d4ce894 --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/DeviceDataLogMapper.java @@ -0,0 +1,16 @@ +package com.zy.asrs.mapper; + +import com.zy.asrs.entity.DeviceDataLog; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface DeviceDataLogMapper extends BaseMapper<DeviceDataLog> { + + @Delete("delete from wcs_device_data_log where create_time < DATEADD(HOUR, -24, GETDATE())") + int clearLog(); + +} diff --git a/src/main/java/com/zy/asrs/service/DeviceDataLogService.java b/src/main/java/com/zy/asrs/service/DeviceDataLogService.java new file mode 100644 index 0000000..d45758f --- /dev/null +++ b/src/main/java/com/zy/asrs/service/DeviceDataLogService.java @@ -0,0 +1,10 @@ +package com.zy.asrs.service; + +import com.zy.asrs.entity.DeviceDataLog; +import com.baomidou.mybatisplus.service.IService; + +public interface DeviceDataLogService extends IService<DeviceDataLog> { + + int clearLog();//娓呯悊瓒呰繃24灏忔椂鏃ュ織鏁版嵁 + +} diff --git a/src/main/java/com/zy/asrs/service/impl/DeviceDataLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/DeviceDataLogServiceImpl.java new file mode 100644 index 0000000..f3cb611 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/DeviceDataLogServiceImpl.java @@ -0,0 +1,17 @@ +package com.zy.asrs.service.impl; + +import com.zy.asrs.mapper.DeviceDataLogMapper; +import com.zy.asrs.entity.DeviceDataLog; +import com.zy.asrs.service.DeviceDataLogService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +@Service("deviceDataLogService") +public class DeviceDataLogServiceImpl extends ServiceImpl<DeviceDataLogMapper, DeviceDataLog> implements DeviceDataLogService { + + @Override + public int clearLog() { + return this.baseMapper.clearLog(); + } + +} diff --git a/src/main/java/com/zy/asrs/task/ClearDeviceDataLogScheduler.java b/src/main/java/com/zy/asrs/task/ClearDeviceDataLogScheduler.java new file mode 100644 index 0000000..1cc2cac --- /dev/null +++ b/src/main/java/com/zy/asrs/task/ClearDeviceDataLogScheduler.java @@ -0,0 +1,24 @@ +package com.zy.asrs.task; + +import com.zy.asrs.service.DeviceDataLogService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class ClearDeviceDataLogScheduler { + + @Autowired + private DeviceDataLogService deviceDataLogService; + + /** + * 姣忓垎閽熸竻鐞�24灏忔椂涔嬪墠鐨勬棩蹇� + */ + @Scheduled(cron = "1 * * * * ? ") + public void clear() { + deviceDataLogService.clearLog(); + } + +} diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java index ab44484..c28c09b 100644 --- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java @@ -193,6 +193,11 @@ private Integer crnLane = 1; /** + * 鏃ュ織閲囬泦鏃堕棿 + */ + private Long deviceDataLog = System.currentTimeMillis(); + + /** * 涓婁竴娆℃寚浠や笅鍙戞椂闂� */ private Long lastCommandTime = System.currentTimeMillis(); diff --git a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java index 3c0ed08..05928f9 100644 --- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java @@ -132,6 +132,11 @@ */ public Float xDuration; + /** + * 鏃ュ織閲囬泦鏃堕棿 + */ + private Long deviceDataLog = System.currentTimeMillis(); + public void setMode(Short mode) { this.mode = mode; this.modeType = RgvModeType.get(mode); diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java index 0fc5c79..0e89c7b 100644 --- a/src/main/java/com/zy/core/thread/RgvThread.java +++ b/src/main/java/com/zy/core/thread/RgvThread.java @@ -9,8 +9,10 @@ import com.core.common.SpringUtils; import com.zy.asrs.entity.BasRgv; import com.zy.asrs.entity.BasRgvOpt; +import com.zy.asrs.entity.DeviceDataLog; import com.zy.asrs.service.BasRgvOptService; import com.zy.asrs.service.BasRgvService; +import com.zy.asrs.service.DeviceDataLogService; import com.zy.common.utils.News; import com.zy.core.RgvThread2; import com.zy.core.cache.MessageQueue; @@ -26,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; import java.text.MessageFormat; +import java.util.Base64; import java.util.Date; /** @@ -183,6 +186,22 @@ } } + if (System.currentTimeMillis() - rgvProtocol.getDeviceDataLog() > 1000 * 5) { + //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰� + //淇濆瓨鏁版嵁璁板綍 + DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class); + DeviceDataLog deviceDataLog = new DeviceDataLog(); + deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result.Content)); + deviceDataLog.setWcsData(JSON.toJSONString(rgvProtocol)); + deviceDataLog.setType("rgv"); + deviceDataLog.setDeviceNo(rgvProtocol.getRgvNo()); + deviceDataLog.setCreateTime(new Date()); + deviceDataLogService.insert(deviceDataLog); + + //鏇存柊閲囬泦鏃堕棿 + rgvProtocol.setDeviceDataLog(System.currentTimeMillis()); + } + try { // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class); diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 64dd38d..f9ecce5 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -10,8 +10,10 @@ import com.core.common.SpringUtils; import com.zy.asrs.entity.BasCrnOpt; import com.zy.asrs.entity.BasCrnp; +import com.zy.asrs.entity.DeviceDataLog; import com.zy.asrs.service.BasCrnOptService; import com.zy.asrs.service.BasCrnpService; +import com.zy.asrs.service.DeviceDataLogService; import com.zy.common.utils.News; import com.zy.core.CrnThread; import com.zy.core.cache.MessageQueue; @@ -25,6 +27,7 @@ import lombok.extern.slf4j.Slf4j; import java.text.MessageFormat; +import java.util.Base64; import java.util.Date; /** @@ -205,6 +208,22 @@ } } + if (System.currentTimeMillis() - crnProtocol.getDeviceDataLog() > 1000 * 5) { + //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰� + //淇濆瓨鏁版嵁璁板綍 + DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class); + DeviceDataLog deviceDataLog = new DeviceDataLog(); + deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result.Content)); + deviceDataLog.setWcsData(JSON.toJSONString(crnProtocol)); + deviceDataLog.setType("crn"); + deviceDataLog.setDeviceNo(crnProtocol.getCrnNo()); + deviceDataLog.setCreateTime(new Date()); + deviceDataLogService.insert(deviceDataLog); + + //鏇存柊閲囬泦鏃堕棿 + crnProtocol.setDeviceDataLog(System.currentTimeMillis()); + } + try { // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class); diff --git a/src/main/resources/mapper/DeviceDataLogMapper.xml b/src/main/resources/mapper/DeviceDataLogMapper.xml new file mode 100644 index 0000000..7de7f65 --- /dev/null +++ b/src/main/resources/mapper/DeviceDataLogMapper.xml @@ -0,0 +1,16 @@ +<?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.DeviceDataLogMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.zy.asrs.entity.DeviceDataLog"> + <id column="id" property="id" /> + <result column="type" property="type" /> + <result column="device_no" property="deviceNo" /> + <result column="origin_data" property="originData" /> + <result column="wcs_data" property="wcsData" /> + <result column="create_time" property="createTime" /> + + </resultMap> + +</mapper> -- Gitblit v1.9.1