diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiMetaDataDao.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiMetaDataDao.java index 8ef097913..3662281b8 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiMetaDataDao.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiMetaDataDao.java @@ -24,9 +24,7 @@ import com.elink.esua.epdc.entity.KpiMetaDataEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import java.math.BigDecimal; import java.util.List; -import java.util.Map; /** * 绩效考核的元数据 diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java index 879e50072..edd30a2d5 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java @@ -130,4 +130,14 @@ public interface KpiMetaDataService extends BaseService { */ void statGridEvaluation(); + /** + * 先删除已有数据再批量插入元数据表 + * + * @param metaDateList + * @return void + * @author qushutong + * @date 2019/12/24 14:38 + */ + void deleteAndInsertBatch(List metaDateList); + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java index 735fbbd68..fce0af82e 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java @@ -33,6 +33,7 @@ import com.elink.esua.epdc.enums.KpiMetaDataEnum; import com.elink.esua.epdc.excel.KpiManualScoreTemplateExcel; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.service.KpiManualScoreService; +import com.elink.esua.epdc.service.KpiMetaDataService; import com.elink.esua.epdc.utils.DeptUtils; import com.elink.esua.epdc.utils.KpiLocalDateUtils; import com.elink.esua.epdc.utils.StreamUtils; @@ -72,7 +73,7 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl @@ -497,7 +505,7 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl getUniqueWrapper(KpiManualScoreEntity entity) { + private QueryWrapper getUniqueWrapper(KpiManualScoreEntity entity) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(entity.getRuleId()), "RULE_ID", entity.getRuleId()) .eq(null != entity.getDeptId(), "DEPT_ID", entity.getDeptId()) @@ -515,13 +523,6 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl deptIdList = deptUtils.getDeptIdList(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, NumConstant.TWENTY, pageIndex); + List metaDataList; + do { + metaDataList = Lists.newArrayList(); + for (Long deptId : deptIdList) { + KpiManualScoreEntity scoreEntity = this.getKpiManualScoreEntity(deptId, startDate, endDate); + metaDataList.add(packageKpiMetaDataEntity(deptId, startDate, endDate, kpiCycle, null == scoreEntity ? BigDecimal.ZERO : scoreEntity.getScore())); + } + kpiMetaDataService.deleteAndInsertBatch(metaDataList); + pageIndex++; + deptIdList = deptUtils.getDeptIdList(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, NumConstant.TWENTY, pageIndex); + } while (CollUtil.isNotEmpty(deptIdList)); + } + /** + * 组装元数据对象 + * + * @param deptId + * @param startDate + * @param endDate + * @param kpiCycle + * @param score + * @return com.elink.esua.epdc.entity.KpiMetaDataEntity + * @author work@yujt.net.cn + * @date 2019/12/25 15:53 + */ + private KpiMetaDataEntity packageKpiMetaDataEntity(Long deptId, Date startDate, Date endDate, String kpiCycle, BigDecimal score) { KpiMetaDataEntity metaDataEntity = new KpiMetaDataEntity(); metaDataEntity.setDeptTypeKey(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY); metaDataEntity.setEndDate(endDate); metaDataEntity.setStartDate(startDate); metaDataEntity.setKpiCycle(kpiCycle); + metaDataEntity.setDeptId(deptId); + metaDataEntity.setDataValue(BigDecimal.ZERO); + metaDataEntity.setDataValue(score); metaDataEntity.setDataCode(KpiMetaDataEnum.GRID_SCORE_BY_SUPERIOR_MANUAL.getValue()); metaDataEntity.setDataName(KpiMetaDataEnum.GRID_SCORE_BY_SUPERIOR_MANUAL.getName()); - - do { - for (Long deptId : deptIdList) { - metaDataEntity.setDeptId(deptId); - metaDataEntity.setDataValue(BigDecimal.ZERO); - - KpiManualScoreEntity scoreEntity = this.getKpiManualScoreEntity(deptId, startDate, endDate); - if (null != scoreEntity) { - metaDataEntity.setDataValue(scoreEntity.getScore()); - } - kpiMetaDataDao.insert(metaDataEntity); - } - - pageIndex++; - deptIdList = deptUtils.getDeptIdList(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, NumConstant.TWENTY, pageIndex); - } while (CollUtil.isNotEmpty(deptIdList)); + return metaDataEntity; } @@ -583,4 +597,5 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl metaDateList) { + @Override + public void deleteAndInsertBatch(List metaDateList) { baseDao.deleteListRepetitionMeta(metaDateList); this.insertBatch(metaDateList); }