From d54b8d2372ff5cf685c10c66f094df7d3b91ecbf Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期三, 17 七月 2024 15:51:52 +0800
Subject: [PATCH] 跳板机状态反馈

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/PcAppRunRealDataServiceImpl.java |   18 +++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/PcAppRunRealDataMapper.java            |   14 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IPcAppRunRealDataService.java         |   14 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/PcAppRunRealDataMapper.xml         |    5 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/PcAppRunHisData.java                   |   69 +++++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/PcAppRunScanJob.java                      |  112 ++++++++++++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/PcAppRunRealData.java                  |   69 +++++++++++
 7 files changed, 301 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/PcAppRunHisData.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/PcAppRunHisData.java
new file mode 100644
index 0000000..818075b
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/PcAppRunHisData.java
@@ -0,0 +1,69 @@
+package org.jeecg.modules.mdc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: app杩愯鍘嗗彶琛�
+ * @Author: lius
+ * @Date: 2024-07-17
+ * @Version: V1.0
+ */
+@Data
+@TableName("pcAppRunHisData")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "pcAppRunHisData瀵硅薄", description = "app杩愯鍘嗗彶琛�")
+public class PcAppRunHisData implements Serializable {
+
+    private static final long serialVersionUID = -4306230586083354342L;
+
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    @Excel(name = "鏇存柊鏃堕棿", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date collecttime;
+    /**
+     * 浜х嚎id
+     */
+    @Excel(name = "浜х嚎id", width = 15)
+    @ApiModelProperty(value = "浜х嚎id")
+    private String machineid;
+    /**
+     * app鍚嶇О
+     */
+    @Excel(name = "app鍚嶇О", width = 15)
+    @ApiModelProperty(value = "app鍚嶇О")
+    private String appname;
+    /**
+     * app鎻忚堪
+     */
+    @Excel(name = "app鎻忚堪", width = 15)
+    @ApiModelProperty(value = "app鎻忚堪")
+    private String appdescribe;
+    /**
+     * 鐘舵��(1姝e父 0寮傚父)
+     */
+    @Excel(name = "鐘舵��", width = 15)
+    @ApiModelProperty(value = "鐘舵��")
+    private Integer oporation;
+    /**
+     * 鏄惁棣栨鍚姩
+     */
+    @Excel(name = "鏄惁棣栨鍚姩", width = 15)
+    @ApiModelProperty(value = "鏄惁棣栨鍚姩")
+    private Integer isfirst;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/PcAppRunRealData.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/PcAppRunRealData.java
new file mode 100644
index 0000000..3d17919
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/PcAppRunRealData.java
@@ -0,0 +1,69 @@
+package org.jeecg.modules.mdc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: app杩愯瀹炴椂鐘舵�佽〃
+ * @Author: lius
+ * @Date: 2024-07-17
+ * @Version: V1.0
+ */
+@Data
+@TableName("pcAppRunRealData")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "pcAppRunRealData瀵硅薄", description = "app杩愯瀹炴椂鐘舵�佽〃")
+public class PcAppRunRealData implements Serializable {
+
+    private static final long serialVersionUID = -6241954790799443543L;
+
+    /**
+     * 浜х嚎id
+     */
+    @Excel(name = "浜х嚎id", width = 15)
+    @ApiModelProperty(value = "浜х嚎id")
+    private String machineid;
+    /**
+     * app鍚嶇О
+     */
+    @Excel(name = "app鍚嶇О", width = 15)
+    @ApiModelProperty(value = "app鍚嶇О")
+    private String appname;
+    /**
+     * 璁板綍鏃堕棿
+     */
+    @Excel(name = "璁板綍鏃堕棿", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "璁板綍鏃堕棿")
+    private Date collecttime;
+    /**
+     * app鎻忚堪
+     */
+    @Excel(name = "app鎻忚堪", width = 15)
+    @ApiModelProperty(value = "app鎻忚堪")
+    private String appdescribe;
+    /**
+     * 鐘舵��(1姝e父 0寮傚父)
+     */
+    @Excel(name = "鐘舵��", width = 15)
+    @ApiModelProperty(value = "鐘舵��(1姝e父 0寮傚父)")
+    private Integer oporation;
+    /**
+     * 鏄惁棣栨鍚姩(1鏄� 0鍚�)
+     */
+    @Excel(name = "鏄惁棣栨鍚姩", width = 15)
+    @ApiModelProperty(value = "鏄惁棣栨鍚姩(1鏄� 0鍚�)")
+    private Integer isfirst;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/PcAppRunScanJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/PcAppRunScanJob.java
new file mode 100644
index 0000000..d427424
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/PcAppRunScanJob.java
@@ -0,0 +1,112 @@
+package org.jeecg.modules.mdc.job;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.modules.mdc.entity.MdcFeedback;
+import org.jeecg.modules.mdc.entity.PcAppRunRealData;
+import org.jeecg.modules.mdc.service.IMdcFeedbackService;
+import org.jeecg.modules.mdc.service.IPcAppRunRealDataService;
+import org.jeecg.modules.mdc.util.DateUtils;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.entity.MdcProduction;
+import org.jeecg.modules.system.service.IMdcProductionService;
+import org.jeecg.modules.system.service.ISysAnnouncementService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 璺虫澘鏈虹姸鎬佺洃鎺�
+ *
+ * @author Lius
+ * @date 2024/7/17 10:33
+ */
+@Slf4j
+public class PcAppRunScanJob implements Job {
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysAnnouncementService sysAnnouncementService;
+
+    @Resource
+    private IMdcFeedbackService mdcFeedbackService;
+
+    @Resource
+    private IPcAppRunRealDataService pcAppRunRealDataService;
+
+    @Resource
+    private IMdcProductionService mdcProductionService;
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        log.info("瀹氭椂鐩戞帶璺虫澘鏈虹姸鎬佷换鍔� PcAppRunScanJob start!  鏃堕棿:" + DateUtils.getNow());
+        long startTime = System.currentTimeMillis();
+        try {
+            // step.1 鏌ヨ鐘舵�佷负O
+            List<PcAppRunRealData> pcAppRunRealDataList = pcAppRunRealDataService.list();
+            if (pcAppRunRealDataList != null && !pcAppRunRealDataList.isEmpty()) {
+                for (PcAppRunRealData pcAppRunRealData : pcAppRunRealDataList) {
+                    MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionName, pcAppRunRealData.getMachineid()));
+                    Integer oporation = pcAppRunRealData.getOporation();
+                    Date collectTime = pcAppRunRealData.getCollecttime();
+                    long second = DateUtils.differentSecond(collectTime, DateUtils.getNow());
+                    MdcFeedback mdcFeedback = new MdcFeedback();
+                    if (oporation.equals(CommonConstant.DEL_FLAG_1)) {
+                        // 瓒呰繃10鍒嗛挓鍒欐姤璀�
+                        if (second > 600) {
+                            //鐘舵�佸紓甯告彃鍏ラ棶棰樺弽棣堣褰�
+                            List<MdcFeedback> list = mdcFeedbackService.list(new LambdaQueryWrapper<MdcFeedback>().like(MdcFeedback::getContent, pcAppRunRealData.getAppdescribe()));
+                            if (list == null || list.isEmpty()) {
+                                mdcFeedback.setProductionId(mdcProduction.getId());
+                                mdcFeedback.setContent(pcAppRunRealData.getAppdescribe() + "杩炴帴寮傚父锛�");
+                            }
+                        } else {
+                            //鐘舵�佹甯告煡璇㈤棶棰樺弽棣堝垹闄よ褰�
+                            mdcFeedbackService.remove(new LambdaQueryWrapper<MdcFeedback>().like(MdcFeedback::getContent, pcAppRunRealData.getAppdescribe()));
+                        }
+                    } else {
+                        //鐘舵�佸紓甯告彃鍏ラ棶棰樺弽棣堣褰�
+                        List<MdcFeedback> list = mdcFeedbackService.list(new LambdaQueryWrapper<MdcFeedback>().like(MdcFeedback::getContent, pcAppRunRealData.getAppdescribe()));
+                        if (list == null || list.isEmpty()) {
+                            mdcFeedback.setProductionId(mdcProduction.getId());
+                            mdcFeedback.setContent(pcAppRunRealData.getAppdescribe() + "杩炴帴寮傚父锛�");
+                        }
+                    }
+                    if (StringUtils.isNotBlank(mdcFeedback.getProductionId())) {
+                        mdcFeedbackService.save(mdcFeedback);
+                    }
+                }
+            }
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+            // 鍙戦�佹秷鎭�氱煡
+            sysAnnouncementService.jobSendMessage("瀹氭椂鐩戞帶璺虫澘鏈虹姸鎬佷换鍔�", quartzLog.getExceptionDetail());
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/PcAppRunRealDataMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/PcAppRunRealDataMapper.java
new file mode 100644
index 0000000..43b9504
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/PcAppRunRealDataMapper.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.mdc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.mdc.entity.PcAppRunRealData;
+
+/**
+ * @Description: app杩愯瀹炴椂鐘舵�佽〃
+ * @Author: lius
+ * @Date:   2024-07-17
+ * @Version: V1.0
+ */
+public interface PcAppRunRealDataMapper extends BaseMapper<PcAppRunRealData> {
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/PcAppRunRealDataMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/PcAppRunRealDataMapper.xml
new file mode 100644
index 0000000..49ac7ab
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/PcAppRunRealDataMapper.xml
@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.mdc.mapper.PcAppRunRealDataMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IPcAppRunRealDataService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IPcAppRunRealDataService.java
new file mode 100644
index 0000000..18aac66
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IPcAppRunRealDataService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.mdc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdc.entity.PcAppRunRealData;
+
+/**
+ * @Description: app杩愯瀹炴椂鐘舵�佽〃
+ * @Author: lius
+ * @Date:   2024-07-17
+ * @Version: V1.0
+ */
+public interface IPcAppRunRealDataService extends IService<PcAppRunRealData> {
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/PcAppRunRealDataServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/PcAppRunRealDataServiceImpl.java
new file mode 100644
index 0000000..124800d
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/PcAppRunRealDataServiceImpl.java
@@ -0,0 +1,18 @@
+package org.jeecg.modules.mdc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.mdc.entity.PcAppRunRealData;
+import org.jeecg.modules.mdc.mapper.PcAppRunRealDataMapper;
+import org.jeecg.modules.mdc.service.IPcAppRunRealDataService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: app杩愯瀹炴椂鐘舵�佽〃
+ * @Author: lius
+ * @Date:   2024-07-17
+ * @Version: V1.0
+ */
+@Service
+public class PcAppRunRealDataServiceImpl extends ServiceImpl<PcAppRunRealDataMapper, PcAppRunRealData> implements IPcAppRunRealDataService {
+
+}

--
Gitblit v1.9.3