浏览代码

财务-报告管理

wangqiang 2 年之前
父节点
当前提交
6d4f419500
共有 18 个文件被更改,包括 1114 次插入23 次删除
  1. 114 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/controller/CwProjectReportController.java
  2. 79 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectInfoData.java
  3. 46 15
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReport.java
  4. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReportCancel.java
  5. 91 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReportData.java
  6. 61 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReportFile.java
  7. 0 8
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/cwProjectReportData.java
  8. 26 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectInfoMapper.java
  9. 13 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectReportCancelMapper.java
  10. 42 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectReportMapper.java
  11. 28 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/ProjectReportWorkAttachmentMapper.java
  12. 13 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/CwProjectInfoMapper.xml
  13. 125 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/CwProjectReportMapper.xml
  14. 20 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/ProjectReportWorkAttachmentMapper.xml
  15. 394 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/CwProjectReportService.java
  16. 10 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/dto/ProjectReportWorkAttachmentDTO.java
  17. 18 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/mapstruct/CwProjectReportFileWrapper.java
  18. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/mapstruct/CwProjectReportWrapperTest.java

+ 114 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/controller/CwProjectReportController.java

@@ -0,0 +1,114 @@
+package com.jeeplus.test.cw.projectReport.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.sys.constant.enums.LogTypeEnum;
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectRecordsDTO;
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReportData;
+import com.jeeplus.test.cw.projectReport.service.CwProjectReportService;
+import com.jeeplus.test.cw.projectReport.service.dto.CwProjectReportDTO;
+import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-16 14:15
+ **/
+@RestController
+@Api("财务报告信息")
+@RequestMapping(value = "/cwProjectReport")
+public class CwProjectReportController {
+
+    @Resource
+    private CwProjectReportService projectReportService;
+
+    /**
+     * 保存财务报告信息-流程
+     * @param reportData
+     * @return
+     */
+    @ApiLog(value = "保存财务报告信息-流程", type = LogTypeEnum.SAVE)
+    @PreAuthorize("hasAnyAuthority('cwProjectReport:add','cwProjectReport:edit')")
+    @PostMapping("saveForm")
+    public ResponseEntity saveForm(@Valid @RequestBody CwProjectReportData reportData) throws Exception {
+        String id = projectReportService.saveForm(reportData);
+        return ResponseUtil.newInstance().add("businessTable", "cw_project_report").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
+     * 查询财务项目信息列表
+     * @param projectReportData
+     * @param page
+     * @return
+     */
+    @ApiLog("查询财务报告信息列表")
+    @PreAuthorize("hasAuthority('cwProjectReport:list')")
+    @GetMapping("list")
+    public ResponseEntity<IPage<CwProjectReportData>> data(CwProjectReportData projectReportData, Page<CwProjectReportData> page) throws Exception {
+        IPage<CwProjectReportData> result = new Page<CwProjectReportData>();
+        result = projectReportService.findList (page,projectReportData);
+        return ResponseEntity.ok (result);
+    }
+
+    /**
+     * 根据id修改状态值status
+     * @param data
+     * @return
+     */
+    @ApiOperation(value = "根据id修改状态值status")
+    @PostMapping(value = "/updateStatusById")
+    public ResponseEntity<String> updateStatusById(@RequestBody CwProjectReportData data) {
+        String s = projectReportService.updateStatusById(data);
+        return ResponseEntity.ok(s);
+    }
+
+    /**
+     * 查询客户信息数据
+     * @param id
+     * @return
+     */
+    @ApiLog("查询财务报告数据")
+    @PreAuthorize ("hasAnyAuthority('cwProjectReport:view','cwProjectReport:add','cwProjectReport:edit')")
+    @GetMapping("queryById")
+    public ResponseEntity queryById(@RequestParam("id") String id) {
+        CwProjectReportData projectReportData = projectReportService.queryById ( id );
+        return ResponseEntity.ok (projectReportData);
+    }
+
+    /**
+     * 删除业务提问
+     * @param ids
+     * @return
+     */
+    @ApiLog(value = "删除财务报告信息", type = LogTypeEnum.SAVE)
+    @PreAuthorize ("hasAuthority('cwProjectReport:del')")
+    @DeleteMapping("delete")
+    public ResponseEntity delete(String ids) {
+        return projectReportService.deleteByIds(ids);
+    }
+
+    /**
+     * 查询客户信息列表
+     * @param cwWorkClientBaseDTO
+     * @param page
+     * @return
+     * @throws Exception
+     */
+    @ApiLog("查询客户信息列表")
+    @PreAuthorize("hasAuthority('cwProjectReport:clineList')")
+    @GetMapping("clineList")
+    public ResponseEntity<IPage<CwWorkClientBaseDTO>> data(CwWorkClientBaseDTO cwWorkClientBaseDTO, Page<CwWorkClientBaseDTO> page,String projectId) throws Exception {
+        IPage<CwWorkClientBaseDTO> result = new Page<CwWorkClientBaseDTO>();
+        result = projectReportService.findClineList (page,cwWorkClientBaseDTO,projectId);
+        return ResponseEntity.ok (result);
+    }
+}

+ 79 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectInfoData.java

@@ -0,0 +1,79 @@
+package com.jeeplus.test.cw.projectReport.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import com.jeeplus.test.cw.projectReport.service.dto.ProjectReportWorkAttachmentDTO;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 新增行相关数据
+ * @author: 王强
+ * @create: 2022-11-16 14:36
+ **/
+@Data
+@TableName("cw_project_report_new_line")
+public class CwProjectInfoData extends BaseEntity {
+
+    //报告文号(字典值)
+    public static final String BIZ_CODE = "14";
+
+    /**
+     * 被服务单位id
+     */
+    private String servedUnitId;
+
+    /**
+     * 项目报告表id
+     */
+    private String reportId;
+    /**
+     * 被服务单位
+     */
+    @TableField(exist = false)
+    private String servedUnitName;
+    /**
+     * 报告日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date reportDate;
+    /**
+     * 报告类型
+     */
+    private String reportType;
+    /**
+     * 报告流水号
+     */
+    private String reportNumber;
+    /**
+     * 报告文号
+     */
+    private String reportNo;
+    /**
+     * 是否出具报告
+     */
+    private String issueReport;
+    /**
+     * 意见类型
+     */
+    private String opinionType;
+    /**
+     * 盖章状态
+     */
+    private String sealType;
+    /**
+     * 文件数
+     */
+    private String fileNumber;
+
+    /**
+     * 附件信息
+     */
+    @TableField(exist = false)
+    List<ProjectReportWorkAttachmentDTO> cwFileInfoList;
+}

+ 46 - 15
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReport.java

@@ -1,11 +1,13 @@
 package com.jeeplus.test.cw.projectReport.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.jeeplus.core.domain.BaseEntity;
 import com.jeeplus.core.query.Query;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author: 徐滕
@@ -14,50 +16,66 @@ import java.util.Date;
 @Data
 @TableName("cw_project_report")
 public class CwProjectReport extends BaseEntity {
+
+    private String id;
+
+    @TableField(exist = false)
+    private String projectInfoId;
+
+    @TableField(exist = false)
+    private String createName;
+
     private static final long serialVersionUID = 1L;
 
+    //单据编号(字典值)
+    public static final String BIZ_CODE = "13";
     /**
      * 备注信息
      */
     private String remarks;
 
     /**
-     * 报告编号
+     * 单据编号
      */
-    private String projectReportNumber;
-
+    private String documentNo;
+    /**
+     * 项目名称
+     */
+    @Query(tableColumn = "b.project_name")
+    @TableField(exist = false)
+    private String projectName;
+    /**
+     * 项目编号
+     */
+    @Query(tableColumn = "b.project_number")
+    @TableField(exist = false)
+    private String projectNumber;
     /**
      * 项目id
      */
     private String projectId;
-
     /**
      * 报告所属部门
      */
     private String officeId;
-
     /**
-     * 签章类型
-     * 1:公章
-     * 2:公章+执业章
+     * 项目经理
      */
-    private String signatureType;
-
+    @Query(tableColumn = "e.name")
+    @TableField(exist = false)
+    private String projectMasterName;
     /**
      * 签字注师1
      */
     private String signatureAnnotator1;
-
     /**
      * 签字注师2
      */
     private String signatureAnnotator2;
-
     /**
-     * 签章合同id
-     * 用于查询签章合同以及相关信息
+     * 盖章类型
      */
-    private String signatureContractId;
+    private String signatureType;
 
     /**
      * 流程id
@@ -70,4 +88,17 @@ public class CwProjectReport extends BaseEntity {
      * 状态
      */
     private String status;
+
+    //新建行数据
+    @TableField(exist = false)
+    List<CwProjectInfoData> cwProjectInfoList;
+
+    @TableField(exist = false)
+    private String departmentName; //部门名称
+
+    @TableField(exist = false)
+    private String userName; //用户名
+
+    @TableField(exist = false)
+    private String[] contractDates;
 }

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReportCancel.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.cw.projectReport.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 报告文号报废表
+ * @author: 王强
+ * @create: 2022-11-17 13:13
+ **/
+@Data
+@TableName("cw_project_report_cancel")
+public class CwProjectReportCancel extends BaseEntity {
+
+    private String reportNo;
+}

+ 91 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReportData.java

@@ -0,0 +1,91 @@
+package com.jeeplus.test.cw.projectReport.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author: 徐滕
+ * @version: 2022-11-11 15:42
+ */
+@Data
+public class CwProjectReportData extends BaseDTO {
+
+//    private String createBy;
+
+    @TableField(exist = false)
+    private String createById;
+
+    @TableField(exist = false)
+    private String projectInfoId;
+
+    //单据编号(字典值)
+    public static final String BIZ_CODE = "13";
+    /**
+     * 单据编号
+     */
+    private String documentNo;
+    /**
+     * 项目名称
+     */
+    @Query(tableColumn = "b.project_name")
+    private String projectName;
+    /**
+     * 项目编号
+     */
+    @Query(tableColumn = "b.project_number")
+    private String projectNumber;
+    /**
+     * 项目id
+     */
+    private String projectId;
+    /**
+     * 报告所属部门
+     */
+    private String officeId;
+    /**
+     * 项目经理
+     */
+    @Query(tableColumn = "e.name")
+    private String projectMasterName;
+    /**
+     * 签字注师1
+     */
+    private String signatureAnnotator1;
+    /**
+     * 签字注师2
+     */
+    private String signatureAnnotator2;
+    /**
+     * 盖章类型
+     */
+    private String signatureType;
+
+    /**
+     * 流程id
+     */
+    private String procInsId;
+
+    private String processDefinitionId;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    //新建行数据
+    @TableField(exist = false)
+    List<CwProjectInfoData> cwProjectInfoList;
+
+    @TableField(exist = false)
+    private String departmentName; //部门名称
+
+    @TableField(exist = false)
+    private String userName; //用户名
+
+    @TableField(exist = false)
+    private String[] contractDates;
+}

+ 61 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReportFile.java

@@ -0,0 +1,61 @@
+package com.jeeplus.test.cw.projectReport.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 报告附件表
+ * @author: 徐滕
+ * @version: 2022-11-10 15:02
+ */
+@Data
+@TableName("cw_project_report_file")
+public class CwProjectReportFile extends BaseEntity {
+
+    /**
+     * work_attachment_id
+     */
+    private String reportFileId;
+    /**
+     * 文件类型
+     * 1:正文
+     * 2:封面
+     * 3:报表
+     * 4:附注
+     * 5:其他
+     */
+    private String fileType;
+
+    /**
+     * 盖章类型
+     * 1:电子章
+     * 2:不盖章
+     */
+    private String sealType;
+
+    /**
+     * 已盖章
+     */
+    private String sealedFile;
+
+    /**
+     * 盖章人
+     */
+    private UserDTO sealUser;
+
+    /**
+     * 盖章时间
+     */
+    private Date sealDate;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+}

+ 0 - 8
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/cwProjectReportData.java

@@ -1,8 +0,0 @@
-package com.jeeplus.test.cw.projectReport.domain;
-
-/**
- * @author: 徐滕
- * @version: 2022-11-11 15:42
- */
-public class cwProjectReportData {
-}

+ 26 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectInfoMapper.java

@@ -0,0 +1,26 @@
+package com.jeeplus.test.cw.projectReport.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.cw.projectReport.domain.CwProjectInfoData;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 新增行数据
+ * @author: 王强
+ * @create: 2022-11-16 20:40
+ **/
+@Mapper
+public interface CwProjectInfoMapper extends BaseMapper<CwProjectInfoData> {
+
+    List<CwProjectInfoData> selectIdByReportId(String id);
+
+    List<CwProjectInfoData> selectByReportId(String id);
+
+    /**
+     * 去报废的报告文号表中查报告文号
+     * @return
+     */
+    List<String> getReportNo();
+}

+ 13 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectReportCancelMapper.java

@@ -0,0 +1,13 @@
+package com.jeeplus.test.cw.projectReport.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReportCancel;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-17 13:14
+ **/
+@Mapper
+public interface CwProjectReportCancelMapper extends BaseMapper<CwProjectReportCancel> {
+}

+ 42 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectReportMapper.java

@@ -0,0 +1,42 @@
+package com.jeeplus.test.cw.projectReport.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.cw.projectRecords.domain.CwProjectRecords;
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectRecordsDTO;
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReport;
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReportData;
+import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientBase;
+import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 财务-报告管理
+ * @author: 王强
+ * @create: 2022-11-16 14:17
+ **/
+@Mapper
+public interface CwProjectReportMapper extends BaseMapper<CwProjectReport> {
+
+    /**
+     * 查询报告数据集合
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    IPage<CwProjectReportData> findList(Page<CwProjectReportData> page, @Param(Constants.WRAPPER) QueryWrapper<CwProjectReportData> queryWrapper);
+
+    CwProjectReportData queryById(@Param("id") String id);
+
+    /**
+     * 查询被服务单位
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    public IPage<CwWorkClientBaseDTO> findClineList(Page<CwWorkClientBaseDTO> page, @Param(Constants.WRAPPER) QueryWrapper<CwWorkClientBase> queryWrapper);
+}

+ 28 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/ProjectReportWorkAttachmentMapper.java

@@ -0,0 +1,28 @@
+package com.jeeplus.test.cw.projectReport.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReport;
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReportFile;
+import com.jeeplus.test.cw.projectReport.service.dto.ProjectReportWorkAttachmentDTO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 新建行文件表
+ * @author: 王强
+ * @create: 2022-11-16 21:23
+ **/
+@Mapper
+public interface ProjectReportWorkAttachmentMapper extends BaseMapper<CwProjectReportFile> {
+
+    List<String> getIdByAttachmentId(String id);
+
+    void deleteByRepotyId(String id);
+
+    void deleteByAttachMnentId(String id);
+
+    List<ProjectReportWorkAttachmentDTO> selectByInfoId(String id);
+
+    CwProjectReportFile selectInfoByFileId(String id);
+}

+ 13 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/CwProjectInfoMapper.xml

@@ -0,0 +1,13 @@
+<?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.cw.projectReport.mapper.CwProjectInfoMapper">
+    <select id="selectIdByReportId" resultType="com.jeeplus.test.cw.projectReport.domain.CwProjectInfoData">
+        select id,report_no from cw_project_report_new_line where report_id = #{id}
+    </select>
+    <select id="selectByReportId" resultType="com.jeeplus.test.cw.projectReport.domain.CwProjectInfoData">
+        select * from cw_project_report_new_line where report_id = #{id} and del_flag = '0'
+    </select>
+    <select id="getReportNo" resultType="java.lang.String">
+        select report_no from cw_project_report_cancel order by create_date asc
+    </select>
+</mapper>

+ 125 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/CwProjectReportMapper.xml

@@ -0,0 +1,125 @@
+<?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.cw.projectReport.mapper.CwProjectReportMapper">
+
+    <sql id="Base_Column_List">
+        cw_wcb.id,
+        cw_wcb.create_by,
+        cw_wcb.create_date,
+        cw_wcb.update_by,
+        cw_wcb.update_date,
+        cw_wcb.del_flag,
+        cw_wcb.remarks,
+        cw_wcb.no,
+        cw_wcb.name,
+        cw_wcb.abbreviation,
+        cw_wcb.english_name,
+        cw_wcb.type,
+        cw_wcb.usc_code,
+        cw_wcb.sc_type,
+        cw_wcb.manage_level_type,
+        cw_wcb.one_up_company,
+        cw_wcb.company_level,
+        cw_wcb.business_scope,
+        cw_wcb.key_responsibilities,
+        cw_wcb.industry,
+        cw_wcb.affiliation,
+        cw_wcb.organization_type,
+        cw_wcb.report_type,
+        cw_wcb.one_up_office,
+        cw_wcb.registration_cert,
+        cw_wcb.approving_bodies,
+        cw_wcb.office_id,
+        cw_wcb.proc_ins_id,
+        cw_wcb.process_definition_id,
+        cw_wcb.status,
+        cw_wcb.agree_date,
+        cw_wcb.agree_user_id
+    </sql>
+
+    <select id="findList" resultType="com.jeeplus.test.cw.projectReport.domain.CwProjectReportData">
+        SELECT
+        a.id,
+        a.create_by as createById,
+        a.create_date,
+        a.update_by,
+        a.update_date,
+        a.del_flag,
+        a.remarks,
+        a.status,
+        a.document_no,
+        a.project_report_number,
+        a.project_id,
+        a.office_id,
+        a.signature_type,
+        a.signature_annotator1,
+        a.signature_annotator2,
+        a.signature_contract_id,
+        a.proc_ins_id,
+        a.process_definition_id,
+        b.project_number as projectNumber,
+        b.project_name as projectName,
+        c.name as departmentName,
+        d.name as userName,
+        a.create_date,
+        e.name as projectMasterName
+        FROM cw_project_report a
+        left join cw_project_records b
+        on a.project_id = b.id
+        LEFT JOIN sys_office c
+        on a.office_id = c.id
+        LEFT JOIN sys_user d
+        on a.create_by = d.id
+        LEFT JOIN sys_user e
+        on b.project_master_id = e.id
+        ${ew.customSqlSegment}
+    </select>
+    <select id="queryById" resultType="com.jeeplus.test.cw.projectReport.domain.CwProjectReportData">
+        SELECT
+        a.id,
+        a.create_by as createById,
+        a.create_date,
+        a.update_by,
+        a.update_date,
+        a.del_flag,
+        a.remarks,
+        a.status,
+        a.document_no,
+        a.project_report_number,
+        a.project_id,
+        a.office_id,
+        a.signature_type,
+        a.signature_annotator1,
+        a.signature_annotator2,
+        a.signature_contract_id,
+        a.proc_ins_id,
+        a.process_definition_id,
+        b.project_number as projectNumber,
+        b.project_name as projectName,
+        c.name as departmentName,
+        d.name as userName,
+        a.create_date,
+        e.name as projectMasterName
+        FROM cw_project_report a
+        left join cw_project_records b
+        on a.project_id = b.id
+        LEFT JOIN sys_office c
+        on a.office_id = c.id
+        LEFT JOIN sys_user d
+        on a.create_by = d.id
+        LEFT JOIN sys_user e
+        on b.project_master_id = e.id
+        where a.id = #{id}
+    </select>
+    <select id="findClineList" resultType="com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO">
+        select
+        <include refid="Base_Column_List"></include>,
+        su.name as user_name
+        from cw_work_client_base cw_wcb
+        left join sys_user su on su.id = cw_wcb.create_by
+        left join cw_work_client_type cw_wct on cw_wct.client_id = cw_wcb.id and cw_wct.del_flag = '0'
+        left join cw_project_client_info cw_info on cw_wcb.id = cw_info.client_id
+        LEFT JOIN cw_project_records cw_pro on cw_info.project_id = cw_pro.id
+        ${ew.customSqlSegment}
+    </select>
+</mapper>

+ 20 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/ProjectReportWorkAttachmentMapper.xml

@@ -0,0 +1,20 @@
+<?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.cw.projectReport.mapper.ProjectReportWorkAttachmentMapper">
+    <delete id="deleteByRepotyId">
+        delete from cw_project_report_file where report_file_id = #{id}
+    </delete>
+    <delete id="deleteByAttachMnentId">
+        delete from work_attachment where attachment_id = #{id}
+    </delete>
+    <select id="getIdByAttachmentId" resultType="java.lang.String">
+        select id from work_attachment where attachment_id = #{id}
+    </select>
+    <select id="selectByInfoId"
+            resultType="com.jeeplus.test.cw.projectReport.service.dto.ProjectReportWorkAttachmentDTO">
+        select id,url,file_size as size,attachment_name as name from work_attachment where attachment_id = #{id}
+    </select>
+    <select id="selectInfoByFileId" resultType="com.jeeplus.test.cw.projectReport.domain.CwProjectReportFile">
+        select * from cw_project_report_file where report_file_id = #{id}
+    </select>
+</mapper>

+ 394 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/CwProjectReportService.java

@@ -0,0 +1,394 @@
+package com.jeeplus.test.cw.projectReport.service;
+
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.ObjectUtil;
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+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.cw.contractRegistration.domain.ContractInfo;
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectRecords;
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectRecordsDTO;
+import com.jeeplus.test.cw.projectRecords.service.mapstruct.CwProjectRecordsWrapper;
+import com.jeeplus.test.cw.projectReport.domain.*;
+import com.jeeplus.test.cw.projectReport.mapper.CwProjectInfoMapper;
+import com.jeeplus.test.cw.projectReport.mapper.CwProjectReportCancelMapper;
+import com.jeeplus.test.cw.projectReport.mapper.CwProjectReportMapper;
+import com.jeeplus.test.cw.projectReport.mapper.ProjectReportWorkAttachmentMapper;
+import com.jeeplus.test.cw.projectReport.service.dto.CwProjectReportDTO;
+import com.jeeplus.test.cw.projectReport.service.dto.ProjectReportWorkAttachmentDTO;
+import com.jeeplus.test.cw.projectReport.service.mapstruct.CwProjectReportFileWrapper;
+import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientBase;
+import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO;
+import com.jeeplus.test.cw.workClientInfo.service.mapstruct.CwWorkClientBaseWrapper;
+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.oss.service.OssService;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-16 14:17
+ **/
+@Service
+@Transactional
+public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, CwProjectReport> {
+
+    @Resource
+    private CwProjectReportMapper reportMapper;
+
+    @Resource
+    private CwProjectInfoMapper infoMapper;
+
+    @Resource
+    private ProjectReportWorkAttachmentMapper attachmentMapper;
+
+    @Resource
+    private SerialnumTplService serialnumTplService;
+
+    @Resource
+    private OssService ossService;
+
+    @Resource
+    private OssServiceMapper ossServiceMapper;
+
+    @Resource
+    private CwProjectReportCancelMapper cancelMapper;
+
+    /**
+     * 保存项目以及其他相关信息
+     * @param reportData
+     * @return
+     * @throws Exception
+     */
+    public String saveForm(CwProjectReportData reportData) throws Exception{
+        if (StringUtils.isNotEmpty(reportData.getId())){
+
+            CwProjectReport report = reportMapper.selectById(reportData.getId());
+            if (report != null){
+                reportData.setCreateBy(reportData.getCreateBy());
+                return update(reportData);
+            }
+        }
+        return add(reportData);
+
+    }
+
+    /**
+     * 合同登记修改
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String update(CwProjectReportData reportData) throws Exception{
+        //获取当前登录人信息
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+
+        CwProjectReport report = new CwProjectReport();
+        BeanUtils.copyProperties(reportData, report);
+        report.setUpdateBy(userDTO.getId());
+        report.setUpdateDate(new Date());
+        reportMapper.updateById(report);
+        //附件信息修改
+        //1、修改work_attachment_id信息
+        //删除在添加
+        List<CwProjectInfoData> infoList = new ArrayList<>();
+        if (!report.getCwProjectInfoList().isEmpty()){
+            infoList = report.getCwProjectInfoList();
+            infoList.forEach(info->{
+                //删除
+                List<String> attachmentId = attachmentMapper.getIdByAttachmentId(info.getId());
+                //根据这个id删除cw_project_report_file信息
+                if (attachmentId != null & !attachmentId.isEmpty()) {
+                    attachmentId.forEach(atId->{
+                        attachmentMapper.deleteByRepotyId(atId);
+                    });
+                }
+                //删除work_attachment_id信息
+                attachmentMapper.deleteByAttachMnentId(info.getId());
+            });
+            infoList.forEach(in->{
+                in.setUpdateBy(UserUtils.getCurrentUserDTO().getId());
+                in.setUpdateDate(new Date());
+                //先去数据库中查是否有数据,有则更新,无则添加
+                CwProjectInfoData cwProjectInfoData = infoMapper.selectById(in.getId());
+                if (cwProjectInfoData == null){
+                    infoMapper.insert(in);
+                }else {
+                    infoMapper.updateById(in);
+                }
+
+                //对上传的文件数据进行持久化操作
+                List<ProjectReportWorkAttachmentDTO> fileInfoList = new ArrayList<>();
+                if (!in.getCwFileInfoList().isEmpty()){
+                    fileInfoList = in.getCwFileInfoList();
+                }
+
+//                UserDTO userDTO = UserUtils.getCurrentUserDTO();
+                ossServiceMapper.delete(new QueryWrapper<WorkAttachment>().lambda().eq(WorkAttachment::getAttachmentId, in.getId()));
+                AtomicInteger j = new AtomicInteger(1);
+                if (fileInfoList != null & !fileInfoList.isEmpty()){
+                    fileInfoList.forEach(item -> {
+                        WorkAttachment i = new WorkAttachment();
+                        //包含了url、size、name
+                        i.setId(UUID.randomUUID().toString().replace("-", ""));
+                        i.setCreateDate(new Date());
+                        i.setUpdateDate(new Date());
+                        i.setDelFlag(0);
+                        i.setUrl(item.getUrl());
+                        //文件类型处理
+                        List<String> strings = Arrays.asList(item.getName().split("\\."));
+                        if (CollectionUtils.isNotEmpty(strings)) {
+                            i.setType(strings.get(1));
+                        }
+                        i.setAttachmentId(in.getId());
+                        i.setAttachmentName(item.getName());
+                        i.setAttachmentFlag("cw_project_report_file");
+                        i.setFileSize(item.getSize());
+                        i.setSort(j.get());
+                        ossServiceMapper.insertWorkAttachment(i, userDTO);
+                        j.getAndIncrement();
+                        CwProjectReportFile cwProjectReportFile = CwProjectReportFileWrapper.INSTANCE.toEntity(item);
+                        cwProjectReportFile.setReportFileId(i.getId());
+                        attachmentMapper.insert(cwProjectReportFile);
+                    });
+                }
+            });
+        }
+
+
+        return report.getId();
+    }
+
+    /**
+     * 新增
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String add(CwProjectReportData reportData) throws Exception{
+        //获取当前登录人信息
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        if(StringUtils.isBlank(reportData.getId())){
+            //单据编号生成
+            String documentNo = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), CwProjectReportDTO.BIZ_CODE);
+            reportData.setDocumentNo(documentNo);
+        }
+        CwProjectReport report = new CwProjectReport();
+        BeanUtils.copyProperties(reportData, report);
+        if (ObjectUtil.isNotEmpty(report)) {
+            if (StringUtils.isBlank(report.getCreateBy())) {
+                report.setCreateBy(UserUtils.getCurrentUserDTO().getId());
+                String id = UUID.randomUUID().toString().replace("-", "");
+                report.setId(id);
+            }
+        }
+        //对新增行数据进行持久化操作
+        List<CwProjectInfoData> infoList = new ArrayList<>();
+        if (!report.getCwProjectInfoList().isEmpty()) {
+            infoList = report.getCwProjectInfoList();
+        }
+
+        if(infoList != null & !infoList.isEmpty()){
+            List<CwProjectInfoData> finalInfoList = infoList;
+            infoList.forEach(in->{
+                in.setCreateBy(UserUtils.getCurrentUserDTO().getId());
+                in.setCreateDate(new Date());
+                in.setUpdateBy(UserUtils.getCurrentUserDTO().getId());
+                in.setUpdateDate(new Date());
+                in.setReportId(report.getId());
+                //报告文号生成
+                String documentNo = "";
+                try {
+                    documentNo = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), CwProjectInfoData.BIZ_CODE);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                //在插入报告文号前先去报告文号报废表中根据时间排序查看是否有报告文号,有则使用,delflag改为1
+                List<String> reportNo = infoMapper.getReportNo();
+                if (reportNo != null & !reportNo.isEmpty()){
+                    for (int i = 0; i< finalInfoList.size(); i++){
+                        in.setReportNo(reportNo.get(i));
+                    }
+                }else {
+                    in.setReportNo(documentNo);
+                }
+
+                infoMapper.insert(in);
+                //对上传的文件数据进行持久化操作
+                List<ProjectReportWorkAttachmentDTO> fileInfoList = new ArrayList<>();
+                if (!in.getCwFileInfoList().isEmpty()){
+                    fileInfoList = in.getCwFileInfoList();
+                }
+                ossServiceMapper.delete(new QueryWrapper<WorkAttachment>().lambda().eq(WorkAttachment::getAttachmentId, in.getId()));
+                AtomicInteger j = new AtomicInteger(1);
+                if (fileInfoList != null){
+                    fileInfoList.forEach(item -> {
+                        WorkAttachment i = new WorkAttachment();
+                        //包含了url、size、name
+                        i.setId(UUID.randomUUID().toString().replace("-", ""));
+                        i.setCreateDate(new Date());
+                        i.setUpdateDate(new Date());
+                        i.setDelFlag(0);
+                        i.setUrl(item.getUrl());
+                        //文件类型处理
+                        List<String> strings = Arrays.asList(item.getName().split("\\."));
+                        if (CollectionUtils.isNotEmpty(strings)) {
+                            i.setType(strings.get(1));
+                        }
+                        i.setAttachmentId(in.getId());
+                        i.setAttachmentName(item.getName());
+                        i.setAttachmentFlag("cw_project_report_file");
+                        i.setFileSize(item.getSize());
+                        i.setSort(j.get());
+                        ossServiceMapper.insertWorkAttachment(i, userDTO);
+                        j.getAndIncrement();
+                        CwProjectReportFile cwProjectReportFile = CwProjectReportFileWrapper.INSTANCE.toEntity(item);
+                        cwProjectReportFile.setReportFileId(i.getId());
+                        attachmentMapper.insert(cwProjectReportFile);
+                    });
+                }
+            });
+        }
+        this.reportMapper.insert(report);
+        return report.getId();
+    }
+
+    /**
+     * 差选项目列表信息
+     * @param page
+     * @param projectReportData
+     * @return
+     * @throws Exception
+     */
+    public IPage<CwProjectReportData> findList(Page<CwProjectReportData> page, CwProjectReportData projectReportData) throws Exception{
+        QueryWrapper<CwProjectReportData> queryWrapper = QueryWrapperGenerator.buildQueryCondition (projectReportData,CwProjectReportData.class);
+        queryWrapper.eq("a.del_flag","0");
+        queryWrapper.orderByDesc("a.create_date");
+        //条件
+        if (StringUtils.isNotEmpty(projectReportData.getProjectNumber())) {
+            queryWrapper.like("b.project_number", projectReportData.getProjectNumber());
+        }
+        if (StringUtils.isNotEmpty(projectReportData.getProjectName())) {
+            queryWrapper.like("b.project_name", projectReportData.getProjectName());
+        }
+        if (StringUtils.isNotEmpty(projectReportData.getProjectMasterName())) {
+            queryWrapper.like("e.name", projectReportData.getProjectMasterName());
+        }
+        if (StringUtils.isNotEmpty(projectReportData.getCreateBy().getName())) {
+            queryWrapper.like("e.name", projectReportData.getCreateBy().getName());
+        }
+        //4、签约时间(区间)
+        String[] contractDates = projectReportData.getContractDates();
+        if (contractDates != null) {
+
+            queryWrapper.between("a.create_date", contractDates[0], contractDates[1]);
+        }
+
+        IPage<CwProjectReportData> list = reportMapper.findList(page, queryWrapper);
+        return list;
+    }
+
+    /**
+     * 修改状态
+     * @param data
+     * @return
+     */
+    public String updateStatusById(CwProjectReportData data) {
+        CwProjectReport cwProjectRecords = new CwProjectReport();
+        BeanUtils.copyProperties(data, cwProjectRecords);
+        reportMapper.update(cwProjectRecords, new QueryWrapper<CwProjectReport>().lambda().eq(CwProjectReport::getId, cwProjectRecords.getId()));
+        return "操作成功";
+    }
+
+    public CwProjectReportData queryById(String id) {
+
+        CwProjectReportData reportData = reportMapper.queryById(id);
+        //将新增行数据查询出来放入到cwProjectInfoList中
+        List<CwProjectInfoData> cwProjectInfoData = infoMapper.selectByReportId(id);
+        List<CwProjectInfoData> infoData = new ArrayList<>();
+        //根据新增行id查出上传的附件信息
+        cwProjectInfoData.forEach(info->{
+            //保存到work_attachment表中的信息
+            List<ProjectReportWorkAttachmentDTO> dtos = attachmentMapper.selectByInfoId(info.getId());
+            List<ProjectReportWorkAttachmentDTO> dtoList = new ArrayList<>();
+            dtos.forEach(d->{
+                //根据id查出cw_project_report_file文件表的其他信息
+                CwProjectReportFile file = attachmentMapper.selectInfoByFileId(d.getId());
+                d.setFileType(file.getFileType());
+                d.setSealType(file.getSealType());
+                d.setSealedFile(file.getSealedFile());
+                d.setSealUser(file.getSealUser());
+                d.setSealDate(file.getSealDate());
+                d.setRemarks(file.getRemarks());
+                dtoList.add(d);
+            });
+            info.setCwFileInfoList(dtoList);
+            infoData.add(info);
+        });
+        if (infoData != null & !infoData.isEmpty()){
+            reportData.setCwProjectInfoList(infoData);
+        }
+
+
+        return reportData;
+    }
+
+    public ResponseEntity deleteByIds(String ids) {
+        String idArray[] =ids.split(",");
+        //删除 cw_project_report_new_line表信息  cw_project_report_file信息  work_attachment_id表信息
+        //先根据ids找到cw_project_report_new_line表的id,根据id去work_attachment_id表中查出id信息删除cw_project_report_file信息
+        List<CwProjectInfoData> idList = infoMapper.selectIdByReportId(ids);
+        if (idList != null & !idList.isEmpty()){
+            idList.forEach(info->{
+                List<String> attachmentId = attachmentMapper.getIdByAttachmentId(info.getId());
+                //根据这个id删除cw_project_report_file信息
+                attachmentId.forEach(atId->{
+                    attachmentMapper.deleteByRepotyId(atId);
+                });
+                //删除work_attachment_id信息
+                attachmentMapper.deleteByAttachMnentId(info.getId());
+                //删除cw_project_report_new_line表信息
+                //删除前先将report_no放入到cw_project_report_cancel报废表中
+                if (StringUtils.isNotEmpty(info.getReportNo())){
+                    CwProjectReportCancel cancel = new CwProjectReportCancel();
+                    cancel.setId(UUID.randomUUID().toString().replace("-", ""));
+                    cancel.setReportNo(info.getReportNo());
+                    cancelMapper.insert(cancel);
+                }
+                infoMapper.deleteById(info.getId());
+            });
+        }
+        this.removeByIds (Lists.newArrayList (idArray));
+        return ResponseEntity.ok ("删除成功");
+    }
+
+    public IPage<CwWorkClientBaseDTO> findClineList(Page<CwWorkClientBaseDTO> page, CwWorkClientBaseDTO cwWorkClientBaseDTO,String projectId) throws Exception{
+        QueryWrapper<CwWorkClientBase> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( CwWorkClientBaseWrapper.INSTANCE.toEntity(cwWorkClientBaseDTO), CwWorkClientBase.class );
+        queryWrapper.eq("cw_wcb.del_flag","0");
+        queryWrapper.eq("cw_pro.id",projectId);
+        queryWrapper.orderByDesc("cw_wcb.create_date");
+        if (ObjectUtil.isNotEmpty(cwWorkClientBaseDTO)) {
+            if (ArrayUtil.isNotEmpty(cwWorkClientBaseDTO.getCreateDates())) {
+                queryWrapper.between("cw_wcb.create_date", cwWorkClientBaseDTO.getCreateDates()[0], cwWorkClientBaseDTO.getCreateDates()[1]);
+            }
+            if (ObjectUtil.isNotEmpty(cwWorkClientBaseDTO.getCwWorkClientTypeDTO())){
+                if (StringUtils.isNotBlank(cwWorkClientBaseDTO.getCwWorkClientTypeDTO().getOwnershipType())) {
+                    queryWrapper.eq("cw_wct.ownership_type",cwWorkClientBaseDTO.getCwWorkClientTypeDTO().getOwnershipType());
+                }
+            }
+        }
+        IPage<CwWorkClientBaseDTO> list = reportMapper.findClineList(page, queryWrapper);
+        return list;
+    }
+}

+ 10 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/dto/ProjectReportWorkAttachmentDTO.java

@@ -1,9 +1,13 @@
 package com.jeeplus.test.cw.projectReport.service.dto;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
 import com.jeeplus.core.service.dto.BaseDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 import lombok.Data;
 
+import java.io.Serializable;
 import java.util.Date;
 
 /**
@@ -12,6 +16,7 @@ import java.util.Date;
  * @version: 2022-11-10 15:02
  */
 @Data
+@TableName("cw_project_report_file")
 public class ProjectReportWorkAttachmentDTO extends BaseDTO {
 
     private String name;
@@ -21,7 +26,10 @@ public class ProjectReportWorkAttachmentDTO extends BaseDTO {
     private String url;
 
     private UserDTO createBy;
+//    @TableField(exist = false)
+//    private String createBy;
 
+    @TableField(exist = false)
     private String by;
 
     /**
@@ -61,4 +69,6 @@ public class ProjectReportWorkAttachmentDTO extends BaseDTO {
      */
     private String remarks;
 
+    @TableField(exist = false)
+    private String reportFileId;
 }

+ 18 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/mapstruct/CwProjectReportFileWrapper.java

@@ -0,0 +1,18 @@
+package com.jeeplus.test.cw.projectReport.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReport;
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReportFile;
+import com.jeeplus.test.cw.projectReport.service.dto.CwProjectReportDTO;
+import com.jeeplus.test.cw.projectReport.service.dto.ProjectReportWorkAttachmentDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface CwProjectReportFileWrapper extends EntityWrapper<ProjectReportWorkAttachmentDTO, CwProjectReportFile> {
+
+    CwProjectReportFileWrapper INSTANCE = Mappers.getMapper(CwProjectReportFileWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/mapstruct/CwProjectReportWrapperTest.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.cw.projectReport.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReport;
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReportData;
+import com.jeeplus.test.cw.projectReport.service.dto.CwProjectReportDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface CwProjectReportWrapperTest extends EntityWrapper<CwProjectReportData, CwProjectReport> {
+
+    CwProjectReportWrapperTest INSTANCE = Mappers.getMapper(CwProjectReportWrapperTest.class);
+
+}