Commit 6b282219 authored by hcing's avatar hcing

feat(tcm): 优化风险报告查询和展示逻辑

parent 88b4a945
......@@ -127,4 +127,7 @@ public class RiskReportDto extends BaseDto {
@ApiModelProperty(value = "风险处置单位")
private List<RiskProcesses> riskProcesses;
@ApiModelProperty(value = "是否显示【确认已处置】")
private Boolean showConfirmDisposal = false;
}
......@@ -63,25 +63,32 @@
select * FROM
(
SELECT * FROM (
-- 风险单位
-- 风险单位 只显示下发整改和整改上报后的
<include refid="baseSelectForRiskReport"/>
FROM tzs_risk_report AS rr1
WHERE rr1."risk_company_code" = #{dto.riskCompanyCode}
WHERE rr1."risk_company_code" = #{dto.riskCompanyCode} AND rr1."current_status" != '草稿' AND
rr1."current_status" != '待处理'
AND EXISTS (
SELECT 1
FROM tzs_risk_processes trp
WHERE rr1."sequence_nbr" = trp."risk_report_seq" AND trp."disposal_way_code" = '10003'
)
UNION
-- 报送单位(排除草稿)
-- 报送单位
<include refid="baseSelectForRiskReport"/>
FROM tzs_risk_report AS rr2
WHERE rr2."report_company_code" = #{dto.reportCompanyCode}
AND rr2."current_status" != '草稿'
WHERE rr2."report_company_code" = #{dto.reportCompanyCode} AND rr2."current_status" != '草稿'
<!-- 处置单位 -->
<if test='dto.unitType != null and dto.unitType != "" and dto.unitType == "supervision"'>
UNION
<include refid="baseSelectForRiskReport"/>
FROM tzs_risk_report AS rr3
WHERE rr3."all_risk_disposal_unit_org_code" like CONCAT('%', #{dto.riskDisposalUnitOrgCode}, '%')
WHERE rr3."current_status" != '草稿' AND rr3."all_risk_disposal_unit_org_code" like CONCAT('%',
#{dto.riskDisposalUnitOrgCode}, '%')
</if>
<!-- 自己的草稿状态 -->
......
......@@ -45,6 +45,7 @@ import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 风险报送表服务实现类
......@@ -110,6 +111,9 @@ public class RiskReportServiceImpl extends BaseService<RiskReport, RiskReport, R
log.info("查询企业的监管机构:{}", enterSeq);
Map<String, String> company = riskReportMapper.getCompanyBySeq(enterSeq);
CompanyModel companyModel = Privilege.companyClient.seleteOne(Long.parseLong(String.valueOf(company.get("companyParentId")))).getResult();
if (ObjectUtils.isEmpty(companyModel)) {
return new JSONObject();
}
return new JSONObject().fluentPut("key", companyModel.getSequenceNbr())
.fluentPut("value", companyModel.getSequenceNbr() + "_" + companyModel.getCompanyName())
.fluentPut("label", companyModel.getCompanyName());
......@@ -171,7 +175,7 @@ public class RiskReportServiceImpl extends BaseService<RiskReport, RiskReport, R
String[] riskDisposalUnit = ObjectUtils.isEmpty(dto.getRiskDisposalUnit()) ? new String[]{} : dto.getRiskDisposalUnit().split("_");
Map<String, String> riskCompanyMap = new HashMap<>();
Map<String, String> riskDisposalUnitMap = new HashMap<>();
if (riskCompany.length > 1 && riskDisposalUnit.length > 1) {
if (riskCompany.length > 0 && riskDisposalUnit.length > 0) {
riskCompanyMap = this.getCompanyBySeq(riskCompany[0]);
riskDisposalUnitMap = this.getCompanyBySeq(riskDisposalUnit[0]);
}
......@@ -214,10 +218,11 @@ public class RiskReportServiceImpl extends BaseService<RiskReport, RiskReport, R
if (!ObjectUtils.isEmpty(sequenceNbr)) {
String riskDisposalUnitOrgCode = riskReportMapper.getRiskDisposalUnitOrgCode(sequenceNbr);
if (!ObjectUtils.isEmpty(riskDisposalUnitOrgCode)) {
String collect = Arrays.stream(riskDisposalUnitOrgCode.split(","))
.filter(item -> !item.equals(defaultOrgCode))
.collect(Collectors.joining(","));
return defaultOrgCode + "," + collect;
return String.join(",", Stream.concat(
Arrays.stream(riskDisposalUnitOrgCode.split(",")),
Stream.of(defaultOrgCode)
).collect(Collectors.toSet())
);
}
}
return defaultOrgCode;
......@@ -278,17 +283,20 @@ public class RiskReportServiceImpl extends BaseService<RiskReport, RiskReport, R
@Override
public RiskReportDto selectRiskDetail(Long sequenceNbr) {
CompanyBo company = getSelectedOrgInfo().getCompany();
RiskReport riskReport = this.baseMapper.selectOne(new LambdaQueryWrapper<RiskReport>()
.select(RiskReport::getSequenceNbr,
RiskReport::getReportNo,
RiskReport::getRiskTypeCode,
RiskReport::getRiskTypeName,
RiskReport::getReportCompanySeq,
RiskReport::getReportCompanyCode,
RiskReport::getReportCompanyName,
RiskReport::getRiskCompanySeq,
RiskReport::getRiskCompanyName,
RiskReport::getRiskDisposalUnitSeq,
RiskReport::getRiskDisposalUnitName,
RiskReport::getRiskDisposalUnitCode,
RiskReport::getRiskDisposalUnitOrgCode,
RiskReport::getAllRiskDisposalUnitOrgCode,
RiskReport::getRiskEquipRecord,
......@@ -306,14 +314,18 @@ public class RiskReportServiceImpl extends BaseService<RiskReport, RiskReport, R
RiskReport::getReportUserPhone
)
.eq(RiskReport::getSequenceNbr, sequenceNbr));
boolean isDisposalUnit = Arrays.stream(Objects.toString(riskReport.getAllRiskDisposalUnitOrgCode(), "").split(",")).anyMatch(item -> company.getOrgCode().equals(item));
List<RiskProcesses> riskProcesses = riskProcessesService.getBaseMapper().selectList(new LambdaQueryWrapper<RiskProcesses>()
// 排除转办的记录
// .ne(RiskProcesses::getDisposalWayCode, DisposalMethodEnums.REPORT_FOR_WARDE.getCode())
// 非处置单位或上报单位 排除转办的记录
.ne(!isDisposalUnit && !riskReport.getReportCompanyCode().equals(company.getCompanyCode()), RiskProcesses::getDisposalWayCode, DisposalMethodEnums.REPORT_FOR_WARDE.getCode())
.eq(RiskProcesses::getRiskReportSeq, sequenceNbr)
.eq(RiskProcesses::getIsDelete, Boolean.FALSE)
.orderByAsc(RiskProcesses::getCreateDate));
RiskReportDto riskReportDto = new RiskReportDto();
BeanUtils.copyProperties(riskReport, riskReportDto);
// 清除单位code,避免泄露信息
riskReportDto.setRiskDisposalUnitCode(null);
riskReportDto.setReportCompanyCode(null);
riskReportDto.setRiskProcesses(riskProcesses);
if (riskReport.getRiskCompanySeq() != null) {
riskReportDto.setRiskCompany(riskReport.getRiskCompanySeq() + "_" + riskReport.getRiskCompanyName());
......@@ -322,6 +334,9 @@ public class RiskReportServiceImpl extends BaseService<RiskReport, RiskReport, R
riskReportDto.setRiskDisposalUnit(riskReport.getRiskDisposalUnitSeq() + "_" + riskReport.getRiskDisposalUnitName());
}
riskReportDto.setRiskMainFile(JSONArray.parseArray(riskReport.getRiskMainFile()));
// 是否显示【确认已处置】
RiskProcesses hasReport = riskProcesses.stream().filter(item -> item.getDisposalWayCode().equals(DisposalMethodEnums.REPORT_DISPOSAL.getCode())).findFirst().orElse(null);
riskReportDto.setShowConfirmDisposal(hasReport != null);
return riskReportDto;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment