|
|
@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
|
import com.elink.esua.epdc.commons.tools.constant.FieldConstant; |
|
|
|
import com.elink.esua.epdc.commons.tools.constant.NumConstant; |
|
|
|
import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant; |
|
|
|
import com.elink.esua.epdc.commons.tools.constant.StrConstant; |
|
|
|
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; |
|
|
|
import com.elink.esua.epdc.commons.tools.exception.RenException; |
|
|
@ -19,10 +20,8 @@ import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; |
|
|
|
import com.elink.esua.epdc.commons.tools.utils.DateUtils; |
|
|
|
import com.elink.esua.epdc.commons.tools.utils.LocalDateUtils; |
|
|
|
import com.elink.esua.epdc.commons.tools.utils.Result; |
|
|
|
import com.elink.esua.epdc.dao.KpiManualScoreDao; |
|
|
|
import com.elink.esua.epdc.dao.KpiManualScoreRuleDao; |
|
|
|
import com.elink.esua.epdc.dao.KpiResultGridDao; |
|
|
|
import com.elink.esua.epdc.dao.KpiRuleDao; |
|
|
|
import com.elink.esua.epdc.constant.KpiFieldConstant; |
|
|
|
import com.elink.esua.epdc.dao.*; |
|
|
|
import com.elink.esua.epdc.dto.*; |
|
|
|
import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO; |
|
|
|
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO; |
|
|
@ -30,10 +29,12 @@ import com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO; |
|
|
|
import com.elink.esua.epdc.dto.result.KpiManualScoreTemplateResultDTO; |
|
|
|
import com.elink.esua.epdc.entity.*; |
|
|
|
import com.elink.esua.epdc.enums.KpiCycleEnum; |
|
|
|
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.utils.DeptUtils; |
|
|
|
import com.elink.esua.epdc.utils.KpiLocalDateUtils; |
|
|
|
import com.elink.esua.epdc.utils.StreamUtils; |
|
|
|
import com.google.common.collect.Lists; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
@ -45,6 +46,7 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
import java.io.File; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.YearMonth; |
|
|
|
import java.util.*; |
|
|
@ -67,14 +69,17 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl<KpiManualScoreDao |
|
|
|
private KpiRuleDao kpiRuleDao; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private AdminFeignClient adminFeignClient; |
|
|
|
private KpiResultGridDao kpiResultGridDao; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private KpiResultGridDao kpiResultGridDao; |
|
|
|
private KpiMetaDataDao kpiMetaDataDao; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private DeptUtils deptUtils; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private AdminFeignClient adminFeignClient; |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageData<KpiManualScoreDTO> page(Map<String, Object> params) { |
|
|
|
String ruleId = params.containsKey("ruleId") ? params.get("ruleId").toString() : null; |
|
|
@ -509,4 +514,73 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl<KpiManualScoreDao |
|
|
|
|
|
|
|
return wrapper; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void initManualScoreToMetaData() { |
|
|
|
initManualScoreToMetaDataByCycle(KpiCycleEnum.KPI_CYCLE_MONTH.getValue()); |
|
|
|
initManualScoreToMetaDataByCycle(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue()); |
|
|
|
initManualScoreToMetaDataByCycle(KpiCycleEnum.KPI_CYCLE_YEAR.getValue()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据考核周期,将手动打分初始化为元数据 |
|
|
|
* |
|
|
|
* @param kpiCycle |
|
|
|
* @return void |
|
|
|
* @author work@yujt.net.cn |
|
|
|
* @date 2019/12/25 14:28 |
|
|
|
*/ |
|
|
|
private void initManualScoreToMetaDataByCycle(String kpiCycle) { |
|
|
|
Date startDate = KpiLocalDateUtils.getKpiCycoleStartDate(kpiCycle); |
|
|
|
if (null == startDate) { |
|
|
|
return; |
|
|
|
} |
|
|
|
Date endDate = LocalDateUtils.localDateToDate(YearMonth.now().minusMonths(NumConstant.ONE).atEndOfMonth()); |
|
|
|
int pageIndex = NumConstant.ONE; |
|
|
|
|
|
|
|
List<Long> deptIdList = deptUtils.getDeptIdList(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, NumConstant.TWENTY, pageIndex); |
|
|
|
|
|
|
|
KpiMetaDataEntity metaDataEntity = new KpiMetaDataEntity(); |
|
|
|
metaDataEntity.setDeptTypeKey(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY); |
|
|
|
metaDataEntity.setEndDate(endDate); |
|
|
|
metaDataEntity.setStartDate(startDate); |
|
|
|
metaDataEntity.setKpiCycle(kpiCycle); |
|
|
|
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)); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 查询手动打分对象 |
|
|
|
* |
|
|
|
* @param deptId 部门id |
|
|
|
* @param startDate 开始日 |
|
|
|
* @param endDate 结束日 |
|
|
|
* @return com.elink.esua.epdc.entity.KpiManualScoreEntity |
|
|
|
* @author work@yujt.net.cn |
|
|
|
* @date 2019/12/25 14:28 |
|
|
|
*/ |
|
|
|
private KpiManualScoreEntity getKpiManualScoreEntity(Long deptId, Date startDate, Date endDate) { |
|
|
|
QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>(); |
|
|
|
wrapper.eq(KpiFieldConstant.DEPT_ID, deptId) |
|
|
|
.eq(KpiFieldConstant.SCORE_START_DATE, startDate) |
|
|
|
.eq(KpiFieldConstant.SCORE_END_DATE, endDate); |
|
|
|
return baseDao.selectOne(wrapper); |
|
|
|
} |
|
|
|
} |
|
|
|