From f61f8ae3d20338dd6eed09ca6f5e361b258dcb7b Mon Sep 17 00:00:00 2001 From: niujiyi <18272501226@163.com> Date: Thu, 22 Oct 2026 14:30:08 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=9B=91=E7=9D=A3=E7=AB=AF-?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=BC=81=E4=B8=9A=E7=AB=AF-?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=9D=9E=E8=A1=8C=E6=94=BF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tNonEnforcementRegistrationController.java | 2 + .../move/MoveSupervisionController.java | 61 +++++++++++ .../service/IMoveSupervisionService.java | 12 +++ .../impl/MoveSupervisionServiceImpl.java | 82 ++++++++++++++ ...DashboardHighCheckEntdetailsAreaMapper.xml | 102 +++++++++--------- 5 files changed, 210 insertions(+), 49 deletions(-) create mode 100644 zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/move/MoveSupervisionController.java create mode 100644 zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IMoveSupervisionService.java create mode 100644 zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/MoveSupervisionServiceImpl.java diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEntNonEnforcementRegistrationController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEntNonEnforcementRegistrationController.java index d63309c1..12a0f721 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEntNonEnforcementRegistrationController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEntNonEnforcementRegistrationController.java @@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j; 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.satoken.utils.LoginHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -34,6 +35,7 @@ public class AppEntNonEnforcementRegistrationController { */ @GetMapping("/list") public TableDataInfo list(NonEnforcementRegistrationBo bo, PageQuery pageQuery) { + bo.setEnterpriseNumber(LoginHelper.getDeptId()); return enforcementRegistrationService.queryPageList(bo, pageQuery); } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/move/MoveSupervisionController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/move/MoveSupervisionController.java new file mode 100644 index 00000000..7391f12d --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/move/MoveSupervisionController.java @@ -0,0 +1,61 @@ +package com.zdxt.enforcementcode.controller.web.supervision.move; + + +import com.zdxt.enforcementcode.domain.bo.DashboardTrendStatQueryBo; +import com.zdxt.enforcementcode.domain.vo.DashboardSituationAreaVo; +import com.zdxt.enforcementcode.domain.vo.DashboardSituationDomainVo; +import com.zdxt.enforcementcode.service.IDashboardSituationTrendAreaService; +import com.zdxt.enforcementcode.service.IDashboardSituationTrendDomainService; +import com.zdxt.enforcementcode.service.IMoveSupervisionService; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +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; +import java.util.Map; + + +/** + * 移动监督端 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/move/supervision") +public class MoveSupervisionController { + + + private final IMoveSupervisionService moveSupervisionService; + private final IDashboardSituationTrendAreaService dashboardSituationTrendAreaService; + private final IDashboardSituationTrendDomainService situationTrendDomainService; + + /** + * 移动监督端指标 + * @return + */ + @GetMapping("/OverviewLawEnforcementMap") + public R> OverviewLawEnforcementMap(){ + return R.ok(moveSupervisionService.OverviewLawEnforcementMap()); + } + + /** + * 区域-各区风险态势分布 + */ + @GetMapping("/querySituationTrendAreaList") + public R> querySituationTrendAreaList(@Validated DashboardTrendStatQueryBo bo) { + List list = dashboardSituationTrendAreaService.querySituationTrendAreaList(bo); + return R.ok(list); + } + + /** + * 查询态势趋势分析-领域统计列表 + */ + @GetMapping("/querySituationTrendDomainList") + public R> querySituationTrendDomainList(@Validated DashboardTrendStatQueryBo bo) { + List list = situationTrendDomainService.querySituationTrendDomainList(bo); + return R.ok(list); + } +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IMoveSupervisionService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IMoveSupervisionService.java new file mode 100644 index 00000000..c1da68b1 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IMoveSupervisionService.java @@ -0,0 +1,12 @@ +package com.zdxt.enforcementcode.service; + + +import java.util.Map; + +public interface IMoveSupervisionService { + + + Map OverviewLawEnforcementMap(); + + +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/MoveSupervisionServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/MoveSupervisionServiceImpl.java new file mode 100644 index 00000000..df050bed --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/MoveSupervisionServiceImpl.java @@ -0,0 +1,82 @@ +package com.zdxt.enforcementcode.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zdxt.enforcementcode.domain.bean.DashboardOverview; +import com.zdxt.enforcementcode.domain.bo.CimDashboardOverviewQueryBo; +import com.zdxt.enforcementcode.domain.vo.CimDashboardOverviewVo; +import com.zdxt.enforcementcode.domain.vo.DashboardOverviewVo; +import com.zdxt.enforcementcode.mapper.CimDashboardOverviewMapper; +import com.zdxt.enforcementcode.service.IMoveSupervisionService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; + +@Service +@RequiredArgsConstructor +public class MoveSupervisionServiceImpl implements IMoveSupervisionService { + + private final CimDashboardOverviewMapper cimDashboardOverviewMapper; + + + /** + * 获取月时间方法 + * @return + */ + public CimDashboardOverviewQueryBo getDateTime(){ + CimDashboardOverviewQueryBo bo=new CimDashboardOverviewQueryBo(); + // 获取当前时间的上一个月 + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.MONTH, -1); + long year = cal.get(Calendar.YEAR); + long month = cal.get(Calendar.MONTH) + 1; + Date time = cal.getTime(); + bo.setMonthTime(time); + bo.setYearTime(time); + bo.setMonth( month); + bo.setYear( year); + return bo; + } + @Override + public Map OverviewLawEnforcementMap() { + + Map map=new HashMap<>(); + + //企业总数 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(DashboardOverview::getIsDelete, "0"); + queryWrapper.eq(DashboardOverview::getYear, getDateTime().getYear()); + queryWrapper.eq(DashboardOverview::getMonth, getDateTime().getMonth()); + CimDashboardOverviewVo vo=cimDashboardOverviewMapper.selectVoOne(queryWrapper); + + //单独部门执法 + Long ddbmzfCount=cimDashboardOverviewMapper.getSepDeptLawCount(null); + + //联合执法 + Long lhzfsCount= cimDashboardOverviewMapper.getUnionLawCount(null); + + //被执法企业 + Long bzfqyCount= cimDashboardOverviewMapper.getSubLawEntCount(null); + + map.put("data",vo); + map.put("ddzf",ddbmzfCount); + map.put("lhzf",lhzfsCount); + map.put("bzfqy",bzfqyCount); + //入企压减率 + Long xzzfCount = cimDashboardOverviewMapper.getEnfRegistrationCount(null); + if (xzzfCount == null || xzzfCount == 0) { + map.put("rqyjl",BigDecimal.ZERO); + } else { + map.put("rqyjl",BigDecimal.valueOf(xzzfCount - (lhzfsCount + ddbmzfCount)) + .divide(BigDecimal.valueOf(xzzfCount), 4, RoundingMode.HALF_UP)); + } + + // 执法力度 + List list=cimDashboardOverviewMapper.getEnfRegistrationType(null); + map.put("zfld",list); + + return map; + } +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardHighCheckEntdetailsAreaMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardHighCheckEntdetailsAreaMapper.xml index 48f4bddd..017ba70a 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardHighCheckEntdetailsAreaMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardHighCheckEntdetailsAreaMapper.xml @@ -4,66 +4,70 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + - select - t1.enterprise_number as enterpriseNumber, - t1.enterprise_name as enterpriseName, - count(t1.enterprise_number) as xzzfcs, - CASE - WHEN t2.enterprise_address REGEXP '^(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)' - THEN REGEXP_SUBSTR(t2.enterprise_address, '^(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)') - WHEN t2.enterprise_address REGEXP '^深圳市(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)' - THEN REPLACE(REGEXP_SUBSTR(t2.enterprise_address,'深圳市(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)'),'深圳市', '') - WHEN t2.enterprise_address REGEXP '市.+?(区|县)' - THEN REGEXP_REPLACE(t2.enterprise_address, '^.*?市(.+?(区|县)).*$', '$1') - ELSE NULL - END AS district, - - CASE - - WHEN t2.enterprise_address REGEXP '^(深圳市)?(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)' - THEN REGEXP_SUBSTR(SUBSTRING(t2.enterprise_address, LOCATE( + select t1.enterprisenumber ,t1.enterprisename ,t1.xzzfcs ,t1.district ,t1.street from( + select + t1.enterprise_number as enterpriseNumber, + t1.enterprise_name as enterpriseName, + count(t1.enterprise_number) as xzzfcs, CASE WHEN t2.enterprise_address REGEXP '^(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)' THEN REGEXP_SUBSTR(t2.enterprise_address, '^(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)') - ELSE REPLACE(REGEXP_SUBSTR(t2.enterprise_address, '深圳市(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)'), '深圳市', '') - END, t2.enterprise_address) + CHAR_LENGTH( + WHEN t2.enterprise_address REGEXP '^深圳市(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)' + THEN REPLACE(REGEXP_SUBSTR(t2.enterprise_address,'深圳市(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)'),'深圳市', '') + WHEN t2.enterprise_address REGEXP '市[^市区县]+(区|县)' + THEN REGEXP_SUBSTR(t2.enterprise_address, '[^市区县]+(区|县)') + ELSE NULL + END AS district, + CASE - WHEN t2.enterprise_address REGEXP '^(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)' - THEN REGEXP_SUBSTR(t2.enterprise_address, '^(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)') - ELSE REPLACE(REGEXP_SUBSTR(t2.enterprise_address,'深圳市(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)'), '深圳市', '') - END)),'[0-9一-龥]+街道') - - WHEN t2.enterprise_address REGEXP '市.+?(区|县)' - THEN REGEXP_SUBSTR(SUBSTRING(t2.enterprise_address,LOCATE(REGEXP_REPLACE(t2.enterprise_address, '^.*?市(.+?(区|县)).*$', '$1'),t2.enterprise_address - ) + CHAR_LENGTH(REGEXP_REPLACE(t2.enterprise_address, '^.*?市(.+?(区|县)).*$', '$1'))),'[0-9一-龥]+(街道|镇)') - ELSE NULL - END AS street - from - enforcement_registration t1 - left join enterprise_information t2 - on t1.enterprise_number=t2.enterprise_number + + WHEN t2.enterprise_address REGEXP '^(深圳市){0,1}(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)' + THEN REGEXP_SUBSTR(SUBSTRING(t2.enterprise_address, LOCATE( + CASE + WHEN t2.enterprise_address REGEXP '^(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)' + THEN REGEXP_SUBSTR(t2.enterprise_address, '^(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)') + ELSE REPLACE(REGEXP_SUBSTR(t2.enterprise_address, '深圳市(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)'), '深圳市', '') + END, t2.enterprise_address) + CHAR_LENGTH( + CASE + WHEN t2.enterprise_address REGEXP '^(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)' + THEN REGEXP_SUBSTR(t2.enterprise_address, '^(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)') + ELSE REPLACE(REGEXP_SUBSTR(t2.enterprise_address,'深圳市(福田区|罗湖区|南山区|宝安区|龙岗区|盐田区|龙华区|坪山区|光明区|大鹏新区|坪山新区|光明新区|龙华新区)'), '深圳市', '') + END)),'[0-9一-龥]+街道') + + WHEN t2.enterprise_address REGEXP '市[^市区县]+(区|县)' + THEN REGEXP_SUBSTR(SUBSTRING(t2.enterprise_address, LOCATE(REGEXP_SUBSTR(t2.enterprise_address,'[^市区县]+(区|县)'),t2.enterprise_address + ) + CHAR_LENGTH(REGEXP_SUBSTR(t2.enterprise_address,'[^市区县]+(区|县)'))),'[0-9一-龥]+(街道|镇)') + ELSE NULL + END AS street + from + enforcement_registration t1 + left join enterprise_information t2 + on t1.enterprise_number=t2.enterprise_number + + t1.is_delete =0 + and t1.is_submit =1 + and t1.enterprise_name is not null + and t1.enterprise_number is not null + + and DATE_FORMAT(t1.enforcement_time,'%Y-%m') = DATE_FORMAT(#{bo.enforcementTime},'%Y-%m') + + + group by + t1.enterprise_number, + t1.enterprise_name + having + xzzfcs >= 3 + order by xzzfcs desc,t1.enterprise_number desc) t1 - t1.is_delete =0 - and t1.is_submit =1 - and t1.enterprise_name is not null - and t1.enterprise_number is not null - - and DATE_FORMAT(t1.enforcement_time,'%Y-%m') = DATE_FORMAT(#{bo.enforcementTime},'%Y-%m') + + and t1.district=#{bo.district} and t1.enterprise_name like CONCAT('%', #{bo.enterpriseName}, '%') - - and t1.district=#{bo.district} - - group by - t1.enterprise_number, - t1.enterprise_name - having - xzzfcs >= 3 - order by xzzfcs desc,t1.enterprise_number desc