Browse Source

[feat]

1、增加前端访问页面查询地理数据接口
2、给服务增加doc注释。
3、开发预警统计接口
pull/1/head
杨威 5 months ago
parent
commit
a3017752ef
  1. 1
      dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java
  2. 4
      dk-auth/src/main/java/org/dromara/auth/controller/CaptchaController.java
  3. 10
      dk-auth/src/main/java/org/dromara/auth/controller/TokenController.java
  4. 8
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java
  5. 44
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java
  6. 47
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessDepartBoundaryController.java
  7. 126
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessPatrolAreasController.java
  8. 5
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java
  9. 86
      dk-modules/business/src/main/java/org/dromara/business/domain/model/StatObj.java
  10. 32
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java
  11. 4
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessDepartBoundaryMapper.java
  12. 12
      dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertStatisticsService.java
  13. 4
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessDepartBoundaryService.java
  14. 78
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java
  15. 22
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessDepartBoundaryServiceImpl.java
  16. 158
      dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml
  17. 33
      dk-modules/business/src/main/resources/mapper/business/BusinessDepartBoundaryMapper.xml
  18. 4
      dk-modules/resource/src/main/java/org/dromara/resource/controller/SysEmailController.java
  19. 9
      dk-modules/resource/src/main/java/org/dromara/resource/controller/SysOssConfigController.java
  20. 8
      dk-modules/resource/src/main/java/org/dromara/resource/controller/SysOssController.java
  21. 4
      dk-modules/resource/src/main/java/org/dromara/resource/controller/SysSmsController.java
  22. 4
      dk-modules/system/src/main/java/org/dromara/system/controller/monitor/CacheController.java
  23. 8
      dk-modules/system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java
  24. 7
      dk-modules/system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java
  25. 11
      dk-modules/system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java
  26. 7
      dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java
  27. 6
      dk-modules/system/src/main/java/org/dromara/system/service/ISysDeptService.java
  28. 9
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
  29. 20
      dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java
  30. 24
      dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java
  31. 15
      dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java
  32. 27
      dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java

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

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

4
dk-auth/src/main/java/org/dromara/auth/controller/CaptchaController.java

@ -3,6 +3,8 @@ package org.dromara.auth.controller;
import cn.hutool.captcha.AbstractCaptcha;
import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.core.util.IdUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.auth.domain.vo.CaptchaVo;
@ -31,6 +33,7 @@ import java.time.Duration;
*
* @author Lion Li
*/
@Tag(name = "验证码相关操作")
@Slf4j
@Validated
@RequiredArgsConstructor
@ -42,6 +45,7 @@ public class CaptchaController {
/**
* 生成验证码
*/
@Operation(summary = "生成验证码",description = "生成验证码")
@RateLimiter(time = 60, count = 10, limitType = LimitType.IP)
@GetMapping("/code")
public R<CaptchaVo> getCode() {

10
dk-auth/src/main/java/org/dromara/auth/controller/TokenController.java

@ -4,6 +4,8 @@ import cn.dev33.satoken.exception.NotLoginException;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -52,6 +54,7 @@ import java.util.concurrent.TimeUnit;
*
* @author Lion Li
*/
@Tag(name = "token相关服务")
@Slf4j
@RequiredArgsConstructor
@RestController
@ -78,6 +81,7 @@ public class TokenController {
* @param body 登录信息
* @return 结果
*/
@Operation(summary = "登录",description = "登录")
@ApiEncrypt
@PostMapping("/login")
public R<LoginVo> login(@RequestBody String body) {
@ -113,6 +117,7 @@ public class TokenController {
* @param source 登录来源
* @return 结果
*/
@Operation(summary = "第三方登录请求",description = "第三方登录请求")
@GetMapping("/binding/{source}")
public R<String> authBinding(@PathVariable("source") String source,
@RequestParam String tenantId, @RequestParam String domain) {
@ -135,6 +140,7 @@ public class TokenController {
* @param loginBody 请求体
* @return 结果
*/
@Operation(summary = "第三方登录回调业务处理",description = "第三方登录回调业务处理")
@PostMapping("/social/callback")
public R<Void> socialCallback(@RequestBody SocialLoginBody loginBody) {
// 获取第三方登录信息
@ -156,6 +162,7 @@ public class TokenController {
*
* @param socialId socialId
*/
@Operation(summary = "取消授权",description = "取消授权")
@DeleteMapping(value = "/unlock/{socialId}")
public R<Void> unlockSocial(@PathVariable Long socialId) {
Boolean rows = remoteSocialService.deleteWithValidById(socialId);
@ -165,6 +172,7 @@ public class TokenController {
/**
* 登出方法
*/
@Operation(summary = "登出方法",description = "登出方法")
@PostMapping("logout")
public R<Void> logout() {
sysLoginService.logout();
@ -174,6 +182,7 @@ public class TokenController {
/**
* 用户注册
*/
@Operation(summary = "用户注册",description = "用户注册")
@ApiEncrypt
@PostMapping("register")
public R<Void> register(@RequestBody RegisterBody registerBody) {
@ -190,6 +199,7 @@ public class TokenController {
*
* @return 租户列表
*/
@Operation(summary = "登录页面租户下拉框",description = "登录页面租户下拉框")
@GetMapping("/tenant/list")
public R<LoginTenantVo> tenantList(HttpServletRequest request) throws Exception {
// 返回对象

8
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java

@ -1,5 +1,7 @@
package org.dromara.business.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.BusinessAlert;
import org.dromara.business.domain.bo.BusinessAlertBo;
@ -11,7 +13,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* 预警
* 预警
*
* @author LionLi
* @date 2025-02-27
@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
@RequiredArgsConstructor
@RestController
@RequestMapping
@Tag(name = "预警服务")
public class BusinessAlertController extends BaseController {
@ -28,6 +31,7 @@ public class BusinessAlertController extends BaseController {
/**
* 查询全部预警
*/
@Operation(summary ="查询全部预警",description = "查询全部预警")
@GetMapping("/alert/page/all")
public TableDataInfo<BusinessAlert> pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery) {
return businessAlertService.pageBusinessAlert(bo, pageQuery);
@ -36,6 +40,7 @@ public class BusinessAlertController extends BaseController {
/**
* 查询审批的预警
*/
@Operation(summary ="查询待办的预警",description = "查询待办的预警")
@GetMapping("/alert/page/todo")
public TableDataInfo<BusinessAlert> pageBusinessAlertTodo(BusinessAlertBo bo, PageQuery pageQuery) {
return businessAlertService.pageBusinessAlertTodo(bo, pageQuery);
@ -47,6 +52,7 @@ public class BusinessAlertController extends BaseController {
* @param pageQuery
* @return
*/
@Operation(summary ="查询审批完成的预警",description = "查询审批完成的预警")
@GetMapping("/alert/page/finish")
public TableDataInfo<BusinessAlert> pageBusinessAlertFinish(BusinessAlertBo bo, PageQuery pageQuery) {
return businessAlertService.pageBusinessAlertFinish(bo, pageQuery);

44
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java

@ -1,21 +1,63 @@
package org.dromara.business.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.bo.BusinessAlertBo;
import org.dromara.business.domain.model.StatObj;
import org.dromara.business.service.BusinessAlertStatisticsService;
import org.dromara.common.core.domain.R;
import org.dromara.common.web.core.BaseController;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 预警统计相关服务
*/
@Tag(name = "预警统计相关服务")
@RequiredArgsConstructor
@RestController
@RequestMapping("/alert/statistics")
public class BusinessAlertStatisticsController {
public class BusinessAlertStatisticsController extends BaseController {
private final BusinessAlertStatisticsService statisticsService;
//饼图显示每个月根据部门
@Operation(summary="根据月份显示预警个数", description="根据月份显示预警个数")
@GetMapping(value = "/month/count")
public R<List<StatObj>> countMonthAlert(BusinessAlertBo businessAlertBo) {
return R.ok(statisticsService.countMonthAlert(businessAlertBo));
}
//饼图部门分类预警个数占比
@Operation(summary="根据部门显示预警个数", description="根据部门显示预警个数")
@GetMapping(value = "/depart/count")
public R<List<StatObj>> countDepartAlert(BusinessAlertBo businessAlertBo) {
return R.ok(statisticsService.countDepartAlert(businessAlertBo));
}
//折线图处理状态各个月展示个数部门
@Operation(summary="根据月份,状态统计显示预警个数", description="根据月份,状态统计显示预警个数")
@GetMapping(value = "/month/status/count")
public R<List<StatObj>> countMonthAlertStatus(BusinessAlertBo businessAlertBo) {
return R.ok(statisticsService.countMonthAlertStatus(businessAlertBo));
}
//折线图处理状态预警个数分布部门
@Operation(summary="根据部门,状态统计显示预警个数", description="根据部门,状态统计显示预警个数")
@GetMapping(value = "/depart/status/count")
public R<List<StatObj>> countDepartAlertStatus(BusinessAlertBo businessAlertBo) {
return R.ok(statisticsService.countDepartAlertStatus(businessAlertBo));
}
//预警对比统计
//1、处理状态柱状图,x轴为选中的部门
//2、预警类型柱状图,x轴为选中的部门
}

47
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessDepartBoundaryController.java

@ -1,6 +1,8 @@
package org.dromara.business.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.business.domain.BusinessDepartBoundary;
@ -9,28 +11,13 @@ 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.geotools.geometry.jts.JTS;
import org.locationtech.jts.geom.Polygon;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.geotools.data.DataStore;
import org.geotools.data.DataStoreFinder;
import org.geotools.data.simple.SimpleFeatureCollection;
import org.geotools.data.simple.SimpleFeatureIterator;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.geom.MultiPolygon;
/**
* 部门区域
*/
@Tag(name = "部门区域")
@RestController
@RequestMapping("/depart/boundary")
@Slf4j
@ -39,28 +26,40 @@ public class BusinessDepartBoundaryController extends BaseController {
private final IBusinessDepartBoundaryService departBoundaryService;
/**
* 查询部门的地理位置
* @param departBoundary
* @return
*/
@Operation(summary ="查询部门的地理位置",description = "查询部门的地理位置")
@GetMapping(value = "/listJson")
public R<String> listJson(BusinessDepartBoundary departBoundary) {
String listJson = departBoundaryService.listJson(departBoundary);
return R.ok("查询成功!",listJson);
}
/**
* 分页查询部门区域列表
* @return
*/
@Operation(summary ="查询部门区域列表",description = "查询部门区域列表")
@RequestMapping(value = "/page", method = RequestMethod.GET)
public TableDataInfo<BusinessDepartBoundary> queryPageList(BusinessDepartBoundary departBoundary, PageQuery pageQuery) {
return departBoundaryService.listSysDepartBoundary(pageQuery, departBoundary);
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
public R<Void> addDepartBoundary(@RequestBody BusinessDepartBoundary departBoundary) {
return toAjax(departBoundaryService.addDepartBoundary(departBoundary));
}
/**
* 解析shp文件
* @return
*/
@Operation(summary ="批量新增部门区域",description = "批量新增部门区域")
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public R<Void> uploadShpFile(@RequestParam("file") MultipartFile file) {
return toAjax(departBoundaryService.uploadShpFile(file));
public R<Void> uploadShpFile(@RequestParam("file") MultipartFile file,
@RequestParam(value = "deptId" ,required = false)String deptId) {
return toAjax(departBoundaryService.uploadShpFile(file,deptId));
}
/**
@ -69,6 +68,7 @@ public class BusinessDepartBoundaryController extends BaseController {
* @param
* @return
*/
@Operation(summary ="编辑部门区域",description = "编辑部门区域")
@RequestMapping(value = "/update", method = RequestMethod.POST)
public R<Void> updateDepartBoundary(@RequestBody BusinessDepartBoundary departBoundary) {
return toAjax(departBoundaryService.updateDepartBoundary(departBoundary));
@ -81,6 +81,7 @@ public class BusinessDepartBoundaryController extends BaseController {
* @param id
* @return
*/
@Operation(summary ="删除部门区域",description = "删除部门区域")
@RequestMapping(value = "/delete", method = RequestMethod.DELETE)
public R<Void> deleteDepartBoundary(@RequestParam(name = "id") String id) {
return toAjax(departBoundaryService.deleteDepartBoundary(id));

126
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessPatrolAreasController.java

@ -1,126 +0,0 @@
package org.dromara.business.controller;
import cn.hutool.core.util.ObjectUtil;
import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.BusinessPatrolAreas;
import org.dromara.business.domain.bo.BusinessPatrolAreasBo;
import org.dromara.business.service.IBusinessPatrolAreasService;
import org.dromara.common.core.domain.R;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.web.core.BaseController;
import org.dromara.system.api.model.LoginUser;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 巡查区域
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/patrol/patrolAreas")
public class BusinessPatrolAreasController extends BaseController {
private final IBusinessPatrolAreasService patrolAreasService;
/**
* 巡查区域-分页列表查询
*
* @param patrolAreasBo
* @param pageQuery
* @return
*/
@GetMapping(value = "/page")
public TableDataInfo<BusinessPatrolAreas> pagePatrolAreas(BusinessPatrolAreasBo patrolAreasBo,
PageQuery pageQuery) {
return patrolAreasService.pagePatrolAreas(pageQuery, patrolAreasBo);
}
/**
* 巡查区域-添加
*
* @param file
* @return
*/
@PostMapping("/upload")
public R<?> upload(@RequestParam("file") MultipartFile file) {
try {
patrolAreasService.addPatrolAreas(file);
return R.ok("上传成功!");
} catch (Exception e) {
return R.fail("上传失败!");
}
}
/**
* 巡查区域-编辑
*
* @param patrolAreas
* @return
*/
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public R<?> edit(@RequestBody BusinessPatrolAreas patrolAreas) {
return patrolAreasService.updatePatrolAreas(patrolAreas)?R.ok("添加成功!"):R.fail("添加失败");
}
/**
* 巡查区域-禁用/启用
*
* @param patrolAreas
* @return
*/
@RequestMapping(value = "/isDisable", method = {RequestMethod.PUT,RequestMethod.POST})
public R<?> isDisable(@RequestBody BusinessPatrolAreas patrolAreas) {
return patrolAreasService.updateById(patrolAreas)?R.ok("修改成功!"):R.fail("修改失败");
}
/**
* 巡查区域-删除
*
* @param id
* @return
*/
@DeleteMapping(value = "/delete")
public R<?> delete(String id) {
return patrolAreasService.removeById(id)?R.ok("删除成功!"):R.fail("删除失败!");
}
/**
* 导出excel
*
* @param request
* @param patrolAreas
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(BusinessPatrolAreas patrolAreas, HttpServletRequest request) {
//Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
String selections = request.getParameter("selections");
if (ObjectUtil.isNotEmpty(selections)) {
List<String> areasIdList = Arrays.asList(selections.split(","));
patrolAreas.setAreasIdList(areasIdList);
}
List<BusinessPatrolAreas> pageList = patrolAreasService.exportXls(patrolAreas);
//导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME, "用户列表");
mv.addObject(NormalExcelConstants.CLASS, BusinessPatrolAreas.class);
LoginUser user = LoginHelper.getLoginUser();
ExportParams exportParams = new ExportParams("用户列表数据", "导出人:"+user.getNickname(), "导出信息");
mv.addObject(NormalExcelConstants.PARAMS, exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
return mv;
}
}

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

@ -1,5 +1,6 @@
package org.dromara.business.domain.bo;
import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.business.domain.BusinessAlert;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
@ -9,6 +10,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import java.util.List;
/**
* 预警任务业务对象 business_alert
@ -185,4 +187,7 @@ public class BusinessAlertBo extends BaseEntity {
private Long handleSource;
List<Long> deptIdList;
}

86
dk-modules/business/src/main/java/org/dromara/business/domain/model/StatObj.java

@ -0,0 +1,86 @@
package org.dromara.business.domain.model;
import cn.hutool.json.JSONObject;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* 统计信息返回类
*/
@Data
public class StatObj implements Serializable {
/**
* 统计字段
*/
private String statKey;
/**
* 统计值
*/
private Object statVal;
private List<Object> statValues;
/**
* 子集信息
*/
List<StatObj> nextStatList;
/**
* 补充字段
*/
private JSONObject extra;
/**
* 跳转链接
*/
private String url;
public StatObj(){
}
public StatObj(String statKey, Object statVal){
this.statKey = statKey;
this.statVal = statVal;
}
public StatObj(String statKey, Long statVal, String extraKey, Object extraValue){
this.statKey = statKey;
this.statVal = statVal;
this.extra = new JSONObject().put(extraKey,extraValue);
}
public StatObj(String statKey, BigDecimal percentage){
this.statKey = statKey;
this.statVal = percentage;
}
public StatObj(String statKey, Long statVal, String url){
this.statKey = statKey;
this.statVal = statVal;
this.url = url;
}
public StatObj(String statKey, List<StatObj> nextStatList){
this.statKey = statKey;
this.nextStatList = nextStatList;
}
public StatObj(String statKey, List<StatObj> nextStatList,String extraKey, Object extraValue){
this.statKey = statKey;
this.nextStatList = nextStatList;
this.extra = new JSONObject().put(extraKey,extraValue);
}
public void addExtra(String key,Object value){
if(this.extra == null){
this.extra = new JSONObject();
}
this.extra.set(key,value);
}
}

32
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java

@ -3,11 +3,18 @@ package org.dromara.business.mapper;
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 org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessAlert;
import org.dromara.business.domain.bo.BusinessAlertBo;
import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.common.mybatis.annotation.DataColumn;
import org.dromara.common.mybatis.annotation.DataPermission;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import java.util.List;
import java.util.Map;
/**
* 预警任务Mapper接口
*
@ -16,10 +23,29 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
*/
public interface BusinessAlertMapper extends BaseMapperPlus<BusinessAlert, BusinessAlertVo> {
Page<BusinessAlert> pageBusinessAlert(Page<BusinessAlert> build, QueryWrapper<BusinessAlert> wrapper);
Page<BusinessAlert> pageBusinessAlert(Page<BusinessAlert> page, QueryWrapper<BusinessAlert> ew);
Page<BusinessAlert> pageAlertFinish(Page<BusinessAlert> page, QueryWrapper<BusinessAlert> ew);
Page<BusinessAlert> pageAlertTodo(Page<BusinessAlert> page, QueryWrapper<BusinessAlert> ew);
@DataPermission(
@DataColumn(key = "deptName", value = "ba.dept_id")
)
List<Map<String, Object>> listMonthAlert(@Param("param") BusinessAlertBo businessAlertBo);
Page<BusinessAlert> pageAlertFinish(Page<BusinessAlert> page, QueryWrapper<BusinessAlert> wrapper);
@DataPermission(
@DataColumn(key = "deptName", value = "ba.dept_id")
)
List<Map<String, Object>> listDepartAlert(@Param("param") BusinessAlertBo businessAlertBo);
Page<BusinessAlert> pageAlertTodo(Page<BusinessAlert> build, QueryWrapper<BusinessAlert> wrapper);
@DataPermission(
@DataColumn(key = "deptName", value = "ba.dept_id")
)
List<Map<String, Object>> listMonthAlertStatus(@Param("param")BusinessAlertBo businessAlertBo);
@DataPermission(
@DataColumn(key = "deptName", value = "ba.dept_id")
)
List<Map<String, Object>> listDepartAlertStatus(@Param("param") BusinessAlertBo businessAlertBo);
}

4
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessDepartBoundaryMapper.java

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessDepartBoundary;
import org.dromara.common.mybatis.annotation.DataColumn;
import org.dromara.common.mybatis.annotation.DataPermission;
import java.util.List;
@ -23,4 +25,6 @@ public interface BusinessDepartBoundaryMapper extends BaseMapper<BusinessDepartB
void saveBatchBoundary(@Param("list") List<BusinessDepartBoundary> boundaryList);
String listJson(@Param("param") BusinessDepartBoundary departBoundary);
}

12
dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertStatisticsService.java

@ -1,5 +1,17 @@
package org.dromara.business.service;
import org.dromara.business.domain.bo.BusinessAlertBo;
import org.dromara.business.domain.model.StatObj;
import java.util.List;
public interface BusinessAlertStatisticsService {
List<StatObj> countMonthAlert(BusinessAlertBo businessAlertBo);
List<StatObj> countDepartAlert(BusinessAlertBo businessAlertBo);
List<StatObj> countMonthAlertStatus(BusinessAlertBo businessAlertBo);
List<StatObj> countDepartAlertStatus(BusinessAlertBo businessAlertBo);
}

4
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessDepartBoundaryService.java

@ -18,11 +18,13 @@ public interface IBusinessDepartBoundaryService extends IService<BusinessDepartB
List<BusinessDepartBoundary> queryByDeptId(String deptId);
boolean uploadShpFile(MultipartFile file);
boolean uploadShpFile(MultipartFile file,String deptId);
boolean deleteDepartBoundary(String id);
boolean updateDepartBoundary(BusinessDepartBoundary departBoundary);
boolean addDepartBoundary(BusinessDepartBoundary departBoundary);
String listJson(BusinessDepartBoundary departBoundary);
}

78
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java

@ -1,9 +1,24 @@
package org.dromara.business.service.impl;
import cn.hutool.core.util.ObjectUtil;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.business.domain.bo.BusinessAlertBo;
import org.dromara.business.domain.model.StatObj;
import org.dromara.business.mapper.BusinessAlertMapper;
import org.dromara.business.service.BusinessAlertStatisticsService;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.system.api.RemoteDeptService;
import org.dromara.system.api.domain.vo.RemoteDeptVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
*
*预警统计Service业务层处理
@ -12,9 +27,72 @@ import org.springframework.stereotype.Service;
@Service
public class BusinessAlertStatisticsServiceImpl implements BusinessAlertStatisticsService {
private final BusinessAlertMapper baseMapper;
@DubboReference
RemoteDeptService remoteDeptService;
/**
* 按照月份分类预警数量(包含权限)
* @param businessAlertBo
* @return
*/
@Override
public List<StatObj> countMonthAlert(BusinessAlertBo businessAlertBo) {
if (ObjectUtil.isEmpty(businessAlertBo.getDeptId())){
throw new ServiceException("部门【id】为空");
}
List<RemoteDeptVo> remoteDeptVoList = remoteDeptService.selectListByParentId(businessAlertBo.getDeptId());
List<Long> departIdList = remoteDeptVoList.stream().map(RemoteDeptVo::getDeptId).toList();
businessAlertBo.setDeptIdList(departIdList);
List<Map<String, Object>> mapList = baseMapper.listMonthAlert(businessAlertBo);
return mapList.stream().map(data -> new StatObj(data.get("dateMonth") + "", data.get("total"))).collect(Collectors.toList());
}
@Override
public List<StatObj>countDepartAlert(BusinessAlertBo 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());
}
@Override
public List<StatObj> countMonthAlertStatus(BusinessAlertBo businessAlertBo) {
List<Map<String, Object>> mapList = baseMapper.listMonthAlertStatus(businessAlertBo);
return mapList.stream()
.map(map -> new StatObj(
Objects.toString(map.get("dateMonth")),
List.of(
new StatObj("total", map.get("total")),
new StatObj("todoCount", map.get("todoCount")),
new StatObj("finishCount", map.get("finishCount"))
)
))
.collect(Collectors.toList());
}
@Override
public List<StatObj> countDepartAlertStatus(BusinessAlertBo businessAlertBo) {
List<Map<String, Object>> mapList = baseMapper.listDepartAlertStatus(businessAlertBo);
return mapList.stream()
.map(map -> new StatObj(
Objects.toString(map.get("deptName")),
List.of(
new StatObj("total", map.get("total")),
new StatObj("todoCount", map.get("todoCount")),
new StatObj("finishCount", map.get("finishCount"))
),"deptId",map.get("deptId")
))
.collect(Collectors.toList());
}
}

22
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessDepartBoundaryServiceImpl.java

@ -2,6 +2,7 @@ package org.dromara.business.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
@ -18,7 +19,9 @@ import org.dromara.business.utils.ShpAnalysisUtil;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.RemoteDeptService;
import org.dromara.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.datasource.DataSourceUtils;
import org.springframework.stereotype.Service;
@ -51,6 +54,8 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
@DubboReference
RemoteDeptService remoteDeptService;
private final DataSource dataSource;
@Override
public TableDataInfo<BusinessDepartBoundary> listSysDepartBoundary(PageQuery pageQuery, BusinessDepartBoundary departBoundary) {
Page<BusinessDepartBoundary> page = baseMapper.listSysDepartBoundary(pageQuery.build(),departBoundary);
@ -71,7 +76,7 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
@Override
@Transactional(rollbackFor = Exception.class)
public boolean uploadShpFile(MultipartFile file) {
public boolean uploadShpFile(MultipartFile file,String deptId) {
List<BusinessGeospatialVectors> geospatialVectorsList = new ArrayList<>();
try {
//1、首先调用解析工具拿到解析的字段集合
@ -135,14 +140,14 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
}
//6、生成新的对象集合存储数据表中
List<BusinessDepartBoundary> boundaryList = buildBusinessDepartBoundary(geospatialVectorsList);
List<BusinessDepartBoundary> boundaryList = buildBusinessDepartBoundary(geospatialVectorsList,deptId);
// 分批处理
int startIndex = 0; // 从第 0 条开始
int batchSize = 2000; // 每批处理 2000 条
boolean flag = BatchProcessorUtil.processBatches(boundaryList, batchSize, startIndex, batch -> {
//批量新增部门区域数据
this.baseMapper.saveBatchBoundary(batch);
// this.baseMapper.saveBatchBoundary(batch);
});
if (flag) {
@ -170,6 +175,15 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
return this.saveOrUpdate(departBoundary);
}
@Override
public String listJson(BusinessDepartBoundary departBoundary) {
if(StringUtils.isBlank(departBoundary.getDeptId())){
throw new ServiceException("部门【id】不存在");
}
return this.baseMapper.listJson(departBoundary);
}
@Override
public boolean deleteDepartBoundary(String id) {
BusinessDepartBoundary departBoundary = this.baseMapper.selectById(id);
@ -187,7 +201,7 @@ public class BusinessDepartBoundaryServiceImpl extends ServiceImpl<BusinessDepar
* @param geospatialVectorsList
* @return
*/
private List<BusinessDepartBoundary> buildBusinessDepartBoundary(List<BusinessGeospatialVectors> geospatialVectorsList) {
private List<BusinessDepartBoundary> buildBusinessDepartBoundary(List<BusinessGeospatialVectors> geospatialVectorsList,String deptId) {
List<BusinessDepartBoundary> resultList = new ArrayList<>();
List<Map<String,Object>> namePathList = remoteDeptService.getNamePathList();

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

@ -44,4 +44,162 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
${ew.getCustomSqlSegment}
</select>
<select id="listMonthAlert" resultType="java.util.Map">
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 0 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 0 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
union all
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 1 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 1 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
union all
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 2 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 2 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
union all
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 3 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 3 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
union all
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 4 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 4 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
union all
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 5 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 5 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
union all
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 6 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 6 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
union all
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 7 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 7 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
union all
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 8 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 8 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
union all
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 9 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 9 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
union all
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 10 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 10 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
union all
SELECT DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 11 MONTH), '%Y-%m') AS dateMonth,count(1) total from business_alert ba
where DATE_FORMAT(ba.create_time, '%Y-%m' ) = DATE_FORMAT(DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-01-01'), INTERVAL 11 MONTH), '%Y-%m')
<if test="param.deptIdList != null and param.deptIdList.size > 0">
and ba.dept_id in
<foreach collection="param.deptIdList" item="item" open="(" close=")" separator=",">
item
</foreach>
</if>
</select>
<select id="listDepartAlert" resultType="java.util.Map">
select ba.dept_name deptName, ba.dept_id deptId,count(1) total
from business_alert ba
where 1=1
<if test="param.createTime != null and param.createTime != ''">
and DATE_FORMAT(ba.create_time,'%Y-%m') = DATE_FORMAT(#{param.createTime},'%Y-%m')
</if>
GROUP BY ba.dept_name,ba.dept_id
</select>
<select id="listMonthAlertStatus" resultType="java.util.Map">
WITH RECURSIVE months AS (
SELECT MAKEDATE(YEAR(NOW()), 1) AS dateMonth
UNION ALL
SELECT DATE_ADD(dateMonth, INTERVAL 1 MONTH)
FROM months
WHERE <![CDATA[ dateMonth < LAST_DAY(MAKEDATE(YEAR(NOW()), 1) + INTERVAL 10 MONTH) ]]>
)
SELECT
DATE_FORMAT(m.dateMonth, '%Y-%m') AS dateMonth,
COALESCE(COUNT(ba.id), 0) AS total,
COALESCE(SUM(ba.handle_type = 'waiting'), 0) AS todoCount,
COALESCE(SUM(ba.handle_type = 'finish'), 0) AS finishCount
FROM months m
LEFT JOIN business_alert ba
ON DATE_FORMAT(ba.create_time, '%Y-%m') = DATE_FORMAT(m.dateMonth, '%Y-%m')
GROUP BY m.dateMonth
ORDER BY m.dateMonth
</select>
<select id="listDepartAlertStatus" resultType="java.util.Map">
SELECT
ba.dept_name deptName,
ba.dept_id deptId,
count( 1 ) total,
SUM( handle_type = 'waiting' ) AS todoCount,
SUM( handle_type = 'finish' ) AS finishCount
FROM
business_alert ba
where 1=1
<if test="param.createTime != null and param.createTime != ''">
and DATE_FORMAT(ba.create_time,'%Y-%m') = DATE_FORMAT(#{param.createTime},'%Y-%m')
</if>
GROUP BY
ba.dept_name,ba.dept_id
</select>
</mapper>

33
dk-modules/business/src/main/resources/mapper/business/BusinessDepartBoundaryMapper.xml

@ -111,4 +111,37 @@
</foreach>
</insert>
<select id="listJson" resultType="java.lang.String">
SELECT
JSON_OBJECT(
'type',
'FeatureCollection',
'features',
COALESCE (
JSON_ARRAYAGG(
JSON_OBJECT(
'type',
'Feature',
'properties',
JSON_OBJECT(
'deptId', l.dept_id,
'deptName', l.dept_name,
'adcode', l.shp_no,
'name', l.community_name,
'community_name', l.community_name
),
'geometry',
ST_AsGeoJSON(l.boundary)
)
),
JSON_ARRAY()
)
) AS landCategoriesJson
FROM
business_depart_boundary l
LEFT JOIN dk_cloud.sys_dept d ON l.dept_id = d.dept_id
WHERE
d.dept_id = #{param.deptId}
</select>
</mapper>

4
dk-modules/resource/src/main/java/org/dromara/resource/controller/SysEmailController.java

@ -2,6 +2,8 @@ package org.dromara.resource.controller;
import cn.hutool.core.util.RandomUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.constant.Constants;
@ -30,6 +32,7 @@ import java.time.Duration;
@RequiredArgsConstructor
@RestController
@RequestMapping("/email")
@Tag(name = "邮件功能")
public class SysEmailController extends BaseController {
private final MailProperties mailProperties;
@ -39,6 +42,7 @@ public class SysEmailController extends BaseController {
*
* @param email 邮箱
*/
@Operation(summary = "邮箱验证码",description = "邮箱验证码")
@RateLimiter(key = "#email", time = 60, count = 1)
@GetMapping("/code")
public R<Void> emailCode(@NotBlank(message = "{user.email.not.blank}") String email) {

9
dk-modules/resource/src/main/java/org/dromara/resource/controller/SysOssConfigController.java

@ -1,6 +1,8 @@
package org.dromara.resource.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
@ -28,6 +30,7 @@ import java.util.Arrays;
* @author 孤舟烟雨
* @date 2021-08-13
*/
@Tag(name = "对象存储配置")
@Validated
@RequiredArgsConstructor
@RestController
@ -41,6 +44,7 @@ public class SysOssConfigController extends BaseController {
*/
@SaCheckPermission("system:ossConfig:list")
@GetMapping("/list")
@Operation(summary = "查询对象存储配置列表",description = "查询对象存储配置列表")
public TableDataInfo<SysOssConfigVo> list(@Validated(QueryGroup.class) SysOssConfigBo bo, PageQuery pageQuery) {
return iSysOssConfigService.queryPageList(bo, pageQuery);
}
@ -52,6 +56,7 @@ public class SysOssConfigController extends BaseController {
*/
@SaCheckPermission("system:ossConfig:list")
@GetMapping("/{ossConfigId}")
@Operation(summary = "获取对象存储配置详细信息",description = "获取对象存储配置详细信息")
public R<SysOssConfigVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("ossConfigId") Long ossConfigId) {
return R.ok(iSysOssConfigService.queryById(ossConfigId));
}
@ -62,6 +67,7 @@ public class SysOssConfigController extends BaseController {
@SaCheckPermission("system:ossConfig:add")
@Log(title = "对象存储配置", businessType = BusinessType.INSERT)
@PostMapping()
@Operation(summary = "新增对象存储配置",description = "新增对象存储配置")
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOssConfigBo bo) {
return toAjax(iSysOssConfigService.insertByBo(bo));
}
@ -72,6 +78,7 @@ public class SysOssConfigController extends BaseController {
@SaCheckPermission("system:ossConfig:edit")
@Log(title = "对象存储配置", businessType = BusinessType.UPDATE)
@PutMapping()
@Operation(summary = "对象存储配置",description = "对象存储配置")
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOssConfigBo bo) {
return toAjax(iSysOssConfigService.updateByBo(bo));
}
@ -84,6 +91,7 @@ public class SysOssConfigController extends BaseController {
@SaCheckPermission("system:ossConfig:remove")
@Log(title = "对象存储配置", businessType = BusinessType.DELETE)
@DeleteMapping("/{ossConfigIds}")
@Operation(summary = "删除对象存储配置",description = "删除对象存储配置")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ossConfigIds) {
return toAjax(iSysOssConfigService.deleteWithValidByIds(Arrays.asList(ossConfigIds), true));
}
@ -94,6 +102,7 @@ public class SysOssConfigController extends BaseController {
@SaCheckPermission("system:ossConfig:edit")
@Log(title = "对象存储状态修改", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus")
@Operation(summary = "对象存储状态修改",description = "对象存储状态修改")
public R<Void> changeStatus(@RequestBody SysOssConfigBo bo) {
return toAjax(iSysOssConfigService.updateOssConfigStatus(bo));
}

8
dk-modules/resource/src/main/java/org/dromara/resource/controller/SysOssController.java

@ -3,6 +3,8 @@ package org.dromara.resource.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.ObjectUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.QueryGroup;
@ -35,6 +37,7 @@ import java.util.List;
@RequiredArgsConstructor
@RestController
@RequestMapping("/oss")
@Tag(name = "文件上传")
public class SysOssController extends BaseController {
private final ISysOssService iSysOssService;
@ -44,6 +47,7 @@ public class SysOssController extends BaseController {
*/
@SaCheckPermission("system:oss:list")
@GetMapping("/list")
@Operation(summary = "查询OSS对象存储列表",description = "查询OSS对象存储列表")
public TableDataInfo<SysOssVo> list(@Validated(QueryGroup.class) SysOssBo bo, PageQuery pageQuery) {
return iSysOssService.queryPageList(bo, pageQuery);
}
@ -55,6 +59,7 @@ public class SysOssController extends BaseController {
*/
@SaCheckPermission("system:oss:list")
@GetMapping("/listByIds/{ossIds}")
@Operation(summary = "查询OSS对象基于id串",description = "查询OSS对象基于id串")
public R<List<SysOssVo>> listByIds(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ossIds) {
List<SysOssVo> list = iSysOssService.listByIds(Arrays.asList(ossIds));
return R.ok(list);
@ -68,6 +73,7 @@ public class SysOssController extends BaseController {
@SaCheckPermission("system:oss:upload")
@Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@Operation(summary = "上传OSS对象存储",description = "上传OSS对象存储")
public R<SysOssUploadVo> upload(@RequestPart("file") MultipartFile file) {
if (ObjectUtil.isNull(file)) {
return R.fail("上传文件不能为空");
@ -87,6 +93,7 @@ public class SysOssController extends BaseController {
*/
@SaCheckPermission("system:oss:download")
@GetMapping("/download/{ossId}")
@Operation(summary = "下载OSS对象存储",description = "下载OSS对象存储")
public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException {
iSysOssService.download(ossId, response);
}
@ -99,6 +106,7 @@ public class SysOssController extends BaseController {
@SaCheckPermission("system:oss:remove")
@Log(title = "OSS对象存储", businessType = BusinessType.DELETE)
@DeleteMapping("/{ossIds}")
@Operation(summary = "删除OSS对象存储",description = "删除OSS对象存储")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ossIds) {
return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true));
}

4
dk-modules/resource/src/main/java/org/dromara/resource/controller/SysSmsController.java

@ -2,6 +2,8 @@ package org.dromara.resource.controller;
import cn.hutool.core.util.RandomUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -32,6 +34,7 @@ import java.util.LinkedHashMap;
@RequiredArgsConstructor
@RestController
@RequestMapping("/sms")
@Tag(name = "短信功能")
public class SysSmsController extends BaseController {
/**
@ -41,6 +44,7 @@ public class SysSmsController extends BaseController {
*/
@RateLimiter(key = "#phonenumber", time = 60, count = 1)
@GetMapping("/code")
@Operation(summary = "短信验证码",description = "短信验证码")
public R<Void> smsCaptcha(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) {
String key = GlobalConstants.CAPTCHA_CODE_KEY + phonenumber;
String code = RandomUtil.randomNumbers(4);

4
dk-modules/system/src/main/java/org/dromara/system/controller/monitor/CacheController.java

@ -1,6 +1,8 @@
package org.dromara.system.controller.monitor;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.StringUtils;
@ -21,6 +23,7 @@ import java.util.*;
@RequiredArgsConstructor
@RestController
@RequestMapping("/cache")
@Tag(name = "缓存监控")
public class CacheController {
private final RedissonConnectionFactory connectionFactory;
@ -30,6 +33,7 @@ public class CacheController {
*/
@SaCheckPermission("monitor:cache:list")
@GetMapping()
@Operation(summary = "获取缓存监控列表",description = "获取缓存监控列表")
public R<CacheListInfoVo> getInfo() throws Exception {
RedisConnection connection = connectionFactory.getConnection();
Properties commandStats = connection.commands().info("commandstats");

8
dk-modules/system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java

@ -1,6 +1,8 @@
package org.dromara.system.controller.monitor;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheConstants;
@ -25,6 +27,7 @@ import java.util.List;
*
* @author Lion Li
*/
@Tag(name = "系统访问记录")
@Validated
@RequiredArgsConstructor
@RestController
@ -36,6 +39,7 @@ public class SysLogininforController extends BaseController {
/**
* 获取系统访问记录列表
*/
@Operation(summary = "获取系统访问记录列表",description = "获取系统访问记录列表")
@SaCheckPermission("monitor:logininfor:list")
@GetMapping("/list")
public TableDataInfo<SysLogininforVo> list(SysLogininforBo logininfor, PageQuery pageQuery) {
@ -45,6 +49,7 @@ public class SysLogininforController extends BaseController {
/**
* 导出系统访问记录列表
*/
@Operation(summary = "登录日志",description = "登录日志")
@Log(title = "登录日志", businessType = BusinessType.EXPORT)
@SaCheckPermission("monitor:logininfor:export")
@PostMapping("/export")
@ -57,6 +62,7 @@ public class SysLogininforController extends BaseController {
* 批量删除登录日志
* @param infoIds 日志ids
*/
@Operation(summary = "登录日志",description = "登录日志")
@SaCheckPermission("monitor:logininfor:remove")
@Log(title = "登录日志", businessType = BusinessType.DELETE)
@DeleteMapping("/{infoIds}")
@ -67,6 +73,7 @@ public class SysLogininforController extends BaseController {
/**
* 清理系统访问记录
*/
@Operation(summary = "清理系统访问记录",description = "清理系统访问记录")
@SaCheckPermission("monitor:logininfor:remove")
@Log(title = "登录日志", businessType = BusinessType.CLEAN)
@DeleteMapping("/clean")
@ -75,6 +82,7 @@ public class SysLogininforController extends BaseController {
return R.ok();
}
@Operation(summary = "账户解锁",description = "账户解锁")
@SaCheckPermission("monitor:logininfor:unlock")
@Log(title = "账户解锁", businessType = BusinessType.OTHER)
@GetMapping("/unlock/{userName}")

7
dk-modules/system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java

@ -1,6 +1,8 @@
package org.dromara.system.controller.monitor;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.web.core.BaseController;
@ -23,6 +25,7 @@ import java.util.List;
*
* @author Lion Li
*/
@Tag(name = "操作日志记录")
@Validated
@RequiredArgsConstructor
@RestController
@ -34,6 +37,7 @@ public class SysOperlogController extends BaseController {
/**
* 获取操作日志记录列表
*/
@Operation(summary = "获取操作日志记录列表",description = "获取操作日志记录列表")
@SaCheckPermission("monitor:operlog:list")
@GetMapping("/list")
public TableDataInfo<SysOperLogVo> list(SysOperLogBo operLog, PageQuery pageQuery) {
@ -43,6 +47,7 @@ public class SysOperlogController extends BaseController {
/**
* 导出操作日志记录列表
*/
@Operation(summary = "导出操作日志记录列表",description = "导出操作日志记录列表")
@Log(title = "操作日志", businessType = BusinessType.EXPORT)
@SaCheckPermission("monitor:operlog:export")
@PostMapping("/export")
@ -55,6 +60,7 @@ public class SysOperlogController extends BaseController {
* 批量删除操作日志记录
* @param operIds 日志ids
*/
@Operation(summary = "批量删除操作日志记录",description = "批量删除操作日志记录")
@Log(title = "操作日志", businessType = BusinessType.DELETE)
@SaCheckPermission("monitor:operlog:remove")
@DeleteMapping("/{operIds}")
@ -65,6 +71,7 @@ public class SysOperlogController extends BaseController {
/**
* 清理操作日志记录
*/
@Operation(summary = "清理操作日志记录",description = "清理操作日志记录")
@SaCheckPermission("monitor:operlog:remove")
@Log(title = "操作日志", businessType = BusinessType.CLEAN)
@DeleteMapping("/clean")

11
dk-modules/system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java

@ -4,6 +4,8 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.exception.NotLoginException;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.bean.BeanUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheConstants;
import org.dromara.common.core.domain.R;
@ -27,6 +29,7 @@ import java.util.stream.Collectors;
*
* @author Lion Li
*/
@Tag(name = "在线用户监控")
@RequiredArgsConstructor
@RestController
@RequestMapping("/online")
@ -38,6 +41,7 @@ public class SysUserOnlineController extends BaseController {
* @param ipaddr IP地址
* @param userName 用户名
*/
@Operation(summary = "获取在线用户监控列表",description = "获取在线用户监控列表")
@SaCheckPermission("monitor:online:list")
@GetMapping("/list")
public TableDataInfo<SysUserOnline> list(String ipaddr, String userName) {
@ -77,8 +81,9 @@ public class SysUserOnlineController extends BaseController {
*
* @param tokenId token值
*/
@Operation(summary = "强退用户",description = "强退用户")
@SaCheckPermission("monitor:online:forceLogout")
@Log(title = "在线用户", businessType = BusinessType.FORCE)
@Log(title = "强退用户", businessType = BusinessType.FORCE)
@DeleteMapping("/{tokenId}")
public R<Void> forceLogout(@PathVariable String tokenId) {
try {
@ -91,6 +96,7 @@ public class SysUserOnlineController extends BaseController {
/**
* 获取当前用户登录在线设备
*/
@Operation(summary = "获取当前用户登录在线设备",description = "获取当前用户登录在线设备")
@GetMapping()
public TableDataInfo<SysUserOnline> getInfo() {
// 获取指定账号 id 的 token 集合
@ -111,7 +117,8 @@ public class SysUserOnlineController extends BaseController {
*
* @param tokenId token值
*/
@Log(title = "在线设备", businessType = BusinessType.FORCE)
@Operation(summary = "强退当前在线设备",description = "强退当前在线设备")
@Log(title = "强退当前在线设备", businessType = BusinessType.FORCE)
@PostMapping("/{tokenId}")
public R<Void> remove(@PathVariable("tokenId") String tokenId) {
try {

7
dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java

@ -53,4 +53,11 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
public List<Map<String,Object>> getNamePathList() {
return sysDeptService.getNamePathList();
}
@Override
public List<RemoteDeptVo> selectListByParentId(String deptId) {
List<SysDeptVo> deptVoList = sysDeptService.selectListByParentId(deptId);
return BeanUtil.copyToList(deptVoList, RemoteDeptVo.class);
}
}

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

@ -146,4 +146,10 @@ public interface ISysDeptService {
*/
List<Map<String,Object>> getNamePathList();
/**
* 根据父级找子级
* @param deptId
* @return
*/
List<SysDeptVo> selectListByParentId(String deptId);
}

9
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java

@ -1,5 +1,6 @@
package org.dromara.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.tree.Tree;
@ -19,6 +20,7 @@ import org.dromara.common.core.utils.TreeBuildUtils;
import org.dromara.common.mybatis.helper.DataBaseHelper;
import org.dromara.common.redis.utils.CacheUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.domain.vo.RemoteDeptVo;
import org.dromara.system.domain.SysDept;
import org.dromara.system.domain.SysRole;
import org.dromara.system.domain.SysUser;
@ -361,4 +363,11 @@ public class SysDeptServiceImpl implements ISysDeptService {
return baseMapper.getNamePathList();
}
@Override
public List<SysDeptVo> selectListByParentId(String deptId) {
List<SysDept> resultList = baseMapper.selectListByParentId(Long.parseLong(deptId));
return BeanUtil.copyToList(resultList, SysDeptVo.class);
}
}

20
dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java

@ -2,6 +2,8 @@ package org.dromara.workflow.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.lang.tree.Tree;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
@ -27,6 +29,7 @@ import java.util.List;
*
* @author may
*/
@Tag(name = "流程分类")
@ConditionalOnEnable
@Validated
@RequiredArgsConstructor
@ -39,7 +42,7 @@ public class FlwCategoryController extends BaseController {
/**
* 查询流程分类列表
*/
@SaCheckPermission("workflow:category:list")
@Operation(summary = "查询流程分类列表",description ="查询流程分类列表")
@GetMapping("/list")
public R<List<FlowCategoryVo>> list(FlowCategoryBo bo) {
List<FlowCategoryVo> list = flwCategoryService.queryList(bo);
@ -49,8 +52,7 @@ public class FlwCategoryController extends BaseController {
/**
* 导出流程分类列表
*/
@SaCheckPermission("workflow:category:export")
@Log(title = "流程分类", businessType = BusinessType.EXPORT)
@Operation(summary = "导出流程分类列表",description ="导出流程分类列表")
@PostMapping("/export")
public void export(FlowCategoryBo bo, HttpServletResponse response) {
List<FlowCategoryVo> list = flwCategoryService.queryList(bo);
@ -62,7 +64,7 @@ public class FlwCategoryController extends BaseController {
*
* @param categoryId 主键
*/
@SaCheckPermission("workflow:category:query")
@Operation(summary = "获取流程分类详细信息",description ="获取流程分类详细信息")
@GetMapping("/{categoryId}")
public R<FlowCategoryVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long categoryId) {
flwCategoryService.checkCategoryDataScope(categoryId);
@ -72,8 +74,7 @@ public class FlwCategoryController extends BaseController {
/**
* 新增流程分类
*/
@SaCheckPermission("workflow:category:add")
@Log(title = "流程分类", businessType = BusinessType.INSERT)
@Operation(summary = "新增流程分类",description ="新增流程分类")
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody FlowCategoryBo category) {
@ -86,8 +87,7 @@ public class FlwCategoryController extends BaseController {
/**
* 修改流程分类
*/
@SaCheckPermission("workflow:category:edit")
@Log(title = "流程分类", businessType = BusinessType.UPDATE)
@Operation(summary = "修改流程分类",description ="修改流程分类")
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody FlowCategoryBo category) {
@ -106,8 +106,7 @@ public class FlwCategoryController extends BaseController {
*
* @param categoryId 主键
*/
@SaCheckPermission("workflow:category:remove")
@Log(title = "流程分类", businessType = BusinessType.DELETE)
@Operation(summary = "删除流程分类",description ="删除流程分类")
@DeleteMapping("/{categoryId}")
public R<Void> remove(@PathVariable Long categoryId) {
if (flwCategoryService.hasChildByCategoryId(categoryId)) {
@ -124,6 +123,7 @@ public class FlwCategoryController extends BaseController {
*
* @param categoryBo 流程分类
*/
@Operation(summary = "获取流程分类树列表",description ="获取流程分类树列表")
@GetMapping("/categoryTree")
public R<List<Tree<String>>> categoryTree(FlowCategoryBo categoryBo) {
return R.ok(flwCategoryService.selectCategoryTreeList(categoryBo));

24
dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java

@ -1,5 +1,7 @@
package org.dromara.workflow.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
@ -28,6 +30,7 @@ import java.util.List;
*
* @author may
*/
@Tag(name = "流程定义管理")
@ConditionalOnEnable
@Validated
@RequiredArgsConstructor
@ -44,6 +47,7 @@ public class FlwDefinitionController extends BaseController {
* @param flowDefinition 参数
* @param pageQuery 分页
*/
@Operation(summary = "查询流程定义列表",description = "查询流程定义列表")
@GetMapping("/list")
public TableDataInfo<FlowDefinitionVo> list(FlowDefinition flowDefinition, PageQuery pageQuery) {
return flwDefinitionService.queryList(flowDefinition, pageQuery);
@ -55,6 +59,7 @@ public class FlwDefinitionController extends BaseController {
* @param flowDefinition 参数
* @param pageQuery 分页
*/
@Operation(summary = "查询未发布的流程定义列表",description = "查询未发布的流程定义列表")
@GetMapping("/unPublishList")
public TableDataInfo<FlowDefinitionVo> unPublishList(FlowDefinition flowDefinition, PageQuery pageQuery) {
return flwDefinitionService.unPublishList(flowDefinition, pageQuery);
@ -65,6 +70,7 @@ public class FlwDefinitionController extends BaseController {
*
* @param id 流程定义id
*/
@Operation(summary = "获取流程定义详细信息",description = "获取流程定义详细信息")
@GetMapping(value = "/{id}")
public R<Definition> getInfo(@PathVariable Long id) {
return R.ok(defService.getById(id));
@ -75,7 +81,7 @@ public class FlwDefinitionController extends BaseController {
*
* @param flowDefinition 参数
*/
@Log(title = "流程定义", businessType = BusinessType.INSERT)
@Operation(summary = "新增流程定义",description = "新增流程定义")
@PostMapping
@RepeatSubmit()
@Transactional(rollbackFor = Exception.class)
@ -88,7 +94,7 @@ public class FlwDefinitionController extends BaseController {
*
* @param flowDefinition 参数
*/
@Log(title = "流程定义", businessType = BusinessType.UPDATE)
@Operation(summary = "修改流程定义",description = "修改流程定义")
@PutMapping
@RepeatSubmit()
@Transactional(rollbackFor = Exception.class)
@ -101,7 +107,7 @@ public class FlwDefinitionController extends BaseController {
*
* @param id 流程定义id
*/
@Log(title = "流程定义", businessType = BusinessType.INSERT)
@Operation(summary = "发布流程定义",description = "发布流程定义")
@PutMapping("/publish/{id}")
@RepeatSubmit()
public R<Boolean> publish(@PathVariable Long id) {
@ -113,7 +119,7 @@ public class FlwDefinitionController extends BaseController {
*
* @param id 流程定义id
*/
@Log(title = "流程定义", businessType = BusinessType.INSERT)
@Operation(summary = "取消发布流程定义",description = "取消发布流程定义")
@PutMapping("/unPublish/{id}")
@RepeatSubmit()
@Transactional(rollbackFor = Exception.class)
@ -124,7 +130,7 @@ public class FlwDefinitionController extends BaseController {
/**
* 删除流程定义
*/
@Log(title = "流程定义", businessType = BusinessType.DELETE)
@Operation(summary = "删除流程定义",description = "删除流程定义")
@DeleteMapping("/{ids}")
public R<Void> remove(@PathVariable List<Long> ids) {
return toAjax(flwDefinitionService.removeDef(ids));
@ -135,7 +141,7 @@ public class FlwDefinitionController extends BaseController {
*
* @param id 流程定义id
*/
@Log(title = "流程定义", businessType = BusinessType.INSERT)
@Operation(summary = "复制流程定义",description = "复制流程定义")
@PostMapping("/copy/{id}")
@RepeatSubmit()
@Transactional(rollbackFor = Exception.class)
@ -149,7 +155,7 @@ public class FlwDefinitionController extends BaseController {
* @param file 文件
* @param category 分类
*/
@Log(title = "流程定义", businessType = BusinessType.IMPORT)
@Operation(summary = "导入流程定义",description = "导入流程定义")
@PostMapping("/importDef")
public R<Boolean> importDef(MultipartFile file, String category) {
return R.ok(flwDefinitionService.importJson(file, category));
@ -162,7 +168,7 @@ public class FlwDefinitionController extends BaseController {
* @param response 响应
* @throws IOException 异常
*/
@Log(title = "流程定义", businessType = BusinessType.EXPORT)
@Operation(summary = "导出流程定义",description = "导出流程定义")
@PostMapping("/exportDef/{id}")
public void exportDef(@PathVariable Long id, HttpServletResponse response) throws IOException {
flwDefinitionService.exportDef(id, response);
@ -173,6 +179,7 @@ public class FlwDefinitionController extends BaseController {
*
* @param id 流程定义id
*/
@Operation(summary = "获取流程定义JSON字符串",description = "获取流程定义JSON字符串")
@GetMapping("/xmlString/{id}")
public R<String> xmlString(@PathVariable Long id) {
return R.ok("操作成功", defService.exportJson(id));
@ -184,6 +191,7 @@ public class FlwDefinitionController extends BaseController {
* @param id 流程定义id
* @param active 激活/挂起
*/
@Operation(summary = "激活/挂起流程定义",description = "激活/挂起流程定义")
@RepeatSubmit()
@PutMapping("/active/{id}")
@Transactional(rollbackFor = Exception.class)

15
dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java

@ -1,5 +1,7 @@
package org.dromara.workflow.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
@ -26,6 +28,7 @@ import java.util.Map;
*
* @author may
*/
@Tag(name = "流程实例管理")
@ConditionalOnEnable
@Validated
@RequiredArgsConstructor
@ -42,6 +45,7 @@ public class FlwInstanceController extends BaseController {
* @param flowInstanceBo 流程实例
* @param pageQuery 分页
*/
@Operation(summary = "查询正在运行的流程实例列表",description = "查询正在运行的流程实例列表")
@GetMapping("/pageByRunning")
public TableDataInfo<FlowInstanceVo> selectRunningInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
return flwInstanceService.selectRunningInstanceList(flowInstanceBo, pageQuery);
@ -53,6 +57,7 @@ public class FlwInstanceController extends BaseController {
* @param flowInstanceBo 流程实例
* @param pageQuery 分页
*/
@Operation(summary = "查询已结束的流程实例列表",description = "查询已结束的流程实例列表")
@GetMapping("/pageByFinish")
public TableDataInfo<FlowInstanceVo> selectFinishInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
return flwInstanceService.selectFinishInstanceList(flowInstanceBo, pageQuery);
@ -63,6 +68,7 @@ public class FlwInstanceController extends BaseController {
*
* @param businessId 业务id
*/
@Operation(summary = "根据业务id查询流程实例详细信息",description = "根据业务id查询流程实例详细信息")
@GetMapping("/getInfo/{businessId}")
public R<FlowInstanceVo> getInfo(@PathVariable Long businessId) {
return R.ok(flwInstanceService.queryByBusinessId(businessId));
@ -73,6 +79,7 @@ public class FlwInstanceController extends BaseController {
*
* @param businessIds 业务id
*/
@Operation(summary = "按照业务id删除流程实例",description = "按照业务id删除流程实例")
@DeleteMapping("/deleteByBusinessIds/{businessIds}")
public R<Void> deleteByBusinessIds(@PathVariable List<Long> businessIds) {
return toAjax(flwInstanceService.deleteByBusinessIds(businessIds));
@ -83,6 +90,7 @@ public class FlwInstanceController extends BaseController {
*
* @param instanceIds 实例id
*/
@Operation(summary = "按照实例id删除流程实例",description = "按照实例id删除流程实例")
@DeleteMapping("/deleteByInstanceIds/{instanceIds}")
public R<Void> deleteByInstanceIds(@PathVariable List<Long> instanceIds) {
return toAjax(flwInstanceService.deleteByInstanceIds(instanceIds));
@ -93,6 +101,7 @@ public class FlwInstanceController extends BaseController {
*
* @param bo 参数
*/
@Operation(summary = "撤销流程",description = "撤销流程")
@RepeatSubmit()
@PutMapping("/cancelProcessApply")
public R<Void> cancelProcessApply(@RequestBody FlowCancelBo bo) {
@ -105,6 +114,7 @@ public class FlwInstanceController extends BaseController {
* @param id 流程实例id
* @param active 激活/挂起
*/
@Operation(summary = "激活/挂起流程实例",description = "激活/挂起流程实例")
@RepeatSubmit()
@PutMapping("/active/{id}")
public R<Boolean> active(@PathVariable Long id, @RequestParam boolean active) {
@ -117,6 +127,7 @@ public class FlwInstanceController extends BaseController {
* @param flowInstanceBo 参数
* @param pageQuery 分页
*/
@Operation(summary = "获取当前登陆人发起的流程实例",description = "获取当前登陆人发起的流程实例")
@GetMapping("/pageByCurrent")
public TableDataInfo<FlowInstanceVo> selectCurrentInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
return flwInstanceService.selectCurrentInstanceList(flowInstanceBo, pageQuery);
@ -127,6 +138,7 @@ public class FlwInstanceController extends BaseController {
*
* @param businessId 业务id
*/
@Operation(summary = "获取流程图,流程记录",description = "获取流程图,流程记录")
@GetMapping("/flowImage/{businessId}")
public R<Map<String, Object>> flowImage(@PathVariable String businessId) {
return R.ok(flwInstanceService.flowImage(businessId));
@ -137,6 +149,7 @@ public class FlwInstanceController extends BaseController {
*
* @param instanceId 流程实例id
*/
@Operation(summary = "获取流程变量",description = "获取流程变量")
@GetMapping("/instanceVariable/{instanceId}")
public R<Map<String, Object>> instanceVariable(@PathVariable Long instanceId) {
return R.ok(flwInstanceService.instanceVariable(instanceId));
@ -147,7 +160,7 @@ public class FlwInstanceController extends BaseController {
*
* @param bo 参数
*/
@Log(title = "流程实例管理", businessType = BusinessType.INSERT)
@Operation(summary = "作废流程",description = "作废流程")
@RepeatSubmit()
@PostMapping("/invalid")
public R<Boolean> invalid(@Validated @RequestBody FlowInvalidBo bo) {

27
dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java

@ -1,5 +1,8 @@
package org.dromara.workflow.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
@ -27,6 +30,7 @@ import java.util.List;
*
* @author may
*/
@Tag(name = "任务管理")
@ConditionalOnEnable
@Validated
@RequiredArgsConstructor
@ -41,7 +45,7 @@ public class FlwTaskController extends BaseController {
*
* @param startProcessBo 启动流程参数
*/
@Log(title = "任务管理", businessType = BusinessType.INSERT)
@Operation(summary = "启动任务",description = "启动任务")
@RepeatSubmit()
@PostMapping("/startWorkFlow")
public R<RemoteStartProcessReturn> startWorkFlow(@Validated(AddGroup.class) @RequestBody StartProcessBo startProcessBo) {
@ -54,7 +58,7 @@ public class FlwTaskController extends BaseController {
*
* @param completeTaskBo 办理任务参数
*/
@Log(title = "任务管理", businessType = BusinessType.INSERT)
@Operation(summary = "办理任务",description = "办理任务")
@RepeatSubmit()
@PostMapping("/completeTask")
public R<Void> completeTask(@Validated(AddGroup.class) @RequestBody CompleteTaskBo completeTaskBo) {
@ -67,6 +71,7 @@ public class FlwTaskController extends BaseController {
* @param flowTaskBo 参数
* @param pageQuery 分页
*/
@Operation(summary = "查询当前用户的待办任务",description = "查询当前用户的待办任务")
@GetMapping("/pageByTaskWait")
public TableDataInfo<FlowTaskVo> pageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
return flwTaskService.pageByTaskWait(flowTaskBo, pageQuery);
@ -78,7 +83,7 @@ public class FlwTaskController extends BaseController {
* @param flowTaskBo 参数
* @param pageQuery 分页
*/
@Operation(summary = "查询当前用户的已办任务",description = "查询当前用户的已办任务")
@GetMapping("/pageByTaskFinish")
public TableDataInfo<FlowHisTaskVo> pageByTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
return flwTaskService.pageByTaskFinish(flowTaskBo, pageQuery);
@ -90,6 +95,7 @@ public class FlwTaskController extends BaseController {
* @param flowTaskBo 参数
* @param pageQuery 分页
*/
@Operation(summary = "查询待办任务",description = "查询待办任务")
@GetMapping("/pageByAllTaskWait")
public TableDataInfo<FlowTaskVo> pageByAllTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
return flwTaskService.pageByAllTaskWait(flowTaskBo, pageQuery);
@ -101,6 +107,7 @@ public class FlwTaskController extends BaseController {
* @param flowTaskBo 参数
* @param pageQuery 分页
*/
@Operation(summary = "查询已办任务",description = "查询已办任务")
@GetMapping("/pageByAllTaskFinish")
public TableDataInfo<FlowHisTaskVo> pageByAllTaskFinish(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
return flwTaskService.pageByAllTaskFinish(flowTaskBo, pageQuery);
@ -112,6 +119,7 @@ public class FlwTaskController extends BaseController {
* @param flowTaskBo 参数
* @param pageQuery 分页
*/
@Operation(summary = "查询当前用户的抄送",description = "查询当前用户的抄送")
@GetMapping("/pageByTaskCopy")
public TableDataInfo<FlowTaskVo> pageByTaskCopy(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
return flwTaskService.pageByTaskCopy(flowTaskBo, pageQuery);
@ -122,6 +130,7 @@ public class FlwTaskController extends BaseController {
*
* @param taskId 任务id
*/
@Operation(summary = "根据taskId查询任务",description = "根据taskId查询任务")
@GetMapping("/getTask/{taskId}")
public R<FlowTaskVo> getTask(@PathVariable Long taskId) {
return R.ok(flwTaskService.selectById(taskId));
@ -132,7 +141,7 @@ public class FlwTaskController extends BaseController {
*
* @param bo 参数
*/
@Log(title = "任务管理", businessType = BusinessType.INSERT)
@Operation(summary = "终止任务",description = "终止任务")
@RepeatSubmit()
@PostMapping("/terminationTask")
public R<Boolean> terminationTask(@RequestBody FlowTerminationBo bo) {
@ -145,7 +154,9 @@ public class FlwTaskController extends BaseController {
* @param bo 参数
* @param taskOperation 操作类型委派 delegateTask转办 transferTask加签 addSignature减签 reductionSignature
*/
@Log(title = "任务管理", businessType = BusinessType.UPDATE)
@Operation(summary = "任务操作",description = "任务操作",parameters = {
@Parameter(name = "taskOperation", description = "操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature")
})
@RepeatSubmit
@PostMapping("/taskOperation/{taskOperation}")
public R<Void> taskOperation(@Validated @RequestBody TaskOperationBo bo, @PathVariable String taskOperation) {
@ -158,7 +169,7 @@ public class FlwTaskController extends BaseController {
* @param taskIdList 任务id
* @param userId 办理人id
*/
@Log(title = "任务管理", businessType = BusinessType.UPDATE)
@Operation(summary = "修改任务办理人",description = "修改任务办理人")
@RepeatSubmit()
@PutMapping("/updateAssignee/{userId}")
public R<Void> updateAssignee(@RequestBody List<Long> taskIdList, @PathVariable String userId) {
@ -170,7 +181,7 @@ public class FlwTaskController extends BaseController {
*
* @param bo 参数
*/
@Log(title = "任务管理", businessType = BusinessType.INSERT)
@Operation(summary = "驳回审批",description = "驳回审批")
@RepeatSubmit()
@PostMapping("/backProcess")
public R<Void> backProcess(@Validated({AddGroup.class}) @RequestBody BackProcessBo bo) {
@ -183,6 +194,7 @@ public class FlwTaskController extends BaseController {
* @param definitionId 流程定义id
* @param nowNodeCode 当前节点
*/
@Operation(summary = "获取可驳回的前置节点",description = "获取可驳回的前置节点")
@GetMapping("/getBackTaskNode/{definitionId}/{nowNodeCode}")
public R<List<Node>> getBackTaskNode(@PathVariable Long definitionId, @PathVariable String nowNodeCode) {
return R.ok(flwTaskService.getBackTaskNode(definitionId, nowNodeCode));
@ -193,6 +205,7 @@ public class FlwTaskController extends BaseController {
*
* @param taskId 任务id
*/
@Operation(summary = "获取当前任务的所有办理人",description = "获取当前任务的所有办理人")
@GetMapping("/currentTaskAllUser/{taskId}")
public R<List<RemoteUserVo>> currentTaskAllUser(@PathVariable Long taskId) {
return R.ok(flwTaskService.currentTaskAllUser(taskId));

Loading…
Cancel
Save