Browse Source

财务-报告修改

wangqiang 2 years ago
parent
commit
56e78ccef4

+ 9 - 9
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/service/ContractInfoService.java

@@ -473,23 +473,23 @@ public class ContractInfoService {
     public String add(ContractInfo contractInfo) throws Exception{
         //获取当前登录人信息
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
-        //合同编号生成
-        String serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.BIZ_CODE);
         //合同流水号生成
-        String serialNumber = "";
+        String serialNumber = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.BIZ_CODE);
+        //合同编号生成
+        String serialNum = "";
         if (StringUtils.isNotEmpty(contractInfo.getContractType())){
             if (contractInfo.getContractType().equals("1")){
-                serialNumber = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER1);
+                serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER1);
             } else if (contractInfo.getContractType().equals("2")) {
-                serialNumber = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER2);
+                serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER2);
             } else if (contractInfo.getContractType().equals("3")) {
-                serialNumber = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER3);
+                serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER3);
             } else if (contractInfo.getContractType().equals("4")) {
-                serialNumber = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER4);
+                serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER4);
             } else if (contractInfo.getContractType().equals("5")) {
-                serialNumber = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER5);
+                serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER5);
             } else if (contractInfo.getContractType().equals("6")) {
-                serialNumber = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER6);
+                serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.SERIAL_NUMBER6);
             }
             contractInfo.setContractSerialNumber(serialNumber);
         }

+ 7 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReport.java

@@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.core.domain.BaseEntity;
 import com.jeeplus.core.query.Query;
 import com.jeeplus.test.cw.projectReport.service.dto.ProjectReportWorkAttachmentDTO;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
 import lombok.Data;
 
 import java.util.Date;
@@ -167,6 +168,12 @@ public class CwProjectReport extends BaseEntity {
     List<ProjectReportWorkAttachmentDTO> cwFileInfoList;
 
     /**
+     * 附件信息2
+     */
+    @TableField(exist = false)
+    List<WorkAttachmentDto> cwFileInfoList2;
+
+    /**
      * 被服务单位id
      */
     @TableField(exist = false)

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

@@ -7,6 +7,7 @@ import com.jeeplus.core.query.Query;
 import com.jeeplus.core.service.dto.BaseDTO;
 import com.jeeplus.test.cw.common.flowable.dto.CommitParamDTO;
 import com.jeeplus.test.cw.projectReport.service.dto.ProjectReportWorkAttachmentDTO;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
 import lombok.Data;
 
 import java.util.Date;
@@ -223,6 +224,11 @@ public class CwProjectReportData extends BaseDTO {
     List<ProjectReportWorkAttachmentDTO> cwFileInfoList;
 
     /**
+     * 附件信息
+     */
+    List<WorkAttachmentDto> cwFileInfoList2;
+
+    /**
      * 已签章附件信息
      */
     List<ProjectReportWorkAttachmentDTO> signatureFileList;

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

@@ -12,6 +12,7 @@ import com.jeeplus.test.cw.projectReport.domain.*;
 import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientBase;
 import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO;
 import com.jeeplus.test.oss.domain.WorkAttachment;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -126,4 +127,6 @@ public interface CwProjectReportMapper extends BaseMapper<CwProjectReport> {
      * @return
      */
     List<ReviewUser> getReviewByS(String parentId);
+
+    List<WorkAttachmentDto> findDtos(@Param("id") String id);
 }

+ 7 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectReportReviewMapper.java

@@ -18,4 +18,11 @@ public interface CwProjectReportReviewMapper extends BaseMapper<CwProjectReview>
     void updateReviewStatysByReportId(@Param("reviewStatus") String reviewStatus,@Param("id") String id);
 
     CwProjectReportData selectByPortId(String id);
+
+    /**
+     * 根据reportId获取关联的项目id
+     * @param id
+     * @return
+     */
+    String getProjectIdByReportId(String id);
 }

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

@@ -78,7 +78,7 @@
         cw_prs3.process_definition_id as process_definition_id3,
         cw_prs3.status as status3,
         cw_prs3.id as sid3,
-        cw_rev.review_status,
+        ifnull(cw_rev.review_status,'0') as reviewStatus,
         cw_rev.proc_ins_id as procInsId3,
         new_line.report_no as reportNo
         FROM cw_project_report a
@@ -442,4 +442,17 @@
     <select id="getReviewByS" resultType="com.jeeplus.test.cw.projectReport.domain.ReviewUser">
         select name,id,sys_user_id from cw_project_report_review_user where parent_id = #{parentId} ORDER BY name
     </select>
+    <select id="findDtos" resultType="com.jeeplus.test.workContract.service.dto.WorkAttachmentDto">
+        SELECT
+			id,
+			url,
+			attachment_name AS `name`,
+			create_by AS `by`,
+			create_date
+		FROM
+			work_attachment
+		WHERE
+			del_flag = 0
+			AND attachment_id = #{id}
+    </select>
 </mapper>

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

@@ -10,4 +10,10 @@
     <select id="selectByPortId" resultType="com.jeeplus.test.cw.projectReport.domain.CwProjectReportData">
         select * from cw_project_report_review where report_id = #{id}
     </select>
+    <select id="getProjectIdByReportId" resultType="java.lang.String">
+        SELECT project_id FROM cw_project_report cw_p
+        LEFT JOIN cw_project_report_review cw_re
+        on cw_p.id = cw_re.report_id and cw_re.del_flag = '0'
+        WHERE cw_p.id = #{id}
+    </select>
 </mapper>

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

@@ -14,6 +14,7 @@
             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} and file_affiliation = #{fileType} and del_flag = '0'
     </select>
@@ -36,6 +37,7 @@
         where a.attachment_id = #{id}
     </select>
 
+
     <update id="updateByIdOnSignature">
         update work_attachment
         set url = #{url},

+ 32 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/CwProjectReportReviewService.java

@@ -3,6 +3,9 @@ package com.jeeplus.test.cw.projectReport.service;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectRecords;
+import com.jeeplus.test.cw.projectRecords.mapper.CwProjectRecordsMapper;
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectRecordsDTO;
 import com.jeeplus.test.cw.projectReport.domain.*;
 import com.jeeplus.test.cw.projectReport.mapper.CwProjectInfoMapper;
 import com.jeeplus.test.cw.projectReport.mapper.CwProjectReportReviewMapper;
@@ -58,6 +61,9 @@ public class CwProjectReportReviewService extends ServiceImpl<CwProjectReportRev
     private CwProjectInfoMapper infoMapper;
 
     @Resource
+    private CwProjectRecordsMapper recordsMapper;
+
+    @Resource
     private TaskService taskService;
 
     public CwProjectReportData queryByReportId(String id) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException {
@@ -73,7 +79,19 @@ public class CwProjectReportReviewService extends ServiceImpl<CwProjectReportRev
      * @return
      */
     public String updateReviewStatysByReportId(CwProjectReportData data) {
+        //获取当前登录人信息
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
         mapper.updateReviewStatysByReportId(data.getReviewStatus(),data.getId());
+        //根据id找到报告id,然后根据报告id找到projectid,然后根据projectId修改状态
+        String projectId = mapper.getProjectIdByReportId(data.getId());
+        //将关联的项目信息的状态改为5
+        CwProjectRecordsDTO recordsDTO = recordsMapper.queryById(projectId);
+        CwProjectRecords records = new CwProjectRecords();
+        BeanUtils.copyProperties(recordsDTO, records);
+        records.setStatus("5");
+        records.setUpdateBy(userDTO.getId());
+        records.setUpdateDate(new Date());
+        recordsMapper.updateById(records);
         return "操作成功";
     }
 
@@ -171,6 +189,14 @@ public class CwProjectReportReviewService extends ServiceImpl<CwProjectReportRev
             cwProjectReportArchiveMapper.insert(cwProjectReportArchive);
         }
         mapper.updateById(review);
+        //将关联的项目信息的状态改为6
+        CwProjectRecordsDTO recordsDTO = recordsMapper.queryById(reportData.getProjectId());
+        CwProjectRecords records = new CwProjectRecords();
+        BeanUtils.copyProperties(recordsDTO, records);
+        records.setUpdateBy(userDTO.getId());
+        records.setUpdateDate(new Date());
+        records.setStatus("6");
+        recordsMapper.updateById(records);
         //对复核数据进行持久化操作
         if (CollectionUtils.isNotEmpty(reportData.getDetails())) {
             for (CwProofreadDetail detail1:reportData.getDetails()) {
@@ -227,6 +253,12 @@ public class CwProjectReportReviewService extends ServiceImpl<CwProjectReportRev
         info.setUpdateDate(new Date());
         info.setReportId(dto.getId());
         mapper.insert(info);
+        //将关联的项目信息的状态改为6
+        CwProjectRecordsDTO recordsDTO = recordsMapper.queryById(dto.getProjectId());
+        CwProjectRecords records = new CwProjectRecords();
+        BeanUtils.copyProperties(recordsDTO, records);
+        records.setStatus("6");
+        recordsMapper.updateById(records);
         //明细表相关信息
         if (CollectionUtils.isNotEmpty(dto.getDetails())) {
             for (CwProofreadDetail detail:dto.getDetails()) {

+ 111 - 2
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/CwProjectReportService.java

@@ -174,9 +174,13 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
         infoData.setUpdateBy(UserUtils.getCurrentUserDTO().getId());
         infoData.setUpdateDate(new Date());
         infoMapper.updateById(infoData);
+
         //对上传的文件数据进行持久化操作
         List<ProjectReportWorkAttachmentDTO> cwFileInfoList = report.getCwFileInfoList();
-        if (CollectionUtils.isNotEmpty(cwFileInfoList)) {
+        List<WorkAttachmentDto> cwFileInfoList2 = report.getCwFileInfoList2();
+        if (CollectionUtils.isNotEmpty(cwFileInfoList2)) {
+            updateFiles2(cwFileInfoList2, userDTO, report.getId());
+        } else if (CollectionUtils.isNotEmpty(cwFileInfoList)) {
             updateFiles(cwFileInfoList, userDTO, report.getId());
         } else {
             //删除所有的文件信息
@@ -291,12 +295,43 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
 //        }
         infoMapper.insert(infoData);
 
+        //对上传的附件进行持久化操作
+        List<WorkAttachmentDto> fileInfoList2 = new ArrayList<>();
+        if ( null !=report.getCwFileInfoList2()){
+            fileInfoList2 = report.getCwFileInfoList2();
+        }
+        ossServiceMapper.delete(new QueryWrapper<WorkAttachment>().lambda().eq(WorkAttachment::getAttachmentId, report.getId()));
+
+        AtomicInteger j2 = new AtomicInteger(1);
+        if (fileInfoList2 != null){
+            fileInfoList2.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(report.getId());
+                i.setAttachmentName(item.getName());
+                i.setAttachmentFlag("cw_project_report");
+                i.setFileSize(item.getSize());
+                i.setSort(j2.get());
+                ossServiceMapper.insertWorkAttachment(i, userDTO);
+            });
+        }
+
         //对上传的文件数据进行持久化操作
         List<ProjectReportWorkAttachmentDTO> fileInfoList = new ArrayList<>();
         if ( null !=report.getCwFileInfoList()){
             fileInfoList = report.getCwFileInfoList();
         }
-        ossServiceMapper.delete(new QueryWrapper<WorkAttachment>().lambda().eq(WorkAttachment::getAttachmentId, report.getId()));
+//        ossServiceMapper.delete(new QueryWrapper<WorkAttachment>().lambda().eq(WorkAttachment::getAttachmentId, report.getId()));
         AtomicInteger j = new AtomicInteger(1);
         if (fileInfoList != null){
             fileInfoList.forEach(item -> {
@@ -510,6 +545,15 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                 reportData.setCwFileInfoList(dtoList);
                 reportData.setSignatureFileList(signatureList);
             }
+            //将附件信息查出
+            // 查询附件信息
+            List<WorkAttachmentDto> fileInfo2 = reportMapper.findDtos(id);
+            if (CollectionUtils.isNotEmpty(dtos)) {
+                for (WorkAttachmentDto i : fileInfo2) {
+                    i.setCreateBy(UserUtils.get(i.getBy()));
+                }
+            }
+            reportData.setCwFileInfoList2(fileInfo2);
             //设置历史报告列表
             //根据项目id查出所有的信息
             List<CwProjectReportData> byProjectList = reportMapper.getByProjectId(reportData.getProjectId());
@@ -637,6 +681,14 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                         reportData.setCwFileInfoList(dtoList);
                         reportData.setSignatureFileList(signatureList);
                     }
+                    // 查询附件信息
+                    List<WorkAttachmentDto> fileInfo2 = reportMapper.findDtos(id);
+                    if (CollectionUtils.isNotEmpty(dtos)) {
+                        for (WorkAttachmentDto i : fileInfo2) {
+                            i.setCreateBy(UserUtils.get(i.getBy()));
+                        }
+                    }
+                    reportData.setCwFileInfoList2(fileInfo2);
                     //设置历史报告列表
                     //根据项目id查出所有的信息
                     List<CwProjectReportData> byProjectList = reportMapper.getByProjectId(reportData.getProjectId());
@@ -1321,6 +1373,63 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
         }
     }
 
+    /**
+     * 修改附件信息
+     * @param list 待修改的附件列表
+     * @param userDTO 当前登录用户
+     * @param id 关联id
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateFiles2(List<WorkAttachmentDto> list, UserDTO userDTO, String id) {
+        int j = 1;
+        String names = new String();
+        //表中存在,但是传过来不存在,说明已删除,表中数据也要删除
+        for (WorkAttachmentDto dto : list) {
+            names = names + "," +dto.getUrl();
+        }
+        //查询保存的附件信息
+        List<WorkAttachment> infoList = reportMapper.findFileList(id);
+        if (CollectionUtils.isNotEmpty(infoList)) {
+            for (WorkAttachment i : infoList) {
+                if (!names.contains(i.getUrl())) {
+                    ossServiceMapper.deleteById(i.getId());
+                    List<String> fileId = attachmentMapper.getFileId(i.getId());
+                    fileId.forEach(fid->{
+                        attachmentMapper.deleteById(fid);
+                    });
+
+                }
+            }
+        }
+        //保存信息
+        for (WorkAttachmentDto dto : list) {
+            //判断是否存在
+            Integer isExit = reportMapper.findIsExit(id, dto.getName());
+            if (isExit == 0) {
+                WorkAttachment i = new WorkAttachment();
+                //包含了url、size、name
+                i.setId(UUID.randomUUID().toString().replace("-", ""));
+//                i.getCreateBy().setId(userDTO.getId());
+                i.setCreateDate(new Date());
+//                i.getUpdateBy().setId(userDTO.getId());
+                i.setUpdateDate(new Date());
+                i.setDelFlag(0);
+                i.setUrl(dto.getUrl());
+                //文件类型处理
+                List<String> strings = Arrays.asList(dto.getName().split("\\."));
+                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
+                    i.setType(strings.get(1));
+                }
+                i.setAttachmentId(id);
+                i.setAttachmentName(dto.getName());
+                i.setAttachmentFlag("cwWorkContract");
+                i.setFileSize(dto.getSize());
+                i.setSort(j);
+                ossServiceMapper.insertWorkAttachment(i, userDTO);
+                j++;
+            }
+        }
+    }
 
     /**
      * 根据报告签章id查询签章审核节点信息