2 Commits ac6f038ba7 ... 6166611214

Auteur SHA1 Message Date
  wujiefeng 6166611214 Merge remote-tracking branch 'origin/master' il y a 1 an
  wujiefeng 2b31be229b 请假OpenApi il y a 1 an

+ 52 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/openApi/params/AddLeaveOpenApiParam.java

@@ -0,0 +1,52 @@
+package com.zhongshu.card.client.openApi.params;
+
+import com.zhongshu.card.client.type.LeaveStatus;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AddLeaveOpenApiParam {
+
+    @Schema(name = "id", description = "数据id")
+    private String id;
+
+    @Schema(name = "projectId", description = "项目oid")
+    private String projectId;
+
+    //场景id
+    @Schema(name = "sceneId", description = "场景id")
+    private String sceneId;
+
+    //请假类型
+    @Schema(name = "leaveType", description = "请假类型")
+    private String leaveType;
+
+    @Schema(name = "startTime", description = "开始时间")
+    private Long startTime;
+
+    @Schema(name = "endTime", description = "结束时间")
+    private Long endTime;
+
+    @Schema(name = "leaveReason", description = "请假原因")
+    private String leaveReason;
+
+    @Schema(name = "pic", description = "图片")
+    private List<String> pic;
+
+    @Schema(name = "approvalUser", description = "审批人uid")
+    private String approvalUser;
+
+    @Schema(name = "leaveStatus", description = "审核状态")
+    private LeaveStatus leaveStatus;
+
+    @Schema(name = "approvalTime", description = "审核时间")
+    private Long approvalTime;
+
+    @Schema(name = "approvalRemark", description = "审核意见")
+    private String approvalRemark;
+
+    @Schema(name = "leaveUser", description = "请假人uid")
+    private String leaveUser;
+}

+ 35 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/openApi/params/PageLeaveOpenApiParam.java

@@ -0,0 +1,35 @@
+package com.zhongshu.card.client.openApi.params;
+
+import com.zhongshu.card.client.type.LeaveStatus;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PageLeaveOpenApiParam {
+
+    @Schema(name = "projectId", description = "项目oid")
+    private String projectId;
+
+    @Schema(name = "sceneId", description = "应用场景id")
+    private String sceneId;
+
+    @Schema(name = "startTime", description = "开始时间")
+    private Long startTime;
+
+    @Schema(name = "endTime", description = "结束时间")
+    private Long endTime;
+
+    @Schema(name = "leaveType", description = "请假类型")
+    private List<String> leaveType;
+
+    @Schema(name = "leaveStatus", description = "请假状态")
+    private List<LeaveStatus> leaveStatus;
+
+    @Schema(name = "approvalUser", description = "审批人uid")
+    private String approvalUser;
+
+    @Schema(name = "leaveUser", description = "请假人uid")
+    private String leaveUser;
+}

+ 57 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/openAPI/attendance/LeaveOpenApiController.java

@@ -0,0 +1,57 @@
+package com.zhongshu.card.server.core.controller.openAPI.attendance;
+
+import com.github.microservice.net.ResultContent;
+import com.github.microservice.staticVariable.OpenApiMark;
+import com.zhongshu.card.client.model.attendance.LeaveApprovalModel;
+import com.zhongshu.card.client.openApi.params.AddLeaveOpenApiParam;
+import com.zhongshu.card.client.openApi.params.PageLeaveOpenApiParam;
+import com.zhongshu.card.server.core.domain.attendance.LeaveApproval;
+import com.zhongshu.card.server.core.service.openAPI.attendance.LeaveOpenApiService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.web.PageableDefault;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/"+ OpenApiMark.fullCardOpenAPI +"/v1/leaveApproval")
+@Tag(name = "openAPI-请假管理")
+public class LeaveOpenApiController {
+
+    @Autowired
+    private LeaveOpenApiService leaveOpenApiService;
+
+    @Operation(summary = "添加请假审批", description = "添加请假审批")
+    @RequestMapping(value = "add", method = {RequestMethod.POST})
+    public ResultContent<String> add(@RequestBody AddLeaveOpenApiParam param){
+        return leaveOpenApiService.add(param);
+    }
+
+    @Operation(summary = "修改请假审批", description = "修改请假审批")
+    @RequestMapping(value = "update", method = {RequestMethod.POST})
+    public ResultContent<String> update(@RequestBody LeaveApproval param){
+        return leaveOpenApiService.update(param);
+    }
+
+    @Operation(summary = "删除请假审批", description = "根据id删除请假审批")
+    @RequestMapping(value = "delete", method = {RequestMethod.GET})
+    public ResultContent delete(@RequestParam("id") String id){
+        return leaveOpenApiService.delete(id);
+    }
+
+    @Operation(summary = "查询请假审批", description = "根据id查询请假审批")
+    @RequestMapping(value = "findOneById", method = {RequestMethod.GET})
+    public ResultContent<LeaveApprovalModel> findOneById(@RequestParam("id")String id){
+        return leaveOpenApiService.findOneById(id);
+    }
+
+    @Operation(summary = "分页查询请假审批", description = "分页查询请假审批")
+    @RequestMapping(value = "page", method = {RequestMethod.POST})
+    public ResultContent<Page<LeaveApprovalModel>> page(@Parameter(hidden = true) @PageableDefault(page = 0, size = 10)Pageable pageable,
+                                                        @Parameter(required = false) PageLeaveOpenApiParam param){
+        return leaveOpenApiService.page(pageable,param);
+    }
+}

+ 2 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/attendance/extend/LeaveApprovalDaoExtend.java

@@ -1,8 +1,8 @@
 package com.zhongshu.card.server.core.dao.attendance.extend;
 
+import com.zhongshu.card.client.openApi.params.PageLeaveOpenApiParam;
 import com.zhongshu.card.client.type.LeaveQueryType;
 import com.zhongshu.card.client.type.LeaveStatus;
-import com.zhongshu.card.server.core.dao.attendance.LeaveApprovalDao;
 import com.zhongshu.card.server.core.domain.attendance.LeaveApproval;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -13,4 +13,5 @@ public interface LeaveApprovalDaoExtend {
 
     Page<LeaveApproval> page(Pageable pageable, LeaveQueryType queryType, String projectId, String sceneId, String userId, Long startTime, Long endTime, List<String> leaveType, List<LeaveStatus> leaveStatus);
 
+    Page<LeaveApproval> openApiPage(Pageable pageable, PageLeaveOpenApiParam param);
 }

+ 40 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/attendance/impl/LeaveApprovalDaoImpl.java

@@ -1,6 +1,7 @@
 package com.zhongshu.card.server.core.dao.attendance.impl;
 
 import com.github.microservice.components.data.mongo.mongo.helper.DBHelper;
+import com.zhongshu.card.client.openApi.params.PageLeaveOpenApiParam;
 import com.zhongshu.card.client.type.LeaveQueryType;
 import com.zhongshu.card.client.type.LeaveStatus;
 import com.zhongshu.card.server.core.dao.attendance.LeaveApprovalDao;
@@ -71,4 +72,43 @@ public class LeaveApprovalDaoImpl implements LeaveApprovalDaoExtend {
 
         return dbHelper.pages(query, pageable, LeaveApproval.class);
     }
+
+    @Override
+    public Page<LeaveApproval> openApiPage(Pageable pageable, PageLeaveOpenApiParam param) {
+
+        Criteria criteria = new Criteria();
+
+        if (StringUtils.isNotBlank(param.getProjectId())){
+            criteria.and("projectId").is(param.getProjectId());
+        }
+
+        if (StringUtils.isNotBlank(param.getSceneId())){
+            criteria.and("sceneId").is(param.getSceneId());
+        }
+
+        if (param.getLeaveType()!=null && !param.getLeaveType().isEmpty()){
+            criteria.and("leaveType").in(param.getLeaveType());
+        }
+
+        if (param.getLeaveStatus() != null && !param.getLeaveStatus().isEmpty()){
+            criteria.and("leaveStatus").in(param.getLeaveStatus());
+        }
+
+        if (param.getStartTime() != null && param.getEndTime() != null){
+            criteria.and("createTime").gte(param.getStartTime()).lte(param.getEndTime());
+        }
+
+        if (StringUtils.isNotBlank(param.getApprovalUser())){
+            criteria.and("approvalUser").is(param.getApprovalUser());
+        }
+
+        if (StringUtils.isNotBlank(param.getLeaveUser())){
+            criteria.and("leaveUser").is(param.getLeaveUser());
+        }
+
+        Query query = new Query(criteria);
+        query.with(Sort.by(Sort.Direction.DESC, "createTime"));
+
+        return dbHelper.pages(query, pageable, LeaveApproval.class);
+    }
 }

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/attendance/LeaveService.java

@@ -174,7 +174,7 @@ public class LeaveService extends SuperService {
         return ResultContent.buildContent(PageEntityUtil.concurrent2PageModel(page, this::toModel));
     }
 
-    private LeaveApprovalModel toModel(LeaveApproval leaveApproval) {
+    public LeaveApprovalModel toModel(LeaveApproval leaveApproval) {
         LeaveApprovalModel model = new LeaveApprovalModel();
         if (leaveApproval != null){
             BeanUtils.copyProperties(leaveApproval, model, "approvalUser","leaveUser");

+ 72 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/openAPI/attendance/LeaveOpenApiService.java

@@ -0,0 +1,72 @@
+package com.zhongshu.card.server.core.service.openAPI.attendance;
+
+import com.github.microservice.components.data.base.util.PageEntityUtil;
+import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.client.model.attendance.LeaveApprovalModel;
+import com.zhongshu.card.client.openApi.params.AddLeaveOpenApiParam;
+import com.zhongshu.card.client.openApi.params.PageLeaveOpenApiParam;
+import com.zhongshu.card.server.core.dao.attendance.LeaveApprovalDao;
+import com.zhongshu.card.server.core.domain.attendance.LeaveApproval;
+import com.zhongshu.card.server.core.service.attendance.LeaveService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class LeaveOpenApiService {
+
+    @Autowired
+    LeaveApprovalDao leaveApprovalDao;
+
+    @Autowired
+    LeaveService leaveService;
+
+    public ResultContent<String> add(AddLeaveOpenApiParam param){
+        LeaveApproval leaveApproval = new LeaveApproval();
+        BeanUtils.copyProperties(param, leaveApproval, "id");
+        leaveApprovalDao.save(leaveApproval);
+        return ResultContent.buildContent(leaveApproval.getId());
+    }
+
+    public ResultContent<String> update(LeaveApproval param){
+        if (StringUtils.isBlank(param.getId())){
+            return ResultContent.buildFail("id不能为空");
+        }
+        LeaveApproval leaveApproval = new LeaveApproval();
+        com.zhongshu.card.server.core.util.BeanUtils.copyPropertiesWithoutNull(param, leaveApproval);
+        leaveApprovalDao.save(leaveApproval);
+        return ResultContent.buildSuccess(leaveApproval.getId());
+    }
+
+    public ResultContent delete(String id){
+        leaveApprovalDao.deleteById(id);
+        return ResultContent.buildSuccess(id);
+    }
+
+    public ResultContent<LeaveApprovalModel> findOneById(String id){
+        if (StringUtils.isBlank(id)){
+            return ResultContent.buildFail("id不能为空");
+        }
+        LeaveApproval leaveApproval = leaveApprovalDao.findTopById(id);
+        if (leaveApproval == null){
+            return ResultContent.buildFail("数据不存在");
+        }
+        LeaveApprovalModel model = leaveService.toModel(leaveApproval);
+        return ResultContent.buildContent(model);
+    }
+
+    public ResultContent<Page<LeaveApprovalModel>> page(Pageable pageable, PageLeaveOpenApiParam param){
+        Page<LeaveApproval> page = leaveApprovalDao.openApiPage(pageable, param);
+        Page<LeaveApprovalModel> leaveApprovalModels = PageEntityUtil.concurrent2PageModel(page, it -> {
+            return leaveService.toModel(it);
+        });
+        return ResultContent.buildSuccess(leaveApprovalModels);
+    }
+
+
+}