diff --git a/src/main/java/com/ydool/common/constant/UrlConstant.java b/src/main/java/com/ydool/common/constant/UrlConstant.java
index 2dd4290..7a99c34 100644
--- a/src/main/java/com/ydool/common/constant/UrlConstant.java
+++ b/src/main/java/com/ydool/common/constant/UrlConstant.java
@@ -66,4 +66,5 @@ public interface UrlConstant {
String APP_PRIVATE_KEY = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAL5VDvlBzzvFZzMiLPLx83IH65f/1tQs8GMXfHAMDTsEczogqkt6W3KQ0G9B2L7Kvp470GHgYf+reTHL65Oblt90CogYdr4ulm0/K9+iMrdbmGu4B5qSMVzs6E+up6OOgdwp+zqItQ2fies5j2twqYcxJKxdv4xEN9ApBFwu8XcxAgMBAAECgYBwpd8K30xLz/XYaa24zEKNhuqFN8JqKX7M5yWbG0bpWyTnjlW7/lsJX3Q9pPcnVM+kzznx89+MdmxwcISpBDkyWh7MOVg3Y3F3ChSO6B/Gap33YeinYcUGn2PQ/q6yh4Wpj5BuGkSo7sMPeGuM+NrO0KwLOa39XJ+jkMNsFt3D0QJBAOFiyPl5BAW8tEdQJTfhyXhKhsU894BN7V5kfAzDd7/oQmKY6lIzgizhp3DVLOav6js6nLiQ3PO0m3TTgKpS0LsCQQDYL1+1+CbnMDE5Cth0MspI98O89j27Ira6ZuPMjjs8gGh0qPLRj5hBcqiA0hMAuSxQylQ/TAxAWWMcvb+LoT8DAkEA0Y8u/D5XzhnJqXDMWiwWTkFFE8j++w35wUU+zgNEqWuDpfc2D54S0DYzoEalTAyOhemWZElVF0d7L2GkBTmhFwJASzCe72Fx1nLyi85z3mZT6PETyUMz0USPnWFv1ZOakr5uljS0z6JL6GeCp9to9JVzDl5w0tsWX8M3L6XnWx8oFQJBAKPr9X/v9o/qpIg6wsJvtWVpjXMWdFxFDIXQpbmS5ovwjnIjSh2ExGnwzOexO3oZGGCOdz7+6eshliVXYMTDjw8=";
+ String MEETING = API + "/meeting";
}
diff --git a/src/main/java/com/ydool/common/utils/TreeMapUtil.java b/src/main/java/com/ydool/common/utils/TreeMapUtil.java
index a28c5cd..bda3216 100644
--- a/src/main/java/com/ydool/common/utils/TreeMapUtil.java
+++ b/src/main/java/com/ydool/common/utils/TreeMapUtil.java
@@ -1,5 +1,6 @@
package com.ydool.common.utils;
+import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.ydool.common.data.dto.OptionResult;
@@ -92,7 +93,7 @@ public class TreeMapUtil {
}
} else {
if (parent.get(ID) != null && model.get(PID) != null && parent.get(ID).toString().equals(model.get(PID).toString())) {
- List children = parent.containsKey("children") ? (ArrayList) parent.get("children") : new ArrayList();
+ List children = parent.containsKey("children") && ObjUtil.isNotNull(parent.get("children")) ? (ArrayList) parent.get("children") : new ArrayList();
children.add(model);
parent.put("children", children);
tree(tlist, null, model);
diff --git a/src/main/java/com/ydool/integrated/controller/MeetingController.java b/src/main/java/com/ydool/integrated/controller/MeetingController.java
new file mode 100644
index 0000000..0682a41
--- /dev/null
+++ b/src/main/java/com/ydool/integrated/controller/MeetingController.java
@@ -0,0 +1,132 @@
+package com.ydool.integrated.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import com.github.xiaoymin.knife4j.annotations.DynamicParameter;
+import com.github.xiaoymin.knife4j.annotations.DynamicResponseParameters;
+import com.ydool.common.base.BaseController;
+import com.ydool.common.constant.UrlConstant;
+import com.ydool.common.data.dto.AjaxResult;
+import com.ydool.integrated.dto.MeetingDto;
+import com.ydool.integrated.service.MeetingService;
+import com.ydool.integrated.vo.IdsVo;
+import com.ydool.integrated.vo.MeetingVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping(UrlConstant.MEETING)
+@Api(tags = "会议管理", value = "会议管理")
+@ApiSupport(order = 5)
+public class MeetingController extends BaseController {
+
+ @Autowired
+ private MeetingService meetingService;
+
+ /**
+ * 保存
+ *
+ * @param vo
+ * @return
+ */
+ @PostMapping(value = "save")
+ @ApiOperation(value = "保存")
+ @ApiOperationSupport(order = 1)
+ public AjaxResult saveMeeting(@Validated @RequestBody MeetingVo vo) {
+ return meetingService.save(vo);
+ }
+
+
+ /**
+ * 编辑
+ *
+ * @param id
+ * @param vo
+ * @return
+ */
+ @PutMapping(value = "edit")
+ @ApiOperation(value = "编辑")
+ @ApiImplicitParam(name = "id", value = "Id")
+ @ApiOperationSupport(order = 2)
+ public AjaxResult editMeeting(String id, @Validated @RequestBody MeetingVo vo) {
+ return meetingService.edit(id, vo);
+ }
+
+
+ /**
+ * 删除
+ *
+ * @param id
+ * @return
+ */
+ @DeleteMapping(value = "remove")
+ @ApiOperation(value = "删除")
+ @ApiImplicitParam(name = "id", value = "Id")
+ @ApiOperationSupport(order = 3)
+ public AjaxResult removeMeeting(String id) {
+ return meetingService.remove(id);
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param vo
+ * @return
+ */
+ @PutMapping(value = "removeBatch")
+ @ApiOperation(value = "批量删除")
+ @ApiOperationSupport(order = 4)
+ public AjaxResult removeMeetings(@Validated @RequestBody IdsVo vo) {
+ return meetingService.removeBatch(vo);
+ }
+
+
+ /**
+ * 详情
+ *
+ * @param id
+ * @return
+ */
+ @GetMapping(value = "detail")
+ @ApiOperation(value = "详情")
+ @ApiOperationSupport(
+ responses = @DynamicResponseParameters(properties = {
+ @DynamicParameter(name = "data", dataTypeClass = MeetingDto.class)
+ }), order = 5
+ )
+ public AjaxResult meetingDetails(String id) {
+ return meetingService.details(id);
+ }
+
+ /**
+ * 分页列表
+ *
+ * @param value
+ * @param column
+ * @param orderBy
+ * @return
+ */
+ @GetMapping(value = "page")
+ @ApiOperation(value = "列表")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "current", value = "当前页", dataType = "Integer"),
+ @ApiImplicitParam(name = "size", value = "每页条数", dataType = "Integer"),
+ @ApiImplicitParam(name = "value", value = "搜索框中的内容(只支持字符串类型)"),
+ @ApiImplicitParam(name = "column", value = "排序字段 字段名"),
+ @ApiImplicitParam(name = "orderBy", value = "排序顺序 降序:desc,升序:asc")
+ })
+ @ApiOperationSupport(
+ responses = @DynamicResponseParameters(properties = {
+ @DynamicParameter(name = "data", dataTypeClass = MeetingDto.class)
+ }),
+ order = 6
+ )
+ public AjaxResult MeetingPages(String value, String column, String orderBy) {
+ return meetingService.pageList(getPage(), value, column, orderBy);
+ }
+}
diff --git a/src/main/java/com/ydool/integrated/dto/MeetingDto.java b/src/main/java/com/ydool/integrated/dto/MeetingDto.java
new file mode 100644
index 0000000..59254e5
--- /dev/null
+++ b/src/main/java/com/ydool/integrated/dto/MeetingDto.java
@@ -0,0 +1,20 @@
+package com.ydool.integrated.dto;
+
+import com.ydool.integrated.entity.Meeting;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class MeetingDto extends Meeting {
+ @ApiModelProperty(value = "参会人员")
+ private String userList;
+
+ @ApiModelProperty(value = "创建人")
+ private String createdName;
+
+ @ApiModelProperty(value = "更新人")
+ private String updatedName;
+}
diff --git a/src/main/java/com/ydool/integrated/entity/Meeting.java b/src/main/java/com/ydool/integrated/entity/Meeting.java
new file mode 100644
index 0000000..5635547
--- /dev/null
+++ b/src/main/java/com/ydool/integrated/entity/Meeting.java
@@ -0,0 +1,57 @@
+package com.ydool.integrated.entity;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ydool.common.base.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+
+/**
+ * 会议管理(Meeting)表实体类
+ *
+ * @author makejava
+ * @since 2023-06-15 09:34:39
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("t_integrated_meeting")
+@ApiModel(value="Meeting对象", description="会议管理")
+public class Meeting extends BaseEntity implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "会议主题")
+ private String title;
+
+ @ApiModelProperty(value = "参加人员")
+ private String userIds;
+
+ @ApiModelProperty(value = "会议内容")
+ private String content;
+
+ @ApiModelProperty(value = "相关附件")
+ private String files;
+
+ @ApiModelProperty(value = "开始时间")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // 表示返回时间类型
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 表示接收时间类型
+ private LocalDateTime startTime;
+
+ @ApiModelProperty(value = "结束时间")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // 表示返回时间类型
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 表示接收时间类型
+ private LocalDateTime endTime;
+
+ }
+
diff --git a/src/main/java/com/ydool/integrated/mapper/MeetingMapper.java b/src/main/java/com/ydool/integrated/mapper/MeetingMapper.java
new file mode 100644
index 0000000..f0b6e0e
--- /dev/null
+++ b/src/main/java/com/ydool/integrated/mapper/MeetingMapper.java
@@ -0,0 +1,18 @@
+package com.ydool.integrated.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.ydool.integrated.entity.Meeting;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ * 会议管理 Mapper 接口
+ *
+ *
+ * @author zhouyuan
+ * @since 2023-05-06
+ */
+@Mapper
+public interface MeetingMapper extends MPJBaseMapper {
+
+}
diff --git a/src/main/java/com/ydool/integrated/service/MeetingService.java b/src/main/java/com/ydool/integrated/service/MeetingService.java
new file mode 100644
index 0000000..39393ee
--- /dev/null
+++ b/src/main/java/com/ydool/integrated/service/MeetingService.java
@@ -0,0 +1,161 @@
+package com.ydool.integrated.service;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydool.common.base.BaseService;
+import com.ydool.common.data.dto.AjaxResult;
+import com.ydool.integrated.entity.Meeting;
+import com.ydool.integrated.mapper.MeetingMapper;
+import com.ydool.integrated.vo.IdsVo;
+import com.ydool.integrated.vo.MeetingVo;
+import com.ydool.integrated.wrapper.MeetingWrapper;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ *
+ * 会议管理 服务类
+ *
+ *
+ * @author zhouyuan
+ * @since 2023-05-06
+ */
+@Service
+public class MeetingService extends BaseService {
+
+ /**
+ * 校验
+ *
+ * @param id
+ * @param vo
+ * @return
+ */
+ private String check(String id, MeetingVo vo) {
+ List userIds = JSONUtil.toList(vo.getUserIds(), String.class);
+ if (CollUtil.isEmpty(userIds)) return "参加人员不能为空";
+ return null;
+ }
+
+
+ /**
+ * 保存
+ *
+ * @param vo
+ * @return
+ */
+ public AjaxResult save(MeetingVo vo) {
+ String message = check("", vo);
+ if (StrUtil.isNotBlank(message)) return AjaxResult.fail(message);
+ Meeting meeting = BeanUtil.copyProperties(vo, Meeting.class);
+ boolean flag = save(meeting);
+ return flag ? AjaxResult.ok().msg("保存成功") : AjaxResult.fail("保存失败");
+ }
+
+ /**
+ * 编辑
+ *
+ * @param id
+ * @param vo
+ * @return
+ */
+ public AjaxResult edit(String id, MeetingVo vo) {
+ if (StrUtil.isBlank(id)) return AjaxResult.fail("id不能为空");
+ String message = check(id, vo);
+ if (StrUtil.isNotBlank(message)) return AjaxResult.fail(message);
+ Meeting meeting = getById(id);
+ if (ObjectUtil.isNull(meeting)) return AjaxResult.fail("该数据不存在");
+ BeanUtil.copyProperties(vo, meeting);
+ boolean flag = updateById(meeting);
+ return flag ? AjaxResult.ok().msg("编辑成功") : AjaxResult.fail("编辑失败");
+ }
+
+
+ /**
+ * 删除
+ *
+ * @param id
+ * @return
+ */
+ public AjaxResult remove(String id) {
+ if (StrUtil.isBlank(id)) return AjaxResult.fail("id不能为空");
+ Meeting meeting = getById(id);
+ if (ObjectUtil.isNull(meeting)) return AjaxResult.fail("该数据不存在");
+ return removeById(id) ? AjaxResult.ok().msg("删除成功") : AjaxResult.fail("删除失败");
+ }
+
+
+ /**
+ * 批量删除
+ *
+ * @param vo
+ * @return
+ */
+ public AjaxResult removeBatch(IdsVo vo) {
+ List idList = vo.getIds();
+ if (CollUtil.isEmpty(idList)) {
+ return AjaxResult.fail("Id集合不能为空");
+ }
+ List meetingList = listByIds(idList);
+ if (CollUtil.isEmpty(meetingList)) {
+ return AjaxResult.fail("该数据集合全部不存在");
+ }
+ return removeByIds(idList) ? AjaxResult.ok().msg("批量删除成功") : AjaxResult.fail("批量删除失败");
+ }
+
+ /**
+ * 详情
+ *
+ * @param id
+ * @return
+ */
+ public AjaxResult details(String id) {
+ if (StrUtil.isBlank(id)) return AjaxResult.fail("id不能为空");
+ Meeting meeting = getById(id);
+ if (ObjectUtil.isNull(meeting)) return AjaxResult.fail("该数据不存在");
+ return AjaxResult.ok().data(MeetingWrapper.INSTANCE.toDto(meeting));
+ }
+
+ /**
+ * 分页列表
+ *
+ * @param page
+ * @param value
+ * @param column
+ * @param orderBy
+ * @return
+ */
+ public AjaxResult pageList(Page page, String value, String column, String orderBy) {
+ QueryWrapper qw = new QueryWrapper();
+ qw.lambda().and(
+ StrUtil.isNotBlank(value), query -> {
+ query.like(Meeting::getTitle, value)
+ .or().like(Meeting::getContent, value);
+ }
+ );
+
+
+ if (StrUtil.isBlank(column)) {
+ qw.lambda().orderByDesc(Meeting::getCreatedAt);
+ } else {
+ if ("desc".equals(orderBy)) {
+ qw.orderByDesc(StrUtil.toUnderlineCase(column));
+ }
+
+ if ("asc".equals(orderBy)) {
+ qw.orderByAsc(StrUtil.toUnderlineCase(column));
+ }
+ }
+
+ Page pageList = page(page, qw);
+
+ return AjaxResult.ok().data(MeetingWrapper.INSTANCE.toDto(pageList));
+ }
+
+}
+
diff --git a/src/main/java/com/ydool/integrated/vo/MeetingVo.java b/src/main/java/com/ydool/integrated/vo/MeetingVo.java
new file mode 100644
index 0000000..38f155f
--- /dev/null
+++ b/src/main/java/com/ydool/integrated/vo/MeetingVo.java
@@ -0,0 +1,43 @@
+package com.ydool.integrated.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+@Data
+public class MeetingVo {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "会议主题", required = true)
+ @NotBlank(message = "会议主题不能为空")
+ private String title;
+
+ @ApiModelProperty(value = "参加人员", required = true)
+ @NotBlank(message = "参加人员 为空请传[]")
+ private String userIds;
+
+ @ApiModelProperty(value = "会议内容")
+ @NotBlank(message = "会议内容不能为空")
+ private String content;
+
+ @ApiModelProperty(value = "相关附件 为空请传[]", required = true)
+ @NotBlank(message = "相关附件 为空请传[]")
+ private String files;
+
+ @ApiModelProperty(value = "开始时间", required = true)
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // 表示返回时间类型
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 表示接收时间类型
+ @NotNull(message = "开始时间不能为空")
+ private LocalDateTime startTime;
+
+ @ApiModelProperty(value = "结束时间", required = true)
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // 表示返回时间类型
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 表示接收时间类型
+ @NotNull(message = "结束时间不能为空")
+ private LocalDateTime endTime;
+}
diff --git a/src/main/java/com/ydool/integrated/wrapper/MeetingWrapper.java b/src/main/java/com/ydool/integrated/wrapper/MeetingWrapper.java
new file mode 100644
index 0000000..ad0f437
--- /dev/null
+++ b/src/main/java/com/ydool/integrated/wrapper/MeetingWrapper.java
@@ -0,0 +1,44 @@
+package com.ydool.integrated.wrapper;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import cn.hutool.json.JSONUtil;
+import com.ydool.common.base.BaseWrapper;
+import com.ydool.integrated.dto.MeetingDto;
+import com.ydool.integrated.entity.Meeting;
+import com.ydool.system.entity.User;
+import com.ydool.system.service.impl.UserServiceImpl;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.AfterMapping;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+@Mapper
+public interface MeetingWrapper extends BaseWrapper {
+ MeetingWrapper INSTANCE = Mappers.getMapper(MeetingWrapper.class);
+
+ @AfterMapping
+ default void setOtherField(@Param("obj") Meeting obj, @MappingTarget @Param("dto") MeetingDto dto) {
+ UserServiceImpl userService = SpringUtil.getBean(UserServiceImpl.class);
+ User createdUser = userService.getById(obj.getCreatedId());
+ if (ObjUtil.isNotNull(createdUser)) {
+ dto.setCreatedName(createdUser.getUserName());
+ }
+ User updatedUser = userService.getById(obj.getUpdatedId());
+ if (ObjUtil.isNotNull(updatedUser)) {
+ dto.setUpdatedName(updatedUser.getUserName());
+ }
+
+ List userIds = JSONUtil.toList(obj.getUserIds(), String.class);
+ if (CollUtil.isNotEmpty(userIds)) {
+ List users = userService.listByIds(userIds);
+ if (CollUtil.isNotEmpty(users)) {
+ dto.setUserList(JSONUtil.toJsonStr(users));
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/ydool/integrated/wrapper/NoticeWrapper.java b/src/main/java/com/ydool/integrated/wrapper/NoticeWrapper.java
index be4c6df..0e6f7c3 100644
--- a/src/main/java/com/ydool/integrated/wrapper/NoticeWrapper.java
+++ b/src/main/java/com/ydool/integrated/wrapper/NoticeWrapper.java
@@ -1,5 +1,6 @@
package com.ydool.integrated.wrapper;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.extra.spring.SpringUtil;
import cn.hutool.json.JSONUtil;
@@ -33,8 +34,12 @@ public interface NoticeWrapper extends BaseWrapper {
}
List userIds = JSONUtil.toList(obj.getUserIds(), String.class);
- List users = userService.listByIds(userIds);
- dto.setUserList(JSONUtil.toJsonStr(users));
+ if (CollUtil.isNotEmpty(userIds)) {
+ List users = userService.listByIds(userIds);
+ if (CollUtil.isNotEmpty(users)) {
+ dto.setUserList(JSONUtil.toJsonStr(users));
+ }
+ }
}
}
diff --git a/src/main/java/com/ydool/oa/workFlow/controller/WorkFlowController.java b/src/main/java/com/ydool/oa/workFlow/controller/WorkFlowController.java
index 91dffc5..2eba6bc 100644
--- a/src/main/java/com/ydool/oa/workFlow/controller/WorkFlowController.java
+++ b/src/main/java/com/ydool/oa/workFlow/controller/WorkFlowController.java
@@ -15,6 +15,7 @@ import com.ydool.oa.workFlow.data.vo.WorkFlowStepVo;
import com.ydool.oa.workFlow.data.vo.WorkFlowVo;
import com.ydool.oa.workFlow.service.WorkFlowNoticeService;
import com.ydool.oa.workFlow.service.WorkFlowService;
+import com.ydool.system.entity.Job;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -218,4 +219,37 @@ public class WorkFlowController extends BaseController {
return workFlowNoticeService.getUnReadCount();
}
+ /**
+ * 获取所有流程记录
+ * @param value
+ * @param column
+ * @param orderBy
+ * @param type
+ * @param userId
+ * @param status
+ * @return
+ */
+ @GetMapping(value = "getAllWorkFlowList")
+ @ApiOperation(value = "获取所有流程记录")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "current", value = "当前页", dataType = "Integer"),
+ @ApiImplicitParam(name = "size", value = "每页条数", dataType = "Integer"),
+ @ApiImplicitParam(name = "value", value = "搜索框中的内容(只支持字符串类型)"),
+ @ApiImplicitParam(name = "column", value = "排序字段 字段名"),
+ @ApiImplicitParam(name = "orderBy", value = "排序顺序 降序:desc,升序:asc"),
+ @ApiImplicitParam(name = "type", value = "流程类型"),
+ @ApiImplicitParam(name = "userId", value = "发起人"),
+ @ApiImplicitParam(name = "status", value = "状态"),
+ })
+ @ApiOperationSupport(
+ responses = @DynamicResponseParameters(properties = {
+ @DynamicParameter(name = "data", dataTypeClass = WorkFlowDto.class)
+ }),
+ order = 12
+ )
+ public AjaxResult getAllWorkFlowList(String value, String column, String orderBy, String type,
+ String userId, String status) {
+ return workFlowService.getAllWorkFlowList(getPage(), value, column, orderBy, type, userId, status);
+ }
+
}
diff --git a/src/main/java/com/ydool/oa/workFlow/engine/service/impl/BudgetWorkFlowService.java b/src/main/java/com/ydool/oa/workFlow/engine/service/impl/BudgetWorkFlowService.java
index 76e548e..1ff0e61 100644
--- a/src/main/java/com/ydool/oa/workFlow/engine/service/impl/BudgetWorkFlowService.java
+++ b/src/main/java/com/ydool/oa/workFlow/engine/service/impl/BudgetWorkFlowService.java
@@ -18,7 +18,6 @@ import com.ydool.oa.workFlow.service.WorkFlowService;
import com.ydool.oa.workFlow.service.WorkFlowStepLogService;
import com.ydool.oa.workFlow.service.WorkFlowStepService;
import com.ydool.system.entity.Config;
-import com.ydool.system.entity.Job;
import com.ydool.system.entity.User;
import com.ydool.system.service.impl.ConfigServiceImpl;
import com.ydool.system.service.impl.JobServiceImpl;
diff --git a/src/main/java/com/ydool/oa/workFlow/engine/service/impl/DrugWorkFlowService.java b/src/main/java/com/ydool/oa/workFlow/engine/service/impl/DrugWorkFlowService.java
index e1e1af4..44fb67b 100644
--- a/src/main/java/com/ydool/oa/workFlow/engine/service/impl/DrugWorkFlowService.java
+++ b/src/main/java/com/ydool/oa/workFlow/engine/service/impl/DrugWorkFlowService.java
@@ -18,7 +18,6 @@ import com.ydool.oa.workFlow.service.WorkFlowService;
import com.ydool.oa.workFlow.service.WorkFlowStepLogService;
import com.ydool.oa.workFlow.service.WorkFlowStepService;
import com.ydool.system.entity.Config;
-import com.ydool.system.entity.Job;
import com.ydool.system.entity.User;
import com.ydool.system.service.impl.ConfigServiceImpl;
import com.ydool.system.service.impl.JobServiceImpl;
diff --git a/src/main/java/com/ydool/oa/workFlow/service/WorkFlowService.java b/src/main/java/com/ydool/oa/workFlow/service/WorkFlowService.java
index 1ff396e..4f51213 100644
--- a/src/main/java/com/ydool/oa/workFlow/service/WorkFlowService.java
+++ b/src/main/java/com/ydool/oa/workFlow/service/WorkFlowService.java
@@ -2,6 +2,7 @@ package com.ydool.oa.workFlow.service;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -289,6 +290,42 @@ public class WorkFlowService extends BaseService {
return AjaxResult.ok().data(workFlowCountDto);
}
+ /**
+ * 获取所有流程记录
+ *
+ * @param page
+ * @param value
+ * @param column
+ * @param orderBy
+ * @param type
+ * @param userId
+ * @return
+ */
+ public AjaxResult getAllWorkFlowList(Page page, String value, String column, String orderBy, String type,
+ String userId, String status) {
+ QueryWrapper qw = new QueryWrapper();
+ if (StrUtil.isNotBlank(value)) {
+ qw.lambda().like(WorkFlow::getData, value);
+ }
+
+ qw.lambda()
+ .eq(StrUtil.isNotBlank(status), WorkFlow::getStatus, status)
+ .eq(StrUtil.isNotBlank(type), WorkFlow::getType, type)
+ .eq(StrUtil.isNotBlank(userId), WorkFlow::getUserId, userId);
+
+
+ if ("desc".equals(orderBy) && StrUtil.isNotBlank(column)) {
+ qw.orderByDesc(StrUtil.toUnderlineCase(column));
+ }
+
+ if ("asc".equals(orderBy) && StrUtil.isNotBlank(column)) {
+ qw.orderByAsc(StrUtil.toUnderlineCase(column));
+ }
+ Page pageList = page(page, qw);
+
+ return AjaxResult.ok().data(WorkFlowWrapper.INSTANCE.toDto(pageList));
+ }
+
}
diff --git a/src/main/java/com/ydool/system/controller/DeptController.java b/src/main/java/com/ydool/system/controller/DeptController.java
index 7cc4d7e..ac754c1 100644
--- a/src/main/java/com/ydool/system/controller/DeptController.java
+++ b/src/main/java/com/ydool/system/controller/DeptController.java
@@ -8,6 +8,7 @@ import com.ydool.common.base.BaseController;
import com.ydool.common.constant.UrlConstant;
import com.ydool.common.data.dto.AjaxResult;
import com.ydool.common.data.dto.OptionResult;
+import com.ydool.system.dto.DeptDto;
import com.ydool.system.entity.Dept;
import com.ydool.system.request.DeptRequest;
import com.ydool.system.service.IDeptService;
@@ -44,7 +45,7 @@ public class DeptController extends BaseController {
})
@ApiOperationSupport(
responses = @DynamicResponseParameters(properties = {
- @DynamicParameter(name = "data", dataTypeClass = Dept.class)
+ @DynamicParameter(name = "data", dataTypeClass = DeptDto.class)
}),order = 1
)
public AjaxResult deptList(String value,
@@ -64,7 +65,7 @@ public class DeptController extends BaseController {
@ApiOperation(value = "部门详情")
@ApiOperationSupport(
responses = @DynamicResponseParameters(properties = {
- @DynamicParameter(name = "data", dataTypeClass = Dept.class)
+ @DynamicParameter(name = "data", dataTypeClass = DeptDto.class)
}),order = 2
)
@ApiImplicitParam(name = "id", value = "部门Id")
diff --git a/src/main/java/com/ydool/system/dto/DeptDto.java b/src/main/java/com/ydool/system/dto/DeptDto.java
new file mode 100644
index 0000000..0352fdb
--- /dev/null
+++ b/src/main/java/com/ydool/system/dto/DeptDto.java
@@ -0,0 +1,12 @@
+package com.ydool.system.dto;
+
+import com.ydool.system.entity.Dept;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class DeptDto extends Dept {
+
+ @ApiModelProperty(value = "负责人名称")
+ private String userName;
+}
diff --git a/src/main/java/com/ydool/system/entity/Dept.java b/src/main/java/com/ydool/system/entity/Dept.java
index 74a55e6..6aca35d 100644
--- a/src/main/java/com/ydool/system/entity/Dept.java
+++ b/src/main/java/com/ydool/system/entity/Dept.java
@@ -31,6 +31,9 @@ public class Dept extends TreeEntity {
@ApiModelProperty(value = "备注")
private String remarks;
+ @ApiModelProperty(value = "负责人id")
+ private String userId;
+
@Override
public String getNamed() {
diff --git a/src/main/java/com/ydool/system/request/DeptRequest.java b/src/main/java/com/ydool/system/request/DeptRequest.java
index e073e1c..375a7b2 100644
--- a/src/main/java/com/ydool/system/request/DeptRequest.java
+++ b/src/main/java/com/ydool/system/request/DeptRequest.java
@@ -27,4 +27,8 @@ public class DeptRequest {
@ApiModelProperty(value = "备注")
private String remarks;
+
+ @ApiModelProperty(value = "负责人id")
+ @NotBlank(message = "负责人id不能为空")
+ private String userId;
}
diff --git a/src/main/java/com/ydool/system/service/impl/DeptServiceImpl.java b/src/main/java/com/ydool/system/service/impl/DeptServiceImpl.java
index 8fa3196..ac2cf04 100644
--- a/src/main/java/com/ydool/system/service/impl/DeptServiceImpl.java
+++ b/src/main/java/com/ydool/system/service/impl/DeptServiceImpl.java
@@ -2,6 +2,7 @@ package com.ydool.system.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
@@ -11,10 +12,14 @@ import com.ydool.common.data.dto.AjaxResult;
import com.ydool.common.data.dto.OptionResult;
import com.ydool.common.utils.TreeMapUtil;
import com.ydool.common.utils.TreeSorterUtil;
+import com.ydool.system.dto.DeptDto;
import com.ydool.system.entity.Dept;
+import com.ydool.system.entity.User;
import com.ydool.system.mapper.DeptMapper;
import com.ydool.system.request.DeptRequest;
import com.ydool.system.service.IDeptService;
+import com.ydool.system.wrapper.DeptWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@@ -31,6 +36,9 @@ import java.util.*;
@Service
public class DeptServiceImpl extends BaseTreeService implements IDeptService {
+ @Autowired
+ private UserServiceImpl userService;
+
/**
* 删除部门
@@ -95,7 +103,7 @@ public class DeptServiceImpl extends BaseTreeService implement
if (StrUtil.isBlank(id)) return AjaxResult.fail("id不能为空");
Dept dept = dept = getById(id);
if (ObjectUtil.isNull(dept)) return AjaxResult.fail("该部门不存在");
- return AjaxResult.ok().data(dept);
+ return AjaxResult.ok().data(DeptWrapper.INSTANCE.toDto(dept));
}
/**
@@ -135,12 +143,19 @@ public class DeptServiceImpl extends BaseTreeService implement
if ("asc".equals(orderBy) && StrUtil.isNotBlank(column)) {
qw.orderByAsc(StrUtil.toUnderlineCase(column));
}
-
- List