Bläddra i källkod

审批-待处理列表

肖玮 5 år sedan
förälder
incheckning
71e615f93d

+ 10 - 0
mec-education/src/main/java/com/ym/mec/education/base/PageResponse.java

@@ -3,6 +3,7 @@ package com.ym.mec.education.base;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ym.mec.education.enums.ReturnCodeEnum;
 import org.apache.commons.lang3.StringUtils;
+import org.snaker.engine.access.Page;
 import java.io.Serializable;
 import java.util.Collections;
 import java.util.List;
@@ -42,6 +43,15 @@ public class PageResponse<T> extends Response implements Serializable {
         return pageResponse;
     }
 
+    public static PageResponse success(Page page) {
+        PageResponse pageResponse = new PageResponse(page.getPageNo(), page.getPageSize());
+        pageResponse.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
+        pageResponse.setMessage(ReturnCodeEnum.CODE_200.getValue());
+        pageResponse.setRecords(page.getResult());
+        pageResponse.setTotal(Math.toIntExact(page.getTotalCount()));
+        return pageResponse;
+    }
+
     public PageResponse(Integer current, Integer size) {
         this(current, size, true);
     }

+ 66 - 0
mec-education/src/main/java/com/ym/mec/education/controller/ApprovalController.java

@@ -0,0 +1,66 @@
+package com.ym.mec.education.controller;
+
+import com.ym.mec.education.base.BaseResponse;
+import com.ym.mec.education.base.PageResponse;
+import com.ym.mec.education.req.ApprovalReq;
+import com.ym.mec.education.service.ApprovalService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @program: mec
+ * @description: 审批
+ * @author: xw
+ * @create: 2019-10-10 09:37
+ */
+@RestController
+@RequestMapping("api/approval")
+@Api(tags = "审批")
+@Slf4j
+public class ApprovalController {
+
+    @Autowired
+    private ApprovalService approvalService;
+
+    @PostMapping("/processingList")
+    @ApiOperation("审批-待处理列表")
+    public PageResponse processingList(@RequestBody ApprovalReq approvalReq) {
+        return approvalService.getProcessingList(approvalReq);
+    }
+
+    @PostMapping("/processedList")
+    @ApiOperation("审批-已处理列表")
+    public PageResponse processedList(@RequestBody ApprovalReq approvalReq) {
+        return approvalService.getProcessedList(approvalReq);
+    }
+
+    @PostMapping("/launchList")
+    @ApiOperation("审批-我发起的审批列表")
+    public PageResponse launchList(@RequestBody ApprovalReq approvalReq) {
+        return approvalService.getLaunchList(approvalReq);
+    }
+
+    @PostMapping("/launchInfo")
+    @ApiOperation("审批-我发起的审批详情")
+    public BaseResponse launchInfo(@RequestBody ApprovalReq approvalReq) {
+        return approvalService.getLaunchInfo(approvalReq);
+    }
+
+    @PostMapping("/cancel")
+    @ApiOperation("审批-我发起的审批详情-取消审批")
+    public BaseResponse cancel(@RequestBody ApprovalReq approvalReq) {
+        return approvalService.cancel(approvalReq);
+    }
+
+    @PostMapping("/ccList")
+    @ApiOperation("审批-抄送列表")
+    public PageResponse ccList(@RequestBody ApprovalReq approvalReq) {
+        return approvalService.getCcList(approvalReq);
+    }
+}

+ 23 - 0
mec-education/src/main/java/com/ym/mec/education/req/ApprovalReq.java

@@ -0,0 +1,23 @@
+package com.ym.mec.education.req;
+
+import com.ym.mec.education.base.BaseQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: mec
+ * @description: 审批入参
+ * @author: xw
+ * @create: 2019-10-12 12:59
+ */
+@Data
+@ApiModel(description = "审批入参")
+public class ApprovalReq extends BaseQuery {
+
+    @ApiModelProperty(value = "处理人")
+    private Integer userId;
+
+    @ApiModelProperty(value = "审批任务id")
+    private String taskId;
+}

+ 52 - 0
mec-education/src/main/java/com/ym/mec/education/resp/ApprovalResp.java

@@ -0,0 +1,52 @@
+package com.ym.mec.education.resp;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @program: mec
+ * @description: 审批相关出参
+ * @author: xw
+ * @create: 2019-10-11 15:36
+ */
+@Data
+@ApiModel(description = "审批相关出参")
+@Accessors(chain = true)
+public class ApprovalResp implements Serializable {
+
+    @ApiModelProperty(value = "申请人")
+    private String applicant;
+    @ApiModelProperty(value = "申请人头像")
+    private String applicantImg;
+    @ApiModelProperty(value = "审批状态")
+    private String status;
+    @ApiModelProperty(value = "审批任务id")
+    private String taskId;
+    @ApiModelProperty(value = "审批事项")
+    private String approvalType;
+    @ApiModelProperty(value = "申请日期")
+    private String approvalDate;
+    @ApiModelProperty(value = "开始时间")
+    private String startTime;
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    @ApiModelProperty(value = "审批历史")
+    private List<ApprovalHistoryInfo> approvalHistory;
+
+    @Data
+    @ApiModel(description = "审批历史详情")
+    class ApprovalHistoryInfo implements Serializable{
+        @ApiModelProperty(value = "审批处理人")
+        private String operator;
+        @ApiModelProperty(value = "审批状态")
+        private String status;
+        @ApiModelProperty(value = "拒绝原因")
+        private String reason;
+    }
+}

+ 63 - 0
mec-education/src/main/java/com/ym/mec/education/service/ApprovalService.java

@@ -0,0 +1,63 @@
+package com.ym.mec.education.service;
+
+import com.ym.mec.education.base.BaseResponse;
+import com.ym.mec.education.base.PageResponse;
+import com.ym.mec.education.req.ApprovalReq;
+import com.ym.mec.education.resp.ApprovalResp;
+
+/**
+ * @program: mec
+ * @description: 教务审批相关
+ * @author: xw
+ * @create: 2019-10-11 15:35
+ */
+public interface ApprovalService {
+
+    /**
+     * 查询审批人为当前登陆人的审批事项列表
+     *
+     * @param approvalReq
+     * @return
+     */
+    PageResponse<ApprovalResp> getProcessingList(ApprovalReq approvalReq);
+
+    /**
+     * 审批-已处理列表
+     *
+     * @param approvalReq
+     * @return
+     */
+    PageResponse<ApprovalResp> getProcessedList(ApprovalReq approvalReq);
+
+    /**
+     * 审批-我发起的审批列表
+     *
+     * @param approvalReq
+     * @return
+     */
+    PageResponse<ApprovalResp> getLaunchList(ApprovalReq approvalReq);
+
+    /**
+     * 审批-我发起的审批详情
+     *
+     * @param approvalReq
+     * @return
+     */
+    BaseResponse<ApprovalResp> getLaunchInfo(ApprovalReq approvalReq);
+
+    /**
+     * 审批-我发起的审批详情-取消审批
+     *
+     * @param approvalReq
+     * @return
+     */
+    BaseResponse<ApprovalResp> cancel(ApprovalReq approvalReq);
+
+    /**
+     * 审批-抄送列表
+     *
+     * @param approvalReq
+     * @return
+     */
+    PageResponse<ApprovalResp> getCcList(ApprovalReq approvalReq);
+}

+ 106 - 0
mec-education/src/main/java/com/ym/mec/education/service/impl/ApprovalServiceImpl.java

@@ -0,0 +1,106 @@
+package com.ym.mec.education.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.ym.mec.education.base.BaseResponse;
+import com.ym.mec.education.base.PageResponse;
+import com.ym.mec.education.entity.SysUser;
+import com.ym.mec.education.enums.ApprovalStatusEnum;
+import com.ym.mec.education.req.ApprovalReq;
+import com.ym.mec.education.resp.ApprovalResp;
+import com.ym.mec.education.service.ApprovalService;
+import com.ym.mec.education.service.ISysUserService;
+import org.apache.commons.lang3.StringUtils;
+import org.snaker.engine.IQueryService;
+import org.snaker.engine.access.Page;
+import org.snaker.engine.access.QueryFilter;
+import org.snaker.engine.entity.WorkItem;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * @program: mec
+ * @description: 教务审批
+ * @author: xw
+ * @create: 2019-10-11 15:35
+ */
+@Service
+public class ApprovalServiceImpl implements ApprovalService {
+
+    @Autowired
+    private IQueryService queryService;
+    @Autowired
+    private ISysUserService userService;
+
+    @Override
+    public PageResponse<ApprovalResp> getProcessingList(ApprovalReq approvalReq) {
+        if (Objects.isNull(approvalReq.getUserId())) {
+            return PageResponse.errorParam();
+        }
+        Page<WorkItem> page = new Page();
+        page.setPageNo(approvalReq.getPageNo());
+        page.setPageSize(approvalReq.getPageSize());
+        QueryFilter queryFilter = new QueryFilter();
+        queryFilter.setOperator(approvalReq.getUserId().toString());
+        queryService.getWorkItems(page, queryFilter);
+        return PageResponse.success(workItem2Approval(page));
+    }
+
+    @Override
+    public PageResponse<ApprovalResp> getProcessedList(ApprovalReq approvalReq) {
+        return null;
+    }
+
+    @Override
+    public PageResponse<ApprovalResp> getLaunchList(ApprovalReq approvalReq) {
+        return null;
+    }
+
+    @Override
+    public BaseResponse<ApprovalResp> getLaunchInfo(ApprovalReq approvalReq) {
+        return null;
+    }
+
+    @Override
+    public BaseResponse<ApprovalResp> cancel(ApprovalReq approvalReq) {
+        return null;
+    }
+
+    @Override
+    public PageResponse<ApprovalResp> getCcList(ApprovalReq approvalReq) {
+        return null;
+    }
+
+    private Page<ApprovalResp> workItem2Approval(Page<WorkItem> page) {
+        Page<ApprovalResp> pageResult = new Page();
+        BeanUtils.copyProperties(page, pageResult);
+        List<ApprovalResp> list = new ArrayList<>(page.getResult().size());
+        if (!CollectionUtils.isEmpty(page.getResult())) {
+            page.getResult().forEach(item -> {
+                ApprovalResp approvalResp = new ApprovalResp();
+                SysUser user = userService.getById(item.getCreator());
+                Optional.ofNullable(user.getRealName()).ifPresent(name -> approvalResp.setApplicant(name));
+                String orderVariable = item.getOrderVariable();
+                if (StringUtils.isNotBlank(orderVariable)) {
+                    JSONObject jsonObject = JSON.parseObject(orderVariable);
+                    approvalResp.setStatus(ApprovalStatusEnum.getMsgByCode(jsonObject.getString("status")));
+                    Optional.ofNullable(jsonObject.getString("startTime")).ifPresent(time -> approvalResp.setStartTime(time));
+                    Optional.ofNullable(jsonObject.getString("endTime")).ifPresent(time -> approvalResp.setEndTime(time));
+                    Optional.ofNullable(jsonObject.getString("remark")).ifPresent(remark -> approvalResp.setRemark(remark));
+                }
+                approvalResp.setTaskId(item.getTaskId()).setApprovalType(item.getTaskName())
+                    .setApprovalDate(item.getOrderCreateTime());
+                list.add(approvalResp);
+            });
+        }
+        pageResult.setResult(list);
+        return pageResult;
+    }
+}