diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java index 134a817..44f6788 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.casic.missiles.core.base.controller.BaseController; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.exception.ServiceException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.system.dto.AlarmNowView; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IAlarmNowViewService; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.util.ObjectUtil; + /** * 地图总览模块的controller * @@ -38,7 +41,7 @@ private IAlarmNowViewService alarmNowViewService; @Autowired - private IBusWellInfoService busWellInfoService; + private IBusWellInfoSupportService busWellInfoService; /** * 获取当前全部告警列表 @@ -65,20 +68,20 @@ @RequestMapping(value = "/alarmsByWell", method = RequestMethod.GET) @ResponseBody public Object alarmsByWell(@RequestParam(required = true) Long id) { - if(ObjectUtil.isEmpty(id)){ - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + if (ObjectUtil.isEmpty(id)) { + throw new ServiceException(CoreExceptionEnum.REQUEST_NULL); } SuccessResponseData successResult = new SuccessResponseData(); // 查询闸井信息 - BusWellInfo busWellInfo = busWellInfoService.selectById(id); + BusWellInfo busWellInfo = busWellInfoService.getById(id); Map dataMap = new HashMap(); if (null != busWellInfo) { dataMap.put("id", busWellInfo.getId()); dataMap.put("wellCode", busWellInfo.getWellCode()); dataMap.put("deptId", busWellInfo.getDeptid()); - dataMap.put("deptName", permissionService.getDeptName(String.valueOf(busWellInfo.getDeptid()))); - dataMap.put("wellTypeName",busWellInfo.getWellTypeName()); + dataMap.put("deptName", permissionService.getDeptService().getDeptName(String.valueOf(busWellInfo.getDeptid()))); + dataMap.put("wellTypeName", busWellInfo.getWellTypeName()); dataMap.put("position", busWellInfo.getPosition()); dataMap.put("deep", busWellInfo.getDeep()); diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version} + com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java index 134a817..44f6788 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.casic.missiles.core.base.controller.BaseController; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.exception.ServiceException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.system.dto.AlarmNowView; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IAlarmNowViewService; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.util.ObjectUtil; + /** * 地图总览模块的controller * @@ -38,7 +41,7 @@ private IAlarmNowViewService alarmNowViewService; @Autowired - private IBusWellInfoService busWellInfoService; + private IBusWellInfoSupportService busWellInfoService; /** * 获取当前全部告警列表 @@ -65,20 +68,20 @@ @RequestMapping(value = "/alarmsByWell", method = RequestMethod.GET) @ResponseBody public Object alarmsByWell(@RequestParam(required = true) Long id) { - if(ObjectUtil.isEmpty(id)){ - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + if (ObjectUtil.isEmpty(id)) { + throw new ServiceException(CoreExceptionEnum.REQUEST_NULL); } SuccessResponseData successResult = new SuccessResponseData(); // 查询闸井信息 - BusWellInfo busWellInfo = busWellInfoService.selectById(id); + BusWellInfo busWellInfo = busWellInfoService.getById(id); Map dataMap = new HashMap(); if (null != busWellInfo) { dataMap.put("id", busWellInfo.getId()); dataMap.put("wellCode", busWellInfo.getWellCode()); dataMap.put("deptId", busWellInfo.getDeptid()); - dataMap.put("deptName", permissionService.getDeptName(String.valueOf(busWellInfo.getDeptid()))); - dataMap.put("wellTypeName",busWellInfo.getWellTypeName()); + dataMap.put("deptName", permissionService.getDeptService().getDeptName(String.valueOf(busWellInfo.getDeptid()))); + dataMap.put("wellTypeName", busWellInfo.getWellTypeName()); dataMap.put("position", busWellInfo.getPosition()); dataMap.put("deep", busWellInfo.getDeep()); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java index 263839d..d1e0d38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dto.AlarmNowView; @@ -13,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author casic123 @@ -23,13 +23,13 @@ public class AlarmNowViewServiceImpl extends ServiceImpl implements IAlarmNowViewService { @Resource - private AbstractPermissionContext permissionService; + private AbstractDictService dictService; @Override public List getNowAlarmRecords(DataScope dataScope) { List alarmNowViewList = this.baseMapper.getNowAlarmRecords(dataScope); for (AlarmNowView alarmNowView : alarmNowViewList) { - alarmNowView.setWellTypeName(permissionService.getDictNameByCode("sluicewellType",alarmNowView.getWellType())); + alarmNowView.setWellTypeName(dictService.getDictNameByCode("sluicewellType", alarmNowView.getWellType())); } return alarmNowViewList; } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version}
+ com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java index 134a817..44f6788 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.casic.missiles.core.base.controller.BaseController; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.exception.ServiceException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.system.dto.AlarmNowView; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IAlarmNowViewService; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.util.ObjectUtil; + /** * 地图总览模块的controller * @@ -38,7 +41,7 @@ private IAlarmNowViewService alarmNowViewService; @Autowired - private IBusWellInfoService busWellInfoService; + private IBusWellInfoSupportService busWellInfoService; /** * 获取当前全部告警列表 @@ -65,20 +68,20 @@ @RequestMapping(value = "/alarmsByWell", method = RequestMethod.GET) @ResponseBody public Object alarmsByWell(@RequestParam(required = true) Long id) { - if(ObjectUtil.isEmpty(id)){ - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + if (ObjectUtil.isEmpty(id)) { + throw new ServiceException(CoreExceptionEnum.REQUEST_NULL); } SuccessResponseData successResult = new SuccessResponseData(); // 查询闸井信息 - BusWellInfo busWellInfo = busWellInfoService.selectById(id); + BusWellInfo busWellInfo = busWellInfoService.getById(id); Map dataMap = new HashMap(); if (null != busWellInfo) { dataMap.put("id", busWellInfo.getId()); dataMap.put("wellCode", busWellInfo.getWellCode()); dataMap.put("deptId", busWellInfo.getDeptid()); - dataMap.put("deptName", permissionService.getDeptName(String.valueOf(busWellInfo.getDeptid()))); - dataMap.put("wellTypeName",busWellInfo.getWellTypeName()); + dataMap.put("deptName", permissionService.getDeptService().getDeptName(String.valueOf(busWellInfo.getDeptid()))); + dataMap.put("wellTypeName", busWellInfo.getWellTypeName()); dataMap.put("position", busWellInfo.getPosition()); dataMap.put("deep", busWellInfo.getDeep()); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java index 263839d..d1e0d38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dto.AlarmNowView; @@ -13,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author casic123 @@ -23,13 +23,13 @@ public class AlarmNowViewServiceImpl extends ServiceImpl implements IAlarmNowViewService { @Resource - private AbstractPermissionContext permissionService; + private AbstractDictService dictService; @Override public List getNowAlarmRecords(DataScope dataScope) { List alarmNowViewList = this.baseMapper.getNowAlarmRecords(dataScope); for (AlarmNowView alarmNowView : alarmNowViewList) { - alarmNowView.setWellTypeName(permissionService.getDictNameByCode("sluicewellType",alarmNowView.getWellType())); + alarmNowView.setWellTypeName(dictService.getDictNameByCode("sluicewellType", alarmNowView.getWellType())); } return alarmNowViewList; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index 760fdf6..affce72 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,15 +1,15 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dao.StatisticMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.service.IStatisticsService; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.hutool.core.util.ObjectUtil; import javax.annotation.Resource; import java.text.ParseException; @@ -18,35 +18,37 @@ @Service public class StatisticServiceImpl implements IStatisticsService { - @Autowired + @Resource private StatisticMapper statisticMapper; - @Autowired + @Resource private AlarmNowViewMapper alarmNowViewMapper; @Resource private AbstractPermissionContext permissionService; + @Resource + private AbstractDictService dictService; @Override public List> wellStaticsByDept(DataScope dataScope) { List> mapList = statisticMapper.wellStaticsByDept(dataScope); for (Map map : mapList) { - map.put("pidName",permissionService.getDeptName(Long.valueOf(map.get("pid").toString()))); + map.put("pidName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("pid").toString()))); } return mapList; } @Override public List> wellStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.wellStaticsByType(deptIds); for (Map map : mapList) { - map.put("wellTypeName",permissionService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); + map.put("wellTypeName", dictService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); } return mapList; } @Override public List> deviceStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.deviceStaticsByType(deptIds); // for (Map map : mapList) { // map.replace("deviceType",sysDictMapper.getDeviceTypeNameById(map.get("deviceType").toString())); @@ -55,51 +57,53 @@ } @Override - public List> deviceStaticsByDept(DataScope dataScope,String deviceType) { - List> mapList = statisticMapper.deviceStaticsByDept(dataScope,deviceType); + public List> deviceStaticsByDept(DataScope dataScope, String deviceType) { + List> mapList = statisticMapper.deviceStaticsByDept(dataScope, deviceType); for (Map map : mapList) { - map.put("deptName",permissionService.getDeptName(Long.valueOf(map.get("deptid").toString()))); + map.put("deptName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("deptid").toString()))); } return mapList; } @Override public Map deviceStaticsByStatus(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map map = statisticMapper.deviceStaticsByStatus(deptIds); - for(String s:map.keySet()){ //value都转为string - map.replace(s,map.get(s).toString()); + for (String s : map.keySet()) { //value都转为string + map.replace(s, map.get(s).toString()); } return map; } @Override - public List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException { + public List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException { List> mapList = new ArrayList<>(); List deptIds = dataScope.getDeptIds(); for (Long deptId : deptIds) { - if(deptId==0){ // 顶级不统计 + // 顶级不统计 + if (deptId == 0) { continue; } - Dept dept = permissionService.getDeptById(deptId); - if( ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())){ // 小组不统计 + Dept dept = permissionService.getDeptService().getById(deptId); + // 小组不统计 + if (ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())) { continue; } Map map = new HashMap<>(); - List subDeptIds = permissionService.getSubDepts(deptId,null); + List subDeptIds = permissionService.getDeptService().getIdsRecursionByPid(deptId, null); subDeptIds.add(deptId); - String subDeptIdstr = StringUtils.strip(subDeptIds.toString(),"[]"); + String subDeptIdstr = StringUtils.strip(subDeptIds.toString(), "[]"); map.put("deptId", deptId); - map.put("deptName",permissionService.getDeptName(deptId)); - Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr,beginTime,endTime); - if(ToolUtil.isNotEmpty(countMap)){ + map.put("deptName", permissionService.getDeptService().getDeptName(deptId)); + Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr, beginTime, endTime); + if (ObjectUtil.isNotEmpty(countMap)) { map.putAll(countMap); - }else{ - map.put("beforeGet",0); - map.put("beforeConfirm",0); - map.put("inHandle",0); - map.put("over",0); - map.put("cancel",0); + } else { + map.put("beforeGet", 0); + map.put("beforeConfirm", 0); + map.put("inHandle", 0); + map.put("over", 0); + map.put("cancel", 0); } mapList.add(map); } @@ -108,23 +112,23 @@ @Override public List> alarmsByDay(String beginTime, String endTime, DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日"); List> mapList = new ArrayList<>(); - try{ + try { Date beginDate = sdf1.parse(beginTime); Date endDate = sdf1.parse(endTime); Calendar date = Calendar.getInstance(); date.setTime(beginDate); while (date.getTime().compareTo(endDate) <= 0) { String tmp = sdf1.format(date.getTime()); - Map map = alarmNowViewMapper.countAlarmsByDay(tmp,deptIds); - map.put("date",sdf2.format(date.getTime())); + Map map = alarmNowViewMapper.countAlarmsByDay(tmp, deptIds); + map.put("date", sdf2.format(date.getTime())); mapList.add(map); - date.add(Calendar.DAY_OF_MONTH,1); + date.add(Calendar.DAY_OF_MONTH, 1); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return mapList; diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version}
+ com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java index 134a817..44f6788 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.casic.missiles.core.base.controller.BaseController; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.exception.ServiceException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.system.dto.AlarmNowView; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IAlarmNowViewService; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.util.ObjectUtil; + /** * 地图总览模块的controller * @@ -38,7 +41,7 @@ private IAlarmNowViewService alarmNowViewService; @Autowired - private IBusWellInfoService busWellInfoService; + private IBusWellInfoSupportService busWellInfoService; /** * 获取当前全部告警列表 @@ -65,20 +68,20 @@ @RequestMapping(value = "/alarmsByWell", method = RequestMethod.GET) @ResponseBody public Object alarmsByWell(@RequestParam(required = true) Long id) { - if(ObjectUtil.isEmpty(id)){ - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + if (ObjectUtil.isEmpty(id)) { + throw new ServiceException(CoreExceptionEnum.REQUEST_NULL); } SuccessResponseData successResult = new SuccessResponseData(); // 查询闸井信息 - BusWellInfo busWellInfo = busWellInfoService.selectById(id); + BusWellInfo busWellInfo = busWellInfoService.getById(id); Map dataMap = new HashMap(); if (null != busWellInfo) { dataMap.put("id", busWellInfo.getId()); dataMap.put("wellCode", busWellInfo.getWellCode()); dataMap.put("deptId", busWellInfo.getDeptid()); - dataMap.put("deptName", permissionService.getDeptName(String.valueOf(busWellInfo.getDeptid()))); - dataMap.put("wellTypeName",busWellInfo.getWellTypeName()); + dataMap.put("deptName", permissionService.getDeptService().getDeptName(String.valueOf(busWellInfo.getDeptid()))); + dataMap.put("wellTypeName", busWellInfo.getWellTypeName()); dataMap.put("position", busWellInfo.getPosition()); dataMap.put("deep", busWellInfo.getDeep()); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java index 263839d..d1e0d38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dto.AlarmNowView; @@ -13,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author casic123 @@ -23,13 +23,13 @@ public class AlarmNowViewServiceImpl extends ServiceImpl implements IAlarmNowViewService { @Resource - private AbstractPermissionContext permissionService; + private AbstractDictService dictService; @Override public List getNowAlarmRecords(DataScope dataScope) { List alarmNowViewList = this.baseMapper.getNowAlarmRecords(dataScope); for (AlarmNowView alarmNowView : alarmNowViewList) { - alarmNowView.setWellTypeName(permissionService.getDictNameByCode("sluicewellType",alarmNowView.getWellType())); + alarmNowView.setWellTypeName(dictService.getDictNameByCode("sluicewellType", alarmNowView.getWellType())); } return alarmNowViewList; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index 760fdf6..affce72 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,15 +1,15 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dao.StatisticMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.service.IStatisticsService; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.hutool.core.util.ObjectUtil; import javax.annotation.Resource; import java.text.ParseException; @@ -18,35 +18,37 @@ @Service public class StatisticServiceImpl implements IStatisticsService { - @Autowired + @Resource private StatisticMapper statisticMapper; - @Autowired + @Resource private AlarmNowViewMapper alarmNowViewMapper; @Resource private AbstractPermissionContext permissionService; + @Resource + private AbstractDictService dictService; @Override public List> wellStaticsByDept(DataScope dataScope) { List> mapList = statisticMapper.wellStaticsByDept(dataScope); for (Map map : mapList) { - map.put("pidName",permissionService.getDeptName(Long.valueOf(map.get("pid").toString()))); + map.put("pidName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("pid").toString()))); } return mapList; } @Override public List> wellStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.wellStaticsByType(deptIds); for (Map map : mapList) { - map.put("wellTypeName",permissionService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); + map.put("wellTypeName", dictService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); } return mapList; } @Override public List> deviceStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.deviceStaticsByType(deptIds); // for (Map map : mapList) { // map.replace("deviceType",sysDictMapper.getDeviceTypeNameById(map.get("deviceType").toString())); @@ -55,51 +57,53 @@ } @Override - public List> deviceStaticsByDept(DataScope dataScope,String deviceType) { - List> mapList = statisticMapper.deviceStaticsByDept(dataScope,deviceType); + public List> deviceStaticsByDept(DataScope dataScope, String deviceType) { + List> mapList = statisticMapper.deviceStaticsByDept(dataScope, deviceType); for (Map map : mapList) { - map.put("deptName",permissionService.getDeptName(Long.valueOf(map.get("deptid").toString()))); + map.put("deptName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("deptid").toString()))); } return mapList; } @Override public Map deviceStaticsByStatus(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map map = statisticMapper.deviceStaticsByStatus(deptIds); - for(String s:map.keySet()){ //value都转为string - map.replace(s,map.get(s).toString()); + for (String s : map.keySet()) { //value都转为string + map.replace(s, map.get(s).toString()); } return map; } @Override - public List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException { + public List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException { List> mapList = new ArrayList<>(); List deptIds = dataScope.getDeptIds(); for (Long deptId : deptIds) { - if(deptId==0){ // 顶级不统计 + // 顶级不统计 + if (deptId == 0) { continue; } - Dept dept = permissionService.getDeptById(deptId); - if( ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())){ // 小组不统计 + Dept dept = permissionService.getDeptService().getById(deptId); + // 小组不统计 + if (ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())) { continue; } Map map = new HashMap<>(); - List subDeptIds = permissionService.getSubDepts(deptId,null); + List subDeptIds = permissionService.getDeptService().getIdsRecursionByPid(deptId, null); subDeptIds.add(deptId); - String subDeptIdstr = StringUtils.strip(subDeptIds.toString(),"[]"); + String subDeptIdstr = StringUtils.strip(subDeptIds.toString(), "[]"); map.put("deptId", deptId); - map.put("deptName",permissionService.getDeptName(deptId)); - Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr,beginTime,endTime); - if(ToolUtil.isNotEmpty(countMap)){ + map.put("deptName", permissionService.getDeptService().getDeptName(deptId)); + Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr, beginTime, endTime); + if (ObjectUtil.isNotEmpty(countMap)) { map.putAll(countMap); - }else{ - map.put("beforeGet",0); - map.put("beforeConfirm",0); - map.put("inHandle",0); - map.put("over",0); - map.put("cancel",0); + } else { + map.put("beforeGet", 0); + map.put("beforeConfirm", 0); + map.put("inHandle", 0); + map.put("over", 0); + map.put("cancel", 0); } mapList.add(map); } @@ -108,23 +112,23 @@ @Override public List> alarmsByDay(String beginTime, String endTime, DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日"); List> mapList = new ArrayList<>(); - try{ + try { Date beginDate = sdf1.parse(beginTime); Date endDate = sdf1.parse(endTime); Calendar date = Calendar.getInstance(); date.setTime(beginDate); while (date.getTime().compareTo(endDate) <= 0) { String tmp = sdf1.format(date.getTime()); - Map map = alarmNowViewMapper.countAlarmsByDay(tmp,deptIds); - map.put("date",sdf2.format(date.getTime())); + Map map = alarmNowViewMapper.countAlarmsByDay(tmp, deptIds); + map.put("date", sdf2.format(date.getTime())); mapList.add(map); - date.add(Calendar.DAY_OF_MONTH,1); + date.add(Calendar.DAY_OF_MONTH, 1); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return mapList; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java index 0da3db8..0f499e6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java @@ -13,38 +13,40 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArraySet; +/** + * 此注解相当于设置访问URL + */ @Component @ServerEndpoint("/websocket/{userId}") -//此注解相当于设置访问URL public class WebSocket { private Session session; - private static CopyOnWriteArraySet webSockets =new CopyOnWriteArraySet<>(); - private static Map sessionPool = new HashMap(); + private static CopyOnWriteArraySet webSockets = new CopyOnWriteArraySet<>(); + private static Map sessionPool = new HashMap(); @OnOpen - public void onOpen(Session session, @PathParam(value="userId")String userId) { + public void onOpen(Session session, @PathParam(value = "userId") String userId) { this.session = session; webSockets.add(this); sessionPool.put(userId, session); - System.out.println(userId+"【websocket消息】有新的连接,总数为:"+webSockets.size()); + System.out.println(userId + "【websocket消息】有新的连接,总数为:" + webSockets.size()); } @OnClose public void onClose() { webSockets.remove(this); - System.out.println("【websocket消息】连接断开,总数为:"+webSockets.size()); + System.out.println("【websocket消息】连接断开,总数为:" + webSockets.size()); } @OnMessage public void onMessage(String message) { - System.out.println("【websocket消息】收到客户端消息:"+message); + System.out.println("【websocket消息】收到客户端消息:" + message); } // 此为广播消息 public void sendAllMessage(String message) { - for(WebSocket webSocket : webSockets) { - System.out.println("【websocket消息】广播消息:"+message); + for (WebSocket webSocket : webSockets) { + System.out.println("【websocket消息】广播消息:" + message); try { webSocket.session.getAsyncRemote().sendText(message); } catch (Exception e) { @@ -54,8 +56,8 @@ } // 发送列表消息 - public void sendListMessage(List userIds, String message){ - System.out.println("【websocket消息】列表消息:"+message); + public void sendListMessage(List userIds, String message) { + System.out.println("【websocket消息】列表消息:" + message); for (String userId : userIds) { Session session = sessionPool.get(userId); if (session != null) { @@ -87,7 +89,7 @@ // 此为单点消息 public void sendOneMessage(String userId, String message) { - System.out.println("【websocket消息】单点消息:"+message); + System.out.println("【websocket消息】单点消息:" + message); Session session = sessionPool.get(userId); if (session != null) { try { diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version}
+ com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java index 134a817..44f6788 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.casic.missiles.core.base.controller.BaseController; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.exception.ServiceException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.system.dto.AlarmNowView; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IAlarmNowViewService; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.util.ObjectUtil; + /** * 地图总览模块的controller * @@ -38,7 +41,7 @@ private IAlarmNowViewService alarmNowViewService; @Autowired - private IBusWellInfoService busWellInfoService; + private IBusWellInfoSupportService busWellInfoService; /** * 获取当前全部告警列表 @@ -65,20 +68,20 @@ @RequestMapping(value = "/alarmsByWell", method = RequestMethod.GET) @ResponseBody public Object alarmsByWell(@RequestParam(required = true) Long id) { - if(ObjectUtil.isEmpty(id)){ - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + if (ObjectUtil.isEmpty(id)) { + throw new ServiceException(CoreExceptionEnum.REQUEST_NULL); } SuccessResponseData successResult = new SuccessResponseData(); // 查询闸井信息 - BusWellInfo busWellInfo = busWellInfoService.selectById(id); + BusWellInfo busWellInfo = busWellInfoService.getById(id); Map dataMap = new HashMap(); if (null != busWellInfo) { dataMap.put("id", busWellInfo.getId()); dataMap.put("wellCode", busWellInfo.getWellCode()); dataMap.put("deptId", busWellInfo.getDeptid()); - dataMap.put("deptName", permissionService.getDeptName(String.valueOf(busWellInfo.getDeptid()))); - dataMap.put("wellTypeName",busWellInfo.getWellTypeName()); + dataMap.put("deptName", permissionService.getDeptService().getDeptName(String.valueOf(busWellInfo.getDeptid()))); + dataMap.put("wellTypeName", busWellInfo.getWellTypeName()); dataMap.put("position", busWellInfo.getPosition()); dataMap.put("deep", busWellInfo.getDeep()); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java index 263839d..d1e0d38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dto.AlarmNowView; @@ -13,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author casic123 @@ -23,13 +23,13 @@ public class AlarmNowViewServiceImpl extends ServiceImpl implements IAlarmNowViewService { @Resource - private AbstractPermissionContext permissionService; + private AbstractDictService dictService; @Override public List getNowAlarmRecords(DataScope dataScope) { List alarmNowViewList = this.baseMapper.getNowAlarmRecords(dataScope); for (AlarmNowView alarmNowView : alarmNowViewList) { - alarmNowView.setWellTypeName(permissionService.getDictNameByCode("sluicewellType",alarmNowView.getWellType())); + alarmNowView.setWellTypeName(dictService.getDictNameByCode("sluicewellType", alarmNowView.getWellType())); } return alarmNowViewList; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index 760fdf6..affce72 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,15 +1,15 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dao.StatisticMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.service.IStatisticsService; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.hutool.core.util.ObjectUtil; import javax.annotation.Resource; import java.text.ParseException; @@ -18,35 +18,37 @@ @Service public class StatisticServiceImpl implements IStatisticsService { - @Autowired + @Resource private StatisticMapper statisticMapper; - @Autowired + @Resource private AlarmNowViewMapper alarmNowViewMapper; @Resource private AbstractPermissionContext permissionService; + @Resource + private AbstractDictService dictService; @Override public List> wellStaticsByDept(DataScope dataScope) { List> mapList = statisticMapper.wellStaticsByDept(dataScope); for (Map map : mapList) { - map.put("pidName",permissionService.getDeptName(Long.valueOf(map.get("pid").toString()))); + map.put("pidName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("pid").toString()))); } return mapList; } @Override public List> wellStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.wellStaticsByType(deptIds); for (Map map : mapList) { - map.put("wellTypeName",permissionService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); + map.put("wellTypeName", dictService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); } return mapList; } @Override public List> deviceStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.deviceStaticsByType(deptIds); // for (Map map : mapList) { // map.replace("deviceType",sysDictMapper.getDeviceTypeNameById(map.get("deviceType").toString())); @@ -55,51 +57,53 @@ } @Override - public List> deviceStaticsByDept(DataScope dataScope,String deviceType) { - List> mapList = statisticMapper.deviceStaticsByDept(dataScope,deviceType); + public List> deviceStaticsByDept(DataScope dataScope, String deviceType) { + List> mapList = statisticMapper.deviceStaticsByDept(dataScope, deviceType); for (Map map : mapList) { - map.put("deptName",permissionService.getDeptName(Long.valueOf(map.get("deptid").toString()))); + map.put("deptName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("deptid").toString()))); } return mapList; } @Override public Map deviceStaticsByStatus(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map map = statisticMapper.deviceStaticsByStatus(deptIds); - for(String s:map.keySet()){ //value都转为string - map.replace(s,map.get(s).toString()); + for (String s : map.keySet()) { //value都转为string + map.replace(s, map.get(s).toString()); } return map; } @Override - public List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException { + public List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException { List> mapList = new ArrayList<>(); List deptIds = dataScope.getDeptIds(); for (Long deptId : deptIds) { - if(deptId==0){ // 顶级不统计 + // 顶级不统计 + if (deptId == 0) { continue; } - Dept dept = permissionService.getDeptById(deptId); - if( ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())){ // 小组不统计 + Dept dept = permissionService.getDeptService().getById(deptId); + // 小组不统计 + if (ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())) { continue; } Map map = new HashMap<>(); - List subDeptIds = permissionService.getSubDepts(deptId,null); + List subDeptIds = permissionService.getDeptService().getIdsRecursionByPid(deptId, null); subDeptIds.add(deptId); - String subDeptIdstr = StringUtils.strip(subDeptIds.toString(),"[]"); + String subDeptIdstr = StringUtils.strip(subDeptIds.toString(), "[]"); map.put("deptId", deptId); - map.put("deptName",permissionService.getDeptName(deptId)); - Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr,beginTime,endTime); - if(ToolUtil.isNotEmpty(countMap)){ + map.put("deptName", permissionService.getDeptService().getDeptName(deptId)); + Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr, beginTime, endTime); + if (ObjectUtil.isNotEmpty(countMap)) { map.putAll(countMap); - }else{ - map.put("beforeGet",0); - map.put("beforeConfirm",0); - map.put("inHandle",0); - map.put("over",0); - map.put("cancel",0); + } else { + map.put("beforeGet", 0); + map.put("beforeConfirm", 0); + map.put("inHandle", 0); + map.put("over", 0); + map.put("cancel", 0); } mapList.add(map); } @@ -108,23 +112,23 @@ @Override public List> alarmsByDay(String beginTime, String endTime, DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日"); List> mapList = new ArrayList<>(); - try{ + try { Date beginDate = sdf1.parse(beginTime); Date endDate = sdf1.parse(endTime); Calendar date = Calendar.getInstance(); date.setTime(beginDate); while (date.getTime().compareTo(endDate) <= 0) { String tmp = sdf1.format(date.getTime()); - Map map = alarmNowViewMapper.countAlarmsByDay(tmp,deptIds); - map.put("date",sdf2.format(date.getTime())); + Map map = alarmNowViewMapper.countAlarmsByDay(tmp, deptIds); + map.put("date", sdf2.format(date.getTime())); mapList.add(map); - date.add(Calendar.DAY_OF_MONTH,1); + date.add(Calendar.DAY_OF_MONTH, 1); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return mapList; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java index 0da3db8..0f499e6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java @@ -13,38 +13,40 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArraySet; +/** + * 此注解相当于设置访问URL + */ @Component @ServerEndpoint("/websocket/{userId}") -//此注解相当于设置访问URL public class WebSocket { private Session session; - private static CopyOnWriteArraySet webSockets =new CopyOnWriteArraySet<>(); - private static Map sessionPool = new HashMap(); + private static CopyOnWriteArraySet webSockets = new CopyOnWriteArraySet<>(); + private static Map sessionPool = new HashMap(); @OnOpen - public void onOpen(Session session, @PathParam(value="userId")String userId) { + public void onOpen(Session session, @PathParam(value = "userId") String userId) { this.session = session; webSockets.add(this); sessionPool.put(userId, session); - System.out.println(userId+"【websocket消息】有新的连接,总数为:"+webSockets.size()); + System.out.println(userId + "【websocket消息】有新的连接,总数为:" + webSockets.size()); } @OnClose public void onClose() { webSockets.remove(this); - System.out.println("【websocket消息】连接断开,总数为:"+webSockets.size()); + System.out.println("【websocket消息】连接断开,总数为:" + webSockets.size()); } @OnMessage public void onMessage(String message) { - System.out.println("【websocket消息】收到客户端消息:"+message); + System.out.println("【websocket消息】收到客户端消息:" + message); } // 此为广播消息 public void sendAllMessage(String message) { - for(WebSocket webSocket : webSockets) { - System.out.println("【websocket消息】广播消息:"+message); + for (WebSocket webSocket : webSockets) { + System.out.println("【websocket消息】广播消息:" + message); try { webSocket.session.getAsyncRemote().sendText(message); } catch (Exception e) { @@ -54,8 +56,8 @@ } // 发送列表消息 - public void sendListMessage(List userIds, String message){ - System.out.println("【websocket消息】列表消息:"+message); + public void sendListMessage(List userIds, String message) { + System.out.println("【websocket消息】列表消息:" + message); for (String userId : userIds) { Session session = sessionPool.get(userId); if (session != null) { @@ -87,7 +89,7 @@ // 此为单点消息 public void sendOneMessage(String userId, String message) { - System.out.println("【websocket消息】单点消息:"+message); + System.out.println("【websocket消息】单点消息:" + message); Session session = sessionPool.get(userId); if (session != null) { try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java deleted file mode 100644 index 431e0bd..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.alibaba.fastjson.JSONArray; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.ObjectUtil; - - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -//@Service -//@Primary -public class AlarmJobWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmJobWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置人员姓名 - for (String key : map.keySet()) - { - if (key.contains("JobPerson")|| key.contains("jobBelongTo")) - { - Object object = map.get(key); - if (object!=null) - { - String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); - map.replace(key,newVal); - } - } - } - - //设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = StrUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ObjectUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ObjectUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 工单状态 - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 流转记录(工单详情用) - if (map.containsKey("flow")) - { - String flow = (String) map.get("flow"); - flow = "["+flow.replaceFirst(",","")+"]"; - List list = new ArrayList<>(); - JSONArray jsonArray = JSONArray.parseArray(flow); - list = jsonArray.toJavaList(Map.class); - map.replace("flow",list); - } - - } -} diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version}
+ com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java index 134a817..44f6788 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.casic.missiles.core.base.controller.BaseController; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.exception.ServiceException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.system.dto.AlarmNowView; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IAlarmNowViewService; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.util.ObjectUtil; + /** * 地图总览模块的controller * @@ -38,7 +41,7 @@ private IAlarmNowViewService alarmNowViewService; @Autowired - private IBusWellInfoService busWellInfoService; + private IBusWellInfoSupportService busWellInfoService; /** * 获取当前全部告警列表 @@ -65,20 +68,20 @@ @RequestMapping(value = "/alarmsByWell", method = RequestMethod.GET) @ResponseBody public Object alarmsByWell(@RequestParam(required = true) Long id) { - if(ObjectUtil.isEmpty(id)){ - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + if (ObjectUtil.isEmpty(id)) { + throw new ServiceException(CoreExceptionEnum.REQUEST_NULL); } SuccessResponseData successResult = new SuccessResponseData(); // 查询闸井信息 - BusWellInfo busWellInfo = busWellInfoService.selectById(id); + BusWellInfo busWellInfo = busWellInfoService.getById(id); Map dataMap = new HashMap(); if (null != busWellInfo) { dataMap.put("id", busWellInfo.getId()); dataMap.put("wellCode", busWellInfo.getWellCode()); dataMap.put("deptId", busWellInfo.getDeptid()); - dataMap.put("deptName", permissionService.getDeptName(String.valueOf(busWellInfo.getDeptid()))); - dataMap.put("wellTypeName",busWellInfo.getWellTypeName()); + dataMap.put("deptName", permissionService.getDeptService().getDeptName(String.valueOf(busWellInfo.getDeptid()))); + dataMap.put("wellTypeName", busWellInfo.getWellTypeName()); dataMap.put("position", busWellInfo.getPosition()); dataMap.put("deep", busWellInfo.getDeep()); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java index 263839d..d1e0d38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dto.AlarmNowView; @@ -13,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author casic123 @@ -23,13 +23,13 @@ public class AlarmNowViewServiceImpl extends ServiceImpl implements IAlarmNowViewService { @Resource - private AbstractPermissionContext permissionService; + private AbstractDictService dictService; @Override public List getNowAlarmRecords(DataScope dataScope) { List alarmNowViewList = this.baseMapper.getNowAlarmRecords(dataScope); for (AlarmNowView alarmNowView : alarmNowViewList) { - alarmNowView.setWellTypeName(permissionService.getDictNameByCode("sluicewellType",alarmNowView.getWellType())); + alarmNowView.setWellTypeName(dictService.getDictNameByCode("sluicewellType", alarmNowView.getWellType())); } return alarmNowViewList; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index 760fdf6..affce72 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,15 +1,15 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dao.StatisticMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.service.IStatisticsService; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.hutool.core.util.ObjectUtil; import javax.annotation.Resource; import java.text.ParseException; @@ -18,35 +18,37 @@ @Service public class StatisticServiceImpl implements IStatisticsService { - @Autowired + @Resource private StatisticMapper statisticMapper; - @Autowired + @Resource private AlarmNowViewMapper alarmNowViewMapper; @Resource private AbstractPermissionContext permissionService; + @Resource + private AbstractDictService dictService; @Override public List> wellStaticsByDept(DataScope dataScope) { List> mapList = statisticMapper.wellStaticsByDept(dataScope); for (Map map : mapList) { - map.put("pidName",permissionService.getDeptName(Long.valueOf(map.get("pid").toString()))); + map.put("pidName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("pid").toString()))); } return mapList; } @Override public List> wellStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.wellStaticsByType(deptIds); for (Map map : mapList) { - map.put("wellTypeName",permissionService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); + map.put("wellTypeName", dictService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); } return mapList; } @Override public List> deviceStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.deviceStaticsByType(deptIds); // for (Map map : mapList) { // map.replace("deviceType",sysDictMapper.getDeviceTypeNameById(map.get("deviceType").toString())); @@ -55,51 +57,53 @@ } @Override - public List> deviceStaticsByDept(DataScope dataScope,String deviceType) { - List> mapList = statisticMapper.deviceStaticsByDept(dataScope,deviceType); + public List> deviceStaticsByDept(DataScope dataScope, String deviceType) { + List> mapList = statisticMapper.deviceStaticsByDept(dataScope, deviceType); for (Map map : mapList) { - map.put("deptName",permissionService.getDeptName(Long.valueOf(map.get("deptid").toString()))); + map.put("deptName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("deptid").toString()))); } return mapList; } @Override public Map deviceStaticsByStatus(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map map = statisticMapper.deviceStaticsByStatus(deptIds); - for(String s:map.keySet()){ //value都转为string - map.replace(s,map.get(s).toString()); + for (String s : map.keySet()) { //value都转为string + map.replace(s, map.get(s).toString()); } return map; } @Override - public List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException { + public List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException { List> mapList = new ArrayList<>(); List deptIds = dataScope.getDeptIds(); for (Long deptId : deptIds) { - if(deptId==0){ // 顶级不统计 + // 顶级不统计 + if (deptId == 0) { continue; } - Dept dept = permissionService.getDeptById(deptId); - if( ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())){ // 小组不统计 + Dept dept = permissionService.getDeptService().getById(deptId); + // 小组不统计 + if (ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())) { continue; } Map map = new HashMap<>(); - List subDeptIds = permissionService.getSubDepts(deptId,null); + List subDeptIds = permissionService.getDeptService().getIdsRecursionByPid(deptId, null); subDeptIds.add(deptId); - String subDeptIdstr = StringUtils.strip(subDeptIds.toString(),"[]"); + String subDeptIdstr = StringUtils.strip(subDeptIds.toString(), "[]"); map.put("deptId", deptId); - map.put("deptName",permissionService.getDeptName(deptId)); - Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr,beginTime,endTime); - if(ToolUtil.isNotEmpty(countMap)){ + map.put("deptName", permissionService.getDeptService().getDeptName(deptId)); + Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr, beginTime, endTime); + if (ObjectUtil.isNotEmpty(countMap)) { map.putAll(countMap); - }else{ - map.put("beforeGet",0); - map.put("beforeConfirm",0); - map.put("inHandle",0); - map.put("over",0); - map.put("cancel",0); + } else { + map.put("beforeGet", 0); + map.put("beforeConfirm", 0); + map.put("inHandle", 0); + map.put("over", 0); + map.put("cancel", 0); } mapList.add(map); } @@ -108,23 +112,23 @@ @Override public List> alarmsByDay(String beginTime, String endTime, DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日"); List> mapList = new ArrayList<>(); - try{ + try { Date beginDate = sdf1.parse(beginTime); Date endDate = sdf1.parse(endTime); Calendar date = Calendar.getInstance(); date.setTime(beginDate); while (date.getTime().compareTo(endDate) <= 0) { String tmp = sdf1.format(date.getTime()); - Map map = alarmNowViewMapper.countAlarmsByDay(tmp,deptIds); - map.put("date",sdf2.format(date.getTime())); + Map map = alarmNowViewMapper.countAlarmsByDay(tmp, deptIds); + map.put("date", sdf2.format(date.getTime())); mapList.add(map); - date.add(Calendar.DAY_OF_MONTH,1); + date.add(Calendar.DAY_OF_MONTH, 1); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return mapList; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java index 0da3db8..0f499e6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java @@ -13,38 +13,40 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArraySet; +/** + * 此注解相当于设置访问URL + */ @Component @ServerEndpoint("/websocket/{userId}") -//此注解相当于设置访问URL public class WebSocket { private Session session; - private static CopyOnWriteArraySet webSockets =new CopyOnWriteArraySet<>(); - private static Map sessionPool = new HashMap(); + private static CopyOnWriteArraySet webSockets = new CopyOnWriteArraySet<>(); + private static Map sessionPool = new HashMap(); @OnOpen - public void onOpen(Session session, @PathParam(value="userId")String userId) { + public void onOpen(Session session, @PathParam(value = "userId") String userId) { this.session = session; webSockets.add(this); sessionPool.put(userId, session); - System.out.println(userId+"【websocket消息】有新的连接,总数为:"+webSockets.size()); + System.out.println(userId + "【websocket消息】有新的连接,总数为:" + webSockets.size()); } @OnClose public void onClose() { webSockets.remove(this); - System.out.println("【websocket消息】连接断开,总数为:"+webSockets.size()); + System.out.println("【websocket消息】连接断开,总数为:" + webSockets.size()); } @OnMessage public void onMessage(String message) { - System.out.println("【websocket消息】收到客户端消息:"+message); + System.out.println("【websocket消息】收到客户端消息:" + message); } // 此为广播消息 public void sendAllMessage(String message) { - for(WebSocket webSocket : webSockets) { - System.out.println("【websocket消息】广播消息:"+message); + for (WebSocket webSocket : webSockets) { + System.out.println("【websocket消息】广播消息:" + message); try { webSocket.session.getAsyncRemote().sendText(message); } catch (Exception e) { @@ -54,8 +56,8 @@ } // 发送列表消息 - public void sendListMessage(List userIds, String message){ - System.out.println("【websocket消息】列表消息:"+message); + public void sendListMessage(List userIds, String message) { + System.out.println("【websocket消息】列表消息:" + message); for (String userId : userIds) { Session session = sessionPool.get(userId); if (session != null) { @@ -87,7 +89,7 @@ // 此为单点消息 public void sendOneMessage(String userId, String message) { - System.out.println("【websocket消息】单点消息:"+message); + System.out.println("【websocket消息】单点消息:" + message); Session session = sessionPool.get(userId); if (session != null) { try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java deleted file mode 100644 index 431e0bd..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.alibaba.fastjson.JSONArray; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.ObjectUtil; - - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -//@Service -//@Primary -public class AlarmJobWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmJobWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置人员姓名 - for (String key : map.keySet()) - { - if (key.contains("JobPerson")|| key.contains("jobBelongTo")) - { - Object object = map.get(key); - if (object!=null) - { - String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); - map.replace(key,newVal); - } - } - } - - //设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = StrUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ObjectUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ObjectUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 工单状态 - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 流转记录(工单详情用) - if (map.containsKey("flow")) - { - String flow = (String) map.get("flow"); - flow = "["+flow.replaceFirst(",","")+"]"; - List list = new ArrayList<>(); - JSONArray jsonArray = JSONArray.parseArray(flow); - list = jsonArray.toJavaList(Map.class); - map.replace("flow",list); - } - - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java deleted file mode 100644 index 3c4807a..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.base.warpper.BaseControllerWarpper; -import com.casic.missiles.core.util.ToolUtil; - -import java.util.HashMap; -import java.util.Map; - -//@Service -//@Primary -public class AlarmRecordWarpper extends BaseControllerWarpper { - public AlarmRecordWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = ToolUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ToolUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ToolUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 告警状态 - String statusStr = map.get("status").toString(); - map.put("statusName",EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr,"alarmStatus")); - - // 工单状态 - if(ToolUtil.isNotEmpty(map.get("jobStatus"))){ - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - } - - } -} diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version}
+ com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java index 134a817..44f6788 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.casic.missiles.core.base.controller.BaseController; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.exception.ServiceException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.system.dto.AlarmNowView; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IAlarmNowViewService; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.util.ObjectUtil; + /** * 地图总览模块的controller * @@ -38,7 +41,7 @@ private IAlarmNowViewService alarmNowViewService; @Autowired - private IBusWellInfoService busWellInfoService; + private IBusWellInfoSupportService busWellInfoService; /** * 获取当前全部告警列表 @@ -65,20 +68,20 @@ @RequestMapping(value = "/alarmsByWell", method = RequestMethod.GET) @ResponseBody public Object alarmsByWell(@RequestParam(required = true) Long id) { - if(ObjectUtil.isEmpty(id)){ - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + if (ObjectUtil.isEmpty(id)) { + throw new ServiceException(CoreExceptionEnum.REQUEST_NULL); } SuccessResponseData successResult = new SuccessResponseData(); // 查询闸井信息 - BusWellInfo busWellInfo = busWellInfoService.selectById(id); + BusWellInfo busWellInfo = busWellInfoService.getById(id); Map dataMap = new HashMap(); if (null != busWellInfo) { dataMap.put("id", busWellInfo.getId()); dataMap.put("wellCode", busWellInfo.getWellCode()); dataMap.put("deptId", busWellInfo.getDeptid()); - dataMap.put("deptName", permissionService.getDeptName(String.valueOf(busWellInfo.getDeptid()))); - dataMap.put("wellTypeName",busWellInfo.getWellTypeName()); + dataMap.put("deptName", permissionService.getDeptService().getDeptName(String.valueOf(busWellInfo.getDeptid()))); + dataMap.put("wellTypeName", busWellInfo.getWellTypeName()); dataMap.put("position", busWellInfo.getPosition()); dataMap.put("deep", busWellInfo.getDeep()); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java index 263839d..d1e0d38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dto.AlarmNowView; @@ -13,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author casic123 @@ -23,13 +23,13 @@ public class AlarmNowViewServiceImpl extends ServiceImpl implements IAlarmNowViewService { @Resource - private AbstractPermissionContext permissionService; + private AbstractDictService dictService; @Override public List getNowAlarmRecords(DataScope dataScope) { List alarmNowViewList = this.baseMapper.getNowAlarmRecords(dataScope); for (AlarmNowView alarmNowView : alarmNowViewList) { - alarmNowView.setWellTypeName(permissionService.getDictNameByCode("sluicewellType",alarmNowView.getWellType())); + alarmNowView.setWellTypeName(dictService.getDictNameByCode("sluicewellType", alarmNowView.getWellType())); } return alarmNowViewList; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index 760fdf6..affce72 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,15 +1,15 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dao.StatisticMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.service.IStatisticsService; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.hutool.core.util.ObjectUtil; import javax.annotation.Resource; import java.text.ParseException; @@ -18,35 +18,37 @@ @Service public class StatisticServiceImpl implements IStatisticsService { - @Autowired + @Resource private StatisticMapper statisticMapper; - @Autowired + @Resource private AlarmNowViewMapper alarmNowViewMapper; @Resource private AbstractPermissionContext permissionService; + @Resource + private AbstractDictService dictService; @Override public List> wellStaticsByDept(DataScope dataScope) { List> mapList = statisticMapper.wellStaticsByDept(dataScope); for (Map map : mapList) { - map.put("pidName",permissionService.getDeptName(Long.valueOf(map.get("pid").toString()))); + map.put("pidName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("pid").toString()))); } return mapList; } @Override public List> wellStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.wellStaticsByType(deptIds); for (Map map : mapList) { - map.put("wellTypeName",permissionService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); + map.put("wellTypeName", dictService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); } return mapList; } @Override public List> deviceStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.deviceStaticsByType(deptIds); // for (Map map : mapList) { // map.replace("deviceType",sysDictMapper.getDeviceTypeNameById(map.get("deviceType").toString())); @@ -55,51 +57,53 @@ } @Override - public List> deviceStaticsByDept(DataScope dataScope,String deviceType) { - List> mapList = statisticMapper.deviceStaticsByDept(dataScope,deviceType); + public List> deviceStaticsByDept(DataScope dataScope, String deviceType) { + List> mapList = statisticMapper.deviceStaticsByDept(dataScope, deviceType); for (Map map : mapList) { - map.put("deptName",permissionService.getDeptName(Long.valueOf(map.get("deptid").toString()))); + map.put("deptName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("deptid").toString()))); } return mapList; } @Override public Map deviceStaticsByStatus(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map map = statisticMapper.deviceStaticsByStatus(deptIds); - for(String s:map.keySet()){ //value都转为string - map.replace(s,map.get(s).toString()); + for (String s : map.keySet()) { //value都转为string + map.replace(s, map.get(s).toString()); } return map; } @Override - public List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException { + public List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException { List> mapList = new ArrayList<>(); List deptIds = dataScope.getDeptIds(); for (Long deptId : deptIds) { - if(deptId==0){ // 顶级不统计 + // 顶级不统计 + if (deptId == 0) { continue; } - Dept dept = permissionService.getDeptById(deptId); - if( ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())){ // 小组不统计 + Dept dept = permissionService.getDeptService().getById(deptId); + // 小组不统计 + if (ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())) { continue; } Map map = new HashMap<>(); - List subDeptIds = permissionService.getSubDepts(deptId,null); + List subDeptIds = permissionService.getDeptService().getIdsRecursionByPid(deptId, null); subDeptIds.add(deptId); - String subDeptIdstr = StringUtils.strip(subDeptIds.toString(),"[]"); + String subDeptIdstr = StringUtils.strip(subDeptIds.toString(), "[]"); map.put("deptId", deptId); - map.put("deptName",permissionService.getDeptName(deptId)); - Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr,beginTime,endTime); - if(ToolUtil.isNotEmpty(countMap)){ + map.put("deptName", permissionService.getDeptService().getDeptName(deptId)); + Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr, beginTime, endTime); + if (ObjectUtil.isNotEmpty(countMap)) { map.putAll(countMap); - }else{ - map.put("beforeGet",0); - map.put("beforeConfirm",0); - map.put("inHandle",0); - map.put("over",0); - map.put("cancel",0); + } else { + map.put("beforeGet", 0); + map.put("beforeConfirm", 0); + map.put("inHandle", 0); + map.put("over", 0); + map.put("cancel", 0); } mapList.add(map); } @@ -108,23 +112,23 @@ @Override public List> alarmsByDay(String beginTime, String endTime, DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日"); List> mapList = new ArrayList<>(); - try{ + try { Date beginDate = sdf1.parse(beginTime); Date endDate = sdf1.parse(endTime); Calendar date = Calendar.getInstance(); date.setTime(beginDate); while (date.getTime().compareTo(endDate) <= 0) { String tmp = sdf1.format(date.getTime()); - Map map = alarmNowViewMapper.countAlarmsByDay(tmp,deptIds); - map.put("date",sdf2.format(date.getTime())); + Map map = alarmNowViewMapper.countAlarmsByDay(tmp, deptIds); + map.put("date", sdf2.format(date.getTime())); mapList.add(map); - date.add(Calendar.DAY_OF_MONTH,1); + date.add(Calendar.DAY_OF_MONTH, 1); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return mapList; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java index 0da3db8..0f499e6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java @@ -13,38 +13,40 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArraySet; +/** + * 此注解相当于设置访问URL + */ @Component @ServerEndpoint("/websocket/{userId}") -//此注解相当于设置访问URL public class WebSocket { private Session session; - private static CopyOnWriteArraySet webSockets =new CopyOnWriteArraySet<>(); - private static Map sessionPool = new HashMap(); + private static CopyOnWriteArraySet webSockets = new CopyOnWriteArraySet<>(); + private static Map sessionPool = new HashMap(); @OnOpen - public void onOpen(Session session, @PathParam(value="userId")String userId) { + public void onOpen(Session session, @PathParam(value = "userId") String userId) { this.session = session; webSockets.add(this); sessionPool.put(userId, session); - System.out.println(userId+"【websocket消息】有新的连接,总数为:"+webSockets.size()); + System.out.println(userId + "【websocket消息】有新的连接,总数为:" + webSockets.size()); } @OnClose public void onClose() { webSockets.remove(this); - System.out.println("【websocket消息】连接断开,总数为:"+webSockets.size()); + System.out.println("【websocket消息】连接断开,总数为:" + webSockets.size()); } @OnMessage public void onMessage(String message) { - System.out.println("【websocket消息】收到客户端消息:"+message); + System.out.println("【websocket消息】收到客户端消息:" + message); } // 此为广播消息 public void sendAllMessage(String message) { - for(WebSocket webSocket : webSockets) { - System.out.println("【websocket消息】广播消息:"+message); + for (WebSocket webSocket : webSockets) { + System.out.println("【websocket消息】广播消息:" + message); try { webSocket.session.getAsyncRemote().sendText(message); } catch (Exception e) { @@ -54,8 +56,8 @@ } // 发送列表消息 - public void sendListMessage(List userIds, String message){ - System.out.println("【websocket消息】列表消息:"+message); + public void sendListMessage(List userIds, String message) { + System.out.println("【websocket消息】列表消息:" + message); for (String userId : userIds) { Session session = sessionPool.get(userId); if (session != null) { @@ -87,7 +89,7 @@ // 此为单点消息 public void sendOneMessage(String userId, String message) { - System.out.println("【websocket消息】单点消息:"+message); + System.out.println("【websocket消息】单点消息:" + message); Session session = sessionPool.get(userId); if (session != null) { try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java deleted file mode 100644 index 431e0bd..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.alibaba.fastjson.JSONArray; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.ObjectUtil; - - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -//@Service -//@Primary -public class AlarmJobWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmJobWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置人员姓名 - for (String key : map.keySet()) - { - if (key.contains("JobPerson")|| key.contains("jobBelongTo")) - { - Object object = map.get(key); - if (object!=null) - { - String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); - map.replace(key,newVal); - } - } - } - - //设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = StrUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ObjectUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ObjectUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 工单状态 - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 流转记录(工单详情用) - if (map.containsKey("flow")) - { - String flow = (String) map.get("flow"); - flow = "["+flow.replaceFirst(",","")+"]"; - List list = new ArrayList<>(); - JSONArray jsonArray = JSONArray.parseArray(flow); - list = jsonArray.toJavaList(Map.class); - map.replace("flow",list); - } - - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java deleted file mode 100644 index 3c4807a..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.base.warpper.BaseControllerWarpper; -import com.casic.missiles.core.util.ToolUtil; - -import java.util.HashMap; -import java.util.Map; - -//@Service -//@Primary -public class AlarmRecordWarpper extends BaseControllerWarpper { - public AlarmRecordWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = ToolUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ToolUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ToolUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 告警状态 - String statusStr = map.get("status").toString(); - map.put("statusName",EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr,"alarmStatus")); - - // 工单状态 - if(ToolUtil.isNotEmpty(map.get("jobStatus"))){ - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - } - - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java deleted file mode 100644 index 7d8cef1..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.casic.missiles.core.base.warpper.BaseControllerWarpper; -import com.casic.missiles.core.util.EhcacheConstant; - -import java.util.Map; - -//@Service -//@Primary -public class AlarmRuleWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmRuleWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - String deviceType = map.get("deviceType").toString(); - long deptid = Long.parseLong(map.get("deptid").toString()); - map.put("deviceTypeName",EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - } -} diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version}
+ com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java index 134a817..44f6788 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.casic.missiles.core.base.controller.BaseController; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.exception.ServiceException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.system.dto.AlarmNowView; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IAlarmNowViewService; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.util.ObjectUtil; + /** * 地图总览模块的controller * @@ -38,7 +41,7 @@ private IAlarmNowViewService alarmNowViewService; @Autowired - private IBusWellInfoService busWellInfoService; + private IBusWellInfoSupportService busWellInfoService; /** * 获取当前全部告警列表 @@ -65,20 +68,20 @@ @RequestMapping(value = "/alarmsByWell", method = RequestMethod.GET) @ResponseBody public Object alarmsByWell(@RequestParam(required = true) Long id) { - if(ObjectUtil.isEmpty(id)){ - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + if (ObjectUtil.isEmpty(id)) { + throw new ServiceException(CoreExceptionEnum.REQUEST_NULL); } SuccessResponseData successResult = new SuccessResponseData(); // 查询闸井信息 - BusWellInfo busWellInfo = busWellInfoService.selectById(id); + BusWellInfo busWellInfo = busWellInfoService.getById(id); Map dataMap = new HashMap(); if (null != busWellInfo) { dataMap.put("id", busWellInfo.getId()); dataMap.put("wellCode", busWellInfo.getWellCode()); dataMap.put("deptId", busWellInfo.getDeptid()); - dataMap.put("deptName", permissionService.getDeptName(String.valueOf(busWellInfo.getDeptid()))); - dataMap.put("wellTypeName",busWellInfo.getWellTypeName()); + dataMap.put("deptName", permissionService.getDeptService().getDeptName(String.valueOf(busWellInfo.getDeptid()))); + dataMap.put("wellTypeName", busWellInfo.getWellTypeName()); dataMap.put("position", busWellInfo.getPosition()); dataMap.put("deep", busWellInfo.getDeep()); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java index 263839d..d1e0d38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dto.AlarmNowView; @@ -13,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author casic123 @@ -23,13 +23,13 @@ public class AlarmNowViewServiceImpl extends ServiceImpl implements IAlarmNowViewService { @Resource - private AbstractPermissionContext permissionService; + private AbstractDictService dictService; @Override public List getNowAlarmRecords(DataScope dataScope) { List alarmNowViewList = this.baseMapper.getNowAlarmRecords(dataScope); for (AlarmNowView alarmNowView : alarmNowViewList) { - alarmNowView.setWellTypeName(permissionService.getDictNameByCode("sluicewellType",alarmNowView.getWellType())); + alarmNowView.setWellTypeName(dictService.getDictNameByCode("sluicewellType", alarmNowView.getWellType())); } return alarmNowViewList; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index 760fdf6..affce72 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,15 +1,15 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dao.StatisticMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.service.IStatisticsService; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.hutool.core.util.ObjectUtil; import javax.annotation.Resource; import java.text.ParseException; @@ -18,35 +18,37 @@ @Service public class StatisticServiceImpl implements IStatisticsService { - @Autowired + @Resource private StatisticMapper statisticMapper; - @Autowired + @Resource private AlarmNowViewMapper alarmNowViewMapper; @Resource private AbstractPermissionContext permissionService; + @Resource + private AbstractDictService dictService; @Override public List> wellStaticsByDept(DataScope dataScope) { List> mapList = statisticMapper.wellStaticsByDept(dataScope); for (Map map : mapList) { - map.put("pidName",permissionService.getDeptName(Long.valueOf(map.get("pid").toString()))); + map.put("pidName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("pid").toString()))); } return mapList; } @Override public List> wellStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.wellStaticsByType(deptIds); for (Map map : mapList) { - map.put("wellTypeName",permissionService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); + map.put("wellTypeName", dictService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); } return mapList; } @Override public List> deviceStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.deviceStaticsByType(deptIds); // for (Map map : mapList) { // map.replace("deviceType",sysDictMapper.getDeviceTypeNameById(map.get("deviceType").toString())); @@ -55,51 +57,53 @@ } @Override - public List> deviceStaticsByDept(DataScope dataScope,String deviceType) { - List> mapList = statisticMapper.deviceStaticsByDept(dataScope,deviceType); + public List> deviceStaticsByDept(DataScope dataScope, String deviceType) { + List> mapList = statisticMapper.deviceStaticsByDept(dataScope, deviceType); for (Map map : mapList) { - map.put("deptName",permissionService.getDeptName(Long.valueOf(map.get("deptid").toString()))); + map.put("deptName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("deptid").toString()))); } return mapList; } @Override public Map deviceStaticsByStatus(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map map = statisticMapper.deviceStaticsByStatus(deptIds); - for(String s:map.keySet()){ //value都转为string - map.replace(s,map.get(s).toString()); + for (String s : map.keySet()) { //value都转为string + map.replace(s, map.get(s).toString()); } return map; } @Override - public List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException { + public List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException { List> mapList = new ArrayList<>(); List deptIds = dataScope.getDeptIds(); for (Long deptId : deptIds) { - if(deptId==0){ // 顶级不统计 + // 顶级不统计 + if (deptId == 0) { continue; } - Dept dept = permissionService.getDeptById(deptId); - if( ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())){ // 小组不统计 + Dept dept = permissionService.getDeptService().getById(deptId); + // 小组不统计 + if (ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())) { continue; } Map map = new HashMap<>(); - List subDeptIds = permissionService.getSubDepts(deptId,null); + List subDeptIds = permissionService.getDeptService().getIdsRecursionByPid(deptId, null); subDeptIds.add(deptId); - String subDeptIdstr = StringUtils.strip(subDeptIds.toString(),"[]"); + String subDeptIdstr = StringUtils.strip(subDeptIds.toString(), "[]"); map.put("deptId", deptId); - map.put("deptName",permissionService.getDeptName(deptId)); - Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr,beginTime,endTime); - if(ToolUtil.isNotEmpty(countMap)){ + map.put("deptName", permissionService.getDeptService().getDeptName(deptId)); + Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr, beginTime, endTime); + if (ObjectUtil.isNotEmpty(countMap)) { map.putAll(countMap); - }else{ - map.put("beforeGet",0); - map.put("beforeConfirm",0); - map.put("inHandle",0); - map.put("over",0); - map.put("cancel",0); + } else { + map.put("beforeGet", 0); + map.put("beforeConfirm", 0); + map.put("inHandle", 0); + map.put("over", 0); + map.put("cancel", 0); } mapList.add(map); } @@ -108,23 +112,23 @@ @Override public List> alarmsByDay(String beginTime, String endTime, DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日"); List> mapList = new ArrayList<>(); - try{ + try { Date beginDate = sdf1.parse(beginTime); Date endDate = sdf1.parse(endTime); Calendar date = Calendar.getInstance(); date.setTime(beginDate); while (date.getTime().compareTo(endDate) <= 0) { String tmp = sdf1.format(date.getTime()); - Map map = alarmNowViewMapper.countAlarmsByDay(tmp,deptIds); - map.put("date",sdf2.format(date.getTime())); + Map map = alarmNowViewMapper.countAlarmsByDay(tmp, deptIds); + map.put("date", sdf2.format(date.getTime())); mapList.add(map); - date.add(Calendar.DAY_OF_MONTH,1); + date.add(Calendar.DAY_OF_MONTH, 1); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return mapList; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java index 0da3db8..0f499e6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java @@ -13,38 +13,40 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArraySet; +/** + * 此注解相当于设置访问URL + */ @Component @ServerEndpoint("/websocket/{userId}") -//此注解相当于设置访问URL public class WebSocket { private Session session; - private static CopyOnWriteArraySet webSockets =new CopyOnWriteArraySet<>(); - private static Map sessionPool = new HashMap(); + private static CopyOnWriteArraySet webSockets = new CopyOnWriteArraySet<>(); + private static Map sessionPool = new HashMap(); @OnOpen - public void onOpen(Session session, @PathParam(value="userId")String userId) { + public void onOpen(Session session, @PathParam(value = "userId") String userId) { this.session = session; webSockets.add(this); sessionPool.put(userId, session); - System.out.println(userId+"【websocket消息】有新的连接,总数为:"+webSockets.size()); + System.out.println(userId + "【websocket消息】有新的连接,总数为:" + webSockets.size()); } @OnClose public void onClose() { webSockets.remove(this); - System.out.println("【websocket消息】连接断开,总数为:"+webSockets.size()); + System.out.println("【websocket消息】连接断开,总数为:" + webSockets.size()); } @OnMessage public void onMessage(String message) { - System.out.println("【websocket消息】收到客户端消息:"+message); + System.out.println("【websocket消息】收到客户端消息:" + message); } // 此为广播消息 public void sendAllMessage(String message) { - for(WebSocket webSocket : webSockets) { - System.out.println("【websocket消息】广播消息:"+message); + for (WebSocket webSocket : webSockets) { + System.out.println("【websocket消息】广播消息:" + message); try { webSocket.session.getAsyncRemote().sendText(message); } catch (Exception e) { @@ -54,8 +56,8 @@ } // 发送列表消息 - public void sendListMessage(List userIds, String message){ - System.out.println("【websocket消息】列表消息:"+message); + public void sendListMessage(List userIds, String message) { + System.out.println("【websocket消息】列表消息:" + message); for (String userId : userIds) { Session session = sessionPool.get(userId); if (session != null) { @@ -87,7 +89,7 @@ // 此为单点消息 public void sendOneMessage(String userId, String message) { - System.out.println("【websocket消息】单点消息:"+message); + System.out.println("【websocket消息】单点消息:" + message); Session session = sessionPool.get(userId); if (session != null) { try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java deleted file mode 100644 index 431e0bd..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.alibaba.fastjson.JSONArray; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.ObjectUtil; - - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -//@Service -//@Primary -public class AlarmJobWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmJobWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置人员姓名 - for (String key : map.keySet()) - { - if (key.contains("JobPerson")|| key.contains("jobBelongTo")) - { - Object object = map.get(key); - if (object!=null) - { - String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); - map.replace(key,newVal); - } - } - } - - //设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = StrUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ObjectUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ObjectUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 工单状态 - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 流转记录(工单详情用) - if (map.containsKey("flow")) - { - String flow = (String) map.get("flow"); - flow = "["+flow.replaceFirst(",","")+"]"; - List list = new ArrayList<>(); - JSONArray jsonArray = JSONArray.parseArray(flow); - list = jsonArray.toJavaList(Map.class); - map.replace("flow",list); - } - - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java deleted file mode 100644 index 3c4807a..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.base.warpper.BaseControllerWarpper; -import com.casic.missiles.core.util.ToolUtil; - -import java.util.HashMap; -import java.util.Map; - -//@Service -//@Primary -public class AlarmRecordWarpper extends BaseControllerWarpper { - public AlarmRecordWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = ToolUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ToolUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ToolUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 告警状态 - String statusStr = map.get("status").toString(); - map.put("statusName",EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr,"alarmStatus")); - - // 工单状态 - if(ToolUtil.isNotEmpty(map.get("jobStatus"))){ - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - } - - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java deleted file mode 100644 index 7d8cef1..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.casic.missiles.core.base.warpper.BaseControllerWarpper; -import com.casic.missiles.core.util.EhcacheConstant; - -import java.util.Map; - -//@Service -//@Primary -public class AlarmRuleWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmRuleWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - String deviceType = map.get("deviceType").toString(); - long deptid = Long.parseLong(map.get("deptid").toString()); - map.put("deviceTypeName",EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - } -} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java index b7e13ca..d9b07c3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -1,12 +1,11 @@ package com.casic.missiles.modular.system.controller; -import cn.hutool.core.collection.CollectionUtil; +import com.casic.missiles.config.DeviceServerProperties; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.modular.system.dto.VersionDto; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.config.DeviceServerProperties; import com.casic.missiles.modular.system.constant.DeviceConst; +import com.casic.missiles.modular.system.dto.VersionDto; import com.casic.missiles.modular.system.service.IDeviceService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,7 +62,6 @@ response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition", " attachment;filename=" + fileName); response.setContentLength((int) file.length()); - FileInputStream fis = null; try { fis = new FileInputStream(file); @@ -103,7 +101,6 @@ @PostMapping("/app/registerGeTui") public ResponseData geTuiRegister(@RequestParam String clientid) { - service.registerGeTui(permissionService.getAuthService().getLoginUser().getId(), clientid); return ResponseData.success(); } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version}
+ com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java index 134a817..44f6788 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.casic.missiles.core.base.controller.BaseController; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.exception.ServiceException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.system.dto.AlarmNowView; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IAlarmNowViewService; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.util.ObjectUtil; + /** * 地图总览模块的controller * @@ -38,7 +41,7 @@ private IAlarmNowViewService alarmNowViewService; @Autowired - private IBusWellInfoService busWellInfoService; + private IBusWellInfoSupportService busWellInfoService; /** * 获取当前全部告警列表 @@ -65,20 +68,20 @@ @RequestMapping(value = "/alarmsByWell", method = RequestMethod.GET) @ResponseBody public Object alarmsByWell(@RequestParam(required = true) Long id) { - if(ObjectUtil.isEmpty(id)){ - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + if (ObjectUtil.isEmpty(id)) { + throw new ServiceException(CoreExceptionEnum.REQUEST_NULL); } SuccessResponseData successResult = new SuccessResponseData(); // 查询闸井信息 - BusWellInfo busWellInfo = busWellInfoService.selectById(id); + BusWellInfo busWellInfo = busWellInfoService.getById(id); Map dataMap = new HashMap(); if (null != busWellInfo) { dataMap.put("id", busWellInfo.getId()); dataMap.put("wellCode", busWellInfo.getWellCode()); dataMap.put("deptId", busWellInfo.getDeptid()); - dataMap.put("deptName", permissionService.getDeptName(String.valueOf(busWellInfo.getDeptid()))); - dataMap.put("wellTypeName",busWellInfo.getWellTypeName()); + dataMap.put("deptName", permissionService.getDeptService().getDeptName(String.valueOf(busWellInfo.getDeptid()))); + dataMap.put("wellTypeName", busWellInfo.getWellTypeName()); dataMap.put("position", busWellInfo.getPosition()); dataMap.put("deep", busWellInfo.getDeep()); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java index 263839d..d1e0d38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dto.AlarmNowView; @@ -13,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author casic123 @@ -23,13 +23,13 @@ public class AlarmNowViewServiceImpl extends ServiceImpl implements IAlarmNowViewService { @Resource - private AbstractPermissionContext permissionService; + private AbstractDictService dictService; @Override public List getNowAlarmRecords(DataScope dataScope) { List alarmNowViewList = this.baseMapper.getNowAlarmRecords(dataScope); for (AlarmNowView alarmNowView : alarmNowViewList) { - alarmNowView.setWellTypeName(permissionService.getDictNameByCode("sluicewellType",alarmNowView.getWellType())); + alarmNowView.setWellTypeName(dictService.getDictNameByCode("sluicewellType", alarmNowView.getWellType())); } return alarmNowViewList; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index 760fdf6..affce72 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,15 +1,15 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dao.StatisticMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.service.IStatisticsService; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.hutool.core.util.ObjectUtil; import javax.annotation.Resource; import java.text.ParseException; @@ -18,35 +18,37 @@ @Service public class StatisticServiceImpl implements IStatisticsService { - @Autowired + @Resource private StatisticMapper statisticMapper; - @Autowired + @Resource private AlarmNowViewMapper alarmNowViewMapper; @Resource private AbstractPermissionContext permissionService; + @Resource + private AbstractDictService dictService; @Override public List> wellStaticsByDept(DataScope dataScope) { List> mapList = statisticMapper.wellStaticsByDept(dataScope); for (Map map : mapList) { - map.put("pidName",permissionService.getDeptName(Long.valueOf(map.get("pid").toString()))); + map.put("pidName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("pid").toString()))); } return mapList; } @Override public List> wellStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.wellStaticsByType(deptIds); for (Map map : mapList) { - map.put("wellTypeName",permissionService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); + map.put("wellTypeName", dictService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); } return mapList; } @Override public List> deviceStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.deviceStaticsByType(deptIds); // for (Map map : mapList) { // map.replace("deviceType",sysDictMapper.getDeviceTypeNameById(map.get("deviceType").toString())); @@ -55,51 +57,53 @@ } @Override - public List> deviceStaticsByDept(DataScope dataScope,String deviceType) { - List> mapList = statisticMapper.deviceStaticsByDept(dataScope,deviceType); + public List> deviceStaticsByDept(DataScope dataScope, String deviceType) { + List> mapList = statisticMapper.deviceStaticsByDept(dataScope, deviceType); for (Map map : mapList) { - map.put("deptName",permissionService.getDeptName(Long.valueOf(map.get("deptid").toString()))); + map.put("deptName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("deptid").toString()))); } return mapList; } @Override public Map deviceStaticsByStatus(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map map = statisticMapper.deviceStaticsByStatus(deptIds); - for(String s:map.keySet()){ //value都转为string - map.replace(s,map.get(s).toString()); + for (String s : map.keySet()) { //value都转为string + map.replace(s, map.get(s).toString()); } return map; } @Override - public List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException { + public List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException { List> mapList = new ArrayList<>(); List deptIds = dataScope.getDeptIds(); for (Long deptId : deptIds) { - if(deptId==0){ // 顶级不统计 + // 顶级不统计 + if (deptId == 0) { continue; } - Dept dept = permissionService.getDeptById(deptId); - if( ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())){ // 小组不统计 + Dept dept = permissionService.getDeptService().getById(deptId); + // 小组不统计 + if (ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())) { continue; } Map map = new HashMap<>(); - List subDeptIds = permissionService.getSubDepts(deptId,null); + List subDeptIds = permissionService.getDeptService().getIdsRecursionByPid(deptId, null); subDeptIds.add(deptId); - String subDeptIdstr = StringUtils.strip(subDeptIds.toString(),"[]"); + String subDeptIdstr = StringUtils.strip(subDeptIds.toString(), "[]"); map.put("deptId", deptId); - map.put("deptName",permissionService.getDeptName(deptId)); - Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr,beginTime,endTime); - if(ToolUtil.isNotEmpty(countMap)){ + map.put("deptName", permissionService.getDeptService().getDeptName(deptId)); + Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr, beginTime, endTime); + if (ObjectUtil.isNotEmpty(countMap)) { map.putAll(countMap); - }else{ - map.put("beforeGet",0); - map.put("beforeConfirm",0); - map.put("inHandle",0); - map.put("over",0); - map.put("cancel",0); + } else { + map.put("beforeGet", 0); + map.put("beforeConfirm", 0); + map.put("inHandle", 0); + map.put("over", 0); + map.put("cancel", 0); } mapList.add(map); } @@ -108,23 +112,23 @@ @Override public List> alarmsByDay(String beginTime, String endTime, DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日"); List> mapList = new ArrayList<>(); - try{ + try { Date beginDate = sdf1.parse(beginTime); Date endDate = sdf1.parse(endTime); Calendar date = Calendar.getInstance(); date.setTime(beginDate); while (date.getTime().compareTo(endDate) <= 0) { String tmp = sdf1.format(date.getTime()); - Map map = alarmNowViewMapper.countAlarmsByDay(tmp,deptIds); - map.put("date",sdf2.format(date.getTime())); + Map map = alarmNowViewMapper.countAlarmsByDay(tmp, deptIds); + map.put("date", sdf2.format(date.getTime())); mapList.add(map); - date.add(Calendar.DAY_OF_MONTH,1); + date.add(Calendar.DAY_OF_MONTH, 1); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return mapList; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java index 0da3db8..0f499e6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java @@ -13,38 +13,40 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArraySet; +/** + * 此注解相当于设置访问URL + */ @Component @ServerEndpoint("/websocket/{userId}") -//此注解相当于设置访问URL public class WebSocket { private Session session; - private static CopyOnWriteArraySet webSockets =new CopyOnWriteArraySet<>(); - private static Map sessionPool = new HashMap(); + private static CopyOnWriteArraySet webSockets = new CopyOnWriteArraySet<>(); + private static Map sessionPool = new HashMap(); @OnOpen - public void onOpen(Session session, @PathParam(value="userId")String userId) { + public void onOpen(Session session, @PathParam(value = "userId") String userId) { this.session = session; webSockets.add(this); sessionPool.put(userId, session); - System.out.println(userId+"【websocket消息】有新的连接,总数为:"+webSockets.size()); + System.out.println(userId + "【websocket消息】有新的连接,总数为:" + webSockets.size()); } @OnClose public void onClose() { webSockets.remove(this); - System.out.println("【websocket消息】连接断开,总数为:"+webSockets.size()); + System.out.println("【websocket消息】连接断开,总数为:" + webSockets.size()); } @OnMessage public void onMessage(String message) { - System.out.println("【websocket消息】收到客户端消息:"+message); + System.out.println("【websocket消息】收到客户端消息:" + message); } // 此为广播消息 public void sendAllMessage(String message) { - for(WebSocket webSocket : webSockets) { - System.out.println("【websocket消息】广播消息:"+message); + for (WebSocket webSocket : webSockets) { + System.out.println("【websocket消息】广播消息:" + message); try { webSocket.session.getAsyncRemote().sendText(message); } catch (Exception e) { @@ -54,8 +56,8 @@ } // 发送列表消息 - public void sendListMessage(List userIds, String message){ - System.out.println("【websocket消息】列表消息:"+message); + public void sendListMessage(List userIds, String message) { + System.out.println("【websocket消息】列表消息:" + message); for (String userId : userIds) { Session session = sessionPool.get(userId); if (session != null) { @@ -87,7 +89,7 @@ // 此为单点消息 public void sendOneMessage(String userId, String message) { - System.out.println("【websocket消息】单点消息:"+message); + System.out.println("【websocket消息】单点消息:" + message); Session session = sessionPool.get(userId); if (session != null) { try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java deleted file mode 100644 index 431e0bd..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.alibaba.fastjson.JSONArray; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.ObjectUtil; - - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -//@Service -//@Primary -public class AlarmJobWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmJobWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置人员姓名 - for (String key : map.keySet()) - { - if (key.contains("JobPerson")|| key.contains("jobBelongTo")) - { - Object object = map.get(key); - if (object!=null) - { - String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); - map.replace(key,newVal); - } - } - } - - //设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = StrUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ObjectUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ObjectUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 工单状态 - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 流转记录(工单详情用) - if (map.containsKey("flow")) - { - String flow = (String) map.get("flow"); - flow = "["+flow.replaceFirst(",","")+"]"; - List list = new ArrayList<>(); - JSONArray jsonArray = JSONArray.parseArray(flow); - list = jsonArray.toJavaList(Map.class); - map.replace("flow",list); - } - - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java deleted file mode 100644 index 3c4807a..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.base.warpper.BaseControllerWarpper; -import com.casic.missiles.core.util.ToolUtil; - -import java.util.HashMap; -import java.util.Map; - -//@Service -//@Primary -public class AlarmRecordWarpper extends BaseControllerWarpper { - public AlarmRecordWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = ToolUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ToolUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ToolUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 告警状态 - String statusStr = map.get("status").toString(); - map.put("statusName",EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr,"alarmStatus")); - - // 工单状态 - if(ToolUtil.isNotEmpty(map.get("jobStatus"))){ - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - } - - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java deleted file mode 100644 index 7d8cef1..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.casic.missiles.core.base.warpper.BaseControllerWarpper; -import com.casic.missiles.core.util.EhcacheConstant; - -import java.util.Map; - -//@Service -//@Primary -public class AlarmRuleWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmRuleWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - String deviceType = map.get("deviceType").toString(); - long deptid = Long.parseLong(map.get("deptid").toString()); - map.put("deviceTypeName",EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - } -} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java index b7e13ca..d9b07c3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -1,12 +1,11 @@ package com.casic.missiles.modular.system.controller; -import cn.hutool.core.collection.CollectionUtil; +import com.casic.missiles.config.DeviceServerProperties; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.modular.system.dto.VersionDto; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.config.DeviceServerProperties; import com.casic.missiles.modular.system.constant.DeviceConst; +import com.casic.missiles.modular.system.dto.VersionDto; import com.casic.missiles.modular.system.service.IDeviceService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,7 +62,6 @@ response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition", " attachment;filename=" + fileName); response.setContentLength((int) file.length()); - FileInputStream fis = null; try { fis = new FileInputStream(file); @@ -103,7 +101,6 @@ @PostMapping("/app/registerGeTui") public ResponseData geTuiRegister(@RequestParam String clientid) { - service.registerGeTui(permissionService.getAuthService().getLoginUser().getId(), clientid); return ResponseData.success(); } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java index e34c98e..ee3443d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.model.application.service.IRepositorySupportService; import com.casic.missiles.modular.system.dto.BusWellInfoDto; import com.casic.missiles.modular.system.model.BusWellInfo; @@ -24,5 +24,13 @@ */ List getWellList(DataScope dataScope, String keywords, String wellType, String deptid); + /** + * 根据井主键查询井信息 + * + * @param id 井主键 + * @return 井信息 + */ BusWellInfo getById(Long id); + + BusWellInfo selectOne(QueryWrapper busWellInfoEntityWrapper); } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version}
+ com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java index 134a817..44f6788 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.casic.missiles.core.base.controller.BaseController; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.exception.ServiceException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.system.dto.AlarmNowView; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IAlarmNowViewService; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.util.ObjectUtil; + /** * 地图总览模块的controller * @@ -38,7 +41,7 @@ private IAlarmNowViewService alarmNowViewService; @Autowired - private IBusWellInfoService busWellInfoService; + private IBusWellInfoSupportService busWellInfoService; /** * 获取当前全部告警列表 @@ -65,20 +68,20 @@ @RequestMapping(value = "/alarmsByWell", method = RequestMethod.GET) @ResponseBody public Object alarmsByWell(@RequestParam(required = true) Long id) { - if(ObjectUtil.isEmpty(id)){ - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + if (ObjectUtil.isEmpty(id)) { + throw new ServiceException(CoreExceptionEnum.REQUEST_NULL); } SuccessResponseData successResult = new SuccessResponseData(); // 查询闸井信息 - BusWellInfo busWellInfo = busWellInfoService.selectById(id); + BusWellInfo busWellInfo = busWellInfoService.getById(id); Map dataMap = new HashMap(); if (null != busWellInfo) { dataMap.put("id", busWellInfo.getId()); dataMap.put("wellCode", busWellInfo.getWellCode()); dataMap.put("deptId", busWellInfo.getDeptid()); - dataMap.put("deptName", permissionService.getDeptName(String.valueOf(busWellInfo.getDeptid()))); - dataMap.put("wellTypeName",busWellInfo.getWellTypeName()); + dataMap.put("deptName", permissionService.getDeptService().getDeptName(String.valueOf(busWellInfo.getDeptid()))); + dataMap.put("wellTypeName", busWellInfo.getWellTypeName()); dataMap.put("position", busWellInfo.getPosition()); dataMap.put("deep", busWellInfo.getDeep()); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java index 263839d..d1e0d38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dto.AlarmNowView; @@ -13,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author casic123 @@ -23,13 +23,13 @@ public class AlarmNowViewServiceImpl extends ServiceImpl implements IAlarmNowViewService { @Resource - private AbstractPermissionContext permissionService; + private AbstractDictService dictService; @Override public List getNowAlarmRecords(DataScope dataScope) { List alarmNowViewList = this.baseMapper.getNowAlarmRecords(dataScope); for (AlarmNowView alarmNowView : alarmNowViewList) { - alarmNowView.setWellTypeName(permissionService.getDictNameByCode("sluicewellType",alarmNowView.getWellType())); + alarmNowView.setWellTypeName(dictService.getDictNameByCode("sluicewellType", alarmNowView.getWellType())); } return alarmNowViewList; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index 760fdf6..affce72 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,15 +1,15 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dao.StatisticMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.service.IStatisticsService; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.hutool.core.util.ObjectUtil; import javax.annotation.Resource; import java.text.ParseException; @@ -18,35 +18,37 @@ @Service public class StatisticServiceImpl implements IStatisticsService { - @Autowired + @Resource private StatisticMapper statisticMapper; - @Autowired + @Resource private AlarmNowViewMapper alarmNowViewMapper; @Resource private AbstractPermissionContext permissionService; + @Resource + private AbstractDictService dictService; @Override public List> wellStaticsByDept(DataScope dataScope) { List> mapList = statisticMapper.wellStaticsByDept(dataScope); for (Map map : mapList) { - map.put("pidName",permissionService.getDeptName(Long.valueOf(map.get("pid").toString()))); + map.put("pidName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("pid").toString()))); } return mapList; } @Override public List> wellStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.wellStaticsByType(deptIds); for (Map map : mapList) { - map.put("wellTypeName",permissionService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); + map.put("wellTypeName", dictService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); } return mapList; } @Override public List> deviceStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.deviceStaticsByType(deptIds); // for (Map map : mapList) { // map.replace("deviceType",sysDictMapper.getDeviceTypeNameById(map.get("deviceType").toString())); @@ -55,51 +57,53 @@ } @Override - public List> deviceStaticsByDept(DataScope dataScope,String deviceType) { - List> mapList = statisticMapper.deviceStaticsByDept(dataScope,deviceType); + public List> deviceStaticsByDept(DataScope dataScope, String deviceType) { + List> mapList = statisticMapper.deviceStaticsByDept(dataScope, deviceType); for (Map map : mapList) { - map.put("deptName",permissionService.getDeptName(Long.valueOf(map.get("deptid").toString()))); + map.put("deptName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("deptid").toString()))); } return mapList; } @Override public Map deviceStaticsByStatus(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map map = statisticMapper.deviceStaticsByStatus(deptIds); - for(String s:map.keySet()){ //value都转为string - map.replace(s,map.get(s).toString()); + for (String s : map.keySet()) { //value都转为string + map.replace(s, map.get(s).toString()); } return map; } @Override - public List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException { + public List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException { List> mapList = new ArrayList<>(); List deptIds = dataScope.getDeptIds(); for (Long deptId : deptIds) { - if(deptId==0){ // 顶级不统计 + // 顶级不统计 + if (deptId == 0) { continue; } - Dept dept = permissionService.getDeptById(deptId); - if( ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())){ // 小组不统计 + Dept dept = permissionService.getDeptService().getById(deptId); + // 小组不统计 + if (ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())) { continue; } Map map = new HashMap<>(); - List subDeptIds = permissionService.getSubDepts(deptId,null); + List subDeptIds = permissionService.getDeptService().getIdsRecursionByPid(deptId, null); subDeptIds.add(deptId); - String subDeptIdstr = StringUtils.strip(subDeptIds.toString(),"[]"); + String subDeptIdstr = StringUtils.strip(subDeptIds.toString(), "[]"); map.put("deptId", deptId); - map.put("deptName",permissionService.getDeptName(deptId)); - Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr,beginTime,endTime); - if(ToolUtil.isNotEmpty(countMap)){ + map.put("deptName", permissionService.getDeptService().getDeptName(deptId)); + Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr, beginTime, endTime); + if (ObjectUtil.isNotEmpty(countMap)) { map.putAll(countMap); - }else{ - map.put("beforeGet",0); - map.put("beforeConfirm",0); - map.put("inHandle",0); - map.put("over",0); - map.put("cancel",0); + } else { + map.put("beforeGet", 0); + map.put("beforeConfirm", 0); + map.put("inHandle", 0); + map.put("over", 0); + map.put("cancel", 0); } mapList.add(map); } @@ -108,23 +112,23 @@ @Override public List> alarmsByDay(String beginTime, String endTime, DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日"); List> mapList = new ArrayList<>(); - try{ + try { Date beginDate = sdf1.parse(beginTime); Date endDate = sdf1.parse(endTime); Calendar date = Calendar.getInstance(); date.setTime(beginDate); while (date.getTime().compareTo(endDate) <= 0) { String tmp = sdf1.format(date.getTime()); - Map map = alarmNowViewMapper.countAlarmsByDay(tmp,deptIds); - map.put("date",sdf2.format(date.getTime())); + Map map = alarmNowViewMapper.countAlarmsByDay(tmp, deptIds); + map.put("date", sdf2.format(date.getTime())); mapList.add(map); - date.add(Calendar.DAY_OF_MONTH,1); + date.add(Calendar.DAY_OF_MONTH, 1); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return mapList; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java index 0da3db8..0f499e6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java @@ -13,38 +13,40 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArraySet; +/** + * 此注解相当于设置访问URL + */ @Component @ServerEndpoint("/websocket/{userId}") -//此注解相当于设置访问URL public class WebSocket { private Session session; - private static CopyOnWriteArraySet webSockets =new CopyOnWriteArraySet<>(); - private static Map sessionPool = new HashMap(); + private static CopyOnWriteArraySet webSockets = new CopyOnWriteArraySet<>(); + private static Map sessionPool = new HashMap(); @OnOpen - public void onOpen(Session session, @PathParam(value="userId")String userId) { + public void onOpen(Session session, @PathParam(value = "userId") String userId) { this.session = session; webSockets.add(this); sessionPool.put(userId, session); - System.out.println(userId+"【websocket消息】有新的连接,总数为:"+webSockets.size()); + System.out.println(userId + "【websocket消息】有新的连接,总数为:" + webSockets.size()); } @OnClose public void onClose() { webSockets.remove(this); - System.out.println("【websocket消息】连接断开,总数为:"+webSockets.size()); + System.out.println("【websocket消息】连接断开,总数为:" + webSockets.size()); } @OnMessage public void onMessage(String message) { - System.out.println("【websocket消息】收到客户端消息:"+message); + System.out.println("【websocket消息】收到客户端消息:" + message); } // 此为广播消息 public void sendAllMessage(String message) { - for(WebSocket webSocket : webSockets) { - System.out.println("【websocket消息】广播消息:"+message); + for (WebSocket webSocket : webSockets) { + System.out.println("【websocket消息】广播消息:" + message); try { webSocket.session.getAsyncRemote().sendText(message); } catch (Exception e) { @@ -54,8 +56,8 @@ } // 发送列表消息 - public void sendListMessage(List userIds, String message){ - System.out.println("【websocket消息】列表消息:"+message); + public void sendListMessage(List userIds, String message) { + System.out.println("【websocket消息】列表消息:" + message); for (String userId : userIds) { Session session = sessionPool.get(userId); if (session != null) { @@ -87,7 +89,7 @@ // 此为单点消息 public void sendOneMessage(String userId, String message) { - System.out.println("【websocket消息】单点消息:"+message); + System.out.println("【websocket消息】单点消息:" + message); Session session = sessionPool.get(userId); if (session != null) { try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java deleted file mode 100644 index 431e0bd..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.alibaba.fastjson.JSONArray; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.ObjectUtil; - - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -//@Service -//@Primary -public class AlarmJobWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmJobWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置人员姓名 - for (String key : map.keySet()) - { - if (key.contains("JobPerson")|| key.contains("jobBelongTo")) - { - Object object = map.get(key); - if (object!=null) - { - String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); - map.replace(key,newVal); - } - } - } - - //设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = StrUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ObjectUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ObjectUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 工单状态 - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 流转记录(工单详情用) - if (map.containsKey("flow")) - { - String flow = (String) map.get("flow"); - flow = "["+flow.replaceFirst(",","")+"]"; - List list = new ArrayList<>(); - JSONArray jsonArray = JSONArray.parseArray(flow); - list = jsonArray.toJavaList(Map.class); - map.replace("flow",list); - } - - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java deleted file mode 100644 index 3c4807a..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.base.warpper.BaseControllerWarpper; -import com.casic.missiles.core.util.ToolUtil; - -import java.util.HashMap; -import java.util.Map; - -//@Service -//@Primary -public class AlarmRecordWarpper extends BaseControllerWarpper { - public AlarmRecordWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = ToolUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ToolUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ToolUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 告警状态 - String statusStr = map.get("status").toString(); - map.put("statusName",EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr,"alarmStatus")); - - // 工单状态 - if(ToolUtil.isNotEmpty(map.get("jobStatus"))){ - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - } - - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java deleted file mode 100644 index 7d8cef1..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.casic.missiles.core.base.warpper.BaseControllerWarpper; -import com.casic.missiles.core.util.EhcacheConstant; - -import java.util.Map; - -//@Service -//@Primary -public class AlarmRuleWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmRuleWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - String deviceType = map.get("deviceType").toString(); - long deptid = Long.parseLong(map.get("deptid").toString()); - map.put("deviceTypeName",EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - } -} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java index b7e13ca..d9b07c3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -1,12 +1,11 @@ package com.casic.missiles.modular.system.controller; -import cn.hutool.core.collection.CollectionUtil; +import com.casic.missiles.config.DeviceServerProperties; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.modular.system.dto.VersionDto; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.config.DeviceServerProperties; import com.casic.missiles.modular.system.constant.DeviceConst; +import com.casic.missiles.modular.system.dto.VersionDto; import com.casic.missiles.modular.system.service.IDeviceService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,7 +62,6 @@ response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition", " attachment;filename=" + fileName); response.setContentLength((int) file.length()); - FileInputStream fis = null; try { fis = new FileInputStream(file); @@ -103,7 +101,6 @@ @PostMapping("/app/registerGeTui") public ResponseData geTuiRegister(@RequestParam String clientid) { - service.registerGeTui(permissionService.getAuthService().getLoginUser().getId(), clientid); return ResponseData.success(); } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java index e34c98e..ee3443d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.model.application.service.IRepositorySupportService; import com.casic.missiles.modular.system.dto.BusWellInfoDto; import com.casic.missiles.modular.system.model.BusWellInfo; @@ -24,5 +24,13 @@ */ List getWellList(DataScope dataScope, String keywords, String wellType, String deptid); + /** + * 根据井主键查询井信息 + * + * @param id 井主键 + * @return 井信息 + */ BusWellInfo getById(Long id); + + BusWellInfo selectOne(QueryWrapper busWellInfoEntityWrapper); } diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java index d241d8c..3d37ce7 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java @@ -2,6 +2,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; @@ -82,10 +83,6 @@ } - - - - @Override public List selectDataScope(DataScope dataScope, Page page, String deviceType, String deptid, String keywords) { return this.baseMapper.selectDataScope(dataScope, page, deviceType, deptid, keywords); @@ -235,6 +232,11 @@ return this.baseMapper.selectById(id); } + @Override + public BusWellInfo selectOne(QueryWrapper busWellInfoEntityWrapper) { + return this.getOne(busWellInfoEntityWrapper); + } + @Override public String getAreaPid(String id) { diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 95d7f58..88f7dc3 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -28,21 +28,36 @@ ${admin.version}
+ com.casic + casic-device + ${pro.version} + + + com.casic + casic-quartz + ${pro.version} + + + com.casic + casic-server-support + ${pro.version} + + org.springframework.boot spring-boot-starter-websocket 2.4.5 - - - - - - - - - - + + + + + + + + + + com.gexin.platform diff --git a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java b/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java deleted file mode 100644 index 460d4db..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/CasicApplication.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.missiles; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * SpringBoot方式启动类 - * - * @author lwh - * @Date 2021/06/06 12:06 - */ -@SpringBootApplication -@EnableCaching -@EnableScheduling -@EnableTransactionManagement(proxyTargetClass = true) -@EnableAsync -@ServletComponentScan -@Slf4j -public class CasicApplication { - public static void main(String[] args) { - SpringApplication.run(CasicApplication.class, args); - log.info("CasicApplication is success!"); - } - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java index ef473af..6a426fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmJobController.java @@ -1,19 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; import com.casic.missiles.modular.alarm.service.ISysDictService; -import com.casic.missiles.modular.system.warpper.AlarmJobWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -29,7 +31,10 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -40,7 +45,7 @@ */ @Controller @RequestMapping("/job") -public class AlarmJobController extends BaseController { +public class AlarmJobController extends ExportController { @Autowired @@ -146,16 +151,93 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatusStr)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatusStr)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatusStr)); } } retList = alarmJobService.jobListApp(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmJobWrapper(Map map) { + // 设置人员姓名 + for (String key : map.keySet()) { + if (key.contains("JobPerson") || key.contains("jobBelongTo")) { + Object object = map.get(key); + if (object != null) { + String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); + map.replace(key, newVal); + } + } + } + + //设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (ObjectUtil.isEmpty(staffstr)) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 工单状态 + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 流转记录(工单详情用) + if (map.containsKey("flow")) { + String flow = (String) map.get("flow"); + flow = "[" + flow.replaceFirst(",", "") + "]"; + List list = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(flow); + list = jsonArray.toJavaList(Map.class); + map.replace("flow", list); + } + } + /** * 工单查询接口 APP用 */ @@ -181,14 +263,13 @@ leaderId = currentUser.getId(); if (StrUtil.isNotEmpty(jobStatus)) { //learder&&jobStatus=1,2,3时,关闭传入的sort,按sql排序(自己的排在前) - page.setOpenSort(!alarmJobService.checkJobStatus(jobStatus)); + page.setSearchCount(!alarmJobService.checkJobStatus(jobStatus)); } } retList = alarmJobService.jobListSearchApp(page, keywords, alarmLevel, alarmContent, jobStatus, beginTime, endTime, getJobBeginTime, getJobEndTime, shouldGetBeginTime, shouldGetEndTime, handleJobBeginTime, handleJobEndTime, shouldHandleBeginTime, shouldHandleEndTime, currentUser.getDeptId(), currentUser.getId(), leaderId); } - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); Map retMap = new HashMap<>(); @@ -227,7 +308,7 @@ } retList = alarmJobService.jobListDelayReApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -265,7 +346,7 @@ } retList = alarmJobService.jobListDelayProApp(page, keywords, beginTime, endTime, alarmTypeStr, alarmContentStr, currentUser.getDeptId(), currentUser.getId(), leaderId); } - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); @@ -294,22 +375,35 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); jobExpList = alarmJobService.jobList(page, keywords, beginTime, endTime, jobStatusStr, alarmTypeStr, alarmContentStr, dataScope, currentUser.getId()); - new AlarmJobWarpper(jobExpList).warp(); + jobExpList.forEach(this::alarmJobWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(jobExpList)) { fileInputStream = new FileInputStream(templatePath + "/jobRecEmpty.xlsx"); } else { fileInputStream = new FileInputStream(templatePath + "/jobRecTemplate.xlsx"); } + try { + httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "jobOverview.xlsx"); - Map var = new HashMap<>(); var.put("标题", "工单一览表"); var.put("list", jobExpList); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("工单编号", "jobCode")); + dataFieldDefines.add(new DataFieldDefine("工单创建时间", "createTime")); + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("告警时间", "alarmTime")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + dataFieldDefines.add(new DataFieldDefine("处理人", "handleJobPerson")); + dataFieldDefines.add(new DataFieldDefine("处理时间", "handleJobTime")); + this.exportExcelMaps(dataFieldDefines, jobExpList, "工单一览表"); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { @@ -361,7 +455,7 @@ @RequestMapping(value = "/transferJob") @ResponseBody public Object transferJob(@RequestParam(value = "id", required = true) int id, - @RequestParam(value = "transferPerson", required = true) String transferPerson) throws JSONException { + @RequestParam(value = "transferPerson", required = true) String transferPerson) { AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); @@ -437,8 +531,7 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); List> retList = alarmJobService.jobInfo(id, dataScope, currentUser.getId()); - - new AlarmJobWarpper(retList).warp(); + retList.forEach(this::alarmJobWrapper); return ResponseData.success(retList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java index 5ec9ed1..a1432fd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmLevelController.java @@ -1,22 +1,23 @@ package com.casic.missiles.modular.alarm.controller; -import com.alibaba.fastjson.JSON; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.util.EhcacheConstant; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmLevelService; import com.casic.missiles.modular.system.model.AlarmLevel; import com.casic.missiles.modular.system.model.DeptPermission; +import com.casic.missiles.modular.system.service.IDeptPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.*; @@ -36,73 +37,74 @@ private IAlarmLevelService alarmLevelService; @Resource private AbstractPermissionContext permissionService; - @Autowired - private AbstractDeptService deptPermissionService; + @Resource + private IDeptPermissionService deptPermissionService; /** * 获取告警等级列表 */ @RequestMapping("/levelList") @ResponseBody - public Object levelList(Long tenantId){ - List> levelList = new ArrayList<>(); + public Object levelList(Long tenantId) { + List> levelList = new ArrayList<>(); AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } DeptPermission deptPermission = deptPermissionService.selectDeptPermission(currUser.getDeptId()); - if(ObjectUtil.isEmpty(deptPermission)){ + if (ObjectUtil.isEmpty(deptPermission)) { return levelList; } - for(Object deviceType: JSON.parseObject(deptPermission.getDeviceType(), List.class)){ + for (Object deviceType : JSON.parseObject(deptPermission.getDeviceType(), List.class)) { String deviceTypeName = EhcacheConstant.retBean().getDeviceTypeNameById(deviceType.toString()); List names = new ArrayList<>(); - if(deviceTypeName.contains("液位")){ + if (deviceTypeName.contains("液位")) { names.add("液位"); } - if(deviceTypeName.contains("有害气体")){ + if (deviceTypeName.contains("有害气体")) { names.add("一氧化碳"); names.add("硫化氢"); names.add("甲烷"); names.add("氧气"); } - if(deviceTypeName.contains("燃气")){ + if (deviceTypeName.contains("燃气")) { names.add("燃气"); } - if(deviceTypeName.contains("温湿度")){ + if (deviceTypeName.contains("温湿度")) { names.add("温度"); names.add("湿度"); } - if(deviceTypeName.contains("开挖")){ + if (deviceTypeName.contains("开挖")) { names.add("开挖"); } - for(String name: names){ + for (String name : names) { Map levelMap = new HashMap<>(); - Map level = alarmLevelService.selectByNameAndTenGroup(tenantId,name); - levelMap.put("name",name); - levelMap.put("deviceType",deviceType); - levelMap.put("deviceTypeName",deviceTypeName); + Map level = alarmLevelService.selectByNameAndTenGroup(tenantId, name); + levelMap.put("name", name); + levelMap.put("deviceType", deviceType); + levelMap.put("deviceTypeName", deviceTypeName); - if(ObjectUtil.isEmpty(level.get("openAlarm"))){ - levelMap.put("openAlarm",""); - }else{ - levelMap.put("openAlarm",level.get("openAlarm").toString()); + if (ObjectUtil.isEmpty(level.get("openAlarm"))) { + levelMap.put("openAlarm", ""); + } else { + levelMap.put("openAlarm", level.get("openAlarm").toString()); } - if(ObjectUtil.isEmpty(level.get("openJob"))){ - levelMap.put("openJob",""); - }else{ - levelMap.put("openJob",level.get("openJob").toString()); + if (ObjectUtil.isEmpty(level.get("openJob"))) { + levelMap.put("openJob", ""); + } else { + levelMap.put("openJob", level.get("openJob").toString()); } - if(ObjectUtil.isEmpty(level.get("ts"))){ - levelMap.put("ts",""); - }else{ - levelMap.put("ts",level.get("ts").toString()); + if (ObjectUtil.isEmpty(level.get("ts"))) { + levelMap.put("ts", ""); + } else { + levelMap.put("ts", level.get("ts").toString()); } levelList.add(levelMap); @@ -116,13 +118,14 @@ */ @RequestMapping("/levelByType") @ResponseBody - public Object levelByType(Long tenantId, String name){ + public Object levelByType(Long tenantId, String name) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - if(ObjectUtil.isEmpty(tenantId)){ - if(StrUtil.isEmpty(currUser.getTenantId())){ + if (ObjectUtil.isEmpty(tenantId)) { + if (StrUtil.isEmpty(currUser.getTenantId())) { return ResponseData.error("无关联的项目id"); } - tenantId = Long.valueOf(currUser.getTenantId()); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + tenantId = Long.valueOf(currUser.getTenantId()); } List levelList = alarmLevelService.selectByNameAndTenList(tenantId, name); return ResponseData.success(levelList); @@ -131,22 +134,23 @@ @RequestMapping("/configLevel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object configLevel(@RequestBody List levelList){ + public Object configLevel(@RequestBody List levelList) { AuthUser currUser = permissionService.getAuthService().getLoginUser(); - String userTenantId = currUser.getTenantId(); //当前用户所属组织机构关联的项目id + //当前用户所属组织机构关联的项目id + String userTenantId = currUser.getTenantId(); Date currDate = new Date(); - for(AlarmLevel alarmLevel:levelList){ - if(ObjectUtil.isAllEmpty(alarmLevel.getTenantId(),userTenantId)){ + for (AlarmLevel alarmLevel : levelList) { + if (ObjectUtil.isAllEmpty(alarmLevel.getTenantId(), userTenantId)) { return ResponseData.error("无关联的项目id"); } Long tenantId = ObjectUtil.isEmpty(alarmLevel.getTenantId()) ? Long.valueOf(userTenantId) : alarmLevel.getTenantId(); - AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId,alarmLevel.getName(),alarmLevel.getLevel()); - if(ObjectUtil.isEmpty(oldAlarmLevel)){ + AlarmLevel oldAlarmLevel = alarmLevelService.selectByNameAndTenAndLevel(tenantId, alarmLevel.getName(), alarmLevel.getLevel()); + if (ObjectUtil.isEmpty(oldAlarmLevel)) { //insert alarmLevel.setTenantId(tenantId); alarmLevel.setTs(currDate); - alarmLevelService.insert(alarmLevel); - }else{ + alarmLevelService.save(alarmLevel); + } else { //update alarmLevel.setId(oldAlarmLevel.getId()); alarmLevel.setTenantId(tenantId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 67e4b49..51e0d50 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.model.auth.AuthUser; -import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.model.DataFieldDefine; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.AlarmRecords; -import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.core.page.PageFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -17,13 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.collection.CollectionUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,7 +40,7 @@ */ @Controller @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { +public class AlarmRecordsController extends ExportController { @Autowired @@ -44,13 +48,13 @@ @Resource private AbstractPermissionContext iCommonPermissionService; @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -62,7 +66,7 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); @@ -73,28 +77,87 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - - - new AlarmRecordWarpper(retList).warp(); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + retList.forEach(this::alarmRecordWrapper); page.setRecords(retList); return ResponseData.success(super.packForBT(page)); } + private void alarmRecordWrapper(Map map) { + // 设置闸井相关字段 + String wellCode = map.get("wellCode").toString(); + Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); + // 设置权属单位、负责人、联系电话 + String deptidStr = wellInfoMap.get("deptid").toString(); + long deptid = StrUtil.isEmpty(deptidStr) ? -1 : Long.valueOf(deptidStr); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + if (deptid > 0) { + Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); + if (null == staffstr) { + wellInfoMap.replace("staff", ""); + wellInfoMap.replace("tel", ""); + } else { + Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); + wellInfoMap.putAll(userInfoMap); + } + } + map.putAll(wellInfoMap); + + // 告警类型 + String alarmTypeStr = map.get("alarmType").toString(); + map.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); + + // 告警内容 + String alarmContentNameStr = map.get("alarmContentName").toString(); + map.put("alarmContent", EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); + + // 告警值加单位 + if (ObjectUtil.isNotEmpty(map.get("alarmValue"))) { + String alarmValue = map.get("alarmValue").toString(); + String alarmContentName = map.get("alarmContentName").toString(); + if ("液位超限".equals(alarmContentName)) { + alarmValue += "m"; + map.replace("alarmValue", alarmValue); + } + if ("浓度超限".equals(alarmContentName)) { + alarmValue += "%LEL"; + map.replace("alarmValue", alarmValue); + } + if ("疑似开挖".equals(alarmContentName)) { + alarmValue += "mg"; + map.replace("alarmValue", alarmValue); + } + } + + // 告警值 + if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) { + map.replace("alarmValue", "--"); + } + + // 告警状态 + String statusStr = map.get("status").toString(); + map.put("statusName", EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr, "alarmStatus")); + + // 工单状态 + if (ObjectUtil.isNotEmpty(map.get("jobStatus"))) { + String jobStatusStr = map.get("jobStatus").toString(); + map.put("jobStatusName", EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); + } + } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { + public void exportAlarm(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); Page> page = PageFactory.defaultPage(); - page.setMaxLimit((long)maxRowsExcel); + page.setMaxLimit((long) maxRowsExcel); page.setSize(maxRowsExcel); page.offset(); page.setSearchCount(false); @@ -104,25 +167,36 @@ if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,dataScope); - new AlarmRecordWarpper(alarmExpList).warp(); - + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, dataScope); + alarmExpList.forEach(this::alarmRecordWrapper); FileInputStream fileInputStream = null; if (CollectionUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecEmpty.xlsx"); } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); + fileInputStream = new FileInputStream(templatePath + "/alarmRecTemplate.xlsx"); } try { httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmOverview.xlsx" ); + httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "alarmOverview.xlsx"); - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); + Map var = new HashMap<>(); + var.put("标题", "报警一览表"); + var.put("list", alarmExpList); + + List dataFieldDefines = new ArrayList<>(); + // + dataFieldDefines.add(new DataFieldDefine("井编号", "wellCode")); + dataFieldDefines.add(new DataFieldDefine("设备编号", "devcode")); + dataFieldDefines.add(new DataFieldDefine("详细地址", "position")); + dataFieldDefines.add(new DataFieldDefine("告警类型", "alarmTypeName")); + dataFieldDefines.add(new DataFieldDefine("告警原因", "alarmContentName")); + dataFieldDefines.add(new DataFieldDefine("告警数值", "alarmValue")); + dataFieldDefines.add(new DataFieldDefine("权属单位", "deptName")); + dataFieldDefines.add(new DataFieldDefine("处理状态", "jobStatusName")); + + this.exportExcelMaps(dataFieldDefines, alarmExpList, "报警一览表"); } catch (IOException e) { e.printStackTrace(); @@ -132,7 +206,8 @@ httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); fileInputStream.close(); - }; + } + ; } @@ -141,15 +216,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -160,22 +235,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); AuthUser currentUser = iCommonPermissionService.getAuthService().getLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index 7a645dd..3b39aeb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -1,21 +1,21 @@ package com.casic.missiles.modular.alarm.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.base.controller.BaseController; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.util.EhcacheConstant; +import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.system.dto.AlarmRuleDTO; -import com.casic.missiles.modular.system.warpper.AlarmRuleWarpper; +import com.casic.missiles.modular.system.service.IDeviceRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -54,8 +54,9 @@ public Map list(String keywords, HttpServletRequest httpServletRequest) { String deviceType = httpServletRequest.getParameter("deviceType"); - if (StrUtil.isEmpty(deviceType)) + if (StrUtil.isEmpty(deviceType)) { deviceType = ""; + } Page> page = PageFactory.defaultPage(); Map retMap = new HashMap<>(); boolean bSessionValid = false; @@ -66,9 +67,10 @@ return retMap; } List> retList = new ArrayList<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); retList = alarmRuleService.ruleListViaParam(page, keywords, deviceType, dataScope); - new AlarmRuleWarpper(retList).warp(); + retList.stream().forEach(this::alarmRuleWrapper); page.setRecords(retList); retMap.put("code", 200); retMap.put("message", "success"); @@ -76,11 +78,19 @@ return retMap; } + private void alarmRuleWrapper(Map map) { + String deviceType = map.get("deviceType").toString(); + long deptid = Long.parseLong(map.get("deptid").toString()); + map.put("deviceTypeName", EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); + map.put("deptName", EhcacheConstant.retBean().getDeptNameById(deptid)); + } + @RequestMapping(value = "/update") @ResponseBody public Map updateRule(@RequestParam(value = "id", required = true) int id, HttpServletRequest httpServletRequest) { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); if (super.getSession().getAttribute("sessionFlag") == null) { retMap.put("code", 505); retMap.put("message", "sessionExpired"); @@ -90,10 +100,12 @@ String sLow = httpServletRequest.getParameter("lowValue"); float highValue = 99999; float lowValue = -99999; - if (StrUtil.isNotEmpty(sHigh)) + if (StrUtil.isNotEmpty(sHigh)) { highValue = Float.parseFloat(sHigh); - if (StrUtil.isNotEmpty(sLow)) + } + if (StrUtil.isNotEmpty(sLow)) { lowValue = Float.parseFloat(sLow); + } if (alarmRuleService.updateRule(id, highValue, lowValue)) { retMap.put("code", 200); @@ -138,7 +150,7 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer id) { - alarmRuleService.deleteById(id); + alarmRuleService.removeById(id); return ResponseData.success(); } @@ -151,8 +163,9 @@ public Map getNoAlarmDevice() { Map retMap = new HashMap<>(); - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();//datascope - List alarmRuleList= alarmRuleService.getNoAlarmDevice(dataScope); + //datascope + DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); + List alarmRuleList = alarmRuleService.getNoAlarmDevice(dataScope); retMap.put("code", 200); retMap.put("message", "success"); retMap.put("data", alarmRuleList); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java new file mode 100644 index 0000000..a749516 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -0,0 +1,109 @@ +package com.casic.missiles.modular.alarm.job; + +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.modular.alarm.service.IAlarmJobService; +import com.casic.missiles.modular.system.model.AlarmJob; +import com.casic.missiles.modular.system.util.PushList; +import com.casic.missiles.modular.system.util.WebSocket; +import com.casic.missiles.quartz.service.IQuartzManager; +import com.gexin.rp.sdk.base.IPushResult; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class DelayJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DelayJob.class); + + private Integer jobId; + private IAlarmJobService iAlarmJobService; + private AbstractApplicationContext iCommonUserService; + private IQuartzManager iQuartzManager; + private WebSocket webSocket; + + public void setJobId(Integer jobId) { + this.jobId = jobId; + } + + public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { + this.iAlarmJobService = iAlarmJobService; + } + + public void setICommonUserService(AbstractApplicationContext iCommonUserService) { + this.iCommonUserService = iCommonUserService; + } + + public void setIQuartzManager(IQuartzManager iQuartzManager) { + this.iQuartzManager = iQuartzManager; + } + + public void setWebSocket(WebSocket webSocket) { + this.webSocket = webSocket; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //业务逻辑 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); + getJobDelay(jobId); + } + + private void getJobDelay(Integer id) { + AlarmJob alarmJob = iAlarmJobService.getById(id); + if (!"3".equals(alarmJob.getJobStatus()) && !"4".equals(alarmJob.getJobStatus())) { + // 超时未处理 // 延时标签 + alarmJob.setJobFlagDelay("2"); + // 延时记录 + String jobFlag = alarmJob.getJobFlag1(); + if (StrUtil.isNotEmpty(jobFlag)) { + jobFlag += ",2"; + } else { + jobFlag = "2"; + } + alarmJob.setJobFlag1(jobFlag); + iAlarmJobService.updateById(alarmJob); // 更新记录 + // APP推送 + Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 + String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); + List clientIds = new ArrayList<>(); + if (StrUtil.isNotEmpty(clientId)) { + clientIds.add(clientId); + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未处理"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未处理工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); + } + } else { + logger.info("超时未处理工单找不到责任人,未推送:" + id.toString()); + } + // PC推送,推给信息办 + //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); +// EntityWrapper wrapper = new EntityWrapper(); +// wrapper.eq("DEPTID","1178242562491285506"); +// List userList = iCommonUserService.selectUsersList(wrapper,null); +// List userIds = new ArrayList<>(); +// for (User user : userList) { +// userIds.add(user.getId().toString()); +// } +// Map map = new HashMap(); +// map.put("message","有新的超时未处理工单"); +// map.put("type","overtimeHandle"); +// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); + } + String jobName = "getJobDelay" + id; + iQuartzManager.removeJob(jobName); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java index ba9f439..9d72902 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/HandleAlarmJob.java @@ -1,10 +1,10 @@ package com.casic.missiles.modular.alarm.job; -import com.casic.missiles.core.common.service.ICommonUserService; +import cn.hutool.core.util.StrUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.modular.system.dto.UserClientView; import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -15,19 +15,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Component -public class HandleAlarmJob implements Job{ +public class HandleAlarmJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HandleAlarmJob.class); private Integer jobId; private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; + private AbstractPermissionContext iCommonUserService; private IQuartzManager iQuartzManager; private WebSocket webSocket; private List userClientViewList; @@ -40,7 +41,7 @@ this.iAlarmJobService = iAlarmJobService; } - public void setICommonUserService(ICommonUserService iCommonUserService) { + public void setICommonUserService(AbstractPermissionContext iCommonUserService) { this.iCommonUserService = iCommonUserService; } @@ -62,29 +63,29 @@ } private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if("0".equals(alarmJob.getJobStatus())){ + AlarmJob alarmJob = iAlarmJobService.getById(id); + if ("0".equals(alarmJob.getJobStatus())) { // 超时未接收 alarmJob.setJobFlagDelay("1"); // 延时标签 alarmJob.setJobFlag1("1"); iAlarmJobService.updateById(alarmJob); // 更新记录 // APP推送 推给井盖所属权属单位 List clientIds = new ArrayList<>(); - for(UserClientView userClientView:userClientViewList){ - if(StrUtil.isNotEmpty(userClientView.getClientid())){ + for (UserClientView userClientView : userClientViewList) { + if (StrUtil.isNotEmpty(userClientView.getClientid())) { clientIds.add(userClientView.getClientid()); } } - if(clientIds.size()>0){ - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未接收"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未接收工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); + if (clientIds.size() > 0) { + IPushResult pushResult = PushList.pushToUser(clientIds, "工单提醒", "您有一条工单超时未接收"); + if ("ok".equals(pushResult.getResponse().get("result").toString())) { + logger.info("超时未接收工单推送成功:" + id.toString()); + } else { + logger.info("超时未处理工单推送失败:" + id.toString()); } - }else{ - logger.info("超时未接收工单找不到责任人,未推送:"+id.toString()); + } else { + logger.info("超时未接收工单找不到责任人,未推送:" + id.toString()); } // PC推送,推给信息办 // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java deleted file mode 100644 index 46eeda9..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/getDelayJob.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.casic.missiles.modular.alarm.job; - -import com.casic.missiles.modular.alarm.service.IAlarmJobService; -import com.casic.missiles.modular.system.model.AlarmJob; -import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.util.PushList; -import com.casic.missiles.modular.system.util.WebSocket; -import com.casic.missiles.quartz.service.IQuartzManager; -import com.gexin.rp.sdk.base.IPushResult; -import com.google.gson.GsonBuilder; -import org.quartz.Job; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import cn.hutool.core.util.StrUtil; - -import java.text.SimpleDateFormat; -import java.util.*; - -@Component -public class getDelayJob implements Job { - - private static final Logger logger = LoggerFactory.getLogger(getDelayJob.class); - - private Integer jobId; - private IAlarmJobService iAlarmJobService; - private ICommonUserService iCommonUserService; - private IQuartzManager iQuartzManager; - private WebSocket webSocket; - - public void setJobId(Integer jobId) { - this.jobId = jobId; - } - - public void setIAlarmJobService(IAlarmJobService iAlarmJobService) { - this.iAlarmJobService = iAlarmJobService; - } - - public void setICommonUserService(ICommonUserService iCommonUserService) { - this.iCommonUserService = iCommonUserService; - } - - public void setIQuartzManager(IQuartzManager iQuartzManager) { - this.iQuartzManager = iQuartzManager; - } - - public void setWebSocket(WebSocket webSocket) { - this.webSocket = webSocket; - } - - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - - //业务逻辑 - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); - System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); - getJobDelay(jobId); - } - - private void getJobDelay(Integer id) { - AlarmJob alarmJob = iAlarmJobService.selectById(id); - if(!"3".equals(alarmJob.getJobStatus()) &&!"4".equals(alarmJob.getJobStatus())){ - // 超时未处理 - alarmJob.setJobFlagDelay("2"); // 延时标签 - String jobFlag = alarmJob.getJobFlag1(); // 延时记录 - if(StrUtil.isNotEmpty(jobFlag)){ - jobFlag += ",2"; - }else{ - jobFlag = "2"; - } - alarmJob.setJobFlag1(jobFlag); - iAlarmJobService.updateById(alarmJob); // 更新记录 - // APP推送 - Long jobBelongTo = alarmJob.getJobBelongTo(); // 只给责任人推送 - String clientId = iAlarmJobService.selectClientIdByUser(jobBelongTo); - List clientIds = new ArrayList<>(); - if(StrUtil.isNotEmpty(clientId)){ - clientIds.add(clientId); - IPushResult pushResult = PushList.pushToUser(clientIds,"工单提醒","您有一条工单超时未处理"); - if("ok".equals(pushResult.getResponse().get("result").toString())){ - logger.info("超时未处理工单推送成功:"+id.toString()); - }else{ - logger.info("超时未处理工单推送失败:"+id.toString()); - } - }else{ - logger.info("超时未处理工单找不到责任人,未推送:"+id.toString()); - } - // PC推送,推给信息办 - //List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); -// EntityWrapper wrapper = new EntityWrapper(); -// wrapper.eq("DEPTID","1178242562491285506"); -// List userList = iCommonUserService.selectUsersList(wrapper,null); -// List userIds = new ArrayList<>(); -// for (User user : userList) { -// userIds.add(user.getId().toString()); -// } -// Map map = new HashMap(); -// map.put("message","有新的超时未处理工单"); -// map.put("type","overtimeHandle"); -// webSocket.sendListMessage(userIds,new GsonBuilder().create().toJson(map)); - } - String jobName = "getJobDelay" + id; - iQuartzManager.removeJob(jobName); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d9ca2a1..450b861 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -1,11 +1,13 @@ package com.casic.missiles.modular.alarm.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.enums.UserQueryEnum; import com.casic.missiles.modular.alarm.job.HandleAlarmJob; -import com.casic.missiles.modular.alarm.job.getDelayJob; +import com.casic.missiles.modular.alarm.job.DelayJob; import com.casic.missiles.modular.alarm.service.IAlarmJobService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.EhcacheConstant; @@ -16,7 +18,7 @@ import com.casic.missiles.modular.system.model.AlarmJob; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.model.User; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import com.casic.missiles.modular.system.util.PushList; import com.casic.missiles.modular.system.util.WebSocket; import com.casic.missiles.quartz.service.IQuartzManager; @@ -31,7 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import cn.hutool.core.util.ObjectUtil; + import cn.hutool.core.util.StrUtil; /** @@ -68,7 +70,8 @@ @Resource private IQuartzManager quartzManager; - @Autowired IBusWellInfoService busWellInfoService; + @Resource + private IBusWellInfoSupportService busWellInfoService; @Override public List> jobList(Page> page, String keywords, String beginTime, String endTime, String jobStatus, String alarmType, String alarmContent, DataScope dataScope,Long userId) { @@ -177,7 +180,7 @@ map.put("iCommonUserService",iCommonUserService); map.put("iQuartzManager",quartzManager); map.put("webSocket",webSocket); - quartzManager.addJob(jobName,getDelayJob.class,shouldHandleTime,map); + quartzManager.addJob(jobName, DelayJob.class,shouldHandleTime,map); } return this.baseMapper.getJob(id,personId,getTime,shouldHandleTime); @@ -228,7 +231,7 @@ @Override public boolean checkJobStatus(String jobStatus) { - if(ToolUtil.isEmpty(jobStatus)){ + if(StrUtil.isEmpty(jobStatus)){ return false; }else{ return "1".equals(jobStatus) || "2".equals(jobStatus) || "3".equals(jobStatus); @@ -283,7 +286,7 @@ public void updateSinkJob(String id, String msg,String wellCode) { List userClientViewList = new ArrayList<>(); List selectDtoList = selectRoles(); - EntityWrapper busWellInfoEntityWrapper = new EntityWrapper<>(); + QueryWrapper busWellInfoEntityWrapper = new QueryWrapper<>(); busWellInfoEntityWrapper.eq("WELL_CODE",wellCode); BusWellInfo busWellInfo = busWellInfoService.selectOne(busWellInfoEntityWrapper); if(busWellInfo!=null&&StrUtil.isNotEmpty(busWellInfo.getDeptid())){ @@ -338,10 +341,10 @@ logger.info("告警消息app端找不到责任人,未推送:" + msg); } // PC推送,推给信息办 -// List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); - EntityWrapper wrapper = new EntityWrapper(); - wrapper.eq("DEPTID", "1178242562491285506"); - List userList = iCommonUserService.selectUsersList(wrapper, null); + // List userList = permissionService.getRoleUsersByTips("1178242562491285506",null,false); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq(UserQueryEnum.DEPT_ID, "1178242562491285506"); + List userList = iCommonUserService.getUserService().list(wrapper); for (User user : userList) { userIds.add(user.getId().toString()); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java index 134a817..44f6788 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/AlarmMapOverviewController.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.casic.missiles.core.base.controller.BaseController; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.exception.ServiceException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.system.dto.AlarmNowView; import com.casic.missiles.modular.system.model.BusWellInfo; import com.casic.missiles.modular.system.service.IAlarmNowViewService; -import com.casic.missiles.modular.system.service.IBusWellInfoService; +import com.casic.missiles.modular.system.service.IBusWellInfoSupportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cn.hutool.core.util.ObjectUtil; + /** * 地图总览模块的controller * @@ -38,7 +41,7 @@ private IAlarmNowViewService alarmNowViewService; @Autowired - private IBusWellInfoService busWellInfoService; + private IBusWellInfoSupportService busWellInfoService; /** * 获取当前全部告警列表 @@ -65,20 +68,20 @@ @RequestMapping(value = "/alarmsByWell", method = RequestMethod.GET) @ResponseBody public Object alarmsByWell(@RequestParam(required = true) Long id) { - if(ObjectUtil.isEmpty(id)){ - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + if (ObjectUtil.isEmpty(id)) { + throw new ServiceException(CoreExceptionEnum.REQUEST_NULL); } SuccessResponseData successResult = new SuccessResponseData(); // 查询闸井信息 - BusWellInfo busWellInfo = busWellInfoService.selectById(id); + BusWellInfo busWellInfo = busWellInfoService.getById(id); Map dataMap = new HashMap(); if (null != busWellInfo) { dataMap.put("id", busWellInfo.getId()); dataMap.put("wellCode", busWellInfo.getWellCode()); dataMap.put("deptId", busWellInfo.getDeptid()); - dataMap.put("deptName", permissionService.getDeptName(String.valueOf(busWellInfo.getDeptid()))); - dataMap.put("wellTypeName",busWellInfo.getWellTypeName()); + dataMap.put("deptName", permissionService.getDeptService().getDeptName(String.valueOf(busWellInfo.getDeptid()))); + dataMap.put("wellTypeName", busWellInfo.getWellTypeName()); dataMap.put("position", busWellInfo.getPosition()); dataMap.put("deep", busWellInfo.getDeep()); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java index 263839d..d1e0d38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmNowViewServiceImpl.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dto.AlarmNowView; @@ -13,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author casic123 @@ -23,13 +23,13 @@ public class AlarmNowViewServiceImpl extends ServiceImpl implements IAlarmNowViewService { @Resource - private AbstractPermissionContext permissionService; + private AbstractDictService dictService; @Override public List getNowAlarmRecords(DataScope dataScope) { List alarmNowViewList = this.baseMapper.getNowAlarmRecords(dataScope); for (AlarmNowView alarmNowView : alarmNowViewList) { - alarmNowView.setWellTypeName(permissionService.getDictNameByCode("sluicewellType",alarmNowView.getWellType())); + alarmNowView.setWellTypeName(dictService.getDictNameByCode("sluicewellType", alarmNowView.getWellType())); } return alarmNowViewList; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index 760fdf6..affce72 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,15 +1,15 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dao.AlarmNowViewMapper; import com.casic.missiles.modular.system.dao.StatisticMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.service.IStatisticsService; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import cn.hutool.core.util.ObjectUtil; import javax.annotation.Resource; import java.text.ParseException; @@ -18,35 +18,37 @@ @Service public class StatisticServiceImpl implements IStatisticsService { - @Autowired + @Resource private StatisticMapper statisticMapper; - @Autowired + @Resource private AlarmNowViewMapper alarmNowViewMapper; @Resource private AbstractPermissionContext permissionService; + @Resource + private AbstractDictService dictService; @Override public List> wellStaticsByDept(DataScope dataScope) { List> mapList = statisticMapper.wellStaticsByDept(dataScope); for (Map map : mapList) { - map.put("pidName",permissionService.getDeptName(Long.valueOf(map.get("pid").toString()))); + map.put("pidName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("pid").toString()))); } return mapList; } @Override public List> wellStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.wellStaticsByType(deptIds); for (Map map : mapList) { - map.put("wellTypeName",permissionService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); + map.put("wellTypeName", dictService.getDictNameByCode("sluicewellType", map.get("wellType").toString())); } return mapList; } @Override public List> deviceStaticsByType(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); List> mapList = statisticMapper.deviceStaticsByType(deptIds); // for (Map map : mapList) { // map.replace("deviceType",sysDictMapper.getDeviceTypeNameById(map.get("deviceType").toString())); @@ -55,51 +57,53 @@ } @Override - public List> deviceStaticsByDept(DataScope dataScope,String deviceType) { - List> mapList = statisticMapper.deviceStaticsByDept(dataScope,deviceType); + public List> deviceStaticsByDept(DataScope dataScope, String deviceType) { + List> mapList = statisticMapper.deviceStaticsByDept(dataScope, deviceType); for (Map map : mapList) { - map.put("deptName",permissionService.getDeptName(Long.valueOf(map.get("deptid").toString()))); + map.put("deptName", permissionService.getDeptService().getDeptName(Long.valueOf(map.get("deptid").toString()))); } return mapList; } @Override public Map deviceStaticsByStatus(DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map map = statisticMapper.deviceStaticsByStatus(deptIds); - for(String s:map.keySet()){ //value都转为string - map.replace(s,map.get(s).toString()); + for (String s : map.keySet()) { //value都转为string + map.replace(s, map.get(s).toString()); } return map; } @Override - public List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException { + public List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException { List> mapList = new ArrayList<>(); List deptIds = dataScope.getDeptIds(); for (Long deptId : deptIds) { - if(deptId==0){ // 顶级不统计 + // 顶级不统计 + if (deptId == 0) { continue; } - Dept dept = permissionService.getDeptById(deptId); - if( ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())){ // 小组不统计 + Dept dept = permissionService.getDeptService().getById(deptId); + // 小组不统计 + if (ObjectUtil.isEmpty(dept) || "04".equals(dept.getDeptType())) { continue; } Map map = new HashMap<>(); - List subDeptIds = permissionService.getSubDepts(deptId,null); + List subDeptIds = permissionService.getDeptService().getIdsRecursionByPid(deptId, null); subDeptIds.add(deptId); - String subDeptIdstr = StringUtils.strip(subDeptIds.toString(),"[]"); + String subDeptIdstr = StringUtils.strip(subDeptIds.toString(), "[]"); map.put("deptId", deptId); - map.put("deptName",permissionService.getDeptName(deptId)); - Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr,beginTime,endTime); - if(ToolUtil.isNotEmpty(countMap)){ + map.put("deptName", permissionService.getDeptService().getDeptName(deptId)); + Map countMap = statisticMapper.jobsByDeptId(subDeptIdstr, beginTime, endTime); + if (ObjectUtil.isNotEmpty(countMap)) { map.putAll(countMap); - }else{ - map.put("beforeGet",0); - map.put("beforeConfirm",0); - map.put("inHandle",0); - map.put("over",0); - map.put("cancel",0); + } else { + map.put("beforeGet", 0); + map.put("beforeConfirm", 0); + map.put("inHandle", 0); + map.put("over", 0); + map.put("cancel", 0); } mapList.add(map); } @@ -108,23 +112,23 @@ @Override public List> alarmsByDay(String beginTime, String endTime, DataScope dataScope) { - String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日"); List> mapList = new ArrayList<>(); - try{ + try { Date beginDate = sdf1.parse(beginTime); Date endDate = sdf1.parse(endTime); Calendar date = Calendar.getInstance(); date.setTime(beginDate); while (date.getTime().compareTo(endDate) <= 0) { String tmp = sdf1.format(date.getTime()); - Map map = alarmNowViewMapper.countAlarmsByDay(tmp,deptIds); - map.put("date",sdf2.format(date.getTime())); + Map map = alarmNowViewMapper.countAlarmsByDay(tmp, deptIds); + map.put("date", sdf2.format(date.getTime())); mapList.add(map); - date.add(Calendar.DAY_OF_MONTH,1); + date.add(Calendar.DAY_OF_MONTH, 1); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return mapList; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java index 0da3db8..0f499e6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/WebSocket.java @@ -13,38 +13,40 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArraySet; +/** + * 此注解相当于设置访问URL + */ @Component @ServerEndpoint("/websocket/{userId}") -//此注解相当于设置访问URL public class WebSocket { private Session session; - private static CopyOnWriteArraySet webSockets =new CopyOnWriteArraySet<>(); - private static Map sessionPool = new HashMap(); + private static CopyOnWriteArraySet webSockets = new CopyOnWriteArraySet<>(); + private static Map sessionPool = new HashMap(); @OnOpen - public void onOpen(Session session, @PathParam(value="userId")String userId) { + public void onOpen(Session session, @PathParam(value = "userId") String userId) { this.session = session; webSockets.add(this); sessionPool.put(userId, session); - System.out.println(userId+"【websocket消息】有新的连接,总数为:"+webSockets.size()); + System.out.println(userId + "【websocket消息】有新的连接,总数为:" + webSockets.size()); } @OnClose public void onClose() { webSockets.remove(this); - System.out.println("【websocket消息】连接断开,总数为:"+webSockets.size()); + System.out.println("【websocket消息】连接断开,总数为:" + webSockets.size()); } @OnMessage public void onMessage(String message) { - System.out.println("【websocket消息】收到客户端消息:"+message); + System.out.println("【websocket消息】收到客户端消息:" + message); } // 此为广播消息 public void sendAllMessage(String message) { - for(WebSocket webSocket : webSockets) { - System.out.println("【websocket消息】广播消息:"+message); + for (WebSocket webSocket : webSockets) { + System.out.println("【websocket消息】广播消息:" + message); try { webSocket.session.getAsyncRemote().sendText(message); } catch (Exception e) { @@ -54,8 +56,8 @@ } // 发送列表消息 - public void sendListMessage(List userIds, String message){ - System.out.println("【websocket消息】列表消息:"+message); + public void sendListMessage(List userIds, String message) { + System.out.println("【websocket消息】列表消息:" + message); for (String userId : userIds) { Session session = sessionPool.get(userId); if (session != null) { @@ -87,7 +89,7 @@ // 此为单点消息 public void sendOneMessage(String userId, String message) { - System.out.println("【websocket消息】单点消息:"+message); + System.out.println("【websocket消息】单点消息:" + message); Session session = sessionPool.get(userId); if (session != null) { try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java deleted file mode 100644 index 431e0bd..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmJobWarpper.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.alibaba.fastjson.JSONArray; -import com.casic.missiles.core.util.EhcacheConstant; -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.ObjectUtil; - - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -//@Service -//@Primary -public class AlarmJobWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmJobWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置人员姓名 - for (String key : map.keySet()) - { - if (key.contains("JobPerson")|| key.contains("jobBelongTo")) - { - Object object = map.get(key); - if (object!=null) - { - String newVal = EhcacheConstant.retBean().getUsernameById(Long.parseLong(String.valueOf(object))); - map.replace(key,newVal); - } - } - } - - //设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = StrUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ObjectUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ObjectUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 工单状态 - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 流转记录(工单详情用) - if (map.containsKey("flow")) - { - String flow = (String) map.get("flow"); - flow = "["+flow.replaceFirst(",","")+"]"; - List list = new ArrayList<>(); - JSONArray jsonArray = JSONArray.parseArray(flow); - list = jsonArray.toJavaList(Map.class); - map.replace("flow",list); - } - - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java deleted file mode 100644 index 3c4807a..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.base.warpper.BaseControllerWarpper; -import com.casic.missiles.core.util.ToolUtil; - -import java.util.HashMap; -import java.util.Map; - -//@Service -//@Primary -public class AlarmRecordWarpper extends BaseControllerWarpper { - public AlarmRecordWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - // 设置闸井相关字段 - String wellCode = map.get("wellCode").toString(); - Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); - // 设置权属单位、负责人、联系电话 - String deptidStr = wellInfoMap.get("deptid").toString(); - long deptid = ToolUtil.isEmpty(deptidStr)? -1: Long.valueOf(deptidStr); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - if(deptid>0){ - Long staffstr = EhcacheConstant.retBean().getUserByDept(deptid); - if(ToolUtil.isEmpty(staffstr)){ - wellInfoMap.replace("staff",""); - wellInfoMap.replace("tel",""); - }else { - Map userInfoMap = EhcacheConstant.retBean().getUserInfoById(staffstr); - wellInfoMap.putAll(userInfoMap); - } - } - map.putAll(wellInfoMap); - - // 告警类型 - String alarmTypeStr = map.get("alarmType").toString(); - map.put("alarmTypeName",EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmTypeStr)); - - // 告警内容 - String alarmContentNameStr = map.get("alarmContentName").toString(); - map.put("alarmContent",EhcacheConstant.retBean().getAlarmContentByName(alarmContentNameStr)); - - // 告警值加单位 - if(ToolUtil.isNotEmpty(map.get("alarmValue"))){ - String alarmValue = map.get("alarmValue").toString(); - String alarmContentName = map.get("alarmContentName").toString(); - if("液位超限".equals(alarmContentName)) { - alarmValue += "m"; - map.replace("alarmValue",alarmValue); - } - if("浓度超限".equals(alarmContentName)) { - alarmValue += "%LEL"; - map.replace("alarmValue",alarmValue); - } - if("疑似开挖".equals(alarmContentName)) { - alarmValue += "mg"; - map.replace("alarmValue",alarmValue); - } - } - - // 告警值 - if (alarmContentNameStr.contains("井盖") || "2".equals(alarmTypeStr)) - { - map.replace("alarmValue","--"); - } - - // 告警状态 - String statusStr = map.get("status").toString(); - map.put("statusName",EhcacheConstant.retBean().getDictNameByCodeCodeNum(statusStr,"alarmStatus")); - - // 工单状态 - if(ToolUtil.isNotEmpty(map.get("jobStatus"))){ - String jobStatusStr = map.get("jobStatus").toString(); - map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); - } - - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java deleted file mode 100644 index 7d8cef1..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRuleWarpper.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.casic.missiles.modular.system.warpper; - -import com.casic.missiles.core.base.warpper.BaseControllerWarpper; -import com.casic.missiles.core.util.EhcacheConstant; - -import java.util.Map; - -//@Service -//@Primary -public class AlarmRuleWarpper extends BaseControllerWarpper { -// private EhcacheConstant ehcacheConstant = new EhcacheConstant(); - public AlarmRuleWarpper(Object list) { super(list); } - @Override - public void warpTheMap(Map map) { - - String deviceType = map.get("deviceType").toString(); - long deptid = Long.parseLong(map.get("deptid").toString()); - map.put("deviceTypeName",EhcacheConstant.retBean().getDeviceTypeNameById(deviceType)); - map.put("deptName",EhcacheConstant.retBean().getDeptNameById(deptid)); - } -} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java index b7e13ca..d9b07c3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/TemplateController.java @@ -1,12 +1,11 @@ package com.casic.missiles.modular.system.controller; -import cn.hutool.core.collection.CollectionUtil; +import com.casic.missiles.config.DeviceServerProperties; import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.modular.system.dto.VersionDto; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.config.DeviceServerProperties; import com.casic.missiles.modular.system.constant.DeviceConst; +import com.casic.missiles.modular.system.dto.VersionDto; import com.casic.missiles.modular.system.service.IDeviceService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,7 +62,6 @@ response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition", " attachment;filename=" + fileName); response.setContentLength((int) file.length()); - FileInputStream fis = null; try { fis = new FileInputStream(file); @@ -103,7 +101,6 @@ @PostMapping("/app/registerGeTui") public ResponseData geTuiRegister(@RequestParam String clientid) { - service.registerGeTui(permissionService.getAuthService().getLoginUser().getId(), clientid); return ResponseData.success(); } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java index e34c98e..ee3443d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/service/IBusWellInfoSupportService.java @@ -1,7 +1,7 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.model.application.service.IRepositorySupportService; import com.casic.missiles.modular.system.dto.BusWellInfoDto; import com.casic.missiles.modular.system.model.BusWellInfo; @@ -24,5 +24,13 @@ */ List getWellList(DataScope dataScope, String keywords, String wellType, String deptid); + /** + * 根据井主键查询井信息 + * + * @param id 井主键 + * @return 井信息 + */ BusWellInfo getById(Long id); + + BusWellInfo selectOne(QueryWrapper busWellInfoEntityWrapper); } diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java index d241d8c..3d37ce7 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellInfoServiceImpl.java @@ -2,6 +2,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; @@ -82,10 +83,6 @@ } - - - - @Override public List selectDataScope(DataScope dataScope, Page page, String deviceType, String deptid, String keywords) { return this.baseMapper.selectDataScope(dataScope, page, deviceType, deptid, keywords); @@ -235,6 +232,11 @@ return this.baseMapper.selectById(id); } + @Override + public BusWellInfo selectOne(QueryWrapper busWellInfoEntityWrapper) { + return this.getOne(busWellInfoEntityWrapper); + } + @Override public String getAreaPid(String id) { diff --git a/pom.xml b/pom.xml index c51cd97..0702c13 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ casic-sluicewell casic-data-analysis casic-device - + casic-alarm casic-server-support