Commit 0deb2b65 authored by 刘林's avatar 刘林

fix(jg):西安电梯历史数据导入接口修改

parent eb626831
......@@ -81,17 +81,6 @@ public class DictParamsConverter implements Converter<String> {
dictMap.put("其他控制方式", "4");
dictMap.put("直接顶升", "1");
dictMap.put("间接顶升", "2");
dictMap.put("游乐场所", "6532");
dictMap.put("商业单位", "6009");
dictMap.put("学校", "6010");
dictMap.put("政府机关", "6012");
dictMap.put("医疗机构", "6011");
dictMap.put("公共场所", "6013");
dictMap.put("旅游景区", "6531");
dictMap.put("住宅小区", "6008");
dictMap.put("养老机构", "6530");
dictMap.put("工业场所", "6528");
dictMap.put("工业场所(户外)", "6529");
}
@Override
......
package com.yeejoin.amos.api.openapi.converter;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import java.util.HashMap;
import java.util.Map;
public class EquStateConverter implements Converter<String> {
private static final Map<String, String> equipmentMap = new HashMap<>();
static {
equipmentMap.put("未登记", "0");
equipmentMap.put("在用", "1");
equipmentMap.put("停用", "2");
equipmentMap.put("报废", "3");
equipmentMap.put("注销", "4");
}
@Override
public Class<?> supportJavaTypeKey() {
// 实体类中对象属性类型
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public String convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty,
GlobalConfiguration globalConfiguration) {
// 从Cell中读取数据
String cellValue = cellData.getStringValue();
// 判断Excel中的值,将其转换为预期的数值
return equipmentMap.getOrDefault(cellValue, null);
}
@Override
public CellData convertToExcelData(String o, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new CellData("");
}
}
package com.yeejoin.amos.api.openapi.converter;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import java.util.HashMap;
import java.util.Map;
public class UsePlaceConverter implements Converter<String> {
private static final Map<String, String> dictMap = new HashMap<>();
static {
dictMap.put("游乐场所", "6532");
dictMap.put("商业单位", "6009");
dictMap.put("学校", "6010");
dictMap.put("政府机关", "6012");
dictMap.put("医疗机构", "6011");
dictMap.put("公共场所", "6013");
dictMap.put("旅游景区", "6531");
dictMap.put("住宅小区", "6008");
dictMap.put("养老机构", "6530");
dictMap.put("工业场所", "6528");
dictMap.put("工业场所(户外)", "6529");
dictMap.put("地铁站", "6641");
dictMap.put("机场", "6642");
dictMap.put("车站", "6643");
dictMap.put("商业综合体", "6644");
dictMap.put("超市", "6645");
dictMap.put("餐饮场所", "6646");
dictMap.put("其他", "6647");
}
@Override
public Class<?> supportJavaTypeKey() {
// 实体类中对象属性类型
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public String convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty,
GlobalConfiguration globalConfiguration) {
// 从Cell中读取数据
String cellValue = cellData.getStringValue();
// 判断Excel中的值,将其转换为预期的数值
return dictMap.getOrDefault(cellValue, null);
}
@Override
public CellData convertToExcelData(String o, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new CellData("");
}
public static void main(String[] args) {
}
}
\ No newline at end of file
......@@ -110,7 +110,7 @@ public class XiAnElevatorExcelDto extends BaseDto {
private String longitudeLatitude;
@ApiModelProperty(value = "使用场所")
@ExcelProperty(value = "使用场所", converter = DictParamsConverter.class)
@ExcelProperty(value = "使用场所", converter = UsePlaceConverter.class)
private String usePlace;
@ApiModelProperty(value = "安全管理员")
......@@ -384,4 +384,8 @@ public class XiAnElevatorExcelDto extends BaseDto {
@ExcelProperty(value = "审批通过时间")
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
private String approvalDate;
@ApiModelProperty(value = "电梯状态")
@ExcelProperty(value = "电梯状态", converter = EquStateConverter.class)
private String equState;
}
\ No newline at end of file
......@@ -669,104 +669,104 @@ public class XiAnDataDockServiceImpl {
// 基本信息
checkNotBlank(data.getEquList(), "设备种类不能为空;", rowError);
checkNotBlank(data.getEquCategory(), "设备类别不能为空;", rowError);
checkNotBlank(data.getEquDefine(), "设备品种不能为空;", rowError);
checkNotBlank(data.getUseInnerCode(), "单位内编号不能为空;", rowError);
if (useInnerCodeList.contains(data.getUseInnerCode())) {
rowError.append("单位内编号不能重复;");
}
// checkNotBlank(data.getEquDefine(), "设备品种不能为空;", rowError);
// checkNotBlank(data.getUseInnerCode(), "单位内编号不能为空;", rowError);
// if (useInnerCodeList.contains(data.getUseInnerCode())) {
// rowError.append("单位内编号不能重复;");
// }
if (recordList.contains(data.getRecord())) {
rowError.append("模板中注册代码不能重复;").append(data.getRecord());
}
if (this.checkRecordUniqueness(data.getRecord())){
rowError.append("系统中存在注册代码;").append(data.getRecord());
}
checkNotBlank(data.getEquType(), "设备型号不能为空;", rowError);
// checkNotBlank(data.getEquType(), "设备型号不能为空;", rowError);
checkNotBlank(data.getEquCodeType(), "有无设备代码不能为空;", rowError);
if ("1".equals(data.getEquCodeType())) {
checkNotBlank(data.getEquCode(), "设备代码不能为空;", rowError);
String equCode = data.getEquCode();
if (equCode.matches("[a-zA-Z0-9]+")) {
if (equCode.length() <= 17) {
rowError.append("设备代码不能小于17位;");
}
if (equCode.length() >= 20) {
rowError.append("设备代码不能大于20位;");
}
} else {
rowError.append("设备代码不能包含特殊字符;");
}
if (equCodeList.contains(data.getEquCode())) {
data.setOriginalEquCode(data.getEquCode());
data.setEquCodeType("2");
data.setEquCode("");
}
if (this.checkEquCodeUniqueness(data.getEquCode())) {
data.setOriginalEquCode(data.getEquCode());
data.setEquCodeType("2");
data.setEquCode("");
}
} else {
data.setEquCode("");
}
checkNotBlank(data.getCode96333(), "96333码不能为空;", rowError);
checkNotBlank(data.getUseOrgCode(), "使用登记证编号不能为空;", rowError);
// if ("1".equals(data.getEquCodeType())) {
// checkNotBlank(data.getEquCode(), "设备代码不能为空;", rowError);
// String equCode = data.getEquCode();
// if (equCode.matches("[a-zA-Z0-9]+")) {
// if (equCode.length() <= 17) {
// rowError.append("设备代码不能小于17位;");
// }
// if (equCode.length() >= 20) {
// rowError.append("设备代码不能大于20位;");
// }
// } else {
// rowError.append("设备代码不能包含特殊字符;");
// }
// if (equCodeList.contains(data.getEquCode())) {
// data.setOriginalEquCode(data.getEquCode());
// data.setEquCodeType("2");
// data.setEquCode("");
// }
// if (this.checkEquCodeUniqueness(data.getEquCode())) {
// data.setOriginalEquCode(data.getEquCode());
// data.setEquCodeType("2");
// data.setEquCode("");
// }
// } else {
// data.setEquCode("");
// }
// checkNotBlank(data.getCode96333(), "96333码不能为空;", rowError);
// checkNotBlank(data.getUseOrgCode(), "使用登记证编号不能为空;", rowError);
checkNotBlank(data.getRecord(), "注册代码不能为空;", rowError);
// 使用信息
checkNotBlank(data.getUseUnitCode(), "使用单位统一社会信用代码不能为空;", rowError);
Optional.ofNullable(data.getUseUnitCode()).ifPresent(v -> checkCreditCode(v, "使用单位统一社会信用代码格式不正确;", rowError));
checkNotBlank(data.getUseUnit(), "使用单位名称不能为空;", rowError);
// checkNotBlank(data.getUseUnitCode(), "使用单位统一社会信用代码不能为空;", rowError);
// Optional.ofNullable(data.getUseUnitCode()).ifPresent(v -> checkCreditCode(v, "使用单位统一社会信用代码格式不正确;", rowError));
// checkNotBlank(data.getUseUnit(), "使用单位名称不能为空;", rowError);
checkNotBlank(data.getProvinceName(), "使用地点-省不能为空;", rowError);
checkNotBlank(data.getCityName(), "使用地点-市不能为空;", rowError);
checkNotBlank(data.getCountyName(), "使用地点-区/县不能为空;", rowError);
checkNotBlank(data.getFactoryUseSiteStreet(), "使用地点-街道不能为空;", rowError);
checkNotBlank(data.getAddress(), "详细地址不能为空;", rowError);
// checkNotBlank(data.getFactoryUseSiteStreet(), "使用地点-街道不能为空;", rowError);
// checkNotBlank(data.getAddress(), "详细地址不能为空;", rowError);
checkNotBlank(data.getUsePlace(), "使用场所不能为空;", rowError);
checkNotBlank(data.getEstateUnitName(), "产权单位名称不能为空;", rowError);
checkNotBlank(data.getEstateUnitCreditCode(), "产权单位社会信用代码不能为空;", rowError);
Optional.ofNullable(data.getEstateUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "产权单位社会信用代码格式不正确;", rowError));
checkNotBlank(data.getSafetyManager(), "安全管理员不能为空;", rowError);
checkNotBlank(data.getPhone(), "安全管理员联系电话不能为空;", rowError);
// checkNotBlank(data.getEstateUnitName(), "产权单位名称不能为空;", rowError);
// checkNotBlank(data.getEstateUnitCreditCode(), "产权单位社会信用代码不能为空;", rowError);
// Optional.ofNullable(data.getEstateUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "产权单位社会信用代码格式不正确;", rowError));
// checkNotBlank(data.getSafetyManager(), "安全管理员不能为空;", rowError);
// checkNotBlank(data.getPhone(), "安全管理员联系电话不能为空;", rowError);
// 制造信息
checkNotBlank(data.getProduceUnitCreditCode(), "制造单位统一社会信用代码不能为空;", rowError);
Optional.ofNullable(data.getProduceUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "制造单位统一社会信用代码格式不正确;", rowError));
checkNotBlank(data.getProduceUnitName(), "制造单位名称不能为空;", rowError);
checkNotBlank(data.getProduceLicenseNum(), "制造许可编号不能为空;", rowError);
checkNotBlank(data.getFactoryNum(), "出厂编号/产品编码不能为空;", rowError);
Optional.ofNullable(data.getProduceDate()).ifPresent(v -> checkDateFormatCorrect(v, "制造日期格式不正确;", rowError));
// checkNotBlank(data.getProduceUnitCreditCode(), "制造单位统一社会信用代码不能为空;", rowError);
// Optional.ofNullable(data.getProduceUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "制造单位统一社会信用代码格式不正确;", rowError));
// checkNotBlank(data.getProduceUnitName(), "制造单位名称不能为空;", rowError);
// checkNotBlank(data.getProduceLicenseNum(), "制造许可编号不能为空;", rowError);
// checkNotBlank(data.getFactoryNum(), "出厂编号/产品编码不能为空;", rowError);
// Optional.ofNullable(data.getProduceDate()).ifPresent(v -> checkDateFormatCorrect(v, "制造日期格式不正确;", rowError));
// 安装信息
checkNotBlank(data.getInstallUnitCreditCode(), "安装单位统一信用代码不能为空;", rowError);
Optional.ofNullable(data.getInstallUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "安装单位统一信用代码格式不正确;", rowError));
checkNotBlank(data.getInstallUnitName(), "安装单位名称不能为空;", rowError);
Optional.ofNullable(data.getInstallStartDate()).ifPresent(v -> checkDateFormatCorrect(v, "安装日期格式不正确;", rowError));
checkNotBlank(data.getInstallLeaderName(), "安装负责人不能为空;", rowError);
checkNotBlank(data.getInstallLeaderPhone(), "安装负责人联系电话不能为空;", rowError);
// checkNotBlank(data.getInstallUnitCreditCode(), "安装单位统一信用代码不能为空;", rowError);
// Optional.ofNullable(data.getInstallUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "安装单位统一信用代码格式不正确;", rowError));
// checkNotBlank(data.getInstallUnitName(), "安装单位名称不能为空;", rowError);
// Optional.ofNullable(data.getInstallStartDate()).ifPresent(v -> checkDateFormatCorrect(v, "安装日期格式不正确;", rowError));
// checkNotBlank(data.getInstallLeaderName(), "安装负责人不能为空;", rowError);
// checkNotBlank(data.getInstallLeaderPhone(), "安装负责人联系电话不能为空;", rowError);
// 检验监测信息
checkNotBlank(data.getInspectOrgCode(), "检验机构统一信用代码不能为空;", rowError);
Optional.ofNullable(data.getInspectOrgCode()).ifPresent(v -> checkCreditCode(v, "检验机构统一信用代码格式不正确;", rowError));
checkNotBlank(data.getInspectOrgName(), "检验机构名称不能为空;", rowError);
checkNotBlank(data.getInspectConclusion(), "检验结论不能为空;", rowError);
checkNotBlank(data.getInspectType(), "检验类型不能为空;", rowError);
checkNotBlank(data.getInspectStaff(), "检验人员名称不能为空;", rowError);
checkNotBlank(data.getInspectDate(), "检验日期不能为空;", rowError);
Optional.ofNullable(data.getInspectDate()).ifPresent(v -> checkDateFormatCorrect(v, "检验日期格式不正确;", rowError));
checkNotBlank(data.getNextInspectDate(), "下次检验日期不能为空;", rowError);
Optional.ofNullable(data.getNextInspectDate()).ifPresent(v -> checkDateFormatCorrect(v, "下次检验日期格式不正确;", rowError));
// checkNotBlank(data.getInspectOrgCode(), "检验机构统一信用代码不能为空;", rowError);
// Optional.ofNullable(data.getInspectOrgCode()).ifPresent(v -> checkCreditCode(v, "检验机构统一信用代码格式不正确;", rowError));
// checkNotBlank(data.getInspectOrgName(), "检验机构名称不能为空;", rowError);
// checkNotBlank(data.getInspectConclusion(), "检验结论不能为空;", rowError);
// checkNotBlank(data.getInspectType(), "检验类型不能为空;", rowError);
// checkNotBlank(data.getInspectStaff(), "检验人员名称不能为空;", rowError);
// checkNotBlank(data.getInspectDate(), "检验日期不能为空;", rowError);
// Optional.ofNullable(data.getInspectDate()).ifPresent(v -> checkDateFormatCorrect(v, "检验日期格式不正确;", rowError));
// checkNotBlank(data.getNextInspectDate(), "下次检验日期不能为空;", rowError);
// Optional.ofNullable(data.getNextInspectDate()).ifPresent(v -> checkDateFormatCorrect(v, "下次检验日期格式不正确;", rowError));
// 维保信息
checkNotBlank(data.getMeUnitCreditCode(), "维保单位统一信用代码不能为空;", rowError);
Optional.ofNullable(data.getMeUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "维保单位统一信用代码格式不正确;", rowError));
checkNotBlank(data.getMeUnitName(), "维保单位不能为空;", rowError);
checkNotBlank(data.getInformStart(), "维保合同开始时间不能为空;", rowError);
Optional.ofNullable(data.getInformStart()).ifPresent(v -> checkDateFormatCorrect(v, "维保合同开始时间格式不正确;", rowError));
checkNotBlank(data.getInformEnd(), "维保合同结束时间不能为空;", rowError);
Optional.ofNullable(data.getInformEnd()).ifPresent(v -> checkDateFormatCorrect(v, "维保合同结束时间格式不正确;", rowError));
checkNotBlank(data.getMeMaster(), "维保人员一名称不能为空;", rowError);
checkNotBlank(data.getMeMasterId(), "维保人员一身份证号不能为空;", rowError);
checkNotBlank(data.getMeMasterPhone(), "维保人员一联系方式不能为空;", rowError);
// checkNotBlank(data.getMeUnitCreditCode(), "维保单位统一信用代码不能为空;", rowError);
// Optional.ofNullable(data.getMeUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "维保单位统一信用代码格式不正确;", rowError));
// checkNotBlank(data.getMeUnitName(), "维保单位不能为空;", rowError);
// checkNotBlank(data.getInformStart(), "维保合同开始时间不能为空;", rowError);
// Optional.ofNullable(data.getInformStart()).ifPresent(v -> checkDateFormatCorrect(v, "维保合同开始时间格式不正确;", rowError));
// checkNotBlank(data.getInformEnd(), "维保合同结束时间不能为空;", rowError);
// Optional.ofNullable(data.getInformEnd()).ifPresent(v -> checkDateFormatCorrect(v, "维保合同结束时间格式不正确;", rowError));
// checkNotBlank(data.getMeMaster(), "维保人员一名称不能为空;", rowError);
// checkNotBlank(data.getMeMasterId(), "维保人员一身份证号不能为空;", rowError);
// checkNotBlank(data.getMeMasterPhone(), "维保人员一联系方式不能为空;", rowError);
}
/**
......
......@@ -188,6 +188,6 @@ public class ESEquipmentCategoryDto {
/**
* 是否可以做业务-西安电梯导入用(false-否,true-是)
*/
@Field(type = FieldType.Boolean)
@Field(type = FieldType.Boolean, name = "IS_DO_BUSINESS")
private Boolean IS_DO_BUSINESS;
}
......@@ -80,6 +80,7 @@ import static com.alibaba.fastjson.JSON.toJSONString;
public class DataDockServiceImpl {
private final SnowflakeIdUtil sequence;
private final ESEquipmentCategory esEquipmentCategory;
private final SuperviseInfoMapper superviseInfoMapper;
private final CategoryOtherInfoMapper categoryOtherInfoMapper;
private final IIdxBizJgUseInfoService idxBizJgUseInfoService;
private final IIdxBizJgProjectContraptionService idxBizJgProjectContraptionService;
......@@ -284,7 +285,7 @@ public class DataDockServiceImpl {
String streetName = Objects.toString(equ.get("factoryUseSiteStreet"),"");
String streetCode = "";
if (!ValidationUtil.isEmpty(streetName)) {
districtCode = getRegionCode(streetName, "STREET");
streetCode = getRegionCode(streetName, "STREET");
}
useInfo.setProvince(provinceCode);
useInfo.setProvinceName(provinceName);
......@@ -298,6 +299,7 @@ public class DataDockServiceImpl {
equ.put("city",useInfo.getCity());
equ.put("county",useInfo.getCounty());
equ.put("factoryUseSiteStreet", streetCode);
equ.put("isXixian", "0");
if (!ValidationUtil.isEmpty(Objects.toString(equ.get("longitudeLatitude")))) {
String[] parts = Objects.toString(equ.get("longitudeLatitude"), "").split(",", -1);
String latitude = parts.length > 0 ? parts[0].trim() : "";
......@@ -312,7 +314,7 @@ public class DataDockServiceImpl {
useInfo.setUseUnitCreditCode(Objects.toString(equ.get("useUnitCode"), "").trim());
useInfo.setUseUnitName(Objects.toString(equ.get("useUnit"), "").trim());
useInfo.setRemark(remark);
useInfo.setEquState(EquimentEnum.ZAIYONG.getCode()+"");
//useInfo.setEquState(EquimentEnum.ZAIYONG.getCode()+"");
useInfo.setProjectContraptionId(Objects.toString(equ.get("projectContraptionId"), ""));
useInfo.setIsNotXiXian("0");
idxBizJgUseInfoService.save(useInfo);
......@@ -320,6 +322,7 @@ public class DataDockServiceImpl {
equ.put("useUnitCreditCode", useInfo.getUseUnitCreditCode());
equ.put("useUnitName", useInfo.getUseUnitName());
equ.put("isNotXiXian", "0");
equ.put("DATA_SOURCE", useInfo.getDataSource());
}
}
......@@ -443,6 +446,7 @@ public class DataDockServiceImpl {
}
}
idxBizJgSupervisionInfoService.save(supervisionInfo);
equ.put("orgBranchCode", supervisionInfo.getOrgBranchCode() + "_" + supervisionInfo.getOrgBranchName());
}
/**
......@@ -645,7 +649,7 @@ public class DataDockServiceImpl {
long time = Timestamp.valueOf(map.get("REC_DATE").toString().substring(0, 19)).getTime();
equipmentCategoryDto.setREC_DATE(time);
equipmentCategoryDto.setSTATUS("已认领");
equipmentCategoryDto.setIS_DO_BUSINESS(false);
equipmentCategoryDto.setIS_DO_BUSINESS(Boolean.FALSE);
equipmentCategoryDto.setIS_COMPLETE_XA(Objects.equals("0", isCompleteXa));
esEquipmentCategory.save(equipmentCategoryDto);
}
......@@ -2192,6 +2196,7 @@ public class DataDockServiceImpl {
try {
if (!equList.isEmpty()) {
saveUseInfo(equ, record, dataSource, remark);
saveDesignInfo(equ, record);
saveFactoryInfo(equ, record);
saveRegisterInfo(equ, record, equList);
saveSupervisionInfo(equ, record);
......@@ -2209,6 +2214,7 @@ public class DataDockServiceImpl {
}
} catch (Exception e) {
esEquipmentCategory.deleteById(record);
superviseInfoMapper.deleteDataAll(Collections.singletonList(record));
log.error("{}数据:保存时出现异常,对应数据:{}", dataSource, JSONObject.toJSONString(equ), e);
throw new RuntimeException("保存电梯数据失败", e);
}
......
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