浏览代码

+ json base64 反序列化

chen.cheng 11 月之前
父节点
当前提交
08435a87e0

+ 27 - 16
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/AdmOpInspectionReport.java

@@ -1,15 +1,19 @@
 package com.ruoyi.ems.domain;
 
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
+
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.ruoyi.common.core.annotation.Excel;
 import com.ruoyi.common.core.web.domain.BaseEntity;
+import com.ruoyi.ems.handler.json.CustomBaseSerializer;
 
 /**
  * 巡检报告对象 adm_op_inspection_report
- * 
+ *
  * @author ruoyi
  * @date 2024-08-29
  */
@@ -30,6 +34,7 @@ public class AdmOpInspectionReport extends BaseEntity
 
     /** 结果描述 */
     @Excel(name = "结果描述")
+    @JsonDeserialize(using = CustomBaseSerializer.class)
     private String resultMsg;
 
     /** 完成时间 */
@@ -46,66 +51,72 @@ public class AdmOpInspectionReport extends BaseEntity
     @Excel(name = "提交人")
     private String submitter;
 
-    public void setId(Long id) 
+    public void setId(Long id)
     {
         this.id = id;
     }
 
-    public Long getId() 
+    public Long getId()
     {
         return id;
     }
-    public void setTaskCode(String taskCode) 
+
+    public void setTaskCode(String taskCode)
     {
         this.taskCode = taskCode;
     }
 
-    public String getTaskCode() 
+    public String getTaskCode()
     {
         return taskCode;
     }
-    public void setResultStatus(Integer resultStatus) 
+
+    public void setResultStatus(Integer resultStatus)
     {
         this.resultStatus = resultStatus;
     }
 
-    public Integer getResultStatus() 
+    public Integer getResultStatus()
     {
         return resultStatus;
     }
-    public void setResultMsg(String resultMsg) 
+
+    public void setResultMsg(String resultMsg)
     {
         this.resultMsg = resultMsg;
     }
 
-    public String getResultMsg() 
+    public String getResultMsg()
     {
         return resultMsg;
     }
-    public void setFinishTime(Date finishTime) 
+
+    public void setFinishTime(Date finishTime)
     {
         this.finishTime = finishTime;
     }
 
-    public Date getFinishTime() 
+    public Date getFinishTime()
     {
         return finishTime;
     }
-    public void setSubTime(Date subTime) 
+
+    public void setSubTime(Date subTime)
     {
         this.subTime = subTime;
     }
 
-    public Date getSubTime() 
+    public Date getSubTime()
     {
         return subTime;
     }
-    public void setSubmitter(String submitter) 
+
+    public void setSubmitter(String submitter)
     {
         this.submitter = submitter;
     }
 
-    public String getSubmitter() 
+    public String getSubmitter()
     {
         return submitter;
     }

+ 25 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/handler/json/CustomBaseSerializer.java

@@ -0,0 +1,25 @@
+package com.ruoyi.ems.handler.json;
+
+import java.io.IOException;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+
+import cn.hutool.core.codec.Base64;
+
+public class CustomBaseSerializer extends JsonDeserializer<String> {
+
+    @Override
+    public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
+        final String base64Str = p.getCodec().readValue(p, new TypeReference<String>() {
+        });
+        if (StringUtils.isNotEmpty(base64Str)) {
+            return Base64.decodeStr(base64Str);
+        }
+        return "";
+    }
+}

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/EmsFacsServiceImpl.java

@@ -218,7 +218,7 @@ public class EmsFacsServiceImpl implements IEmsFacsService {
         List<String> errorReport = Collections.synchronizedList(new ArrayList<String>());
         Map<String, BiFunction<List<String>, Map.Entry<String, List<Map<String, Object>>>, Void>> handlers = new HashMap<String, BiFunction<List<String>, Map.Entry<String, List<Map<String, Object>>>, Void>>() {
             {
-                put(FacTypes.PRODUCT.getCode(), (strings, stringListEntry) -> {
+                put(FacTypes.TRANSMIT.getCode(), (strings, stringListEntry) -> {
                     pgIndexInspection(errorReport, stringListEntry);
                     return null;
                 });

+ 15 - 2
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/task/BaseTask.java

@@ -1,16 +1,29 @@
 package com.ruoyi.ems.task;
 
+import cn.hutool.core.map.MapUtil;
+import com.ruoyi.quartz.domain.SysJob;
+import org.quartz.JobDetail;
+import org.quartz.Scheduler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Map;
 
 public abstract class BaseTask {
     public static final Logger log = LoggerFactory.getLogger(BaseTask.class);
 
-    public abstract void run();
+    @Autowired
+    private Scheduler scheduler;
+
+    public abstract void run(SysJob taskProperties);
 
     public void execute() {
         try {
-            run();
+            Map<String, Object> wrappedMap = scheduler.getCurrentlyExecutingJobs().get(0).getJobDetail().getJobDataMap().getWrappedMap();
+            SysJob taskProperties = MapUtil.get(wrappedMap, "TASK_PROPERTIES", SysJob.class);
+            log.info("开始执行任务,任务名:", taskProperties);
+            run(taskProperties);
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 28 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/task/taskiml/FacTask.java

@@ -5,8 +5,14 @@ import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import com.ruoyi.common.core.enums.ResultStatus;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.ems.domain.AdmOpInspectionReport;
+import com.ruoyi.ems.service.impl.AdmOpInspectionReportServiceImpl;
 import com.ruoyi.ems.service.impl.EmsFacsServiceImpl;
 import com.ruoyi.ems.task.BaseTask;
+import com.ruoyi.quartz.domain.SysJob;
 
 /**
  * 定时任务调度测试
@@ -18,8 +24,29 @@ public class FacTask extends BaseTask {
 
     @Autowired
     private EmsFacsServiceImpl emsFacsService;
+
+    @Autowired
+    private AdmOpInspectionReportServiceImpl admOpInspectionReportService;
+
     @Override
-    public void run() {
+    public void run(SysJob taskProperties) {
         List<String> errorReport = emsFacsService.inspectFacIndex();
+        AdmOpInspectionReport facInspectionTask = new AdmOpInspectionReport() {
+            {
+                setTaskCode(taskProperties.getJobGroup() + "." + taskProperties.getJobId());
+                setResultStatus(ResultStatus.NORMAL.getCode());
+                setSubTime(DateUtils.getNowDate());
+                setFinishTime(DateUtils.getNowDate());
+                setSubmitter("facInspectionTask");
+            }
+        };
+        if (!errorReport.isEmpty()) {
+            log.error("facs index error report: {}", errorReport);
+            facInspectionTask.setResultStatus(ResultStatus.ABNORMAL.getCode());
+            facInspectionTask.setSubTime(DateUtils.getNowDate());
+            facInspectionTask.setFinishTime(DateUtils.getNowDate());
+            facInspectionTask.setResultMsg(StringUtils.join(errorReport, "\\r\\n"));
+        }
+        admOpInspectionReportService.insertAdmOpInspectionReport(facInspectionTask);
     }
 }

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/AdmEmsElecPgIndexMapper.xml

@@ -96,7 +96,7 @@
         ( SELECT *, RANK() OVER ( PARTITION BY facs_code ORDER BY time DESC ) AS num FROM adm_ems_elec_pg_index pgInde
         where facs_code
         <foreach item="item" index="index" collection="set" open="in (" separator=", " close=")">
-            ${item}
+            #{item}
         </foreach>
         ) f
         WHERE

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/AdmEmsIndexRangeMapper.xml

@@ -82,7 +82,7 @@
     </delete>
 
     <select id="selectAdmEmsIndexRange" resultType="Map">
-        select id,
+        select indexRange.id,
                obj_code objCode,
                obj_type objType,
                index_name indexName,

+ 58 - 0
ems-cloud/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/ResultStatus.java

@@ -0,0 +1,58 @@
+package com.ruoyi.common.core.enums;
+
+/**
+ * 设备类型
+ *
+ * @author ruoyi
+ */
+public enum ResultStatus {
+    // 结果状态 0:正常  1:异常
+    NORMAL(0, "正常"),
+    ABNORMAL(1, "异常");
+
+    /**
+     * The Code.
+     *
+     * @author chen.cheng
+     */
+    private final Integer code;
+
+    /**
+     * The Info.
+     *
+     * @author chen.cheng
+     */
+    private final String info;
+
+    /**
+     * Instantiates a new Fac types.
+     *
+     * @param code the code
+     * @param info the info
+     * @author chen.cheng
+     */
+    ResultStatus(Integer code, String info) {
+        this.code = code;
+        this.info = info;
+    }
+
+    /**
+     * Gets code.
+     *
+     * @return the code
+     * @author chen.cheng
+     */
+    public Integer getCode() {
+        return code;
+    }
+
+    /**
+     * Gets info.
+     *
+     * @return the info
+     * @author chen.cheng
+     */
+    public String getInfo() {
+        return info;
+    }
+}

+ 0 - 27
ems-cloud/ruoyi-common/ruoyi-common-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java

@@ -1,27 +0,0 @@
-package com.ruoyi.quartz.task;
-
-import com.ruoyi.common.core.utils.StringUtils;
-import org.springframework.stereotype.Component;
-/**
- * 定时任务调度测试
- *
- * @author ruoyi
- */
-@Component("ryTask")
-public class RyTask
-{
-    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
-    {
-        System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
-    }
-
-    public void ryParams(String params)
-    {
-        System.out.println("执行有参方法:" + params);
-    }
-
-    public void ryNoParams()
-    {
-        System.out.println("执行无参方法");
-    }
-}