From 3a72286dea57fe73658db90bb421c1e13b0e94fe Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Tue, 25 Mar 2025 17:42:16 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=201=E3=80=81=E4=BF=AE=E6=94=B9=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E7=94=A8=E6=88=B7=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98=202?= =?UTF-8?q?=E3=80=81=E5=AF=B9=E6=8E=A5=E6=B5=81=E7=A8=8B=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E5=92=8C=E8=81=8C=E8=83=BD=E5=B2=97=E4=BD=8D?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E6=A0=87=E7=AD=BE=E5=8A=9F=E8=83=BD=E3=80=82?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E5=90=8E=E7=AB=AF=E7=9A=84=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E3=80=82=203=E3=80=81=E4=BC=98=E5=8C=96=E9=A2=84=E8=AD=A6?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/system/api/RemoteDeptService.java | 2 + .../api/domain/vo/RemoteAiLabelPostVo.java | 2 +- .../BusinessAlertStatisticsController.java | 6 + .../business/domain/BusinessAlert.java | 116 +++++++----------- .../business/domain/bo/BusinessAlertBo.java | 5 + .../business/mapper/BusinessAlertMapper.java | 16 ++- .../IBusinessAlertStatisticsService.java | 3 + .../impl/BusinessAlertServiceImpl.java | 1 + .../BusinessAlertStatisticsServiceImpl.java | 41 ++++++- .../mapper/business/BusinessAlertMapper.xml | 6 + .../system/SysDepartBoundaryController.java | 10 +- .../controller/system/SysPostController.java | 9 +- .../controller/system/SysUserController.java | 10 ++ .../dromara/system/domain/AiLabelPost.java | 2 +- .../system/domain/SysDepartBoundary.java | 3 + .../system/domain/bo/AiLabelPostBo.java | 2 +- .../system/domain/bo/SysDepartBoundaryBo.java | 33 +++++ .../dromara/system/domain/vo/SysPostVo.java | 41 ++++++- .../system/dubbo/RemoteDeptServiceImpl.java | 6 + .../dubbo/RemoteLabelPostServicelmpl.java | 2 +- .../mapper/SysDepartBoundaryMapper.java | 3 +- .../system/service/IAiLabelPostService.java | 3 + .../service/ISysDepartBoundaryService.java | 4 +- .../system/service/ISysDeptService.java | 3 + .../system/service/ISysUserService.java | 2 + .../service/impl/AiLablePostServiceImpl.java | 20 ++- .../impl/SysDepartBoundaryServiceImpl.java | 17 ++- .../service/impl/SysDeptServiceImpl.java | 11 ++ .../service/impl/SysPostServiceImpl.java | 21 ++++ .../service/impl/SysUserServiceImpl.java | 10 ++ .../mapper/system/SysDepartBoundaryMapper.xml | 2 +- 31 files changed, 307 insertions(+), 105 deletions(-) create mode 100644 dk-modules/system/src/main/java/org/dromara/system/domain/bo/SysDepartBoundaryBo.java diff --git a/dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java b/dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java index bc2f96a..d40fc45 100644 --- a/dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java +++ b/dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java @@ -27,4 +27,6 @@ public interface RemoteDeptService { List> getNamePathList(); List selectListByParentId(String deptId); + + RemoteDeptVo getByParentId(String deptId); } diff --git a/dk-api/api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteAiLabelPostVo.java b/dk-api/api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteAiLabelPostVo.java index 90d5c1c..b7a194f 100644 --- a/dk-api/api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteAiLabelPostVo.java +++ b/dk-api/api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteAiLabelPostVo.java @@ -27,7 +27,7 @@ public class RemoteAiLabelPostVo implements Serializable { * id */ // @ExcelProperty(value = "id") - private Long lableId; + private Long labelId; /** * 标签名-英 diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java index 70fa519..458d8e8 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java @@ -26,6 +26,12 @@ public class BusinessAlertStatisticsController extends BaseController { private final IBusinessAlertStatisticsService statisticsService; + @Operation(summary="获取预警处置率", description="获取预警处置率") + @GetMapping(value = "/rate") + public R alertRate(BusinessAlertBo businessAlertBo) { + return R.ok(statisticsService.alertRate(businessAlertBo)); + } + @Operation(summary="panel看板数据", description="panel看板数据") @GetMapping(value = "/panel/count") public R> countPanelAlert(BusinessAlertBo businessAlertBo) { diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java index 33a382f..9a70c95 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java @@ -20,7 +20,7 @@ import java.util.List; */ @Data @EqualsAndHashCode(callSuper = true) -@TableName(value = "business_alert",autoResultMap = true) +@TableName(value = "business_alert", autoResultMap = true) public class BusinessAlert extends BaseEntity { @Serial @@ -32,24 +32,18 @@ public class BusinessAlert extends BaseEntity { @TableId(type = IdType.ASSIGN_ID) private String id; - - /** - * 租户编号 - */ - private String tenantId; - /** - * 任务轮id + * job任务id */ - private String wheelId; + private String jobId; /** - * 媒体id + * 预警名称 */ - private String taskId; + private String jobName; /** - * 图片id + * 图片id 对应的media_file 的fileId */ private String taskImageId; @@ -58,13 +52,16 @@ public class BusinessAlert extends BaseEntity { */ private String reason; + /** + * 是否指派 + */ + private Boolean assign; + /** * 图片文件 */ private String images; - - /** * 纬度 */ @@ -75,51 +72,42 @@ public class BusinessAlert extends BaseEntity { */ private Long lng; - /** - * 标签名-英 - */ - - private String labelEn; - /** * 标签名-中 */ private String labelCn; - /** - * 预警类型 + * 标签名-英 */ - private String alertType; - + private String labelEn; /** * 任务内容 */ private String taskContent; - /** - * 完成时间 - */ - private Date completeDate; - - /** * 删除 0 正常 1已删除 */ - @TableLogic - private Long delFlag; + private Integer delFlag; /** * 模板图片 */ private String mateSourceImgUrl; + /** * 放大模板违建区域图片 */ private String maxMateSourceImgUrl; + /** + * 预警类型 + */ + private String alertType; + /** * 放大违建区域图片 */ @@ -146,43 +134,34 @@ public class BusinessAlert extends BaseEntity { private String handleType; /** - * 是否违建 0:否,1:是 - */ - private Boolean isIllegal; - - /** - * 部门id + * 指派人员 */ - private String deptId; + private String assignUserId; /** - * 部门名称 + * 指派时间 */ - private String deptName; + private Date assignDate; /** - * 预警名称 + * 完成时间 */ - private String jobName; + private Date completeDate; /** - * 指派人员 + * 是否违建 0:否,1:是 */ - private String assignUserId; - + private Boolean isIllegal; /** - * 指派人员名称 + * 部门id */ - @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "assignUserId") - @TableField(exist = false) - private String assignUserName; - + private String deptId; /** - * 指派时间 + * 部门名称 */ - private Date assignDate; + private String deptName; /** * 处理时间 @@ -194,11 +173,6 @@ public class BusinessAlert extends BaseEntity { */ private String taskHandle; - /** - * 平台类型 - */ - private String platformType; - /** * 像素坐标 */ @@ -207,12 +181,7 @@ public class BusinessAlert extends BaseEntity { /** * 当前位置预警数量 */ - private Long handleNum; - - /** - * 国土所备注 - */ - private String territoryRemark; + private Integer handleNum; /** * 地类信息数据 @@ -220,25 +189,22 @@ public class BusinessAlert extends BaseEntity { private String landCategories; /** - * 相关文件 + * 忽略原因 */ - private String territoryUrl; + private String ignoringCause; /** - * 图片 + * 来源:0:平台 1:小程序 */ - private String territoryPath; - + private Integer handleSource; /** - * 忽略原因 + * 指派人员名称 */ - private String ignoringCause; + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "assignUserId") + @TableField(exist = false) + private String assignUserName; - /** - * 来源:0:平台 1:小程序 - */ - private Long handleSource; /** * 审批者 diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java index 00d3c61..6f48e94 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java @@ -244,4 +244,9 @@ public class BusinessAlertBo { */ private Date assignDate; + /** + * 标签集合 + */ + private List aiLabelEnList; + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java index 39b69b6..2b12d26 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java +++ b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java @@ -23,12 +23,14 @@ import java.util.Map; */ public interface BusinessAlertMapper extends BaseMapperPlus { - @DataPermission( - @DataColumn(key = "deptName", value = "ba.dept_id") - ) +// @DataPermission( +// @DataColumn(key = "deptName", value = "t.dept_id") +// ) Page pageBusinessAlert(Page page, QueryWrapper ew); - + // @DataPermission( +// @DataColumn(key = "deptName", value = "t.dept_id") +// ) Page pageAlertFinish(Page page, QueryWrapper ew); /** @@ -37,8 +39,14 @@ public interface BusinessAlertMapper extends BaseMapperPlus pageAlertTodo(Page page, QueryWrapper ew); + // @DataPermission( +// @DataColumn(key = "deptName", value = "t.dept_id") +// ) Page pageBusinessAlertCancel(Page build, QueryWrapper ew); @DataPermission( diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java index d95ba00..5652a6b 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java @@ -21,4 +21,7 @@ public interface IBusinessAlertStatisticsService { List countPanelAlert(BusinessAlertBo businessAlertBo); List> countAlertTypeCompare(BusinessAlertBo businessAlertBo); + + Double alertRate(BusinessAlertBo businessAlertBo); + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java index b22effd..7bb810f 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java @@ -177,6 +177,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { @Override public TableDataInfo pageBusinessAlertFinish(BusinessAlertBo bo, PageQuery pageQuery) { QueryWrapper wrapper = buildQueryWrapper(bo); + wrapper.notIn("t.flowStatus", BusinessStatusEnum.INVALID.getStatus()); wrapper.apply(" EXISTS(select * from dk_workflow.flow_his_task ht where ht.approver ='" + LoginHelper.getUserId() + "' and ht.instance_id = t.instanceId)"); diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java index 3189668..0df2d28 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java @@ -9,9 +9,13 @@ import org.dromara.business.mapper.BusinessAlertMapper; import org.dromara.business.service.IBusinessAlertStatisticsService; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.api.RemoteDeptService; +import org.dromara.system.api.RemoteLabelPostService; +import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo; import org.dromara.system.api.domain.vo.RemoteDeptVo; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -31,6 +35,9 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist @DubboReference RemoteDeptService remoteDeptService; + @DubboReference + RemoteLabelPostService remoteLabelPostService; + /** * 按照月份分类预警数量(包含权限) * @param businessAlertBo @@ -44,16 +51,18 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist businessAlertBo.setDeptIdList(departIdList); } + businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode())); List> mapList = baseMapper.listMonthAlert(businessAlertBo); return mapList.stream().map(data -> new StatObj(data.get("dateMonth") + "", data.get("total"))).collect(Collectors.toList()); } - @Override public ListcountDepartAlert(BusinessAlertBo businessAlertBo) { businessAlertBo.setDeptId(String.valueOf(LoginHelper.getDeptId())); + businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode())); + List> mapList = baseMapper.listDepartAlert(businessAlertBo); return mapList.stream().map(data -> new StatObj(data.get("deptName") + "", Long.parseLong(data.get("total") + ""),"deptId",data.get("deptId"))).collect(Collectors.toList()); @@ -61,6 +70,8 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist @Override public List countMonthAlertStatus(BusinessAlertBo businessAlertBo) { + businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode())); + List> mapList = baseMapper.listMonthAlertStatus(businessAlertBo); return mapList.stream() @@ -79,6 +90,8 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist @Override public List countDepartAlertStatus(BusinessAlertBo businessAlertBo) { + businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode())); + List> mapList = baseMapper.listDepartAlertStatus(businessAlertBo); return mapList.stream() @@ -102,12 +115,14 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist */ @Override public List> countAlertStatusCompare(BusinessAlertBo businessAlertBo) { + businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode())); businessAlertBo.setDateList(buildDateList(businessAlertBo)); return baseMapper.countAlertCompare(businessAlertBo); } @Override public List countPanelAlert(BusinessAlertBo businessAlertBo) { + businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode())); List> mapList = baseMapper.countPanelAlert(businessAlertBo); return mapList.stream() @@ -122,10 +137,30 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist @Override public List> countAlertTypeCompare(BusinessAlertBo businessAlertBo) { + businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode())); businessAlertBo.setDateList(buildDateList(businessAlertBo)); return baseMapper.countAlertTypeCompare(businessAlertBo); } + @Override + public Double alertRate(BusinessAlertBo businessAlertBo) { + List> mapList = baseMapper.countPanelAlert(businessAlertBo); + + double averageDisposalRate = mapList.stream() + .mapToDouble(map -> { + double total = Double.parseDouble(String.valueOf(map.get("total"))); + double finishCount = Double.parseDouble(String.valueOf(map.get("finishCount"))); + return (total == 0) ? 0.0 : finishCount / total; + }) + .average() // 计算平均值 + .orElse(0.0); + + // 四舍五入保留两位小数 + BigDecimal roundedAverage = BigDecimal.valueOf(averageDisposalRate) + .setScale(2, RoundingMode.HALF_UP); + return roundedAverage.doubleValue(); + } + private List buildDateList(BusinessAlertBo businessAlertBo) { List resultList = new ArrayList<>(); String currentYear = String.valueOf(Calendar.getInstance().get(Calendar.YEAR)); @@ -149,4 +184,8 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist } return resultList; } + + private List getAiLabel(String postCode) { + return remoteLabelPostService.selectLabelByList(postCode,LoginHelper.getDeptId()).stream().map(RemoteAiLabelPostVo::getLabelEn).collect(Collectors.toList()); + } } diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml index 2dee8e9..7d1a8cb 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml @@ -6,6 +6,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and ba.handle_type != 'verify' + + and ba.label_en in + + #{item} + + and DATE_FORMAT(ba.create_time,'%Y-%m') = DATE_FORMAT(#{param.createTime},'%Y-%m') diff --git a/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysDepartBoundaryController.java b/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysDepartBoundaryController.java index 1e0d558..3caef4e 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysDepartBoundaryController.java +++ b/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysDepartBoundaryController.java @@ -11,10 +11,14 @@ 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.dromara.system.domain.bo.SysDepartBoundaryBo; import org.dromara.system.service.ISysDepartBoundaryService; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.List; +import java.util.Map; + /** * 部门区域 */ @@ -35,9 +39,9 @@ public class SysDepartBoundaryController extends BaseController { */ @Operation(summary ="查询部门的地理位置",description = "查询部门的地理位置") @GetMapping(value = "/listJson") - public R listJson(SysDepartBoundary departBoundary) { - departBoundary.setDeptId(String.valueOf(LoginHelper.getDeptId())); - String listJson = departBoundaryService.listJson(departBoundary); + public R> listJson(SysDepartBoundary departBoundary) { +// departBoundary.setDeptId(String.valueOf(LoginHelper.getDeptId())); + List listJson = departBoundaryService.listJson(departBoundary); return R.ok("查询成功!",listJson); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysPostController.java b/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysPostController.java index 6d580cb..c8e78c6 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysPostController.java +++ b/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysPostController.java @@ -76,13 +76,8 @@ public class SysPostController extends BaseController { @SaCheckPermission("system:post:add") @Log(title = "岗位管理-绑定标签", businessType = BusinessType.INSERT) @PostMapping("/bindLable") - public void add(@Validated @RequestBody AiLablePostBindBo aiLablePostBindBo) { - for (Long labelId : aiLablePostBindBo.getLableIdList()) { - AiLabelPostBo ailablePost = new AiLabelPostBo(); - ailablePost.setPostId(aiLablePostBindBo.getPostId()); - ailablePost.setLableId(labelId); - aiLablePostService.insertByBo(ailablePost); - } + public R add(@Validated @RequestBody AiLablePostBindBo aiLablePostBindBo) { + return aiLablePostService.insertByBatchBo(aiLablePostBindBo)?R.ok():R.fail(); } /** diff --git a/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysUserController.java b/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysUserController.java index f773cc0..f063cc8 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysUserController.java +++ b/dk-modules/system/src/main/java/org/dromara/system/controller/system/SysUserController.java @@ -222,6 +222,16 @@ public class SysUserController extends BaseController { return R.ok(userService.selectUserByIds(userIds == null ? null : List.of(userIds), deptId)); } + /** + * 根据部门获取指派人员 + * + * @param deptId 部门ID + */ + @GetMapping("/assign/list") + public R> assignUserSelect(@RequestParam(required = false) Long deptId) { + return R.ok(userService.assignUserSelect(deptId)); + } + /** * 重置密码 */ diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabelPost.java b/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabelPost.java index 6a03a06..5e1e621 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabelPost.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/AiLabelPost.java @@ -20,7 +20,7 @@ public class AiLabelPost { @Serial private static final long serialVersionUID = 1L; - @TableId(value = "id") + @TableId(type = IdType.ASSIGN_ID) private Long id; /** * 标签id diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/SysDepartBoundary.java b/dk-modules/system/src/main/java/org/dromara/system/domain/SysDepartBoundary.java index 49a2629..6310c68 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/SysDepartBoundary.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/SysDepartBoundary.java @@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode; import org.dromara.common.mybatis.core.domain.BaseEntity; import java.io.Serial; +import java.util.List; /** * 部门区域边界表 @@ -71,4 +72,6 @@ public class SysDepartBoundary extends BaseEntity { /**删除状态(0,正常,1已删除)*/ private String delFlag; + private List deptIds; + } diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBo.java b/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBo.java index 3bf049a..d1deb42 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBo.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBo.java @@ -26,7 +26,7 @@ public class AiLabelPostBo { * 标签id */ @NotNull(message = "标签id不能为空", groups = { AddGroup.class , EditGroup.class }) - private Long lableId; + private Long labelId; /** * 岗位id diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/bo/SysDepartBoundaryBo.java b/dk-modules/system/src/main/java/org/dromara/system/domain/bo/SysDepartBoundaryBo.java new file mode 100644 index 0000000..45516f3 --- /dev/null +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/bo/SysDepartBoundaryBo.java @@ -0,0 +1,33 @@ +package org.dromara.system.domain.bo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; + +@Data +public class SysDepartBoundaryBo { + + private String departId; + + /** + * 区域类别 1是市级 2是区级 + */ + private AreaType areaType; + + private String landCategoriesJson; + + + @AllArgsConstructor + @Getter + public enum AreaType { + + Municipal("1","市级"), + + DistrictLevel("2","区级"); + + private String code; + + private String desc; + + } +} diff --git a/dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java b/dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java index 02498ec..51e6d31 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java +++ b/dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java @@ -13,7 +13,7 @@ import org.dromara.system.domain.SysPost; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -90,4 +90,43 @@ public class SysPostVo implements Serializable { @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "deptId") private String deptName; + /** + * 标签集合 + */ + public List labelList; + + @Data + public static class AiLabelVo{ + /** + * id + */ + private Long labelId; + + /** + * 标签名-英 + */ + + private String labelEn; + + /** + * 标签名-中 + */ + + private String labelCn; + + /** + * 算法类型 + */ + private String aiType; + + /** + * 算法名称 + */ + private String aiName; + + private Long postId; + + private String postName; + } + } diff --git a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java index 02794ba..93de8ac 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java @@ -60,4 +60,10 @@ public class RemoteDeptServiceImpl implements RemoteDeptService { return BeanUtil.copyToList(deptVoList, RemoteDeptVo.class); } + + @Override + public RemoteDeptVo getByParentId(String deptId) { + SysDeptVo sysDeptVo = sysDeptService.getByParentId(deptId); + return BeanUtil.copyProperties(sysDeptVo, RemoteDeptVo.class); + } } diff --git a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteLabelPostServicelmpl.java b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteLabelPostServicelmpl.java index ee494ad..61a64f4 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteLabelPostServicelmpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteLabelPostServicelmpl.java @@ -44,7 +44,7 @@ public class RemoteLabelPostServicelmpl implements RemoteLabelPostService { return aiLabelList.stream() .map(aiLabel -> { RemoteAiLabelPostVo remoteAiLabelPostVo = new RemoteAiLabelPostVo(); - remoteAiLabelPostVo.setLableId(aiLabel.getLabelId()); + remoteAiLabelPostVo.setLabelId(aiLabel.getLabelId()); remoteAiLabelPostVo.setLabelEn(aiLabel.getLabelEn()); remoteAiLabelPostVo.setLabelCn(aiLabel.getLabelCn()); return remoteAiLabelPostVo; diff --git a/dk-modules/system/src/main/java/org/dromara/system/mapper/SysDepartBoundaryMapper.java b/dk-modules/system/src/main/java/org/dromara/system/mapper/SysDepartBoundaryMapper.java index 3cf5045..01ed7fd 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/mapper/SysDepartBoundaryMapper.java +++ b/dk-modules/system/src/main/java/org/dromara/system/mapper/SysDepartBoundaryMapper.java @@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param; import org.dromara.system.domain.SysDepartBoundary; import java.util.List; +import java.util.Map; /** * 部门 Mapper 接口 @@ -23,6 +24,6 @@ public interface SysDepartBoundaryMapper extends BaseMapper { void saveBatchBoundary(@Param("list") List boundaryList); - String listJson(@Param("param") SysDepartBoundary departBoundary); + String listJson(@Param("deptId") String deptId); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/IAiLabelPostService.java b/dk-modules/system/src/main/java/org/dromara/system/service/IAiLabelPostService.java index d1c2bf2..b95879e 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/IAiLabelPostService.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/IAiLabelPostService.java @@ -2,6 +2,7 @@ package org.dromara.system.service; import org.dromara.system.domain.AiLabelPost; import org.dromara.system.domain.bo.AiLabelPostBo; +import org.dromara.system.domain.bo.AiLablePostBindBo; import org.dromara.system.domain.vo.AiLabelPostVo; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; @@ -68,4 +69,6 @@ public interface IAiLabelPostService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); List queryListByLabel(Long postId); + + Boolean insertByBatchBo(AiLablePostBindBo aiLablePostBindBo); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/ISysDepartBoundaryService.java b/dk-modules/system/src/main/java/org/dromara/system/service/ISysDepartBoundaryService.java index c5c9f7c..9a4f39d 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/ISysDepartBoundaryService.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/ISysDepartBoundaryService.java @@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.dromara.system.domain.SysDepartBoundary; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.bo.SysDepartBoundaryBo; import org.springframework.web.multipart.MultipartFile; import java.util.List; +import java.util.Map; /** * 部门区域 服务实现类 @@ -26,5 +28,5 @@ public interface ISysDepartBoundaryService extends IService{ boolean addDepartBoundary(SysDepartBoundary departBoundary); - String listJson(SysDepartBoundary departBoundary); + List listJson(SysDepartBoundary departBoundary); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/ISysDeptService.java b/dk-modules/system/src/main/java/org/dromara/system/service/ISysDeptService.java index cd5b88d..fea3d52 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/ISysDeptService.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/ISysDeptService.java @@ -152,4 +152,7 @@ public interface ISysDeptService { * @return */ List selectListByParentId(String deptId); + + + SysDeptVo getByParentId(String deptId); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java b/dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java index 4887005..5e8fd3c 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java @@ -269,4 +269,6 @@ public interface ISysUserService { List selectUserIdsByRoleIds(List roleIds); List selectUserByUserIds(List userIds); + + List assignUserSelect(Long deptId); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java index eabfd30..583e61d 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.system.domain.AiLabelPost; +import org.dromara.system.domain.bo.AiLablePostBindBo; import org.dromara.system.domain.vo.AiLabelPostVo; import org.dromara.system.mapper.AiLabelMapper; import org.springframework.stereotype.Service; @@ -16,6 +17,7 @@ import org.dromara.system.domain.bo.AiLabelPostBo; import org.dromara.system.mapper.AiLabelPostMapper; import org.dromara.system.service.IAiLabelPostService; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; @@ -87,11 +89,7 @@ public class AiLablePostServiceImpl implements IAiLabelPostService { public Boolean insertByBo(AiLabelPostBo bo) { AiLabelPost add = MapstructUtils.convert(bo, AiLabelPost.class); validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setLableId(add.getLabelId()); - } - return flag; + return baseMapper.insert(add) > 0; } /** @@ -137,4 +135,16 @@ public class AiLablePostServiceImpl implements IAiLabelPostService { return this.baseMapper.selectList(wrapper); } + + @Override + public Boolean insertByBatchBo(AiLablePostBindBo aiLablePostBindBo) { + List resultlist = new ArrayList<>(); + for (Long labelId : aiLablePostBindBo.getLableIdList()) { + AiLabelPost ailabelPost = new AiLabelPost(); + ailabelPost.setPostId(aiLablePostBindBo.getPostId()); + ailabelPost.setLabelId(labelId); + resultlist.add(ailabelPost); + } + return this.baseMapper.insertBatch(resultlist); + } } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDepartBoundaryServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDepartBoundaryServiceImpl.java index 78af492..d16ce1d 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDepartBoundaryServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDepartBoundaryServiceImpl.java @@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.system.api.domain.vo.RemoteDeptVo; import org.dromara.system.domain.SysDepartBoundary; import org.dromara.system.domain.SysGeospatialVectors; import org.dromara.system.domain.SysVectorDict; +import org.dromara.system.domain.bo.SysDepartBoundaryBo; import org.dromara.system.mapper.SysDepartBoundaryMapper; import org.dromara.system.service.ISysDepartBoundaryService; import org.dromara.system.service.ISysVectorDictService; @@ -173,12 +175,23 @@ public class SysDepartBoundaryServiceImpl extends ServiceImpl listJson(SysDepartBoundary departBoundary) { if(StringUtils.isBlank(departBoundary.getDeptId())){ throw new ServiceException("部门【id】不存在"); } - return this.baseMapper.listJson(departBoundary); + SysDepartBoundaryBo child = new SysDepartBoundaryBo(); + child.setDepartId(String.valueOf(departBoundary.getDeptId())); + child.setAreaType(SysDepartBoundaryBo.AreaType.DistrictLevel); + child.setLandCategoriesJson(this.baseMapper.listJson(departBoundary.getDeptId())); + + RemoteDeptVo remoteDeptVo = remoteDeptService.getByParentId(departBoundary.getDeptId()); + SysDepartBoundaryBo parent = new SysDepartBoundaryBo(); + parent.setDepartId(String.valueOf(remoteDeptVo.getDeptId())); + parent.setAreaType(SysDepartBoundaryBo.AreaType.Municipal); + parent.setLandCategoriesJson(this.baseMapper.listJson(String.valueOf(remoteDeptVo.getDeptId()))); + + return List.of(child,parent); } @Override diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java index 74815e0..884337e 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java @@ -370,4 +370,15 @@ public class SysDeptServiceImpl implements ISysDeptService { return BeanUtil.copyToList(resultList, SysDeptVo.class); } + @Override + public SysDeptVo getByParentId(String deptId) { + SysDeptVo sysDeptVo = this.selectDeptById(Long.parseLong(deptId)); + + SysDept sysDept = baseMapper.selectOne(new LambdaQueryWrapper() + .select(SysDept::getDeptId, SysDept::getDeptName, SysDept::getParentId) + .eq(SysDept::getDeptId, sysDeptVo.getParentId())); + + return BeanUtil.copyProperties(sysDept, SysDeptVo.class); + } + } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java index 2a16881..174a04a 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; +import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.common.core.constant.UserConstants; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; @@ -14,6 +15,8 @@ import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.helper.DataBaseHelper; +import org.dromara.system.api.RemoteLabelPostService; +import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo; import org.dromara.system.domain.SysDept; import org.dromara.system.domain.SysPost; import org.dromara.system.domain.SysUserPost; @@ -44,9 +47,27 @@ public class SysPostServiceImpl implements ISysPostService { private final SysDeptMapper deptMapper; private final SysUserPostMapper userPostMapper; + @DubboReference + private RemoteLabelPostService remoteLabelPostService; + @Override public TableDataInfo selectPagePostList(SysPostBo post, PageQuery pageQuery) { Page page = baseMapper.selectPagePostList(pageQuery.build(), buildQueryWrapper(post)); + + page.getRecords().forEach(sysPostVo -> { + List postVoList = remoteLabelPostService.selectLabelByList(sysPostVo.getPostCode(), sysPostVo.getDeptId()); + sysPostVo.setLabelList(postVoList.stream() + .map(aiLabel -> { + SysPostVo.AiLabelVo aiLabelVo = new SysPostVo.AiLabelVo(); + aiLabelVo.setLabelId(aiLabel.getLabelId()); + aiLabelVo.setLabelEn(aiLabel.getLabelEn()); + aiLabelVo.setLabelCn(aiLabel.getLabelCn()); + aiLabelVo.setPostId(aiLabel.getPostId()); + return aiLabelVo; + }) + .toList()); + }); + return TableDataInfo.build(page); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java index 111ec7e..5c0da4e 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java @@ -566,6 +566,16 @@ public class SysUserServiceImpl implements ISysUserService { .in(CollUtil.isNotEmpty(userIds), SysUser::getUserId, userIds)); } + @Override + public List assignUserSelect(Long deptId) { + List departList = deptMapper.selectListByParentId(deptId); + List departIdList = departList.stream().map(SysDept::getDeptId).toList(); + + return baseMapper.selectUserList(new LambdaQueryWrapper() + .select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhonenumber).eq(SysUser::getStatus, UserConstants.USER_NORMAL) + .in(ObjectUtil.isNotNull(departIdList), SysUser::getDeptId, departIdList)); + } + /** * 通过用户ID查询用户账户 * diff --git a/dk-modules/system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml b/dk-modules/system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml index 01704d2..9d2a302 100644 --- a/dk-modules/system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml +++ b/dk-modules/system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml @@ -141,7 +141,7 @@ sys_depart_boundary l LEFT JOIN sys_dept d ON l.dept_id = d.dept_id WHERE - d.dept_id = #{param.deptId} + d.dept_id = #{deptId}