完成起草组项目的复制

This commit is contained in:
sunzheng
2024-01-09 14:58:22 +08:00
parent a7124c2853
commit ad1b25f176
2 changed files with 146 additions and 14 deletions
@@ -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:打包管理)
*/
@@ -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<PayDraftingGroupMap
private IPayDraftingGroupSubItemService payDraftingGroupSubItemService;
@Resource
private IPayMeetingService payMeetingService;
@Resource
private IPayDraftingGroupService payDraftingGroupService;
@Resource
private IPayDraftingGroupResearchProjectService payDraftingGroupResearchProjectService;
@Resource
private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService;
@Resource
private PayDraftingGroupSubItemContactsMapper payDraftingGroupSubItemContactsMapper;
@Resource
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Resource
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
@Resource
private IPayContactsManagementService payContactsManagementService;
/**
@@ -206,10 +239,10 @@ public class PayDraftingGroupServiceImpl extends ServiceImpl<PayDraftingGroupMap
if(Objects.isNull(payDraftingGroupOld)){
throw new JeroBootException("起草组不存在!");
}
if(payDraftingGroup.getDraftingGroupProject().length() == 50){
if(payDraftingGroupOld.getDraftingGroupProject().length() == 50){
throw new JeroBootException("起草组名称长度为50位,不可复制,请修改之后再复制!");
}
String str = payDraftingGroup.getDraftingGroupProject() + "-副本";
String str = payDraftingGroupOld.getDraftingGroupProject() + "-副本";
LambdaQueryWrapper<PayDraftingGroup> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(PayDraftingGroup::getDraftingGroupProject,str);
List<PayDraftingGroup> listPayDraftingGroup = list(queryWrapper);
@@ -236,13 +269,108 @@ public class PayDraftingGroupServiceImpl extends ServiceImpl<PayDraftingGroupMap
str = str + 1;
}
// payDraftingGroupOld.setId(null);
// payDraftingGroupOld.setDraftingGroupProject(str);
// payDraftingGroupOld.setCreateBy(null);
// payDraftingGroupOld.setCreateTime(null);
// payDraftingGroupOld.setUpdateBy(null);
// payDraftingGroupOld.setUpdateTime(null);
// (payDraftingGroupOld);
// payWorkingGroupService.save(payDraftingGroupOld);
payDraftingGroupOld.setId(null);
payDraftingGroupOld.setDraftingGroupProject(str);
payDraftingGroupOld.setCreateBy(null);
payDraftingGroupOld.setCreateTime(null);
payDraftingGroupOld.setUpdateBy(null);
payDraftingGroupOld.setUpdateTime(null);
setPayDraftingGroup(payDraftingGroupOld);
payDraftingGroupService.save(payDraftingGroupOld);
//拷贝在研项目
QueryWrapper<PayDraftingGroupResearchProject> researchProjectQueryWrapper = new QueryWrapper<>();
researchProjectQueryWrapper.eq("drafting_group_id",payDraftingGroup.getId());
List<PayDraftingGroupResearchProject> 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<String> filesList = Arrays.asList(files.split(","));
for(String s:filesList){
UUID uuid = UUID.randomUUID();
payDraftingGroupResearchProjectService.saveFile(uuid.toString(),s,payResearchProject.getId());
}
}
}
}
// 拷贝起草组成员
LambdaQueryWrapper<PayDraftingGroupSubItem> query = new LambdaQueryWrapper<>();
query.eq(PayDraftingGroupSubItem::getDraftingGroupId,payDraftingGroup.getId());
List<PayDraftingGroupSubItem> 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<PayDraftingGroupSubItemContacts> 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<PayDraftingGroupSubItemContacts> 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<PayDraftingGroupSubItemContacts> 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);
// }
// }
// });
}
}
}