Browse Source

Merge remote-tracking branch 'origin/master'

pull/1/head
吴远 3 months ago
parent
commit
3157858ab8
  1. 2
      dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java
  2. 2
      dk-api/api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteAiLabelPostVo.java
  3. 6
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java
  4. 116
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java
  5. 5
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java
  6. 16
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java
  7. 3
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java
  8. 1
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  9. 41
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java
  10. 6
      dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml
  11. 10
      dk-modules/system/src/main/java/org/dromara/system/controller/system/SysDepartBoundaryController.java
  12. 9
      dk-modules/system/src/main/java/org/dromara/system/controller/system/SysPostController.java
  13. 10
      dk-modules/system/src/main/java/org/dromara/system/controller/system/SysUserController.java
  14. 2
      dk-modules/system/src/main/java/org/dromara/system/domain/AiLabelPost.java
  15. 3
      dk-modules/system/src/main/java/org/dromara/system/domain/SysDepartBoundary.java
  16. 2
      dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBo.java
  17. 33
      dk-modules/system/src/main/java/org/dromara/system/domain/bo/SysDepartBoundaryBo.java
  18. 41
      dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java
  19. 6
      dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java
  20. 2
      dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteLabelPostServicelmpl.java
  21. 3
      dk-modules/system/src/main/java/org/dromara/system/mapper/SysDepartBoundaryMapper.java
  22. 3
      dk-modules/system/src/main/java/org/dromara/system/service/IAiLabelPostService.java
  23. 4
      dk-modules/system/src/main/java/org/dromara/system/service/ISysDepartBoundaryService.java
  24. 3
      dk-modules/system/src/main/java/org/dromara/system/service/ISysDeptService.java
  25. 2
      dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java
  26. 20
      dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLablePostServiceImpl.java
  27. 17
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDepartBoundaryServiceImpl.java
  28. 11
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
  29. 21
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java
  30. 10
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
  31. 2
      dk-modules/system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml

2
dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java

@ -27,4 +27,6 @@ public interface RemoteDeptService {
List<Map<String,Object>> getNamePathList(); List<Map<String,Object>> getNamePathList();
List<RemoteDeptVo> selectListByParentId(String deptId); List<RemoteDeptVo> selectListByParentId(String deptId);
RemoteDeptVo getByParentId(String deptId);
} }

2
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 * id
*/ */
// @ExcelProperty(value = "id") // @ExcelProperty(value = "id")
private Long lableId; private Long labelId;
/** /**
* 标签名- * 标签名-

6
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; private final IBusinessAlertStatisticsService statisticsService;
@Operation(summary="获取预警处置率", description="获取预警处置率")
@GetMapping(value = "/rate")
public R<Double> alertRate(BusinessAlertBo businessAlertBo) {
return R.ok(statisticsService.alertRate(businessAlertBo));
}
@Operation(summary="panel看板数据", description="panel看板数据") @Operation(summary="panel看板数据", description="panel看板数据")
@GetMapping(value = "/panel/count") @GetMapping(value = "/panel/count")
public R<List<StatObj>> countPanelAlert(BusinessAlertBo businessAlertBo) { public R<List<StatObj>> countPanelAlert(BusinessAlertBo businessAlertBo) {

116
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java

@ -20,7 +20,7 @@ import java.util.List;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@TableName(value = "business_alert",autoResultMap = true) @TableName(value = "business_alert", autoResultMap = true)
public class BusinessAlert extends BaseEntity { public class BusinessAlert extends BaseEntity {
@Serial @Serial
@ -32,24 +32,18 @@ public class BusinessAlert extends BaseEntity {
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
private String 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; private String taskImageId;
@ -58,13 +52,16 @@ public class BusinessAlert extends BaseEntity {
*/ */
private String reason; private String reason;
/**
* 是否指派
*/
private Boolean assign;
/** /**
* 图片文件 * 图片文件
*/ */
private String images; private String images;
/** /**
* 纬度 * 纬度
*/ */
@ -75,51 +72,42 @@ public class BusinessAlert extends BaseEntity {
*/ */
private Long lng; private Long lng;
/**
* 标签名-
*/
private String labelEn;
/** /**
* 标签名- * 标签名-
*/ */
private String labelCn; private String labelCn;
/** /**
* 预警类型 * 标签名-
*/ */
private String alertType; private String labelEn;
/** /**
* 任务内容 * 任务内容
*/ */
private String taskContent; private String taskContent;
/**
* 完成时间
*/
private Date completeDate;
/** /**
* 删除 0 正常 1已删除 * 删除 0 正常 1已删除
*/ */
@TableLogic private Integer delFlag;
private Long delFlag;
/** /**
* 模板图片 * 模板图片
*/ */
private String mateSourceImgUrl; private String mateSourceImgUrl;
/** /**
* 放大模板违建区域图片 * 放大模板违建区域图片
*/ */
private String maxMateSourceImgUrl; private String maxMateSourceImgUrl;
/**
* 预警类型
*/
private String alertType;
/** /**
* 放大违建区域图片 * 放大违建区域图片
*/ */
@ -146,43 +134,34 @@ public class BusinessAlert extends BaseEntity {
private String handleType; private String handleType;
/** /**
* 是否违建 01 * 指派人员
*/
private Boolean isIllegal;
/**
* 部门id
*/ */
private String deptId; private String assignUserId;
/** /**
* 部门名称 * 指派时间
*/ */
private String deptName; private Date assignDate;
/** /**
* 预警名称 * 完成时间
*/ */
private String jobName; private Date completeDate;
/** /**
* 指派人员 * 是否违建 01
*/ */
private String assignUserId; private Boolean isIllegal;
/** /**
* 指派人员名称 * 部门id
*/ */
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "assignUserId") private String deptId;
@TableField(exist = false)
private String assignUserName;
/** /**
* 指派时间 * 部门名称
*/ */
private Date assignDate; private String deptName;
/** /**
* 处理时间 * 处理时间
@ -194,11 +173,6 @@ public class BusinessAlert extends BaseEntity {
*/ */
private String taskHandle; private String taskHandle;
/**
* 平台类型
*/
private String platformType;
/** /**
* 像素坐标 * 像素坐标
*/ */
@ -207,12 +181,7 @@ public class BusinessAlert extends BaseEntity {
/** /**
* 当前位置预警数量 * 当前位置预警数量
*/ */
private Long handleNum; private Integer handleNum;
/**
* 国土所备注
*/
private String territoryRemark;
/** /**
* 地类信息数据 * 地类信息数据
@ -220,25 +189,22 @@ public class BusinessAlert extends BaseEntity {
private String landCategories; 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;
/** /**
* 审批者 * 审批者

5
dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java

@ -244,4 +244,9 @@ public class BusinessAlertBo {
*/ */
private Date assignDate; private Date assignDate;
/**
* 标签集合
*/
private List<String> aiLabelEnList;
} }

16
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<BusinessAlert, BusinessAlertVo> { public interface BusinessAlertMapper extends BaseMapperPlus<BusinessAlert, BusinessAlertVo> {
@DataPermission( // @DataPermission(
@DataColumn(key = "deptName", value = "ba.dept_id") // @DataColumn(key = "deptName", value = "t.dept_id")
) // )
Page<BusinessAlert> pageBusinessAlert(Page<BusinessAlert> page, QueryWrapper<BusinessAlert> ew); Page<BusinessAlert> pageBusinessAlert(Page<BusinessAlert> page, QueryWrapper<BusinessAlert> ew);
// @DataPermission(
// @DataColumn(key = "deptName", value = "t.dept_id")
// )
Page<BusinessAlert> pageAlertFinish(Page<BusinessAlert> page, QueryWrapper<BusinessAlert> ew); Page<BusinessAlert> pageAlertFinish(Page<BusinessAlert> page, QueryWrapper<BusinessAlert> ew);
/** /**
@ -37,8 +39,14 @@ public interface BusinessAlertMapper extends BaseMapperPlus<BusinessAlert, Busin
* @param ew * @param ew
* @return * @return
*/ */
// @DataPermission(
// @DataColumn(key = "deptName", value = "t.dept_id")
// )
Page<BusinessAlert> pageAlertTodo(Page<BusinessAlert> page, QueryWrapper<BusinessAlert> ew); Page<BusinessAlert> pageAlertTodo(Page<BusinessAlert> page, QueryWrapper<BusinessAlert> ew);
// @DataPermission(
// @DataColumn(key = "deptName", value = "t.dept_id")
// )
Page<BusinessAlert> pageBusinessAlertCancel(Page<BusinessAlert> build, QueryWrapper<BusinessAlert> ew); Page<BusinessAlert> pageBusinessAlertCancel(Page<BusinessAlert> build, QueryWrapper<BusinessAlert> ew);
@DataPermission( @DataPermission(

3
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertStatisticsService.java

@ -21,4 +21,7 @@ public interface IBusinessAlertStatisticsService {
List<StatObj> countPanelAlert(BusinessAlertBo businessAlertBo); List<StatObj> countPanelAlert(BusinessAlertBo businessAlertBo);
List<Map<String, Object>> countAlertTypeCompare(BusinessAlertBo businessAlertBo); List<Map<String, Object>> countAlertTypeCompare(BusinessAlertBo businessAlertBo);
Double alertRate(BusinessAlertBo businessAlertBo);
} }

1
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -177,6 +177,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
@Override @Override
public TableDataInfo<BusinessAlert> pageBusinessAlertFinish(BusinessAlertBo bo, PageQuery pageQuery) { public TableDataInfo<BusinessAlert> pageBusinessAlertFinish(BusinessAlertBo bo, PageQuery pageQuery) {
QueryWrapper<BusinessAlert> wrapper = buildQueryWrapper(bo); QueryWrapper<BusinessAlert> 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)"); wrapper.apply(" EXISTS(select * from dk_workflow.flow_his_task ht where ht.approver ='" + LoginHelper.getUserId() + "' and ht.instance_id = t.instanceId)");

41
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.business.service.IBusinessAlertStatisticsService;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.RemoteDeptService; 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.dromara.system.api.domain.vo.RemoteDeptVo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -31,6 +35,9 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
@DubboReference @DubboReference
RemoteDeptService remoteDeptService; RemoteDeptService remoteDeptService;
@DubboReference
RemoteLabelPostService remoteLabelPostService;
/** /**
* 按照月份分类预警数量(包含权限) * 按照月份分类预警数量(包含权限)
* @param businessAlertBo * @param businessAlertBo
@ -44,16 +51,18 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
businessAlertBo.setDeptIdList(departIdList); businessAlertBo.setDeptIdList(departIdList);
} }
businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode()));
List<Map<String, Object>> mapList = baseMapper.listMonthAlert(businessAlertBo); List<Map<String, Object>> mapList = baseMapper.listMonthAlert(businessAlertBo);
return mapList.stream().map(data -> new StatObj(data.get("dateMonth") + "", data.get("total"))).collect(Collectors.toList()); return mapList.stream().map(data -> new StatObj(data.get("dateMonth") + "", data.get("total"))).collect(Collectors.toList());
} }
@Override @Override
public List<StatObj>countDepartAlert(BusinessAlertBo businessAlertBo) { public List<StatObj>countDepartAlert(BusinessAlertBo businessAlertBo) {
businessAlertBo.setDeptId(String.valueOf(LoginHelper.getDeptId())); businessAlertBo.setDeptId(String.valueOf(LoginHelper.getDeptId()));
businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode()));
List<Map<String, Object>> mapList = baseMapper.listDepartAlert(businessAlertBo); List<Map<String, Object>> 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()); 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 @Override
public List<StatObj> countMonthAlertStatus(BusinessAlertBo businessAlertBo) { public List<StatObj> countMonthAlertStatus(BusinessAlertBo businessAlertBo) {
businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode()));
List<Map<String, Object>> mapList = baseMapper.listMonthAlertStatus(businessAlertBo); List<Map<String, Object>> mapList = baseMapper.listMonthAlertStatus(businessAlertBo);
return mapList.stream() return mapList.stream()
@ -79,6 +90,8 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
@Override @Override
public List<StatObj> countDepartAlertStatus(BusinessAlertBo businessAlertBo) { public List<StatObj> countDepartAlertStatus(BusinessAlertBo businessAlertBo) {
businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode()));
List<Map<String, Object>> mapList = baseMapper.listDepartAlertStatus(businessAlertBo); List<Map<String, Object>> mapList = baseMapper.listDepartAlertStatus(businessAlertBo);
return mapList.stream() return mapList.stream()
@ -102,12 +115,14 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
*/ */
@Override @Override
public List<Map<String, Object>> countAlertStatusCompare(BusinessAlertBo businessAlertBo) { public List<Map<String, Object>> countAlertStatusCompare(BusinessAlertBo businessAlertBo) {
businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode()));
businessAlertBo.setDateList(buildDateList(businessAlertBo)); businessAlertBo.setDateList(buildDateList(businessAlertBo));
return baseMapper.countAlertCompare(businessAlertBo); return baseMapper.countAlertCompare(businessAlertBo);
} }
@Override @Override
public List<StatObj> countPanelAlert(BusinessAlertBo businessAlertBo) { public List<StatObj> countPanelAlert(BusinessAlertBo businessAlertBo) {
businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode()));
List<Map<String, Object>> mapList = baseMapper.countPanelAlert(businessAlertBo); List<Map<String, Object>> mapList = baseMapper.countPanelAlert(businessAlertBo);
return mapList.stream() return mapList.stream()
@ -122,10 +137,30 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
@Override @Override
public List<Map<String, Object>> countAlertTypeCompare(BusinessAlertBo businessAlertBo) { public List<Map<String, Object>> countAlertTypeCompare(BusinessAlertBo businessAlertBo) {
businessAlertBo.setAiLabelEnList(getAiLabel(businessAlertBo.getPostCode()));
businessAlertBo.setDateList(buildDateList(businessAlertBo)); businessAlertBo.setDateList(buildDateList(businessAlertBo));
return baseMapper.countAlertTypeCompare(businessAlertBo); return baseMapper.countAlertTypeCompare(businessAlertBo);
} }
@Override
public Double alertRate(BusinessAlertBo businessAlertBo) {
List<Map<String, Object>> 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<String> buildDateList(BusinessAlertBo businessAlertBo) { private List<String> buildDateList(BusinessAlertBo businessAlertBo) {
List<String> resultList = new ArrayList<>(); List<String> resultList = new ArrayList<>();
String currentYear = String.valueOf(Calendar.getInstance().get(Calendar.YEAR)); String currentYear = String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
@ -149,4 +184,8 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
} }
return resultList; return resultList;
} }
private List<String> getAiLabel(String postCode) {
return remoteLabelPostService.selectLabelByList(postCode,LoginHelper.getDeptId()).stream().map(RemoteAiLabelPostVo::getLabelEn).collect(Collectors.toList());
}
} }

6
dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml

@ -6,6 +6,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="searchSql"> <sql id="searchSql">
and ba.handle_type != 'verify' and ba.handle_type != 'verify'
<if test="param.aiLabelEnList != null and param.aiLabelEnList.size > 0">
and ba.label_en in
<foreach collection="param.aiLabelEnList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="param.createTime != null and param.createTime != ''"> <if test="param.createTime != null and param.createTime != ''">
and DATE_FORMAT(ba.create_time,'%Y-%m') = DATE_FORMAT(#{param.createTime},'%Y-%m') and DATE_FORMAT(ba.create_time,'%Y-%m') = DATE_FORMAT(#{param.createTime},'%Y-%m')
</if> </if>

10
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.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController; import org.dromara.common.web.core.BaseController;
import org.dromara.system.domain.bo.SysDepartBoundaryBo;
import org.dromara.system.service.ISysDepartBoundaryService; import org.dromara.system.service.ISysDepartBoundaryService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; 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 = "查询部门的地理位置") @Operation(summary ="查询部门的地理位置",description = "查询部门的地理位置")
@GetMapping(value = "/listJson") @GetMapping(value = "/listJson")
public R<String> listJson(SysDepartBoundary departBoundary) { public R<List<SysDepartBoundaryBo>> listJson(SysDepartBoundary departBoundary) {
departBoundary.setDeptId(String.valueOf(LoginHelper.getDeptId())); // departBoundary.setDeptId(String.valueOf(LoginHelper.getDeptId()));
String listJson = departBoundaryService.listJson(departBoundary); List<SysDepartBoundaryBo> listJson = departBoundaryService.listJson(departBoundary);
return R.ok("查询成功!",listJson); return R.ok("查询成功!",listJson);
} }

9
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") @SaCheckPermission("system:post:add")
@Log(title = "岗位管理-绑定标签", businessType = BusinessType.INSERT) @Log(title = "岗位管理-绑定标签", businessType = BusinessType.INSERT)
@PostMapping("/bindLable") @PostMapping("/bindLable")
public void add(@Validated @RequestBody AiLablePostBindBo aiLablePostBindBo) { public R<Void> add(@Validated @RequestBody AiLablePostBindBo aiLablePostBindBo) {
for (Long labelId : aiLablePostBindBo.getLableIdList()) { return aiLablePostService.insertByBatchBo(aiLablePostBindBo)?R.ok():R.fail();
AiLabelPostBo ailablePost = new AiLabelPostBo();
ailablePost.setPostId(aiLablePostBindBo.getPostId());
ailablePost.setLableId(labelId);
aiLablePostService.insertByBo(ailablePost);
}
} }
/** /**

10
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)); return R.ok(userService.selectUserByIds(userIds == null ? null : List.of(userIds), deptId));
} }
/**
* 根据部门获取指派人员
*
* @param deptId 部门ID
*/
@GetMapping("/assign/list")
public R<List<SysUserVo>> assignUserSelect(@RequestParam(required = false) Long deptId) {
return R.ok(userService.assignUserSelect(deptId));
}
/** /**
* 重置密码 * 重置密码
*/ */

2
dk-modules/system/src/main/java/org/dromara/system/domain/AiLabelPost.java

@ -20,7 +20,7 @@ public class AiLabelPost {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@TableId(value = "id") @TableId(type = IdType.ASSIGN_ID)
private Long id; private Long id;
/** /**
* 标签id * 标签id

3
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 org.dromara.common.mybatis.core.domain.BaseEntity;
import java.io.Serial; import java.io.Serial;
import java.util.List;
/** /**
* 部门区域边界表 * 部门区域边界表
@ -71,4 +72,6 @@ public class SysDepartBoundary extends BaseEntity {
/**删除状态(0,正常,1已删除)*/ /**删除状态(0,正常,1已删除)*/
private String delFlag; private String delFlag;
private List<String> deptIds;
} }

2
dk-modules/system/src/main/java/org/dromara/system/domain/bo/AiLabelPostBo.java

@ -26,7 +26,7 @@ public class AiLabelPostBo {
* 标签id * 标签id
*/ */
@NotNull(message = "标签id不能为空", groups = { AddGroup.class , EditGroup.class }) @NotNull(message = "标签id不能为空", groups = { AddGroup.class , EditGroup.class })
private Long lableId; private Long labelId;
/** /**
* 岗位id * 岗位id

33
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;
}
}

41
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.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; 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") @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "deptId")
private String deptName; private String deptName;
/**
* 标签集合
*/
public List<AiLabelVo> 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;
}
} }

6
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); return BeanUtil.copyToList(deptVoList, RemoteDeptVo.class);
} }
@Override
public RemoteDeptVo getByParentId(String deptId) {
SysDeptVo sysDeptVo = sysDeptService.getByParentId(deptId);
return BeanUtil.copyProperties(sysDeptVo, RemoteDeptVo.class);
}
} }

2
dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteLabelPostServicelmpl.java

@ -44,7 +44,7 @@ public class RemoteLabelPostServicelmpl implements RemoteLabelPostService {
return aiLabelList.stream() return aiLabelList.stream()
.map(aiLabel -> { .map(aiLabel -> {
RemoteAiLabelPostVo remoteAiLabelPostVo = new RemoteAiLabelPostVo(); RemoteAiLabelPostVo remoteAiLabelPostVo = new RemoteAiLabelPostVo();
remoteAiLabelPostVo.setLableId(aiLabel.getLabelId()); remoteAiLabelPostVo.setLabelId(aiLabel.getLabelId());
remoteAiLabelPostVo.setLabelEn(aiLabel.getLabelEn()); remoteAiLabelPostVo.setLabelEn(aiLabel.getLabelEn());
remoteAiLabelPostVo.setLabelCn(aiLabel.getLabelCn()); remoteAiLabelPostVo.setLabelCn(aiLabel.getLabelCn());
return remoteAiLabelPostVo; return remoteAiLabelPostVo;

3
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 org.dromara.system.domain.SysDepartBoundary;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 部门 Mapper 接口 * 部门 Mapper 接口
@ -23,6 +24,6 @@ public interface SysDepartBoundaryMapper extends BaseMapper<SysDepartBoundary> {
void saveBatchBoundary(@Param("list") List<SysDepartBoundary> boundaryList); void saveBatchBoundary(@Param("list") List<SysDepartBoundary> boundaryList);
String listJson(@Param("param") SysDepartBoundary departBoundary); String listJson(@Param("deptId") String deptId);
} }

3
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.AiLabelPost;
import org.dromara.system.domain.bo.AiLabelPostBo; import org.dromara.system.domain.bo.AiLabelPostBo;
import org.dromara.system.domain.bo.AiLablePostBindBo;
import org.dromara.system.domain.vo.AiLabelPostVo; import org.dromara.system.domain.vo.AiLabelPostVo;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
@ -68,4 +69,6 @@ public interface IAiLabelPostService {
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
List<AiLabelPost> queryListByLabel(Long postId); List<AiLabelPost> queryListByLabel(Long postId);
Boolean insertByBatchBo(AiLablePostBindBo aiLablePostBindBo);
} }

4
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.system.domain.SysDepartBoundary;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.domain.bo.SysDepartBoundaryBo;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 部门区域 服务实现类 * 部门区域 服务实现类
@ -26,5 +28,5 @@ public interface ISysDepartBoundaryService extends IService<SysDepartBoundary>{
boolean addDepartBoundary(SysDepartBoundary departBoundary); boolean addDepartBoundary(SysDepartBoundary departBoundary);
String listJson(SysDepartBoundary departBoundary); List<SysDepartBoundaryBo> listJson(SysDepartBoundary departBoundary);
} }

3
dk-modules/system/src/main/java/org/dromara/system/service/ISysDeptService.java

@ -152,4 +152,7 @@ public interface ISysDeptService {
* @return * @return
*/ */
List<SysDeptVo> selectListByParentId(String deptId); List<SysDeptVo> selectListByParentId(String deptId);
SysDeptVo getByParentId(String deptId);
} }

2
dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java

@ -269,4 +269,6 @@ public interface ISysUserService {
List<Long> selectUserIdsByRoleIds(List<Long> roleIds); List<Long> selectUserIdsByRoleIds(List<Long> roleIds);
List<SysUserVo> selectUserByUserIds(List<Long> userIds); List<SysUserVo> selectUserByUserIds(List<Long> userIds);
List<SysUserVo> assignUserSelect(Long deptId);
} }

20
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 com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.system.domain.AiLabelPost; import org.dromara.system.domain.AiLabelPost;
import org.dromara.system.domain.bo.AiLablePostBindBo;
import org.dromara.system.domain.vo.AiLabelPostVo; import org.dromara.system.domain.vo.AiLabelPostVo;
import org.dromara.system.mapper.AiLabelMapper; import org.dromara.system.mapper.AiLabelMapper;
import org.springframework.stereotype.Service; 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.mapper.AiLabelPostMapper;
import org.dromara.system.service.IAiLabelPostService; import org.dromara.system.service.IAiLabelPostService;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection; import java.util.Collection;
@ -87,11 +89,7 @@ public class AiLablePostServiceImpl implements IAiLabelPostService {
public Boolean insertByBo(AiLabelPostBo bo) { public Boolean insertByBo(AiLabelPostBo bo) {
AiLabelPost add = MapstructUtils.convert(bo, AiLabelPost.class); AiLabelPost add = MapstructUtils.convert(bo, AiLabelPost.class);
validEntityBeforeSave(add); validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0; return baseMapper.insert(add) > 0;
if (flag) {
bo.setLableId(add.getLabelId());
}
return flag;
} }
/** /**
@ -137,4 +135,16 @@ public class AiLablePostServiceImpl implements IAiLabelPostService {
return this.baseMapper.selectList(wrapper); return this.baseMapper.selectList(wrapper);
} }
@Override
public Boolean insertByBatchBo(AiLablePostBindBo aiLablePostBindBo) {
List<AiLabelPost> 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);
}
} }

17
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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference; 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.SysDepartBoundary;
import org.dromara.system.domain.SysGeospatialVectors; import org.dromara.system.domain.SysGeospatialVectors;
import org.dromara.system.domain.SysVectorDict; import org.dromara.system.domain.SysVectorDict;
import org.dromara.system.domain.bo.SysDepartBoundaryBo;
import org.dromara.system.mapper.SysDepartBoundaryMapper; import org.dromara.system.mapper.SysDepartBoundaryMapper;
import org.dromara.system.service.ISysDepartBoundaryService; import org.dromara.system.service.ISysDepartBoundaryService;
import org.dromara.system.service.ISysVectorDictService; import org.dromara.system.service.ISysVectorDictService;
@ -173,12 +175,23 @@ public class SysDepartBoundaryServiceImpl extends ServiceImpl<SysDepartBoundaryM
} }
@Override @Override
public String listJson(SysDepartBoundary departBoundary) { public List<SysDepartBoundaryBo> listJson(SysDepartBoundary departBoundary) {
if(StringUtils.isBlank(departBoundary.getDeptId())){ if(StringUtils.isBlank(departBoundary.getDeptId())){
throw new ServiceException("部门【id】不存在"); 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 @Override

11
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); 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<SysDept>()
.select(SysDept::getDeptId, SysDept::getDeptName, SysDept::getParentId)
.eq(SysDept::getDeptId, sysDeptVo.getParentId()));
return BeanUtil.copyProperties(sysDept, SysDeptVo.class);
}
} }

21
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.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.constant.UserConstants; import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils; 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.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.helper.DataBaseHelper; 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.SysDept;
import org.dromara.system.domain.SysPost; import org.dromara.system.domain.SysPost;
import org.dromara.system.domain.SysUserPost; import org.dromara.system.domain.SysUserPost;
@ -44,9 +47,27 @@ public class SysPostServiceImpl implements ISysPostService {
private final SysDeptMapper deptMapper; private final SysDeptMapper deptMapper;
private final SysUserPostMapper userPostMapper; private final SysUserPostMapper userPostMapper;
@DubboReference
private RemoteLabelPostService remoteLabelPostService;
@Override @Override
public TableDataInfo<SysPostVo> selectPagePostList(SysPostBo post, PageQuery pageQuery) { public TableDataInfo<SysPostVo> selectPagePostList(SysPostBo post, PageQuery pageQuery) {
Page<SysPostVo> page = baseMapper.selectPagePostList(pageQuery.build(), buildQueryWrapper(post)); Page<SysPostVo> page = baseMapper.selectPagePostList(pageQuery.build(), buildQueryWrapper(post));
page.getRecords().forEach(sysPostVo -> {
List<RemoteAiLabelPostVo> 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); return TableDataInfo.build(page);
} }

10
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)); .in(CollUtil.isNotEmpty(userIds), SysUser::getUserId, userIds));
} }
@Override
public List<SysUserVo> assignUserSelect(Long deptId) {
List<SysDept> departList = deptMapper.selectListByParentId(deptId);
List<Long> departIdList = departList.stream().map(SysDept::getDeptId).toList();
return baseMapper.selectUserList(new LambdaQueryWrapper<SysUser>()
.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查询用户账户 * 通过用户ID查询用户账户
* *

2
dk-modules/system/src/main/resources/mapper/system/SysDepartBoundaryMapper.xml

@ -141,7 +141,7 @@
sys_depart_boundary l sys_depart_boundary l
LEFT JOIN sys_dept d ON l.dept_id = d.dept_id LEFT JOIN sys_dept d ON l.dept_id = d.dept_id
WHERE WHERE
d.dept_id = #{param.deptId} d.dept_id = #{deptId}
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save