|
@@ -0,0 +1,253 @@
|
|
|
+package com.ruoyi.framework.task;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.ruoyi.framework.web.controller.BaseController;
|
|
|
+import com.ruoyi.project.sems.domain.*;
|
|
|
+import com.ruoyi.project.sems.service.*;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 特种设备预警标识定时任务
|
|
|
+ */
|
|
|
+
|
|
|
+@Component("tSpecdevAllTask")
|
|
|
+public class TSpecdevAllTask extends BaseController {
|
|
|
+
|
|
|
+ //注入叉车台账接口
|
|
|
+ @Autowired
|
|
|
+ private ITSpecdevCcService specdevCcService;
|
|
|
+
|
|
|
+ //注入电梯台账接口
|
|
|
+ @Autowired
|
|
|
+ private ITSpecdevDtService specdevDtService;
|
|
|
+
|
|
|
+ //注入锅炉台账接口
|
|
|
+ @Autowired
|
|
|
+ private ITSpecdevGlService specdevGlService;
|
|
|
+
|
|
|
+ //注入起重机械台账接口
|
|
|
+ @Autowired
|
|
|
+ private ITSpecdevDzsbService specdevDzsbService;
|
|
|
+
|
|
|
+ //注入压力管道台账接口
|
|
|
+ @Autowired
|
|
|
+ private ITSpecdevYlgdService specdevYlgdService;
|
|
|
+
|
|
|
+ //注入压力容器台账接口
|
|
|
+ @Autowired
|
|
|
+ private ITSpecdevYlrqService specdevYlrqService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 检查叉车预警标识状态
|
|
|
+ * 3天检查一次
|
|
|
+ */
|
|
|
+ public void checkWarnFlag() {
|
|
|
+ this.checkWarnFlagForGl();
|
|
|
+ this.checkWarnFlagForCc();
|
|
|
+ this.checkWarnFlagForDt();
|
|
|
+ this.checkWarnFlagForDzsb();
|
|
|
+ this.checkWarnFlagForYlgd();
|
|
|
+ this.checkWarnFlagForYlrq();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void checkWarnFlagForGl() {
|
|
|
+ List<TSpecdevGl> list = this.specdevGlService.list(new QueryWrapper<TSpecdevGl>()
|
|
|
+ .eq("del_flag", 0).eq("status", "1"));
|
|
|
+ for (TSpecdevGl tSpecdevGl : list) {
|
|
|
+ if (tSpecdevGl.getNextWarnDate() != null) {
|
|
|
+ long now = System.currentTimeMillis();
|
|
|
+ long diff = tSpecdevGl.getNextWarnDate().getTime() - now;
|
|
|
+ long nd = 1000 * 24 * 60 * 60;
|
|
|
+ long day = diff / nd;
|
|
|
+ // 半年内 预警标识为2级
|
|
|
+ if (day > 0 && day <= 180) {
|
|
|
+ this.updateForGl(2L, tSpecdevGl);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 半年-一年 预警标识为1级
|
|
|
+ if (day > 180 && day <= 365) {
|
|
|
+ this.updateForGl(1L, tSpecdevGl);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 超时 预警标识为3级
|
|
|
+ if (day < 0) {
|
|
|
+ this.updateForGl(3L, tSpecdevGl);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void checkWarnFlagForCc() {
|
|
|
+ List<TSpecdevCc> list = this.specdevCcService.list(new QueryWrapper<TSpecdevCc>()
|
|
|
+ .eq("del_flag", 0).eq("status", "1"));
|
|
|
+ for (TSpecdevCc tSpecdevCc : list) {
|
|
|
+ if (tSpecdevCc.getNextWarnDate() != null) {
|
|
|
+ long now = System.currentTimeMillis();
|
|
|
+ long diff = tSpecdevCc.getNextWarnDate().getTime() - now;
|
|
|
+ long nd = 1000 * 24 * 60 * 60;
|
|
|
+ long day = diff / nd;
|
|
|
+ // 半年内 预警标识为2级
|
|
|
+ if (day > 0 && day <= 180) {
|
|
|
+ this.updateForCc(2L, tSpecdevCc);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 半年-一年 预警标识为1级
|
|
|
+ if (day > 180 && day <= 365) {
|
|
|
+ this.updateForCc(1L, tSpecdevCc);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 超时 预警标识为3级
|
|
|
+ if (day < 0) {
|
|
|
+ this.updateForCc(3L, tSpecdevCc);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void checkWarnFlagForDzsb() {
|
|
|
+ List<TSpecdevDzsb> list = this.specdevDzsbService.list(new QueryWrapper<TSpecdevDzsb>()
|
|
|
+ .eq("del_flag", 0).eq("status", "1"));
|
|
|
+ for (TSpecdevDzsb tSpecdevDzsb : list) {
|
|
|
+ if (tSpecdevDzsb.getNextWarnDate() != null) {
|
|
|
+ long now = System.currentTimeMillis();
|
|
|
+ long diff = tSpecdevDzsb.getNextWarnDate().getTime() - now;
|
|
|
+ long nd = 1000 * 24 * 60 * 60;
|
|
|
+ long day = diff / nd;
|
|
|
+ // 半年内 预警标识为2级
|
|
|
+ if (day > 0 && day <= 180) {
|
|
|
+ this.updateForDzsb(2L, tSpecdevDzsb);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 半年-一年 预警标识为1级
|
|
|
+ if (day > 180 && day <= 365) {
|
|
|
+ this.updateForDzsb(1L, tSpecdevDzsb);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 超时 预警标识为3级
|
|
|
+ if (day < 0) {
|
|
|
+ this.updateForDzsb(3L, tSpecdevDzsb);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void checkWarnFlagForYlrq() {
|
|
|
+ List<TSpecdevYlrq> list = this.specdevYlrqService.list(new QueryWrapper<TSpecdevYlrq>()
|
|
|
+ .eq("del_flag", 0).eq("status", "1"));
|
|
|
+ for (TSpecdevYlrq tSpecdevYlrq : list) {
|
|
|
+ if (tSpecdevYlrq.getNextWarnDate() != null) {
|
|
|
+ long now = System.currentTimeMillis();
|
|
|
+ long diff = tSpecdevYlrq.getNextWarnDate().getTime() - now;
|
|
|
+ long nd = 1000 * 24 * 60 * 60;
|
|
|
+ long day = diff / nd;
|
|
|
+ // 半年内 预警标识为2级
|
|
|
+ if (day > 0 && day <= 180) {
|
|
|
+ this.updateForYlrq(2L, tSpecdevYlrq);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 半年-一年 预警标识为1级
|
|
|
+ if (day > 180 && day <= 365) {
|
|
|
+ this.updateForYlrq(1L, tSpecdevYlrq);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 超时 预警标识为3级
|
|
|
+ if (day < 0) {
|
|
|
+ this.updateForYlrq(3L, tSpecdevYlrq);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void checkWarnFlagForYlgd() {
|
|
|
+ List<TSpecdevYlgd> list = this.specdevYlgdService.list(new QueryWrapper<TSpecdevYlgd>()
|
|
|
+ .eq("del_flag", 0).eq("status", "1"));
|
|
|
+ for (TSpecdevYlgd tSpecdevYlgd : list) {
|
|
|
+ if (tSpecdevYlgd.getNextWarnDate() != null) {
|
|
|
+ long now = System.currentTimeMillis();
|
|
|
+ long diff = tSpecdevYlgd.getNextWarnDate().getTime() - now;
|
|
|
+ long nd = 1000 * 24 * 60 * 60;
|
|
|
+ long day = diff / nd;
|
|
|
+ // 半年内 预警标识为2级
|
|
|
+ if (day > 0 && day <= 180) {
|
|
|
+ this.updateForYlgd(2L, tSpecdevYlgd);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 半年-一年 预警标识为1级
|
|
|
+ if (day > 180 && day <= 365) {
|
|
|
+ this.updateForYlgd(1L, tSpecdevYlgd);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 超时 预警标识为3级
|
|
|
+ if (day < 0) {
|
|
|
+ this.updateForYlgd(3L, tSpecdevYlgd);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void checkWarnFlagForDt() {
|
|
|
+ List<TSpecdevDt> list = this.specdevDtService.list(new QueryWrapper<TSpecdevDt>()
|
|
|
+ .eq("del_flag", 0).eq("status", "1"));
|
|
|
+ for (TSpecdevDt tSpecdevDt : list) {
|
|
|
+ if (tSpecdevDt.getNextWarnDate() != null) {
|
|
|
+ long now = System.currentTimeMillis();
|
|
|
+ long diff = tSpecdevDt.getNextWarnDate().getTime() - now;
|
|
|
+ long nd = 1000 * 24 * 60 * 60;
|
|
|
+ long day = diff / nd;
|
|
|
+ // 半年内 预警标识为2级
|
|
|
+ if (day > 0 && day <= 180) {
|
|
|
+ this.updateForDt(2L, tSpecdevDt);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 半年-一年 预警标识为1级
|
|
|
+ if (day > 180 && day <= 365) {
|
|
|
+ this.updateForDt(1L, tSpecdevDt);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 超时 预警标识为3级
|
|
|
+ if (day < 0) {
|
|
|
+ this.updateForDt(3L, tSpecdevDt);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateForCc(Long flag, TSpecdevCc tSpecdevCc) {
|
|
|
+ tSpecdevCc.setWarnFlag(flag);
|
|
|
+ this.specdevCcService.updateTSpecdevCc(tSpecdevCc);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateForDt(Long flag, TSpecdevDt tSpecdevDt) {
|
|
|
+ tSpecdevDt.setWarnFlag(flag);
|
|
|
+ this.specdevDtService.updateTSpecdevDt(tSpecdevDt);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateForGl(Long flag, TSpecdevGl tSpecdevGl) {
|
|
|
+ tSpecdevGl.setWarnFlag(flag);
|
|
|
+ this.specdevGlService.updateTSpecdevGl(tSpecdevGl);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateForDzsb(Long flag, TSpecdevDzsb tSpecdevDzsb) {
|
|
|
+ tSpecdevDzsb.setWarnFlag(flag);
|
|
|
+ this.specdevDzsbService.updateTSpecdevDzsb(tSpecdevDzsb);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateForYlgd(Long flag, TSpecdevYlgd tSpecdevYlgd) {
|
|
|
+ tSpecdevYlgd.setWarnFlag(flag);
|
|
|
+ this.specdevYlgdService.updateTSpecdevYlgd(tSpecdevYlgd);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateForYlrq(Long flag, TSpecdevYlrq tSpecdevYlrq) {
|
|
|
+ tSpecdevYlrq.setWarnFlag(flag);
|
|
|
+ this.specdevYlrqService.updateTSpecdevYlrq(tSpecdevYlrq);
|
|
|
+ }
|
|
|
+}
|