sangwenwei 5 месяцев назад
Родитель
Сommit
62fbf8df50
23 измененных файлов с 643 добавлено и 121 удалено
  1. 433 93
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/controller/CcpmList.java
  2. 11 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/controller/Transport.java
  3. 19 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/service/ccpm/FlowRequest.java
  4. 2 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/ProjectReportData.java
  5. 47 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/ProjectTemplateInfoVo.java
  6. 2 2
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/RuralProjectRecordsVo.java
  7. 51 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/RuralProjectcontentinfoVo.java
  8. 1 7
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/RuralReportConsultant.java
  9. 2 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/WorkClientAttachment.java
  10. 13 11
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/config/ConnectionService.java
  11. 2 2
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/config/RestTemplateConfig.java
  12. 2 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/mapper/ContractParticipantMapper.java
  13. 4 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/mapper/xml/ContractParticipantMapper.xml
  14. 2 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectDict/mapper/ProjectDictMapper.java
  15. 11 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectDict/mapper/xml/ProjectDictMapper.xml
  16. 2 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectRecords/domain/CwProjectClientInfo.java
  17. 1 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectRecords/mapper/CwProjectClientInfoMapper.java
  18. 4 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectRecords/mapper/xml/CwProjectClientInfoMapper.xml
  19. 10 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/controller/CwProjectReportController.java
  20. 2 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/mapper/CwProjectReviewNewTeamMapper.java
  21. 3 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/mapper/xml/CwProjectReviewNewTeamMapper.xml
  22. 18 2
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/utils/RestTemplateService.java
  23. 1 1
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

+ 433 - 93
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/controller/CcpmList.java

@@ -1,11 +1,11 @@
 package com.jeeplus.finance.ccpm.controller;
 
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.TypeReference;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -14,12 +14,21 @@ import com.jeeplus.finance.ccpm.service.ccpm.FlowRequest;
 import com.jeeplus.finance.ccpm.vo.*;
 import com.jeeplus.finance.contractRegistration.domain.ContractFilePaper;
 import com.jeeplus.finance.contractRegistration.domain.ContractInfo;
+import com.jeeplus.finance.contractRegistration.domain.ContractParticipant;
 import com.jeeplus.finance.contractRegistration.mapper.ContractFilePaperMapper;
 import com.jeeplus.finance.contractRegistration.mapper.ContractInfoMapper;
+import com.jeeplus.finance.contractRegistration.mapper.ContractParticipantMapper;
+import com.jeeplus.finance.projectDict.mapper.ProjectDictMapper;
 import com.jeeplus.finance.projectRecords.domain.CwProjectClientContact;
+import com.jeeplus.finance.projectRecords.domain.CwProjectClientInfo;
 import com.jeeplus.finance.projectRecords.domain.CwProjectRecords;
+import com.jeeplus.finance.projectRecords.domain.PartialCustomerInfo;
 import com.jeeplus.finance.projectRecords.mapper.CwProjectClientContactMapper;
+import com.jeeplus.finance.projectRecords.mapper.CwProjectClientInfoMapper;
 import com.jeeplus.finance.projectRecords.mapper.CwProjectRecordsMapper;
+import com.jeeplus.finance.projectRecords.service.PartialCustomerInfoService;
+import com.jeeplus.finance.projectRecords.service.dto.CwProjectClientInfoDTO;
+import com.jeeplus.finance.projectRecords.service.dto.CwProjectRecordsDTO;
 import com.jeeplus.finance.projectReport.domain.*;
 import com.jeeplus.finance.projectReport.mapper.*;
 import com.jeeplus.finance.utils.RestTemplateService;
@@ -32,6 +41,7 @@ import com.jeeplus.finance.workClientInfo.mapper.CwWorkClientBaseMapper;
 import com.jeeplus.finance.workClientInfo.mapper.CwWorkClientBillingMapper;
 import com.jeeplus.finance.workClientInfo.mapper.CwWorkClientContactMapper;
 import com.jeeplus.finance.workClientInfo.mapper.CwWorkClientTypeMapper;
+import com.jeeplus.finance.workClientInfo.service.dto.CwWorkClientBaseDTO;
 import com.jeeplus.sys.domain.Area;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
 import com.jeeplus.sys.feign.*;
@@ -41,12 +51,13 @@ import com.jeeplus.sys.service.dto.OfficeDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.GetMapping;
 
-import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
-import java.lang.reflect.Type;
+import java.sql.SQLException;
 import java.util.*;
 
 @Component
@@ -102,6 +113,17 @@ public class CcpmList  {
     @Resource
     private CwProjectReviewNewTeamMapper newTeamMapper;
 
+    @Resource
+    private PartialCustomerInfoService customerInfoService;
+
+    @Resource
+    private CwProjectClientInfoMapper cwProjectClientInfoMapper;
+
+    @Resource
+    private ContractParticipantMapper contractParticipantMapper;
+
+    @Resource
+    private ProjectDictMapper projectDictMapper;
 
 
 
@@ -121,6 +143,253 @@ public class CcpmList  {
         getAllClient(allUserInfo);
         getWorkContract(allUserInfo);
         getProjectList(allUserInfo);
+        getReviewNew(allUserInfo);
+        getAllRuralProjectcontentinfo(allUserInfo);
+    }
+
+    /**
+     * 获取质量复核信息
+     * @param allUserInfo
+     */
+    @Transactional(rollbackFor = Exception.class, noRollbackFor = SQLException.class)
+    public void getReviewNew(List<UserDTO> allUserInfo) {
+        Object reviewNewList = flowRequest.getReviewNew();
+        if(ObjectUtils.isNotEmpty(reviewNewList)) {
+            List<RuralProjectRecordsVo> ruralProjectRecordsVos = JSONArray.parseArray(reviewNewList.toString(), RuralProjectRecordsVo.class);
+            if (CollectionUtils.isNotEmpty(ruralProjectRecordsVos)){
+                //先进行删除复核信息
+//                cwProjectReviewNewMapper.deleteByTenantId();
+                newTeamMapper.deleteByTenantId();
+                for (RuralProjectRecordsVo recordsVo : ruralProjectRecordsVos) {
+                    //获取报告号id
+                    List<CwProjectReportData> report = cwProjectReportMapper.getByProjectId(recordsVo.getId());
+                    CwProjectReportData reportInfo = null;
+                    if (report.size()>0){
+                        reportInfo = report.get(0);
+                    }
+                    //质量复核
+                    if (StringUtils.isNotBlank(recordsVo.getPrdId())){
+                        try {
+                            // 复核
+                            CwProjectReviewNew cwProjectReviewNew = new CwProjectReviewNew();
+                            if (recordsVo.getProjectReportDataVo() != null) {
+                                ProjectReportDataVo reportData = recordsVo.getProjectReportDataVo();
+                                BeanUtils.copyProperties(reportData, cwProjectReviewNew);
+                                // 设置创建和更新人
+                                if (StringUtils.isNotBlank(recordsVo.getCreateName())) {
+                                    UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByLoginNameNotTenantId(recordsVo.getCreateName());
+                                    if (userDTO != null) {
+                                        cwProjectReviewNew.setCreateById(userDTO.getId());
+                                        cwProjectReviewNew.setUpdateById(userDTO.getId());
+                                    }
+                                }
+                                cwProjectReviewNew.setReviewStatus(reportData.getStatus());
+
+                                cwProjectReviewNew.setTenantId("ccpm");
+                                // 复核信息
+                                cwProjectReviewNew.setId(recordsVo.getPrdId());
+                                cwProjectReviewNew.setProjectId(recordsVo.getId());
+                                if (reportInfo != null) {
+                                    cwProjectReviewNew.setReportId(reportInfo.getId());
+                                }
+                                //复核通过时间
+                                cwProjectReviewNew.setCheckCompleteTime(recordsVo.getFirstAuditDate());
+
+                                // 下一节点审核人
+                                if (StringUtils.isNotBlank(recordsVo.getBzshbUserName())) {
+                                    UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByLoginNameNotTenantId(recordsVo.getBzshbUserName());
+                                    if (userDTO != null) {
+                                        cwProjectReviewNew.setReviewBy(userDTO.getId());
+                                    }
+                                }
+
+                                cwProjectReviewNew.setCreateTime(reportData.getCreateDate());
+                                cwProjectReviewNew.setUpdateTime(reportData.getUpdateDate());
+                                CwProjectReviewNew byId = cwProjectReviewNewMapper.getById(cwProjectReviewNew.getId());
+                                if (byId != null){
+                                    cwProjectReviewNewMapper.updateById(cwProjectReviewNew);
+                                }else {
+                                    cwProjectReviewNewMapper.insert(cwProjectReviewNew);
+                                }
+
+                                if (CollectionUtils.isNotEmpty(reportData.getConsultants())) {
+                                    for (RuralReportConsultant consultant : reportData.getConsultants()) {
+                                        try {
+                                            if (consultant != null) {
+                                                CwProjectReviewNewTeam reviewNewTeam = new CwProjectReviewNewTeam();
+                                                UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByLoginNameNotTenantId(recordsVo.getCreateName());
+                                                if (userDTO != null) {
+                                                    reviewNewTeam.setCreateById(userDTO.getId());
+                                                    reviewNewTeam.setUpdateById(userDTO.getId());
+                                                }
+                                                reviewNewTeam.setCreateTime(recordsVo.getCreateDate());
+                                                reviewNewTeam.setUpdateTime(recordsVo.getUpdateTime());
+                                                reviewNewTeam.setReportId(reportInfo.getId());
+                                                if (StringUtils.isNotBlank(consultant.getRole())) {
+                                                    reviewNewTeam.setUserRole(consultant.getRole());
+                                                    // 根据角色处理
+                                                    if (consultant.getRole().equals("负责人")) {
+                                                        reviewNewTeam.setDetailNumber("1");
+                                                        UserDTO userDTO2 = SpringUtil.getBean(IUserApi.class).getByLoginNameNotTenantId(consultant.getZixunyuanName());
+                                                        if (userDTO2 != null) {
+                                                            reviewNewTeam.setUserId(userDTO2.getId());
+                                                        }
+                                                    }
+                                                    // 其他角色处理
+                                                    if (consultant.getRole().equals("技术负责人")) {
+                                                        reviewNewTeam.setDetailNumber("2");
+                                                        if (StringUtils.isNotBlank(consultant.getZixunyuanName())) {
+                                                            String substring = consultant.getZixunyuanName().substring(consultant.getZixunyuanName().indexOf("(")+1, consultant.getZixunyuanName().lastIndexOf("代"));
+                                                            UserDTO userDTO2 = SpringUtil.getBean(IUserApi.class).getByLoginNameNotTenantId(substring);
+                                                            if (userDTO2 != null) {
+                                                                reviewNewTeam.setUserId(userDTO2.getId());
+                                                            }
+                                                        }
+                                                    }
+                                                    if (consultant.getRole().equals("咨询员")) {
+                                                        reviewNewTeam.setDetailNumber("3");
+                                                        UserDTO userDTO2 = SpringUtil.getBean(IUserApi.class).getByLoginNameNotTenantId(consultant.getZixunyuanName());
+                                                        if (userDTO2 != null) {
+                                                            reviewNewTeam.setUserId(userDTO2.getId());
+                                                        }
+                                                    }
+                                                }
+                                                reviewNewTeam.setId(consultant.getId());
+                                                reviewNewTeam.setContent(consultant.getWordnr());
+                                                reviewNewTeam.setOpinion(consultant.getAuditOpinion());
+                                                reviewNewTeam.setTenantId("ccpm");
+
+                                                newTeamMapper.insert(reviewNewTeam);
+                                            }
+                                        } catch (Exception e) {
+                                            System.out.println("新增错误: " + e);
+                                            // 在这里捕获异常后记录日志,避免单个错误导致方法中止
+                                        }
+                                    }
+                                }
+                            }
+                        } catch (Exception e) {
+                            System.out.println("Error: " + e);
+                            // 捕获外层异常,避免事务回滚
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 获取档案信息
+     * @param allUserInfo
+     */
+    @Transactional(rollbackFor = Exception.class, noRollbackFor = SQLException.class)
+    public void getAllRuralProjectcontentinfo(List<UserDTO> allUserInfo) {
+        Object projectcontentinfo = flowRequest.getAllRuralProjectcontentinfo();
+
+        if (ObjectUtils.isNotEmpty(projectcontentinfo)){
+
+            List<RuralProjectcontentinfoVo> ruralProjectcontentinfoVos = JSONArray.parseArray(projectcontentinfo.toString(), RuralProjectcontentinfoVo.class);
+            if (ruralProjectcontentinfoVos != null){
+                for (RuralProjectcontentinfoVo ruralProjectcontentinfoVo : ruralProjectcontentinfoVos) {
+                    //成果文件
+                    if (ruralProjectcontentinfoVo.getFileAttachmentList() != null){
+                        List<ProjectTemplateInfoVo> fileAttachmentList = ruralProjectcontentinfoVo.getFileAttachmentList();
+                        for (ProjectTemplateInfoVo projectTemplateInfoVo : fileAttachmentList) {
+                            String attId = "";
+                            String level = "";
+                            String type = "";
+                            if (StringUtils.isNotBlank(ruralProjectcontentinfoVo.getProjectLevel())){
+                                if (ruralProjectcontentinfoVo.getProjectLevel().equals("1")){
+                                    level = "2";
+                                }else {
+                                    level = "1";
+                                }
+                            }else {
+                                level = "2";
+                            }
+                            if (StringUtils.isNotBlank(ruralProjectcontentinfoVo.getProjectType())){
+                                if (ruralProjectcontentinfoVo.getProjectType().equals("2")){
+                                    type = "1";
+                                }else {
+                                    type = "2";
+                                }
+                            }
+                            //根据名字找到对应节点的id
+                            if (StringUtils.isNotBlank(projectTemplateInfoVo.getAttachName())){
+                                attId = projectDictMapper.findByName(projectTemplateInfoVo.getAttachName(),ruralProjectcontentinfoVo.getAttachmentProjectSort(),level,type);
+                            }
+                            if (projectTemplateInfoVo.getWorkAttachments() != null){
+                                saveContentInfo(projectTemplateInfoVo.getWorkAttachments(),attId);
+                            }
+                        }
+                    }
+                    //依据文件
+                    if (ruralProjectcontentinfoVo.getFileGistdataList() != null){
+                        List<ProjectTemplateInfoVo> fileGistdataList = ruralProjectcontentinfoVo.getFileGistdataList();
+                        for (ProjectTemplateInfoVo projectTemplateInfoVo : fileGistdataList) {
+                            String attId = "";
+                            String level = "";
+                            String type = "";
+                            if (StringUtils.isNotBlank(ruralProjectcontentinfoVo.getProjectLevel())){
+                                if (ruralProjectcontentinfoVo.getProjectLevel().equals("1")){
+                                    level = "2";
+                                }else {
+                                    level = "1";
+                                }
+                            }else {
+                                level = "2";
+                            }
+                            if (StringUtils.isNotBlank(ruralProjectcontentinfoVo.getProjectType())){
+                                if (ruralProjectcontentinfoVo.getProjectType().equals("2")){
+                                    type = "1";
+                                }else {
+                                    type = "2";
+                                }
+                            }
+                            //根据名字找到对应节点的id
+                            if (StringUtils.isNotBlank(projectTemplateInfoVo.getAttachName())){
+                                attId = projectDictMapper.findByName(projectTemplateInfoVo.getAttachName(),ruralProjectcontentinfoVo.getAttachmentProjectSort(),level,type);
+                            }
+                            if (projectTemplateInfoVo.getWorkAttachments() != null){
+                                saveContentInfo(projectTemplateInfoVo.getWorkAttachments(),attId);
+                            }
+                        }
+                    }
+                    //其他文件
+                    if (ruralProjectcontentinfoVo.getFileOtherList() != null){
+                        List<ProjectTemplateInfoVo> fileOtherList = ruralProjectcontentinfoVo.getFileOtherList();
+                        for (ProjectTemplateInfoVo projectTemplateInfoVo : fileOtherList) {
+                            String attId = "";
+                            String level = "";
+                            String type = "";
+                            if (StringUtils.isNotBlank(ruralProjectcontentinfoVo.getProjectLevel())){
+                                if (ruralProjectcontentinfoVo.getProjectLevel().equals("1")){
+                                    level = "2";
+                                }else {
+                                    level = "1";
+                                }
+                            }else {
+                                level = "2";
+                            }
+                            if (StringUtils.isNotBlank(ruralProjectcontentinfoVo.getProjectType())){
+                                if (ruralProjectcontentinfoVo.getProjectType().equals("2")){
+                                    type = "1";
+                                }else {
+                                    type = "2";
+                                }
+                            }
+                            //根据名字找到对应节点的id
+                            if (StringUtils.isNotBlank(projectTemplateInfoVo.getAttachName())){
+                                attId = projectDictMapper.findByName(projectTemplateInfoVo.getAttachName(),ruralProjectcontentinfoVo.getAttachmentProjectSort(),level,type);
+                            }
+                            if (projectTemplateInfoVo.getWorkAttachments() != null){
+                                saveContentInfo(projectTemplateInfoVo.getWorkAttachments(),attId);
+                            }
+                        }
+                    }
+                }
+            }
+        }
     }
 
     /*8
@@ -129,18 +398,19 @@ public class CcpmList  {
     public void getProjectList( List<UserDTO> allUserInfo) throws Exception {
         //ccpm系统中的项目信息
         Object projectList = flowRequest.getProjectList();
-        System.out.println(projectList);
+
         if(ObjectUtils.isNotEmpty(projectList)){
             List<RuralProjectRecordsVo> ruralProjectRecordsVos = JSONArray.parseArray(projectList.toString(), RuralProjectRecordsVo.class);
             //删除之前添加的数据
-            cwProjectRecordsMapper.deleteByTenantId();
-            cwProjectReviewNewMapper.deleteByTenantId();
+//            cwProjectRecordsMapper.deleteByTenantId();
+//            cwProjectReviewNewMapper.deleteByTenantId();
             cwProjectReportMapper.deleteByTenantId();
             cwProjectInfoMapper.deleteByTenantId();
-            cwProjectReportSignAndIssueMapper.deleteByTenantId();
-            cwProjectReportOnlineArchivingMapper.deleteByTenantId();
-            cwProjectReportPaperArchivingMapper.deleteByTenantId();
-            cwProjectClientContactMapper.deleteByTenantId();
+//            cwProjectReportSignAndIssueMapper.deleteByTenantId();
+//            cwProjectReportOnlineArchivingMapper.deleteByTenantId();
+//            cwProjectReportPaperArchivingMapper.deleteByTenantId();
+//            cwProjectClientContactMapper.deleteByTenantId();
+            cwProjectClientInfoMapper.deleteByTenantId();
             //将获取到的项目信息通过遍历的方式插入到数据表中
             if (CollectionUtils.isNotEmpty(ruralProjectRecordsVos)){
                 for (RuralProjectRecordsVo recordsVo : ruralProjectRecordsVos) {
@@ -163,6 +433,7 @@ public class CcpmList  {
                         cwProjectRecords.setProjectNumber(recordsVo.getProjectId());//项目编号
                         cwProjectRecords.setContractId(recordsVo.getWorkContractInfo().getId());
                         cwProjectRecords.setProjectName(recordsVo.getProjectName());
+                        cwProjectRecords.setStatus("5");
                         if (StringUtils.isNotBlank(recordsVo.getProjectType())){
                             if (recordsVo.getProjectType().equals("2")){
                                 cwProjectRecords.setProjectType("1");//造价
@@ -244,7 +515,25 @@ public class CcpmList  {
                             }
 
                         }
-                        cwProjectRecordsMapper.insert(cwProjectRecords);
+                        if (StringUtils.isNotBlank(recordsVo.getLeaderNamePhone())){
+                            Optional<String> matchingUserId = allUserInfo.stream()
+                                    .filter(user -> user.getMobile().equals(recordsVo.getLeaderNamePhone()))
+                                    .map(UserDTO::getId)
+                                    .findFirst();
+                            if (matchingUserId.isPresent()){
+                                UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getById(matchingUserId.get());
+                                if (userDTO != null){
+                                    cwProjectRecords.setProjectMasterId(userDTO.getId());
+                                }
+                            }
+
+                        }
+                        CwProjectRecords projectRecords = cwProjectRecordsMapper.selectById(cwProjectRecords.getId());
+                        if (projectRecords != null){
+                            cwProjectRecordsMapper.updateById(cwProjectRecords);
+                        }else {
+                            cwProjectRecordsMapper.insert(cwProjectRecords);
+                        }
                         //项目联系人
                         if (CollectionUtils.isNotEmpty(recordsVo.getWorkClientLinkmanList())){
                             for (WorkClientLinkman workClientLinkman : recordsVo.getWorkClientLinkmanList()) {
@@ -265,10 +554,44 @@ public class CcpmList  {
                                     }
                                     cwProjectClientContact.setClientContactId(workClientLinkman.getClientId().getId());
                                     cwProjectClientContact.setTenantId("ccpm");
-                                    cwProjectClientContactMapper.insert(cwProjectClientContact);
+                                    CwProjectClientContact clientContact = cwProjectClientContactMapper.selectById(cwProjectClientContact.getId());
+                                    if (clientContact != null){
+                                        cwProjectClientContact.setId(clientContact.getId());
+                                        cwProjectClientContactMapper.updateById(cwProjectClientContact);
+                                    }else {
+                                        cwProjectClientContactMapper.insert(cwProjectClientContact);
+                                    }
+                                    //中间表
+                                    CwProjectClientInfo cwProjectClientInfo = new CwProjectClientInfo();
+                                    cwProjectClientInfo.setClientId(workClientLinkman.getClientId().getId());
+                                    cwProjectClientInfo.setProjectId(recordsVo.getId());
+                                    cwProjectClientInfo.setTenantId("ccpm");
+                                    cwProjectClientInfoMapper.insert(cwProjectClientInfo);
+
                                 }
                             }
                         }
+                        //施工方信息
+                        if (null != recordsVo.getWorkConstructionLinkmanList() && recordsVo.getWorkConstructionLinkmanList().size()>0){
+                            //先根据项目id删除施工方信息
+                            customerInfoService.remove(new QueryWrapper<PartialCustomerInfo>().lambda()
+                                    .eq(PartialCustomerInfo::getRecordsId,recordsVo.getId()));
+                            //重新添加施工方信息
+                            List<WorkClientLinkman> workConstructionLinkmanList = recordsVo.getWorkConstructionLinkmanList();
+                            for (int i = 0; i < workConstructionLinkmanList.size(); i++) {
+                                PartialCustomerInfo customerInfo = new PartialCustomerInfo();
+                                BeanUtil.copyProperties(workConstructionLinkmanList.get(i), customerInfo);
+                                customerInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+                                customerInfo.setCreateById(cwProjectRecords.getId());
+                                customerInfo.setCreateTime(new Date());
+                                customerInfo.setUpdateById(cwProjectRecords.getId());
+                                customerInfo.setUpdateTime(new Date());
+                                customerInfo.setRecordsId(cwProjectRecords.getId());
+                                customerInfoService.save(customerInfo);
+                            }
+
+                        }
+
                     }
                     //报告
                     if (StringUtils.isNotBlank(recordsVo.getPrdId())){
@@ -276,7 +599,7 @@ public class CcpmList  {
                         //报告信息
                         report.setId(id);
                         report.setProjectId(recordsVo.getId());
-//                        report.setStatus("5");
+                        report.setStatus("5");
                         report.setTenantId("ccpm");
                         if (StringUtils.isNotBlank(recordsVo.getCreateNamePhone())){
                             Optional<String> matchingUserId = allUserInfo.stream()
@@ -312,10 +635,7 @@ public class CcpmList  {
                         cwProjectInfoData.setCreateTime(recordsVo.getCreateTime());
                         cwProjectInfoMapper.insert(cwProjectInfoData);
                     }
-                    //质量复核
-                    if (StringUtils.isNotBlank(recordsVo.getPrdId())){
-                        saveReviewNew(recordsVo,report,allUserInfo);
-                    }
+
 
                     //报告签发
                     if (StringUtils.isNotBlank(recordsVo.getPrdtId())){
@@ -340,7 +660,13 @@ public class CcpmList  {
 
                         }
                         cwProjectReportSignAndIssue.setCreateTime(recordsVo.getCreateDate());
-                        cwProjectReportSignAndIssueMapper.insert(cwProjectReportSignAndIssue);
+                        cwProjectReportSignAndIssue.setReportId(report.getId());
+                        CwProjectReportSignAndIssue byId = cwProjectReportSignAndIssueMapper.getById(cwProjectReportSignAndIssue.getId());
+                        if (byId != null){
+                            cwProjectReportSignAndIssueMapper.updateById(cwProjectReportSignAndIssue);
+                        }else {
+                            cwProjectReportSignAndIssueMapper.insert(cwProjectReportSignAndIssue);
+                        }
                     }
 
                     //电子归档
@@ -364,8 +690,13 @@ public class CcpmList  {
                             }
 
                         }
-                        cwProjectReportOnlineArchiving.setCreateTime(recordsVo.getCreateDate());
-                        cwProjectReportOnlineArchivingMapper.insert(cwProjectReportOnlineArchiving);
+                        cwProjectReportOnlineArchiving.setCreateTime(recordsVo.getReportRecordBeginDate());
+                        CwProjectReportOnlineArchiving projectReportOnlineArchiving = cwProjectReportOnlineArchivingMapper.selectById(cwProjectReportOnlineArchiving.getId());
+                        if (projectReportOnlineArchiving != null){
+                            cwProjectReportOnlineArchivingMapper.updateById(cwProjectReportOnlineArchiving);
+                        }else {
+                            cwProjectReportOnlineArchivingMapper.insert(cwProjectReportOnlineArchiving);
+                        }
                     }
                     //纸质归档
                     if (StringUtils.isNotBlank(recordsVo.getPrrdId())){
@@ -390,75 +721,19 @@ public class CcpmList  {
 
                         }
                         cwProjectReportPaperArchiving.setCreateTime(recordsVo.getCreateDate());
-                        cwProjectReportPaperArchivingMapper.insert(cwProjectReportPaperArchiving);
-                    }
-                }
-            }
-        }
-
-
-    }
-
-    private void saveReviewNew(RuralProjectRecordsVo recordsVo,CwProjectReport report,List<UserDTO> allUserInfo) {
-        //复核
-        CwProjectReviewNew cwProjectReviewNew = new CwProjectReviewNew();
-        //复核信息
-        cwProjectReviewNew.setId(recordsVo.getPrdId());
-        cwProjectReviewNew.setProjectId(recordsVo.getId());
-        cwProjectReviewNew.setReportId(report.getId());
-        cwProjectReviewNew.setReviewStatus(recordsVo.getProjectReportStatus().toString());
-        cwProjectReviewNew.setTenantId("ccpm");
-        if (StringUtils.isNotBlank(recordsVo.getCreateNamePhone())){
-            Optional<String> matchingUserId = allUserInfo.stream()
-                    .filter(user -> user.getMobile().equals(recordsVo.getCreateNamePhone()))
-                    .map(UserDTO::getId)
-                    .findFirst();
-            if (matchingUserId.isPresent()){
-                cwProjectReviewNew.setCreateById(matchingUserId.get());
-                cwProjectReviewNew.setUpdateById(matchingUserId.get());
-            }
-
-        }
-        cwProjectReviewNew.setCreateTime(recordsVo.getCreateDate());
-        if (recordsVo.getReportData() != null){
-//                            saveReviewNew(recordsVo.getReportData());
-            ProjectReportData reportData = recordsVo.getReportData();
-            BeanUtils.copyProperties(reportData,cwProjectReviewNew);
-            if (CollectionUtils.isNotEmpty(reportData.getConsultants())){
-                for (RuralReportConsultant consultant : reportData.getConsultants()) {
-                    CwProjectReviewNewTeam reviewNewTeam = new CwProjectReviewNewTeam();
-                    reviewNewTeam.setCreateById(recordsVo.getCreateById());
-                    reviewNewTeam.setCreateTime(recordsVo.getCreateDate());
-                    reviewNewTeam.setUpdateById(recordsVo.getUpdateById());
-                    reviewNewTeam.setUpdateTime(recordsVo.getUpdateTime());
-                    reviewNewTeam.setReportId(recordsVo.getId());
-                    if (StringUtils.isNotBlank(consultant.getRole())){
-
-                    }
-                    reviewNewTeam.setUserRole(consultant.getRole());
-                    if (StringUtils.isNotBlank(consultant.getZixunyuanName())){
-                        if (consultant.getZixunyuanName().contains("陈红星")){
-                            String substring = consultant.getZixunyuanName().substring(consultant.getZixunyuanName().lastIndexOf("(") + 1, consultant.getZixunyuanName().lastIndexOf(")"));
-                            String id = SpringUtil.getBean(IUserApi.class).getUserIdByName(substring);
-                            if (StringUtils.isNotBlank(id)){
-                                reviewNewTeam.setUserId(id);
-                            }
-
+                        CwProjectReportPaperArchiving projectReportPaperArchiving = cwProjectReportPaperArchivingMapper.selectById(cwProjectReportPaperArchiving.getId());
+                        if (projectReportPaperArchiving != null){
+                            cwProjectReportPaperArchivingMapper.updateById(cwProjectReportPaperArchiving);
                         }else {
-                            String id = SpringUtil.getBean(IUserApi.class).getUserIdByName(consultant.getZixunyuanName());
-                            if (StringUtils.isNotBlank(id)){
-                                reviewNewTeam.setUserId(id);
-                            }
+                            cwProjectReportPaperArchivingMapper.insert(cwProjectReportPaperArchiving);
+
                         }
                     }
-                    reviewNewTeam.setContent(consultant.getWordnr());
-                    reviewNewTeam.setOpinion(consultant.getAuditOpinion());
-                    reviewNewTeam.setTenantId("ccpm");
-                    newTeamMapper.insert(reviewNewTeam);
                 }
             }
         }
-        cwProjectReviewNewMapper.insert(cwProjectReviewNew);
+
+
     }
 
 
@@ -468,25 +743,27 @@ public class CcpmList  {
     public void getWorkContract( List<UserDTO> allUserInfo){
         //ccpm系统中的合同信息
         Object contractList = flowRequest.getWorkContractList();
-        System.out.println(contractList);
+
         if (ObjectUtils.isNotEmpty(contractList)){
             List<WorkContractInfoVo> workContractInfoVos = JSONArray.parseArray(contractList.toString(), WorkContractInfoVo.class);
             //删除之前添加的合同数据
             contractInfoMapper.deleteByTenantId();
-            contractFilePaperMapper.deleteByTenantId();
+//            contractFilePaperMapper.deleteByTenantId();
+            contractParticipantMapper.deleteByTenantId();
             //新增数据
             if (CollectionUtils.isNotEmpty(workContractInfoVos)){
                 for (WorkContractInfoVo contractInfoVo : workContractInfoVos) {
                     ContractInfo workContractInfo = new ContractInfo();
                     workContractInfo.setId(contractInfoVo.getId());//id
                     if (StringUtils.isNotBlank(contractInfoVo.getCreateUserMobile())){
-                        Optional<String> matchingUserId = allUserInfo.stream()
+                        Optional<UserDTO> matchingUser = allUserInfo.stream()
                                 .filter(user -> user.getMobile().equals(contractInfoVo.getCreateUserMobile()))
-                                .map(UserDTO::getId)
                                 .findFirst();
-                        if (matchingUserId.isPresent()){
-                            workContractInfo.setCreateById(matchingUserId.get());
-                            workContractInfo.setUpdateById(matchingUserId.get());
+                        if (matchingUser.isPresent()){
+                            UserDTO userDTO = matchingUser.get();
+                            workContractInfo.setCreateById(userDTO.getId());
+                            workContractInfo.setUpdateById(userDTO.getId());
+                            workContractInfo.setDepartment(userDTO.getOfficeDTO().getId());
                         }
                     }
                     workContractInfo.setCreateTime(contractInfoVo.getCreateDate());
@@ -494,6 +771,8 @@ public class CcpmList  {
                     workContractInfo.setContractNo(contractInfoVo.getContractNum());//合同编号
                     workContractInfo.setClientContacts(contractInfoVo.getClient().getId());//客户id
                     workContractInfo.setStatus(contractInfoVo.getContractState());//合同状态
+                    workContractInfo.setSigningDate(contractInfoVo.getContractDate());//签约日期
+                    workContractInfo.setContractType(contractInfoVo.getContractTypeDoc()); //合同类型
                     //合同金额
                     if (StringUtils.isNotBlank(contractInfoVo.getContractPrice())){
                         double newPrice = Double.parseDouble(contractInfoVo.getContractPrice());
@@ -521,6 +800,15 @@ public class CcpmList  {
                     //对方合同编号
                     workContractInfo.setContractOpposite(contractInfoVo.getContractOpposite());
                     contractInfoMapper.insert(workContractInfo);
+                    //合同签约方信息
+                    ContractParticipant contractParticipant = new ContractParticipant();
+                    contractParticipant.setContractInfoId(workContractInfo.getId());
+                    contractParticipant.setCustomerNo(contractInfoVo.getClient().getNumber());//客户no
+                    contractParticipant.setCustomerName(contractInfoVo.getClient().getName());//客户no
+                    contractParticipant.setTenantId("ccpm");
+                    contractParticipant.setCreateById(workContractInfo.getCreateById());
+                    contractParticipant.setUpdateById(workContractInfo.getUpdateById());
+                    contractParticipantMapper.insert(contractParticipant);
                     //保存合同归档信息
                     ContractFilePaper workContractFile = new ContractFilePaper();
                     workContractFile.setContractInfoId(contractInfoVo.getId());
@@ -538,15 +826,22 @@ public class CcpmList  {
                             workContractFile.setUpdateById(matchingUserId.get());
                         }
                     }
-                    contractFilePaperMapper.insert(workContractFile);
+                    ContractFilePaper contractFilePaper = contractFilePaperMapper.selectFilePaperByContractInfoId(contractInfoVo.getId());
+                    if (null != contractFilePaper) {
+                        workContractFile.setId(contractFilePaper.getId());
+                        contractFilePaperMapper.updateById(workContractFile);
+                    }else {
+                        contractFilePaperMapper.insert(workContractFile);
+                    }
                     if (contractInfoVo.getWorkAttachments()!=null){
                         SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(contractInfoVo.getId());
                         UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByLoginNameNotTenantId(contractInfoVo.getCreateUser());
                         if (userDTO != null){
                             saveWorkContractFiles(contractInfoVo.getWorkAttachments(),userDTO,contractInfoVo.getId(),"workcontract");
-
                         }
                     }
+
+
                 }
             }
         }
@@ -592,12 +887,56 @@ public class CcpmList  {
         }
     }
 
+    /**
+     * 保存档案信息
+     * @param list 待保存的附件列表
+     * @param userDTO 当前登录用户
+     * @param id 关联id
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveContentInfo(List<WorkClientAttachment> list,String attId) {
+        int j = 1;
+        for (WorkClientAttachment dto : list) {
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteById(dto.getId());
+
+            WorkAttachmentInfo i = new WorkAttachmentInfo();
+            //包含了url、size、name
+            i.setId(dto.getId());
+//            i.getCreateBy().setId(userDTO.getId());
+            i.setCreateTime(dto.getCreateDate());
+//            i.getUpdateBy().setId(userDTO.getId());
+            i.setUpdateTime(dto.getUpdateDate());
+            i.setDelFlag(0);
+            i.setUrl(dto.getUrl());
+            //文件类型处理
+            i.setType(dto.getType());
+            i.setAttachmentId(attId);
+            i.setModuleType(dto.getProjectId());
+            i.setAttachmentName(dto.getAttachmentName());
+            i.setAttachmentFlag("ccpmWorkClient");
+            if (StringUtils.isNotBlank(dto.getFileSize())){
+                i.setFileSize(dto.getFileSize());
+            }
+            i.setSort(j);
+            Map<String,String> map = new HashMap<>();
+            String workAttachment = JSON.toJSONString((i));
+            UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByLoginNameNotTenantId(dto.getCreateName());
+            if (userDTO != null){
+                String userDTOInfo = JSON.toJSONString((userDTO));
+                map.put("userDTO",userDTOInfo);
+            }
+            map.put("workAttachment",workAttachment);
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
+            j++;
+        }
+    }
+
 
     //获取ccpm中所有的客户信息
     public void getAllClient( List<UserDTO> allUserInfo){
 
         Object clientList = flowRequest.getClientList();
-        System.out.println(clientList);
+
         if (ObjectUtils.isNotEmpty(clientList)){
             List<WorkClientInfoVo> workClientInfoVos = JSONArray.parseArray(clientList.toString(), WorkClientInfoVo.class);
             //删除本系统中所有之前新增的ccpm系统中的数据
@@ -620,6 +959,7 @@ public class CcpmList  {
                     }
 
                 }
+                cwWorkClientBase.setNo(workClientInfoVo.getNumber()); //客户编号
                 cwWorkClientBase.setName(workClientInfoVo.getName());//客户名称
                 cwWorkClientBase.setIsUscCode(workClientInfoVo.getHasUscc()+"");//是否有统一社会信用代码
                 cwWorkClientBase.setUscCode(workClientInfoVo.getUscCode());//统一社会信用代码

+ 11 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/controller/Transport.java

@@ -4,8 +4,10 @@ import com.jeeplus.finance.ccpm.service.TranspondService;
 import com.jeeplus.finance.ccpm.vo.TranspondDTO;
 import com.jeeplus.finance.invoice.service.CwFinanceInvoiceService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.HashMap;
 import java.util.Map;
 
 @RestController
@@ -36,6 +38,15 @@ public class Transport {
         return res;
     }
 
+    /**
+     * 检测服务是否启动
+     */
+    @GetMapping("checkConnect")
+    public ResponseEntity<Map<String, String>> checkConnect() {
+        Map<String, String> response = new HashMap<>();
+        response.put("message", "success");
+        return ResponseEntity.ok(response);
+    }
 
 
 

+ 19 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/service/ccpm/FlowRequest.java

@@ -26,7 +26,25 @@ public class FlowRequest {
      * @return
      */
     public Object getProjectList(){
-        Object result= restTemplateService.getSzCCPM("/a/ccpmList/ccpmList/getAllProject");
+        Object result= restTemplateService.postSzCCPM("/a/ccpmList/ccpmList/getAllProject");
+        return result;
+    }
+
+    /**
+     * 获取质量复核信息
+     * @return
+     */
+    public Object getReviewNew(){
+        Object result= restTemplateService.postSzCCPM("/a/ccpmList/ccpmList/getAllReview");
+        return result;
+    }
+
+    /**
+     * 获取质量复核信息
+     * @return
+     */
+    public Object getAllRuralProjectcontentinfo(){
+        Object result= restTemplateService.postSzCCPM("/a/ccpmList/ccpmList/getAllRuralProjectcontentinfo");
         return result;
     }
 

+ 2 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/ProjectReportData.java

@@ -20,7 +20,7 @@ import java.util.List;
  * @version 2018-06-05
  */
 @Data
-public class ProjectReportData extends BaseEntity {
+public class ProjectReportDataVo extends BaseEntity {
 
 	private static final long serialVersionUID = 1L;
 	private String companyId;		// 公司id
@@ -62,6 +62,7 @@ public class ProjectReportData extends BaseEntity {
 	private Date createStartDate;
 	private Date createEndDate;
 	private Date createDate;
+	private Date updateDate;
 	private String typeName;
 	private String projectName;
 	private String projectNum;

+ 47 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/ProjectTemplateInfoVo.java

@@ -0,0 +1,47 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.finance.ccpm.vo;
+
+
+
+import com.jeeplus.core.domain.TreeEntity;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 复核标准Entity
+ * @author ssrh
+ * @version 2018-06-01
+ */
+@Data
+public class ProjectTemplateInfoVo extends TreeEntity<ProjectTemplateInfoVo> {
+
+	private static final long serialVersionUID = 1L;
+	private String attachName;		// 名称
+	private String indexNum;		// 排序
+	private String attachTypes;		// 附件类型
+	private Integer attachLength;	// 附件大小(单位:M)
+	private String parentIds;		// 所有父ID
+	private String parentId;		// 父ID
+	private String companyId;   //公司id
+	private String parentName;
+	private List<WorkClientAttachment> workAttachments;
+	private String projectId;
+	private String attachId;
+	private Integer mustFlag;   //判断是否是必填项(1:必填,0:非必填)
+	private Integer requiredStage;   //必填阶段(1.上传报告,2.归档)
+	private Integer flag;
+	private String url;
+	private String temporaryUrl;		// 附件地址(临时地址)
+
+	private Integer fileFlag;   //判断是否有文件(1:有文件信息,0:无文件)
+
+	private String collectFlag;	//判断是否收藏
+	private String fileSize;	//f附件大小
+	private String description;	//文件描述
+	private String materialProperties;	//资料性质
+
+
+}

+ 2 - 2
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/RuralProjectRecordsVo.java

@@ -3,7 +3,6 @@
  */
 package com.jeeplus.finance.ccpm.vo;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.google.common.collect.Lists;
 import com.jeeplus.core.domain.BaseEntity;
 
@@ -71,7 +70,7 @@ public class RuralProjectRecordsVo extends BaseEntity {
 	private Double estimateTotalFees;  //预估总投资额
 	private String createName;
 	private Date createDate;
-	private ProjectReportData reportData;
+	private ProjectReportDataVo projectReportDataVo;
 	private String bzshbUserName; //总审用户id
 
 //	private ProjectReportData reportData;//报告
@@ -349,6 +348,7 @@ public class RuralProjectRecordsVo extends BaseEntity {
 	private String createNamePhone;
 	private String leaderNamePhone;
 	private String projectMasterPhone;
+	private String remarks;
 
 
 	private List<String> civilProjectList = Lists.newArrayList();

+ 51 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/RuralProjectcontentinfoVo.java

@@ -0,0 +1,51 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.finance.ccpm.vo;
+
+
+
+
+import com.jeeplus.core.domain.TreeEntity;
+import com.jeeplus.sys.service.dto.WorkAttachmentInfoDTO;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 工作内容管理Entity
+ * @author yangfan
+ * @version 2018-06-04
+ */
+@Data
+public class RuralProjectcontentinfoVo extends TreeEntity<RuralProjectcontentinfoVo> {
+
+	private static final long serialVersionUID = 1L;
+	private RuralProjectRecordsVo project;		// 项目id
+	private String companyId;		// 公司id
+	private String officeId;		// 部门id
+	private String name;		// 名称
+	private String type;		// 类型
+	private String dictType;		// 字典类型
+	private String infoId; //详情页id
+	private ProjectReportDataVo projectReportData;
+	private ProjectReportDataVo projectReportDataTwo;
+	private String view;
+	private List<WorkAttachmentInfoDTO> workAttachments;
+	private String edit;
+	private String linkId;//引用ID
+	private String home;
+	private String change;
+	private String projectId;   //项目id
+
+	private List<ProjectTemplateInfoVo> fileAttachmentList;   //报告文件
+	private List<ProjectTemplateInfoVo> fileGistdataList;   //依据性文件
+	private List<ProjectTemplateInfoVo> fileOtherList;   //其他文件
+
+	private String attachmentProjectSort;   //项目类别
+	private String projectLevel; //项目等级
+	private String projectType; //项目等级
+
+	private String reportedId;
+
+}

+ 1 - 7
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/RuralReportConsultant.java

@@ -15,15 +15,9 @@ public class RuralReportConsultant {
     private String zhucezigezhID;  //注册/资格证号
     private String zhucezigezhKey;  //注册/资格证号key键
     private String zhucezigezh;  //资格证
-    private String major;           //专业
     private String wordnr;          //本人复制内容
-    private String projectId;       //项目id
     private String auditOpinion;          //审核意见
     private String role;          //角色
-    private String roleFlag;          //角色判定
-    private String idCard;          //身份证号
-    private Double wcyysrbl;        //完成营业收入比例( %)
-    private Double wcyysr;          //完成营业收入(元)
-    private String signatureStampUrl;          //签字章
+    private String id;
 
    }

+ 2 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/ccpm/vo/WorkClientAttachment.java

@@ -39,6 +39,8 @@ public class WorkClientAttachment extends BaseEntity {
 	private String divIdType;//判定条件
 
 	private Date beginDate;
+	private Date createDate;
+	private Date updateDate;
 	private Date endDate;
 
 }

+ 13 - 11
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/config/ConnectionService.java

@@ -4,6 +4,7 @@ package com.jeeplus.finance.config;
 import com.jeeplus.common.redis.RedisUtils;
 import com.jeeplus.finance.ccpm.controller.CcpmList;
 import com.jeeplus.finance.utils.Global;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.HttpMethod;
@@ -17,6 +18,7 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
 @Service
+@Slf4j
 public class ConnectionService {
 
     @Autowired
@@ -30,7 +32,7 @@ public class ConnectionService {
 
     // 启动时调用,开始定期检查连接
     public void startCheckingConnection() {
-        scheduler.scheduleAtFixedRate(this::checkConnection, 0, 5, TimeUnit.SECONDS);
+        scheduler.scheduleAtFixedRate(this::checkConnection, 0,  1, TimeUnit.HOURS);
     }
 
     private void checkConnection() {
@@ -42,21 +44,21 @@ public class ConnectionService {
             Map<String, String> responseBody = forObject.getBody();
             String message = responseBody.get("message");
             if ("success".equals(message)) {
-                if (!isConnected) {
-                    RedisUtils.getInstance().set("connect", "true", 24); // 存储连接状态到 Redis
-                    System.out.println("Connected successfully.");
-                    try {
+//                if (!isConnected) {
+//                    RedisUtils.getInstance().set("connect", "true", 24); // 存储连接状态到 Redis
+//                    System.out.println("Connected successfully.");
+//                    try {
                         ccpmList.getCcpmMethod(); // 调用 initMethod()
-                    } catch (Exception e) {
-                        System.err.println("Error during initMethod execution: " + e.getMessage());
-                    }
-                }
-                isConnected = true; // 更新连接状态
+//                    } catch (Exception e) {
+//                        System.err.println("Error during initMethod execution: " + e.getMessage());
+//                    }
+//                }
+//                isConnected = true; // 更新连接状态
             }
         } catch (Exception e) {
             isConnected = false; // 连接失败,更新状态
             RedisUtils.getInstance().set("connect", "false", 24); // 存储连接失败状态到 Redis
-            System.out.println("Connection failed: " + e.getMessage());
+            log.error("Connection failed: " + e.getMessage());
         }
     }
 

+ 2 - 2
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/config/RestTemplateConfig.java

@@ -28,8 +28,8 @@ public class RestTemplateConfig {
     @Bean
     public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
         SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
-        factory.setConnectTimeout(150000); // 连接超时时间 (两端连接时间) 15秒
-        factory.setReadTimeout(50000); // 访问超时时间 (建立连接后从另一端读取资源所用时间) 5秒
+        factory.setConnectTimeout(1500000); // 连接超时时间 (两端连接时间) 15秒
+        factory.setReadTimeout(5000000); // 访问超时时间 (建立连接后从另一端读取资源所用时间) 5秒
         // 设置代理
         //factory.setProxy(null);
         return factory;

+ 2 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/mapper/ContractParticipantMapper.java

@@ -19,4 +19,6 @@ public interface ContractParticipantMapper extends BaseMapper<ContractParticipan
 
 
     List<ContractParticipant> findByInfoId(String infoID);
+
+    void deleteByTenantId();
 }

+ 4 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/mapper/xml/ContractParticipantMapper.xml

@@ -8,4 +8,8 @@
         select customer_name as customerName,customer_no as customerNo from cw_work_contract_participant
         where contract_info_id = #{infoID}
     </select>
+
+    <delete id="deleteByTenantId">
+        delete from cw_work_contract_participant where tenant_id = 'ccpm'
+    </delete>
 </mapper>

+ 2 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectDict/mapper/ProjectDictMapper.java

@@ -36,4 +36,6 @@ public interface ProjectDictMapper extends BaseMapper<ProgramProjectDict> {
      * @return
      */
     List<WorkAttachmentInfoDTO> getFileListByAttachmentAndModuleType(@Param("attachmentId")String attachmentId , @Param("moduleType")String moduleType);
+
+    String findByName(@Param("attachName")String attachName,@Param("sort")String sort,@Param("level")String level,@Param("type")String type);
 }

+ 11 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectDict/mapper/xml/ProjectDictMapper.xml

@@ -54,6 +54,17 @@
             ORDER BY b.sort
     </select>
 
+    <select id="findByName" resultType="string">
+        SELECT
+        a.id
+        FROM
+        program_project_dict a
+        LEFT JOIN program_file_dict b ON a.file_id = b.id
+        WHERE
+        a.del_flag = 0
+        and b.name = #{attachName} and b.del_flag = 0 AND a.attachment_project_sort = #{sort} AND a.project_level = #{level} AND a.attachment_project_type = #{type}
+    </select>
+
     <select id="getFileParentList" resultType="com.jeeplus.finance.fileDict.domain.ProgramFileDict">
         SELECT
         *

+ 2 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectRecords/domain/CwProjectClientInfo.java

@@ -19,6 +19,8 @@ public class CwProjectClientInfo {
 
     private String clientId;        //客户id
 
+    private String tenantId;
+
     @TableField(exist = false)
     private String clientNumber;    //客户编号
 

+ 1 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectRecords/mapper/CwProjectClientInfoMapper.java

@@ -12,6 +12,7 @@ import org.apache.ibatis.annotations.Mapper;
 //@InterceptorIgnore(tenantLine = "true")
 public interface CwProjectClientInfoMapper extends BaseMapper<CwProjectClientInfo> {
 
+    void deleteByTenantId();
 }
 
 

+ 4 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectRecords/mapper/xml/CwProjectClientInfoMapper.xml

@@ -13,4 +13,8 @@
         project_id,
         client_id
     </sql>
+
+    <delete id="deleteByTenantId">
+        delete from cw_project_client_info where tenant_id = 'ccpm'
+    </delete>
 </mapper>

+ 10 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/controller/CwProjectReportController.java

@@ -12,6 +12,9 @@ import com.jeeplus.common.excel.ExcelOptions;
 import com.jeeplus.common.excel.annotation.ExportMode;
 import com.jeeplus.common.redis.RedisUtils;
 import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.finance.contractRegistration.domain.ContractInfo;
+import com.jeeplus.finance.contractRegistration.mapper.ContractInfoMapper;
+import com.jeeplus.finance.contractRegistration.service.ContractInfoService;
 import com.jeeplus.finance.invoice.util.EasyPoiUtil;
 import com.jeeplus.finance.invoice.util.FreemarkerUtil;
 import com.jeeplus.finance.invoice.util.SignaturePostUtil;
@@ -83,6 +86,9 @@ public class CwProjectReportController {
     @Autowired
     private IFlowableApi flowTaskService;
 
+    @Autowired
+    private ContractInfoService service;
+
     @Resource
     private ProjectDictService projectDictService;
     @Resource
@@ -189,6 +195,10 @@ public class CwProjectReportController {
         IPage<CwProjectReportData> result = new Page<CwProjectReportData>();
         result = projectReportService.findList (page,projectReportData);
         result.getRecords().stream().forEach(i -> {
+            if (StringUtils.isBlank(i.getClientName()) && StringUtils.isNotBlank(i.getContractId())){
+                ContractInfo contractInfo = service.findById(i.getContractId());
+                i.setClientName(contractInfo.getClientContacts());
+            }
 
             //当项目经理是跨租户的人员时,则特殊处理
             if (StringUtils.isBlank(i.getProjectMasterName())){

+ 2 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/mapper/CwProjectReviewNewTeamMapper.java

@@ -22,4 +22,6 @@ public interface CwProjectReviewNewTeamMapper extends BaseMapper<CwProjectReview
 
     @InterceptorIgnore(tenantLine = "true")
     List<CwProjectReviewNewTeam> selectByReportId(@Param("reportId") String reportId );
+
+    void deleteByTenantId();
 }

+ 3 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/mapper/xml/CwProjectReviewNewTeamMapper.xml

@@ -51,5 +51,7 @@
 --         END,
         a.detail_number ASC;
     </select>
-
+    <delete id="deleteByTenantId">
+        delete from cw_project_report_review_new_team where tenant_id = 'ccpm'
+    </delete>
 </mapper>

+ 18 - 2
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/utils/RestTemplateService.java

@@ -11,12 +11,14 @@ import org.apache.commons.lang.StringUtils;
 import org.apache.commons.httpclient.HttpClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.ParameterizedTypeReference;
+import org.springframework.core.io.InputStreamResource;
 import org.springframework.http.*;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
 import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.nio.charset.Charset;
 import java.util.*;
@@ -73,6 +75,17 @@ public class RestTemplateService {
     }
 
     /**
+     * 访问post接口 - CCPM 系统
+     * @param path 接口路径
+     * @param token token
+     * @param paramMap 请求参数-路径后
+     * @return
+     */
+    public Object postSzCCPM(String path) {
+        return httpSzRequest(HttpMethod.POST, null, Global.getConfig("CCPM_PATH"), path,"ccpm");
+    }
+
+    /**
      * 访问get接口 - CCPM 系统
      * @param path 接口路径
      * @param token token
@@ -150,8 +163,11 @@ public class RestTemplateService {
         try {
 
             String url = hostAddress + path;
-
-            ResponseEntity<String> forObject = restTemplate.exchange(url,method,null,String.class);
+            HttpHeaders headers = new HttpHeaders();
+            headers.add("Accept", MediaType.ALL_VALUE);
+            headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
+            HttpEntity<Object> entity = new HttpEntity<>(headers);
+            ResponseEntity<String> forObject = restTemplate.exchange(url,method,entity,String.class);
             res = forObject.getBody();
         } catch (Exception e) {
             System.out.println("远程调用失败");

+ 1 - 1
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -566,7 +566,7 @@ select a.id, a.company_id as "companyDTO.id", a.office_id as "officeDTO.id", a.l
         AND post.del_flag = 0
     </select>
     <select id="getAllUserInfo" resultType="com.jeeplus.sys.service.dto.UserDTO">
-        select distinct id,name,mobile from sys_user where del_flag = '0'
+        select distinct id,name,mobile,office_id as "officeDTO.id" from sys_user where del_flag = '0'
     </select>
     <select id="getHasUser" resultType="java.lang.String">
         SELECT DISTINCT