Selaa lähdekoodia

20220928
项目登记

sunruiqi 2 vuotta sitten
vanhempi
commit
29be43c9f9

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

@@ -1,7 +1,15 @@
 package com.jeeplus.test.program.configuration.projectList.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo;
 import com.jeeplus.test.program.configuration.projectList.service.ProjectListService;
+import com.jeeplus.test.program.configuration.projectList.service.dto.ContractDto;
 import com.jeeplus.test.program.configuration.projectList.service.dto.ProjectListDto;
+import com.jeeplus.test.workContract.domain.WorkContractInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.http.ResponseEntity;
@@ -22,9 +30,9 @@ public class ProjectListController {
      */
     @ApiOperation(value = "新增/修改")
     @PostMapping(value = "/save")
-    public ResponseEntity<String> save(@RequestBody ProjectListDto projectListDto){
-        String add = projectListService.save(projectListDto);
-        return ResponseEntity.ok(add);
+    public ResponseEntity<String> save(@RequestBody ProjectListDto projectListDto) throws Exception{
+        String id = projectListService.save(projectListDto);
+        return ResponseUtil.newInstance().add("businessTable", "program_project_list_info").add("businessId", id).ok ("操作成功");
     }
 
     /**
@@ -51,4 +59,44 @@ public class ProjectListController {
         return ResponseEntity.ok(s);
     }
 
+    /**
+     * 合同信息列表查询
+     * @param dto
+     * @param page
+     * @return
+     */
+    @ApiOperation(value = "合同信息列表查询")
+    @GetMapping(value = "/findContractPageList")
+    public ResponseEntity<IPage<WorkContractInfo>> findContractPageList(ContractDto dto, Page<WorkContractInfo> page) {
+        IPage<WorkContractInfo> pageList = projectListService.findContractPageList(dto, page);
+        return ResponseEntity.ok(pageList);
+    }
+
+    /**
+     * 根据id修改状态值status
+     * @param dto
+     * @return
+     */
+    @ApiOperation(value = "根据id修改状态值status")
+    @PostMapping(value = "/updateStatusById")
+    public ResponseEntity<String> updateStatusById(@RequestBody ProjectListDto dto) {
+        String s = projectListService.updateStatusById(dto);
+        return ResponseEntity.ok(s);
+    }
+
+    /**
+     * 合同登记列表
+     * @param info
+     * @param page
+     * @return
+     * @throws Exception
+     */
+    @ApiOperation(value = "合同登记列表")
+    @GetMapping(value = "/list")
+    public ResponseEntity<IPage<ProgramProjectListInfo>> list(ProgramProjectListInfo info, Page<ProgramProjectListInfo> page) throws Exception {
+        IPage<ProgramProjectListInfo> list = projectListService.list(page, info);
+        return ResponseEntity.ok (list);
+    }
+
+
 }

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

@@ -1,8 +1,9 @@
 package com.jeeplus.test.program.configuration.projectList.domain;
 
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.query.Query;
 import lombok.Data;
 import org.apache.poi.hpsf.Decimal;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -12,20 +13,80 @@ import java.util.Date;
 
 @Data
 @TableName(value = "program_project_list_info")
-public class ProgramProjectListInfo extends BaseEntity {
+public class ProgramProjectListInfo {
+
+    /**
+     * 实体主键
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 创建日期
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+
+    /**
+     * 创建人
+     */
+    @Query(tableColumn = "a.create_by")
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * 更新日期
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateDate;
+
+    /**
+     * 更新人
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    /**
+     * 逻辑删除标记
+     */
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private Integer delFlag;
 
     private String contractId;
 
+    /**
+     * 合同名称
+     */
+    @Query(tableColumn = "a.contract_name")
     private String contractName;
 
-    private String contractNo;
+    /**
+     * 委托方
+     */
+    @Query(tableColumn = "a.client")
+    private String client;
+
+    private String amount;
+
+    private String contractType;
+
+    /**
+     * 项目名称
+     */
+    @Query(tableColumn = "a.name")
+    private String name;
+
+    /**
+     * 项目编号
+     */
+    @Query(tableColumn = "a.no")
+    private String no;
 
     private String projectType;
 
     private String company;
 
-    private String client;
-
     private String propertyHolder;
 
     private String location;
@@ -36,6 +97,9 @@ public class ProgramProjectListInfo extends BaseEntity {
 
     private String checkYear;
 
+    /**
+     * 项目经理(项目责任人)
+     */
     private String projectManager;
 
     private String reportType;
@@ -101,4 +165,20 @@ public class ProgramProjectListInfo extends BaseEntity {
     private String isInfluence;
 
     private String mode;
+
+    /**
+     * 状态
+     */
+    @Query(tableColumn = "a.status")
+    private String status;
+
+    private String procInsId;
+
+    private String processDefinitionId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(exist = false)
+    private String[] createDates;
 }

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

@@ -1,7 +1,23 @@
 package com.jeeplus.test.program.configuration.projectList.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.oss.domain.WorkAttachment;
 import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo;
+import com.jeeplus.test.program.configuration.projectList.service.dto.ContractDto;
+import com.jeeplus.test.workContract.domain.WorkContractInfo;
+import org.apache.ibatis.annotations.Param;
 
 public interface ProjectListMapper extends BaseMapper<ProgramProjectListInfo> {
+
+    void saveFile(@Param("file")WorkAttachment file);
+
+    IPage<WorkContractInfo> findContractPageList(Page<WorkContractInfo> page, @Param("dto") ContractDto dto);
+
+    void updateStatusById(@Param("id")String id, @Param("status")String status);
+
+    IPage<ProgramProjectListInfo> findPageList(Page<ProgramProjectListInfo> page, @Param(Constants.WRAPPER) QueryWrapper<ProgramProjectListInfo> wrapper);
 }

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

@@ -0,0 +1,122 @@
+<?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.ProjectListMapper">
+
+    <select id="saveFile">
+
+    </select>
+
+   <select id="findContractPageList" resultType="com.jeeplus.test.workContract.domain.WorkContractInfo">
+       SELECT
+            a.id,
+            a.create_date,
+            a.update_by,
+            a.update_date,
+            a.del_flag,
+            a.client_id,
+            a.client_name,
+            a.no,
+            a.name,
+            a.contract_date,
+            a.effective_date,
+            a.closing_date,
+            a.contract_type,
+            a.contract_amount_type,
+            a.contract_amount,
+            a.contract_opposite,
+            a.contract_fee,
+            a.fees,
+            a.describes,
+            a.contract_special,
+            a.remarks,
+            a.filed_by,
+            a.filed_date,
+            a.filed_no,
+            a.confirm_filed_no,
+            a.filed_remarks,
+            a.proc_ins_id,
+            a.process_definition_id,
+            a.status,
+            a.filed_type,
+            a.borrow_type,
+            b.NAME AS create_by
+        FROM
+            work_contract_info a
+            LEFT JOIN sys_user b ON a.create_by = b.id
+        WHERE
+            a.del_flag = 0
+            <if test="dto.createBy != null and dto.createBy != ''">
+                AND b.id = #{dto.createBy}
+            </if>
+           <if test="dto.name != null and dto.name != ''">
+               AND a.name LIKE CONCAT ('%', #{dto.name}, '%')
+           </if>
+           <if test="dto.clientName != null and dto.clientName != ''">
+               AND a.client_name LIKE CONCAT ('%', #{dto.clientName}, '%')
+           </if>
+            ORDER BY a.create_by DESC
+   </select>
+
+    <update id="updateStatusById">
+        UPDATE program_project_list_info SET `status` = #{status} WHERE id = #{id}
+    </update>
+
+    <select id="findPageList" resultType="com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo">
+        SELECT
+            a.id,
+            b.name AS create_by,
+            a.create_date,
+            a.update_by,
+            a.update_date,
+            a.del_flag,
+            a.contract_id,
+            a.contract_name,
+            a.client,
+            a.amount,
+            a.contract_type,
+            a.name,
+            a.no,
+            a.project_type,
+            a.company,
+            a.property_holder,
+            a.location,
+            a.is_first,
+            a.year_num,
+            a.check_year,
+            a.project_manager,
+            a.report_type,
+            a.industry,
+            a.enterprise_type,
+            a.risk_level,
+            a.project_source,
+            a.estimate,
+            a.plan_end_time,
+            a.use_num,
+            a.appointment,
+            a.work_hours,
+            a.remarks,
+            a.assessment_enterprise,
+            a.link_num,
+            a.relationship,
+            a.assessment_way,
+            a.assessment_objective,
+            a.assessment_date,
+            a.num,
+            a.project_development,
+            a.delegate_project_type,
+            a.assessment_object,
+            a.work_begin_date,
+            a.work_end_date,
+            a.reporting_date,
+            a.is_have,
+            a.is_influence,
+            a.mode,
+            a.status
+        FROM
+            program_project_list_info a
+            LEFT JOIN sys_user b ON a.create_by = b.id
+            ${ew.customSqlSegment}
+            ORDER BY a.update_date DESC
+    </select>
+
+</mapper>

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

@@ -1,17 +1,29 @@
 package com.jeeplus.test.program.configuration.projectList.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.mould.service.SerialnumTplService;
+import com.jeeplus.test.oss.domain.WorkAttachment;
+import com.jeeplus.test.oss.mapper.OssServiceMapper;
 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.ContractDto;
 import com.jeeplus.test.program.configuration.projectList.service.dto.ProjectListDto;
+import com.jeeplus.test.workContract.domain.WorkContractInfo;
+import com.jeeplus.test.workContract.mapper.WorkContractInfoMapper;
+import com.jeeplus.test.workContract.service.WorkContractService;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
@@ -29,22 +41,34 @@ public class ProjectListService {
     private ProjectLinkMapper projectLinkMapper;
     @Resource
     private ProjectMemberMapper projectMemberMapper;
+    @Resource
+    private WorkContractInfoMapper workContractInfoMapper;
+    @Resource
+    private OssServiceMapper ossServiceMapper;
+
+    @Resource
+    private SerialnumTplService serialnumTplService;
+    @Resource
+    private WorkContractService workContractService;
 
-    public String save(ProjectListDto dto){
+    public String save(ProjectListDto dto) throws Exception{
         if (StringUtils.isNotEmpty(dto.getId())) {
             return update(dto);
         }
         return add(dto);
     }
 
-    public String add(ProjectListDto dto) {
+    public String add(ProjectListDto dto) throws Exception{
         ProgramProjectListInfo info = new ProgramProjectListInfo();
         //获取当前登录人信息
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
         // 保存项目管理列表主表信息
         BeanUtils.copyProperties(dto, info);
         String id = UUID.randomUUID().toString().replace("-", "");
+        //合同编号生成
+        String no = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ProjectListDto.BIZ_CODE);
         info.setId(id);
+        info.setNo(no);
         info.setCreateBy(userDTO.getId());
         info.setCreateDate(new Date());
         info.setUpdateBy(userDTO.getId());
@@ -77,7 +101,11 @@ public class ProjectListService {
                 projectMemberMapper.insert(member);
             }
         }
-        return "操作成功";
+        // 保存附件信息
+        if (CollectionUtils.isNotEmpty(dto.getFiles())) {
+            workContractService.saveFiles(dto.getFiles(), userDTO, id);
+        }
+        return id;
     }
 
     public String update(ProjectListDto dto) {
@@ -118,7 +146,11 @@ public class ProjectListService {
                 projectMemberMapper.insert(member);
             }
         }
-        return "操作成功";
+        // 修改附件信息
+        if (CollectionUtils.isNotEmpty(dto.getFiles())) {
+            workContractService.updateFiles(dto.getFiles(), userDTO, dto.getId());
+        }
+        return dto.getId();
     }
 
     public ProjectListDto findById(String id) {
@@ -142,6 +174,15 @@ public class ProjectListService {
         if (CollectionUtils.isNotEmpty(members)) {
             dto.setMembers(members);
         }
+        // 查询附件信息
+        // 查询附件信息
+        List<WorkAttachmentDto> files = workContractInfoMapper.findDtos(id);
+        if (CollectionUtils.isNotEmpty(files)) {
+            for (WorkAttachmentDto i : files) {
+                i.setCreateBy(UserUtils.get(i.getBy()));
+            }
+            dto.setFiles(files);
+        }
         return dto;
     }
 
@@ -149,6 +190,29 @@ public class ProjectListService {
         projectListMapper.deleteById(id);
         projectLinkMapper.deleteByInfoId(id);
         projectMemberMapper.deleteByInfoId(id);
+        // 附件删除
+        LambdaQueryWrapper<WorkAttachment> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(WorkAttachment::getAttachmentId, id);
+        ossServiceMapper.delete(wrapper);
         return "操作成功";
     }
+
+    public IPage<WorkContractInfo> findContractPageList(ContractDto dto, Page<WorkContractInfo> page) {
+        return projectListMapper.findContractPageList(page, dto);
+    }
+
+    public String updateStatusById(ProjectListDto dto) {
+        projectListMapper.updateStatusById(dto.getId(), dto.getStatus());
+        return "操作成功";
+    }
+
+    public IPage<ProgramProjectListInfo> list(Page<ProgramProjectListInfo> page, ProgramProjectListInfo info) throws Exception{
+        QueryWrapper<ProgramProjectListInfo> wrapper = QueryWrapperGenerator.buildQueryCondition(info, ProgramProjectListInfo.class);
+        wrapper.eq("a.del_flag", "0");
+        if (info.getCreateDates() != null) {
+            wrapper.between("a.create_date", info.getCreateDates()[0], info.getCreateDates()[1]);
+        }
+        IPage<ProgramProjectListInfo> pageList = projectListMapper.findPageList(page, wrapper);
+        return pageList;
+    }
 }

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

@@ -0,0 +1,14 @@
+package com.jeeplus.test.program.configuration.projectList.service.dto;
+
+import lombok.Data;
+
+@Data
+public class ContractDto {
+
+    private String createBy;
+
+    private String name;
+
+    private String clientName;
+
+}

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

@@ -2,8 +2,10 @@ 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.oss.domain.WorkAttachment;
 import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListLink;
 import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListMember;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -14,18 +16,26 @@ import java.util.List;
 @Data
 public class ProjectListDto extends BaseEntity {
 
+    public static final String BIZ_CODE = "xmlb";
+
     private String contractId;
 
     private String contractName;
 
-    private String contractNo;
+    private String client;
+
+    private String amount;
+
+    private String contractType;
+
+    private String name;
+
+    private String no;
 
     private String projectType;
 
     private String company;
 
-    private String client;
-
     private String propertyHolder;
 
     private String location;
@@ -102,8 +112,12 @@ public class ProjectListDto extends BaseEntity {
 
     private String mode;
 
+    private String status;
+
     private List<ProgramProjectListLink> links;
 
     private List<ProgramProjectListMember> members;
 
+    private List<WorkAttachmentDto> files;
+
 }

+ 40 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/workContract/domain/WorkContractInfo.java

@@ -1,7 +1,6 @@
 package com.jeeplus.test.workContract.domain;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.core.domain.BaseEntity;
 import com.jeeplus.core.query.Query;
@@ -11,7 +10,45 @@ import java.util.Date;
 
 @Data
 @TableName("work_contract_info")
-public class WorkContractInfo extends BaseEntity {
+public class WorkContractInfo {
+
+    /**
+     * 实体主键
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 创建日期
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+
+    /**
+     * 创建人
+     */
+    @Query(tableColumn = "a.create_by")
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * 更新日期
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateDate;
+
+    /**
+     * 更新人
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    /**
+     * 逻辑删除标记
+     */
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private Integer delFlag;
 
     /**
      * 客户id