Jelajahi Sumber

20220927
项目列表管理

sunruiqi 2 tahun lalu
induk
melakukan
e2be08e6b2
11 mengubah file dengan 513 tambahan dan 0 penghapusan
  1. 54 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/controller/ProjectListController.java
  2. 104 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramProjectListInfo.java
  3. 23 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramProjectListLink.java
  4. 21 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramProjectListMember.java
  5. 11 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProjectLinkMapper.java
  6. 7 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProjectListMapper.java
  7. 12 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProjectMemberMapper.java
  8. 9 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProjectLinkMapper.xml
  9. 9 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProjectMemberMapper.xml
  10. 154 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/ProjectListService.java
  11. 109 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/dto/ProjectListDto.java

+ 54 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/controller/ProjectListController.java

@@ -0,0 +1,54 @@
+package com.jeeplus.test.program.configuration.projectList.controller;
+
+import com.jeeplus.test.program.configuration.projectList.service.ProjectListService;
+import com.jeeplus.test.program.configuration.projectList.service.dto.ProjectListDto;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Api(tags ="项目列表管理")
+@RestController
+@RequestMapping(value = "/program/projectList")
+public class ProjectListController {
+
+    @Resource
+    private ProjectListService projectListService;
+
+    /**
+     * 新增/修改
+     */
+    @ApiOperation(value = "新增/修改")
+    @PostMapping(value = "/save")
+    public ResponseEntity<String> save(@RequestBody ProjectListDto projectListDto){
+        String add = projectListService.save(projectListDto);
+        return ResponseEntity.ok(add);
+    }
+
+    /**
+     * 根据id查询
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "根据id查询")
+    @GetMapping(value = "/findById")
+    public ResponseEntity<ProjectListDto> save(@RequestParam String id){
+        ProjectListDto dto = projectListService.findById(id);
+        return ResponseEntity.ok(dto);
+    }
+
+    /**
+     * 根据id删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "根据id删除")
+    @GetMapping(value = "/deleteById")
+    public ResponseEntity<String> deleteById(@RequestParam String id){
+        String s = projectListService.deleteById(id);
+        return ResponseEntity.ok(s);
+    }
+
+}

+ 104 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramProjectListInfo.java

@@ -0,0 +1,104 @@
+package com.jeeplus.test.program.configuration.projectList.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import org.apache.poi.hpsf.Decimal;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName(value = "program_project_list_info")
+public class ProgramProjectListInfo extends BaseEntity {
+
+    private String contractId;
+
+    private String contractName;
+
+    private String contractNo;
+
+    private String projectType;
+
+    private String company;
+
+    private String client;
+
+    private String propertyHolder;
+
+    private String location;
+
+    private String isFirst;
+
+    private String yearNum;
+
+    private String checkYear;
+
+    private String projectManager;
+
+    private String reportType;
+
+    private String industry;
+
+    private String enterpriseType;
+
+    private String riskLevel;
+
+    private String projectSource;
+
+    private BigDecimal estimate;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date planEndTime;
+
+    private Integer useNum;
+
+    private Integer appointment;
+
+    private Double workHours;
+
+    private String remarks;
+
+    private String assessmentEnterprise;
+
+    private String linkNum;
+
+    private String relationship;
+
+    private String assessmentWay;
+
+    private String assessmentObjective;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date assessmentDate;
+
+    private BigDecimal num;
+
+    private String projectDevelopment;
+
+    private String delegateProjectType;
+
+    private String assessmentObject;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date workBeginDate;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date workEndDate;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date reportingDate;
+
+    private String isHave;
+
+    private String isInfluence;
+
+    private String mode;
+}

+ 23 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramProjectListLink.java

@@ -0,0 +1,23 @@
+package com.jeeplus.test.program.configuration.projectList.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+@TableName(value = "program_project_list_link")
+public class ProgramProjectListLink extends BaseEntity {
+
+    private String infoId;
+
+    private String contacts;
+
+    private String linkMobilePhoneFirst;
+
+    private String linkMobilePhoneSecoed;
+
+    private String job;
+
+    private String remarks;
+
+}

+ 21 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramProjectListMember.java

@@ -0,0 +1,21 @@
+package com.jeeplus.test.program.configuration.projectList.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+@TableName(value = "program_project_list_member")
+public class ProgramProjectListMember extends BaseEntity {
+
+    private String infoId;
+
+    private String name;
+
+    private String workHours;
+
+    private String type;
+
+    private String job;
+
+}

+ 11 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProjectLinkMapper.java

@@ -0,0 +1,11 @@
+package com.jeeplus.test.program.configuration.projectList.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListLink;
+import org.apache.ibatis.annotations.Param;
+
+public interface ProjectLinkMapper extends BaseMapper<ProgramProjectListLink> {
+
+    void deleteByInfoId(@Param("id") String id);
+
+}

+ 7 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProjectListMapper.java

@@ -0,0 +1,7 @@
+package com.jeeplus.test.program.configuration.projectList.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo;
+
+public interface ProjectListMapper extends BaseMapper<ProgramProjectListInfo> {
+}

+ 12 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProjectMemberMapper.java

@@ -0,0 +1,12 @@
+package com.jeeplus.test.program.configuration.projectList.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListMember;
+import org.apache.ibatis.annotations.Param;
+
+public interface ProjectMemberMapper extends BaseMapper<ProgramProjectListMember> {
+
+    void deleteByInfoId(@Param("id") String id);
+
+}

+ 9 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProjectLinkMapper.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.program.configuration.projectList.mapper.ProjectLinkMapper">
+
+   <delete id="deleteByInfoId">
+       UPDATE program_project_list_link SET del_flag = 1 WHERE del_flag = 0 AND info_id = #{id}
+   </delete>
+
+</mapper>

+ 9 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProjectMemberMapper.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.program.configuration.projectList.mapper.ProjectMemberMapper">
+
+   <delete id="deleteByInfoId">
+       UPDATE program_project_list_member SET del_flag = 1 WHERE del_flag = 0 AND info_id = #{id}
+   </delete>
+
+</mapper>

+ 154 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/ProjectListService.java

@@ -0,0 +1,154 @@
+package com.jeeplus.test.program.configuration.projectList.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListLink;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListMember;
+import com.jeeplus.test.program.configuration.projectList.mapper.ProjectLinkMapper;
+import com.jeeplus.test.program.configuration.projectList.mapper.ProjectListMapper;
+import com.jeeplus.test.program.configuration.projectList.mapper.ProjectMemberMapper;
+import com.jeeplus.test.program.configuration.projectList.service.dto.ProjectListDto;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+@Service
+public class ProjectListService {
+
+    @Resource
+    private ProjectListMapper projectListMapper;
+    @Resource
+    private ProjectLinkMapper projectLinkMapper;
+    @Resource
+    private ProjectMemberMapper projectMemberMapper;
+
+    public String save(ProjectListDto dto){
+        if (StringUtils.isNotEmpty(dto.getId())) {
+            return update(dto);
+        }
+        return add(dto);
+    }
+
+    public String add(ProjectListDto dto) {
+        ProgramProjectListInfo info = new ProgramProjectListInfo();
+        //获取当前登录人信息
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        // 保存项目管理列表主表信息
+        BeanUtils.copyProperties(dto, info);
+        String id = UUID.randomUUID().toString().replace("-", "");
+        info.setId(id);
+        info.setCreateBy(userDTO.getId());
+        info.setCreateDate(new Date());
+        info.setUpdateBy(userDTO.getId());
+        info.setUpdateDate(new Date());
+        info.setDelFlag(0);
+        projectListMapper.insert(info);
+        // 保存项目管理列表联系人信息
+        if (CollectionUtils.isNotEmpty(dto.getLinks())) {
+            for (ProgramProjectListLink link : dto.getLinks()) {
+                link.setId(UUID.randomUUID().toString().replace("-", ""));
+                link.setInfoId(id);
+                link.setCreateBy(userDTO.getId());
+                link.setCreateDate(new Date());
+                link.setUpdateBy(userDTO.getId());
+                link.setUpdateDate(new Date());
+                link.setDelFlag(0);
+                projectLinkMapper.insert(link);
+            }
+        }
+        // 保存项目管理列表成员信息
+        if (CollectionUtils.isNotEmpty(dto.getMembers())) {
+            for (ProgramProjectListMember member : dto.getMembers()) {
+                member.setId(UUID.randomUUID().toString().replace("-", ""));
+                member.setInfoId(id);
+                member.setCreateBy(userDTO.getId());
+                member.setCreateDate(new Date());
+                member.setUpdateBy(userDTO.getId());
+                member.setUpdateDate(new Date());
+                member.setDelFlag(0);
+                projectMemberMapper.insert(member);
+            }
+        }
+        return "操作成功";
+    }
+
+    public String update(ProjectListDto dto) {
+        //获取当前登录人信息
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        // 修改项目管理列表主表信息
+        ProgramProjectListInfo info = new ProgramProjectListInfo();
+        BeanUtils.copyProperties(dto, info);
+        info.setUpdateBy(userDTO.getId());
+        info.setUpdateDate(new Date());
+        info.setDelFlag(0);
+        projectListMapper.updateById(info);
+        // 修改项目管理列表联系人信息(先删除原有数据,再保存)
+        if (CollectionUtils.isNotEmpty(dto.getLinks())) {
+            projectLinkMapper.deleteByInfoId(dto.getId());
+            for (ProgramProjectListLink link : dto.getLinks()) {
+                link.setId(UUID.randomUUID().toString().replace("-", ""));
+                link.setInfoId(dto.getId());
+                link.setCreateBy(userDTO.getId());
+                link.setCreateDate(new Date());
+                link.setUpdateBy(userDTO.getId());
+                link.setUpdateDate(new Date());
+                link.setDelFlag(0);
+                projectLinkMapper.insert(link);
+            }
+        }
+        // 修改项目管理列表成员信息(先删除原有数据,再保存)
+        if (CollectionUtils.isNotEmpty(dto.getMembers())) {
+            projectMemberMapper.deleteByInfoId(dto.getId());
+            for (ProgramProjectListMember member : dto.getMembers()) {
+                member.setId(UUID.randomUUID().toString().replace("-", ""));
+                member.setInfoId(dto.getId());
+                member.setCreateBy(userDTO.getId());
+                member.setCreateDate(new Date());
+                member.setUpdateBy(userDTO.getId());
+                member.setUpdateDate(new Date());
+                member.setDelFlag(0);
+                projectMemberMapper.insert(member);
+            }
+        }
+        return "操作成功";
+    }
+
+    public ProjectListDto findById(String id) {
+        ProjectListDto dto = new ProjectListDto();
+        // 查询主表信息
+        ProgramProjectListInfo info = projectListMapper.selectById(id);
+        BeanUtils.copyProperties(info, dto);
+        // 查询联系人列表
+        LambdaQueryWrapper<ProgramProjectListLink> linkWrapper = new LambdaQueryWrapper<>();
+        linkWrapper.eq(ProgramProjectListLink::getInfoId, id);
+        linkWrapper.eq(ProgramProjectListLink::getDelFlag, 0);
+        List<ProgramProjectListLink> links = projectLinkMapper.selectList(linkWrapper);
+        if (CollectionUtils.isNotEmpty(links)) {
+            dto.setLinks(links);
+        }
+        // 查询成员列表
+        LambdaQueryWrapper<ProgramProjectListMember> memberWrapper = new LambdaQueryWrapper<>();
+        memberWrapper.eq(ProgramProjectListMember::getInfoId, id);
+        memberWrapper.eq(ProgramProjectListMember::getDelFlag, 0);
+        List<ProgramProjectListMember> members = projectMemberMapper.selectList(memberWrapper);
+        if (CollectionUtils.isNotEmpty(members)) {
+            dto.setMembers(members);
+        }
+        return dto;
+    }
+
+    public String deleteById(String id) {
+        projectListMapper.deleteById(id);
+        projectLinkMapper.deleteByInfoId(id);
+        projectMemberMapper.deleteByInfoId(id);
+        return "操作成功";
+    }
+}

+ 109 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/dto/ProjectListDto.java

@@ -0,0 +1,109 @@
+package com.jeeplus.test.program.configuration.projectList.service.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListLink;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListMember;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class ProjectListDto extends BaseEntity {
+
+    private String contractId;
+
+    private String contractName;
+
+    private String contractNo;
+
+    private String projectType;
+
+    private String company;
+
+    private String client;
+
+    private String propertyHolder;
+
+    private String location;
+
+    private String isFirst;
+
+    private String yearNum;
+
+    private String checkYear;
+
+    private String projectManager;
+
+    private String reportType;
+
+    private String industry;
+
+    private String enterpriseType;
+
+    private String riskLevel;
+
+    private String projectSource;
+
+    private BigDecimal estimate;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date planEndTime;
+
+    private Integer useNum;
+
+    private Integer appointment;
+
+    private Double workHours;
+
+    private String remarks;
+
+    private String assessmentEnterprise;
+
+    private String linkNum;
+
+    private String relationship;
+
+    private String assessmentWay;
+
+    private String assessmentObjective;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date assessmentDate;
+
+    private BigDecimal num;
+
+    private String projectDevelopment;
+
+    private String delegateProjectType;
+
+    private String assessmentObject;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date workBeginDate;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date workEndDate;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date reportingDate;
+
+    private String isHave;
+
+    private String isInfluence;
+
+    private String mode;
+
+    private List<ProgramProjectListLink> links;
+
+    private List<ProgramProjectListMember> members;
+
+}