소스 검색

Merge branch 'master' of http://114.55.67.98:8070/Natural_p1/zjugis_OA

songxy 10 달 전
부모
커밋
5b7c61b05a

+ 91 - 0
zjugis-business/src/main/java/com/zjugis/business/bean/entity/ProjectTracking.java

@@ -0,0 +1,91 @@
+package com.zjugis.business.bean.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zjugis.business.mybatis.entity.BaseEntity;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/8/27 13:44
+ * @Version 1.0
+ */
+@Data
+@TableName(value = "PROJECT_TRACKING")
+public class ProjectTracking extends BaseEntity {
+
+    /**
+     * 项目追踪ID
+     */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /**
+     * 项目名称
+     */
+    private String xmmc;
+
+    /**
+     * 跟踪人员ID
+     */
+    private String gzryId;
+
+    /**
+     * 跟踪人员
+     */
+    private String gzry;
+
+    /**
+     * 甲方
+     */
+    private String jf;
+
+    /**
+     * 预估金额
+     */
+    private BigDecimal ygje;
+
+    /**
+     * 甲方对接人
+     */
+    private String jfdjr;
+
+    /**
+     * 项目部门ID
+     */
+    private String xmbmId;
+
+    /**
+     * 项目部门
+     */
+    private String xmbm;
+
+    /**
+     * 行政区代码
+     */
+    private String xzqdm;
+
+    /**
+     * 状态
+     */
+    private String zt;
+
+    /**
+     * 可见人员IDS
+     */
+    private String visibleUserIds;
+
+    /**
+     * 追踪开关状态(0:正常;1:停用)
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String bz;
+
+}

+ 31 - 0
zjugis-business/src/main/java/com/zjugis/business/bean/request/ProjectTrackingPageRequest.java

@@ -0,0 +1,31 @@
+package com.zjugis.business.bean.request;
+
+import com.zjugis.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/8/29 14:01
+ * @Version 1.0
+ */
+@Schema(description = "项目跟踪 - 分页 Request VO")
+@Data
+@ToString(callSuper = true)
+public class ProjectTrackingPageRequest extends PageParam {
+
+    @Schema(description = "项目名称")
+    private String xmmc;
+
+    @Schema(description = "跟踪人员ID")
+    private String gzryId;
+
+    @Schema(description = "项目部门ID")
+    private String xmbmId;
+
+    @Schema(description = "追踪开关状态")
+    private Integer status;
+}

+ 72 - 0
zjugis-business/src/main/java/com/zjugis/business/bean/request/ProjectTrackingRequest.java

@@ -0,0 +1,72 @@
+package com.zjugis.business.bean.request;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/8/28 16:03
+ * @Version 1.0
+ */
+@Schema(description = "项目跟踪 - 保存 Request VO")
+@Data
+public class ProjectTrackingRequest {
+
+
+    @Schema(description = "项目跟踪ID")
+    private String id;
+
+    @Schema(description = "项目名称")
+    @NotBlank(message = "项目名称不能为空")
+    private String xmmc;
+
+    @Schema(description = "跟踪人员ID")
+    @NotBlank(message = "跟踪人员ID不能为空")
+    private String gzryId;
+
+    @Schema(description = "跟踪人员")
+    @NotBlank(message = "跟踪人员不能为空")
+    private String gzry;
+
+    @Schema(description = "甲方")
+    @NotBlank(message = "甲方不能为空")
+    private String jf;
+
+    @Schema(description = "预估金额")
+    @NotNull(message = "甲方不能为空")
+    private BigDecimal ygje;
+
+    @Schema(description = "甲方对接人")
+    @NotBlank(message = "甲方对接人不能为空")
+    private String jfdjr;
+
+    @Schema(description = "项目部门ID")
+    @NotBlank(message = "项目部门ID不能为空")
+    private String xmbmId;
+
+    @Schema(description = "项目部门")
+    @NotBlank(message = "项目部门不能为空")
+    private String xmbm;
+
+    @Schema(description = "行政区代码")
+    @NotBlank(message = "行政区代码不能为空")
+    private String xzqdm;
+
+    @Schema(description = "状态")
+    @NotBlank(message = "状态不能为空")
+    private String zt;
+
+    @Schema(description = "可见人员IDS")
+    private String visibleUserIds;
+
+    @Schema(description = "追踪开关状态")
+    @NotBlank(message = "追踪开关状态不能为空")
+    private Integer status;
+
+    @Schema(description = "备注")
+    private String bz;
+}

+ 52 - 0
zjugis-business/src/main/java/com/zjugis/business/bean/response/ProjectTrackingResp.java

@@ -0,0 +1,52 @@
+package com.zjugis.business.bean.response;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/8/29 13:43
+ * @Version 1.0
+ */
+@Schema(description = "项目追踪列表 Response VO")
+@Data
+public class ProjectTrackingResp {
+
+    @Schema(description = "项目跟踪ID")
+    private String id;
+
+    @Schema(description = "项目名称")
+    private String xmmc;
+
+    @Schema(description = "跟踪人员")
+    private String gzry;
+
+    @Schema(description = "跟踪人员ID")
+    private String gzryId;
+
+    @Schema(description = "甲方")
+    private String jf;
+
+    @Schema(description = "预估金额")
+    private BigDecimal ygje;
+
+    @Schema(description = "甲方对接人")
+    private String jfdjr;
+
+    @Schema(description = "项目部门")
+    private String xmbm;
+
+    @Schema(description = "行政区代码")
+    private String xzqdm;
+
+    @Schema(description = "状态")
+    private String zt;
+
+    @Schema(description = "追踪开关状态")
+    private Integer status;
+
+    @Schema(description = "备注")
+    private String bz;
+}

+ 22 - 0
zjugis-business/src/main/java/com/zjugis/business/bean/response/ProjectTrackingSummaryResp.java

@@ -0,0 +1,22 @@
+package com.zjugis.business.bean.response;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/9/11 13:43
+ * @Version 1.0
+ */
+@Schema(description = "项目追踪列表汇总 Response VO")
+@Data
+public class ProjectTrackingSummaryResp {
+
+    @Schema(description = "数量")
+    private Integer nums;
+
+    @Schema(description = "金额")
+    private BigDecimal amount;
+}

+ 55 - 0
zjugis-business/src/main/java/com/zjugis/business/controller/ProjectTrackingController.java

@@ -0,0 +1,55 @@
+package com.zjugis.business.controller;
+
+import com.zjugis.business.bean.entity.ProjectTracking;
+import com.zjugis.business.bean.request.ProjectTrackingPageRequest;
+import com.zjugis.business.bean.request.ProjectTrackingRequest;
+import com.zjugis.business.bean.response.ProjectTrackingResp;
+import com.zjugis.business.bean.response.ProjectTrackingSummaryResp;
+import com.zjugis.business.converter.projecttracking.ProjectTrackingConvert;
+import com.zjugis.business.service.ProjectTrackingService;
+import com.zjugis.framework.common.pojo.CommonResult;
+import com.zjugis.framework.common.pojo.PageResult;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/8/27 14:07
+ * @Version 1.0
+ */
+@Tag(name = "项目 - 项目追踪")
+@RestController
+@RequestMapping
+public class ProjectTrackingController {
+
+    @Resource
+    private ProjectTrackingService projectTrackingService;
+
+    @PostMapping("/projectTracking/save")
+    @Operation(summary = "项目追踪保存")
+    public CommonResult<ProjectTracking> save(@Valid @RequestBody ProjectTrackingRequest reqVO) {
+        return CommonResult.success(projectTrackingService.save(ProjectTrackingConvert.INSTANCE.convert(reqVO)));
+    }
+
+    @GetMapping("/projectTracking/page")
+    @Operation(summary = "项目追踪分页列表")
+    public CommonResult<PageResult<ProjectTrackingResp>> page(@Valid ProjectTrackingPageRequest reqVO) {
+        return CommonResult.success(projectTrackingService.page(reqVO));
+    }
+
+    @GetMapping("/projectTracking/summary")
+    @Operation(summary = "项目追踪分页列表")
+    public CommonResult<ProjectTrackingSummaryResp> summary(@Valid ProjectTrackingPageRequest reqVO) {
+        return CommonResult.success(projectTrackingService.summary(reqVO));
+    }
+
+    @GetMapping("/projectTracking/getById")
+    @Operation(summary = "项目追踪明细")
+    public CommonResult<ProjectTracking> getById(@RequestParam("id") String id) {
+        return CommonResult.success(projectTrackingService.getById(id));
+    }
+}

+ 23 - 0
zjugis-business/src/main/java/com/zjugis/business/converter/projecttracking/ProjectTrackingConvert.java

@@ -0,0 +1,23 @@
+package com.zjugis.business.converter.projecttracking;
+
+import com.zjugis.business.bean.entity.ProjectTracking;
+import com.zjugis.business.bean.request.ProjectTrackingRequest;
+import com.zjugis.business.bean.response.ProjectTrackingResp;
+import com.zjugis.framework.common.pojo.PageResult;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/8/29 9:49
+ * @Version 1.0
+ */
+@Mapper
+public interface ProjectTrackingConvert {
+
+    ProjectTrackingConvert INSTANCE = Mappers.getMapper(ProjectTrackingConvert.class);
+
+    ProjectTracking convert(ProjectTrackingRequest entity);
+
+    PageResult<ProjectTrackingResp> convertPage(PageResult<ProjectTracking> page);
+}

+ 49 - 0
zjugis-business/src/main/java/com/zjugis/business/mapper/ProjectTrackingMapper.java

@@ -0,0 +1,49 @@
+package com.zjugis.business.mapper;
+
+import com.zjugis.business.bean.entity.ProjectTracking;
+import com.zjugis.business.bean.request.ProjectTrackingPageRequest;
+import com.zjugis.framework.common.pojo.PageResult;
+import com.zjugis.framework.mybatis.core.mapper.BaseMapperX;
+import com.zjugis.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zjugis.framework.security.core.util.SecurityFrameworkUtils;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/8/28 14:35
+ * @Version 1.0
+ */
+@Repository
+public interface ProjectTrackingMapper extends BaseMapperX<ProjectTracking> {
+    /**
+     * 项目追踪分页
+     *
+     * @param reqVO
+     * @return
+     */
+    default PageResult<ProjectTracking> page(ProjectTrackingPageRequest reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<ProjectTracking>()
+                .eqIfPresent(ProjectTracking::getGzryId, reqVO.getGzryId())
+                .eqIfPresent(ProjectTracking::getXmbmId, reqVO.getXmbmId())
+                .eqIfPresent(ProjectTracking::getStatus, reqVO.getStatus())
+                .likeIfPresent(ProjectTracking::getXmmc, reqVO.getXmmc())
+                .and(wq -> wq.like(ProjectTracking::getVisibleUserIds, SecurityFrameworkUtils.getLoginUserId())
+                        .or()
+                        .eq(ProjectTracking::getGzryId, SecurityFrameworkUtils.getLoginUserId()))
+                .orderByDesc(ProjectTracking::getCreateTime));
+    }
+
+    default List<ProjectTracking> list(ProjectTrackingPageRequest reqVO) {
+        return selectList(new LambdaQueryWrapperX<ProjectTracking>()
+                .eqIfPresent(ProjectTracking::getGzryId, reqVO.getGzryId())
+                .eqIfPresent(ProjectTracking::getXmbmId, reqVO.getXmbmId())
+                .eqIfPresent(ProjectTracking::getStatus, reqVO.getStatus())
+                .likeIfPresent(ProjectTracking::getXmmc, reqVO.getXmmc())
+                .and(wq -> wq.like(ProjectTracking::getVisibleUserIds, SecurityFrameworkUtils.getLoginUserId())
+                        .or()
+                        .eq(ProjectTracking::getGzryId, SecurityFrameworkUtils.getLoginUserId()))
+        );
+    }
+}

+ 42 - 0
zjugis-business/src/main/java/com/zjugis/business/service/ProjectTrackingService.java

@@ -0,0 +1,42 @@
+package com.zjugis.business.service;
+
+import com.zjugis.business.bean.entity.ProjectTracking;
+import com.zjugis.business.bean.request.ProjectTrackingPageRequest;
+import com.zjugis.business.bean.response.ProjectTrackingResp;
+import com.zjugis.business.bean.response.ProjectTrackingSummaryResp;
+import com.zjugis.framework.common.pojo.PageResult;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/8/28 14:17
+ * @Version 1.0
+ */
+public interface ProjectTrackingService {
+    /**
+     * 项目追踪保存
+     * @param entity
+     * @return
+     */
+    ProjectTracking save(ProjectTracking entity);
+
+    /**
+     * 项目追踪分页
+     * @param reqVO
+     * @return
+     */
+    PageResult<ProjectTrackingResp> page(ProjectTrackingPageRequest reqVO);
+
+    /**
+     * 获取项目追踪明细
+     * @param id
+     * @return
+     */
+    ProjectTracking getById(String id);
+
+    /**
+     * 项目追踪汇总
+     * @param reqVO
+     * @return
+     */
+    ProjectTrackingSummaryResp summary(ProjectTrackingPageRequest reqVO);
+}

+ 62 - 0
zjugis-business/src/main/java/com/zjugis/business/service/impl/ProjectTrackingServiceImpl.java

@@ -0,0 +1,62 @@
+package com.zjugis.business.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.zjugis.business.bean.entity.ProjectTracking;
+import com.zjugis.business.bean.request.ProjectTrackingPageRequest;
+import com.zjugis.business.bean.response.ProjectTrackingResp;
+import com.zjugis.business.bean.response.ProjectTrackingSummaryResp;
+import com.zjugis.business.converter.projecttracking.ProjectTrackingConvert;
+import com.zjugis.business.mapper.ProjectTrackingMapper;
+import com.zjugis.business.service.ProjectTrackingService;
+import com.zjugis.framework.common.pojo.PageResult;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/8/28 14:18
+ * @Version 1.0
+ */
+@Service
+public class ProjectTrackingServiceImpl implements ProjectTrackingService {
+
+    @Resource
+    private ProjectTrackingMapper projectTrackingMapper;
+
+    @Override
+    public ProjectTracking save(ProjectTracking entity) {
+        if (StringUtils.isNotEmpty(entity.getId())) {
+            projectTrackingMapper.updateById(entity);
+        } else {
+            projectTrackingMapper.insert(entity);
+        }
+        return entity;
+    }
+
+    @Override
+    public PageResult<ProjectTrackingResp> page(ProjectTrackingPageRequest reqVO) {
+        return ProjectTrackingConvert.INSTANCE.convertPage(projectTrackingMapper.page(reqVO));
+    }
+
+    @Override
+    public ProjectTracking getById(String id) {
+        return projectTrackingMapper.selectById(id);
+    }
+
+    @Override
+    public ProjectTrackingSummaryResp summary(ProjectTrackingPageRequest reqVO) {
+        List<ProjectTracking> list = projectTrackingMapper.list(reqVO);
+        if(CollectionUtil.isEmpty(list)){
+            return null;
+        }
+        BigDecimal amount = list.stream().map(ProjectTracking::getYgje).reduce(BigDecimal.ZERO, BigDecimal::add);
+        ProjectTrackingSummaryResp resp = new ProjectTrackingSummaryResp();
+        resp.setNums(list.size());
+        resp.setAmount(amount);
+        return resp;
+    }
+}

+ 23 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/controller/admin/report/vo/receive/ReportReceiveUpdateReadReqVO.java

@@ -0,0 +1,23 @@
+package com.zjugis.module.adm.controller.admin.report.vo.receive;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/8/9 13:43
+ * @Version 1.0
+ */
+@Data
+public class ReportReceiveUpdateReadReqVO {
+
+    @Schema(description = "报告ID", example = "30673")
+    @NotNull(message = "报告ID不能为空")
+    private Long reportId;
+
+    @Schema(description = "接收人用户ID", example = "23028")
+    @NotNull(message = "接收人用户ID不能为空")
+    private String receiveUserId;
+}