update 功能安全中心 资料分发

This commit is contained in:
lijiarao
2024-07-05 11:33:49 +08:00
parent e8fcba719f
commit 285e58987e
4 changed files with 149 additions and 5 deletions
@@ -46,6 +46,12 @@ public class SafetyCenterSubitemContacts {
@TableField(value = "company_id")
@ApiModelProperty(value="成员单位id")
private String companyId;
/**
* 成员单位名称
*/
@TableField(exist = false)
@ApiModelProperty(value="成员单位名称")
private String companyName;
/**
* 企业联系人id
@@ -54,6 +60,12 @@ public class SafetyCenterSubitemContacts {
@ApiModelProperty(value="企业联系人id")
@Excel(name = "企业联系人",dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
private String contactsId;
/**
* 企业联系人姓名
*/
@TableField(exist = false)
@ApiModelProperty(value="企业联系人姓名")
private String contactsName;
/**
* 备注
@@ -1,12 +1,18 @@
package com.jero.functionalsafetycenter.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.company.controller.PayContactsManagementController;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.functionalsafetycenter.entity.SafetyCenterSubitemContacts;
import com.jero.functionalsafetycenter.mapper.SafetyCenterSubitemContactsMapper;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -16,6 +22,9 @@ import java.util.stream.Collectors;
*/
@Service
public class SafetyCenterSubitemContactsService extends ServiceImpl<SafetyCenterSubitemContactsMapper, SafetyCenterSubitemContacts> {
@Resource
private IPayContactsManagementService contactsManagementService;
public void deleteBySubitemId(String subitemId){
LambdaQueryWrapper<SafetyCenterSubitemContacts> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SafetyCenterSubitemContacts::getSubitemId,subitemId);
@@ -39,4 +48,27 @@ public class SafetyCenterSubitemContactsService extends ServiceImpl<SafetyCenter
wrapper.eq(SafetyCenterSubitemContacts::getContactsId,contactsId);
return count(wrapper) > 0;
}
public List<SafetyCenterSubitemContacts> getContactsInfo(String projectId) {
LambdaQueryWrapper<SafetyCenterSubitemContacts> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SafetyCenterSubitemContacts::getProjectId,projectId);
wrapper.orderByDesc(SafetyCenterSubitemContacts::getSubitemId);
wrapper.orderByAsc(SafetyCenterSubitemContacts::getOrderNum);
List<SafetyCenterSubitemContacts> contactsList = this.list(wrapper);
if (contactsList.isEmpty()){
return contactsList;
}
List<String> contactsIdList = contactsList.stream().map(SafetyCenterSubitemContacts::getContactsId).distinct().collect(Collectors.toList());
List<PayContactsManagement> payContactsManagements = contactsManagementService.listByIds(contactsIdList);
Map<String, PayContactsManagement> collectMap = payContactsManagements.stream().collect(Collectors.toMap(PayContactsManagement::getId, payContactsManagement -> payContactsManagement));
for (SafetyCenterSubitemContacts contacts : contactsList) {
String contactsId = contacts.getContactsId();
PayContactsManagement payContactsManagement = collectMap.get(contactsId);
contacts.setContactsName(payContactsManagement.getName());
contacts.setCompanyName(payContactsManagement.getCompanyName());
}
return contactsList;
}
}
@@ -19,12 +19,15 @@ import com.jero.data.service.IPayCaseCommitteeSubitemService;
import com.jero.data.service.IPayCaseCouncilSubitemService;
import com.jero.drafting.entity.PayDraftingGroupSubItemContacts;
import com.jero.drafting.service.IPayDraftingGroupSubItemContactsService;
import com.jero.functionalsafetycenter.entity.SafetyCenterSubitemContacts;
import com.jero.functionalsafetycenter.service.SafetyCenterSubitemContactsService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.DownloadFileRecord;
import com.jero.project.entity.PayWorkingGroupDistributionRecord;
import com.jero.project.entity.PayWorkingGroupSubItemContacts;
import com.jero.project.enums.ProjectTypeEnum;
import com.jero.project.service.IPayWorkingGroupDistributionRecordService;
import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
@@ -70,6 +73,8 @@ public class PayWorkingGroupDistributionRecordController extends JeroController<
private IPayWorkingGroupSubItemContactsService payWorkingGroupSubItemContactsService;
@Resource
private IPayDraftingGroupSubItemContactsService payDraftingGroupSubItemContactsService;
@Resource
private SafetyCenterSubitemContactsService safetyCenterSubitemContactsService;
@Resource
private IOSSFileService iossFileService;
@@ -209,10 +214,7 @@ public class PayWorkingGroupDistributionRecordController extends JeroController<
if(StringUtils.isBlank(projectId)){
throw new JeroBootException("项目id不能为空!");
}
if(!Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE_FILE1)
&& !Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE_FILE2)
&& !Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE_FILE3)
&& !Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE_FILE4)){
if(!ProjectTypeEnum.hasValue(projectType)){
return Result.error("项目状态不正确!");
}
List<PayContactsManagement> listData = new ArrayList<>();
@@ -267,7 +269,17 @@ public class PayWorkingGroupDistributionRecordController extends JeroController<
listData.add(payContactsManagement);
});
}
}else if(Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE_FILE5)){
List<SafetyCenterSubitemContacts> list = safetyCenterSubitemContactsService.getContactsInfo(projectId);
if(!CollectionUtils.isEmpty(list)){
list.forEach(p->{
PayContactsManagement payContactsManagement = new PayContactsManagement();
payContactsManagement.setId(p.getContactsId());
payContactsManagement.setName(p.getContactsName());
payContactsManagement.setCompanyName(p.getCompanyName());
listData.add(payContactsManagement);
});
}
}else {
throw new JeroBootException("项目状态不正确!");
}
@@ -30,6 +30,10 @@ import com.jero.drafting.entity.PayDraftingGroup;
import com.jero.drafting.entity.PayDraftingGroupSubItemContacts;
import com.jero.drafting.service.IPayDraftingGroupService;
import com.jero.drafting.service.IPayDraftingGroupSubItemContactsService;
import com.jero.functionalsafetycenter.entity.SafetyCenter;
import com.jero.functionalsafetycenter.entity.SafetyCenterSubitemContacts;
import com.jero.functionalsafetycenter.service.SafetyCenterService;
import com.jero.functionalsafetycenter.service.SafetyCenterSubitemContactsService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.project.common.PayProjectCommon;
@@ -41,6 +45,7 @@ import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -97,6 +102,10 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl<Pa
private IPayDraftingGroupService payDraftingGroupService;
@Resource
private IPayDraftingGroupSubItemContactsService payDraftingGroupSubItemContactsService;
@Resource
private SafetyCenterService safetyCenterService;
@Resource
private SafetyCenterSubitemContactsService safetyCenterSubitemContactsService;
@Override
@@ -232,6 +241,30 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl<Pa
list = listContacts;
}
msg = payDraftingGroup.getDraftingGroupProject();
}else if(Objects.equals(payWorkingGroupDistributionRecord.getProjectType(),PayProjectCommon.PROJECT_TYPE_FILE5)){
SafetyCenter safetyCenter = safetyCenterService.getById(payWorkingGroupDistributionRecord.getProjectId());
if(Objects.isNull(safetyCenter)){
throw new JeroBootException("功能安全中心项目不存在!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!rolePermissionService.getRolePermission("fileMaintenance:distribute")
&& !Objects.equals(safetyCenter.getPrincipalId(),sysUser.getId())){
throw new JeroBootException("资料不可操作!");
}
setRecordBySafetyCenter( payWorkingGroupDistributionRecord,s,listPayWorkingGroupDistributionRecord, byId);
LambdaQueryWrapper<PayContactsManagement> wrapper = new LambdaQueryWrapper<>();
wrapper.in(PayContactsManagement::getId, Arrays.asList(s));
List<PayContactsManagement> listContacts = payContactsManagementService.list(wrapper);
List<PayContactsManagementTemporary> listContactsTemporary = new ArrayList<>();
for (PayContactsManagement contactsManagement : listContacts) {
PayContactsManagementTemporary temporary = new PayContactsManagementTemporary();
BeanUtils.copyProperties(contactsManagement,temporary);
listContactsTemporary.add(temporary);
}
if(!CollectionUtils.isEmpty(listContactsTemporary)){
list = listContactsTemporary;
}
msg = safetyCenter.getProjectName();
}else{
throw new JeroBootException("项目状态不正确!");
}
@@ -484,6 +517,40 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl<Pa
list = listContacts;
}
msg = payDraftingGroup.getDraftingGroupProject();
}else if(Objects.equals(payWorkingGroupDistributionRecord.getProjectType(),PayProjectCommon.PROJECT_TYPE_FILE5)){
SafetyCenter safetyCenter = safetyCenterService.getById(payWorkingGroupDistributionRecord.getProjectId());
if(Objects.isNull(safetyCenter)){
throw new JeroBootException("功能安全中心项目不存在!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!rolePermissionService.getRolePermission("fileMaintenance:distribute")
&& !Objects.equals(safetyCenter.getPrincipalId(),sysUser.getId())){
throw new JeroBootException("资料不可操作!");
}
listPayWorkingGroupDataFile.forEach(p->{
OSSFile byId = iossFileService.getById(p.getFileId());
if(Objects.isNull(byId)){
throw new JeroBootException("没有找到文件!");
}
// 文件路径
String url = byId.getUrl();
listFile.add(path + url);
payWorkingGroupDistributionRecord.setDataId(p.getId());
setRecordByDrafting( payWorkingGroupDistributionRecord,s,listPayWorkingGroupDistributionRecord, byId);
});
LambdaQueryWrapper<PayContactsManagement> wrapper = new LambdaQueryWrapper<>();
wrapper.in(PayContactsManagement::getId, Arrays.asList(s));
List<PayContactsManagement> listContacts = payContactsManagementService.list(wrapper);
List<PayContactsManagementTemporary> listContactsTemporary = new ArrayList<>();
for (PayContactsManagement contactsManagement : listContacts) {
PayContactsManagementTemporary temporary = new PayContactsManagementTemporary();
BeanUtils.copyProperties(contactsManagement,temporary);
listContactsTemporary.add(temporary);
}
if(!CollectionUtils.isEmpty(listContactsTemporary)){
list = listContactsTemporary;
}
msg = safetyCenter.getProjectName();
}else {
throw new JeroBootException("项目状态不正确!");
}
@@ -595,4 +662,25 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl<Pa
});
}
}
private void setRecordBySafetyCenter(PayWorkingGroupDistributionRecord payWorkingGroupDistributionRecord,String[] s,List<PayWorkingGroupDistributionRecord> listPayWorkingGroupDistributionRecord,OSSFile byId){
// 查询工作组成员
LambdaQueryWrapper<SafetyCenterSubitemContacts> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SafetyCenterSubitemContacts::getProjectId,payWorkingGroupDistributionRecord.getProjectId());
wrapper.in(SafetyCenterSubitemContacts::getContactsId,Arrays.asList(s));
List<SafetyCenterSubitemContacts> list = safetyCenterSubitemContactsService.list(wrapper);
if(!CollectionUtils.isEmpty(list)){
list.forEach(p->{
PayWorkingGroupDistributionRecord payWorkingGroupDistributionRecordNew = new PayWorkingGroupDistributionRecord();
payWorkingGroupDistributionRecordNew.setDataId(payWorkingGroupDistributionRecord.getDataId());
payWorkingGroupDistributionRecordNew.setProjectId(payWorkingGroupDistributionRecord.getProjectId());
payWorkingGroupDistributionRecordNew.setProjectType(payWorkingGroupDistributionRecord.getProjectType());
payWorkingGroupDistributionRecordNew.setFileId(byId.getId());
payWorkingGroupDistributionRecordNew.setSubId(p.getSubitemId());
payWorkingGroupDistributionRecordNew.setContactsId(p.getContactsId());
//payWorkingGroupDistributionRecordNew.setContactsName(p.getContactsTemporaryName());
//payWorkingGroupDistributionRecordNew.setTemporaryContactsId(p.getContactsTemporaryId());
listPayWorkingGroupDistributionRecord.add(payWorkingGroupDistributionRecordNew);
});
}
}
}