Commit bdf231fd authored by ZWT's avatar ZWT

feat(零碳): 长庆演示系统新增功能

1.新建油田配置表同时生成相关代码及mapper文件,修改部分第三方数据抽取定时任务,增加针对不同井场开关控制逻辑,同时修改首页页面展示逻辑,通过油田配置功能区分不同首页展示功能;
2.新建定时任务配置表同时生成相关代码及mapper文件,定时任务模块增加mybatis配置,用以操作数据库,修改部分第三方数据抽取定时任务,修改使用方式使其脱离框架方便动态控制;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 8bec8930
package pps.core.common.utils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.commons.lang3.StringUtils;
import xstartup.base.util.XDateUtils;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author lixueyan
* @date 2022/8/9 0009 15:38
*/
public class MapUtil {
private static Map<Class, List<Method>> classMethodMap = new ConcurrentHashMap<Class, List<Method>>();
private static Map<Class<?>, Map<String, Method>> getMethods = new HashMap<Class<?>, Map<String, Method>>();
public static Map<String, Object> objectToMapObject(Object bean) {
Map<String, Object> map = new HashMap<String, Object>();
Map<String, Method> fields = recursiveGetMethodMap(bean);
for (String fieldName : fields.keySet()) {
Method method = fields.get(fieldName);
if (method == null) continue;
JsonIgnore jsonIgnore = method.getAnnotation(JsonIgnore.class);
if (jsonIgnore != null)
continue;
Object value = invokeMethod(bean, method);
Class<?> returnType = method.getReturnType();
if (returnType != null && returnType == Date.class && value != null) {
map.put(fieldName, XDateUtils.getDateTimeString((Date) value));
} else {
map.put(fieldName, value);
}
}
return map;
}
public static Map<String, Object> objectToMapNotContainNull(Object bean) {
Map<String, Object> map = objectToMapObject(bean);
Map<String, Object> mapResult = new HashMap<String, Object>();
for (String key : map.keySet()) {
if (map.get(key) != null) {
mapResult.put(key, map.get(key));
}
}
return mapResult;
}
private static Map<String, Method> recursiveGetMethodMap(Object obj) {
return recursiveGetMethodMap(obj.getClass());
}
private static Object invokeMethod(Object obj, Method method, Object... args) {
if (method == null)
return null;
try {
return method.invoke(obj, args);
} catch (Exception e) {
}
return null;
}
private static Map<String, Method> recursiveGetMethodMap(Class<?> _class) {
Map<String, Method> methodMap = getMethods.get(_class);
if (methodMap == null) {
synchronized (getMethods) {
if ((methodMap = getMethods.get(_class)) == null) {
methodMap = new HashMap<String, Method>();
List<Method> methodList = getDeclaredMethods(_class);
for (Method method : methodList) {
String methodName = method.getName();
int modifiers = method.getModifiers();
if (!Modifier.isPublic(modifiers))
continue;
if (Modifier.isStatic(modifiers))
continue;
if (method.getParameterCount() != 0)
continue;
if (method.getDeclaringClass() == Object.class)
continue;
if (methodName.startsWith("get") && methodName.length() > 3) {
String propertyName = Character.toLowerCase(methodName.charAt(3)) + methodName.substring(4, methodName.length());
methodMap.put(propertyName, method);
}
}
getMethods.put(_class, methodMap);
}
}
}
return methodMap;
}
private static List<Method> getDeclaredMethods(Class<?> clazz) {
if (classMethodMap.containsKey(clazz))
return classMethodMap.get(clazz);
synchronized (classMethodMap) {
if (classMethodMap.containsKey(clazz))
return classMethodMap.get(clazz);
List<Method> methodList = Arrays.asList(clazz.getMethods());
classMethodMap.put(clazz, methodList);
return methodList;
}
}
public static <T> T mapToObj(Map<String, Object> map, Class<T> clz) throws Exception {
Object obj = clz.newInstance();
Field[] declaredFields = obj.getClass().getDeclaredFields();
for (Field field : declaredFields) {
int mod = field.getModifiers();
if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
continue;
}
field.setAccessible(true);
field.set(obj, objToValue(map.get(field.getName()), field.getType()));
}
return (T) obj;
}
public static <T> List<T> mapToList(List<Map<String, Object>> mapList, Class<T> clz) throws Exception {
List<T> list = new ArrayList<>();
for (Map<String, Object> map : mapList) {
list.add((T) mapToObj(map, clz));
}
return list;
}
public static Object objToValue(Object o, Class c) {
if (o == null || StringUtils.isBlank(String.valueOf(o))) {
if (c == String.class) {
return o;
} else {
return null;
}
}
if (c == Integer.class) {
if (o instanceof Long) {
return o;
}
return Integer.parseInt(String.valueOf(o));
} else if (c == Float.class) {
return Float.parseFloat(String.valueOf(o));
} else if (c == Double.class) {
return Double.parseDouble(String.valueOf(o));
} else if (c == BigDecimal.class) {
return new BigDecimal(String.valueOf(o));
} else if (c == Boolean.class) {
if (o != null) {
if ((Boolean.parseBoolean(String.valueOf(o))) == true)
return 1;
else
return 0;
} else {
return null;
}
} else if (c == Date.class) {
return XDateUtils.parse(String.valueOf(o));
} else {
return o;
}
}
}
package pps.core.base.service; package pps.core.base.service;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import pps.core.base.entity.BaseDataEnt; import pps.core.base.entity.BaseDataEnt;
...@@ -16,7 +17,6 @@ import pps.core.base.service.data.base_line.ImportFileInput; ...@@ -16,7 +17,6 @@ import pps.core.base.service.data.base_line.ImportFileInput;
import pps.core.base.utils.HttpUtils; import pps.core.base.utils.HttpUtils;
import pps.core.common.utils.ExcelUtils; import pps.core.common.utils.ExcelUtils;
import pps.core.common.utils.ExportExcelUtils; import pps.core.common.utils.ExportExcelUtils;
import pps.core.common.utils.MapUtil;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import xstartup.base.XContext; import xstartup.base.XContext;
...@@ -232,7 +232,7 @@ public class BaseDataService { ...@@ -232,7 +232,7 @@ public class BaseDataService {
Date minDate = null; Date minDate = null;
Date maxDate = null; Date maxDate = null;
for (Map<String, Object> objectMap : mapList) { for (Map<String, Object> objectMap : mapList) {
BaseDataView dataView = MapUtil.mapToObj(objectMap, BaseDataView.class); BaseDataView dataView = BeanUtil.toBean(objectMap, BaseDataView.class);
dataView.setOuId(input.getWellOuId()); dataView.setOuId(input.getWellOuId());
dataView.setLineId(input.getLineId()); dataView.setLineId(input.getLineId());
if (dataView.getDataDate() != null) { if (dataView.getDataDate() != null) {
......
package pps.core.prediction.service; package pps.core.prediction.service;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.core.common.utils.ExcelUtils; import pps.core.common.utils.ExcelUtils;
import pps.core.common.utils.ExportExcelUtils; import pps.core.common.utils.ExportExcelUtils;
import pps.core.common.utils.MapUtil;
import pps.core.prediction.entity.PlantPowerDataEnt; import pps.core.prediction.entity.PlantPowerDataEnt;
import pps.core.prediction.entity.PlantPowerDataView; import pps.core.prediction.entity.PlantPowerDataView;
import pps.core.prediction.enums.ImportFieldDic; import pps.core.prediction.enums.ImportFieldDic;
...@@ -73,7 +73,7 @@ public class PlantPowerDataService { ...@@ -73,7 +73,7 @@ public class PlantPowerDataService {
Date minDate = null; Date minDate = null;
Date maxDate = null; Date maxDate = null;
for (Map<String, Object> objectMap : mapList) { for (Map<String, Object> objectMap : mapList) {
PlantPowerDataView dataView = MapUtil.mapToObj(objectMap, PlantPowerDataView.class); PlantPowerDataView dataView = BeanUtil.toBean(objectMap, PlantPowerDataView.class);
dataView.setPlantId(input.getPlantId()); dataView.setPlantId(input.getPlantId());
if (dataView.getDataDate() != null) { if (dataView.getDataDate() != null) {
if (minDate == null) { if (minDate == null) {
......
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