diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcal/CpcSubScoreDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcal/CpcSubScoreDao.java index 8865f93609..54226d0cc7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcal/CpcSubScoreDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcal/CpcSubScoreDao.java @@ -20,6 +20,7 @@ package com.epmet.dao.evaluationindex.indexcal; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.entity.evaluationindex.indexcal.CpcScoreEntity; +import com.epmet.entity.evaluationindex.indexcal.CpcSubScoreEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -78,9 +79,9 @@ public interface CpcSubScoreDao extends BaseDao { **/ BigDecimal selectGridJoinIssueAvgValue(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("gridId") String gridId); - int deleteByMonthId(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("indexCode") String indexCode); + int deleteByMonthId(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("allParentCode") String allParentCode); List getPartScore(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("allParentCode") String allParentCode); - int insertBatch(@Param("list") Collection values); + int insertBatch(@Param("list") Collection values); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/CpcIndexCalculateServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/CpcIndexCalculateServiceImpl.java index 0bc398ce91..139353e83c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/CpcIndexCalculateServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/CpcIndexCalculateServiceImpl.java @@ -9,9 +9,11 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.constant.DataSourceConstant; import com.epmet.constant.IndexCalConstant; import com.epmet.dao.evaluationindex.indexcal.CpcScoreDao; +import com.epmet.dao.evaluationindex.indexcal.CpcSubScoreDao; import com.epmet.dao.evaluationindex.indexcoll.FactIndexPartyAblityCpcMonthlyDao; import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.entity.evaluationindex.indexcal.CpcScoreEntity; +import com.epmet.entity.evaluationindex.indexcal.CpcSubScoreEntity; import com.epmet.entity.evaluationindex.indexcoll.FactIndexPartyAblityCpcMonthlyEntity; import com.epmet.entity.evaluationindex.screen.IndexGroupDetailEntity; import com.epmet.eum.IndexCodeEnum; @@ -49,6 +51,8 @@ public class CpcIndexCalculateServiceImpl implements CpcIndexCalculateService { private IndexCodeFieldReService indexCodeFieldReService; @Autowired private CpcScoreDao cpcScoreDao; + @Autowired + private CpcSubScoreDao cpcSubScoreDao; @Override public Boolean cpcIndexCalculate(CalculateCommonFormDTO formDTO) { @@ -136,6 +140,7 @@ public class CpcIndexCalculateServiceImpl implements CpcIndexCalculateService { * @param indexCode 指标code 非必填 * @param values */ + @Transactional(rollbackFor = Exception.class) private void deleteAndInsertBatch(CalculateCommonFormDTO formDTO, Collection values, String indexCode) { cpcScoreDao.deleteByMonthId(formDTO.getCustomerId(), formDTO.getMonthId(), indexCode); cpcScoreDao.insertBatch(values); @@ -242,23 +247,42 @@ public class CpcIndexCalculateServiceImpl implements CpcIndexCalculateService { public void saveCpcScore(CalculateCommonFormDTO formDTO, Map indexDetails, String parentIndexCode, HashMap result) { List list = new ArrayList<>(); - result.forEach((userId, score) -> { + List subList = new ArrayList<>(); + String allParentIndexCode = null; + for (Map.Entry entry : result.entrySet()) { + String userId = entry.getKey(); + CalculateResult score = entry.getValue(); CpcScoreEntity cpcScoreEntity = indexDetails.get(userId); cpcScoreEntity.setScore(score.getTotalScore()); - String allParentIndexCode = score.getDetails().get(0).getAllParentIndexCode(); + allParentIndexCode = score.getDetails().get(0).getAllParentIndexCode(); cpcScoreEntity.setAllParentIndexCode(allParentIndexCode.substring(0, allParentIndexCode.lastIndexOf(StrConstant.COLON))); list.add(cpcScoreEntity); CpcScoreEntity parent = ConvertUtils.sourceToTarget(cpcScoreEntity, CpcScoreEntity.class); score.getDetails().forEach(o -> { - CpcScoreEntity child = ConvertUtils.sourceToTarget(parent, CpcScoreEntity.class); + CpcSubScoreEntity child = ConvertUtils.sourceToTarget(parent, CpcSubScoreEntity.class); child.setIndexCode(o.getIndexCode()); child.setAllParentIndexCode(o.getAllParentIndexCode()); child.setScore(o.getScore()); - list.add(child); + subList.add(child); }); - }); + } + System.out.println("value:" + JSON.toJSONString(list)); this.deleteAndInsertBatch(formDTO, list, parentIndexCode); + this.deleteAndInsertSubBatch(formDTO, subList, allParentIndexCode); + } + + /** + * desc:根据客户id和月份Id 指标code 非必填 删除数据 + * + * @param formDTO + * @param subList + * @param parentIndexCode 指标code 非必填 + */ + @Transactional(rollbackFor = Exception.class) + public void deleteAndInsertSubBatch(CalculateCommonFormDTO formDTO, List subList, String parentIndexCode) { + cpcSubScoreDao.deleteByMonthId(formDTO.getCustomerId(), formDTO.getMonthId(), parentIndexCode); + cpcSubScoreDao.insertBatch(subList); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcal/CpcSubScoreDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcal/CpcSubScoreDao.xml index 8372a60608..b1e069bab2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcal/CpcSubScoreDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcal/CpcSubScoreDao.xml @@ -4,13 +4,12 @@ - delete from fact_index_cpc_score + delete from fact_index_cpc_sub_score where CUSTOMER_ID = #{customerId,jdbcType=VARCHAR} and MONTH_ID = #{monthId,jdbcType=VARCHAR} - - and INDEX_CODE = #{indexCode,jdbcType=VARCHAR} - + and ALL_PARENT_INDEX_CODE = #{allParentCode,jdbcType=VARCHAR} + @@ -30,7 +29,7 @@ - INSERT INTO `fact_index_cpc_score` ( + INSERT INTO `fact_index_cpc_sub_score` ( `ID`, `CUSTOMER_ID`, `GRID_ID`,