diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java index 733e86e..4efcd7e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java @@ -5,11 +5,13 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.DcmBaseConfig; import com.casic.missiles.modular.system.service.IDcmBaseConfigService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import java.util.Calendar; import java.util.List; /** @@ -40,7 +42,7 @@ } /** - * 网格统计 + * 网格统计分析 */ @GetMapping(value = "/grid-statistics") @ResponseBody @@ -48,6 +50,24 @@ return ResponseData.success(dcmBaseConfigService.selectGridStatisticsData(beginTime, endTime)); } + + /** + * 案卷趋势分析 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 day 天 month 月度 + * @return + */ + @GetMapping(value = "/case-trend") + @ResponseBody + public Object caseTrend(String beginTime, String endTime, String type) { + if (ToolUtil.isEmpty(type)) { + type = "day"; + } + return ResponseData.success(dcmBaseConfigService.selectCaseTrendData(beginTime, endTime, type)); + } + /** * 获取城管基础配置分页列表 */ @@ -108,4 +128,4 @@ public Object detail(@PathVariable("dcmBaseConfigId") String dcmBaseConfigId) { return ResponseData.success(dcmBaseConfigService.selectById(dcmBaseConfigId)); } -} +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java index 733e86e..4efcd7e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java @@ -5,11 +5,13 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.DcmBaseConfig; import com.casic.missiles.modular.system.service.IDcmBaseConfigService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import java.util.Calendar; import java.util.List; /** @@ -40,7 +42,7 @@ } /** - * 网格统计 + * 网格统计分析 */ @GetMapping(value = "/grid-statistics") @ResponseBody @@ -48,6 +50,24 @@ return ResponseData.success(dcmBaseConfigService.selectGridStatisticsData(beginTime, endTime)); } + + /** + * 案卷趋势分析 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 day 天 month 月度 + * @return + */ + @GetMapping(value = "/case-trend") + @ResponseBody + public Object caseTrend(String beginTime, String endTime, String type) { + if (ToolUtil.isEmpty(type)) { + type = "day"; + } + return ResponseData.success(dcmBaseConfigService.selectCaseTrendData(beginTime, endTime, type)); + } + /** * 获取城管基础配置分页列表 */ @@ -108,4 +128,4 @@ public Object detail(@PathVariable("dcmBaseConfigId") String dcmBaseConfigId) { return ResponseData.success(dcmBaseConfigService.selectById(dcmBaseConfigId)); } -} +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java index 5e1977e..1b20163 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dto.CaseTrendDTO; import com.casic.missiles.modular.system.dto.GridStatisticsDTO; import com.casic.missiles.modular.system.model.DcmBaseConfig; import org.apache.ibatis.annotations.Param; @@ -30,6 +31,7 @@ /** * 网格结案数统计 + * * @param entityWrapper 检索条件 * @return */ @@ -38,4 +40,14 @@ List selectGridDistributeNum(@Param("ew") EntityWrapper entityWrapper); List selectGridProcessNum(@Param("ew") EntityWrapper entityWrapper); + + /** + * 案卷统计分析 + * + * @param entityWrapper 检索条件 + * @param groupFieldFormat 分组属性 + * @param asName 更新名称 + * @return + */ + List selectCaseNum(@Param("ew") EntityWrapper entityWrapper, @Param("groupFieldFormat") String groupFieldFormat, @Param("asName") String asName); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java index 733e86e..4efcd7e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java @@ -5,11 +5,13 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.DcmBaseConfig; import com.casic.missiles.modular.system.service.IDcmBaseConfigService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import java.util.Calendar; import java.util.List; /** @@ -40,7 +42,7 @@ } /** - * 网格统计 + * 网格统计分析 */ @GetMapping(value = "/grid-statistics") @ResponseBody @@ -48,6 +50,24 @@ return ResponseData.success(dcmBaseConfigService.selectGridStatisticsData(beginTime, endTime)); } + + /** + * 案卷趋势分析 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 day 天 month 月度 + * @return + */ + @GetMapping(value = "/case-trend") + @ResponseBody + public Object caseTrend(String beginTime, String endTime, String type) { + if (ToolUtil.isEmpty(type)) { + type = "day"; + } + return ResponseData.success(dcmBaseConfigService.selectCaseTrendData(beginTime, endTime, type)); + } + /** * 获取城管基础配置分页列表 */ @@ -108,4 +128,4 @@ public Object detail(@PathVariable("dcmBaseConfigId") String dcmBaseConfigId) { return ResponseData.success(dcmBaseConfigService.selectById(dcmBaseConfigId)); } -} +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java index 5e1977e..1b20163 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dto.CaseTrendDTO; import com.casic.missiles.modular.system.dto.GridStatisticsDTO; import com.casic.missiles.modular.system.model.DcmBaseConfig; import org.apache.ibatis.annotations.Param; @@ -30,6 +31,7 @@ /** * 网格结案数统计 + * * @param entityWrapper 检索条件 * @return */ @@ -38,4 +40,14 @@ List selectGridDistributeNum(@Param("ew") EntityWrapper entityWrapper); List selectGridProcessNum(@Param("ew") EntityWrapper entityWrapper); + + /** + * 案卷统计分析 + * + * @param entityWrapper 检索条件 + * @param groupFieldFormat 分组属性 + * @param asName 更新名称 + * @return + */ + List selectCaseNum(@Param("ew") EntityWrapper entityWrapper, @Param("groupFieldFormat") String groupFieldFormat, @Param("asName") String asName); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml index 2124711..edb3684 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml @@ -52,9 +52,10 @@ dcm_cws_case a INNER JOIN dcm_cws_process_detail b ON a.id = b.id - - ${ew.sqlSegment} - + + ${ew.sqlSegment} + + GROUP BY GRID_ID - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java index 733e86e..4efcd7e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java @@ -5,11 +5,13 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.DcmBaseConfig; import com.casic.missiles.modular.system.service.IDcmBaseConfigService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import java.util.Calendar; import java.util.List; /** @@ -40,7 +42,7 @@ } /** - * 网格统计 + * 网格统计分析 */ @GetMapping(value = "/grid-statistics") @ResponseBody @@ -48,6 +50,24 @@ return ResponseData.success(dcmBaseConfigService.selectGridStatisticsData(beginTime, endTime)); } + + /** + * 案卷趋势分析 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 day 天 month 月度 + * @return + */ + @GetMapping(value = "/case-trend") + @ResponseBody + public Object caseTrend(String beginTime, String endTime, String type) { + if (ToolUtil.isEmpty(type)) { + type = "day"; + } + return ResponseData.success(dcmBaseConfigService.selectCaseTrendData(beginTime, endTime, type)); + } + /** * 获取城管基础配置分页列表 */ @@ -108,4 +128,4 @@ public Object detail(@PathVariable("dcmBaseConfigId") String dcmBaseConfigId) { return ResponseData.success(dcmBaseConfigService.selectById(dcmBaseConfigId)); } -} +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java index 5e1977e..1b20163 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dto.CaseTrendDTO; import com.casic.missiles.modular.system.dto.GridStatisticsDTO; import com.casic.missiles.modular.system.model.DcmBaseConfig; import org.apache.ibatis.annotations.Param; @@ -30,6 +31,7 @@ /** * 网格结案数统计 + * * @param entityWrapper 检索条件 * @return */ @@ -38,4 +40,14 @@ List selectGridDistributeNum(@Param("ew") EntityWrapper entityWrapper); List selectGridProcessNum(@Param("ew") EntityWrapper entityWrapper); + + /** + * 案卷统计分析 + * + * @param entityWrapper 检索条件 + * @param groupFieldFormat 分组属性 + * @param asName 更新名称 + * @return + */ + List selectCaseNum(@Param("ew") EntityWrapper entityWrapper, @Param("groupFieldFormat") String groupFieldFormat, @Param("asName") String asName); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml index 2124711..edb3684 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml @@ -52,9 +52,10 @@ dcm_cws_case a INNER JOIN dcm_cws_process_detail b ON a.id = b.id - - ${ew.sqlSegment} - + + ${ew.sqlSegment} + + GROUP BY GRID_ID - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java new file mode 100644 index 0000000..8b9d5c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java @@ -0,0 +1,32 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +/** + * 案卷趋势分析 + */ +@Data +public class CaseTrendDTO { + /** + * 统计日期 + */ + private String statisticsTime; + /** + * 结案数 + */ + private String closedNum; + /** + * 立案数 + */ + private String registeredNum; + + /** + * 处置数 + */ + private String processNum; + + /** + * 派遣数 + */ + private String distributeNum; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java index 733e86e..4efcd7e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java @@ -5,11 +5,13 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.DcmBaseConfig; import com.casic.missiles.modular.system.service.IDcmBaseConfigService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import java.util.Calendar; import java.util.List; /** @@ -40,7 +42,7 @@ } /** - * 网格统计 + * 网格统计分析 */ @GetMapping(value = "/grid-statistics") @ResponseBody @@ -48,6 +50,24 @@ return ResponseData.success(dcmBaseConfigService.selectGridStatisticsData(beginTime, endTime)); } + + /** + * 案卷趋势分析 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 day 天 month 月度 + * @return + */ + @GetMapping(value = "/case-trend") + @ResponseBody + public Object caseTrend(String beginTime, String endTime, String type) { + if (ToolUtil.isEmpty(type)) { + type = "day"; + } + return ResponseData.success(dcmBaseConfigService.selectCaseTrendData(beginTime, endTime, type)); + } + /** * 获取城管基础配置分页列表 */ @@ -108,4 +128,4 @@ public Object detail(@PathVariable("dcmBaseConfigId") String dcmBaseConfigId) { return ResponseData.success(dcmBaseConfigService.selectById(dcmBaseConfigId)); } -} +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java index 5e1977e..1b20163 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dto.CaseTrendDTO; import com.casic.missiles.modular.system.dto.GridStatisticsDTO; import com.casic.missiles.modular.system.model.DcmBaseConfig; import org.apache.ibatis.annotations.Param; @@ -30,6 +31,7 @@ /** * 网格结案数统计 + * * @param entityWrapper 检索条件 * @return */ @@ -38,4 +40,14 @@ List selectGridDistributeNum(@Param("ew") EntityWrapper entityWrapper); List selectGridProcessNum(@Param("ew") EntityWrapper entityWrapper); + + /** + * 案卷统计分析 + * + * @param entityWrapper 检索条件 + * @param groupFieldFormat 分组属性 + * @param asName 更新名称 + * @return + */ + List selectCaseNum(@Param("ew") EntityWrapper entityWrapper, @Param("groupFieldFormat") String groupFieldFormat, @Param("asName") String asName); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml index 2124711..edb3684 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml @@ -52,9 +52,10 @@ dcm_cws_case a INNER JOIN dcm_cws_process_detail b ON a.id = b.id - - ${ew.sqlSegment} - + + ${ew.sqlSegment} + + GROUP BY GRID_ID - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java new file mode 100644 index 0000000..8b9d5c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java @@ -0,0 +1,32 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +/** + * 案卷趋势分析 + */ +@Data +public class CaseTrendDTO { + /** + * 统计日期 + */ + private String statisticsTime; + /** + * 结案数 + */ + private String closedNum; + /** + * 立案数 + */ + private String registeredNum; + + /** + * 处置数 + */ + private String processNum; + + /** + * 派遣数 + */ + private String distributeNum; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/CaseTrendEnums.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/CaseTrendEnums.java new file mode 100644 index 0000000..9051660 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/CaseTrendEnums.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * 统计枚举类 + */ +public enum CaseTrendEnums { + /** + * 统计枚举类 + */ + REGISTERED_NUM("registeredNum", "立案数", "registeredNum", "b.REGISTER_TIME", ""), + DISTRIBUTE_NUM("distributeNum", "派发数", "distributeNum", "b.DISTRIBUTE_TIME", "b.DISTRIBUTE_TIME=0"), + PROCESS_NUM("processNum", "处理数", "processNum", "b.PROCESS_TIME", "b.PROCESS_TIME=0"), + CLOSED_NUM("closedNum", "结案数", "closedNum", "b.CLOSE_TIME", ""); + + private String type; + private String typeName; + private String asName; + private String groupField; + private String sqlWhere; + + CaseTrendEnums(String type, String typeName, String asName, String groupField, String sqlWhere) { + this.type = type; + this.typeName = typeName; + this.asName = asName; + this.groupField = groupField; + this.sqlWhere = sqlWhere; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + public String getAsName() { + return asName; + } + + public void setAsName(String asName) { + this.asName = asName; + } + + public String getGroupField() { + return groupField; + } + + public void setGroupField(String groupField) { + this.groupField = groupField; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java index 733e86e..4efcd7e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java @@ -5,11 +5,13 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.DcmBaseConfig; import com.casic.missiles.modular.system.service.IDcmBaseConfigService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import java.util.Calendar; import java.util.List; /** @@ -40,7 +42,7 @@ } /** - * 网格统计 + * 网格统计分析 */ @GetMapping(value = "/grid-statistics") @ResponseBody @@ -48,6 +50,24 @@ return ResponseData.success(dcmBaseConfigService.selectGridStatisticsData(beginTime, endTime)); } + + /** + * 案卷趋势分析 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 day 天 month 月度 + * @return + */ + @GetMapping(value = "/case-trend") + @ResponseBody + public Object caseTrend(String beginTime, String endTime, String type) { + if (ToolUtil.isEmpty(type)) { + type = "day"; + } + return ResponseData.success(dcmBaseConfigService.selectCaseTrendData(beginTime, endTime, type)); + } + /** * 获取城管基础配置分页列表 */ @@ -108,4 +128,4 @@ public Object detail(@PathVariable("dcmBaseConfigId") String dcmBaseConfigId) { return ResponseData.success(dcmBaseConfigService.selectById(dcmBaseConfigId)); } -} +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java index 5e1977e..1b20163 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dto.CaseTrendDTO; import com.casic.missiles.modular.system.dto.GridStatisticsDTO; import com.casic.missiles.modular.system.model.DcmBaseConfig; import org.apache.ibatis.annotations.Param; @@ -30,6 +31,7 @@ /** * 网格结案数统计 + * * @param entityWrapper 检索条件 * @return */ @@ -38,4 +40,14 @@ List selectGridDistributeNum(@Param("ew") EntityWrapper entityWrapper); List selectGridProcessNum(@Param("ew") EntityWrapper entityWrapper); + + /** + * 案卷统计分析 + * + * @param entityWrapper 检索条件 + * @param groupFieldFormat 分组属性 + * @param asName 更新名称 + * @return + */ + List selectCaseNum(@Param("ew") EntityWrapper entityWrapper, @Param("groupFieldFormat") String groupFieldFormat, @Param("asName") String asName); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml index 2124711..edb3684 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml @@ -52,9 +52,10 @@ dcm_cws_case a INNER JOIN dcm_cws_process_detail b ON a.id = b.id - - ${ew.sqlSegment} - + + ${ew.sqlSegment} + + GROUP BY GRID_ID - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java new file mode 100644 index 0000000..8b9d5c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java @@ -0,0 +1,32 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +/** + * 案卷趋势分析 + */ +@Data +public class CaseTrendDTO { + /** + * 统计日期 + */ + private String statisticsTime; + /** + * 结案数 + */ + private String closedNum; + /** + * 立案数 + */ + private String registeredNum; + + /** + * 处置数 + */ + private String processNum; + + /** + * 派遣数 + */ + private String distributeNum; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/CaseTrendEnums.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/CaseTrendEnums.java new file mode 100644 index 0000000..9051660 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/CaseTrendEnums.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * 统计枚举类 + */ +public enum CaseTrendEnums { + /** + * 统计枚举类 + */ + REGISTERED_NUM("registeredNum", "立案数", "registeredNum", "b.REGISTER_TIME", ""), + DISTRIBUTE_NUM("distributeNum", "派发数", "distributeNum", "b.DISTRIBUTE_TIME", "b.DISTRIBUTE_TIME=0"), + PROCESS_NUM("processNum", "处理数", "processNum", "b.PROCESS_TIME", "b.PROCESS_TIME=0"), + CLOSED_NUM("closedNum", "结案数", "closedNum", "b.CLOSE_TIME", ""); + + private String type; + private String typeName; + private String asName; + private String groupField; + private String sqlWhere; + + CaseTrendEnums(String type, String typeName, String asName, String groupField, String sqlWhere) { + this.type = type; + this.typeName = typeName; + this.asName = asName; + this.groupField = groupField; + this.sqlWhere = sqlWhere; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + public String getAsName() { + return asName; + } + + public void setAsName(String asName) { + this.asName = asName; + } + + public String getGroupField() { + return groupField; + } + + public void setGroupField(String groupField) { + this.groupField = groupField; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IDcmBaseConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IDcmBaseConfigService.java index b2681f2..6cac417 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IDcmBaseConfigService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IDcmBaseConfigService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.dto.CaseTrendDTO; import com.casic.missiles.modular.system.dto.GridStatisticsDTO; import com.casic.missiles.modular.system.model.DcmBaseConfig; @@ -62,4 +63,14 @@ * @return 网格处置列表 */ List selectGridProcessNum(String beginTime, String endTime); + + /** + * 案卷趋势分析 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 + * @return 案卷分析 + */ + List selectCaseTrendData(String beginTime, String endTime, String type); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java index 733e86e..4efcd7e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DcmBaseConfigController.java @@ -5,11 +5,13 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.DcmBaseConfig; import com.casic.missiles.modular.system.service.IDcmBaseConfigService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import java.util.Calendar; import java.util.List; /** @@ -40,7 +42,7 @@ } /** - * 网格统计 + * 网格统计分析 */ @GetMapping(value = "/grid-statistics") @ResponseBody @@ -48,6 +50,24 @@ return ResponseData.success(dcmBaseConfigService.selectGridStatisticsData(beginTime, endTime)); } + + /** + * 案卷趋势分析 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 day 天 month 月度 + * @return + */ + @GetMapping(value = "/case-trend") + @ResponseBody + public Object caseTrend(String beginTime, String endTime, String type) { + if (ToolUtil.isEmpty(type)) { + type = "day"; + } + return ResponseData.success(dcmBaseConfigService.selectCaseTrendData(beginTime, endTime, type)); + } + /** * 获取城管基础配置分页列表 */ @@ -108,4 +128,4 @@ public Object detail(@PathVariable("dcmBaseConfigId") String dcmBaseConfigId) { return ResponseData.success(dcmBaseConfigService.selectById(dcmBaseConfigId)); } -} +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java index 5e1977e..1b20163 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/DcmBaseConfigMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.modular.system.dto.CaseTrendDTO; import com.casic.missiles.modular.system.dto.GridStatisticsDTO; import com.casic.missiles.modular.system.model.DcmBaseConfig; import org.apache.ibatis.annotations.Param; @@ -30,6 +31,7 @@ /** * 网格结案数统计 + * * @param entityWrapper 检索条件 * @return */ @@ -38,4 +40,14 @@ List selectGridDistributeNum(@Param("ew") EntityWrapper entityWrapper); List selectGridProcessNum(@Param("ew") EntityWrapper entityWrapper); + + /** + * 案卷统计分析 + * + * @param entityWrapper 检索条件 + * @param groupFieldFormat 分组属性 + * @param asName 更新名称 + * @return + */ + List selectCaseNum(@Param("ew") EntityWrapper entityWrapper, @Param("groupFieldFormat") String groupFieldFormat, @Param("asName") String asName); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml index 2124711..edb3684 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/DcmBaseConfigMapper.xml @@ -52,9 +52,10 @@ dcm_cws_case a INNER JOIN dcm_cws_process_detail b ON a.id = b.id - - ${ew.sqlSegment} - + + ${ew.sqlSegment} + + GROUP BY GRID_ID - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java new file mode 100644 index 0000000..8b9d5c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CaseTrendDTO.java @@ -0,0 +1,32 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +/** + * 案卷趋势分析 + */ +@Data +public class CaseTrendDTO { + /** + * 统计日期 + */ + private String statisticsTime; + /** + * 结案数 + */ + private String closedNum; + /** + * 立案数 + */ + private String registeredNum; + + /** + * 处置数 + */ + private String processNum; + + /** + * 派遣数 + */ + private String distributeNum; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/CaseTrendEnums.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/CaseTrendEnums.java new file mode 100644 index 0000000..9051660 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/CaseTrendEnums.java @@ -0,0 +1,61 @@ +package com.casic.missiles.modular.system.enums; + + +/** + * 统计枚举类 + */ +public enum CaseTrendEnums { + /** + * 统计枚举类 + */ + REGISTERED_NUM("registeredNum", "立案数", "registeredNum", "b.REGISTER_TIME", ""), + DISTRIBUTE_NUM("distributeNum", "派发数", "distributeNum", "b.DISTRIBUTE_TIME", "b.DISTRIBUTE_TIME=0"), + PROCESS_NUM("processNum", "处理数", "processNum", "b.PROCESS_TIME", "b.PROCESS_TIME=0"), + CLOSED_NUM("closedNum", "结案数", "closedNum", "b.CLOSE_TIME", ""); + + private String type; + private String typeName; + private String asName; + private String groupField; + private String sqlWhere; + + CaseTrendEnums(String type, String typeName, String asName, String groupField, String sqlWhere) { + this.type = type; + this.typeName = typeName; + this.asName = asName; + this.groupField = groupField; + this.sqlWhere = sqlWhere; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + public String getAsName() { + return asName; + } + + public void setAsName(String asName) { + this.asName = asName; + } + + public String getGroupField() { + return groupField; + } + + public void setGroupField(String groupField) { + this.groupField = groupField; + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IDcmBaseConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IDcmBaseConfigService.java index b2681f2..6cac417 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IDcmBaseConfigService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IDcmBaseConfigService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service; import com.baomidou.mybatisplus.service.IService; +import com.casic.missiles.modular.system.dto.CaseTrendDTO; import com.casic.missiles.modular.system.dto.GridStatisticsDTO; import com.casic.missiles.modular.system.model.DcmBaseConfig; @@ -62,4 +63,14 @@ * @return 网格处置列表 */ List selectGridProcessNum(String beginTime, String endTime); + + /** + * 案卷趋势分析 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 + * @return 案卷分析 + */ + List selectCaseTrendData(String beginTime, String endTime, String type); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/DcmBaseConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/DcmBaseConfigServiceImpl.java index 9ee4aae..77cb9f5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/DcmBaseConfigServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/DcmBaseConfigServiceImpl.java @@ -3,9 +3,12 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DcmBaseConfigMapper; +import com.casic.missiles.modular.system.dto.CaseTrendDTO; import com.casic.missiles.modular.system.dto.GridStatisticsDTO; +import com.casic.missiles.modular.system.enums.CaseTrendEnums; import com.casic.missiles.modular.system.model.DcmBaseConfig; import com.casic.missiles.modular.system.service.IDcmBaseConfigService; import org.springframework.stereotype.Service; @@ -15,6 +18,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; /** *

@@ -171,4 +176,107 @@ } return baseMapper.selectGridProcessNum(entityWrapper); } + + /** + * 案卷趋势分析 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 + * @return + */ + @Override + public List selectCaseTrendData(String beginTime, String endTime, String type) { + + //No.1 生成检索日期 + List dates = "day".equals(type) ? DateUtil.findDates(beginTime, endTime, "yyyy-MM-dd") : DateUtil.findMonths(beginTime, endTime, "yyyy-MM"); + + //No.2 检索本期立案数 + List registeredDTOS = getCaseTrendData(new EntityWrapper<>(), CaseTrendEnums.REGISTERED_NUM, beginTime, endTime, type); + Map registeredMaps = registeredDTOS.stream().collect(Collectors.toMap(CaseTrendDTO::getStatisticsTime, CaseTrendDTO::getRegisteredNum)); + + //No.2-1 检索本期结案数 + List closedDTOS = getCaseTrendData(new EntityWrapper<>(), CaseTrendEnums.CLOSED_NUM, beginTime, endTime, type); + Map closedMaps = closedDTOS.stream().collect(Collectors.toMap(CaseTrendDTO::getStatisticsTime, CaseTrendDTO::getClosedNum)); + + //No.3 检索本期派遣数(需增加本期直接结案数) + List distributeDTOS = getCaseTrendData(new EntityWrapper<>(), CaseTrendEnums.DISTRIBUTE_NUM, beginTime, endTime, type); + Map distributeMaps = distributeDTOS.stream().collect(Collectors.toMap(CaseTrendDTO::getStatisticsTime, CaseTrendDTO::getDistributeNum)); + //结案时间存在,派遣时间为空的案卷 + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq(CaseTrendEnums.DISTRIBUTE_NUM.getGroupField(), "0"); + List distributeClosedDTOS = getCaseTrendData(entityWrapper, CaseTrendEnums.CLOSED_NUM, beginTime, endTime, type); + //结果集合并至派遣数据中 + mergeMaps(distributeMaps, distributeClosedDTOS, CaseTrendDTO::getClosedNum); + + //No.4 处理案卷数 + List processDTOS = getCaseTrendData(new EntityWrapper<>(), CaseTrendEnums.PROCESS_NUM, beginTime, endTime, type); + Map processMaps = processDTOS.stream().collect(Collectors.toMap(CaseTrendDTO::getStatisticsTime, CaseTrendDTO::getProcessNum)); + EntityWrapper processQuery = new EntityWrapper<>(); + entityWrapper.eq(CaseTrendEnums.PROCESS_NUM.getGroupField(), "0"); + List processClosedDTOS = getCaseTrendData(processQuery, CaseTrendEnums.CLOSED_NUM, beginTime, endTime, type); + + //结果集合并至处理案卷数 + mergeMaps(processMaps, processClosedDTOS, CaseTrendDTO::getClosedNum); + return dates.stream().map((dateStr) -> { + CaseTrendDTO caseTrendDTO = new CaseTrendDTO(); + caseTrendDTO.setStatisticsTime(dateStr); + caseTrendDTO.setRegisteredNum(registeredMaps.getOrDefault(dateStr, "0")); + caseTrendDTO.setDistributeNum(distributeMaps.getOrDefault(dateStr, "0")); + caseTrendDTO.setProcessNum(processMaps.getOrDefault(dateStr, "0")); + caseTrendDTO.setClosedNum(closedMaps.getOrDefault(dateStr, "0")); + return caseTrendDTO; + }).collect(Collectors.toList()); + } + + /** + * 合并map检索数据 + * + * @param maps 统计结果集 + * @param list 立案数据 + * @param valueMapper 提取方法 + */ + private void mergeMaps(Map maps, List list, Function valueMapper) { + for (CaseTrendDTO caseTrendDTO : list) { + if (maps.containsKey(caseTrendDTO.getStatisticsTime())) { + Integer i = Integer.valueOf(maps.get(caseTrendDTO.getStatisticsTime())) + Integer.valueOf(valueMapper.apply(caseTrendDTO)); + maps.put(caseTrendDTO.getStatisticsTime(), i + ""); + } else { + maps.put(caseTrendDTO.getStatisticsTime(), valueMapper.apply(caseTrendDTO)); + } + } + } + + /** + * 案卷统计数据 + * + * @param entityWrapper 检索条件 + * @param enums 统计枚举类 + * @param beginTime 开始日期 + * @param endTime 结束日期 + * @param type 检索类型 day month + * @return + */ + private List getCaseTrendData(EntityWrapper entityWrapper, CaseTrendEnums enums, String beginTime, String endTime, String type) { + if (ToolUtil.isNotEmpty(beginTime)) { + entityWrapper.ge(enums.getGroupField(), beginTime); + } + if (ToolUtil.isNotEmpty(endTime)) { + entityWrapper.le(enums.getGroupField(), endTime); + } + List list = baseMapper.selectCaseNum(entityWrapper, genFieldFormat(enums, type), enums.getAsName()); + return list; + } + + /** + * 分组属性 + * + * @param enums 枚举 + * @param type 类型 + * @return + */ + private String genFieldFormat(CaseTrendEnums enums, String type) { + String dateFormat = "day".equals(type) ? "'%Y-%m-%d'" : "'%Y-%m'"; + return "DATE_FORMAT(" + enums.getGroupField() + "," + dateFormat + ")"; + } } \ No newline at end of file