Commit d77dea59 authored by suhuiguang's avatar suhuiguang

refactor(大编辑):代码重构

1.基本信息、设计信息、使用信息、检验信息、制造信息增加枚举处理逻辑 2.技术参数增加枚举
parent 9a5617fb
......@@ -24,4 +24,6 @@ public @interface FieldDisplayDefine {
boolean isExist() default true;
String typeHandler() default "defaultTypeHandler";
String dictCode() default "";
}
......@@ -10,6 +10,7 @@ import com.yeejoin.amos.boot.biz.common.dto.DataDictionaryDto;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.IDataDictionaryService;
import com.yeejoin.amos.boot.biz.common.utils.*;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
......@@ -26,6 +27,7 @@ import java.util.List;
* @date 2021-06-07
*/
@Service
@Getter
public class DataDictionaryServiceImpl extends BaseService<DataDictionaryDto, DataDictionary, DataDictionaryMapper> implements IDataDictionaryService {
@Autowired
RedisUtils redisUtils;
......
package com.yeejoin.amos.boot.biz.common.typeHandler;
public interface DictTypeHandler {
String handle(String dictType, String dictCode);
}
......@@ -18,7 +18,7 @@ import lombok.experimental.Accessors;
@Group(value = "tech_params_boiler")
public class TechParamsBoilerChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "设备级别")
@FieldDisplayDefine(value = "设备级别", dictCode = "GLJB")
private String deviceLevel;
@FieldDisplayDefine(value = "额定蒸发量(热功率)")
......@@ -57,10 +57,10 @@ public class TechParamsBoilerChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "有机热载体锅炉气密试验介质/压力")
private String glAirtightTest;
@FieldDisplayDefine(value = "燃料(热源)种类")
@FieldDisplayDefine(value = "燃料(热源)种类", dictCode = "GLZL")
private String fuelType;
@FieldDisplayDefine(value = "受压部件名称")
@FieldDisplayDefine(value = "受压部件名称", dictCode = "GLBJMC")
private String nameOfPressureParts;
@FieldDisplayDefine(value = "受压部件材料")
......@@ -69,7 +69,7 @@ public class TechParamsBoilerChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "受压部件壁厚")
private String wallThicknessOfPressureParts;
@FieldDisplayDefine(value = "受压部件无损检测方法")
@FieldDisplayDefine(value = "受压部件无损检测方法", dictCode = "GLWSJCFF")
private String nonDestructiveTestingMethodsForPressureParts;
@FieldDisplayDefine(value = "受压部件无损检测比例")
......
......@@ -39,17 +39,17 @@ public class TechParamsElevatorChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "门数")
private Integer numberDoors;
@FieldDisplayDefine(value = "控制方式")
@FieldDisplayDefine(value = "控制方式", dictCode = "KZFS")
private String controlMode;
@FieldDisplayDefine(value = "油缸数量")
private Integer numberCylinders;
@FieldDisplayDefine(value = "顶升方式")
@FieldDisplayDefine(value = "顶升方式", dictCode = "DSXS")
private String jackingType;
@FieldDisplayDefine(value = "区域防爆等级")
@FieldDisplayDefine(value = "区域防爆等级", dictCode = "FBDJ")
private String explosionproofGrade;
......
......@@ -40,7 +40,7 @@ public class TechParamsLiftingChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "起升高度")
private String liftingHeight;
@FieldDisplayDefine(value = "工作级别")
@FieldDisplayDefine(value = "工作级别", dictCode = "GZJB")
private String workLevel;
@FieldDisplayDefine(value = "额定起重力矩")
......@@ -86,7 +86,7 @@ public class TechParamsLiftingChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "单车最大进车时间")
private String bicycleMaxComeTime;
@FieldDisplayDefine(value = "区域防爆等级")
@FieldDisplayDefine(value = "区域防爆等级", dictCode = "FBDJ")
private String explosionProofGrade;
@FieldDisplayDefine(value = "悬臂长度")
......
......@@ -19,7 +19,7 @@ import lombok.experimental.Accessors;
public class TechParamsPipelineChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "w唯一标识", isExist = false)
@FieldDisplayDefine(value = "唯一标识", isExist = false)
private String record;
......@@ -31,7 +31,7 @@ public class TechParamsPipelineChangeFieldDto extends BaseTechParamsFieldDto {
private String pipelineNumber;
@FieldDisplayDefine(value = "管道级别")
@FieldDisplayDefine(value = "管道级别", typeHandler ="pieLineLevelTypeHandler" )
private String deviceLevel;
......
......@@ -39,7 +39,7 @@ public class TechParamsRopewayChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "运量")
private String freightVolume;
@FieldDisplayDefine(value = "运载索")
@FieldDisplayDefine(value = "运载索", dictCode = "YZS")
private String carrierLine;
@FieldDisplayDefine(value = "速度")
......
......@@ -55,7 +55,7 @@ public class TechParamsVehicleChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "空载最大运行速度")
private String carryingIdlerMaxRunningSpeed;
@FieldDisplayDefine(value = "设备保护等级(防爆)")
@FieldDisplayDefine(value = "设备保护等级(防爆)", dictCode = "FBDJ")
private String protectGrade;
@FieldDisplayDefine(value = "温度组别(防爆)")
......
......@@ -177,7 +177,7 @@ public class TechParamsVesselChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "介质(夹套)")
private String mediumJacket;
@FieldDisplayDefine(value = "主体结构型式")
@FieldDisplayDefine(value = "主体结构型式", dictCode = "RQJG")
private String mainStructureType;
@FieldDisplayDefine(value = "支座型式")
......@@ -189,7 +189,7 @@ public class TechParamsVesselChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "保温绝热方式")
private String insulation;
@FieldDisplayDefine(value = "无损检测方法")
@FieldDisplayDefine(value = "无损检测方法", dictCode = "RQJCFF")
private String checkLossless;
@FieldDisplayDefine(value = "耐压试验种类")
......
......@@ -509,7 +509,7 @@ public class CommonEquipDataProcessService {
allChange.addAll(pipelineChangeFields);
}
public static List<FieldChangeMeta> convertBeanField2Column2(Object beanData, String changeId) {
public List<FieldChangeMeta> convertBeanField2Column2(Object beanData, String changeId) {
List<FieldChangeMeta> changeData = new ArrayList<>();
Group group = beanData.getClass().getAnnotation(Group.class);
Field[] fields = beanData.getClass().getDeclaredFields();
......@@ -539,6 +539,8 @@ public class CommonEquipDataProcessService {
fieldChangeMeta.setColumnNewValue(value);
fieldChangeMeta.setColumnOldValue(value);
}
fieldChangeMeta.setDisplayOldValue(formatService.format(displayDefine, fieldChangeMeta.getColumnOldValue()));
fieldChangeMeta.setDisplayNewValue(formatService.format(displayDefine, fieldChangeMeta.getColumnNewValue()));
changeData.add(fieldChangeMeta);
}
} catch (IllegalAccessException e) {
......@@ -700,8 +702,8 @@ public class CommonEquipDataProcessService {
fieldChangeMeta.setColumnOldValue(Boolean.toString((Boolean) oldVal));
fieldChangeMeta.setColumnNewValue(Boolean.toString((Boolean) newVal));
}
fieldChangeMeta.setDisplayOldValue(formatService.format(displayDefine.typeHandler(), fieldChangeMeta.getColumnOldValue()));
fieldChangeMeta.setDisplayNewValue(formatService.format(displayDefine.typeHandler(), fieldChangeMeta.getColumnNewValue()));
fieldChangeMeta.setDisplayOldValue(formatService.format(displayDefine, fieldChangeMeta.getColumnOldValue()));
fieldChangeMeta.setDisplayNewValue(formatService.format(displayDefine, fieldChangeMeta.getColumnNewValue()));
changeData.add(fieldChangeMeta);
}
}
......
......@@ -32,9 +32,9 @@ public class PieLineDataChangeServiceImpl {
public void update(ProjectContraptionChangeDataDto projectContraptionChangeDataDtoNew, List<FieldChangeMeta> allChangeColumns) {
// 原有对象行转列
ProjectContraptionChangeDataDto projectContraptionChangeDataDtoOld = getOldProjectContraptionData(projectContraptionChangeDataDtoNew);
List<FieldChangeMeta> newProjectContraptionChangeData = CommonEquipDataProcessService.convertBeanField2Column2(projectContraptionChangeDataDtoNew, projectContraptionChangeDataDtoNew.getProjectContraptionId());
List<FieldChangeMeta> newProjectContraptionChangeData = commonEquipDataProcessService.convertBeanField2Column2(projectContraptionChangeDataDtoNew, projectContraptionChangeDataDtoNew.getProjectContraptionId());
// 新对象构造行转列
List<FieldChangeMeta> oldProjectContraptionChangeData = CommonEquipDataProcessService.convertBeanField2Column2(projectContraptionChangeDataDtoOld, projectContraptionChangeDataDtoNew.getProjectContraptionId());
List<FieldChangeMeta> oldProjectContraptionChangeData = commonEquipDataProcessService.convertBeanField2Column2(projectContraptionChangeDataDtoOld, projectContraptionChangeDataDtoNew.getProjectContraptionId());
// 数据比对记录变化字段列表
allChangeColumns.addAll(CommonEquipDataProcessService.mergeChangeFields(newProjectContraptionChangeData, oldProjectContraptionChangeData));
// 数据入库
......@@ -68,7 +68,7 @@ public class PieLineDataChangeServiceImpl {
// 1.记录变化的数据对象
PieLineDesignChangeDataDto pieLineDesignChangeDataDto = BeanUtil.copyProperties(pipelineChangeItemDto, PieLineDesignChangeDataDto.class);
// 构造新对象行转列
List<FieldChangeMeta> designInfoNew = CommonEquipDataProcessService.convertBeanField2Column2(pieLineDesignChangeDataDto, record);
List<FieldChangeMeta> designInfoNew = commonEquipDataProcessService.convertBeanField2Column2(pieLineDesignChangeDataDto, record);
// 老数据查询行转列
List<FieldChangeMeta> designInfoOld = commonEquipDataProcessService.buildDesignInfoOld(record);
allChangeColumns.addAll(CommonEquipDataProcessService.mergeChangeFields(designInfoNew, designInfoOld));
......
......@@ -2,32 +2,35 @@ package com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.typeHandler.TypeHandler;
import com.yeejoin.amos.boot.biz.common.typeHandler.DictTypeHandler;
import org.springframework.stereotype.Component;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
/**
* 默认字典处理器
* 业务字典处理器
*/
public abstract class DefaultDictTypeHandler implements TypeHandler<String> {
@Component("cbDataDictTypeHandler")
public class CbDataDictTypeHandler implements DictTypeHandler {
private final DataDictionaryServiceImpl dataDictionaryService;
private final Map<String, String> cache = new ConcurrentHashMap<>();
protected DefaultDictTypeHandler(DataDictionaryServiceImpl dataDictionaryService) {
protected CbDataDictTypeHandler(DataDictionaryServiceImpl dataDictionaryService) {
this.dataDictionaryService = dataDictionaryService;
}
public abstract String getDictType();
@Override
public String handle(String code) {
return cache.computeIfAbsent(code, (k) -> {
DataDictionary dataDictionary = dataDictionaryService.getByCode(code, getDictType());
public String handle(String dictType, String dictCode) {
String key = dictType + "_" + dictCode;
return cache.computeIfAbsent(key, (k) -> {
DataDictionary dataDictionary = dataDictionaryService.getByCode(k, dictType);
return Optional.ofNullable(dataDictionary).map(DataDictionary::getName).orElse(null);
});
}
}
package com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler;
import com.yeejoin.amos.boot.biz.common.annotation.FieldDisplayDefine;
import com.yeejoin.amos.boot.biz.common.typeHandler.TypeHandler;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
......@@ -17,20 +19,27 @@ public class FormatService {
private final ApplicationContext context;
private final CbDataDictTypeHandler dataDictTypeHandler;
private final Map<String, TypeHandler<String>> handlerCache = new ConcurrentHashMap<>();
@Value("${type-handler.default:defaultTypeHandler}")
private String defaultHandlerName;
public String format(String typeHandler, String value) {
public String format(FieldDisplayDefine displayDefine, String value) {
// 字典优先
if (StringUtils.isNotEmpty(displayDefine.dictCode())) {
return dataDictTypeHandler.handle(displayDefine.dictCode(), value);
}
// 其次是自定义的处理器
try {
TypeHandler<String> handler = handlerCache.computeIfAbsent(typeHandler,
TypeHandler<String> handler = handlerCache.computeIfAbsent(displayDefine.typeHandler(),
k -> context.getBean(k, TypeHandler.class)
);
return handler.handle(value);
} catch (NoSuchBeanDefinitionException e) {
TypeHandler<String> defaultHandler = context.getBean(defaultHandlerName, TypeHandler.class);
handlerCache.put(typeHandler, defaultHandler); // 缓存回退处理器的关联
handlerCache.put(displayDefine.typeHandler(), defaultHandler); // 缓存回退处理器的关联
return defaultHandler.handle(value);
}
}
......
package com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import org.springframework.stereotype.Component;
/**
* 检验结论处理器
*/
@Component("inspectConclusionTypeHandler")
public class InspectConclusionTypeHandler extends DefaultDictTypeHandler {
protected InspectConclusionTypeHandler(DataDictionaryServiceImpl dataDictionaryService) {
super(dataDictionaryService);
}
@Override
public String getDictType() {
return "JYJL";
}
}
package com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.typeHandler.TypeHandler;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
/**
* 检验类型处理器
*/
@Component("inspectTypeTypeHandler")
public class InspectTypeTypeHandler extends DefaultDictTypeHandler {
protected InspectTypeTypeHandler(DataDictionaryServiceImpl dataDictionaryService) {
super(dataDictionaryService);
}
@Override
public String getDictType() {
return "JYJC";
}
}
package com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.typeHandler.TypeHandler;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 管道压力级别处理器
*/
@Component("pieLineLevelTypeHandler")
public class PieLineLevelTypeHandler implements TypeHandler<String> {
private final DataDictionaryServiceImpl dataDictionaryService;
private Map<String, String> cache;
protected PieLineLevelTypeHandler(DataDictionaryServiceImpl dataDictionaryService) {
this.dataDictionaryService = dataDictionaryService;
}
@PostConstruct
private void init() {
List<DataDictionary> dataDictionary = dataDictionaryService.getDataDictionaryMapper().selectList(new LambdaQueryWrapper<DataDictionary>().in(DataDictionary::getType, Arrays.asList("8200", "8100", "8300")));
cache = dataDictionary.stream().collect(Collectors.toMap(DataDictionary::getCode, DataDictionary::getName));
}
@Override
public String handle(String value) {
return cache.get(value);
}
}
package com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import org.springframework.stereotype.Component;
/**
* 使用场所处理器
*/
@Component("usePlaceTypeHandler")
public class UsePlaceTypeHandler extends DefaultDictTypeHandler {
protected UsePlaceTypeHandler(DataDictionaryServiceImpl dataDictionaryService) {
super(dataDictionaryService);
}
@Override
public String getDictType() {
return "ADDRESS";
}
}
......@@ -49,7 +49,7 @@ public class IdxBizJgInspectionDetectionInfo extends TzsBaseEntity implements IB
*
*/
@TableField("\"INSPECT_TYPE\"")
@FieldDisplayDefine(value ="检验类型", typeHandler = "inspectTypeTypeHandler")
@FieldDisplayDefine(value ="检验类型", dictCode = "JYJC")
private String inspectType;
/**
......@@ -90,7 +90,7 @@ public class IdxBizJgInspectionDetectionInfo extends TzsBaseEntity implements IB
*
*/
@TableField("\"INSPECT_CONCLUSION\"")
@FieldDisplayDefine(value ="检验结论", typeHandler = "inspectConclusionTypeHandler")
@FieldDisplayDefine(value ="检验结论", dictCode = "JYJL")
private String inspectConclusion;
/**
......
......@@ -151,7 +151,7 @@ public class IdxBizJgUseInfo extends TzsBaseEntity implements IBaseChangeData {
*
*/
@TableField("\"USE_PLACE\"")
@FieldDisplayDefine(value = "使用场所", typeHandler = "usePlaceTypeHandler")
@FieldDisplayDefine(value = "使用场所", dictCode = "ADDRESS")
private String usePlace;
/**
......
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