From 0cbbe2c1cbfbf73e02e1796d921c2911c96d370b Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期一, 23 十二月 2024 11:46:31 +0800 Subject: [PATCH] Merge branch 'master' of http://dlindusit.com:53929/r/iailab-plat --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java | 111 +++++++++++++++++++++++++------------------------------ 1 files changed, 51 insertions(+), 60 deletions(-) diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java index 51c9c47..26ec871 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java @@ -3,7 +3,9 @@ import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.iailab.framework.common.util.date.DateUtils; import com.iailab.module.model.mcs.pre.dao.MmItemResultDao; +import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity; import com.iailab.module.model.mcs.pre.entity.MmItemResultEntity; import com.iailab.module.model.mcs.pre.entity.MmItemResultJsonEntity; import com.iailab.module.model.mcs.pre.service.MmItemResultService; @@ -31,37 +33,12 @@ @Autowired private MmItemResultDao mmItemResultDao; - - @Override - public List<MmItemResultEntity> getListByOutputId(String outputid, Map<String, Object> params) { - - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date startDateParam = null; - try { - startDateParam = sdf.parse((String)params.get("startTime")); - } catch (ParseException e) { - e.printStackTrace(); - } - Date endDateParam = null; - try { - endDateParam = sdf.parse((String)params.get("endTime")); - } catch (ParseException e) { - e.printStackTrace(); - } - - List<MmItemResultEntity> list = mmItemResultDao.selectList( - new QueryWrapper<MmItemResultEntity>() - .eq("outputid", outputid) - .between("datatime", startDateParam, endDateParam) - .orderByAsc("datatime") - ); - return list; - } @Override public void savePredictValue(Map<String, List<DataValueVO>> predictValueMap, int t, String nIndex, Date predictTime) { List<MmItemResultEntity> importList = new ArrayList<>(); List<MmItemResultEntity> lastList = new ArrayList<>(); + for (Map.Entry<String, List<DataValueVO>> entry : predictValueMap.entrySet()) { for (DataValueVO dataVo : entry.getValue()) { MmItemResultEntity importData = new MmItemResultEntity(); @@ -74,9 +51,9 @@ List<DataValueVO> lastVoList = new ArrayList<>(); int size = entry.getValue().size(); - t = t > 0 ? t : 0; + t = Math.max(t, 0); int n = "n".equals(nIndex) ? size : Integer.parseInt(nIndex); - int length = (n - t) > 0 ? (n - t) : 0; //预测完不变的数据长度 + int length = Math.max((n - t), 0); //预测完不变的数据长度 if (size >= n) { for (int i = 0; i < (size - length); i ++) { int index = length + i; @@ -99,44 +76,23 @@ resultJson.setId(UUID.randomUUID().toString()); resultJson.setOutputid(entry.getKey()); resultJson.setPredicttime(predictTime); - resultJson.setJsonvalue(JSONArray.toJSONString(entry.getValue())); + List<Double> jsonValueList = entry.getValue().stream().map(valueVO -> { + return valueVO.getDataValue(); + }).collect(Collectors.toList()); + resultJson.setJsonvalue(JSONArray.toJSONString(jsonValueList)); Map<String, Object> map4 = new HashMap(2); map4.put("TABLENAME", "T_MM_ITEM_RESULT_JSON"); map4.put("entity", resultJson); mmItemResultDao.savePredictJsonValue(map4); - } - Map<String, Object> params = new HashMap(4); - params.put("TABLENAME", T_MM_ITEM_RESULT); - params.put("OUTPUTID", importList.get(0).getOutputid()); - params.put("STARTTIME", importList.get(0).getDatatime()); - params.put("ENDTIME", importList.get(importList.size() - 1).getDatatime()); - mmItemResultDao.deletePredictValue(params); - - int num1 = importList.size() / max_group_count; - int num2 = importList.size() % max_group_count; - if (num2 != 0) { - num1++; + Map<String, Object> params = new HashMap(4); + params.put("TABLENAME", T_MM_ITEM_RESULT); + params.put("OUTPUTID", entry.getKey()); + params.put("STARTTIME", importList.get(0).getDatatime()); + params.put("ENDTIME", importList.get(importList.size() - 1).getDatatime()); + mmItemResultDao.deletePredictValue(params); } - - List<MmItemResultEntity> tempList; - //先删除已经存在的数据,再插入新数据 - for (int i = 0; i < num1; i++) { - int startIndex = max_group_count * i; - int count = max_group_count; - if (num2!=0 && i == num1 - 1) { - count = num2; - } - tempList = new ArrayList<>(); - //获取某个索引范围内的对象集合 - for (int j = startIndex; j < startIndex + count; j++) { - tempList.add(importList.get(j)); - } - Map<String, Object> map2 = new HashMap<>(2); - map2.put("TABLENAME", T_MM_ITEM_RESULT); - map2.put("list", tempList); - mmItemResultDao.savePredictValue(map2); - } + mmItemResultDao.insertBatch(importList,max_group_count); Map<String, Object> map3 = new HashMap<>(2); map3.put("TABLENAME", "T_MM_ITEM_RESULT_LAST_POINT"); @@ -163,4 +119,39 @@ }).collect(Collectors.toList()); return result; } + + @Override + public List<Object[]> getData(String outputid, Date startTime, Date endTime, String timeFormat) { + List<Object[]> result = new ArrayList<>(); + QueryWrapper<MmItemResultEntity> queryWrapper = new QueryWrapper<MmItemResultEntity>() + .eq("outputid", outputid) + .between("datatime", startTime, endTime) + .orderByAsc("datatime"); + List<MmItemResultEntity> list = mmItemResultDao.selectList(queryWrapper); + if (CollectionUtils.isEmpty(list)) { + return result; + } + list.forEach(item -> { + Object[] dataItem = new Object[2]; + dataItem[0] = DateUtils.format(item.getDatatime(), timeFormat); + dataItem[1] = item.getDatavalue().setScale(2, BigDecimal.ROUND_HALF_UP); + result.add(dataItem); + }); + return result; + } + + @Override + public void savePredictValue(Map<MmItemOutputEntity, Double> predictDoubleValues, Date predictTime) { + for (Map.Entry<MmItemOutputEntity, Double> entry : predictDoubleValues.entrySet()) { + MmItemResultJsonEntity resultJson = new MmItemResultJsonEntity(); + resultJson.setId(UUID.randomUUID().toString()); + resultJson.setOutputid(entry.getKey().getId()); + resultJson.setPredicttime(predictTime); + resultJson.setCumulant(String.valueOf(entry.getValue())); + Map<String, Object> map4 = new HashMap(2); + map4.put("TABLENAME", "T_MM_ITEM_RESULT_JSON"); + map4.put("entity", resultJson); + mmItemResultDao.savePredictJsonValue(map4); + } + } } -- Gitblit v1.9.3