Commit a4d2a5b3 authored by 韩桐桐's avatar 韩桐桐

fix(jg):延炼八大类设备导入

parent af793dfb
...@@ -11,7 +11,7 @@ import java.util.Map; ...@@ -11,7 +11,7 @@ import java.util.Map;
public class EquCategoryConverter implements Converter<String> { public class EquCategoryConverter implements Converter<String> {
private static final Map<String, String> equipmentMap = new HashMap<>(); public static final Map<String, String> equipmentMap = new HashMap<>();
static { static {
// 填充映射关系 // 填充映射关系
...@@ -80,4 +80,13 @@ public class EquCategoryConverter implements Converter<String> { ...@@ -80,4 +80,13 @@ public class EquCategoryConverter implements Converter<String> {
public CellData convertToExcelData(String o, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { public CellData convertToExcelData(String o, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new CellData(""); return new CellData("");
} }
public static String getKeyByValue(String value) {
for (Map.Entry<String, String> entry : equipmentMap.entrySet()) {
if (entry.getValue().equals(value)) {
return entry.getKey();
}
}
return null;
}
} }
...@@ -108,4 +108,13 @@ public class EquDefineConverter implements Converter<String> { ...@@ -108,4 +108,13 @@ public class EquDefineConverter implements Converter<String> {
public CellData convertToExcelData(String o, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { public CellData convertToExcelData(String o, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new CellData(""); return new CellData("");
} }
public static String getKeyByValue(String value) {
for (Map.Entry<String, String> entry : equipmentMap.entrySet()) {
if (entry.getValue().equals(value)) {
return entry.getKey();
}
}
return null;
}
} }
...@@ -58,5 +58,13 @@ public class DataDockController { ...@@ -58,5 +58,13 @@ public class DataDockController {
} }
return ResponseHelper.buildResponse(dataDockService.dataCheckAndImportEquipmentData(remark, file)); return ResponseHelper.buildResponse(dataDockService.dataCheckAndImportEquipmentData(remark, file));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/delete")
@ApiOperation(httpMethod = "POST", value = "八大类历史设备导入shanchu", notes = "八大类历史设备导入shachu")
public Object importData() {
dataDockService.delete();
return ResponseHelper.buildResponse("ok");
}
} }
...@@ -12,6 +12,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -12,6 +12,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil; import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory; import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto; import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.jg.api.converter.EquCategoryConverter;
import com.yeejoin.amos.boot.module.jg.api.converter.EquDefineConverter;
import com.yeejoin.amos.boot.module.jg.api.dto.EquipInfoExcelDto; import com.yeejoin.amos.boot.module.jg.api.dto.EquipInfoExcelDto;
import com.yeejoin.amos.boot.module.jg.biz.service.*; import com.yeejoin.amos.boot.module.jg.biz.service.*;
import com.yeejoin.amos.boot.module.ymt.api.entity.*; import com.yeejoin.amos.boot.module.ymt.api.entity.*;
...@@ -86,33 +88,57 @@ public class DataDockServiceImpl { ...@@ -86,33 +88,57 @@ public class DataDockServiceImpl {
return Boolean.TRUE; return Boolean.TRUE;
} }
private void saveEquipmentDataInTransaction(Map<String, Object> equ, String dataSource, String remark) { public void saveEquipmentDataInTransaction(Map<String, Object> equ, String dataSource, String remark) {
try { try {
transactionTemplate.execute(status -> { // transactionTemplate.execute(status -> {
String record = UUID.randomUUID().toString(); String record = UUID.randomUUID().toString();
String equList = String.valueOf(equ.get("equList")); String equList = String.valueOf(equ.get("equList"));
// 压力管道保存 工程装置表信息 必须在saveUseInfo之前进行,需要提前生成工程装置id // 压力管道保存 工程装置表信息 必须在saveUseInfo之前进行,需要提前生成工程装置id
saveProjectContraption(equ, equList); saveProjectContraption(equ, equList);
// 保存到设备表 // 保存到设备表
saveUseInfo(equ, record, dataSource, remark); saveUseInfo(equ, record, dataSource, remark);
saveDesignInfo(equ, record); saveDesignInfo(equ, record);
saveFactoryInfo(equ, record); saveFactoryInfo(equ, record);
saveRegisterInfo(equ, record, equList); saveRegisterInfo(equ, record, equList);
saveSupervisionInfo(equ, record); saveSupervisionInfo(equ, record);
saveOtherInfo(equ, record, equList); saveOtherInfo(equ, record, equList);
// 保存技术参数 // 保存技术参数
saveTechParams(equ, record, equList); saveTechParams(equ, record, equList);
// 保存到ES // 保存到ES
saveEquInfoToEs(record); saveEquInfoToEs(record);
return null; // return null;
}); // });
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error("{}数据:保存时出现异常,对应数据:{}", dataSource, JSONObject.toJSONString(equ)); log.error("{}数据:保存时出现异常,对应数据:{}", dataSource, JSONObject.toJSONString(equ));
log.error("异常信息:{}", e.getMessage()); log.error("异常信息:{}", e.getMessage());
throw new RuntimeException(e);
} }
} }
public void delete() {
List<String> records = idxBizJgUseInfoService.lambdaQuery().select(IdxBizJgUseInfo::getRecord).likeRight(IdxBizJgUseInfo::getRemark, "延炼").list()
.stream().map(IdxBizJgUseInfo::getRecord).collect(Collectors.toList());
// saveProjectContraption(equ, equList);
idxBizJgUseInfoService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgUseInfo>().in(IdxBizJgUseInfo::getRecord, records));
idxBizJgDesignInfoService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgDesignInfo>().in(IdxBizJgDesignInfo::getRecord, records));
idxBizJgFactoryInfoService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgFactoryInfo>().in(IdxBizJgFactoryInfo::getRecord, records));
idxBizJgRegisterInfoServiceImpl.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgRegisterInfo>().in(IdxBizJgRegisterInfo::getRecord, records));
idxBizJgSupervisionInfoService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgSupervisionInfo>().in(IdxBizJgSupervisionInfo::getRecord, records));
iIdxBizJgTechParamsLiftingService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgTechParamsLifting>().in(IdxBizJgTechParamsLifting::getRecord, records));
iIdxBizJgTechParamsVehicleService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgTechParamsVehicle>().in(IdxBizJgTechParamsVehicle::getRecord, records));
iIdxBizJgTechParamsBoilerService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgTechParamsBoiler>().in(IdxBizJgTechParamsBoiler::getRecord, records));
iIdxBizJgTechParamsVesselService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgTechParamsVessel>().in(IdxBizJgTechParamsVessel::getRecord, records));
iIdxBizJgTechParamsPipelineService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgTechParamsPipeline>().in(IdxBizJgTechParamsPipeline::getRecord, records));
iIdxBizJgTechParamsRidesService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgTechParamsRides>().in(IdxBizJgTechParamsRides::getRecord, records));
iIdxBizJgTechParamsRopewayService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgTechParamsRopeway>().in(IdxBizJgTechParamsRopeway::getRecord, records));
iIdxBizJgTechParamsElevatorService.getBaseMapper().delete(new LambdaQueryWrapper<IdxBizJgTechParamsElevator>().in(IdxBizJgTechParamsElevator::getRecord, records));
records.forEach(record -> this.saveEquInfoToEs(record));
}
/** /**
* 保存工程装置表信息 * 保存工程装置表信息
*/ */
...@@ -129,7 +155,7 @@ public class DataDockServiceImpl { ...@@ -129,7 +155,7 @@ public class DataDockServiceImpl {
.eq(IdxBizJgProjectContraption::getUseUnitCreditCode, useUnitCode) .eq(IdxBizJgProjectContraption::getUseUnitCreditCode, useUnitCode)
.eq(IdxBizJgProjectContraption::getUseUnitName, useUnit) .eq(IdxBizJgProjectContraption::getUseUnitName, useUnit)
.eq(IdxBizJgProjectContraption::getProjectContraption, proConName) .eq(IdxBizJgProjectContraption::getProjectContraption, proConName)
.one(); .list().stream().findFirst().orElse(null);
projectContraption.setRecDate(new Date()); projectContraption.setRecDate(new Date());
...@@ -141,9 +167,9 @@ public class DataDockServiceImpl { ...@@ -141,9 +167,9 @@ public class DataDockServiceImpl {
projectContraption.setEquList(equList); projectContraption.setEquList(equList);
projectContraption.setEquListName(EquipmentClassifityEnum.getNameByCode(equList)); projectContraption.setEquListName(EquipmentClassifityEnum.getNameByCode(equList));
projectContraption.setEquCategory((String) equ.get("equCategory")); projectContraption.setEquCategory((String) equ.get("equCategory"));
projectContraption.setEquCategoryName(EquipmentClassifityEnum.getNameByCode((String) equ.get("equCategory"))); projectContraption.setEquCategoryName(EquCategoryConverter.getKeyByValue((String) equ.get("equCategory")));
projectContraption.setEquDefine((String) equ.get("equDefine")); projectContraption.setEquDefine((String) equ.get("equDefine"));
projectContraption.setEquDefineName(EquipmentClassifityEnum.getNameByCode((String) equ.get("equDefine"))); projectContraption.setEquDefineName(EquDefineConverter.getKeyByValue((String) equ.get("equDefine")));
projectContraption.setPipelineLength(Double.parseDouble((String) equ.get("pipeLength"))); projectContraption.setPipelineLength(Double.parseDouble((String) equ.get("pipeLength")));
projectContraption.setUseRegistrationCode((String) equ.get("useOrgCode")); projectContraption.setUseRegistrationCode((String) equ.get("useOrgCode"));
projectContraption.setIsIntoManagement(Boolean.FALSE); projectContraption.setIsIntoManagement(Boolean.FALSE);
...@@ -168,6 +194,7 @@ public class DataDockServiceImpl { ...@@ -168,6 +194,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveUseInfo(Map<String, Object> equ, String record, String dataSource, String remark) { private void saveUseInfo(Map<String, Object> equ, String record, String dataSource, String remark) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgUseInfo useInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgUseInfo.class); IdxBizJgUseInfo useInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgUseInfo.class);
if (!ValidationUtil.isEmpty(useInfo)) { if (!ValidationUtil.isEmpty(useInfo)) {
useInfo.setRecDate(new Date()); useInfo.setRecDate(new Date());
...@@ -190,6 +217,7 @@ public class DataDockServiceImpl { ...@@ -190,6 +217,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveDesignInfo(Map<String, Object> equ, String record) { private void saveDesignInfo(Map<String, Object> equ, String record) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgDesignInfo designInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgDesignInfo.class); IdxBizJgDesignInfo designInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgDesignInfo.class);
if (!ValidationUtil.isEmpty(designInfo)) { if (!ValidationUtil.isEmpty(designInfo)) {
designInfo.setRecord(record); designInfo.setRecord(record);
...@@ -205,6 +233,7 @@ public class DataDockServiceImpl { ...@@ -205,6 +233,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveFactoryInfo(Map<String, Object> equ, String record) { private void saveFactoryInfo(Map<String, Object> equ, String record) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgFactoryInfo factoryInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgFactoryInfo.class); IdxBizJgFactoryInfo factoryInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgFactoryInfo.class);
if (!ValidationUtil.isEmpty(factoryInfo)) { if (!ValidationUtil.isEmpty(factoryInfo)) {
factoryInfo.setRecord(record); factoryInfo.setRecord(record);
...@@ -220,6 +249,7 @@ public class DataDockServiceImpl { ...@@ -220,6 +249,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveRegisterInfo(Map<String, Object> equ, String record, String equList) { private void saveRegisterInfo(Map<String, Object> equ, String record, String equList) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgRegisterInfo registerInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgRegisterInfo.class); IdxBizJgRegisterInfo registerInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgRegisterInfo.class);
if (!ValidationUtil.isEmpty(registerInfo)) { if (!ValidationUtil.isEmpty(registerInfo)) {
registerInfo.setRecord(record); registerInfo.setRecord(record);
...@@ -239,8 +269,10 @@ public class DataDockServiceImpl { ...@@ -239,8 +269,10 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveSupervisionInfo(Map<String, Object> equ, String record) { private void saveSupervisionInfo(Map<String, Object> equ, String record) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgSupervisionInfo supervisionInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgSupervisionInfo.class); IdxBizJgSupervisionInfo supervisionInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgSupervisionInfo.class);
if (!ValidationUtil.isEmpty(supervisionInfo)) { log.error("数据===hou>{}", JSONObject.toJSONString(supervisionInfo));
if (!ObjectUtils.isEmpty(supervisionInfo)) {
supervisionInfo.setRecord(record); supervisionInfo.setRecord(record);
supervisionInfo.setRecDate(new Date()); supervisionInfo.setRecDate(new Date());
idxBizJgSupervisionInfoService.save(supervisionInfo); idxBizJgSupervisionInfoService.save(supervisionInfo);
...@@ -254,6 +286,7 @@ public class DataDockServiceImpl { ...@@ -254,6 +286,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveOtherInfo(Map<String, Object> equ, String record, String equList) { private void saveOtherInfo(Map<String, Object> equ, String record, String equList) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgOtherInfo otherInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgOtherInfo.class); IdxBizJgOtherInfo otherInfo = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgOtherInfo.class);
if (!ValidationUtil.isEmpty(otherInfo)) { if (!ValidationUtil.isEmpty(otherInfo)) {
otherInfo.setRecord(record); otherInfo.setRecord(record);
...@@ -300,6 +333,7 @@ public class DataDockServiceImpl { ...@@ -300,6 +333,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveLiftingParams(Map<String, Object> equ, String record) { private void saveLiftingParams(Map<String, Object> equ, String record) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgTechParamsLifting equipTechParamLifting = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsLifting.class); IdxBizJgTechParamsLifting equipTechParamLifting = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsLifting.class);
if (!ValidationUtil.isEmpty(equipTechParamLifting)) { if (!ValidationUtil.isEmpty(equipTechParamLifting)) {
equipTechParamLifting.setRecord(record); equipTechParamLifting.setRecord(record);
...@@ -315,6 +349,7 @@ public class DataDockServiceImpl { ...@@ -315,6 +349,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveVehicleParams(Map<String, Object> equ, String record) { private void saveVehicleParams(Map<String, Object> equ, String record) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgTechParamsVehicle equipTechParamVehicle = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsVehicle.class); IdxBizJgTechParamsVehicle equipTechParamVehicle = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsVehicle.class);
if (!ValidationUtil.isEmpty(equipTechParamVehicle)) { if (!ValidationUtil.isEmpty(equipTechParamVehicle)) {
equipTechParamVehicle.setRecord(record); equipTechParamVehicle.setRecord(record);
...@@ -330,6 +365,7 @@ public class DataDockServiceImpl { ...@@ -330,6 +365,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveBoilerParams(Map<String, Object> equ, String record) { private void saveBoilerParams(Map<String, Object> equ, String record) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgTechParamsBoiler equipTechParamBoiler = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsBoiler.class); IdxBizJgTechParamsBoiler equipTechParamBoiler = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsBoiler.class);
if (!ValidationUtil.isEmpty(equipTechParamBoiler)) { if (!ValidationUtil.isEmpty(equipTechParamBoiler)) {
equipTechParamBoiler.setRecord(record); equipTechParamBoiler.setRecord(record);
...@@ -345,6 +381,7 @@ public class DataDockServiceImpl { ...@@ -345,6 +381,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveVesselParams(Map<String, Object> equ, String record) { private void saveVesselParams(Map<String, Object> equ, String record) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgTechParamsVessel equipTechParamVessel = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsVessel.class); IdxBizJgTechParamsVessel equipTechParamVessel = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsVessel.class);
if (!ValidationUtil.isEmpty(equipTechParamVessel)) { if (!ValidationUtil.isEmpty(equipTechParamVessel)) {
equipTechParamVessel.setRecord(record); equipTechParamVessel.setRecord(record);
...@@ -360,6 +397,7 @@ public class DataDockServiceImpl { ...@@ -360,6 +397,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void savePipelineParams(Map<String, Object> equ, String record) { private void savePipelineParams(Map<String, Object> equ, String record) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgTechParamsPipeline equipTechParamPipeline = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsPipeline.class); IdxBizJgTechParamsPipeline equipTechParamPipeline = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsPipeline.class);
if (!ValidationUtil.isEmpty(equipTechParamPipeline)) { if (!ValidationUtil.isEmpty(equipTechParamPipeline)) {
equipTechParamPipeline.setWallThickness(String.valueOf(equ.get("wallThickness_YLGD"))); equipTechParamPipeline.setWallThickness(String.valueOf(equ.get("wallThickness_YLGD")));
...@@ -380,6 +418,7 @@ public class DataDockServiceImpl { ...@@ -380,6 +418,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveRidesParams(Map<String, Object> equ, String record) { private void saveRidesParams(Map<String, Object> equ, String record) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgTechParamsRides equipTechParamRides = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsRides.class); IdxBizJgTechParamsRides equipTechParamRides = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsRides.class);
if (!ValidationUtil.isEmpty(equipTechParamRides)) { if (!ValidationUtil.isEmpty(equipTechParamRides)) {
equipTechParamRides.setRecord(record); equipTechParamRides.setRecord(record);
...@@ -398,6 +437,7 @@ public class DataDockServiceImpl { ...@@ -398,6 +437,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveRopewayParams(Map<String, Object> equ, String record) { private void saveRopewayParams(Map<String, Object> equ, String record) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgTechParamsRopeway equipTechParamRopeway = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsRopeway.class); IdxBizJgTechParamsRopeway equipTechParamRopeway = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsRopeway.class);
if (!ValidationUtil.isEmpty(equipTechParamRopeway)) { if (!ValidationUtil.isEmpty(equipTechParamRopeway)) {
equipTechParamRopeway.setRecord(record); equipTechParamRopeway.setRecord(record);
...@@ -413,6 +453,7 @@ public class DataDockServiceImpl { ...@@ -413,6 +453,7 @@ public class DataDockServiceImpl {
* @param record * @param record
*/ */
private void saveElevatorParams(Map<String, Object> equ, String record) { private void saveElevatorParams(Map<String, Object> equ, String record) {
log.error("数据===>{}", JSONObject.toJSONString(equ));
IdxBizJgTechParamsElevator equipTechParamElevator = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsElevator.class); IdxBizJgTechParamsElevator equipTechParamElevator = JSON.parseObject(JSON.toJSONString(equ), IdxBizJgTechParamsElevator.class);
if (!ValidationUtil.isEmpty(equipTechParamElevator)) { if (!ValidationUtil.isEmpty(equipTechParamElevator)) {
equipTechParamElevator.setRecord(record); equipTechParamElevator.setRecord(record);
...@@ -444,7 +485,7 @@ public class DataDockServiceImpl { ...@@ -444,7 +485,7 @@ public class DataDockServiceImpl {
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class) // @GlobalTransactional(rollbackFor = Exception.class)
public Object dataCheckAndImportEquipmentData(String remark, MultipartFile file) { public Object dataCheckAndImportEquipmentData(String remark, MultipartFile file) {
List<EquipInfoExcelDto> equipInfoExcelDtos; List<EquipInfoExcelDto> equipInfoExcelDtos;
...@@ -496,7 +537,9 @@ public class DataDockServiceImpl { ...@@ -496,7 +537,9 @@ public class DataDockServiceImpl {
public void invoke(EquipInfoExcelDto data, AnalysisContext context) { public void invoke(EquipInfoExcelDto data, AnalysisContext context) {
// 数据检查 // 数据检查
checkExcelData(sheetName, data, context, sheetError); checkExcelData(sheetName, data, context, sheetError);
useInnerCodeList.add(data.getUseInnerCode()); // if (!ValidationUtil.isEmpty(data.getUseInnerCode())) {
// useInnerCodeList.add(data.getUseInnerCode());
// }
equCodeList.add(data.getEquCode()); equCodeList.add(data.getEquCode());
useOrgCodeList.add(data.getUseOrgCode()); useOrgCodeList.add(data.getUseOrgCode());
dataList.add(data); dataList.add(data);
...@@ -627,26 +670,28 @@ public class DataDockServiceImpl { ...@@ -627,26 +670,28 @@ public class DataDockServiceImpl {
// 基本信息 // 基本信息
checkNotBlank(data.getEquList(), "设备种类不能为空;", rowError); checkNotBlank(data.getEquList(), "设备种类不能为空;", rowError);
checkNotBlank(data.getEquCategory(), "设备类别不能为空;", rowError); checkNotBlank(data.getEquCategory(), "设备类别不能为空;", rowError);
checkNotBlank(data.getUseInnerCode(), "单位内编号不能为空;", rowError); // checkNotBlank(data.getUseInnerCode(), "单位内编号不能为空;", rowError);
if (useInnerCodeList.contains(data.getUseInnerCode())) { // if (useInnerCodeList.contains(data.getUseInnerCode())) {
rowError.append("单位内编号不能重复;"); // rowError.append("单位内编号不能重复;");
} // }
checkNotBlank(data.getEquType(), "设备型号不能为空;", rowError); // checkNotBlank(data.getEquType(), "设备型号不能为空;", rowError);
if (!isYLGD) { if (!isYLGD) {
checkNotBlank(data.getProductName(), "产品名称不能为空;", rowError); checkNotBlank(data.getProductName(), "产品名称不能为空;", rowError);
checkNotBlank(data.getEquCodeType(), "有无设备代码不能为空;", rowError); checkNotBlank(data.getEquCodeType(), "有无设备代码不能为空;", rowError);
if ("1".equals(data.getEquCodeType())) { if ("1".equals(data.getEquCodeType())) {
checkNotBlank(data.getEquCode(), "设备代码不能为空;", rowError); checkNotBlank(data.getEquCode(), "设备代码不能为空;", rowError);
String equCode = data.getEquCode(); String equCode = data.getEquCode();
if (equCode.matches("[a-zA-Z0-9]+")) { if (!StringUtils.isEmpty(equCode)) {
if (equCode.length() <= 17) { if (equCode.matches("[a-zA-Z0-9]+")) {
rowError.append("设备代码不能小于17位;"); // if (equCode.length() < 17) {
} // rowError.append("设备代码不能小于17位;");
if (equCode.length() >= 20) { // }
rowError.append("设备代码不能大于20位;"); // if (equCode.length() > 20) {
// rowError.append("设备代码不能大于20位;");
// }
} else {
rowError.append("设备代码不能包含特殊字符;");
} }
} else {
rowError.append("设备代码不能包含特殊字符;");
} }
if (equCodeList.contains(data.getEquCode())) { if (equCodeList.contains(data.getEquCode())) {
rowError.append("设备代码不能重复;"); rowError.append("设备代码不能重复;");
...@@ -681,7 +726,7 @@ public class DataDockServiceImpl { ...@@ -681,7 +726,7 @@ public class DataDockServiceImpl {
.eq(IdxBizJgProjectContraption::getUseUnitCreditCode, useUnitCode) .eq(IdxBizJgProjectContraption::getUseUnitCreditCode, useUnitCode)
.eq(IdxBizJgProjectContraption::getUseUnitName, useUnit) .eq(IdxBizJgProjectContraption::getUseUnitName, useUnit)
.eq(IdxBizJgProjectContraption::getProjectContraption, proConName) .eq(IdxBizJgProjectContraption::getProjectContraption, proConName)
.one(); .list().stream().findFirst().orElse(null);
Optional.ofNullable(oldContraption).ifPresent(old -> { Optional.ofNullable(oldContraption).ifPresent(old -> {
List<String> pipelineNumberList = idxBizJgProjectContraptionServiceImpl.getBaseMapper() List<String> pipelineNumberList = idxBizJgProjectContraptionServiceImpl.getBaseMapper()
.selectEquipList(String.valueOf(old.getSequenceNbr())) .selectEquipList(String.valueOf(old.getSequenceNbr()))
...@@ -766,7 +811,7 @@ public class DataDockServiceImpl { ...@@ -766,7 +811,7 @@ public class DataDockServiceImpl {
if (!this.useOrgCodeRegularMatching(data)) { if (!this.useOrgCodeRegularMatching(data)) {
rowError.append("使用登记证编号格式不正确;"); rowError.append("使用登记证编号格式不正确;");
} }
if (useOrgCodeList.contains(data.getUseOrgCode())) { if (!isYLGD && useOrgCodeList.contains(data.getUseOrgCode())) {
rowError.append("使用登记证编号不能重复;"); rowError.append("使用登记证编号不能重复;");
} }
try { try {
...@@ -784,49 +829,102 @@ public class DataDockServiceImpl { ...@@ -784,49 +829,102 @@ public class DataDockServiceImpl {
checkNotBlank(data.getUseUnit(), "使用单位名称不能为空;", rowError); checkNotBlank(data.getUseUnit(), "使用单位名称不能为空;", rowError);
// 设计信息 电梯、场车、起重机械无"设计信息" // 设计信息 电梯、场车、起重机械无"设计信息"
if (!isDT && !isCC && !isQZJX) { if (!isDT && !isCC && !isQZJX) {
if (ValidationUtil.isEmpty(data.getDesignUnitCreditCode()) || ValidationUtil.isEmpty(data.getDesignUnitName()) || ValidationUtil.isEmpty(data.getDesignUseDate()) || ValidationUtil.isEmpty(data.getDesignDate())) {
data.setDesignIsComplete("2");
} else {
data.setDesignIsComplete("1");
}
// checkNotBlank(data.getDesignUnitCreditCode(), "设计单位统一社会信用代码不能为空;", rowError); // checkNotBlank(data.getDesignUnitCreditCode(), "设计单位统一社会信用代码不能为空;", rowError);
Optional.ofNullable(data.getDesignUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "设计单位统一社会信用代码格式不正确;", rowError)); Optional.ofNullable(data.getDesignUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "设计单位统一社会信用代码格式不正确;", rowError));
// checkNotBlank(data.getDesignUnitName(), "设计单位名称不能为空;", rowError); // checkNotBlank(data.getDesignUnitName(), "设计单位名称不能为空;", rowError);
// checkNotBlank(data.getDesignUseDate(), "设计使用年限不能为空;", rowError); // checkNotBlank(data.getDesignUseDate(), "设计使用年限不能为空;", rowError);
Optional.ofNullable(data.getDesignUseDate()).ifPresent(v -> checkDateFormatNumber(v, "设计使用年限不能为数字以外的其他类型;", rowError)); // Optional.ofNullable(data.getDesignUseDate()).ifPresent(v -> checkDateFormatNumber(v, "设计使用年限不能为数字以外的其他类型;", rowError));
if (!ValidationUtil.isEmpty(data.getDesignUseDate())) {
data.setDesignUseDate(data.getDesignUseDate().replace("年", "").replace("/", ""));
}
// checkNotBlank(data.getDesignDate(), "设计日期不能为空;", rowError); // checkNotBlank(data.getDesignDate(), "设计日期不能为空;", rowError);
Optional.ofNullable(data.getDesignDate()).ifPresent(v -> checkDateFormatCorrect(v, "设计日期格式不正确;", rowError)); if (!ValidationUtil.isEmpty(data.getDesignDate())) {
Optional.ofNullable(data.getAppraisalDate()).ifPresent(v -> checkDateFormatCorrect(v, "设计文件鉴定日期格式不正确;", rowError)); if ("—".equals(data.getDesignDate().trim()) || "/".equals(data.getDesignDate().trim())) {
data.setDesignDate(null);
return;
}
data.setDesignDate(data.getDesignDate().trim().replace("—", ""));
String formattedDate = checkDateFormatCorrect(data.getDesignDate().trim(), "设计日期格式不正确;", rowError);
if (formattedDate != null) {
data.setDesignDate(formattedDate);
}
}
if (!ValidationUtil.isEmpty(data.getAppraisalDate())) {
data.setAppraisalDate(data.getAppraisalDate().trim().replace("—", ""));
String formattedDate = checkDateFormatCorrect(data.getAppraisalDate().trim(), "设计文件鉴定日期格式不正确;", rowError);
if (formattedDate != null) {
data.setAppraisalDate(formattedDate);
}
}
if (ValidationUtil.isEmpty(data.getDesignUnitCreditCode()) || ValidationUtil.isEmpty(data.getDesignUnitName()) || ValidationUtil.isEmpty(data.getDesignUseDate()) || ValidationUtil.isEmpty(data.getDesignDate())) {
data.setDesignIsComplete("2");
} else {
data.setDesignIsComplete("1");
}
} }
// 制造信息 // 制造信息
if (!isYLGD) { if (!isYLGD) {
if (ValidationUtil.isEmpty(data.getProduceUnitCreditCode()) || ValidationUtil.isEmpty(data.getProduceUnitName()) || ValidationUtil.isEmpty(data.getProduceLicenseNum()) || ValidationUtil.isEmpty(data.getFactoryNum()) || ValidationUtil.isEmpty(data.getProduceDate())) {
data.setFactoryIsComplete("2");
} else {
data.setFactoryIsComplete("1");
}
// checkNotBlank(data.getProduceUnitCreditCode(), "制造单位统一社会信用代码不能为空;", rowError); // checkNotBlank(data.getProduceUnitCreditCode(), "制造单位统一社会信用代码不能为空;", rowError);
Optional.ofNullable(data.getProduceUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "制造单位统一社会信用代码格式不正确;", rowError)); Optional.ofNullable(data.getProduceUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "制造单位统一社会信用代码格式不正确;", rowError));
// checkNotBlank(data.getProduceUnitName(), "制造单位名称不能为空;", rowError); // checkNotBlank(data.getProduceUnitName(), "制造单位名称不能为空;", rowError);
// checkNotBlank(data.getProduceLicenseNum(), "制造许可编号不能为空;", rowError); // checkNotBlank(data.getProduceLicenseNum(), "制造许可编号不能为空;", rowError);
// checkNotBlank(data.getFactoryNum(), "出厂编号/产品编码不能为空;", rowError); // checkNotBlank(data.getFactoryNum(), "出厂编号/产品编码不能为空;", rowError);
// checkNotBlank(data.getProduceDate(), "制造日期不能为空;", rowError); // checkNotBlank(data.getProduceDate(), "制造日期不能为空;", rowError);
Optional.ofNullable(data.getProduceDate()).ifPresent(v -> checkDateFormatCorrect(v, "制造日期格式不正确;", rowError));
if (!ValidationUtil.isEmpty(data.getProduceDate())) {
data.setProduceDate(data.getProduceDate().trim().replace("—", ""));
String formattedDate = checkDateFormatCorrect(data.getProduceDate().trim(), "制造日期格式不正确;", rowError);
if (formattedDate != null) {
data.setProduceDate(formattedDate);
}
}
if (ValidationUtil.isEmpty(data.getProduceUnitCreditCode()) || ValidationUtil.isEmpty(data.getProduceUnitName()) || ValidationUtil.isEmpty(data.getProduceLicenseNum()) || ValidationUtil.isEmpty(data.getFactoryNum()) || ValidationUtil.isEmpty(data.getProduceDate())) {
data.setFactoryIsComplete("2");
} else {
data.setFactoryIsComplete("1");
}
} }
} }
/** /**
* 检查上传Excel中的日期格式是否正确 * 检查并格式化上传Excel中的日期格式
* *
* @param date 待检查数据 * @param date 待检查数据
* @param errorMessage 错误内容 * @param errorMessage 错误内容
* @param rowError 错误集 * @param rowError 错误集
* @return 格式化后的日期字符串,如果格式不正确则返回null
*/ */
private void checkDateFormatCorrect(String date, String errorMessage, StringBuffer rowError) { private String checkDateFormatCorrect(String date, String errorMessage, StringBuffer rowError) {
if (!date.matches("\\d{4}-\\d{2}-\\d{2}")) { String res = date.trim().replace("/", "-").replace(".", "-")
.replace("年", "-").replace("月", "-").replace("日", "");
// 处理不同格式的日期
// 2017-12
if (res.matches("\\d{4}\\-\\d{2}")) {
res = res + "-01";
}
// 2017-1
if (res.matches("\\d{4}\\-\\d{1}")) {
res = res.substring(0, res.length() - 1) + "0" + res.substring(res.length() - 1) + "-01";
}
// 2023-5-5
if (res.matches("\\d{4}\\-\\d{1}\\-\\d{1}")) {
res = res.substring(0, res.length() - 3) + "0" + res.substring(res.length() - 3, res.length() - 1) + "0" + res.substring(res.length() - 1);
}
// 2023-5-15
if (res.matches("\\d{4}\\-\\d{1}\\-\\d{2}")) {
res = res.substring(0, res.length() - 4) + "0" + res.substring(res.length() - 4);
}
if (!res.matches("\\d{4}-\\d{2}-\\d{2}")) {
rowError.append(errorMessage); rowError.append(errorMessage);
return null;
} }
return res;
} }
/** /**
...@@ -915,9 +1013,9 @@ public class DataDockServiceImpl { ...@@ -915,9 +1013,9 @@ public class DataDockServiceImpl {
* @param rowError * @param rowError
*/ */
private void YLRQTechnicalParamsCheck(EquipInfoExcelDto data, StringBuffer rowError) { private void YLRQTechnicalParamsCheck(EquipInfoExcelDto data, StringBuffer rowError) {
checkNotBlank(data.getSingleBottleVolume(), "单瓶容积不能为空;", rowError); // checkNotBlank(data.getSingleBottleVolume(), "单瓶容积不能为空;", rowError);
checkNotBlank(data.getChargingMedium(), "充装介质不能为空;", rowError); // checkNotBlank(data.getChargingMedium(), "充装介质不能为空;", rowError);
checkNotBlank(data.getNominalWorkingPressure(), "公称工作压力不能为空;", rowError); // checkNotBlank(data.getNominalWorkingPressure(), "公称工作压力不能为空;", rowError);
} }
/** /**
...@@ -984,8 +1082,8 @@ public class DataDockServiceImpl { ...@@ -984,8 +1082,8 @@ public class DataDockServiceImpl {
* @return 匹配通过true,反之false * @return 匹配通过true,反之false
*/ */
private Boolean useOrgCodeRegularMatching(EquipInfoExcelDto data) { private Boolean useOrgCodeRegularMatching(EquipInfoExcelDto data) {
String useOrgCode = data.getUseOrgCode(); String useOrgCode = data.getUseOrgCode().replace("(", "(").replace(")", ")");
data.setUseOrgCode(useOrgCode);
// 梯00陕A00000(24) 起11陕K0127(15) // 梯00陕A00000(24) 起11陕K0127(15)
String rule01 = "^[\\u4e00-\\u9fa5][0-9A-Z]{2}陕[A-Z0-9]{4,}\\(\\d{2}\\)$"; String rule01 = "^[\\u4e00-\\u9fa5][0-9A-Z]{2}陕[A-Z0-9]{4,}\\(\\d{2}\\)$";
boolean flage01 = Pattern.matches(rule01, useOrgCode); boolean flage01 = Pattern.matches(rule01, useOrgCode);
...@@ -1102,8 +1200,20 @@ public class DataDockServiceImpl { ...@@ -1102,8 +1200,20 @@ public class DataDockServiceImpl {
String rule29 = "^[\\u4e00-\\u9fa5]{1}[0-9]{1}[A-Z]{1,2}[0-9]{4}$"; String rule29 = "^[\\u4e00-\\u9fa5]{1}[0-9]{1}[A-Z]{1,2}[0-9]{4}$";
boolean flage29 = Pattern.matches(rule29, useOrgCode); boolean flage29 = Pattern.matches(rule29, useOrgCode);
// T20090311
String rule30 = "^[A-Za-z]\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])$";
boolean flage30 = Pattern.matches(rule30, useOrgCode);
// 容2MS陕JI0487
String rule31 = "^容\\d[A-Z]{2}陕[A-Z]{2}\\d{4}$";
boolean flage31 = Pattern.matches(rule31, useOrgCode);
// 3MR陕J0032
String rule32 = "^\\d[A-Z]{2}陕[A-Z]\\d{4}$";
boolean flage32 = Pattern.matches(rule32, useOrgCode);
return flage01 || flage02 || flage03 || flage04 || flage05 || flage06 || flage07 || flage08 || flage09 || flage10 || flage11 || flage12 || flage13 || flage14 || flage15 || flage16 || flage17 || flage18 || flage19 || flage20 || flage21 || flage22 || flage23 || flage24 || flage25 || flage26 || flage27 || flage28 || flage29;
return flage01 || flage02 || flage03 || flage04 || flage05 || flage06 || flage07 || flage08 || flage09 || flage10 || flage11 || flage12 || flage13 || flage14 || flage15 || flage16 || flage17 || flage18 || flage19 || flage20 || flage21 || flage22 || flage23 || flage24 || flage25 || flage26 || flage27 || flage28 || flage29 || flage30 || flage31 || flage32;
} }
...@@ -1122,19 +1232,21 @@ public class DataDockServiceImpl { ...@@ -1122,19 +1232,21 @@ public class DataDockServiceImpl {
* @param equipInfoExcelDtos * @param equipInfoExcelDtos
*/ */
public void batchSaveEquipmentData(String remark, List<EquipInfoExcelDto> equipInfoExcelDtos) { public void batchSaveEquipmentData(String remark, List<EquipInfoExcelDto> equipInfoExcelDtos) {
int batchSize = 1000;
int totalSize = equipInfoExcelDtos.size(); equipInfoExcelDtos.forEach(equ -> this.saveEquipmentDataInTransaction((Map<String, Object>) JSON.parseObject(JSON.toJSONString(equ), Map.class), "jg_his", remark));
for (int i = 0; i < totalSize; i += batchSize) { // int batchSize = 1000;
List<EquipInfoExcelDto> batch = equipInfoExcelDtos.subList(i, Math.min(totalSize, i + batchSize)); // int totalSize = equipInfoExcelDtos.size();
try { // for (int i = 0; i < totalSize; i += batchSize) {
CompletableFuture.allOf(batch.stream().map(equ -> CompletableFuture.runAsync( // List<EquipInfoExcelDto> batch = equipInfoExcelDtos.subList(i, Math.min(totalSize, i + batchSize));
() -> this.saveEquipmentDataInTransaction((Map<String, Object>) JSON.parseObject(JSON.toJSONString(equ), Map.class), "jg_his", remark) // try {
) // CompletableFuture.allOf(batch.stream().map(equ -> CompletableFuture.runAsync(
).toArray(CompletableFuture[]::new)).join(); // () -> this.saveEquipmentDataInTransaction((Map<String, Object>) JSON.parseObject(JSON.toJSONString(equ), Map.class), "jg_his", remark)
} catch (Exception e) { // )
log.error("数据上传,保存设备数据失败: {}", e.getMessage()); // ).toArray(CompletableFuture[]::new)).join();
throw new BadRequest("数据上传,保存设备数据失败!"); // } catch (Exception e) {
} // log.error("数据上传,保存设备数据失败: {}", e.getMessage());
} // throw new BadRequest("数据上传,保存设备数据失败!");
// }
// }
} }
} }
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