From a0a16fa72d689d52579a6e4b0aec07cbb0356eef Mon Sep 17 00:00:00 2001 From: haha Date: Sun, 13 Aug 2023 12:31:20 +0800 Subject: [PATCH] update code --- .../src/main/resources/application.yml | 2 +- .../com/ruoyi/common/utils/DateUtils.java | 29 ++++++++++ .../controller/ProblemmodifyController.java | 55 ++++++++++++++++++- .../where/SmzSspProblemmodifyWhere.java | 36 ++++++++++++ .../mapper/SmzSspProblemmodifyMapper.java | 27 +++++++++ .../service/ISmzSspProblemmodifyService.java | 7 +++ .../impl/SmzSspProblemmodifyServiceImpl.java | 16 ++++++ .../trouble/SmzSspProblemmodifyMapper.xml | 55 ++++++++++++++++--- 8 files changed, 214 insertions(+), 13 deletions(-) create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/domain/where/SmzSspProblemmodifyWhere.java diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 152c5e2d..79f983e2 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -9,7 +9,7 @@ ruoyi: # 实例演示开关 demoEnabled: true # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) - profile: D:/data/uploadPath + profile: /data/uploadPath # 获取ip地址开关 addressEnabled: false # 验证码类型 math 数字计算 char 字符验证 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java index fb2ae21f..9c2141da 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java @@ -8,7 +8,10 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; import java.time.ZonedDateTime; +import java.util.Calendar; import java.util.Date; +import java.util.TimeZone; + import org.apache.commons.lang3.time.DateFormatUtils; /** @@ -188,4 +191,30 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } + + public static Date[] getCurrentWeekDate() { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeZone(TimeZone.getTimeZone("GMT+8")); + //start of the week + if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { + calendar.add(Calendar.DAY_OF_YEAR, -1); + } + calendar.add(Calendar.DAY_OF_WEEK, -(calendar.get(Calendar.DAY_OF_WEEK) - 2)); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + //String startTime = conversion(calendar.getTimeInMillis()); + Date dtStart=calendar.getTime(); + + //end of the week + calendar.add(Calendar.DAY_OF_WEEK, 6); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + //String endTime = conversion(calendar.getTimeInMillis()); + Date dtEnd=calendar.getTime(); + return new Date[]{dtStart,dtEnd}; + } } diff --git a/yanzhu-bigscreen/src/main/java/com/yanzhu/jh/bigscreen/web/controller/ProblemmodifyController.java b/yanzhu-bigscreen/src/main/java/com/yanzhu/jh/bigscreen/web/controller/ProblemmodifyController.java index 8c466ad1..b26a7857 100644 --- a/yanzhu-bigscreen/src/main/java/com/yanzhu/jh/bigscreen/web/controller/ProblemmodifyController.java +++ b/yanzhu-bigscreen/src/main/java/com/yanzhu/jh/bigscreen/web/controller/ProblemmodifyController.java @@ -1,16 +1,21 @@ package com.yanzhu.jh.bigscreen.web.controller; + import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.utils.DateUtils; import com.yanzhu.jh.trouble.domain.SmzSspProblemmodify; +import com.yanzhu.jh.trouble.domain.where.SmzSspProblemmodifyWhere; import com.yanzhu.jh.trouble.service.ISmzSspProblemmodifyService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; @RestController @@ -106,4 +111,48 @@ public class ProblemmodifyController extends BaseController { return list; } + @PostMapping("/countByDate") + public AjaxResult countByDate(@RequestBody SmzSspProblemmodifyWhere where){ + List list=smzSspProblemmodifyService.countByDate(where); + return AjaxResult.success(list); + } + + @PostMapping("/countByDateRange") + public AjaxResult countByDateRange(@RequestBody SmzSspProblemmodifyWhere where){ + List list=smzSspProblemmodifyService.countByDateRange(where); + return AjaxResult.success(list); + } + @GetMapping("/groupByInfotypeCheckState") + public AjaxResult groupByInfotypeCheckState(@RequestBody SmzSspProblemmodifyWhere where){ + List list=smzSspProblemmodifyService.groupByInfotypeCheckState(where); + return AjaxResult.success(list); + } + + /** + * 项目监测预警查询,用于大屏项目概况 + * @param deptId + * @return + */ + @GetMapping("/getMonitAndWarning") + public AjaxResult getMonitAndWarning(long deptId,long projectId){ + String key="problemmodify_getMonitAndWarning-"+deptId+"_"+projectId; + Object obj=redisCache.getCacheObject(key); + if(obj!=null){ + return AjaxResult.success(obj); + } + SmzSspProblemmodifyWhere where=new SmzSspProblemmodifyWhere(); + where.setDeptId(deptId); + where.setProjectId(projectId); + where.setStartDate(new Date()); + Map> map=new HashMap<>(); + map.put("today",smzSspProblemmodifyService.countByDate(where)); + Date[] dts=DateUtils.getCurrentWeekDate(); + where.setStartDate(dts[0]); + where.setEndDate(dts[1]); + map.put("week",smzSspProblemmodifyService.countByDateRange(where)); + map.put("group",smzSspProblemmodifyService.groupByInfotypeCheckState(where)); + redisCache.setCacheObject(key, map, Constants.BIGSCREEN_QUERY_CACHE, TimeUnit.MINUTES); + return AjaxResult.success(map); + } + } diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/domain/where/SmzSspProblemmodifyWhere.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/domain/where/SmzSspProblemmodifyWhere.java new file mode 100644 index 00000000..8192af48 --- /dev/null +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/domain/where/SmzSspProblemmodifyWhere.java @@ -0,0 +1,36 @@ +package com.yanzhu.jh.trouble.domain.where; + +import com.yanzhu.jh.trouble.domain.SmzSspProblemmodify; + +import java.util.Date; + +public class SmzSspProblemmodifyWhere extends SmzSspProblemmodify { + public Date getStartDate() { + return startDate; + } + + public void setStartDate(Date startDate) { + this.startDate = startDate; + } + + public Date getEndDate() { + return endDate; + } + + public void setEndDate(Date endDate) { + this.endDate = endDate; + } + + private Date startDate; + private Date endDate; + + private Long deptId; + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } +} diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/mapper/SmzSspProblemmodifyMapper.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/mapper/SmzSspProblemmodifyMapper.java index fdc5e290..afa9a455 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/mapper/SmzSspProblemmodifyMapper.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/mapper/SmzSspProblemmodifyMapper.java @@ -1,6 +1,7 @@ package com.yanzhu.jh.trouble.mapper; import com.yanzhu.jh.trouble.domain.SmzSspProblemmodify; +import com.yanzhu.jh.trouble.domain.where.SmzSspProblemmodifyWhere; import java.util.List; @@ -60,7 +61,33 @@ public interface SmzSspProblemmodifyMapper */ public int deleteSmzSspProblemmodifyByIds(Long[] ids); + /** + * 按安全类型分组查询 + * @param smzSspProblemmodify + * @return + */ public List selectSummary(SmzSspProblemmodify smzSspProblemmodify); + /** + * 按项目分组统计 + * @param smzSspProblemmodify + * @return + */ public List selectSummaryByProject(SmzSspProblemmodify smzSspProblemmodify); + + /** + * 查询某天预警数 + * @param where startDate 查询的日期 + * @return + */ + public List countByDate(SmzSspProblemmodifyWhere where); + + /** + * 查询两个日期之间的预警数 + * @param where startDate 开始日期 endDate 结束日期 + * @return + */ + public List countByDateRange(SmzSspProblemmodifyWhere where); + + public List groupByInfotypeCheckState(SmzSspProblemmodifyWhere where); } diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/service/ISmzSspProblemmodifyService.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/service/ISmzSspProblemmodifyService.java index a5bbdcb1..e490f80e 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/service/ISmzSspProblemmodifyService.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/service/ISmzSspProblemmodifyService.java @@ -2,6 +2,7 @@ package com.yanzhu.jh.trouble.service; import java.util.List; import com.yanzhu.jh.trouble.domain.SmzSspProblemmodify; +import com.yanzhu.jh.trouble.domain.where.SmzSspProblemmodifyWhere; /** * 质量整改Service接口 @@ -76,4 +77,10 @@ public interface ISmzSspProblemmodifyService * @return */ public List selectSummaryByProject(int deptId, int roleType, int infoType); + + public List countByDate(SmzSspProblemmodifyWhere where); + + public List countByDateRange(SmzSspProblemmodifyWhere where); + + public List groupByInfotypeCheckState(SmzSspProblemmodifyWhere where); } diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/service/impl/SmzSspProblemmodifyServiceImpl.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/service/impl/SmzSspProblemmodifyServiceImpl.java index e85a38e1..094e0a39 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/service/impl/SmzSspProblemmodifyServiceImpl.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/trouble/service/impl/SmzSspProblemmodifyServiceImpl.java @@ -2,6 +2,7 @@ package com.yanzhu.jh.trouble.service.impl; import java.util.List; import com.ruoyi.common.utils.DateUtils; +import com.yanzhu.jh.trouble.domain.where.SmzSspProblemmodifyWhere; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.yanzhu.jh.trouble.mapper.SmzSspProblemmodifyMapper; @@ -111,4 +112,19 @@ public class SmzSspProblemmodifyServiceImpl implements ISmzSspProblemmodifyServi smzSspProblemmodify.setId((long)deptId); return smzSspProblemmodifyMapper.selectSummaryByProject(smzSspProblemmodify); } + + @Override + public List countByDate(SmzSspProblemmodifyWhere where) { + return smzSspProblemmodifyMapper.countByDate(where); + } + + @Override + public List countByDateRange(SmzSspProblemmodifyWhere where) { + return smzSspProblemmodifyMapper.countByDateRange(where); + } + + @Override + public List groupByInfotypeCheckState(SmzSspProblemmodifyWhere where) { + return smzSspProblemmodifyMapper.groupByInfotypeCheckState(where); + } } diff --git a/yanzhu-jh/src/main/resources/mapper/trouble/SmzSspProblemmodifyMapper.xml b/yanzhu-jh/src/main/resources/mapper/trouble/SmzSspProblemmodifyMapper.xml index 1c5a56aa..0da01c6e 100644 --- a/yanzhu-jh/src/main/resources/mapper/trouble/SmzSspProblemmodifyMapper.xml +++ b/yanzhu-jh/src/main/resources/mapper/trouble/SmzSspProblemmodifyMapper.xml @@ -205,10 +205,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) a LEFT JOIN ( SELECT danger_type,COUNT(1) cnt FROM smz_ssp_problemmodify WHERE projectId IN( SELECT id FROM sur_project - + where isDel=0 AND deptid = #{id} - - ) AND infotype=#{infoType} + + ) AND infotype=#{infoType} and isDel=0 AND roletype=#{roleType} GROUP BY danger_type) b ON a.dict_value=b.danger_type ORDER BY cnt DESC,a.dict_value+0 @@ -217,20 +217,57 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT a.*,b.cnt roleType FROM ( SELECT id,projectName problemArea FROM sur_project - + where isDel=0 AND deptid = #{id} - + ) a LEFT JOIN ( - SELECT projectId,COUNT(1) cnt FROM smz_ssp_problemmodify WHERE projectId IN(SELECT id FROM sur_project - + SELECT projectId,COUNT(1) cnt FROM smz_ssp_problemmodify WHERE projectId IN( + SELECT id FROM sur_project where isDel=0 AND deptid = #{id} - ) - AND infotype=#{infoType} + AND infotype=#{infoType} and isDel=0 AND roletype=#{roleType} GROUP BY projectId ) b ON a.id=b.projectId ORDER BY cnt DESC,id LIMIT 0,10 + + + + \ No newline at end of file