|
@@ -141,6 +141,7 @@ import cn.start.tz.module.pressure2.service.boilertaskorderissuereport.BoilerTas
|
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderitempart.BoilerTaskOrderItemPartService;
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderitempart.BoilerTaskOrderItemPartService;
|
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderitemreport.BoilerTaskOrderItemReportService;
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderitemreport.BoilerTaskOrderItemReportService;
|
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderitemreportversion.BoilerTaskOrderItemReportVersionService;
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderitemreportversion.BoilerTaskOrderItemReportVersionService;
|
|
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreportversionarchiving.BoilerTaskOrderItemReportVersionArchivingDO;
|
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderitemreportversionarchiving.BoilerTaskOrderItemReportVersionArchivingService;
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderitemreportversionarchiving.BoilerTaskOrderItemReportVersionArchivingService;
|
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderoperation.BoilerTaskOrderOperationService;
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderoperation.BoilerTaskOrderOperationService;
|
|
|
import cn.start.tz.module.pressure2.service.boilertaskordersecuritycheck.BoilerTaskOrderSecurityCheckService;
|
|
import cn.start.tz.module.pressure2.service.boilertaskordersecuritycheck.BoilerTaskOrderSecurityCheckService;
|
|
@@ -909,7 +910,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
// 锅炉设备检验,定检存在委托收费项目时,每个设备项都需要生成一份委托检验报告
|
|
// 锅炉设备检验,定检存在委托收费项目时,每个设备项都需要生成一份委托检验报告
|
|
|
- boilerLegalReportService.generateLegalReportForAuto(taskOrderDO.getId());
|
|
|
|
|
|
|
+// boilerLegalReportService.generateLegalReportForAuto(taskOrderDO.getId());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void checkAddReport(String id, BoilerTaskOrderDO taskOrderDO) {
|
|
private void checkAddReport(String id, BoilerTaskOrderDO taskOrderDO) {
|
|
@@ -3088,7 +3089,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
|
|
|
// 锅炉设备检验,定检存在委托收费项目时,需要生成一份委托检验报告
|
|
// 锅炉设备检验,定检存在委托收费项目时,需要生成一份委托检验报告
|
|
|
log.info("[addReportVo][准备调用委托检验报告生成 itemListSize={} orderItemSize={}]",
|
|
log.info("[addReportVo][准备调用委托检验报告生成 itemListSize={} orderItemSize={}]",
|
|
|
orderItemEnterVO.getItemList().size(), orderItemDOS.size());
|
|
orderItemEnterVO.getItemList().size(), orderItemDOS.size());
|
|
|
- boilerLegalReportService.generateLegalReport(orderItemEnterVO, orderItemDOS, itemPartId);
|
|
|
|
|
|
|
+// boilerLegalReportService.generateLegalReport(orderItemEnterVO, orderItemDOS, itemPartId);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -6152,18 +6153,58 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
|
|
|
if (reportDO == null) {
|
|
if (reportDO == null) {
|
|
|
throw exception(REPORT_NOT_EXISTS);
|
|
throw exception(REPORT_NOT_EXISTS);
|
|
|
}
|
|
}
|
|
|
- // 1.1 仅校核通过(200)且未编制报告(报告编制520)状态可撤回
|
|
|
|
|
- if (!Integer.valueOf(200).equals(reportDO.getRecheckStatus())
|
|
|
|
|
- || !TaskOrderStatusEnum.REPORT_PREPARE.getStatus().equals(reportDO.getTaskStatus())) {
|
|
|
|
|
|
|
+ // 1.1 校验报告类型和状态:主报告报告编制(520)、子报告报告办结(800)、独审报告报告编制(520)或报告办结(800)
|
|
|
|
|
+ Integer reportType = reportDO.getReportType();
|
|
|
|
|
+ Integer taskStatus = reportDO.getTaskStatus();
|
|
|
|
|
+ boolean canCancel = false;
|
|
|
|
|
+ if (Integer.valueOf(100).equals(reportType)
|
|
|
|
|
+ && TaskOrderStatusEnum.REPORT_PREPARE.getStatus().equals(taskStatus)) {
|
|
|
|
|
+ // 主报告报告编制
|
|
|
|
|
+ canCancel = true;
|
|
|
|
|
+ } else if (Integer.valueOf(200).equals(reportType)
|
|
|
|
|
+ && (TaskOrderStatusEnum.REPORT_PREPARE.getStatus().equals(taskStatus)
|
|
|
|
|
+ || TaskOrderStatusEnum.REPORT_FINISH.getStatus().equals(taskStatus))) {
|
|
|
|
|
+ // 子报告报告编制或报告办结
|
|
|
|
|
+ canCancel = true;
|
|
|
|
|
+ } else if (Integer.valueOf(300).equals(reportType)
|
|
|
|
|
+ && (TaskOrderStatusEnum.REPORT_PREPARE.getStatus().equals(taskStatus)
|
|
|
|
|
+ || TaskOrderStatusEnum.REPORT_FINISH.getStatus().equals(taskStatus))) {
|
|
|
|
|
+ // 独审报告报告编制或报告办结
|
|
|
|
|
+ canCancel = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!canCancel) {
|
|
|
throw exception(RECHECK_CANNOT_CANCEL);
|
|
throw exception(RECHECK_CANNOT_CANCEL);
|
|
|
}
|
|
}
|
|
|
- // 1.2 仅提交人可撤回
|
|
|
|
|
|
|
+ // 1.2 创建人或提交校核人可撤回
|
|
|
String userId = String.valueOf(getLoginUserId());
|
|
String userId = String.valueOf(getLoginUserId());
|
|
|
- if (!userId.equals(reportDO.getRecheckSubmitId())) {
|
|
|
|
|
|
|
+ if (!userId.equals(reportDO.getRecheckSubmitId()) && !userId.equals(reportDO.getCreator())) {
|
|
|
throw exception(RECHECK_CANCEL_NOT_SUBMITTER);
|
|
throw exception(RECHECK_CANCEL_NOT_SUBMITTER);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 2. 回退报告状态到记录录入
|
|
|
|
|
|
|
+ // 2. 清理校核通过时生成的报表数据(dynamic_tb_ins + dynamic_tb_val)
|
|
|
|
|
+ // refId 规则:record=reportId, report="report_"+reportId, result="result_"+reportId
|
|
|
|
|
+ // 撤回后状态回退到记录录入(500),记录数据需保留,只删除报告和结论的实例
|
|
|
|
|
+ List<String> refIds = new ArrayList<>();
|
|
|
|
|
+ if (StringUtils.isNotBlank(reportDO.getReportTemplateId())) {
|
|
|
|
|
+ refIds.add("report_" + reportId);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotBlank(reportDO.getResultTemplateId())) {
|
|
|
|
|
+ refIds.add("result_" + reportId);
|
|
|
|
|
+ }
|
|
|
|
|
+ List<DynamicTbInsDO> insList = dynamicTbInsService.lambdaQuery()
|
|
|
|
|
+ .in(DynamicTbInsDO::getRefId, refIds).list();
|
|
|
|
|
+ if (insList != null && !insList.isEmpty()) {
|
|
|
|
|
+ List<String> insIds = insList.stream().map(DynamicTbInsDO::getId).collect(Collectors.toList());
|
|
|
|
|
+ // 先删字段值表,再删实例表
|
|
|
|
|
+ dynamicTbValService.lambdaUpdate().in(DynamicTbValDO::getInsId, insIds).remove();
|
|
|
|
|
+ dynamicTbInsService.lambdaUpdate().in(DynamicTbInsDO::getId, insIds).remove();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 3. 清理版本归档记录
|
|
|
|
|
+ versionArchivingService.lambdaUpdate()
|
|
|
|
|
+ .eq(BoilerTaskOrderItemReportVersionArchivingDO::getReportId, reportId).remove();
|
|
|
|
|
+
|
|
|
|
|
+ // 4. 回退报告状态到记录录入,清空所有校核相关字段(含校核通过时设置的auditor/reportTemplateId/resultTemplateId/enterPdfUrl/issueUrl)
|
|
|
BoilerTaskOrderItemReportDO updateDO = new BoilerTaskOrderItemReportDO();
|
|
BoilerTaskOrderItemReportDO updateDO = new BoilerTaskOrderItemReportDO();
|
|
|
updateDO.setId(reportId);
|
|
updateDO.setId(reportId);
|
|
|
updateDO.setRecheckStatus(null);
|
|
updateDO.setRecheckStatus(null);
|
|
@@ -6174,31 +6215,40 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
|
|
|
updateDO.setRecheckDate(null);
|
|
updateDO.setRecheckDate(null);
|
|
|
updateDO.setRecheckReason("");
|
|
updateDO.setRecheckReason("");
|
|
|
updateDO.setReturnReason("");
|
|
updateDO.setReturnReason("");
|
|
|
|
|
+ updateDO.setAuditor("");
|
|
|
|
|
+ updateDO.setReportTemplateId("");
|
|
|
|
|
+ updateDO.setResultTemplateId("");
|
|
|
|
|
+ updateDO.setEnterPdfUrl("");
|
|
|
|
|
+ updateDO.setIssueUrl("");
|
|
|
updateDO.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
|
|
updateDO.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
|
|
|
taskOrderItemReportMapper.updateById(updateDO);
|
|
taskOrderItemReportMapper.updateById(updateDO);
|
|
|
|
|
|
|
|
- // 3. 报告流转记录
|
|
|
|
|
|
|
+ // 5. 报告流转记录
|
|
|
BoilerTaskOrderItemReportRecordDO recordDO = new BoilerTaskOrderItemReportRecordDO();
|
|
BoilerTaskOrderItemReportRecordDO recordDO = new BoilerTaskOrderItemReportRecordDO();
|
|
|
recordDO.setReportId(reportId);
|
|
recordDO.setReportId(reportId);
|
|
|
recordDO.setProcess(TaskOrderStatusEnum.ENTER.getStatus());
|
|
recordDO.setProcess(TaskOrderStatusEnum.ENTER.getStatus());
|
|
|
taskOrderItemReportRecordMapper.insert(recordDO);
|
|
taskOrderItemReportRecordMapper.insert(recordDO);
|
|
|
|
|
|
|
|
- // 4. 回退设备项状态(如果该设备项下没有其他校核通过的报告,回退到记录录入)
|
|
|
|
|
|
|
+ // 6. 回退设备项状态(如果该设备项下没有其他校核通过或审核中的报告,回退到记录录入)
|
|
|
BoilerTaskOrderItemDO taskOrderItemDO = boilerTaskOrderItemMapper.selectById(reportDO.getOrderItemId());
|
|
BoilerTaskOrderItemDO taskOrderItemDO = boilerTaskOrderItemMapper.selectById(reportDO.getOrderItemId());
|
|
|
if (taskOrderItemDO != null
|
|
if (taskOrderItemDO != null
|
|
|
- && taskOrderItemDO.getTaskStatus().equals(TaskOrderStatusEnum.REPORT_PREPARE.getStatus())) {
|
|
|
|
|
- Long approvedCount = taskOrderItemReportMapper.selectCount(
|
|
|
|
|
|
|
+ && taskOrderItemDO.getTaskStatus() > TaskOrderStatusEnum.ENTER.getStatus()) {
|
|
|
|
|
+ Long activeCount = taskOrderItemReportMapper.selectCount(
|
|
|
new LambdaQueryWrapperX<BoilerTaskOrderItemReportDO>()
|
|
new LambdaQueryWrapperX<BoilerTaskOrderItemReportDO>()
|
|
|
.eq(BoilerTaskOrderItemReportDO::getOrderItemId, reportDO.getOrderItemId())
|
|
.eq(BoilerTaskOrderItemReportDO::getOrderItemId, reportDO.getOrderItemId())
|
|
|
.ne(BoilerTaskOrderItemReportDO::getId, reportId)
|
|
.ne(BoilerTaskOrderItemReportDO::getId, reportId)
|
|
|
- .eq(BoilerTaskOrderItemReportDO::getRecheckStatus, 200));
|
|
|
|
|
- if (approvedCount == 0) {
|
|
|
|
|
|
|
+ .gt(BoilerTaskOrderItemReportDO::getTaskStatus, TaskOrderStatusEnum.ENTER.getStatus()));
|
|
|
|
|
+ if (activeCount == 0) {
|
|
|
BoilerTaskOrderItemDO updateItem = new BoilerTaskOrderItemDO();
|
|
BoilerTaskOrderItemDO updateItem = new BoilerTaskOrderItemDO();
|
|
|
updateItem.setId(taskOrderItemDO.getId());
|
|
updateItem.setId(taskOrderItemDO.getId());
|
|
|
updateItem.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
|
|
updateItem.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
|
|
|
boilerTaskOrderItemMapper.updateById(updateItem);
|
|
boilerTaskOrderItemMapper.updateById(updateItem);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // 7. 移除首页待办
|
|
|
|
|
+ indexTodoService.deleteIndexToDO(IndexTodoTypeNameEnum.RECHECK_ORDER_ITEM.getCode(),
|
|
|
|
|
+ null, reportId, 200);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|