Commit cfa77872 authored by 刘林's avatar 刘林

fix(jg):处理新设备管道导入问题

parent be352b8b
......@@ -38,7 +38,7 @@ public class DataDockController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/xi-an/saveEquipmentData")
@ApiOperation(httpMethod = "POST", value = "西安数据对接-设备批量导入", notes = "西安数据对接-导入多个设备的数据文件")
public ResponseModel<?> saveEquipmentData(@RequestBody List<Map<String, Object>> equLists) throws Exception {
public ResponseModel<?> saveEquipmentData(@RequestBody List<Map<String, Object>> equLists) {
return ResponseHelper.buildResponse(dataDockService.xiAnSaveEquipmentData(equLists));
}
......@@ -130,14 +130,14 @@ public class DataDockController extends BaseController {
}
/**
* 气瓶批量保存
* 台套类设备,气瓶,新管道都使用此方法
**/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/saveSetEquipImportData")
@ApiOperation(httpMethod = "POST", value = "台套类设备导入字段保存", notes = "台套类设备导入字段保存")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<?> saveSetEquipImportData(@RequestBody Map<String, Object> paramMap) {
return ResponseHelper.buildResponse(dataDockService.saveSetEquipImportData(paramMap));
public ResponseModel<?> saveEquipImportData(@RequestBody Map<String, Object> paramMap) {
return ResponseHelper.buildResponse(dataDockService.saveEquipImportData(paramMap));
}
/**
......
......@@ -74,6 +74,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -303,7 +304,7 @@ public class DataDockServiceImpl {
.list().stream().findFirst().orElse(null);
}
projectContraption.setRecDate(new Date());
projectContraption.setDataQualityScore("1");
projectContraption.setDataQualityScore("3");
if (ObjectUtils.isEmpty(oldContraption) ) { // save
sequenceNbr = sequence.nextId();
projectContraption.setSequenceNbr(sequenceNbr);
......@@ -323,7 +324,7 @@ public class DataDockServiceImpl {
projectContraption.setEquCategoryName(EquCategoryConverter.getKeyByValue((String) equ.get("equCategory")));
projectContraption.setEquDefine((String) equ.get("equDefine"));
projectContraption.setEquDefineName(EquDefineConverter.getKeyByValue((String) equ.get("equDefine")));
projectContraption.setPipelineLength(Double.parseDouble((String) equ.get("pipeLength")));
projectContraption.setPipelineLength(new BigDecimal(Objects.toString(equ.get("totalPipeLength"), "0")).doubleValue());
projectContraption.setUseRegistrationCode((String) equ.get("useOrgCode"));
projectContraption.setIsIntoManagement(Boolean.FALSE);
projectContraption.setDataSource(dataSource);
......@@ -1564,7 +1565,16 @@ public class DataDockServiceImpl {
}
Set<String> recordSet = new HashSet<>();
Set<String> projectContraptionSet = new HashSet<>();
Map<String, Long> projectContraptionMap = new HashMap<>(); // 循环外声明
Map<String, Long> projectContraptionMap = new HashMap<>();
Map<String, BigDecimal> pipeLengthMap = equipInfoExcelDtos.stream()
.collect(Collectors.groupingBy(
e -> Objects.toString(e.getProjectContraptionNo(), "").trim(),
Collectors.mapping(
e -> new BigDecimal(Objects.toString(e.getPipeLength(), "0")),
Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)
)
));
Set<String> projectContraptionIdSet = new HashSet<>();
for (EquipInfoExcelDto equ : equipInfoExcelDtos) {
List<Map<String, Object>> fileDataList = (List<Map<String, Object>>) equ.getFileData();
Map<String, Object> equMap = (Map<String, Object>) JSON.parseObject(toJSONString(equ), Map.class);
......@@ -1579,26 +1589,30 @@ public class DataDockServiceImpl {
String projectContraptionNo = Objects.toString(equMap.get("projectContraptionNo"), "").trim();
Long projectContraptionId;
if (!projectContraptionSet.contains(projectContraptionNo)) {
projectContraptionId = saveProjectContraption(equMap, equList, company, dataSource);
BigDecimal totalPipeLength = pipeLengthMap.getOrDefault(projectContraptionNo, BigDecimal.ZERO);
equMap.put("totalPipeLength",totalPipeLength);
projectContraptionId = this.saveProjectContraption(equMap, equList, company, dataSource);
projectContraptionSet.add(projectContraptionNo);
projectContraptionMap.put(projectContraptionNo, projectContraptionId);
} else {
projectContraptionId = projectContraptionMap.get(projectContraptionNo);
}
equMap.put("projectContraptionId", projectContraptionId);
String record = saveEquipmentDataInTransaction(equMap, dataSource, remark);
if (projectContraptionId != null) {
projectContraptionIdSet.add(String.valueOf(projectContraptionId));
equMap.put("projectContraptionId", projectContraptionId);
}
String record = this.saveEquipmentDataInTransaction(equMap, dataSource, remark);
recordSet.add(record);
}
this.createResumeBatch(recordSet,dataSource, equipRoutePath, company);
eventPublisher.publish(new EquipCreateOrEditEvent(
this,
BusinessTypeEnum.JG_NEW_EQUIP.name(),
recordSet,
EquipCreateOrEditEvent.EquipType.equip
));
if (EquipmentClassifityEnum.YLGD.getCode().equals(equList)) {
this.createResumePipelineBatch(projectContraptionIdSet, String.format(pipelineRoutePath, projectContraptionIdSet), company);
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_PROJECT.name(), projectContraptionIdSet, EquipCreateOrEditEvent.EquipType.project));
}else{
this.createResumeBatch(recordSet,dataSource, equipRoutePath, company);
eventPublisher.publish(new EquipCreateOrEditEvent(this,BusinessTypeEnum.JG_NEW_EQUIP.name(),recordSet, EquipCreateOrEditEvent.EquipType.equip));
}
}
private void createResumeBatch(Set<String> records, String dataSource, String routePath, CompanyBo company) {
jgResumeInfoService.saveBatchResume(records.stream().map(record->JgResumeInfoDto.builder()
.businessType(BusinessTypeEnum.JG_NEW_EQUIP.getName())
......@@ -1613,6 +1627,20 @@ public class DataDockServiceImpl {
);
}
private void createResumePipelineBatch(Set<String> projectContraptionIdSet, String routePath, CompanyBo company) {
jgResumeInfoService.saveBatchResume(projectContraptionIdSet.stream().map(projectContraptionId ->JgResumeInfoDto.builder()
.businessType(BusinessTypeEnum.JG_NEW_PROJECT.getName())
.businessId(projectContraptionId)
.equId(projectContraptionId)
.status("正常")
.approvalUnitCode(company.getCompanyCode())
.approvalUnit(company.getCompanyName())
.changeContent(BusinessTypeEnum.JG_NEW_PROJECT.getName() + "业务办理")
.routePath(routePath)
.build()).collect(Collectors.toList())
);
}
/**
* 批量异步保存设备数据
*
......@@ -1770,7 +1798,7 @@ public class DataDockServiceImpl {
}
@Transactional(rollbackFor = Exception.class)
public Object saveSetEquipImportData(Map<String, Object> paramMap) {
public Object saveEquipImportData(Map<String, Object> paramMap) {
if (paramMap == null) {
throw new IllegalArgumentException("参数Map不能为空");
}
......
......@@ -3959,7 +3959,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
private String getDataSource(String operateType, LinkedHashMap equipmentInfoForm) {
// 数据来源 历史数据his 新数据new
String equipSource = String.valueOf(equipmentInfoForm.get(DATA_SOURCE));
return "new".equals(equipSource) ? "jg" : "his".equals(equipSource) ? "jg_his" : "jg_his_black";
return "new".equals(equipSource) ? "jg"
: "his".equals(equipSource) ? "jg_his"
: "jg_pl".equals(equipSource) ? "jg_pl"
: "jg_his_black";
}
public void checkEsData(String id) {
......
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