Browse Source

优化了趋势行为分析相关逻辑

dev-V1.0.1
ganhao 5 months ago
parent
commit
e3d6e32045
  1. 39
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardTrendAreaStatController.java
  2. 48
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardTrendDomainStatController.java
  3. 74
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardTrendStatController.java
  4. 6
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardTrendStat.java
  5. 6
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardTrendStatBo.java
  6. 69
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardTrendStatQueryBo.java
  7. 83
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/AreaQuarterStatVo.java
  8. 6
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardTrendStatVo.java
  9. 78
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DomainQuarterStatVo.java
  10. 16
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardTrendDomainStatMapper.java
  11. 50
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardTrendStatMapper.java
  12. 2
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardTrendAreaStatService.java
  13. 47
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardTrendStatService.java
  14. 30
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardTrendAreaStatServiceImpl.java
  15. 151
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardTrendDomainStatServiceImpl.java
  16. 306
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardTrendStatServiceImpl.java
  17. 6
      zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardTrendDomainStatMapper.xml
  18. 142
      zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardTrendStatMapper.xml

39
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardTrendAreaStatController.java

@ -1,39 +0,0 @@
package com.zdxt.enforcementcode.controller.web.supervision;
import com.zdxt.enforcementcode.domain.bo.AreaQuarterStatQueryBo;
import com.zdxt.enforcementcode.domain.vo.AreaQuarterStatCategoryVo;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.core.domain.R;
import com.zdxt.enforcementcode.service.IDashboardTrendAreaStatService;
/**
* 大屏-趋势行为分析-区域统计
*
* @author Lion Li
* @date 2026-05-27
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/web/dashboard/trendAreaStat")
public class DashboardTrendAreaStatController extends BaseController {
private final IDashboardTrendAreaStatService dashboardTrendAreaStatService;
/**
* 查询区域季度统计数据(按检查数量分类统计)
* 统计检查数量=0和检查数量>150的区域数量
*
* @param queryBo 查询参数
*/
@GetMapping("/areaQuarterStatByCategory")
public R<AreaQuarterStatCategoryVo> getAreaQuarterStatByCategory(@Validated AreaQuarterStatQueryBo queryBo) {
AreaQuarterStatCategoryVo result = dashboardTrendAreaStatService.queryAreaQuarterStatByCategory(queryBo);
return R.ok(result);
}
}

48
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardTrendDomainStatController.java

@ -1,48 +0,0 @@
package com.zdxt.enforcementcode.controller.web.supervision;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import com.zdxt.enforcementcode.domain.vo.DashboardTrendDomainStatVo;
import com.zdxt.enforcementcode.domain.bo.DashboardTrendDomainStatBo;
import com.zdxt.enforcementcode.service.IDashboardTrendDomainStatService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 大屏-趋势行为分析-领域统计
*
* @author Lion Li
* @date 2026-05-27
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/web/dashboard/trendDomainStat")
public class DashboardTrendDomainStatController extends BaseController {
private final IDashboardTrendDomainStatService dashboardTrendDomainStatService;
/**
* 查询趋势行为分析-领域统计列表
*/
@SaCheckPermission("enforcementcode:trendDomainStat:list")
@GetMapping("/list")
public TableDataInfo<DashboardTrendDomainStatVo> list(DashboardTrendDomainStatBo bo, PageQuery pageQuery) {
return dashboardTrendDomainStatService.queryPageList(bo, pageQuery);
}
}

74
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardTrendStatController.java

@ -0,0 +1,74 @@
package com.zdxt.enforcementcode.controller.web.supervision;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.zdxt.enforcementcode.domain.bo.DashboardTrendStatBo;
import com.zdxt.enforcementcode.domain.bo.DashboardTrendStatQueryBo;
import com.zdxt.enforcementcode.domain.vo.AreaQuarterStatVo;
import com.zdxt.enforcementcode.domain.vo.DashboardTrendStatVo;
import com.zdxt.enforcementcode.domain.vo.DomainQuarterStatVo;
import com.zdxt.enforcementcode.service.IDashboardTrendStatService;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.springframework.validation.annotation.Validated;
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;
/**
* 大屏-趋势行为分析
*
* @author Lion Li
* @date 2026-05-27
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/web/dashboard/trendStat")
public class DashboardTrendStatController extends BaseController {
private final IDashboardTrendStatService dashboardTrendStatService;
/**
* 区域+季节(信用)检查次数
*
* @param bo 查询参数
* @return 分类统计结果
*/
@GetMapping("/areaQuarterCheck")
public R<List<AreaQuarterStatVo>> areaQuarterCheck(@Validated DashboardTrendStatQueryBo bo) {
List<AreaQuarterStatVo> list = dashboardTrendStatService.areaQuarterCheck(bo);
return R.ok(list);
}
/**
* 区域+季节+领域检查次数
*
* @param bo 查询参数
* @return 分类统计结果
*/
@GetMapping("/areaQuarterDomainCheck")
public R<List<DashboardTrendStatVo>> areaQuarterDomainCheck(@Validated DashboardTrendStatQueryBo bo) {
List<DashboardTrendStatVo> list = dashboardTrendStatService.areaQuarterDomainCheck(bo);
return R.ok(list);
}
/**
* 领域+季节(+信用)检查次数
*
* @param bo 查询参数
* @return 分类统计结果
*/
@GetMapping("/domainQuarterCheck")
public R<List<DomainQuarterStatVo>> domainQuarterCheck(@Validated DashboardTrendStatQueryBo bo) {
List<DomainQuarterStatVo> list = dashboardTrendStatService.domainQuarterCheck(bo);
return R.ok(list);
}
}

6
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardTrendDomainStat.java → zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardTrendStat.java

@ -8,15 +8,15 @@ import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 趋势行为分析-领域统计对象 dashboard_trend_domain_stat
* 趋势行为分析-领域统计对象 dashboard_trend_stat
*
* @author Lion Li
* @date 2026-05-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dashboard_trend_domain_stat")
public class DashboardTrendDomainStat extends BaseEntity {
@TableName("dashboard_trend_stat")
public class DashboardTrendStat extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;

6
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardTrendDomainStatBo.java → zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardTrendStatBo.java

@ -1,7 +1,7 @@
package com.zdxt.enforcementcode.domain.bo;
import com.zdxt.enforcementcode.domain.bean.DashboardTrendDomainStat;
import com.zdxt.enforcementcode.domain.bean.DashboardTrendStat;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
@ -18,8 +18,8 @@ import jakarta.validation.constraints.*;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DashboardTrendDomainStat.class, reverseConvertGenerate = false)
public class DashboardTrendDomainStatBo extends BaseEntity {
@AutoMapper(target = DashboardTrendStat.class, reverseConvertGenerate = false)
public class DashboardTrendStatBo extends BaseEntity {
/**
* 主键ID

69
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardTrendStatQueryBo.java

@ -0,0 +1,69 @@
package com.zdxt.enforcementcode.domain.bo;
import com.zdxt.enforcementcode.domain.bean.DashboardTrendStat;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
/**
* 趋势行为分析-领域统计业务对象 dashboard_trend_domain_stat
*
* @author Lion Li
* @date 2026-05-27
*/
@Data
public class DashboardTrendStatQueryBo extends BaseEntity {
/**
* 年份(可选,不传则默认查询前四个季度)
*/
private Long year;
/**
* 起始年份(用于跨年查询)
*/
private Long startYear;
/**
* 起始季度(用于跨年查询)
*/
private Integer startQuarter;
/**
* 结束年份(用于跨年查询)
*/
private Long endYear;
/**
* 结束季度(用于跨年查询)
*/
private Integer endQuarter;
/**
* 区编码(可选)
*/
private String districtCode;
/**
* 区名称(可选)
*/
private String districtName;
/**
* 领域ID
*/
private String lyid;
/**
* 领域名称
*/
private String lymc;
}

83
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/AreaQuarterStatVo.java

@ -0,0 +1,83 @@
package com.zdxt.enforcementcode.domain.vo;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 区域季度统计VO(按区域+季节统计检查次数和评级数量)
*
* @author Lion Li
* @date 2026-05-28
*/
@Data
public class AreaQuarterStatVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 区编码
*/
private String districtCode;
/**
* 区名称
*/
private String districtName;
/**
* 年份
*/
private Long year;
/**
* 季度:1-一季度 2-二季度 3-三季度 4-四季度
*/
private Long quarter;
/**
* 检查次数
*/
private Long jccs;
/**
* 评级A+数量
*/
private Long djAPlus;
/**
* 评级A数量
*/
private Long djA;
/**
* 评级B数量
*/
private Long djB;
/**
* 评级C数量
*/
private Long djC;
/**
* 评级D数量
*/
private Long djD;
/**
* 评级E数量
*/
private Long djE;
/**
* 违规次数
*/
private Long wgcs;
}

6
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardTrendDomainStatVo.java → zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardTrendStatVo.java

@ -2,7 +2,7 @@ package com.zdxt.enforcementcode.domain.vo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.zdxt.enforcementcode.domain.bean.DashboardTrendDomainStat;
import com.zdxt.enforcementcode.domain.bean.DashboardTrendStat;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
@ -22,8 +22,8 @@ import java.util.Date;
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DashboardTrendDomainStat.class)
public class DashboardTrendDomainStatVo implements Serializable {
@AutoMapper(target = DashboardTrendStat.class)
public class DashboardTrendStatVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;

78
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DomainQuarterStatVo.java

@ -0,0 +1,78 @@
package com.zdxt.enforcementcode.domain.vo;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 领域季度统计VO(按领域+季节统计检查次数和评级数量)
*
* @author Lion Li
* @date 2026-05-28
*/
@Data
public class DomainQuarterStatVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 领域名称
*/
private String lymc;
/**
* 年份
*/
private Long year;
/**
* 季度:1-一季度 2-二季度 3-三季度 4-四季度
*/
private Long quarter;
/**
* 检查次数
*/
private Long jccs;
/**
* 评级A+数量
*/
private Long djAPlus;
/**
* 评级A数量
*/
private Long djA;
/**
* 评级B数量
*/
private Long djB;
/**
* 评级C数量
*/
private Long djC;
/**
* 评级D数量
*/
private Long djD;
/**
* 评级E数量
*/
private Long djE;
/**
* 违规次数
*/
private Long wgcs;
}

16
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardTrendDomainStatMapper.java

@ -1,16 +0,0 @@
package com.zdxt.enforcementcode.mapper;
import com.zdxt.enforcementcode.domain.bean.DashboardTrendDomainStat;
import com.zdxt.enforcementcode.domain.vo.DashboardTrendDomainStatVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 趋势行为分析-领域统计Mapper接口
*
* @author Lion Li
* @date 2026-05-27
*/
public interface DashboardTrendDomainStatMapper extends BaseMapperPlus<DashboardTrendDomainStat, DashboardTrendDomainStatVo> {
}

50
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardTrendStatMapper.java

@ -0,0 +1,50 @@
package com.zdxt.enforcementcode.mapper;
import com.zdxt.enforcementcode.domain.bean.DashboardTrendStat;
import com.zdxt.enforcementcode.domain.bo.DashboardTrendStatQueryBo;
import com.zdxt.enforcementcode.domain.vo.AreaQuarterStatVo;
import com.zdxt.enforcementcode.domain.vo.AreaQuarterStatVo;
import com.zdxt.enforcementcode.domain.vo.DashboardTrendStatVo;
import com.zdxt.enforcementcode.domain.vo.DomainQuarterStatVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* 趋势行为分析-领域统计Mapper接口
*
* @author Lion Li
* @date 2026-05-27
*/
public interface DashboardTrendStatMapper extends BaseMapperPlus<DashboardTrendStat, DashboardTrendStatVo> {
/**
* 区域+季节(信用)检查次数
*
* @param queryBo 查询参数
* @return 区域季度统计列表
*/
List<AreaQuarterStatVo> areaQuarterCheck(DashboardTrendStatQueryBo queryBo);
/**
* 区域+季节+领域检查次数
*
* @param queryBo 查询参数
* @return 领域季度统计列表
*/
List<DashboardTrendStatVo> areaQuarterDomainCheck(DashboardTrendStatQueryBo queryBo);
/**
* 领域+季节(+信用)检查次数
*
* @param queryBo 查询参数
* @return 领域季度统计列表
*/
List<DomainQuarterStatVo> domainQuarterCheck(DashboardTrendStatQueryBo queryBo);
}

2
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardTrendAreaStatService.java

@ -82,5 +82,5 @@ public interface IDashboardTrendAreaStatService {
* @param queryBo 查询参数
* @return 分类统计结果
*/
AreaQuarterStatCategoryVo queryAreaQuarterStatByCategory(AreaQuarterStatQueryBo queryBo);
List<DashboardTrendAreaStatVo> queryAreaQuarterStatByCategory(AreaQuarterStatQueryBo queryBo);
}

47
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardTrendDomainStatService.java → zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardTrendStatService.java

@ -1,7 +1,10 @@
package com.zdxt.enforcementcode.service;
import com.zdxt.enforcementcode.domain.vo.DashboardTrendDomainStatVo;
import com.zdxt.enforcementcode.domain.bo.DashboardTrendDomainStatBo;
import com.zdxt.enforcementcode.domain.bo.DashboardTrendStatQueryBo;
import com.zdxt.enforcementcode.domain.vo.AreaQuarterStatVo;
import com.zdxt.enforcementcode.domain.vo.DashboardTrendStatVo;
import com.zdxt.enforcementcode.domain.vo.DomainQuarterStatVo;
import com.zdxt.enforcementcode.domain.bo.DashboardTrendStatBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -14,7 +17,7 @@ import java.util.List;
* @author Lion Li
* @date 2026-05-27
*/
public interface IDashboardTrendDomainStatService {
public interface IDashboardTrendStatService {
/**
* 查询趋势行为分析-领域统计
@ -22,7 +25,7 @@ public interface IDashboardTrendDomainStatService {
* @param id 主键
* @return 趋势行为分析-领域统计
*/
DashboardTrendDomainStatVo queryById(String id);
DashboardTrendStatVo queryById(String id);
/**
* 分页查询趋势行为分析-领域统计列表
@ -31,7 +34,7 @@ public interface IDashboardTrendDomainStatService {
* @param pageQuery 分页参数
* @return 趋势行为分析-领域统计分页列表
*/
TableDataInfo<DashboardTrendDomainStatVo> queryPageList(DashboardTrendDomainStatBo bo, PageQuery pageQuery);
TableDataInfo<DashboardTrendStatVo> queryPageList(DashboardTrendStatBo bo, PageQuery pageQuery);
/**
* 查询符合条件的趋势行为分析-领域统计列表
@ -39,7 +42,7 @@ public interface IDashboardTrendDomainStatService {
* @param bo 查询条件
* @return 趋势行为分析-领域统计列表
*/
List<DashboardTrendDomainStatVo> queryList(DashboardTrendDomainStatBo bo);
List<DashboardTrendStatVo> queryList(DashboardTrendStatBo bo);
/**
* 新增趋势行为分析-领域统计
@ -47,7 +50,7 @@ public interface IDashboardTrendDomainStatService {
* @param bo 趋势行为分析-领域统计
* @return 是否新增成功
*/
Boolean insertByBo(DashboardTrendDomainStatBo bo);
Boolean insertByBo(DashboardTrendStatBo bo);
/**
* 修改趋势行为分析-领域统计
@ -55,7 +58,7 @@ public interface IDashboardTrendDomainStatService {
* @param bo 趋势行为分析-领域统计
* @return 是否修改成功
*/
Boolean updateByBo(DashboardTrendDomainStatBo bo);
Boolean updateByBo(DashboardTrendStatBo bo);
/**
* 校验并批量删除趋势行为分析-领域统计信息
@ -65,4 +68,32 @@ public interface IDashboardTrendDomainStatService {
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
/**
* 区域+季节+领域检查次数
*
* @param bo 查询参数
* @return 分类统计结果
*/
List<DashboardTrendStatVo> areaQuarterDomainCheck(DashboardTrendStatQueryBo queryBo);
/**
* 区域+季节(信用)检查次数
*
* @param queryBo 查询参数
* @return 分类统计结果
*/
List<AreaQuarterStatVo> areaQuarterCheck(DashboardTrendStatQueryBo queryBo);
/**
* 领域+季节(+信用)检查次数
*
* @param queryBo 查询参数
* @return 分类统计结果
*/
List<DomainQuarterStatVo> domainQuarterCheck(DashboardTrendStatQueryBo queryBo);
}

30
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardTrendAreaStatServiceImpl.java

@ -19,10 +19,7 @@ import com.zdxt.enforcementcode.domain.vo.DashboardTrendAreaStatVo;
import com.zdxt.enforcementcode.mapper.DashboardTrendAreaStatMapper;
import com.zdxt.enforcementcode.service.IDashboardTrendAreaStatService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.*;
/**
* 趋势行为分析-区域统计Service业务层处理
@ -203,36 +200,17 @@ public class DashboardTrendAreaStatServiceImpl implements IDashboardTrendAreaSta
/**
* 查询区域季度统计数据(按检查数量分类统计)
* 返回:所有数据、按区域编码分类的数据、检查次数为0的区域、检查次数大于150的区域
*
* @param queryBo 查询参数
* @return 分类统计结果
*/
@Override
public AreaQuarterStatCategoryVo queryAreaQuarterStatByCategory(AreaQuarterStatQueryBo queryBo) {
public List<DashboardTrendAreaStatVo> queryAreaQuarterStatByCategory(AreaQuarterStatQueryBo queryBo) {
// 先查询所有区域的季度统计数据
List<DashboardTrendAreaStatVo> resultList = queryAreaQuarterStat(queryBo);
AreaQuarterStatCategoryVo categoryVo = new AreaQuarterStatCategoryVo();
if (CollUtil.isEmpty(resultList)) {
categoryVo.setCategoryMap(new HashMap<>());
return categoryVo;
return new ArrayList<>();
}
// // 按 districtCode 分组
// HashMap<String, List<DashboardTrendAreaStatVo>> categoryMap = new HashMap<>();
// List<DashboardTrendAreaStatVo> highCheckList = new java.util.ArrayList<>();
//
// for (DashboardTrendAreaStatVo vo : resultList) {
// String districtCode = vo.getDistrictCode();
//
// // 按 districtCode 分组
// if (districtCode != null) {
// categoryMap.computeIfAbsent(districtCode, k -> new java.util.ArrayList<>()).add(vo);
// }
// }
// categoryVo.setCategoryMap(categoryMap);
categoryVo.setDateList(resultList);
return categoryVo;
return resultList;
}
}

151
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardTrendDomainStatServiceImpl.java

@ -1,151 +0,0 @@
package com.zdxt.enforcementcode.service.impl;
import com.zdxt.enforcementcode.domain.bean.DashboardTrendDomainStat;
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.conditions.query.LambdaQueryWrapper;
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.DashboardTrendDomainStatBo;
import com.zdxt.enforcementcode.domain.vo.DashboardTrendDomainStatVo;
import com.zdxt.enforcementcode.mapper.DashboardTrendDomainStatMapper;
import com.zdxt.enforcementcode.service.IDashboardTrendDomainStatService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 趋势行为分析-领域统计Service业务层处理
*
* @author Lion Li
* @date 2026-05-27
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class DashboardTrendDomainStatServiceImpl implements IDashboardTrendDomainStatService {
private final DashboardTrendDomainStatMapper baseMapper;
/**
* 查询趋势行为分析-领域统计
*
* @param id 主键
* @return 趋势行为分析-领域统计
*/
@Override
public DashboardTrendDomainStatVo queryById(String id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询趋势行为分析-领域统计列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 趋势行为分析-领域统计分页列表
*/
@Override
public TableDataInfo<DashboardTrendDomainStatVo> queryPageList(DashboardTrendDomainStatBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<DashboardTrendDomainStat> lqw = buildQueryWrapper(bo);
Page<DashboardTrendDomainStatVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的趋势行为分析-领域统计列表
*
* @param bo 查询条件
* @return 趋势行为分析-领域统计列表
*/
@Override
public List<DashboardTrendDomainStatVo> queryList(DashboardTrendDomainStatBo bo) {
LambdaQueryWrapper<DashboardTrendDomainStat> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<DashboardTrendDomainStat> buildQueryWrapper(DashboardTrendDomainStatBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<DashboardTrendDomainStat> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(DashboardTrendDomainStat::getId);
lqw.eq(bo.getYear() != null, DashboardTrendDomainStat::getYear, bo.getYear());
lqw.eq(bo.getQuarter() != null, DashboardTrendDomainStat::getQuarter, bo.getQuarter());
lqw.eq(StringUtils.isNotBlank(bo.getDistrictCode()), DashboardTrendDomainStat::getDistrictCode, bo.getDistrictCode());
lqw.like(StringUtils.isNotBlank(bo.getDistrictName()), DashboardTrendDomainStat::getDistrictName, bo.getDistrictName());
lqw.eq(StringUtils.isNotBlank(bo.getLyid()), DashboardTrendDomainStat::getLyid, bo.getLyid());
lqw.eq(StringUtils.isNotBlank(bo.getLymc()), DashboardTrendDomainStat::getLymc, bo.getLymc());
lqw.eq(StringUtils.isNotBlank(bo.getZfdwid()), DashboardTrendDomainStat::getZfdwid, bo.getZfdwid());
lqw.eq(StringUtils.isNotBlank(bo.getZfdwmc()), DashboardTrendDomainStat::getZfdwmc, bo.getZfdwmc());
lqw.eq(bo.getJccs() != null, DashboardTrendDomainStat::getJccs, bo.getJccs());
lqw.eq(bo.getDjAPlus() != null, DashboardTrendDomainStat::getDjAPlus, bo.getDjAPlus());
lqw.eq(bo.getDjA() != null, DashboardTrendDomainStat::getDjA, bo.getDjA());
lqw.eq(bo.getDjB() != null, DashboardTrendDomainStat::getDjB, bo.getDjB());
lqw.eq(bo.getDjC() != null, DashboardTrendDomainStat::getDjC, bo.getDjC());
lqw.eq(bo.getDjD() != null, DashboardTrendDomainStat::getDjD, bo.getDjD());
lqw.eq(bo.getDjE() != null, DashboardTrendDomainStat::getDjE, bo.getDjE());
lqw.eq(bo.getWgcs() != null, DashboardTrendDomainStat::getWgcs, bo.getWgcs());
lqw.eq(StringUtils.isNotBlank(bo.getIsDelete()), DashboardTrendDomainStat::getIsDelete, bo.getIsDelete());
lqw.eq(StringUtils.isNotBlank(bo.getBureauDeptId()), DashboardTrendDomainStat::getBureauDeptId, bo.getBureauDeptId());
lqw.eq(StringUtils.isNotBlank(bo.getDeptId()), DashboardTrendDomainStat::getDeptId, bo.getDeptId());
lqw.eq(StringUtils.isNotBlank(bo.getOrganId()), DashboardTrendDomainStat::getOrganId, bo.getOrganId());
return lqw;
}
/**
* 新增趋势行为分析-领域统计
*
* @param bo 趋势行为分析-领域统计
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(DashboardTrendDomainStatBo bo) {
DashboardTrendDomainStat add = MapstructUtils.convert(bo, DashboardTrendDomainStat.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改趋势行为分析-领域统计
*
* @param bo 趋势行为分析-领域统计
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(DashboardTrendDomainStatBo bo) {
DashboardTrendDomainStat update = MapstructUtils.convert(bo, DashboardTrendDomainStat.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(DashboardTrendDomainStat entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除趋势行为分析-领域统计信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

306
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardTrendStatServiceImpl.java

@ -0,0 +1,306 @@
package com.zdxt.enforcementcode.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.zdxt.enforcementcode.domain.bean.DashboardTrendStat;
import com.zdxt.enforcementcode.domain.bo.DashboardTrendStatQueryBo;
import com.zdxt.enforcementcode.domain.vo.AreaQuarterStatVo;
import com.zdxt.enforcementcode.domain.vo.DomainQuarterStatVo;
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.conditions.query.LambdaQueryWrapper;
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.DashboardTrendStatBo;
import com.zdxt.enforcementcode.domain.vo.DashboardTrendStatVo;
import com.zdxt.enforcementcode.mapper.DashboardTrendStatMapper;
import com.zdxt.enforcementcode.service.IDashboardTrendStatService;
import java.util.*;
/**
* 趋势行为分析-领域统计Service业务层处理
*
* @author Lion Li
* @date 2026-05-27
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class DashboardTrendStatServiceImpl implements IDashboardTrendStatService {
private final DashboardTrendStatMapper baseMapper;
/**
* 查询趋势行为分析-领域统计
*
* @param id 主键
* @return 趋势行为分析-领域统计
*/
@Override
public DashboardTrendStatVo queryById(String id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询趋势行为分析-领域统计列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 趋势行为分析-领域统计分页列表
*/
@Override
public TableDataInfo<DashboardTrendStatVo> queryPageList(DashboardTrendStatBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<DashboardTrendStat> lqw = buildQueryWrapper(bo);
Page<DashboardTrendStatVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的趋势行为分析-领域统计列表
*
* @param bo 查询条件
* @return 趋势行为分析-领域统计列表
*/
@Override
public List<DashboardTrendStatVo> queryList(DashboardTrendStatBo bo) {
LambdaQueryWrapper<DashboardTrendStat> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<DashboardTrendStat> buildQueryWrapper(DashboardTrendStatBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<DashboardTrendStat> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(DashboardTrendStat::getId);
lqw.eq(bo.getYear() != null, DashboardTrendStat::getYear, bo.getYear());
lqw.eq(bo.getQuarter() != null, DashboardTrendStat::getQuarter, bo.getQuarter());
lqw.eq(StringUtils.isNotBlank(bo.getDistrictCode()), DashboardTrendStat::getDistrictCode, bo.getDistrictCode());
lqw.like(StringUtils.isNotBlank(bo.getDistrictName()), DashboardTrendStat::getDistrictName, bo.getDistrictName());
lqw.eq(StringUtils.isNotBlank(bo.getLyid()), DashboardTrendStat::getLyid, bo.getLyid());
lqw.eq(StringUtils.isNotBlank(bo.getLymc()), DashboardTrendStat::getLymc, bo.getLymc());
lqw.eq(StringUtils.isNotBlank(bo.getZfdwid()), DashboardTrendStat::getZfdwid, bo.getZfdwid());
lqw.eq(StringUtils.isNotBlank(bo.getZfdwmc()), DashboardTrendStat::getZfdwmc, bo.getZfdwmc());
lqw.eq(bo.getJccs() != null, DashboardTrendStat::getJccs, bo.getJccs());
lqw.eq(bo.getDjAPlus() != null, DashboardTrendStat::getDjAPlus, bo.getDjAPlus());
lqw.eq(bo.getDjA() != null, DashboardTrendStat::getDjA, bo.getDjA());
lqw.eq(bo.getDjB() != null, DashboardTrendStat::getDjB, bo.getDjB());
lqw.eq(bo.getDjC() != null, DashboardTrendStat::getDjC, bo.getDjC());
lqw.eq(bo.getDjD() != null, DashboardTrendStat::getDjD, bo.getDjD());
lqw.eq(bo.getDjE() != null, DashboardTrendStat::getDjE, bo.getDjE());
lqw.eq(bo.getWgcs() != null, DashboardTrendStat::getWgcs, bo.getWgcs());
lqw.eq(StringUtils.isNotBlank(bo.getIsDelete()), DashboardTrendStat::getIsDelete, bo.getIsDelete());
lqw.eq(StringUtils.isNotBlank(bo.getBureauDeptId()), DashboardTrendStat::getBureauDeptId, bo.getBureauDeptId());
lqw.eq(StringUtils.isNotBlank(bo.getDeptId()), DashboardTrendStat::getDeptId, bo.getDeptId());
lqw.eq(StringUtils.isNotBlank(bo.getOrganId()), DashboardTrendStat::getOrganId, bo.getOrganId());
return lqw;
}
/**
* 新增趋势行为分析-领域统计
*
* @param bo 趋势行为分析-领域统计
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(DashboardTrendStatBo bo) {
DashboardTrendStat add = MapstructUtils.convert(bo, DashboardTrendStat.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改趋势行为分析-领域统计
*
* @param bo 趋势行为分析-领域统计
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(DashboardTrendStatBo bo) {
DashboardTrendStat update = MapstructUtils.convert(bo, DashboardTrendStat.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(DashboardTrendStat entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除趋势行为分析-领域统计信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
/**
* 区域+季节(信用)检查次数
*
* @param queryBo 查询参数
* @return 分类统计结果
*/
@Override
public List<AreaQuarterStatVo> areaQuarterCheck(DashboardTrendStatQueryBo queryBo) {
// 如果未指定起始和结束季度,默认查询当前系统日期前四个季度的数据(不包含当前季度)
if (queryBo.getStartYear() == null || queryBo.getStartQuarter() == null
|| queryBo.getEndYear() == null || queryBo.getEndQuarter() == null) {
java.time.LocalDate now = java.time.LocalDate.now();
int currentMonth = now.getMonthValue();
int currentYear = now.getYear();
// 计算当前季度
int currentQuarter = (currentMonth - 1) / 3 + 1;
// 计算结束季度(当前季度的前一个季度)
int endQuarter;
int endYear;
if (currentQuarter == 1) {
// 如果当前是Q1,结束季度是上一年的Q4
endQuarter = 4;
endYear = currentYear - 1;
} else {
// 否则结束季度是当前年份的前一个季度
endQuarter = currentQuarter - 1;
endYear = currentYear;
}
// 计算起始季度(往前推3个季度)
int startQuarter;
int startYear;
if (endQuarter >= 4) {
startQuarter = endQuarter - 3;
startYear = endYear;
} else {
startQuarter = endQuarter + 1;
startYear = endYear - 1;
}
queryBo.setStartYear((long) startYear);
queryBo.setStartQuarter(startQuarter);
queryBo.setEndYear((long) endYear);
queryBo.setEndQuarter(endQuarter);
}
return baseMapper.areaQuarterCheck(queryBo);
}
/**
* 区域+季节+领域检查次数
*
* @param queryBo 查询参数
* @return 分类统计结果
*/
@Override
public List<DashboardTrendStatVo> areaQuarterDomainCheck(DashboardTrendStatQueryBo queryBo) {
// 如果未指定起始和结束季度,默认查询当前系统日期前四个季度的数据(不包含当前季度)
if (queryBo.getStartYear() == null || queryBo.getStartQuarter() == null
|| queryBo.getEndYear() == null || queryBo.getEndQuarter() == null) {
java.time.LocalDate now = java.time.LocalDate.now();
int currentMonth = now.getMonthValue();
int currentYear = now.getYear();
// 计算当前季度
int currentQuarter = (currentMonth - 1) / 3 + 1;
// 计算结束季度(当前季度的前一个季度)
int endQuarter;
int endYear;
if (currentQuarter == 1) {
// 如果当前是Q1,结束季度是上一年的Q4
endQuarter = 4;
endYear = currentYear - 1;
} else {
// 否则结束季度是当前年份的前一个季度
endQuarter = currentQuarter - 1;
endYear = currentYear;
}
// 计算起始季度(往前推3个季度)
int startQuarter;
int startYear;
if (endQuarter >= 4) {
startQuarter = endQuarter - 3;
startYear = endYear;
} else {
startQuarter = endQuarter + 1;
startYear = endYear - 1;
}
queryBo.setStartYear((long) startYear);
queryBo.setStartQuarter(startQuarter);
queryBo.setEndYear((long) endYear);
queryBo.setEndQuarter(endQuarter);
}
return baseMapper.areaQuarterDomainCheck(queryBo);
}
/**
* 领域+季节(+信用)检查次数
*
* @param queryBo 查询参数
* @return 分类统计结果
*/
@Override
public List<DomainQuarterStatVo> domainQuarterCheck(DashboardTrendStatQueryBo queryBo) {
// 如果未指定起始和结束季度,默认查询当前系统日期前四个季度的数据(不包含当前季度)
if (queryBo.getStartYear() == null || queryBo.getStartQuarter() == null
|| queryBo.getEndYear() == null || queryBo.getEndQuarter() == null) {
java.time.LocalDate now = java.time.LocalDate.now();
int currentMonth = now.getMonthValue();
int currentYear = now.getYear();
// 计算当前季度
int currentQuarter = (currentMonth - 1) / 3 + 1;
// 计算结束季度(当前季度的前一个季度)
int endQuarter;
int endYear;
if (currentQuarter == 1) {
// 如果当前是Q1,结束季度是上一年的Q4
endQuarter = 4;
endYear = currentYear - 1;
} else {
// 否则结束季度是当前年份的前一个季度
endQuarter = currentQuarter - 1;
endYear = currentYear;
}
// 计算起始季度(往前推3个季度)
int startQuarter;
int startYear;
if (endQuarter >= 4) {
startQuarter = endQuarter - 3;
startYear = endYear;
} else {
startQuarter = endQuarter + 1;
startYear = endYear - 1;
}
queryBo.setStartYear((long) startYear);
queryBo.setStartQuarter(startQuarter);
queryBo.setEndYear((long) endYear);
queryBo.setEndQuarter(endQuarter);
}
return baseMapper.domainQuarterCheck(queryBo);
}
}

6
zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardTrendDomainStatMapper.xml

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zdxt.enforcementcode.mapper.DashboardTrendDomainStatMapper">
</mapper>

142
zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardTrendStatMapper.xml

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zdxt.enforcementcode.mapper.DashboardTrendStatMapper">
<!-- 区域+季节(信用)检查次数 -->
<select id="areaQuarterCheck" resultType="com.zdxt.enforcementcode.domain.vo.AreaQuarterStatVo">
SELECT
a.district_code,
a.district_name,
a.year,
a.quarter,
IFNULL(SUM(a.jccs), 0) AS jccs,
IFNULL(SUM(a.dj_a_plus), 0) AS djAPlus,
IFNULL(SUM(a.dj_a), 0) AS djA,
IFNULL(SUM(a.dj_b), 0) AS djB,
IFNULL(SUM(a.dj_c), 0) AS djC,
IFNULL(SUM(a.dj_d), 0) AS djD,
IFNULL(SUM(a.dj_e), 0) AS djE,
IFNULL(SUM(a.wgcs), 0) AS wgcs
FROM dashboard_trend_stat a
WHERE a.is_delete = '0'
<if test="startYear != null and startQuarter != null and endYear != null and endQuarter != null">
AND (
(a.year = #{startYear} AND a.quarter &gt;= #{startQuarter})
OR (a.year &gt; #{startYear} AND a.year &lt; #{endYear})
OR (a.year = #{endYear} AND a.quarter &lt;= #{endQuarter})
)
</if>
<if test="districtCode != null and districtCode != ''">
AND a.district_code = #{districtCode}
</if>
<if test="districtName != null and districtName != ''">
AND a.district_name LIKE CONCAT('%', #{districtName}, '%')
</if>
GROUP BY
a.district_code,
a.district_name,
a.year,
a.quarter
ORDER BY
a.district_name,
a.year,
a.quarter
</select>
<!-- 区域+季节+领域检查次数 -->
<select id="areaQuarterDomainCheck" resultType="com.zdxt.enforcementcode.domain.vo.DashboardTrendStatVo">
SELECT
a.*
FROM dashboard_trend_stat a
WHERE a.is_delete = '0'
<if test="startYear != null and startQuarter != null and endYear != null and endQuarter != null">
AND (
(a.year = #{startYear} AND a.quarter &gt;= #{startQuarter})
OR (a.year &gt; #{startYear} AND a.year &lt; #{endYear})
OR (a.year = #{endYear} AND a.quarter &lt;= #{endQuarter})
)
</if>
<if test="districtCode != null and districtCode != ''">
AND a.district_code = #{districtCode}
</if>
<if test="districtName != null and districtName != ''">
AND a.district_name LIKE CONCAT('%', #{districtName}, '%')
</if>
<if test="lyid != null and lyid != ''">
AND a.lyid = #{lyid}
</if>
<if test="lymc != null and lymc != ''">
AND a.lymc LIKE CONCAT('%', #{lymc}, '%')
</if>
ORDER BY
lymc,
a.year,
a.quarter
</select>
<!-- 领域+季节(+信用)检查次数 -->
<select id="domainQuarterCheck" resultType="com.zdxt.enforcementcode.domain.vo.DomainQuarterStatVo">
SELECT
a.lymc,
a.year,
a.quarter,
IFNULL(SUM(a.jccs), 0) AS jccs,
IFNULL(SUM(a.dj_a_plus), 0) AS djAPlus,
IFNULL(SUM(a.dj_a), 0) AS djA,
IFNULL(SUM(a.dj_b), 0) AS djB,
IFNULL(SUM(a.dj_c), 0) AS djC,
IFNULL(SUM(a.dj_d), 0) AS djD,
IFNULL(SUM(a.dj_e), 0) AS djE,
IFNULL(SUM(a.wgcs), 0) AS wgcs
FROM dashboard_trend_stat a
WHERE a.is_delete = '0'
<if test="startYear != null and startQuarter != null and endYear != null and endQuarter != null">
AND (
(a.year = #{startYear} AND a.quarter &gt;= #{startQuarter})
OR (a.year &gt; #{startYear} AND a.year &lt; #{endYear})
OR (a.year = #{endYear} AND a.quarter &lt;= #{endQuarter})
)
</if>
<if test="districtCode != null and districtCode != ''">
AND a.district_code = #{districtCode}
</if>
<if test="districtName != null and districtName != ''">
AND a.district_name LIKE CONCAT('%', #{districtName}, '%')
</if>
<if test="lyid != null and lyid != ''">
AND a.lyid = #{lyid}
</if>
<if test="lymc != null and lymc != ''">
AND a.lymc LIKE CONCAT('%', #{lymc}, '%')
</if>
GROUP BY
a.lymc,
a.year,
a.quarter
ORDER BY
a.lymc,
a.year,
a.quarter
</select>
</mapper>
Loading…
Cancel
Save