|
@@ -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());//统一社会信用代码
|