Commit cc841257 authored by tianbo's avatar tianbo

feat(jg): 完善历史设备登记功能

- 在 DataDockServiceImpl 中补充设置 paramsDto 的 equipId 字段 - 更新 TaskMessageDto 设置 equipId 来源为 paramsDto-修复 inUseRecordSet 添加元素时使用 equ 中的 record 值- 增加日志输出未更新设备 record 集合 - 在 updateHistoryInfo 方法中新增更新使用信息逻辑,标记设备为已纳管 - 补充更新设备 ES 数据、登记证信息及变更记录信息逻辑 - 新增 saveResumeInfo 方法用于生成和更新履历信息 - 优化地址拼接字段,将 factoryUseSiteStreet 替换为 streetName
parent 7470c019
......@@ -813,13 +813,11 @@ public class XiAnDataDockServiceImpl {
// 等待所有异步任务完成
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
if (!ValidationUtil.isEmpty(importResult)) {
rMap.put("result", "success");
rMap.put("message", "设备已做过后续业务或被编辑,更新失败:" + String.join(",", importResult));
log.info("设备已做过后续业务或被编辑,更新失败:{}", String.join(",", importResult));
rMap.put("message", "设备已做过后续业务或被编辑,更新失败:[" + String.join(",", importResult) + "]");
log.info("设备已做过后续业务或被编辑,更新失败:[{}", String.join(",", importResult) + "]");
return rMap;
}
log.info("设备保存成功");
rMap.put("result", "success");
rMap.put("message", "设备保存成功");
return rMap;
}
......
......@@ -55,4 +55,5 @@ public class EquipRequestParamsDto {
private String startLatitudeLongitude;
private String endLatitudeLongitude;
private String equState;
private String equipId;
}
\ No newline at end of file
......@@ -351,6 +351,6 @@ public interface CommonMapper extends BaseMapper<EquipmentCategory> {
*/
List<Map<String, String>> queryRecentlyReceiveCompanyCode(String record);
Integer countEquipInUseTimesForXaElevator();
Integer countEquipInUseTimesForXaElevator(String record);
}
......@@ -354,7 +354,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private void saveUseInfo(Map<String, Object> equ, String record, String dataSource, String remark,CompanyBo company) {
private IdxBizJgUseInfo saveUseInfo(Map<String, Object> equ, String record, String dataSource, String remark,CompanyBo company) {
log.info("数据===>{}", toJSONString(equ));
IdxBizJgUseInfo oldUseInfo = idxBizJgUseInfoService.lambdaQuery()
.eq(IdxBizJgUseInfo::getRecord, record).one();
......@@ -434,6 +434,7 @@ public class DataDockServiceImpl {
equ.put("isNotXiXian", "0");
equ.put("DATA_SOURCE", useInfo.getDataSource());
}
return useInfo;
}
/**
......@@ -2407,6 +2408,7 @@ public class DataDockServiceImpl {
registrationHistory.setCreateUserId(paramsDto.getExecUserId());
registrationHistory.setRecUserName(paramsDto.getExecUserName());
jgRegistrationHistoryService.save(registrationHistory);
paramsDto.setEquipId(useReg.getProjectContraptionId());
String routePath = this.buildTaskModel(useReg, paramsDto);
jgResumeInfoService.createWithModel(JgResumeInfoDto.builder()
.applyNo(useReg.getApplyNo())
......@@ -2432,9 +2434,9 @@ public class DataDockServiceImpl {
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(jgUseRegistration, taskMessageDto);
taskMessageDto.setRegType("历史登记");
taskMessageDto.setEQU_LIST_CODE(paramsDto.getEquCategoryCode());
taskMessageDto.setEQU_LIST_CODE(paramsDto.getEquListCode());
taskMessageDto.setAuditStatus(null);
taskMessageDto.setEquipId((jgUseRegistration.getProjectContraptionId()));
taskMessageDto.setEquipId((paramsDto.getEquipId()));
modelDto.setModel(taskMessageDto);
// 获取URL配置并匹配对应业务类型和pageType
......@@ -2628,7 +2630,7 @@ public class DataDockServiceImpl {
contextWrapper.apply();
String record = saveElevatorDataInTransaction(equ, "jg_his_xa", null);
if (inUseError.equals(record)) {
inUseRecordSet.add(record);
inUseRecordSet.add(equ.get("record").toString());
} else {
recordSet.add(record);
}
......@@ -2643,6 +2645,7 @@ public class DataDockServiceImpl {
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), recordSet, EquipCreateOrEditEvent.EquipType.equip));
}
});
log.info("未更新设备record:{}", inUseRecordSet);
return inUseRecordSet;
}
......@@ -2656,13 +2659,13 @@ public class DataDockServiceImpl {
try {
if (!equList.isEmpty()) {
// 判断设备是否已经做过除历史登记外的其他业务,如果做了其他业务则不能更新并记录反馈
Integer useCount = commonMapper.countEquipInUseTimesForXaElevator();
Integer useCount = commonMapper.countEquipInUseTimesForXaElevator(record);
if (useCount > 0) {
return inUseError;
return inUseError;
}
IdxBizJgUseInfo oldUseInfo = idxBizJgUseInfoService.getOne(new QueryWrapper<IdxBizJgUseInfo>().eq("record", record));
IdxBizJgRegisterInfo oldRegisterInfo = idxBizJgRegisterInfoService.getOne(new QueryWrapper<IdxBizJgRegisterInfo>().eq("record", record));
saveUseInfo(equ, record, dataSource, remark, null);
IdxBizJgUseInfo useInfo = saveUseInfo(equ, record, dataSource, remark, null);
saveDesignInfo(equ, record);
saveFactoryInfo(equ, record);
IdxBizJgRegisterInfo registerInfo = saveRegisterInfo(equ, record, equList);
......@@ -2681,7 +2684,7 @@ public class DataDockServiceImpl {
}
// oldUseInfo不为空表示是平台已有设备,已有历史设备则更新历史单据信息。
if (!ValidationUtil.isEmpty(oldUseInfo)) {
updateHistoryInfo(equ, registerInfo, otherInfo, oldRegisterInfo);
updateHistoryInfo(equ, registerInfo, otherInfo, oldRegisterInfo, useInfo);
}
} else if (!businessId.isEmpty()) {
this.saveResumeInfo(equ);
......@@ -2707,7 +2710,12 @@ public class DataDockServiceImpl {
}
}
private void updateHistoryInfo(Map<String, Object> equ, IdxBizJgRegisterInfo registerInfo, IdxBizJgOtherInfo otherInfo, IdxBizJgRegisterInfo oldRegisterInfo) {
private void updateHistoryInfo(Map<String, Object> equ, IdxBizJgRegisterInfo registerInfo, IdxBizJgOtherInfo otherInfo, IdxBizJgRegisterInfo oldRegisterInfo, IdxBizJgUseInfo useInfo) {
// 更新使用信息-设备改为已纳管
useInfo.setIsIntoManagement(Boolean.TRUE);
idxBizJgUseInfoService.updateById(useInfo);
// 更新登记单据信息
String oldUseRegistrationCode = oldRegisterInfo.getUseOrgCode();
// 更新历史登记单数据、登记单对应历史表数据
// 安全管理员
......@@ -2736,9 +2744,18 @@ public class DataDockServiceImpl {
jgUseRegistration.setReceiveOrgName(receiveCompanyName);
equ.put("receiveOrgName", receiveCompanyName);
jgUseRegistrationServiceImpl.saveOrUpdate(jgUseRegistration);
// 更新设备es(jg-all)信息
this.updateEsData2(equ, otherInfo);
// 更新登记证信息
this.updateRegistrationManagementInfo(equ, oldUseRegistrationCode);
// 更新登记证变更记录信息
this.updateHistory(equ, equ.get("record").toString(), String.valueOf(jgUseRegistration.getSequenceNbr()), jgUseRegistration.getSupervisoryCode());
// 更新履历信息
this.saveResumeInfo(equ, jgUseRegistration);
}
private void updateRegistrationManagementInfo(Map<String, Object> equ, String useRegistrationCode) {
......@@ -2873,6 +2890,30 @@ public class DataDockServiceImpl {
jgResumeInfoService.createWithModel(resumeInfoDto);
}
private void saveResumeInfo(Map<String, Object> equ, JgUseRegistration jgUseRegistration) {
JgResumeInfo resumeInfo = jgResumeInfoService.lambdaQuery().eq(JgResumeInfo::getApplyNo, jgUseRegistration.getApplyNo()).one();
if (ValidationUtil.isEmpty(resumeInfo)) {
resumeInfo = new JgResumeInfo();
resumeInfo.setEquId(equ.get("record").toString());
resumeInfo.setApplyNo(jgUseRegistration.getApplyNo());
resumeInfo.setBusinessId(jgUseRegistration.getSequenceNbr() + "");
resumeInfo.setStatus("正常");
resumeInfo.setCreateDate(new Date());
// 生成履历待办routePath
EquipRequestParamsDto paramsDto = EquipRequestParamsDto.builder()
.equipId(equ.get("record").toString())
.equListCode(equ.get("equList").toString()).build();
String routePath = buildTaskModel(jgUseRegistration, paramsDto);
resumeInfo.setRoutePath(routePath);
resumeInfo.setChangeContent(BusinessTypeEnum.JG_HISTORY_USAGE_REGISTRATION.getName() + "业务办理");
}
resumeInfo.setApprovalUnit(jgUseRegistration.getReceiveOrgName());
resumeInfo.setApprovalUnitCode(jgUseRegistration.getReceiveCompanyCode());
resumeInfo.setRecDate(new Date());
jgResumeInfoService.saveOrUpdate(resumeInfo);
}
/**
* 历史设备登记-》更新维保信息
*/
......@@ -2932,7 +2973,7 @@ public class DataDockServiceImpl {
jgUseRegistration.setInspectUnitName(map.get("inspectOrgName").toString());
}
jgUseRegistration.setUseAddress(
Stream.of("provinceName", "cityName", "countyName", "factoryUseSiteStreet", "address")
Stream.of("provinceName", "cityName", "countyName", "streetName", "address")
.map(key -> Objects.toString(map.get(key), ""))
.collect(Collectors.joining())
);
......@@ -2952,6 +2993,10 @@ public class DataDockServiceImpl {
jgUseRegistration.setStatus(FlowStatusEnum.TO_BE_FINISHED.getName());
jgUseRegistration.setUseRegistrationCode(ValidationUtil.isEmpty(map.get("useOrgCode")) ? "" : String.valueOf(map.get("useOrgCode")));
jgUseRegistration.setRegType("1");
jgUseRegistration.setReceiveCompanyCode(map.get("oRegUnit").toString());
jgUseRegistration.setRegDate(DateUtil.parse((String) map.get("oRegDate"), DatePattern.NORM_DATE_PATTERN));
String receiveCompanyName = CommonCustomConverter.CompanyCodeConverter.getNameByCode(map.get("oRegUnit").toString());
jgUseRegistration.setReceiveOrgName(receiveCompanyName);
// 生成监管码 96333码
LambdaQueryWrapper<IdxBizJgOtherInfo> otherLambda = new QueryWrapper<IdxBizJgOtherInfo>().lambda();
......@@ -2976,12 +3021,21 @@ public class DataDockServiceImpl {
jgUseRegistrationServiceImpl.save(jgUseRegistration);
jgRelationEquip.setEquipTransferId(jgUseRegistration.getSequenceNbr() + "");
jgRelationEquipMapper.insert(jgRelationEquip);
// 做完历史登记设备改为已纳管
idxBizJgUseInfoService.lambdaUpdate().eq(IdxBizJgUseInfo::getRecord, equipId).set(IdxBizJgUseInfo::getIsIntoManagement, Boolean.TRUE);
idxBizJgUseInfoService.lambdaUpdate().eq(IdxBizJgUseInfo::getRecord, equipId).
set(IdxBizJgUseInfo::getIsIntoManagement, Boolean.TRUE).
set(IdxBizJgUseInfo::getORegDate, jgUseRegistration.getRegDate()).
set(IdxBizJgUseInfo::getORegUnit, jgUseRegistration.getReceiveOrgName()).
update();
// 暂存历史表
updateHistory(map, map.get("record").toString(), String.valueOf(jgUseRegistration.getSequenceNbr()), jgUseRegistration.getSupervisoryCode());
// 历史设备
this.historyEquGenManageRelated(map, jgUseRegistration);
// 生成监管履历信息
saveResumeInfo(map, jgUseRegistration);
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
......
......@@ -1125,7 +1125,10 @@ public class EquipClaimServiceImpl {
registrationHistory.setCreateUserId(userModel.getUserId());
registrationHistory.setRecUserName(userModel.getRealName());
jgRegistrationHistoryService.save(registrationHistory);
String routePath = dockService.buildTaskModel(useReg, new EquipRequestParamsDto());
EquipRequestParamsDto paramsDto = new EquipRequestParamsDto();
paramsDto.setEquipId(useReg.getProjectContraptionId());
paramsDto.setEquListCode(EquipmentClassifityEnum.YLGD.getCode());
String routePath = dockService.buildTaskModel(useReg, paramsDto);
jgResumeInfoService.createWithModel(JgResumeInfoDto.builder()
.applyNo(useReg.getApplyNo())
.businessType(BusinessTypeEnum.JG_HISTORY_USAGE_REGISTRATION.getName())
......
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