diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java index 7b2c8d5c..6a2b58c6 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java @@ -37,6 +37,10 @@ public class ProjectCommon { * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目,6:证书) */ public final static String PROJECT_TYPE6 = "6"; + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目,6:证书,7: 起草组项目) + */ + public final static String PROJECT_TYPE7 = "7"; /** * 来源(1:收入合同,2:打包管理) */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupServiceImpl.java index 4107024b..493ae75d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupServiceImpl.java @@ -1,17 +1,28 @@ package com.jero.drafting.service.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; +import com.jero.common.common.ProjectCommon; +import com.jero.common.dto.PaySendContactsMessageDTO; import com.jero.common.exception.JeroBootException; +import com.jero.common.service.ContractCreateProjectSendMessageService; import com.jero.common.service.RolePermissionService; import com.jero.common.system.vo.LoginUser; +import com.jero.company.entity.PayContactsManagement; +import com.jero.company.service.IPayContactsManagementService; import com.jero.drafting.entity.PayDraftingGroup; +import com.jero.drafting.entity.PayDraftingGroupResearchProject; import com.jero.drafting.entity.PayDraftingGroupSubItem; +import com.jero.drafting.entity.PayDraftingGroupSubItemContacts; import com.jero.drafting.mapper.PayDraftingGroupMapper; +import com.jero.drafting.mapper.PayDraftingGroupSubItemContactsMapper; +import com.jero.drafting.service.IPayDraftingGroupResearchProjectService; import com.jero.drafting.service.IPayDraftingGroupService; import com.jero.drafting.service.IPayDraftingGroupSubItemService; import com.jero.drafting.vo.PayDraftingGroupVo; @@ -21,22 +32,30 @@ import com.jero.meeting.service.IPayMeetingService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysUserServiceImpl; +import com.jero.project.common.PayProjectCommon; +import com.jero.project.entity.PayResearchProject; import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroupSubItem; +import com.jero.project.entity.PayWorkingGroupSubItemContacts; +import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper; import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.project.vo.PayWorkingGroupVO; +import com.jero.temporary.entity.PayCompanyManagementTemporary; +import com.jero.temporary.entity.PayContactsManagementTemporary; +import com.jero.temporary.service.IPayCompanyManagementTemporaryService; +import com.jero.temporary.service.IPayContactsManagementTemporaryService; +import com.sun.xml.bind.v2.TODO; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Objects; +import java.math.BigDecimal; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -64,6 +83,20 @@ public class PayDraftingGroupServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.like(PayDraftingGroup::getDraftingGroupProject,str); List listPayDraftingGroup = list(queryWrapper); @@ -236,13 +269,108 @@ public class PayDraftingGroupServiceImpl extends ServiceImpl researchProjectQueryWrapper = new QueryWrapper<>(); + researchProjectQueryWrapper.eq("drafting_group_id",payDraftingGroup.getId()); + List list = payDraftingGroupResearchProjectService.list(researchProjectQueryWrapper); + if(ObjectUtils.isNotEmpty(list)){ + for(PayDraftingGroupResearchProject payResearchProject:list){ + payResearchProject.setDraftingGroupId(payDraftingGroupOld.getId()); + payResearchProject.setId(null); + payDraftingGroupResearchProjectService.save(payResearchProject); + //复制在研关联文件表 + if(StringUtils.isNotBlank(payResearchProject.getFiles())){ + String files = payResearchProject.getFiles(); + List filesList = Arrays.asList(files.split(",")); + for(String s:filesList){ + UUID uuid = UUID.randomUUID(); + payDraftingGroupResearchProjectService.saveFile(uuid.toString(),s,payResearchProject.getId()); + } + } + } + } + // 拷贝起草组成员 + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(PayDraftingGroupSubItem::getDraftingGroupId,payDraftingGroup.getId()); + List listPayDraftGroupSubItem = payDraftingGroupSubItemService.list(query); + if(!CollectionUtils.isEmpty(listPayDraftGroupSubItem)){ + listPayDraftGroupSubItem.forEach(p->{ + String draftingGroupSubItemId = p.getId(); + // 添加企业临时数据 + PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getById(p.getChargeCompanyTemporaryId()); + if(Objects.isNull(payCompanyManagementTemporary)){ + payCompanyManagementTemporary = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(p.getChargeCompanyId()); + }else{ + payCompanyManagementTemporary.setCompanyId(payCompanyManagementTemporary.getCompanyId()); + payCompanyManagementTemporary.setId(null); + payCompanyManagementTemporaryService.save(payCompanyManagementTemporary); + } + //暂存历史联系人 + List subItemContacts = payDraftingGroupSubItemContactsMapper.getSubItemContacts(draftingGroupSubItemId); + p.setPayDraftingGroupSubItemContactsList(subItemContacts); + + p.setChargeCompanyTemporaryId(payCompanyManagementTemporary.getId()); + p.setId(null); + p.setCreateBy(null); + p.setCreateTime(null); + p.setUpdateBy(null); + p.setUpdateTime(null); + p.setDraftingGroupId(payDraftingGroupOld.getId()); + }); + payDraftingGroupSubItemService.saveBatch(listPayDraftGroupSubItem); + //拷贝起草组成员联系人 + listPayDraftGroupSubItem.forEach(p->{ + List itemContactsList = p.getPayDraftingGroupSubItemContactsList(); + for (PayDraftingGroupSubItemContacts subItemContacts : itemContactsList) { + PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(subItemContacts.getContactsTemporaryId()); + if(Objects.isNull(payContactsManagementTemporary)){ + payContactsManagementTemporary = payContactsManagementTemporaryService.insertContactsManagementTemporary(subItemContacts.getContactsId()); + }else{ + payContactsManagementTemporary.setId(null); + payContactsManagementTemporary.setCompanyId(p.getChargeCompanyTemporaryId()); + payContactsManagementTemporaryService.save(payContactsManagementTemporary); + } + + subItemContacts.setId(null); + subItemContacts.setDraftingGroupId(p.getDraftingGroupId()); + subItemContacts.setContactsTemporaryId(payContactsManagementTemporary.getId()); + subItemContacts.setDraftingGroupSubId(p.getId()); + payDraftingGroupSubItemContactsMapper.insert(subItemContacts); + } + }); + +// TODO 待确定发送消息的path路径 +// listPayDraftGroupSubItem.forEach(p->{ +// JSONObject json = new JSONObject(); +// json.put("type", ProjectCommon.PROJECT_TYPE7); +// json.put("DraftingGroupId",p.getDraftingGroupId()); +// json.put("projectId",p.getId()); +// json.put("path","/workTeam/WorkTeamDetail"); +// //新建项目 给企业联系人发消息 +// List itemContactsList = p.getPayDraftingGroupSubItemContactsList(); +// for (PayDraftingGroupSubItemContacts subItemContacts : itemContactsList) { +// PayContactsManagement payContactsManagement = payContactsManagementService.getById(subItemContacts.getContactsId()); +// if (!Objects.isNull(payContactsManagement)) { +// PaySendContactsMessageDTO paySendContactsMessageDTO = new PaySendContactsMessageDTO(); +// paySendContactsMessageDTO.setProjectName(payDraftingGroupOld.getDraftingGroupProject()); +// paySendContactsMessageDTO.setProjectId(p.getId()); +// paySendContactsMessageDTO.setEmail(payContactsManagement.getEmail()); +// paySendContactsMessageDTO.setUserId(payDraftingGroupOld.getPrincipalIdA()); +// paySendContactsMessageDTO.setPhone(payContactsManagement.getPhone()); +// paySendContactsMessageDTO.setFlag(ProjectCommon.FLAG0); +// paySendContactsMessageDTO.setJson(json); +// contractCreateProjectSendMessageService.createProjectSendMessageToContactsService(paySendContactsMessageDTO); +// } +// } +// }); + } } }