Browse Source

优化大屏数据

dev-V1.0.1
ganhao 5 months ago
parent
commit
104c8823b6
  1. 38
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardAreaInfoController.java
  2. 13
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardOverviewController.java
  3. 61
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardAreaInfo.java
  4. 6
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardCheckRegisterDomain.java
  5. 4
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardOverview.java
  6. 62
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardAreaInfoBo.java
  7. 37
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/GenerateDataBo.java
  8. 73
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardAreaInfoVo.java
  9. 9
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardCheckRegisterDomainVo.java
  10. 15
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardAreaInfoMapper.java
  11. 24
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardOverviewMapper.java
  12. 71
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardAreaInfoService.java
  13. 9
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardOverviewService.java
  14. 113
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardAreaInfoServiceImpl.java
  15. 6
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCheckRegisterDomainServiceImpl.java
  16. 88
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardOverviewServiceImpl.java
  17. 130
      zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardOverviewMapper.xml

38
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardAreaInfoController.java

@ -0,0 +1,38 @@
package com.zdxt.enforcementcode.controller.web.supervision;
import cn.hutool.core.lang.tree.Tree;
import com.zdxt.enforcementcode.service.IDashboardAreaInfoService;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
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-06-05
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/web/dashboard/areaInfo")
public class DashboardAreaInfoController extends BaseController {
private final IDashboardAreaInfoService dashboardAreaInfoService;
/**
* 查询大屏-基础信息-行政区列表
* 树状结构
*/
@GetMapping("/getAreaInfo")
public R<List<Tree<String>>> getAreaInfo() {
List<Tree<String>> areaTree = dashboardAreaInfoService.buildAreaTree();
return R.ok(areaTree);
}
}

13
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardOverviewController.java

@ -1,5 +1,6 @@
package com.zdxt.enforcementcode.controller.web.supervision;
import com.zdxt.enforcementcode.domain.bo.GenerateDataBo;
import com.zdxt.enforcementcode.domain.bo.QueryDashboardOverviewBo;
import com.zdxt.enforcementcode.domain.bo.QueryDashboardOverviewCountBo;
import com.zdxt.enforcementcode.domain.vo.DashboardOverviewVo;
@ -71,4 +72,16 @@ public class DashboardOverviewController extends BaseController {
return R.ok(result);
}
/**
* 生成数据
* @param bo
* @return
*/
@GetMapping("/generateData")
public R<String> generateData(GenerateDataBo bo) {
String result = dashboardOverviewService.generateData(bo);
return R.ok(result);
}
}

61
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardAreaInfo.java

@ -0,0 +1,61 @@
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_area_info
*
* @author Lion Li
* @date 2026-06-05
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dashboard_area_info")
public class DashboardAreaInfo extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID(自增)
*/
@TableId(value = "id")
private Long id;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
/**
* 父级编码
*/
private String parentCode;
/**
* 排序号,数字越小越靠前
*/
private Long sort;
/**
* 级别
*/
private Long level;
/**
* 逻辑删除:0-否 1-是
*/
private String isDelete;
}

6
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardCheckRegisterDomain.java

@ -105,17 +105,17 @@ public class DashboardCheckRegisterDomain extends BaseEntity {
/**
* 行政强制总数
*/
private Long xzzqzs;
private Long xzqzzs;
/**
* 行政强制同比%
*/
private Long xzzqtb;
private Long xzqztb;
/**
* 行政强制环比%
*/
private Long xzzqhb;
private Long xzqzhb;
/**
* 其他执法总数

4
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bean/DashboardOverview.java

@ -65,12 +65,12 @@ public class DashboardOverview extends BaseEntity {
/**
* 年份
*/
private Long year;
private Integer year;
/**
* 月份
*/
private Long month;
private Integer month;
/**
* 企业总数

62
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardAreaInfoBo.java

@ -0,0 +1,62 @@
package com.zdxt.enforcementcode.domain.bo;
import com.zdxt.enforcementcode.domain.bean.DashboardAreaInfo;
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_area_info
*
* @author Lion Li
* @date 2026-06-05
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DashboardAreaInfo.class, reverseConvertGenerate = false)
public class DashboardAreaInfoBo extends BaseEntity {
/**
* 主键ID(自增)
*/
@NotNull(message = "主键ID(自增)不能为空", groups = { EditGroup.class })
private Long id;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
/**
* 父级编码
*/
private String parentCode;
/**
* 排序号,数字越小越靠前
*/
@NotNull(message = "排序号,数字越小越靠前不能为空", groups = { AddGroup.class, EditGroup.class })
private Long sort;
/**
* 级别
*/
@NotNull(message = "级别不能为空", groups = { AddGroup.class, EditGroup.class })
private Long level;
/**
* 逻辑删除:0-否 1-是
*/
private String isDelete;
}

37
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/GenerateDataBo.java

@ -0,0 +1,37 @@
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
public class GenerateDataBo implements Serializable {
/**
* 类型:1-大屏总览数据
*/
private Integer type;
/**
* 年份
*/
private Integer year;
/**
* 月份
*/
private Integer month;
}

73
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardAreaInfoVo.java

@ -0,0 +1,73 @@
package com.zdxt.enforcementcode.domain.vo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.zdxt.enforcementcode.domain.bean.DashboardAreaInfo;
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;
/**
* 大屏-基础信息-行政区视图对象 dashboard_area_info
*
* @author Lion Li
* @date 2026-06-05
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DashboardAreaInfo.class)
public class DashboardAreaInfoVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID(自增)
*/
@ExcelProperty(value = "主键ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "自=增")
private Long id;
/**
* 编码
*/
@ExcelProperty(value = "编码")
private String code;
/**
* 名称
*/
@ExcelProperty(value = "名称")
private String name;
/**
* 父级编码
*/
@ExcelProperty(value = "父级编码")
private String parentCode;
/**
* 排序号,数字越小越靠前
*/
@ExcelProperty(value = "排序号,数字越小越靠前")
private Long sort;
/**
* 级别
*/
@ExcelProperty(value = "级别")
private Long level;
/**
* 逻辑删除:0-否 1-是
*/
@ExcelProperty(value = "逻辑删除:0-否 1-是")
private String isDelete;
}

9
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardCheckRegisterDomainVo.java

@ -127,20 +127,17 @@ public class DashboardCheckRegisterDomainVo implements Serializable {
/**
* 行政强制总数
*/
@ExcelProperty(value = "行政强制总数")
private Long xzzqzs;
private Long xzqzzs;
/**
* 行政强制同比%
*/
@ExcelProperty(value = "行政强制同比%")
private Long xzzqtb;
private Long xzqztb;
/**
* 行政强制环比%
*/
@ExcelProperty(value = "行政强制环比%")
private Long xzzqhb;
private Long xzqzhb;
/**
* 其他执法总数

15
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardAreaInfoMapper.java

@ -0,0 +1,15 @@
package com.zdxt.enforcementcode.mapper;
import com.zdxt.enforcementcode.domain.bean.DashboardAreaInfo;
import com.zdxt.enforcementcode.domain.vo.DashboardAreaInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 大屏-基础信息-行政区Mapper接口
*
* @author Lion Li
* @date 2026-06-05
*/
public interface DashboardAreaInfoMapper extends BaseMapperPlus<DashboardAreaInfo, DashboardAreaInfoVo> {
}

24
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardOverviewMapper.java

@ -2,6 +2,7 @@ package com.zdxt.enforcementcode.mapper;
import com.zdxt.enforcementcode.domain.bean.DashboardOverview;
import com.zdxt.enforcementcode.domain.bo.GenerateDataBo;
import com.zdxt.enforcementcode.domain.bo.LawEnforcementIntensityQueryBo;
import com.zdxt.enforcementcode.domain.bo.QueryDashboardOverviewCountBo;
import com.zdxt.enforcementcode.domain.vo.DashboardOverviewVo;
@ -11,29 +12,14 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* 大屏总览Mapper接口
*
* @author Lion Li
* @date 2026-05-27
*/
public interface DashboardOverviewMapper extends BaseMapperPlus<DashboardOverview, DashboardOverviewVo> {
/**
* 查询执法力度统计数据
*
* @param queryBo 查询参数
* @return 执法力度统计信息
*/
LawEnforcementIntensityVo queryLawEnforcementIntensity(LawEnforcementIntensityQueryBo queryBo);
/**
* 查询数量统计数据(企业数、执法单位数、执法人员数)
* level=1 查询该市下所有区数据,level=2 查询该区下所有街道数据
*
* @param bo 查询参数
* @return 数量统计列表
*/
List<LawEnforcementIntensityCountVo> queryCount(QueryDashboardOverviewCountBo bo);
int deleteByYearMonth(Long year, Long month);
void generateOverviewData(GenerateDataBo bo);
}

71
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardAreaInfoService.java

@ -0,0 +1,71 @@
package com.zdxt.enforcementcode.service;
import com.zdxt.enforcementcode.domain.vo.DashboardAreaInfoVo;
import com.zdxt.enforcementcode.domain.bo.DashboardAreaInfoBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import cn.hutool.core.lang.tree.Tree;
import java.util.Collection;
import java.util.List;
/**
* 大屏-基础信息-行政区Service接口
*
* @author Lion Li
* @date 2026-06-05
*/
public interface IDashboardAreaInfoService {
/**
* 查询大屏-基础信息-行政区
*
* @param id 主键
* @return 大屏-基础信息-行政区
*/
DashboardAreaInfoVo queryById(Long id);
/**
* 分页查询大屏-基础信息-行政区列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 大屏-基础信息-行政区分页列表
*/
TableDataInfo<DashboardAreaInfoVo> queryPageList(DashboardAreaInfoBo bo, PageQuery pageQuery);
/**
* 查询符合条件的大屏-基础信息-行政区列表
*
* @param bo 查询条件
* @return 大屏-基础信息-行政区列表
*/
List<DashboardAreaInfoVo> queryList(DashboardAreaInfoBo bo);
/**
* 新增大屏-基础信息-行政区
*
* @param bo 大屏-基础信息-行政区
* @return 是否新增成功
*/
Boolean insertByBo(DashboardAreaInfoBo bo);
/**
* 修改大屏-基础信息-行政区
*
* @param bo 大屏-基础信息-行政区
* @return 是否修改成功
*/
Boolean updateByBo(DashboardAreaInfoBo bo);
/**
* 校验并批量删除大屏-基础信息-行政区信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
List<Tree<String>> buildAreaTree();
}

9
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IDashboardOverviewService.java

@ -1,5 +1,6 @@
package com.zdxt.enforcementcode.service;
import com.zdxt.enforcementcode.domain.bo.GenerateDataBo;
import com.zdxt.enforcementcode.domain.vo.DashboardOverviewVo;
import com.zdxt.enforcementcode.domain.bo.DashboardOverviewBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -91,4 +92,12 @@ public interface IDashboardOverviewService {
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
/**
* 生成大屏总览数据
*
* @param bo 生成参数
* @return 生成结果信息
*/
String generateData(GenerateDataBo bo);
}

113
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardAreaInfoServiceImpl.java

@ -0,0 +1,113 @@
package com.zdxt.enforcementcode.service.impl;
import com.zdxt.enforcementcode.domain.bean.DashboardAreaInfo;
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.DashboardAreaInfoBo;
import com.zdxt.enforcementcode.domain.vo.DashboardAreaInfoVo;
import com.zdxt.enforcementcode.mapper.DashboardAreaInfoMapper;
import com.zdxt.enforcementcode.service.IDashboardAreaInfoService;
import cn.hutool.core.lang.tree.Tree;
import org.dromara.common.core.utils.TreeBuildUtils;
import java.util.List;
import java.util.Map;
import java.util.Collection;
@Slf4j
@RequiredArgsConstructor
@Service
public class DashboardAreaInfoServiceImpl implements IDashboardAreaInfoService {
private final DashboardAreaInfoMapper baseMapper;
@Override
public DashboardAreaInfoVo queryById(Long id){
return baseMapper.selectVoById(id);
}
@Override
public TableDataInfo<DashboardAreaInfoVo> queryPageList(DashboardAreaInfoBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<DashboardAreaInfo> lqw = buildQueryWrapper(bo);
Page<DashboardAreaInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<DashboardAreaInfoVo> queryList(DashboardAreaInfoBo bo) {
LambdaQueryWrapper<DashboardAreaInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<DashboardAreaInfo> buildQueryWrapper(DashboardAreaInfoBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<DashboardAreaInfo> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(DashboardAreaInfo::getSort);
lqw.eq(StringUtils.isNotBlank(bo.getCode()), DashboardAreaInfo::getCode, bo.getCode());
lqw.like(StringUtils.isNotBlank(bo.getName()), DashboardAreaInfo::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getParentCode()), DashboardAreaInfo::getParentCode, bo.getParentCode());
lqw.eq(bo.getSort() != null, DashboardAreaInfo::getSort, bo.getSort());
lqw.eq(bo.getLevel() != null, DashboardAreaInfo::getLevel, bo.getLevel());
lqw.eq(StringUtils.isNotBlank(bo.getIsDelete()), DashboardAreaInfo::getIsDelete, bo.getIsDelete());
return lqw;
}
@Override
public Boolean insertByBo(DashboardAreaInfoBo bo) {
DashboardAreaInfo add = MapstructUtils.convert(bo, DashboardAreaInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
@Override
public Boolean updateByBo(DashboardAreaInfoBo bo) {
DashboardAreaInfo update = MapstructUtils.convert(bo, DashboardAreaInfo.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
private void validEntityBeforeSave(DashboardAreaInfo entity){
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public List<Tree<String>> buildAreaTree() {
DashboardAreaInfoBo bo = new DashboardAreaInfoBo();
bo.setIsDelete("0");
List<DashboardAreaInfoVo> areaList = queryList(bo);
if (areaList == null || areaList.isEmpty()) {
return List.of();
}
return TreeBuildUtils.buildMultiRoot(
areaList,
DashboardAreaInfoVo::getCode,
DashboardAreaInfoVo::getParentCode,
(node, tree) -> tree
.setId(node.getCode())
.setParentId(node.getParentCode())
.setName(node.getName())
.setWeight(node.getSort() != null ? node.getSort().intValue() : 0)
.putExtra("level", node.getLevel())
);
}
}

6
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCheckRegisterDomainServiceImpl.java

@ -96,9 +96,9 @@ public class DashboardCheckRegisterDomainServiceImpl implements IDashboardCheckR
lqw.eq(bo.getXzcfzs() != null, DashboardCheckRegisterDomain::getXzcfzs, bo.getXzcfzs());
lqw.eq(bo.getXzcftb() != null, DashboardCheckRegisterDomain::getXzcftb, bo.getXzcftb());
lqw.eq(bo.getXzcfhb() != null, DashboardCheckRegisterDomain::getXzcfhb, bo.getXzcfhb());
lqw.eq(bo.getXzzqzs() != null, DashboardCheckRegisterDomain::getXzzqzs, bo.getXzzqzs());
lqw.eq(bo.getXzzqtb() != null, DashboardCheckRegisterDomain::getXzzqtb, bo.getXzzqtb());
lqw.eq(bo.getXzzqhb() != null, DashboardCheckRegisterDomain::getXzzqhb, bo.getXzzqhb());
lqw.eq(bo.getXzzqzs() != null, DashboardCheckRegisterDomain::getXzqzzs, bo.getXzzqzs());
lqw.eq(bo.getXzzqtb() != null, DashboardCheckRegisterDomain::getXzqztb, bo.getXzzqtb());
lqw.eq(bo.getXzzqhb() != null, DashboardCheckRegisterDomain::getXzqzhb, bo.getXzzqhb());
lqw.eq(bo.getQtzfzs() != null, DashboardCheckRegisterDomain::getQtzfzs, bo.getQtzfzs());
lqw.eq(bo.getQtzftb() != null, DashboardCheckRegisterDomain::getQtzftb, bo.getQtzftb());
lqw.eq(bo.getQtzfhb() != null, DashboardCheckRegisterDomain::getQtzfhb, bo.getQtzfhb());

88
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardOverviewServiceImpl.java

@ -1,12 +1,14 @@
package com.zdxt.enforcementcode.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.IdUtil;
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.bo.*;
import com.zdxt.enforcementcode.domain.vo.DashboardAreaInfoVo;
import com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityVo;
import com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityCountVo;
import com.zdxt.enforcementcode.service.IDashboardAreaInfoService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -16,12 +18,17 @@ 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.dromara.common.redis.utils.SequenceUtils;
import org.dromara.common.translation.annotation.Translation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.annotation.Transient;
import org.springframework.stereotype.Service;
import com.zdxt.enforcementcode.domain.bo.DashboardOverviewBo;
import com.zdxt.enforcementcode.domain.vo.DashboardOverviewVo;
import com.zdxt.enforcementcode.mapper.DashboardOverviewMapper;
import com.zdxt.enforcementcode.service.IDashboardOverviewService;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@ -38,6 +45,77 @@ public class DashboardOverviewServiceImpl implements IDashboardOverviewService {
private final DashboardOverviewMapper baseMapper;
@Autowired
private IDashboardAreaInfoService dashboardAreaInfoService;
/**
* 生成大屏总览数据
*
* @param bo 生成参数
* @return 生成结果信息
*/
@Override
@Transactional(rollbackFor = Exception.class)
public String generateData(GenerateDataBo bo) {
if (bo.getType() == null) {
throw new IllegalArgumentException("生成类型不能为空,类型:1-大屏总览数据");
}
// 默认使用当前年和上一个月
LocalDate now = LocalDate.now();
LocalDate targetMonth = now.minusMonths(1);
if (bo.getYear() == null) {
bo.setYear(targetMonth.getYear());
}
if (bo.getMonth() == null) {
bo.setMonth(targetMonth.getMonthValue());
}
// 类型1:大屏总览数据
if (bo.getType() == 1) {
// // 先删除该年月的旧数据
// baseMapper.deleteByYearMonth(bo.getYear().longValue(), bo.getMonth().longValue());
// DashboardAreaInfoBo queryBo = new DashboardAreaInfoBo();
// queryBo.setLevel(2L);//查询所有的区
// List<DashboardAreaInfoVo> areaInfoVos = dashboardAreaInfoService.queryList(queryBo);
// for (DashboardAreaInfoVo areaInfoVo : areaInfoVos) {
// DashboardOverview dashboardOverviewArea = new DashboardOverview();
// dashboardOverviewArea.setId(IdUtil.simpleUUID());
// dashboardOverviewArea.setCityCode(areaInfoVo.getParentCode());
// dashboardOverviewArea.setCityName("深圳");
// dashboardOverviewArea.setYear(bo.getYear());
// dashboardOverviewArea.setMonth(bo.getMonth());
// dashboardOverviewArea.setDistrictCode(areaInfoVo.getCode());
// dashboardOverviewArea.setDistrictName(areaInfoVo.getName());
// dashboardOverviewArea.setLevel(3L);//区
// this.baseMapper.insert(dashboardOverviewArea);
// // 查询街道
// queryBo.setLevel(3L);
// queryBo.setParentCode(areaInfoVo.getCode());//区编码
// List<DashboardAreaInfoVo> streetInfoVos = dashboardAreaInfoService.queryList(queryBo);
// if(CollectionUtil.isNotEmpty(streetInfoVos)){
// for (DashboardAreaInfoVo dashboardAreaInfoVo: streetInfoVos ) {
// DashboardOverview dashboardOverviewStreet = new DashboardOverview();
// dashboardOverviewStreet.setId(IdUtil.simpleUUID());
// dashboardOverviewStreet.setCityCode("1");
// dashboardOverviewStreet.setCityName("深圳");
// dashboardOverviewStreet.setYear(bo.getYear());
// dashboardOverviewStreet.setMonth(bo.getMonth());
// dashboardOverviewStreet.setDistrictCode(areaInfoVo.getCode());
// dashboardOverviewStreet.setDistrictName(areaInfoVo.getName());
// dashboardOverviewStreet.setStreetCode(dashboardAreaInfoVo.getCode());
// dashboardOverviewStreet.setStreetName(dashboardAreaInfoVo.getName());
// dashboardOverviewStreet.setLevel(5L);//街道
// this.baseMapper.insert(dashboardOverviewStreet);
// }
// }
}
return "大屏总览数据生成成功,年份:" + bo.getYear() + ",月份:" + bo.getMonth();
}
/**
* 查询大屏总览
*
@ -333,4 +411,6 @@ public class DashboardOverviewServiceImpl implements IDashboardOverviewService {
}
return baseMapper.deleteByIds(ids) > 0;
}
}

130
zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardOverviewMapper.xml

@ -4,7 +4,6 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zdxt.enforcementcode.mapper.DashboardOverviewMapper">
<!-- 查询执法力度统计数据 -->
<select id="queryLawEnforcementIntensity" resultType="com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityVo">
SELECT
COALESCE(SUM(jczs), 0) AS jczs,
@ -97,4 +96,133 @@
street_code
</if>
</select>
<delete id="deleteByYearMonth">
DELETE FROM dashboard_overview
WHERE year = #{year}
AND month = #{month}
</delete>
<insert id="generateOverviewData">
INSERT INTO dashboard_overview (
id,
city_code,
city_name,
district_code,
district_name,
street_code,
street_name,
level,
year,
month,
qyzs,
ddzfs,
lhzfs,
bzfqys,
zfrys,
zfdws,
jczs,
xzjc,
xzcf,
xzqz,
xzqt,
is_delete,
create_time,
update_time,
create_by,
update_by
)
SELECT
REPLACE(UUID(), '-', '') AS id,
'440300' AS city_code,
'深圳市' AS city_name,
d.district_code AS district_code,
d.district_name AS district_name,
NULL AS street_code,
NULL AS street_name,
2 AS level,
#{year} AS year,
#{month} AS month,
COALESCE(ent.qyzs, 0) AS qyzs,
COALESCE(er.ddzfs, 0) AS ddzfs,
COALESCE(er.lhzfs, 0) AS lhzfs,
COALESCE(er.bzfqys, 0) AS bzfqys,
COALESCE(dept_zf.zfrys, 0) AS zfrys,
COALESCE(dept_zf.zfdws, 0) AS zfdws,
COALESCE(er.jczs, 0) AS jczs,
COALESCE(er.xzjc, 0) AS xzjc,
COALESCE(er.xzcf, 0) AS xzcf,
COALESCE(er.xzqz, 0) AS xzqz,
COALESCE(er.xzqt, 0) AS xzqt,
'0' AS is_delete,
NOW() AS create_time,
NOW() AS update_time,
'system' AS create_by,
'system' AS update_by
FROM (
SELECT DISTINCT
sd.area_node AS district_code,
sd.dept_name AS district_name
FROM sys_dept sd
WHERE sd.area_node IS NOT NULL
AND sd.area_node != ''
GROUP BY sd.area_node, sd.dept_name
) d
LEFT JOIN (
SELECT
COUNT(DISTINCT s.recordid) AS qyzs
FROM sszt_jbxx110497_new s
CROSS JOIN (
SELECT DISTINCT dept_name
FROM sys_dept
WHERE area_node IS NOT NULL AND area_node != ''
) dn
WHERE s.jycs LIKE CONCAT('%', dn.dept_name, '%')
) ent ON 1=1
LEFT JOIN (
SELECT
SUM(CASE WHEN er.is_real_union = 0 THEN 1 ELSE 0 END) AS ddzfs,
SUM(CASE WHEN er.is_real_union = 1 THEN 1 ELSE 0 END) AS lhzfs,
COUNT(DISTINCT er.enterprise_id) AS bzfqys,
COUNT(er.id) AS jczs,
SUM(CASE WHEN er.law_enforcement_item = '行政检查' OR er.law_enforcement_item LIKE '%检查%' THEN 1 ELSE 0 END) AS xzjc,
SUM(CASE WHEN er.law_enforcement_item = '行政处罚' OR er.law_enforcement_item LIKE '%处罚%' THEN 1 ELSE 0 END) AS xzcf,
SUM(CASE WHEN er.law_enforcement_item = '行政强制' OR er.law_enforcement_item LIKE '%强制%' THEN 1 ELSE 0 END) AS xzqz,
SUM(CASE WHEN er.law_enforcement_item NOT IN ('行政检查', '行政处罚', '行政强制')
AND er.law_enforcement_item NOT LIKE '%检查%'
AND er.law_enforcement_item NOT LIKE '%处罚%'
AND er.law_enforcement_item NOT LIKE '%强制%' THEN 1 ELSE 0 END) AS xzqt,
sd.area_node AS area_node
FROM enforcement_registration er
INNER JOIN sys_dept sd ON er.bureau_dept_id = sd.dept_id
WHERE er.is_delete = 0
AND er.is_submit = 1
AND er.enforcement_time &gt;= DATE_FORMAT(CONCAT(#{year}, '-', LPAD(#{month}, 2, '0'), '-01'), '%Y-%m-%d %H:%i:%s')
AND er.enforcement_time &lt; DATE_FORMAT(DATE_ADD(CONCAT(#{year}, '-', LPAD(#{month}, 2, '0'), '-01'), INTERVAL 1 MONTH), '%Y-%m-%d %H:%i:%s')
GROUP BY sd.area_node
) er ON d.district_code = er.area_node
LEFT JOIN (
SELECT
COUNT(DISTINCT u.user_id) AS zfrys,
COUNT(DISTINCT sd.dept_id) AS zfdws,
sd.area_node AS area_node
FROM sys_user u
INNER JOIN sys_dept sd ON u.dept_id = sd.dept_id
WHERE sd.area_node IS NOT NULL
AND sd.area_node != ''
GROUP BY sd.area_node
) dept_zf ON d.district_code = dept_zf.area_node
WHERE d.district_code IS NOT NULL
AND d.district_code != ''
</insert>
</mapper>

Loading…
Cancel
Save