diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardCheckRegisterHighController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardCheckRegisterHighController.java index 5f997533..69060dc2 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardCheckRegisterHighController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardCheckRegisterHighController.java @@ -1,11 +1,14 @@ package com.zdxt.enforcementcode.controller.web.supervision; +import com.zdxt.enforcementcode.common.util.StringUtils; +import com.zdxt.enforcementcode.domain.bo.DashboardCheckRegisterAreaQueryBo; import com.zdxt.enforcementcode.domain.bo.DashboardCheckRegisterDomainQueryBo; import com.zdxt.enforcementcode.domain.bo.DashboardCheckRegisterHighQueryBo; -import com.zdxt.enforcementcode.domain.vo.DashboardCheckRegisterDomainInfoVo; -import com.zdxt.enforcementcode.domain.vo.DashboardCheckRegisterDomainVo; -import com.zdxt.enforcementcode.domain.vo.EnforcementRegistrationVo; +import com.zdxt.enforcementcode.domain.bo.DashboardCompanyHighFreqCheckBo; +import com.zdxt.enforcementcode.domain.vo.*; +import com.zdxt.enforcementcode.service.IDashboardCheckRegisterAreaService; import com.zdxt.enforcementcode.service.IDashboardCheckRegisterDomainService; +import com.zdxt.enforcementcode.service.IDashboardCompanyHighFreqCheckService; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.mybatis.core.page.PageQuery; @@ -32,9 +35,13 @@ public class DashboardCheckRegisterHighController extends BaseController { private final IDashboardCheckRegisterDomainService dashboardCheckRegisterDomainService; + private final IDashboardCompanyHighFreqCheckService dashboardCompanyHighFreqCheckService; + + private final IDashboardCheckRegisterAreaService dashboardCheckRegisterAreaService; /** - * 大屏-高频检查预警-区域 - * + * 大屏-高频检查预警-各领域高频检查次数排行 + * 1、高频检查次数排行: pageQuery.orderByColumn = "sqjczs" , pageQuery.isAsc = "desc" + * 2、联合执法数排行:pageQuery.orderByColumn = "lhzfzs" , pageQuery.isAsc = "desc" * @param bo 查询条件(年份、月份、查询类型、领域ID) * @param pageQuery 分页参数 * @return 领域统计信息 @@ -47,4 +54,24 @@ public class DashboardCheckRegisterHighController extends BaseController { return dashboardCheckRegisterDomainService.getCheckHighWarnBtyDomainList(bo, pageQuery); } + /** + * 查询大屏-企业高频检查明细列表 + */ + @GetMapping("/getCompanyHighlist") + public TableDataInfo getCompanyHighlist(DashboardCompanyHighFreqCheckBo bo, PageQuery pageQuery) { + return dashboardCompanyHighFreqCheckService.queryPageList(bo, pageQuery); + } + + + /** + * 高频检查预警-高频检查企业&高频检查区域统计 + * 默认查询上个月数据 + * 前端不用默认不用传参数 + */ + @GetMapping("/getHighInfoByArea") + public R getHighInfoByArea(DashboardCheckRegisterAreaQueryBo bo) { + return dashboardCheckRegisterAreaService.getCheckRegisterArea(bo); + } + + } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardEnterpriseCheckController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardEnterpriseCheckController.java index 0ab6573d..e9b81d96 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardEnterpriseCheckController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardEnterpriseCheckController.java @@ -40,8 +40,9 @@ public class DashboardEnterpriseCheckController extends BaseController { private final IEnforcementRegistrationService enforcementRegistrationService; /** * 大屏-重点企业监测检查列表 - * 1、查询企业基础信息 - * 2、查询最近六个月的数据,不包含当月数据 + * 1、总体概览:查询企业基础信息,获取最近的一个月的数据 + * 2、列表查询最近六个月的数据,不包含当月数据 + * */ @GetMapping("/getEnterpriseCheckInfo") public DashboardEnterpriseCheckInfoVo getEnterpriseCheckInfo(DashboardEnterpriseCheckQueryBo bo) { @@ -63,7 +64,6 @@ public class DashboardEnterpriseCheckController extends BaseController { .queryRecentSixMonths(bo.getEnterpriseNumber(), bo.getStatYear(), bo.getStatMonth()); result.setCheckVoList(checkVoList); } - return result; } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardOverviewController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardOverviewController.java index 4e628685..b71622e2 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardOverviewController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardOverviewController.java @@ -1,7 +1,9 @@ package com.zdxt.enforcementcode.controller.web.supervision; import com.zdxt.enforcementcode.domain.bo.QueryDashboardOverviewBo; +import com.zdxt.enforcementcode.domain.bo.QueryDashboardOverviewCountBo; import com.zdxt.enforcementcode.domain.vo.DashboardOverviewVo; +import com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityCountVo; import com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityVo; import com.zdxt.enforcementcode.service.IDashboardOverviewService; import lombok.RequiredArgsConstructor; @@ -12,6 +14,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * 大屏总览 * @@ -28,6 +32,7 @@ public class DashboardOverviewController extends BaseController { /** * 查询大屏总览信息 + * 查询上一个月的数据 */ @GetMapping("/getDpzl") public R getDpzl(QueryDashboardOverviewBo bo) { @@ -38,7 +43,10 @@ public class DashboardOverviewController extends BaseController { /** * 查询执法力度信息 * 支持月度、季度、年度 - * + * 级别:1-市 查询全市的数据 2-区 查询区的数据,需要同步传如区编码:districtCode + * 月度:查询前一个月的数据 + * 季度:查询前一个季度的数据 + * 年度:查询当前年的数据 * @param bo 查询条件(statisticsType: month-月度, quarter-季度, year-年度) */ @GetMapping("/getZfld") @@ -46,4 +54,21 @@ public class DashboardOverviewController extends BaseController { LawEnforcementIntensityVo result = dashboardOverviewService.getLawEnforcementIntensity(bo); return R.ok(result); } + + /** + * 查询企业数、单位数、执法人员数 + * 默认查询上个月数据 + * 类型:1-企业数量,2-执法单位数,3-执法人员数 + * 查询:level =1 ,查询市下面所有区的数据,leeve =2 查询区下面所有街道的数据,需要同步传入区编码:districtCode + * @param bo + * @return + */ + @GetMapping("/getCount") + public R> getCount(QueryDashboardOverviewCountBo bo) { + //1、默认查询上个月数据 + //2、类型:1-企业数量,2-执法单位数,3-执法人员数 + List result = dashboardOverviewService.getCount(bo); + return R.ok(result); + } + } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardCompanyHighFreqCheck.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardCompanyHighFreqCheck.java new file mode 100644 index 00000000..58237ecd --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardCompanyHighFreqCheck.java @@ -0,0 +1,86 @@ +package com.zdxt.enforcementcode.domain.bean; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 大屏-企业高频检查明细对象 dashboard_company_high_freq_check + * + * @author Lion Li + * @date 2026-06-04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("dashboard_company_high_freq_check") +public class DashboardCompanyHighFreqCheck extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private String id; + + /** + * 年份 + */ + private Long year; + + /** + * 月份 1-12 + */ + private Long month; + + /** + * 企业ID + */ + private String qyid; + + /** + * 企业名称 + */ + private String qymc; + + /** + * 领域ID + */ + private String lyid; + + /** + * 领域名称 + */ + private String lymc; + + /** + * 检查次数 + */ + private Long checkCount; + + /** + * 逻辑删除:0-否 1-是 + */ + private String isDelete; + + /** + * 局级部门ID + */ + private String bureauDeptId; + + /** + * 部门ID + */ + private String deptId; + + /** + * 组织单位ID + */ + private String organId; + + +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCheckRegisterHighAreaBo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCheckRegisterHighAreaBo.java new file mode 100644 index 00000000..be1f55f4 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCheckRegisterHighAreaBo.java @@ -0,0 +1,28 @@ +package com.zdxt.enforcementcode.domain.bo; + + +import lombok.Data; + +import java.io.Serializable; + +/** + * 大屏-高频预警检查 + * + * @author Lion Li + * @date 2026-06-02 + */ +@Data +public class DashboardCheckRegisterHighAreaBo implements Serializable { + + /** + * 年份 + */ + private Long year; + + /** + * 月份 1-12 + */ + private Long month; + + +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCompanyHighFreqCheckBo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCompanyHighFreqCheckBo.java new file mode 100644 index 00000000..c37ce4f0 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCompanyHighFreqCheckBo.java @@ -0,0 +1,91 @@ +package com.zdxt.enforcementcode.domain.bo; + +import com.zdxt.enforcementcode.domain.bean.DashboardCompanyHighFreqCheck; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 大屏-企业高频检查明细业务对象 dashboard_company_high_freq_check + * + * @author Lion Li + * @date 2026-06-04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = DashboardCompanyHighFreqCheck.class, reverseConvertGenerate = false) +public class DashboardCompanyHighFreqCheckBo extends BaseEntity { + + /** + * 主键ID + */ + @NotBlank(message = "主键ID不能为空", groups = { EditGroup.class }) + private String id; + + /** + * 年份 + */ + @NotNull(message = "年份不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long year; + + /** + * 月份 1-12 + */ + @NotNull(message = "月份 1-12不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long month; + + /** + * 企业ID + */ + @NotBlank(message = "企业ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String qyid; + + /** + * 企业名称 + */ + @NotBlank(message = "企业名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String qymc; + + /** + * 领域ID + */ + @NotBlank(message = "领域ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String lyid; + + /** + * 领域名称 + */ + @NotBlank(message = "领域名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String lymc; + + /** + * 检查次数 + */ + private Long checkCount; + + /** + * 逻辑删除:0-否 1-是 + */ + private String isDelete; + + /** + * 局级部门ID + */ + private String bureauDeptId; + + /** + * 部门ID + */ + private String deptId; + + /** + * 组织单位ID + */ + private String organId; + + +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/QueryDashboardOverviewCountBo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/QueryDashboardOverviewCountBo.java new file mode 100644 index 00000000..5bee4e52 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/QueryDashboardOverviewCountBo.java @@ -0,0 +1,77 @@ +package com.zdxt.enforcementcode.domain.bo; + +import com.zdxt.enforcementcode.domain.bean.DashboardOverview; +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; + +import java.io.Serializable; + +/** + * 大屏总览业务对象 dashboard_overview + * + * @author Lion Li + * @date 2026-05-27 + */ +@Data +@AutoMapper(target = DashboardOverview.class, reverseConvertGenerate = false) +public class QueryDashboardOverviewCountBo implements Serializable { + + + /** + * 市编码 + */ + private String cityCode; + + /** + * 市名称 + */ + @NotBlank(message = "市名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String cityName; + + /** + * 区编码 + */ + private String districtCode; + + /** + * 区名称 + */ + private String districtName; + + /** + * 街道编号 + */ + private String streetCode; + + /** + * 街道名称 + */ + private String streetName; + + /** + * 级别:1-市 2-区 3-街道 + */ + @NotNull(message = "级别不能为空") + private Long level; + + /** + * 年份 + */ + private Long year; + + /** + * 月份 + */ + private Long month; + + /** + * 类型:1-企业数量,2-执法单位数,3-执法人员数 + */ + private Integer type; + + +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardCheckHighEnterpriseInfoVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardCheckHighEnterpriseInfoVo.java new file mode 100644 index 00000000..62198e02 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardCheckHighEnterpriseInfoVo.java @@ -0,0 +1,51 @@ +package com.zdxt.enforcementcode.domain.vo; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import com.zdxt.enforcementcode.domain.bean.DashboardCheckRegisterDomain; +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 大屏-检查登记-领域统计视图对象 dashboard_check_register_domain + * + * @author Lion Li + * @date 2026-06-02 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = DashboardCheckRegisterDomain.class) +public class DashboardCheckHighEnterpriseInfoVo implements Serializable { + + /** + * 企业ID + */ + private String enterpriseId; + + /** + * 企业名称 + */ + private String enterpriseName; + + /** + * 领域ID + */ + private String lyid; + + /** + * 领域名称 + */ + private String lymc; + + /** + * 检查次数 + */ + private Integer checkNum; +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardCompanyHighFreqCheckVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardCompanyHighFreqCheckVo.java new file mode 100644 index 00000000..bceb15a0 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardCompanyHighFreqCheckVo.java @@ -0,0 +1,104 @@ +package com.zdxt.enforcementcode.domain.vo; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import com.zdxt.enforcementcode.domain.bean.DashboardCompanyHighFreqCheck; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 大屏-企业高频检查明细视图对象 dashboard_company_high_freq_check + * + * @author Lion Li + * @date 2026-06-04 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = DashboardCompanyHighFreqCheck.class) +public class DashboardCompanyHighFreqCheckVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private String id; + + /** + * 年份 + */ + @ExcelProperty(value = "年份") + private Long year; + + /** + * 月份 1-12 + */ + @ExcelProperty(value = "月份 1-12") + private Long month; + + /** + * 企业ID + */ + @ExcelProperty(value = "企业ID") + private String qyid; + + /** + * 企业名称 + */ + @ExcelProperty(value = "企业名称") + private String qymc; + + /** + * 领域ID + */ + @ExcelProperty(value = "领域ID") + private String lyid; + + /** + * 领域名称 + */ + @ExcelProperty(value = "领域名称") + private String lymc; + + /** + * 检查次数 + */ + @ExcelProperty(value = "检查次数") + private Long checkCount; + + /** + * 逻辑删除:0-否 1-是 + */ + @ExcelProperty(value = "逻辑删除:0-否 1-是") + private String isDelete; + + /** + * 局级部门ID + */ + @ExcelProperty(value = "局级部门ID") + private String bureauDeptId; + + /** + * 部门ID + */ + @ExcelProperty(value = "部门ID") + private String deptId; + + /** + * 组织单位ID + */ + @ExcelProperty(value = "组织单位ID") + private String organId; + + +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/LawEnforcementIntensityCountVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/LawEnforcementIntensityCountVo.java new file mode 100644 index 00000000..136a0fe2 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/LawEnforcementIntensityCountVo.java @@ -0,0 +1,69 @@ +package com.zdxt.enforcementcode.domain.vo; + +import cn.idev.excel.annotation.ExcelProperty; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 执法力度统计VO + * + * @author Lion Li + * @date 2026-05-27 + */ +@Data +public class LawEnforcementIntensityCountVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 统计类型:month-月度, quarter-季度, year-年度 + */ + private String statisticsType; + + /** + * 时间标签(格式:月度-2026-05, 季度-2026-Q1, 年度-2026) + */ + private String timeLabel; + + /** + * 统计数量 + */ + private Long count; + + + /** + * 市编码 + */ + private String cityCode; + + /** + * 市名称 + */ + private String cityName; + + /** + * 区编码 + */ + private String districtCode; + + /** + * 区名称 + */ + private String districtName; + + /** + * 街道编号 + */ + private String streetCode; + + /** + * 街道名称 + */ + private String streetName; +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardCompanyHighFreqCheckMapper.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardCompanyHighFreqCheckMapper.java new file mode 100644 index 00000000..b7fcd886 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardCompanyHighFreqCheckMapper.java @@ -0,0 +1,15 @@ +package com.zdxt.enforcementcode.mapper; + +import com.zdxt.enforcementcode.domain.bean.DashboardCompanyHighFreqCheck; +import com.zdxt.enforcementcode.domain.vo.DashboardCompanyHighFreqCheckVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 大屏-企业高频检查明细Mapper接口 + * + * @author Lion Li + * @date 2026-06-04 + */ +public interface DashboardCompanyHighFreqCheckMapper extends BaseMapperPlus { + +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardOverviewMapper.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardOverviewMapper.java index b2916a99..96fc4943 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardOverviewMapper.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardOverviewMapper.java @@ -3,10 +3,13 @@ package com.zdxt.enforcementcode.mapper; import com.zdxt.enforcementcode.domain.bean.DashboardOverview; import com.zdxt.enforcementcode.domain.bo.LawEnforcementIntensityQueryBo; +import com.zdxt.enforcementcode.domain.bo.QueryDashboardOverviewCountBo; import com.zdxt.enforcementcode.domain.vo.DashboardOverviewVo; import com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityVo; +import com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityCountVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; /** * 大屏总览Mapper接口 @@ -24,4 +27,13 @@ public interface DashboardOverviewMapper extends BaseMapperPlus queryCount(QueryDashboardOverviewCountBo bo); + } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardCompanyHighFreqCheckService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardCompanyHighFreqCheckService.java new file mode 100644 index 00000000..80e6e770 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardCompanyHighFreqCheckService.java @@ -0,0 +1,68 @@ +package com.zdxt.enforcementcode.service; + +import com.zdxt.enforcementcode.domain.vo.DashboardCompanyHighFreqCheckVo; +import com.zdxt.enforcementcode.domain.bo.DashboardCompanyHighFreqCheckBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 大屏-企业高频检查明细Service接口 + * + * @author Lion Li + * @date 2026-06-04 + */ +public interface IDashboardCompanyHighFreqCheckService { + + /** + * 查询大屏-企业高频检查明细 + * + * @param id 主键 + * @return 大屏-企业高频检查明细 + */ + DashboardCompanyHighFreqCheckVo queryById(String id); + + /** + * 分页查询大屏-企业高频检查明细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 大屏-企业高频检查明细分页列表 + */ + TableDataInfo queryPageList(DashboardCompanyHighFreqCheckBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的大屏-企业高频检查明细列表 + * + * @param bo 查询条件 + * @return 大屏-企业高频检查明细列表 + */ + List queryList(DashboardCompanyHighFreqCheckBo bo); + + /** + * 新增大屏-企业高频检查明细 + * + * @param bo 大屏-企业高频检查明细 + * @return 是否新增成功 + */ + Boolean insertByBo(DashboardCompanyHighFreqCheckBo bo); + + /** + * 修改大屏-企业高频检查明细 + * + * @param bo 大屏-企业高频检查明细 + * @return 是否修改成功 + */ + Boolean updateByBo(DashboardCompanyHighFreqCheckBo bo); + + /** + * 校验并批量删除大屏-企业高频检查明细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardOverviewService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardOverviewService.java index 070c0cbf..285ce588 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardOverviewService.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardOverviewService.java @@ -57,6 +57,16 @@ public interface IDashboardOverviewService { */ com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityVo getLawEnforcementIntensity(com.zdxt.enforcementcode.domain.bo.QueryDashboardOverviewBo bo); + /** + * 获取数量统计(企业数、执法单位数、执法人员数) + * 默认查询上个月数据 + * 类型:1-企业数量,2-执法单位数,3-执法人员数 + * + * @param bo 查询条件 + * @return 数量统计列表 + */ + List getCount(com.zdxt.enforcementcode.domain.bo.QueryDashboardOverviewCountBo bo); + /** * 新增大屏总览 * diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCompanyHighFreqCheckServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCompanyHighFreqCheckServiceImpl.java new file mode 100644 index 00000000..240f18ef --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCompanyHighFreqCheckServiceImpl.java @@ -0,0 +1,144 @@ +package com.zdxt.enforcementcode.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zdxt.enforcementcode.domain.bean.DashboardCompanyHighFreqCheck; +import com.zdxt.enforcementcode.service.IDashboardCompanyHighFreqCheckService; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.zdxt.enforcementcode.domain.bo.DashboardCompanyHighFreqCheckBo; +import com.zdxt.enforcementcode.domain.vo.DashboardCompanyHighFreqCheckVo; + +import com.zdxt.enforcementcode.mapper.DashboardCompanyHighFreqCheckMapper; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 大屏-企业高频检查明细Service业务层处理 + * + * @author Lion Li + * @date 2026-06-04 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class DashboardCompanyHighFreqCheckServiceImpl implements IDashboardCompanyHighFreqCheckService { + + private final DashboardCompanyHighFreqCheckMapper baseMapper; + + /** + * 查询大屏-企业高频检查明细 + * + * @param id 主键 + * @return 大屏-企业高频检查明细 + */ + @Override + public DashboardCompanyHighFreqCheckVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询大屏-企业高频检查明细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 大屏-企业高频检查明细分页列表 + */ + @Override + public TableDataInfo queryPageList(DashboardCompanyHighFreqCheckBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的大屏-企业高频检查明细列表 + * + * @param bo 查询条件 + * @return 大屏-企业高频检查明细列表 + */ + @Override + public List queryList(DashboardCompanyHighFreqCheckBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(DashboardCompanyHighFreqCheckBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(DashboardCompanyHighFreqCheck::getId); + lqw.eq(bo.getYear() != null, DashboardCompanyHighFreqCheck::getYear, bo.getYear()); + lqw.eq(bo.getMonth() != null, DashboardCompanyHighFreqCheck::getMonth, bo.getMonth()); + lqw.eq(StringUtils.isNotBlank(bo.getQyid()), DashboardCompanyHighFreqCheck::getQyid, bo.getQyid()); + lqw.eq(StringUtils.isNotBlank(bo.getQymc()), DashboardCompanyHighFreqCheck::getQymc, bo.getQymc()); + lqw.eq(StringUtils.isNotBlank(bo.getLyid()), DashboardCompanyHighFreqCheck::getLyid, bo.getLyid()); + lqw.eq(StringUtils.isNotBlank(bo.getLymc()), DashboardCompanyHighFreqCheck::getLymc, bo.getLymc()); + lqw.eq(bo.getCheckCount() != null, DashboardCompanyHighFreqCheck::getCheckCount, bo.getCheckCount()); + lqw.eq(StringUtils.isNotBlank(bo.getIsDelete()), DashboardCompanyHighFreqCheck::getIsDelete, bo.getIsDelete()); + lqw.eq(StringUtils.isNotBlank(bo.getBureauDeptId()), DashboardCompanyHighFreqCheck::getBureauDeptId, bo.getBureauDeptId()); + lqw.eq(StringUtils.isNotBlank(bo.getDeptId()), DashboardCompanyHighFreqCheck::getDeptId, bo.getDeptId()); + lqw.eq(StringUtils.isNotBlank(bo.getOrganId()), DashboardCompanyHighFreqCheck::getOrganId, bo.getOrganId()); + return lqw; + } + + /** + * 新增大屏-企业高频检查明细 + * + * @param bo 大屏-企业高频检查明细 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(DashboardCompanyHighFreqCheckBo bo) { + DashboardCompanyHighFreqCheck add = MapstructUtils.convert(bo, DashboardCompanyHighFreqCheck.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改大屏-企业高频检查明细 + * + * @param bo 大屏-企业高频检查明细 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(DashboardCompanyHighFreqCheckBo bo) { + DashboardCompanyHighFreqCheck update = MapstructUtils.convert(bo, DashboardCompanyHighFreqCheck.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(DashboardCompanyHighFreqCheck entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除大屏-企业高频检查明细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardOverviewServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardOverviewServiceImpl.java index 85de18b1..96ebcf7e 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardOverviewServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardOverviewServiceImpl.java @@ -3,7 +3,10 @@ package com.zdxt.enforcementcode.service.impl; import com.zdxt.enforcementcode.domain.bean.DashboardOverview; import com.zdxt.enforcementcode.domain.bo.LawEnforcementIntensityQueryBo; import com.zdxt.enforcementcode.domain.bo.QueryDashboardOverviewBo; +import com.zdxt.enforcementcode.domain.bo.QueryDashboardOverviewCountBo; import com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityVo; +import com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityCountVo; + import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -106,8 +109,8 @@ public class DashboardOverviewServiceImpl implements IDashboardOverviewService { /** * 获取执法力度统计信息(支持月度、季度、年度) - * 月度:查询当前月份的数据 - * 季度:查询当前季度的数据 + * 月度:查询前一个月的数据 + * 季度:查询前一个季度的数据 * 年度:查询当前年的数据 * @param bo 查询条件 * @return 执法力度统计信息 @@ -135,38 +138,38 @@ public class DashboardOverviewServiceImpl implements IDashboardOverviewService { // 根据统计类型设置时间范围 java.time.LocalDate now = java.time.LocalDate.now(); -// int currentYear = now.getYear(); -// int currentMonth = now.getMonthValue(); -// // 获取上一个月 + int currentYear = now.getYear(); + int currentMonth = now.getMonthValue(); java.time.LocalDate lastMonth = now.minusMonths(1); - int year = lastMonth.getYear(); - int month = lastMonth.getMonthValue(); + int lastYear = lastMonth.getYear(); + int lastMonthValue = lastMonth.getMonthValue(); switch (statisticsType.toLowerCase()) { case "month": - // 统计当前月的数据 - queryBo.setYear((long) year); - queryBo.setMonth((long) month); + // 统计前一个月的数据 + queryBo.setYear((long) lastYear); + queryBo.setMonth((long) lastMonthValue); break; case "quarter": - // 统计当前季度的数据 - int currentQuarter = (month - 1) / 3 + 1; - queryBo.setYear((long) year); - // 计算当前季度的起始和结束月份 - queryBo.setStartMonth((long) ((currentQuarter - 1) * 3 + 1)); - int endMonth = currentQuarter * 3; - if(endMonth >month){ - endMonth = month; + // 统计前一个季度的数据 + int currentQuarter = (currentMonth - 1) / 3 + 1; + int prevQuarter = currentQuarter - 1; + int quarterYear = currentYear; + if (prevQuarter == 0) { + prevQuarter = 4; + quarterYear = currentYear - 1; } - queryBo.setEndMonth((long) endMonth); + queryBo.setYear((long) quarterYear); + queryBo.setStartMonth((long) ((prevQuarter - 1) * 3 + 1)); + queryBo.setEndMonth((long) (prevQuarter * 3)); break; case "year": - // 统计当前年度的数据 - queryBo.setYear((long) year); + // 统计当前年的数据 + queryBo.setYear((long) currentYear); break; default: - // 默认统计当前月 - queryBo.setYear((long) year); - queryBo.setMonth((long) month); + // 默认统计前一个月 + queryBo.setYear((long) lastYear); + queryBo.setMonth((long) lastMonthValue); break; } @@ -174,6 +177,35 @@ public class DashboardOverviewServiceImpl implements IDashboardOverviewService { return baseMapper.queryLawEnforcementIntensity(queryBo); } + /** + * 获取数量统计(企业数、执法单位数、执法人员数) + * 默认查询上个月数据 + * 类型:1-企业数量,2-执法单位数,3-执法人员数 + * + * @param bo 查询条件 + * @return 数量统计列表 + */ + @Override + public List getCount(QueryDashboardOverviewCountBo bo) { + if (bo.getLevel() == null) { + throw new IllegalArgumentException("级别参数不能为空,级别:1-市 2-区 3-街道"); + } + + // 默认查询上个月数据 + if (bo.getYear() == null || bo.getMonth() == null) { + java.time.LocalDate now = java.time.LocalDate.now(); + java.time.LocalDate lastMonth = now.minusMonths(1); + if (bo.getYear() == null) { + bo.setYear((long) lastMonth.getYear()); + } + if (bo.getMonth() == null) { + bo.setMonth((long) lastMonth.getMonthValue()); + } + } + + return baseMapper.queryCount(bo); + } + private LambdaQueryWrapper buildQueryWrapperForQuery(QueryDashboardOverviewBo bo) { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardEnterpriseCheckMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardEnterpriseCheckMapper.xml index 43cc46b2..7c7e829b 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardEnterpriseCheckMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardEnterpriseCheckMapper.xml @@ -14,8 +14,8 @@ AND (a.stat_year > #{startYear} OR (a.stat_year = #{startYear} AND a.stat_month >= #{startMonth})) AND (a.stat_year < #{endYear} OR (a.stat_year = #{endYear} AND a.stat_month <= #{endMonth})) ORDER BY - a.stat_year, - a.stat_month + a.stat_year desc, + a.stat_month desc diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardOverviewMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardOverviewMapper.xml index df874ae1..1b59ab47 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardOverviewMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardOverviewMapper.xml @@ -50,4 +50,51 @@ +