Commit 20d42486 authored by tianchao's avatar tianchao

1.过滤数据

parent a3c0f349
...@@ -399,7 +399,7 @@ public class ExcelUtils { ...@@ -399,7 +399,7 @@ public class ExcelUtils {
}else { }else {
Double doubleValue = cell.getNumericCellValue(); Double doubleValue = cell.getNumericCellValue();
// 格式化科学计数法,取一位整数 // 格式化科学计数法,取一位整数
DecimalFormat df = new DecimalFormat("0"); DecimalFormat df = new DecimalFormat("0.00000");
returnValue = df.format(doubleValue); returnValue = df.format(doubleValue);
} }
break; break;
......
...@@ -95,23 +95,40 @@ public class BaseDataService { ...@@ -95,23 +95,40 @@ public class BaseDataService {
public XListResult<QueryBaseDataOutput> queryBaseData(XContext context, GetBaseDataInput input){ public XListResult<QueryBaseDataOutput> queryBaseData(XContext context, GetBaseDataInput input){
BaseDataMapper mapper = context.getBean(BaseDataMapper.class); BaseDataMapper mapper = context.getBean(BaseDataMapper.class);
QueryWrapper<BaseDataEnt> queryWrapper = new QueryWrapper<>(); QueryWrapper<BaseDataEnt> queryWrapper = new QueryWrapper<>();
Date beginTime ;
Date endTime ;
if(XStringUtils.isEmpty(input.getDataDate())){ if(XStringUtils.isEmpty(input.getDataDate())){
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, XDateUtils.getDayBeginTime(new Date())); beginTime = XDateUtils.getDayBeginTime(new Date());
queryWrapper.lambda().le(BaseDataEnt::getDataDate, XDateUtils.getDayEndTime(new Date())); endTime = XDateUtils.getDayEndTime(new Date());
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, beginTime);
queryWrapper.lambda().le(BaseDataEnt::getDataDate, endTime);
}else { }else {
if(input.getDataDate().contains("@")){ if(input.getDataDate().contains("@")){
String[] dataDates = input.getDataDate().split("@"); String[] dataDates = input.getDataDate().split("@");
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, XDateUtils.getDayBeginTime(XDateUtils.parse(dataDates[0]))); beginTime = XDateUtils.getDayBeginTime(XDateUtils.parse(dataDates[0]));
queryWrapper.lambda().le(BaseDataEnt::getDataDate, XDateUtils.getDayEndTime(XDateUtils.parse(dataDates[1]))); endTime = XDateUtils.getDayEndTime(XDateUtils.parse(dataDates[1]));
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, beginTime);
queryWrapper.lambda().le(BaseDataEnt::getDataDate, endTime);
}else { }else {
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, XDateUtils.getDayBeginTime(XDateUtils.parse(input.getDataDate()))); beginTime = XDateUtils.getDayBeginTime(XDateUtils.parse(input.getDataDate()));
queryWrapper.lambda().le(BaseDataEnt::getDataDate, XDateUtils.getDayEndTime(XDateUtils.parse(input.getDataDate()))); endTime = XDateUtils.getDayEndTime(XDateUtils.parse(input.getDataDate()));
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, beginTime);
queryWrapper.lambda().le(BaseDataEnt::getDataDate, endTime);
} }
} }
queryWrapper.lambda().eq(BaseDataEnt::getLineId, input.getLineId()); queryWrapper.lambda().eq(BaseDataEnt::getLineId, input.getLineId());
queryWrapper.lambda().orderByAsc(BaseDataEnt::getDataDate); queryWrapper.lambda().orderByAsc(BaseDataEnt::getDataDate);
List<BaseDataEnt> list = mapper.selectList(queryWrapper); List<BaseDataEnt> list = mapper.selectList(queryWrapper);
CalcBaseDataInput calcBaseDataInput = new CalcBaseDataInput("" , input.getLineId() , "train_pre" , XDateUtils.getString(beginTime) , XDateUtils.getString(endTime));
Map<String , Object> map = getCalcData(context , calcBaseDataInput);
list.stream().forEach(item->{
String dataDate = XDateUtils.getString(item.getDataDate());
if(map.get(dataDate) != null &&
XStringUtils.isNotEmpty(map.get(dataDate).toString())){
item.setPredictedPower(new BigDecimal(map.get(dataDate).toString()));
}
});
List<QueryBaseDataOutput> outputs = XCopyUtils.copyNewList(list , QueryBaseDataOutput.class); List<QueryBaseDataOutput> outputs = XCopyUtils.copyNewList(list , QueryBaseDataOutput.class);
return XListResult.success(outputs); return XListResult.success(outputs);
} }
...@@ -187,16 +204,10 @@ public class BaseDataService { ...@@ -187,16 +204,10 @@ public class BaseDataService {
.le(BaseDataEnt::getDataDate,maxDate); .le(BaseDataEnt::getDataDate,maxDate);
mapper.delete(queryWrapper); mapper.delete(queryWrapper);
BaseDataViewMapper viewMapper = context.getBean(BaseDataViewMapper.class); BaseDataViewMapper viewMapper = context.getBean(BaseDataViewMapper.class);
CalcBaseDataInput calcBaseDataInput = new CalcBaseDataInput(input.getWellOuId() , input.getLineId() , "train_pre" , XDateUtils.getString(minDate) , XDateUtils.getString(maxDate));
Map<String , Object> map = getCalcData(context , calcBaseDataInput);
dataList.stream().forEach(item->{
String dataDate = XDateUtils.getString(item.getDataDate());
if(map.get(dataDate) != null &&
XStringUtils.isNotEmpty(map.get(dataDate).toString())){
item.setPredictedPower(new BigDecimal(map.get(dataDate).toString()));
}
});
viewMapper.batchInsert(dataList); viewMapper.batchInsert(dataList);
//进行训练
CalcBaseDataInput calcBaseDataInput = new CalcBaseDataInput("" , input.getLineId() , "train_val" , XDateUtils.getString(minDate) , XDateUtils.getString(maxDate));
doTrainData(context , calcBaseDataInput);
}catch (Exception e){ }catch (Exception e){
return XServiceResult.error(-1,e.getMessage()); return XServiceResult.error(-1,e.getMessage());
} }
...@@ -238,9 +249,36 @@ public class BaseDataService { ...@@ -238,9 +249,36 @@ public class BaseDataService {
returnMap = XJsonUtils.toMap(ret.toString()); returnMap = XJsonUtils.toMap(ret.toString());
return returnMap; return returnMap;
}catch (Exception e) { }catch (Exception e) {
throw new RuntimeException("调用预测接口失败"); return returnMap;
} }
} }
public void doTrainData(XContext context, CalcBaseDataInput calcBaseDataInput ){
try {
String jsonString = XJsonUtils.toJson(calcBaseDataInput);
context.getLogger().info(jsonString);
Object ret = HttpUtils.send2("http://121.36.43.217:8098/model/train",
jsonString);
}catch (Exception e) {
throw new RuntimeException("调用预测接口失败");
}
}
@XApiAnonymous
@XApiPost
public XServiceResult trainBaseData(XContext context, GetBaseDataInput input){
Date beginTime ;
Date endTime ;
if(input.getDataDate().contains("@")){
String[] dataDates = input.getDataDate().split("@");
beginTime = XDateUtils.getDayBeginTime(XDateUtils.parse(dataDates[0]));
endTime = XDateUtils.getDayEndTime(XDateUtils.parse(dataDates[1]));
}else {
beginTime = XDateUtils.getDayBeginTime(XDateUtils.parse(input.getDataDate()));
endTime = XDateUtils.getDayEndTime(XDateUtils.parse(input.getDataDate()));
}
CalcBaseDataInput calcBaseDataInput = new CalcBaseDataInput("" , input.getLineId() , "train_val" , XDateUtils.getString(beginTime) , XDateUtils.getString(endTime));
doTrainData(context , calcBaseDataInput);
return XServiceResult.OK;
}
} }
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