Commit cca7cf35 authored by 麻笑宇's avatar 麻笑宇

feat(statistics): 增加设备查询条件功能

- 新增 queryEquipmentSearchData 接口,用于查询设备查询条件 - 实现 queryEquipmentSearchData 方法,根据参数类型和字典编码获取查询条件 - 优化 ConditionEnum枚举,使用 paramType 替代 code 进行比较 - 在 TechnicalParameter 注解中添加 unit 字段,用于支持单位 - 更新 TechParamItem 类,增加 dictCode 和 unit 字段 - 修改 TechParamUtil 工具类,支持新的字典编码和单位字段
parent de421526
......@@ -18,8 +18,10 @@ public @interface TechnicalParameter {
*/
String dictCode() default "";
String unit() default "";
enum ParamType {
STRING, INTEGER, FLOAT, BIG_DECIMAL, BOOLEAN
STRING, INTEGER, FLOAT, BIG_DECIMAL, BOOLEAN, OBJECT, DATE
}
}
......@@ -31,6 +31,14 @@ public class TechParamItem {
* 数字类型专用:最大小数位数
*/
private Integer maxPrecision;
/**
* 枚举字典编码
*/
private String dictCode;
/**
* 单位
*/
private String unit;
......
......@@ -39,6 +39,8 @@ public class TechParamUtil {
techParamItem.setParamLabel(technicalParameter.label());
techParamItem.setEquListCode(equListCode);
techParamItem.setParamType(technicalParameter.type());
techParamItem.setDictCode(technicalParameter.dictCode());
techParamItem.setUnit(technicalParameter.unit());
techParamItems.add(techParamItem);
}
}
......
......@@ -42,7 +42,7 @@ public enum ConditionEnum {
public static JSONArray getByCode(TechnicalParameter.ParamType paramType) {
JSONArray jsonArray = new JSONArray();
for (ConditionEnum value : values()) {
if (value.code.equals(paramType)) {
if (value.paramType == paramType) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("label", value.name);
jsonObject.put("value", value.code);
......
......@@ -45,6 +45,15 @@ public class ComprehensiveStatisticalAnalysisController extends BaseController {
String key = category.getString("key") == null ? null : category.getString("key");
return ResponseHelper.buildResponse(comprehensiveStatisticalAnalysisServiceImpl.queryEquipmentCategory(key));
}
/**
* @param jsonObject
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/select/queryEquipmentSearchData")
@ApiOperation(httpMethod = "GET", value = "查询设备查询条件", notes = "查询设备查询条件")
public ResponseModel<JSONObject> queryEquipmentSearchData(@RequestBody JSONObject jsonObject){
return ResponseHelper.buildResponse(comprehensiveStatisticalAnalysisServiceImpl.queryEquipmentSearchData(jsonObject.getString("value")));
}
}
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.annotation.TechnicalParameter;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.module.common.api.dto.TechParamItem;
import com.yeejoin.amos.boot.module.common.biz.utils.TechParamUtil;
import com.yeejoin.amos.boot.module.statistcs.biz.utils.JsonUtils;
import com.yeejoin.amos.boot.module.statistics.api.enums.ConditionEnum;
import com.yeejoin.amos.boot.module.statistics.api.mapper.TzsCustomFilterMapper;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieModel;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -25,6 +39,8 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
@Autowired
private TzsCustomFilterMapper tzsCustomFilterMapper;
@Autowired
private DataDictionaryServiceImpl dataDictionaryService;
public List<Map<String, Object>> queryEquipmentCategory(String key) {
List<Map<String, Object>> list;
......@@ -37,4 +53,51 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
return list;
}
public JSONObject queryEquipmentSearchData(String value) {
List<TechParamItem> paramMetaList = TechParamUtil.getParamMetaList(value);
ArrayList<JSONObject> list = new ArrayList<>();
for(int i= 0;i< paramMetaList.size();i++){
JSONObject object = new JSONObject();
object.put("key",paramMetaList.get(i).getParamKey());
object.put("value",paramMetaList.get(i).getParamKey());
object.put("label",paramMetaList.get(i).getParamLabel());
object.put("unit",paramMetaList.get(i).getUnit());
JSONObject skillConfig = new JSONObject();
skillConfig.put("conditions",getConditionList(paramMetaList.get(i).getParamType(),paramMetaList.get(i).getDictCode()));
if(!ValidationUtil.isEmpty(paramMetaList.get(i).getDictCode())){
skillConfig.put("type","select");
skillConfig.put("data",getData(paramMetaList.get(i).getDictCode()));
}else if(TechnicalParameter.ParamType.BIG_DECIMAL.equals(paramMetaList.get(i).getParamType())){
skillConfig.put("type","inputNumber");
}else if(TechnicalParameter.ParamType.STRING.equals(paramMetaList.get(i).getParamType())){
skillConfig.put("type","input");
}else if(TechnicalParameter.ParamType.DATE.equals(paramMetaList.get(i).getParamType())){
skillConfig.put("type","date");
}
skillConfig.put("isMulti","false");
object.put("skillConfig",skillConfig);
list.add(object);
}
JSONObject result = new JSONObject();
result.put("result",list);
return result;
}
private JSONArray getData(String dictCode) {
JSONArray jsonArray = new JSONArray();
//根据dictCode查询数据字典
List<DataDictionary> dictionaries = dataDictionaryService.getByType(dictCode);
for (DataDictionary dictionary : dictionaries) {
JSONObject object = new JSONObject();
object.put("label", dictionary.getName());
object.put("value", dictionary.getCode());
jsonArray.add(object);
}
return jsonArray;
}
private JSONArray getConditionList(TechnicalParameter.ParamType value,String dictCode) {
return ConditionEnum.getByCode(ValidationUtil.isEmpty(dictCode) ? value : null);
}
}
\ No newline at end of file
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