upgrade
parent
5242a486ed
commit
ade4ccc34d
|
|
@ -1,5 +1,6 @@
|
|||
package org.qinan.safetyeval.app.executor;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.toolkit.Db;
|
||||
|
|
@ -10,13 +11,11 @@ import org.qinan.safetyeval.client.co.*;
|
|||
import org.qinan.safetyeval.client.dto.*;
|
||||
import org.qinan.safetyeval.domain.change.gateway.*;
|
||||
import org.qinan.safetyeval.domain.change.model.*;
|
||||
import org.qinan.safetyeval.domain.constant.QualFilingComplianceCheckEnum;
|
||||
import org.qinan.safetyeval.domain.constant.QualFilingFormStepEnum;
|
||||
import org.qinan.safetyeval.domain.constant.QualFilingReviewResultEnum;
|
||||
import org.qinan.safetyeval.domain.constant.QualFilingStatusEnum;
|
||||
import org.qinan.safetyeval.domain.constant.*;
|
||||
import org.qinan.safetyeval.domain.entity.*;
|
||||
import org.qinan.safetyeval.domain.exception.BizException;
|
||||
import org.qinan.safetyeval.domain.exception.ErrorCode;
|
||||
import org.qinan.safetyeval.domain.gateway.OrgPersonnelGateway;
|
||||
import org.qinan.safetyeval.domain.gateway.QualFilingChangeDetailGateway;
|
||||
import org.qinan.safetyeval.domain.query.PageResult;
|
||||
import org.qinan.safetyeval.domain.query.QualFilingChangeQuery;
|
||||
|
|
@ -25,9 +24,10 @@ import org.qinan.safetyeval.domain.service.QualFilingDomainService;
|
|||
import org.qinan.safetyeval.domain.service.QualFilingReviewDomainService;
|
||||
import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter;
|
||||
import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.QualFilingChangeCountDO;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.QualFilingChangeDetailDO;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.*;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.QualFilingChangeMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.QualFilingMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.QualFilingMaterialMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper;
|
||||
import org.qinan.safetyeval.infrastructure.persistence.mapper.QualFilingPersonnelChangeMapper;
|
||||
import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults;
|
||||
|
|
@ -58,9 +58,15 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
|
|||
@Resource
|
||||
private QualFilingChangeMapper qualFilingChangeMapper;
|
||||
@Resource
|
||||
private QualFilingMapper qualFilingMapper;
|
||||
@Resource
|
||||
private QualFilingMaterialMapper qualFilingMaterialMapper;
|
||||
@Resource
|
||||
private QualFilingPersonnelChangeMapper qualFilingPersonnelChangeMapper;
|
||||
@Resource
|
||||
private QualFilingPersonnelCertMapper qualFilingPersonnelCertMapper;
|
||||
@Resource
|
||||
private OrgPersonnelGateway orgPersonnelGateway;
|
||||
|
||||
@Lazy
|
||||
@Autowired(required = false)
|
||||
|
|
@ -336,9 +342,10 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
|
|||
, List<QualFilingEquipmentChangeE> equipmentEntities, List<QualFilingMaterialChangeE> materialEntities
|
||||
, List<QualFilingPersonnelChangeE> personnelEntities, List<QualFilingPersonnelCertChangeE> personnelCertEntities) {
|
||||
Long changeId = cmd.getOriginChangeFilingId();
|
||||
List<QualFilingChangeDetailDO> details = diffFromCmd(changeId
|
||||
, entity, commitmentEntity, equipmentEntities
|
||||
, materialEntities, personnelEntities, personnelCertEntities);
|
||||
List<QualFilingChangeDetailDO> details = new ArrayList<>();
|
||||
details.addAll(diffBasicInfoDetail(changeId, entity, cmd));
|
||||
details.addAll(diffMaterialDetail(changeId, materialEntities, cmd));
|
||||
details.addAll(diffManagementPersonnelDetail(changeId, personnelEntities, cmd));
|
||||
// 根据changeId先删除原有变更明细,再新增
|
||||
qualFilingChangeDetailGateway.deleteByChangeId(changeId);
|
||||
if (!CollectionUtils.isEmpty(details)) {
|
||||
|
|
@ -574,86 +581,75 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
|
|||
}
|
||||
|
||||
/**
|
||||
* 对比请求数据与已有变更数据,生成变更明细列表
|
||||
* 基本信息变更明细
|
||||
*/
|
||||
private List<QualFilingChangeDetailDO> diffFromCmd(
|
||||
Long changeId, QualFilingChangeEntity newEntity, QualFilingCommitmentChangeE newCommitment,
|
||||
List<QualFilingEquipmentChangeE> newEquipments, List<QualFilingMaterialChangeE> newMaterials,
|
||||
List<QualFilingPersonnelChangeE> newPersonnel, List<QualFilingPersonnelCertChangeE> newCerts) {
|
||||
private List<QualFilingChangeDetailDO> diffBasicInfoDetail(
|
||||
Long changeId, QualFilingChangeEntity newEntity, AggregationSaveOrEditQualFilingChangeCmd cmd) {
|
||||
QualFilingDO filingDO = qualFilingMapper.selectOne(
|
||||
new LambdaQueryWrapper<QualFilingDO>()
|
||||
.select(QualFilingDO::getLegalRepresentative,
|
||||
QualFilingDO::getFulltimeEvaluatorCount,
|
||||
QualFilingDO::getRegisteredEngineerCount)
|
||||
.eq(QualFilingDO::getId, cmd.getQualFilingChangeAddCmd().getFilingId()));
|
||||
if (filingDO == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return diffBasicInfo(changeId, filingDO, newEntity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 材料变更明细
|
||||
*/
|
||||
private List<QualFilingChangeDetailDO> diffMaterialDetail(
|
||||
Long changeId, List<QualFilingMaterialChangeE> newMaterials, AggregationSaveOrEditQualFilingChangeCmd cmd) {
|
||||
List<QualFilingMaterialDO> existingMaterials = qualFilingMaterialMapper.selectList(
|
||||
new LambdaQueryWrapper<QualFilingMaterialDO>()
|
||||
.select(QualFilingMaterialDO::getMaterialType,
|
||||
QualFilingMaterialDO::getAttachmentUrl)
|
||||
.eq(QualFilingMaterialDO::getFilingId, cmd.getQualFilingChangeAddCmd().getFilingId()));
|
||||
return diffMaterial(changeId, existingMaterials, newMaterials);
|
||||
}
|
||||
|
||||
/**
|
||||
* 管理人员变更明细
|
||||
*/
|
||||
private List<QualFilingChangeDetailDO> diffManagementPersonnelDetail(
|
||||
Long changeId, List<QualFilingPersonnelChangeE> newPersonnel,
|
||||
AggregationSaveOrEditQualFilingChangeCmd cmd) {
|
||||
List<QualFilingPersonnelDO> existingMgmtPersonnel = qualFilingPersonnelChangeMapper
|
||||
.listManagementPersonnelByFilingId(cmd.getQualFilingChangeAddCmd().getFilingId());
|
||||
return diffManagementPersonnel(changeId, existingMgmtPersonnel, newPersonnel);
|
||||
}
|
||||
|
||||
/**
|
||||
* 基本信息变更明细(仅对比法定代表人、专职安全评价师数量、注册安全工程师数量)
|
||||
*/
|
||||
private List<QualFilingChangeDetailDO> diffBasicInfo(Long changeId, QualFilingDO exist, QualFilingChangeEntity newEntity) {
|
||||
List<QualFilingChangeDetailDO> details = new ArrayList<>();
|
||||
|
||||
// 基本信息变更
|
||||
QualFilingChangeEntity existingEntity = qualFilingChangeDomainService.get(changeId);
|
||||
if (existingEntity != null && basicInfoChanged(existingEntity, newEntity)) {
|
||||
details.add(stepDetail(changeId, QualFilingFormStepEnum.BASIC_INFO, "备案基本信息变更",
|
||||
summarizeBasic(existingEntity), summarizeBasic(newEntity)));
|
||||
// 法定代表人
|
||||
if (!Objects.equals(exist.getLegalRepresentative(), newEntity.getLegalRepresentative())) {
|
||||
details.add(fieldDetail(changeId, QualFilingFormStepEnum.BASIC_INFO, "备案基本信息变更",
|
||||
"法定代表人",
|
||||
Objects.toString(exist.getLegalRepresentative(), ""),
|
||||
Objects.toString(newEntity.getLegalRepresentative(), "")));
|
||||
}
|
||||
|
||||
// 承诺书变更
|
||||
QualFilingCommitmentChangeE existingCommitment = qualFilingCommitmentChangeGateway.getByFilingId(changeId);
|
||||
if (commitmentChanged(existingCommitment, newCommitment)) {
|
||||
details.add(stepDetail(changeId, QualFilingFormStepEnum.COMMITMENT, "法定代表人承诺书变更",
|
||||
"承诺书", "承诺书已变更"));
|
||||
// 专职安全评价师数量(人)
|
||||
if (!Objects.equals(exist.getFulltimeEvaluatorCount(), newEntity.getFulltimeEvaluatorCount())) {
|
||||
details.add(fieldDetail(changeId, QualFilingFormStepEnum.BASIC_INFO, "备案基本信息变更",
|
||||
"专职安全评价师数量(人)",
|
||||
Objects.toString(exist.getFulltimeEvaluatorCount(), ""),
|
||||
Objects.toString(newEntity.getFulltimeEvaluatorCount(), "")));
|
||||
}
|
||||
|
||||
// 装备清单变更
|
||||
List<QualFilingEquipmentChangeE> existingEquipments = qualFilingEquipmentChangeGateway.listByFilingId(changeId);
|
||||
if (equipmentListChanged(existingEquipments, newEquipments)) {
|
||||
details.add(stepDetail(changeId, QualFilingFormStepEnum.EQUIPMENT, "装备清单变更",
|
||||
"装备清单", "装备清单已变更"));
|
||||
// 注册安全工程师数量(人)
|
||||
if (!Objects.equals(exist.getRegisteredEngineerCount(), newEntity.getRegisteredEngineerCount())) {
|
||||
details.add(fieldDetail(changeId, QualFilingFormStepEnum.BASIC_INFO, "备案基本信息变更",
|
||||
"注册安全工程师数量(人)",
|
||||
Objects.toString(exist.getRegisteredEngineerCount(), ""),
|
||||
Objects.toString(newEntity.getRegisteredEngineerCount(), "")));
|
||||
}
|
||||
|
||||
// 材料清单变更
|
||||
List<QualFilingMaterialChangeE> existingMaterials = qualFilingMaterialChangeGateway.listByFilingId(changeId);
|
||||
if (materialListChanged(existingMaterials, newMaterials)) {
|
||||
details.add(stepDetail(changeId, QualFilingFormStepEnum.MATERIALS, "备案材料上传变更",
|
||||
"材料清单", "材料清单已变更"));
|
||||
}
|
||||
|
||||
// 人员变更
|
||||
List<QualFilingPersonnelChangeE> existingPersonnel = qualFilingPersonnelChangeGateway.listByFilingId(changeId);
|
||||
if (personnelListChanged(existingPersonnel, newPersonnel)) {
|
||||
details.add(stepDetail(changeId, QualFilingFormStepEnum.PERSONNEL, "备案人员管理变更",
|
||||
"人员清单", "人员清单已变更"));
|
||||
}
|
||||
|
||||
// 人员证书变更
|
||||
List<QualFilingPersonnelCertChangeE> existingCerts = qualFilingPersonnelCertChangeGateway.listByFilingId(changeId);
|
||||
if (certListChanged(existingCerts, newCerts)) {
|
||||
details.add(stepDetail(changeId, QualFilingFormStepEnum.PERSONNEL, "备案人员证书变更",
|
||||
"人员证书清单", "人员证书清单已变更"));
|
||||
}
|
||||
|
||||
return details;
|
||||
}
|
||||
|
||||
private boolean basicInfoChanged(QualFilingChangeEntity exist, QualFilingChangeEntity newEntity) {
|
||||
return !Objects.equals(exist.getFilingTerritoryCode(), newEntity.getFilingTerritoryCode())
|
||||
|| !Objects.equals(exist.getBusinessScope(), newEntity.getBusinessScope())
|
||||
|| !Objects.equals(exist.getRegisterAddress(), newEntity.getRegisterAddress())
|
||||
|| !Objects.equals(exist.getOfficeAddress(), newEntity.getOfficeAddress())
|
||||
|| !Objects.equals(exist.getCreditCode(), newEntity.getCreditCode())
|
||||
|| !Objects.equals(exist.getFilingNo(), newEntity.getFilingNo())
|
||||
|| !Objects.equals(exist.getQualCertNo(), newEntity.getQualCertNo())
|
||||
|| !Objects.equals(exist.getLegalRepresentative(), newEntity.getLegalRepresentative())
|
||||
|| !Objects.equals(exist.getLegalPersonPhone(), newEntity.getLegalPersonPhone())
|
||||
|| !Objects.equals(exist.getContactName(), newEntity.getContactName())
|
||||
|| !Objects.equals(exist.getContactPhone(), newEntity.getContactPhone())
|
||||
|| !Objects.equals(exist.getFax(), newEntity.getFax())
|
||||
|| !Objects.equals(exist.getInfoDisclosureUrl(), newEntity.getInfoDisclosureUrl())
|
||||
|| !Objects.equals(exist.getFixedAssetAmount(), newEntity.getFixedAssetAmount())
|
||||
|| !Objects.equals(exist.getArchiveRoomArea(), newEntity.getArchiveRoomArea())
|
||||
|| !Objects.equals(exist.getFulltimeEvaluatorCount(), newEntity.getFulltimeEvaluatorCount())
|
||||
|| !Objects.equals(exist.getRegisteredEngineerCount(), newEntity.getRegisteredEngineerCount())
|
||||
|| !Objects.equals(exist.getWorkplaceArea(), newEntity.getWorkplaceArea())
|
||||
|| !Objects.equals(exist.getUnitIntro(), newEntity.getUnitIntro())
|
||||
|| !Objects.equals(exist.getAttachmentUrl(), newEntity.getAttachmentUrl());
|
||||
}
|
||||
|
||||
private String summarizeBasic(QualFilingChangeEntity entity) {
|
||||
return entity.getFilingUnitName() + "|" + entity.getBusinessScope();
|
||||
}
|
||||
|
||||
private boolean commitmentChanged(QualFilingCommitmentChangeE exist, QualFilingCommitmentChangeE newEntity) {
|
||||
String existSig = exist == null ? "" : exist.getCommitmentContent() + "|" + exist.getLegalRepSignatureUrl()
|
||||
+ "|" + exist.getSignDate() + "|" + exist.getLegalRepPersonnelId() + "|" + exist.getLegalRepName();
|
||||
|
|
@ -673,27 +669,86 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
|
|||
.collect(Collectors.joining(";"));
|
||||
}
|
||||
|
||||
private boolean materialListChanged(List<QualFilingMaterialChangeE> exist, List<QualFilingMaterialChangeE> newList) {
|
||||
return !materialSignature(exist).equals(materialSignature(newList));
|
||||
/**
|
||||
* 材料变更明细(按 materialType 对比 attachmentUrl)。
|
||||
* 原始数据来自 qual_filing_material,新数据来自本次提交,每个材料类型 URL 变更各生成一条明细。
|
||||
*/
|
||||
private List<QualFilingChangeDetailDO> diffMaterial(Long changeId
|
||||
, List<QualFilingMaterialDO> existList, List<QualFilingMaterialChangeE> newList) {
|
||||
List<QualFilingChangeDetailDO> details = new ArrayList<>();
|
||||
// 已有材料: materialType -> attachmentUrl
|
||||
Map<Integer, String> existingMap = safeList(existList).stream()
|
||||
.filter(m -> m.getMaterialType() != null)
|
||||
.collect(Collectors.toMap(QualFilingMaterialDO::getMaterialType,
|
||||
m -> Objects.toString(m.getAttachmentUrl(), ""), (a, b) -> a));
|
||||
// 新材料: materialType -> attachmentUrl
|
||||
Map<Integer, String> newMap = safeList(newList).stream()
|
||||
.filter(m -> m.getMaterialType() != null)
|
||||
.collect(Collectors.toMap(QualFilingMaterialChangeE::getMaterialType,
|
||||
m -> Objects.toString(m.getAttachmentUrl(), ""), (a, b) -> a));
|
||||
// 对比每个 materialType
|
||||
Set<Integer> allTypes = new HashSet<>();
|
||||
allTypes.addAll(existingMap.keySet());
|
||||
allTypes.addAll(newMap.keySet());
|
||||
for (Integer type : allTypes) {
|
||||
String existUrl = existingMap.getOrDefault(type, "");
|
||||
String newUrl = newMap.getOrDefault(type, "");
|
||||
if (!existUrl.equals(newUrl)) {
|
||||
MaterialTypeEnum typeEnum = MaterialTypeEnum.ofCode(type);
|
||||
String typeName = typeEnum != null ? typeEnum.getName() : String.valueOf(type);
|
||||
details.add(fieldDetail(changeId, QualFilingFormStepEnum.MATERIALS, "备案材料上传变更",
|
||||
typeName, existUrl, newUrl));
|
||||
}
|
||||
}
|
||||
return details;
|
||||
}
|
||||
|
||||
private String materialSignature(List<QualFilingMaterialChangeE> list) {
|
||||
return safeList(list).stream()
|
||||
.map(m -> m.getMaterialContent() + ":" + m.getAttachmentUrl())
|
||||
.sorted()
|
||||
.collect(Collectors.joining(";"));
|
||||
}
|
||||
|
||||
private boolean personnelListChanged(List<QualFilingPersonnelChangeE> exist, List<QualFilingPersonnelChangeE> newList) {
|
||||
return !personnelSignature(exist).equals(personnelSignature(newList));
|
||||
}
|
||||
|
||||
private String personnelSignature(List<QualFilingPersonnelChangeE> list) {
|
||||
return safeList(list).stream()
|
||||
/**
|
||||
* 管理人员变更明细。
|
||||
* existList 为从 qual_filing_personnel 关联 org_personnel 查出的管理人员,newList 为本次提交的人员变更。
|
||||
* 每个增加或减少的管理人员各生成一条变更明细。
|
||||
*/
|
||||
private List<QualFilingChangeDetailDO> diffManagementPersonnel(Long changeId
|
||||
, List<QualFilingPersonnelDO> existList, List<QualFilingPersonnelChangeE> newList) {
|
||||
List<QualFilingChangeDetailDO> details = new ArrayList<>();
|
||||
// 已有管理人员: sourcePersonnelId -> personName(SQL已筛选管理人员)
|
||||
Map<Long, String> existingMap = safeList(existList).stream()
|
||||
.filter(p -> p.getSourcePersonnelId() != null)
|
||||
.collect(Collectors.toMap(QualFilingPersonnelDO::getSourcePersonnelId,
|
||||
p -> Objects.toString(p.getPersonName(), ""), (a, b) -> a));
|
||||
// 收集新列表中的 sourcePersonnelId,查询 org_personnel 获取管理人员标识
|
||||
Set<Long> newIds = safeList(newList).stream()
|
||||
.map(QualFilingPersonnelChangeE::getSourcePersonnelId)
|
||||
.map(String::valueOf)
|
||||
.sorted()
|
||||
.collect(Collectors.joining(","));
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toSet());
|
||||
Set<Long> managementIds = new HashSet<>(existingMap.keySet());
|
||||
if (!newIds.isEmpty()) {
|
||||
managementIds.addAll(orgPersonnelGateway.listByIds(newIds).stream()
|
||||
.filter(p -> Boolean.TRUE.equals(p.getTechnicalDirectorFlag())
|
||||
|| Boolean.TRUE.equals(p.getProcessControlLeaderFlag()))
|
||||
.map(OrgPersonnelEntity::getId)
|
||||
.collect(Collectors.toSet()));
|
||||
}
|
||||
// 新管理人员: sourcePersonnelId -> personName
|
||||
Map<Long, String> newMap = safeList(newList).stream()
|
||||
.filter(p -> p.getSourcePersonnelId() != null && managementIds.contains(p.getSourcePersonnelId()))
|
||||
.collect(Collectors.toMap(QualFilingPersonnelChangeE::getSourcePersonnelId,
|
||||
p -> Objects.toString(p.getPersonName(), ""), (a, b) -> a));
|
||||
// 增加
|
||||
for (Long id : newMap.keySet()) {
|
||||
if (!existingMap.containsKey(id)) {
|
||||
details.add(fieldDetail(changeId, QualFilingFormStepEnum.PERSONNEL, "管理人员基本情况汇总表变更",
|
||||
"增加", "", newMap.get(id)));
|
||||
}
|
||||
}
|
||||
// 减少
|
||||
for (Long id : existingMap.keySet()) {
|
||||
if (!newMap.containsKey(id)) {
|
||||
details.add(fieldDetail(changeId, QualFilingFormStepEnum.PERSONNEL, "管理人员基本情况汇总表变更",
|
||||
"减少", existingMap.get(id), ""));
|
||||
}
|
||||
}
|
||||
return details;
|
||||
}
|
||||
|
||||
private boolean certListChanged(List<QualFilingPersonnelCertChangeE> exist, List<QualFilingPersonnelCertChangeE> newList) {
|
||||
|
|
@ -725,6 +780,20 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
|
|||
return detail;
|
||||
}
|
||||
|
||||
private QualFilingChangeDetailDO fieldDetail(Long changeId, QualFilingFormStepEnum step,
|
||||
String content, String itemName, String before, String after) {
|
||||
QualFilingChangeDetailDO detail = new QualFilingChangeDetailDO();
|
||||
detail.setChangeId(changeId);
|
||||
detail.setFormStepCode(step.getCode());
|
||||
detail.setFormStepName(step.getName());
|
||||
detail.setChangeField("field:" + step.getCode() + ":" + itemName);
|
||||
detail.setChangeContent(content);
|
||||
detail.setChangeItemName(itemName);
|
||||
detail.setBeforeValue(before);
|
||||
detail.setAfterValue(after);
|
||||
return detail;
|
||||
}
|
||||
|
||||
private QualFilingChangeCO toCO(QualFilingChangeEntity entity) {
|
||||
if (entity == null) {
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.qinan.safetyeval.client.co.QualFilingPersonnelChangeInfoCO;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.QualFilingPersonnelDO;
|
||||
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualFilingPersonnelChangeDO;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -24,4 +25,13 @@ public interface QualFilingPersonnelChangeMapper extends BaseMapper<QualFilingPe
|
|||
* @return 变更人员信息列表
|
||||
*/
|
||||
List<QualFilingPersonnelChangeInfoCO> getFillingChangePersonInfo(@Param("filingChangeId") Long filingChangeId);
|
||||
|
||||
/**
|
||||
* 根据备案ID查询管理人员(technical_director_flag=1 或 process_control_leader_flag=1),
|
||||
* 只返回 sourcePersonnelId 和 personName。
|
||||
*
|
||||
* @param filingId 备案ID
|
||||
* @return 管理人员列表
|
||||
*/
|
||||
List<QualFilingPersonnelDO> listManagementPersonnelByFilingId(@Param("filingId") Long filingId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -108,4 +108,15 @@
|
|||
and p.delete_enum = 'false'
|
||||
</select>
|
||||
|
||||
<!-- 根据备案ID查询管理人员,只返回 sourcePersonnelId 和 personName -->
|
||||
<select id="listManagementPersonnelByFilingId"
|
||||
resultType="org.qinan.safetyeval.infrastructure.dataobject.QualFilingPersonnelDO">
|
||||
SELECT op.id AS source_personnel_id, op.user_name AS person_name
|
||||
FROM qual_filing_personnel qfp
|
||||
JOIN org_personnel op ON qfp.source_personnel_id = op.id
|
||||
WHERE qfp.filing_id = #{filingId}
|
||||
AND qfp.delete_enum = 'false'
|
||||
AND (op.technical_director_flag = 1 OR op.process_control_leader_flag = 1)
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue