diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnterpriseLoginController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnterpriseLoginController.java index ef1b97c6..c642b0c1 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnterpriseLoginController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnterpriseLoginController.java @@ -8,13 +8,14 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.HashMap; import java.util.Map; /** @@ -27,17 +28,43 @@ import java.util.Map; @RequestMapping("/app-ent/enterprise/login") public class AppEnterpriseLoginController { - @Autowired - private IAppEnterpriseLoginService appEnterpriseLoginService; + private final IAppEnterpriseLoginService appEnterpriseLoginService; /** - * 企业端用户登录(深i企) + * 获取深i企鉴权所需的 accessKey / accessSecret + */ + @SaIgnore + @ApiResponse(description = "获取深i企 accessKey / accessSecret") + @GetMapping("/getSiqCode") + public R> getSiqCode() { + String accessKey = "6374106c5eb449a4ad6c2430f30796e6"; + String accessSecret = "434fec85aa5846e88bbeb8fac6cf6d7f"; + Map result = new HashMap<>(); + result.put("accessKey", accessKey); + result.put("accessSecret", accessSecret); + return R.ok("获取成功", result); + } + + /** + * 企业端用户登录(深i企) */ @SaIgnore @ApiResponse(description = "企业端-用户登录(深i企)") @PostMapping("/siqLogin") - public R> siqLogin(@RequestBody AppEnterpriseLoginBo bo){ + public R> siqLogin(@RequestBody AppEnterpriseLoginBo bo) { + System.out.println("接收到登录请求"); Map result = appEnterpriseLoginService.siqLogin(bo); return R.ok("登录成功", result); } + + /** + * 深i企模拟登录(开发/联调) + */ + @SaIgnore + @ApiResponse(description = "企业端-深i企模拟登录") + @PostMapping("/siqLoginMock") + public R> siqLoginMock(@RequestBody AppEnterpriseLoginBo bo) { + Map result = appEnterpriseLoginService.siqLoginMock(bo); + return R.ok("登录成功", result); + } } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardCheckRegisterAreaController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardCheckRegisterAreaController.java index 68d0cbec..adddc18c 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardCheckRegisterAreaController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/DashboardCheckRegisterAreaController.java @@ -2,8 +2,10 @@ package com.zdxt.enforcementcode.controller.web.supervision; import com.zdxt.enforcementcode.domain.bo.DashboardCheckRegisterAreaBo; import com.zdxt.enforcementcode.domain.bo.DashboardCheckRegisterAreaQueryBo; +import com.zdxt.enforcementcode.domain.bo.QueryDashboardOverviewBo; import com.zdxt.enforcementcode.domain.vo.DashboardCheckRegisterAreaInfoVo; import com.zdxt.enforcementcode.domain.vo.DashboardCheckRegisterAreaVo; +import com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityVo; import com.zdxt.enforcementcode.service.IDashboardCheckRegisterAreaService; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; @@ -36,8 +38,7 @@ public class DashboardCheckRegisterAreaController extends BaseController { public R getCheckRegisterArea(DashboardCheckRegisterAreaQueryBo bo) { //1、默认查询上个月的数据 //2、totalCheckRegisterAreaInfo 查询条件: 年+月+城市code+level = 1 - //3、checkRegisterAreaList 查询条件: 年+月+城市code+level = 2 + //3、checkRegisterAreaList 查询条件: 年+月+城市code+level = 3 return dashboardCheckRegisterAreaService.getCheckRegisterArea(bo); } - } 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 69060dc2..d65dcb50 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,14 +1,13 @@ 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.bo.DashboardCompanyHighFreqCheckBo; +import com.zdxt.enforcementcode.domain.bean.DashboardCheckRegisterArea; +import com.zdxt.enforcementcode.domain.bo.*; 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 com.zdxt.enforcementcode.service.IDashboardOverviewService; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.mybatis.core.page.PageQuery; @@ -38,6 +37,9 @@ public class DashboardCheckRegisterHighController extends BaseController { private final IDashboardCompanyHighFreqCheckService dashboardCompanyHighFreqCheckService; private final IDashboardCheckRegisterAreaService dashboardCheckRegisterAreaService; + + private final IDashboardOverviewService dashboardOverviewService; + /** * 大屏-高频检查预警-各领域高频检查次数排行 * 1、高频检查次数排行: pageQuery.orderByColumn = "sqjczs" , pageQuery.isAsc = "desc" @@ -69,9 +71,9 @@ public class DashboardCheckRegisterHighController extends BaseController { * 前端不用默认不用传参数 */ @GetMapping("/getHighInfoByArea") - public R getHighInfoByArea(DashboardCheckRegisterAreaQueryBo bo) { - return dashboardCheckRegisterAreaService.getCheckRegisterArea(bo); + public R> getHighInfoByArea(DashboardCheckHighAreaQueryBo bo) { + List list = dashboardOverviewService.getHighInfoByArea(bo); + return R.ok(list); } - } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/StatisticalPanelController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/StatisticalPanelController.java index 3f7126f7..5898fa2a 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/StatisticalPanelController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/StatisticalPanelController.java @@ -285,15 +285,15 @@ public class StatisticalPanelController { Map resMap = new HashMap(); SysDeptBo deptParams = new SysDeptBo(); deptParams.setZone(2); - deptParams.setDeptName(LoginHelper.getDeptName()); - deptParams.setDeptId(LoginHelper.getDeptId()); + // deptId 入参传区名称,如「光明区」 + deptParams.setDeptName(params.getDeptId()); List depts = sysDeptService.selectDepts(deptParams); if (depts == null || depts.isEmpty()) { return R.fail("未找到相关部门信息"); } - params.setDeptId(depts.get(0).getDeptId()); + params.setDeptId(String.valueOf(depts.get(0).getDeptId())); resMap.put("area", deptParams.getDeptName()); diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCheckHighAreaQueryBo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCheckHighAreaQueryBo.java new file mode 100644 index 00000000..98470ae9 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCheckHighAreaQueryBo.java @@ -0,0 +1,33 @@ +package com.zdxt.enforcementcode.domain.bo; + +import com.zdxt.enforcementcode.domain.bean.DashboardCheckRegisterArea; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +/** + * 大屏-高频检查 + * + * @author Lion Li + * @date 2026-06-02 + */ +@Data + +public class DashboardCheckHighAreaQueryBo extends BaseEntity { + + /** + * 年份 + */ + private Long year; + + /** + * 月份 1-12 + */ + private Long month; + + /** + * 级别:1-市 2-区 3-街道 + */ + private Integer level; +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCheckRegisterAreaQueryBo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCheckRegisterAreaQueryBo.java index 21e44558..b779713c 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCheckRegisterAreaQueryBo.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/DashboardCheckRegisterAreaQueryBo.java @@ -37,7 +37,7 @@ public class DashboardCheckRegisterAreaQueryBo extends BaseEntity { private String cityCode; /** - * 级别:1-市 2-区 3-街道 + * 级别:1-市 2-市直属,3-区 4-街道 */ private Integer level; } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardCheckHighAreaInfoVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardCheckHighAreaInfoVo.java new file mode 100644 index 00000000..229cc672 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/DashboardCheckHighAreaInfoVo.java @@ -0,0 +1,49 @@ +package com.zdxt.enforcementcode.domain.vo; + + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import com.zdxt.enforcementcode.domain.bean.DashboardCheckRegisterArea; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + + +/** + * 大屏-高频检查区域 + * + * @author Lion Li + * @date 2026-06-02 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = DashboardCheckRegisterArea.class) +public class DashboardCheckHighAreaInfoVo implements Serializable { + + + /** + * 区县编码 + */ + @ExcelProperty(value = "区县编码") + private String areaCode; + + /** + * 区县名称 + */ + @ExcelProperty(value = "区县名称") + private String areaName; + + + /** + * 高频检查次数 + */ + private Long hpjccs; + + /** + * 高频检查登记级别:级别1-4 + */ + private Integer gplevel; + +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardCheckRegisterDomainMapper.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardCheckRegisterDomainMapper.java index 542d111b..aa7a64a4 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardCheckRegisterDomainMapper.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/DashboardCheckRegisterDomainMapper.java @@ -27,7 +27,7 @@ public interface DashboardCheckRegisterDomainMapper extends BaseMapperPlus queryRegisterDomainList(Long year, Long month); + List queryRegisterDomainList(Long year, Long month,String type); /** * 查询高频预警领域统计-按月 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 469da062..54b8316e 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 @@ -5,6 +5,7 @@ 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.DashboardCheckHighAreaInfoVo; import com.zdxt.enforcementcode.domain.vo.DashboardOverviewVo; import com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityVo; import com.zdxt.enforcementcode.domain.vo.LawEnforcementIntensityCountVo; @@ -14,7 +15,7 @@ import java.util.List; public interface DashboardOverviewMapper extends BaseMapperPlus { - LawEnforcementIntensityVo queryLawEnforcementIntensity(LawEnforcementIntensityQueryBo queryBo); + List queryLawEnforcementIntensity(LawEnforcementIntensityQueryBo queryBo); List queryCount(QueryDashboardOverviewCountBo bo); @@ -22,4 +23,24 @@ public interface DashboardOverviewMapper extends BaseMapperPlus queryHighInfoByArea(Long year, Long month, Integer level); + } 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 c9002dff..7445a242 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 @@ -100,4 +100,13 @@ public interface IDashboardOverviewService { * @return 生成结果信息 */ String generateData(GenerateDataBo bo); + + /** + * 高频检查预警-高频检查企业&高频检查区域统计 + * 默认查询上个月数据 + * + * @param bo 查询条件 + * @return 高频检查区域统计列表 + */ + List getHighInfoByArea(com.zdxt.enforcementcode.domain.bo.DashboardCheckHighAreaQueryBo bo); } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/IAppEnterpriseLoginService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/IAppEnterpriseLoginService.java index 6fb1dd1c..cbfec316 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/IAppEnterpriseLoginService.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/IAppEnterpriseLoginService.java @@ -18,4 +18,11 @@ public interface IAppEnterpriseLoginService { * @return 登录结果,包含token和用户信息 */ Map siqLogin(AppEnterpriseLoginBo bo); + + /** + * 深I企模拟登录(开发/联调) + * @param bo 登录参数 + * @return 登录结果,包含token和用户信息 + */ + Map siqLoginMock(AppEnterpriseLoginBo bo); } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java index d15354f1..ba31aaed 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java @@ -30,10 +30,10 @@ import org.dromara.common.core.enums.UserType; import org.dromara.common.core.exception.base.BaseException; import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.mapper.SysUserPostMapper; import org.dromara.system.mapper.SysUserRoleMapper; +import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -46,6 +46,7 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.UUID; +import java.util.concurrent.TimeUnit; /** @@ -107,34 +108,50 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService @Autowired RuoYiConfig ruoYiConfig; - @Value("${siq.mock.enabled:false}") - private boolean mockEnabled; - /** - * 深i企用户登录并自动注册(带分布式锁防重) + * 深i企用户登录并自动注册(带分布式锁防重,流程与一期 thirdLogin/siqLogin 一致) * * @param bo 登录参数 * @return 登录结果,包含token和用户信息 */ @Override public Map siqLogin(AppEnterpriseLoginBo bo) { - JSONObject userInfo; + log.info("---> 深i企登录用户 code:{}", bo.getCode()); + JSONObject userInfo = siqLoginInfo(bo); + log.info("---> 深i企登录用户信息:{}", userInfo); + log.info("---> 后面为本地登录的验证了!!! <---"); + return doSiqLoginWithLock(userInfo); + } - if (mockEnabled) { - log.info("使用模拟数据进行深i企登录测试"); - userInfo = getMockSiqUserInfo(bo.getCode()); - } else { - userInfo = siqLoginInfo(bo); + /** + * 深i企模拟登录(开发/联调) + */ + @Override + public Map siqLoginMock(AppEnterpriseLoginBo bo) { + log.info("---> 深i企模拟登录 userId:{}", bo.getUserId()); + JSONObject userInfo = getMockSiqUserInfo(bo.getCode()); + if (StringUtils.isNotEmpty(bo.getUserId())) { + userInfo.put("userId", bo.getUserId()); } + return doSiqLoginWithLock(userInfo); + } - String siqUserId = userInfo.getString("userId"); - - String lockKey = "siq_login_lock:" + siqUserId; + /** + * 加锁后完成用户注册、企业关联并签发 token + */ + private Map doSiqLoginWithLock(JSONObject userInfo) { + String lockKey = resolveLoginLockKey(userInfo); + RLock lock = redissonClient.getLock("siq_login_lock:" + lockKey); + boolean locked = false; try { - log.info("深i企登录获取分布式锁成功: lockKey={}, userId={}", lockKey, siqUserId); + locked = lock.tryLock(0, 1, TimeUnit.SECONDS); + if (!locked) { + log.info("用户正在登录中,用户信息:{}", userInfo.toJSONString()); + throw new BaseException("用户正在登录中,请稍后再试"); + } + log.info("---> 登入锁 key: {}", lockKey); EnterpriseUser newUser = saveOrUpdateEnterpriseUser(userInfo); - EnterpriseInformation enterpriseInformation = addSiqUserCompany(userInfo, newUser); if (newUser != null && enterpriseInformation != null) { @@ -142,26 +159,49 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService } String token = generateToken(newUser, enterpriseInformation); - - Map result = new HashMap<>(); - result.put("token", token); - result.put("userId", newUser.getUserId()); - result.put("userName", newUser.getUserName()); - result.put("loginName", newUser.getLoginName()); - result.put("phonenumber", newUser.getPhonenumber() != null ? newUser.getPhonenumber() : ""); - result.put("enterpriseId", enterpriseInformation.getId()); - result.put("enterpriseName", enterpriseInformation.getEnterpriseName()); - result.put("enterpriseNumber", enterpriseInformation.getEnterpriseNumber()); - result.put("platformType", PlatformTypeEnums.ENTERPRISE.getKey()); - - return result; - + return buildLoginResult(newUser, enterpriseInformation, token); + } catch (BaseException e) { + throw e; + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new BaseException("登录处理被中断"); } catch (Exception e) { log.error("深i企登录处理异常: lockKey={}", lockKey, e); throw new BaseException("登录处理失败:" + e.getMessage()); + } finally { + if (locked && lock.isHeldByCurrentThread()) { + lock.unlock(); + } } } + /** + * 与一期一致:优先使用 account 作为锁键,否则使用解密后的手机号 + */ + private String resolveLoginLockKey(JSONObject userInfo) { + String account = userInfo.getString("account"); + if (StringUtils.isNotEmpty(account)) { + return account; + } + return IdCardCryptoUtil.symmetricDecryptIdCard(secretKey, userInfo.getString("phone")); + } + + private Map buildLoginResult(EnterpriseUser newUser, + EnterpriseInformation enterpriseInformation, + String token) { + Map result = new HashMap<>(); + result.put("token", token); + result.put("userId", newUser.getUserId()); + result.put("userName", newUser.getUserName()); + result.put("loginName", newUser.getLoginName()); + result.put("phonenumber", newUser.getPhonenumber() != null ? newUser.getPhonenumber() : ""); + result.put("enterpriseId", enterpriseInformation.getId()); + result.put("enterpriseName", enterpriseInformation.getEnterpriseName()); + result.put("enterpriseNumber", enterpriseInformation.getEnterpriseNumber()); + result.put("platformType", PlatformTypeEnums.ENTERPRISE.getKey()); + return result; + } + /** * 保存或更新企业用户信息 *

@@ -250,16 +290,18 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService public JSONObject siqLoginInfo(AppEnterpriseLoginBo bo) { try { Map params = new HashMap<>(); - + log.info("调用深i企登录接口,参数: {}", bo); String accessKeySign = IdCardCryptoUtil.symmetricEncryptIdCard(secretKey, bo.getCode()); params.put("accessKeySign", accessKeySign); params.put("appCode", code); + log.info("调用深i企登录接口,参数加密后: {}", params); String data = HttpUtil.httpSendPost( siqUrl + ApiConstants.API_SIQUSERLOGIN, JSONObject.toJSONString(params), new HashMap<>() ); + log.info("调用深i企登录接口响应: {}", data); JSONObject jsonObject = JSONObject.parseObject(data); JSONObject userInfo = jsonObject.getJSONObject("data"); @@ -269,7 +311,7 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService throw new BaseException("深i企接口返回数据异常"); } - log.debug("深i企登录返回用户信息: userId={}", userInfo.getString("userId")); + log.info("解析深i企登录接口响应成功,用户信息: {}", userInfo); return userInfo; } catch (BaseException e) { diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCheckRegisterAreaServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCheckRegisterAreaServiceImpl.java index 80d1fdc6..ee1f394d 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCheckRegisterAreaServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCheckRegisterAreaServiceImpl.java @@ -1,6 +1,7 @@ package com.zdxt.enforcementcode.service.impl; import com.zdxt.enforcementcode.domain.bean.DashboardCheckRegisterArea; +import com.zdxt.enforcementcode.mapper.DashboardOverviewMapper; import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -38,6 +39,8 @@ public class DashboardCheckRegisterAreaServiceImpl implements IDashboardCheckReg private final DashboardCheckRegisterAreaMapper baseMapper; + private final DashboardOverviewMapper dashboardOverviewMapper; + /** * 查询大屏-检查登记-区域统计 * diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCheckRegisterDomainServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCheckRegisterDomainServiceImpl.java index c0f33c90..cddc4f1e 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCheckRegisterDomainServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/DashboardCheckRegisterDomainServiceImpl.java @@ -1,5 +1,6 @@ package com.zdxt.enforcementcode.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.zdxt.enforcementcode.domain.bean.DashboardCheckRegisterDomain; import com.zdxt.enforcementcode.domain.bo.DashboardCheckRegisterDomainQueryBo; import com.zdxt.enforcementcode.domain.bo.DashboardCheckRegisterHighQueryBo; @@ -164,15 +165,18 @@ public class DashboardCheckRegisterDomainServiceImpl implements IDashboardCheckR month = (long) lastMonth.getMonthValue(); } + // 组装返回结果 + DashboardCheckRegisterDomainInfoVo infoVo = new DashboardCheckRegisterDomainInfoVo(); // 查询总体概览数据 - DashboardCheckRegisterDomainVo totalRegisterDomain = baseMapper.queryTotalRegisterDomain(year, month); + List totalRegisterDomainList = baseMapper.queryRegisterDomainList(year, month,"2"); + if(CollectionUtil.isNotEmpty(totalRegisterDomainList)){ + DashboardCheckRegisterDomainVo totalRegisterDomain = + baseMapper.queryRegisterDomainList(year, month,"2").get(0); + infoVo.setTotalRegisterDomain(totalRegisterDomain); + } // 查询领域统计列表 - List registerDomainList = baseMapper.queryRegisterDomainList(year, month); - - // 组装返回结果 - DashboardCheckRegisterDomainInfoVo infoVo = new DashboardCheckRegisterDomainInfoVo(); - infoVo.setTotalRegisterDomain(totalRegisterDomain); + List registerDomainList = baseMapper.queryRegisterDomainList(year, month,"1"); infoVo.setRegisterDomainList(registerDomainList); return R.ok(infoVo); 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 593e51ac..4dae8f9e 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 @@ -4,9 +4,7 @@ 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.*; -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.domain.vo.*; import com.zdxt.enforcementcode.service.IDashboardAreaInfoService; import org.dromara.common.core.utils.MapstructUtils; @@ -23,7 +21,6 @@ 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.vo.DashboardOverviewVo; import com.zdxt.enforcementcode.mapper.DashboardOverviewMapper; import com.zdxt.enforcementcode.service.IDashboardOverviewService; import org.springframework.transaction.annotation.Transactional; @@ -73,48 +70,20 @@ public class DashboardOverviewServiceImpl implements IDashboardOverviewService { // 类型1:大屏总览数据 if (bo.getType() == 1) { -// // 先删除该年月的旧数据 -// baseMapper.deleteByYearMonth(bo.getYear().longValue(), bo.getMonth().longValue()); -// DashboardAreaInfoBo queryBo = new DashboardAreaInfoBo(); -// queryBo.setLevel(2L);//查询所有的区 -// List 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 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); -// } -// } + // 先删除该年月的旧数据 + baseMapper.deleteByYearMonth(bo.getYear().longValue(), bo.getMonth().longValue()); - } + // 通过SQL批量生成区级大屏总览数据(level=2) + baseMapper.generateOverviewData(bo); + + // 汇总生成市级大屏总览数据(level=1) + baseMapper.generateCityOverviewData(bo); - return "大屏总览数据生成成功,年份:" + bo.getYear() + ",月份:" + bo.getMonth(); + // 计算并更新同比、环比数据 + baseMapper.updateYoyMom(bo); } + return "大屏总览数据生成成功,年份:" + bo.getYear() + ",月份:" + bo.getMonth(); + } /** * 查询大屏总览 @@ -252,7 +221,11 @@ public class DashboardOverviewServiceImpl implements IDashboardOverviewService { } // 调用 Mapper 查询 - return baseMapper.queryLawEnforcementIntensity(queryBo); + List list = baseMapper.queryLawEnforcementIntensity(queryBo); + if (list == null || list.isEmpty()) { + return null; + } + return baseMapper.queryLawEnforcementIntensity(queryBo).get(0); } /** @@ -412,5 +385,23 @@ public class DashboardOverviewServiceImpl implements IDashboardOverviewService { return baseMapper.deleteByIds(ids) > 0; } + /** + * 高频检查预警-高频检查企业&高频检查区域统计 + */ + @Override + public List getHighInfoByArea(DashboardCheckHighAreaQueryBo bo) { + if (bo.getYear() == null || bo.getMonth() == null) { + LocalDate lastMonth = LocalDate.now().minusMonths(1); + bo.setYear((long) lastMonth.getYear()); + bo.setMonth((long) lastMonth.getMonthValue()); + } + if (bo.getLevel() == null) { + bo.setLevel(2); + } + + List list = baseMapper.queryHighInfoByArea( + bo.getYear(), bo.getMonth(), bo.getLevel()); + return list; + } } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardCheckRegisterAreaMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardCheckRegisterAreaMapper.xml index 3c2d416c..ebcc480a 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardCheckRegisterAreaMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardCheckRegisterAreaMapper.xml @@ -84,7 +84,7 @@ AND city_code = #{cityCode} - AND level = 2 + AND level = 3 ORDER BY area_name diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardCheckRegisterDomainMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardCheckRegisterDomainMapper.xml index f8abf7cb..602931ab 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardCheckRegisterDomainMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardCheckRegisterDomainMapper.xml @@ -19,9 +19,9 @@ SUM(xzcfzs) AS xzcfzs, SUM(xzcftb) AS xzcftb, SUM(xzcfhb) AS xzcfhb, - SUM(xzzqzs) AS xzzqzs, - SUM(xzzqtb) AS xzzqtb, - SUM(xzzqhb) AS xzzqhb, + SUM(xzqzzs) AS xzqzzs, + SUM(xzqztb) AS xzqztb, + SUM(xzqzhb) AS xzqzhb, SUM(qtzfzs) AS qtzfzs, SUM(qtzftb) AS qtzftb, SUM(qtzfhb) AS qtzfhb @@ -50,9 +50,9 @@ xzcfzs, xzcftb, xzcfhb, - xzzqzs, - xzzqtb, - xzzqhb, + xzqzzs, + xzqztb, + xzqzhb, qtzfzs, qtzftb, qtzfhb, @@ -63,6 +63,7 @@ WHERE is_delete = '0' AND year = #{year} AND month = #{month} + AND type = #{type} ORDER BY lymc @@ -82,9 +83,9 @@ xzcfzs, xzcftb, xzcfhb, - xzzqzs, - xzzqtb, - xzzqhb, + xzqzzs, + xzqztb, + xzqzhb, qtzfzs, qtzftb, qtzfhb @@ -111,9 +112,9 @@ SUM(xzcfzs) AS xzcfzs, SUM(xzcftb) AS xzcftb, SUM(xzcfhb) AS xzcfhb, - SUM(xzzqzs) AS xzzqzs, - SUM(xzzqtb) AS xzzqtb, - SUM(xzzqhb) AS xzzqhb, + SUM(xzqzzs) AS xzqzzs, + SUM(xzqztb) AS xzqztb, + SUM(xzqzhb) AS xzqzhb, SUM(qtzfzs) AS qtzfzs, SUM(qtzftb) AS qtzftb, SUM(qtzfhb) AS qtzfhb @@ -143,9 +144,9 @@ SUM(xzcfzs) AS xzcfzs, SUM(xzcftb) AS xzcftb, SUM(xzcfhb) AS xzcfhb, - SUM(xzzqzs) AS xzzqzs, - SUM(xzzqtb) AS xzzqtb, - SUM(xzzqhb) AS xzzqhb, + SUM(xzqzzs) AS xzqzzs, + SUM(xzqztb) AS xzqztb, + SUM(xzqzhb) AS xzqzhb, SUM(qtzfzs) AS qtzfzs, SUM(qtzftb) AS qtzftb, SUM(qtzfhb) AS qtzfhb 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 0008f886..aeace134 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 @@ -6,11 +6,11 @@ + SELECT + district_code AS areaCode, + district_name AS areaName, + COALESCE(gpjcyj, 0) AS hpjccs, + gplevel + FROM dashboard_overview + WHERE is_delete = '0' + AND year = #{year} + AND month = #{month} + AND level = #{level} + + diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardTrendStatMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardTrendStatMapper.xml index e8c66f63..13e27b62 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardTrendStatMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/DashboardTrendStatMapper.xml @@ -19,7 +19,7 @@ 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 + FROM dashboard_trend_stat a left join dashboard_area_info b on a.district_code = b.`code` and b.`level` = 2 WHERE a.is_delete = '0' AND ( @@ -44,6 +44,7 @@ a.quarter ORDER BY + b.sort , a.district_name, a.year, a.quarter @@ -54,7 +55,7 @@ diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/StatisticalPanelMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/StatisticalPanelMapper.xml index afb9e271..4a723cfa 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/StatisticalPanelMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/StatisticalPanelMapper.xml @@ -930,7 +930,7 @@ and r.is_complaint is not null and r.check_category is not null and r.bureau_dept_id is not null - and r.bureau_dept_id in (select dept_id from sys_dept where zone = #{params.zone}) --> + and r.bureau_dept_id in (select dept_id from sys_dept where zone = #{params.zone}) and r.bureau_dept_id in (select sd.dept_id from sys_dept sd where sd.area_node = #{deptId} or sd.dept_id = #{deptId}) diff --git a/zdxt-web-client/zdxt-admin-plus-ui/public/enforcement-code-v1/statistical/home.html b/zdxt-web-client/zdxt-admin-plus-ui/public/enforcement-code-v1/statistical/home.html index ac9d0046..a4fa0e63 100644 --- a/zdxt-web-client/zdxt-admin-plus-ui/public/enforcement-code-v1/statistical/home.html +++ b/zdxt-web-client/zdxt-admin-plus-ui/public/enforcement-code-v1/statistical/home.html @@ -1,1594 +1,12 @@ - - + + - - -首页--执法监督码执法监督 - - - - - - - - - - - - + + + 跳转中... + - -

-
-
-

行政执法

-
-
- -
00.0%
-
-
- - - 0.0% - -
-
- - - 0.0% - -
-
-
-
- -
00.0%
-
-
- - - 0.0% - -
-
- - - 0.0% - -
-
-
-
- - -
0
-
-
- - - 0.0% - -
-
- - - 0.0% - -
-
-
-
- -
0
-
-
0.0%
-
-
-
-
-
-
-
-
-

非行政执法

-
-
- - 0
-
- - 0
-
- - 0
-
- - 0
-
- - 0
-
- - 0
-
- - 0
-
- - 0
-
- - 0
-
-
-
-
-
-
-
深圳市 - - - -
-
- - -
-
-
- -
-
-
0
-
(市直:-各区:0)
-
-
-
-
- -
-
-
0
-
(市直:-各区:0)
-
-
-
- -
-
-
-

涉企执法趋势

- -
- - -
- -
-
-
-
- - - - +

页面已迁移为 Vue 组件,正在跳转...

diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/layout/index.vue b/zdxt-web-client/zdxt-admin-plus-ui/src/layout/index.vue index df5be93b..6b11de6c 100644 --- a/zdxt-web-client/zdxt-admin-plus-ui/src/layout/index.vue +++ b/zdxt-web-client/zdxt-admin-plus-ui/src/layout/index.vue @@ -8,7 +8,8 @@
-