|
@ -23,9 +23,13 @@ import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
import com.elink.esua.epdc.commons.tools.page.PageData; |
|
|
import com.elink.esua.epdc.commons.tools.page.PageData; |
|
|
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; |
|
|
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; |
|
|
import com.elink.esua.epdc.commons.tools.constant.FieldConstant; |
|
|
import com.elink.esua.epdc.commons.tools.constant.FieldConstant; |
|
|
|
|
|
import com.elink.esua.epdc.dao.KpiMetaDataDao; |
|
|
import com.elink.esua.epdc.dao.KpiResultGridDao; |
|
|
import com.elink.esua.epdc.dao.KpiResultGridDao; |
|
|
|
|
|
import com.elink.esua.epdc.dto.KpiMetaDataDTO; |
|
|
import com.elink.esua.epdc.dto.KpiResultGridDTO; |
|
|
import com.elink.esua.epdc.dto.KpiResultGridDTO; |
|
|
import com.elink.esua.epdc.entity.KpiResultGridEntity; |
|
|
import com.elink.esua.epdc.entity.KpiResultGridEntity; |
|
|
|
|
|
import com.elink.esua.epdc.enums.KpiMetaDataEnum; |
|
|
|
|
|
import com.elink.esua.epdc.enums.KpiResultGridDataEnum; |
|
|
import com.elink.esua.epdc.redis.KpiResultGridRedis; |
|
|
import com.elink.esua.epdc.redis.KpiResultGridRedis; |
|
|
import com.elink.esua.epdc.service.KpiResultGridService; |
|
|
import com.elink.esua.epdc.service.KpiResultGridService; |
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
import org.apache.commons.lang3.StringUtils; |
|
@ -33,9 +37,9 @@ import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
import java.util.Arrays; |
|
|
import java.math.BigDecimal; |
|
|
import java.util.List; |
|
|
import java.text.SimpleDateFormat; |
|
|
import java.util.Map; |
|
|
import java.util.*; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 网格考核最终得分 |
|
|
* 网格考核最终得分 |
|
@ -48,21 +52,38 @@ public class KpiResultGridServiceImpl extends BaseServiceImpl<KpiResultGridDao, |
|
|
|
|
|
|
|
|
@Autowired |
|
|
@Autowired |
|
|
private KpiResultGridRedis kpiResultGridRedis; |
|
|
private KpiResultGridRedis kpiResultGridRedis; |
|
|
|
|
|
@Autowired |
|
|
|
|
|
private KpiResultGridDao kpiResultGridDao; |
|
|
|
|
|
@Autowired |
|
|
|
|
|
private KpiMetaDataDao kpiMetaDataDao; |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public PageData<KpiResultGridDTO> page(Map<String, Object> params) { |
|
|
public PageData<KpiResultGridDTO> page(Map<String, Object> params) { |
|
|
IPage<KpiResultGridEntity> page = baseDao.selectPage( |
|
|
Integer page = Integer.parseInt(params.get("page").toString()); |
|
|
getPage(params, FieldConstant.CREATED_TIME, false), |
|
|
Integer limit = Integer.parseInt(params.get("limit").toString()); |
|
|
getWrapper(params) |
|
|
String allDeptIds = ""; |
|
|
); |
|
|
if (params.get("streetId") != "" && params.get("streetId") != null){ |
|
|
return getPageData(page, KpiResultGridDTO.class); |
|
|
allDeptIds = params.get("streetId").toString(); //查询条件 街道
|
|
|
|
|
|
} |
|
|
|
|
|
if (params.get("community") != "" && params.get("community") != null){ |
|
|
|
|
|
allDeptIds = params.get("community").toString(); //查询条件 社区
|
|
|
|
|
|
} |
|
|
|
|
|
if (params.get("gridId") != "" && params.get("gridId") != null){ |
|
|
|
|
|
allDeptIds = params.get("gridId").toString(); //查询条件 网格
|
|
|
|
|
|
} |
|
|
|
|
|
params.put("page",page -1); |
|
|
|
|
|
params.put("limit", limit); |
|
|
|
|
|
params.put("allDeptIds", allDeptIds); |
|
|
|
|
|
int count = kpiResultGridDao.selectStatisticalInfoCount(params); |
|
|
|
|
|
List<KpiResultGridDTO> list = kpiResultGridDao.selectStatisticalInfoList(params); |
|
|
|
|
|
PageData<KpiResultGridDTO> pageData = new PageData<KpiResultGridDTO>(list,count); |
|
|
|
|
|
return pageData; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public List<KpiResultGridDTO> list(Map<String, Object> params) { |
|
|
public List<KpiResultGridDTO> list(Map<String, Object> params) { |
|
|
List<KpiResultGridEntity> entityList = baseDao.selectList(getWrapper(params)); |
|
|
List<KpiResultGridDTO> entityList = baseDao.list(params); |
|
|
|
|
|
return entityList; |
|
|
return ConvertUtils.sourceToTarget(entityList, KpiResultGridDTO.class); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private QueryWrapper<KpiResultGridEntity> getWrapper(Map<String, Object> params){ |
|
|
private QueryWrapper<KpiResultGridEntity> getWrapper(Map<String, Object> params){ |
|
@ -74,10 +95,123 @@ public class KpiResultGridServiceImpl extends BaseServiceImpl<KpiResultGridDao, |
|
|
return wrapper; |
|
|
return wrapper; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @Description: 返回考核统计 详情页详情 |
|
|
|
|
|
* @Param: [id] |
|
|
|
|
|
* @return: java.util.List<com.elink.esua.epdc.dto.KpiResultGridDTO> |
|
|
|
|
|
* 序号:rownum |
|
|
|
|
|
* 规则:rule |
|
|
|
|
|
* 详情:detail |
|
|
|
|
|
* @Author: zy |
|
|
|
|
|
* @Date: 2019-12-20 |
|
|
|
|
|
*/ |
|
|
@Override |
|
|
@Override |
|
|
public KpiResultGridDTO get(String id) { |
|
|
public List<KpiResultGridDTO> get(String id) { |
|
|
|
|
|
List<KpiResultGridDTO> listMap = new ArrayList<KpiResultGridDTO>(); |
|
|
|
|
|
//查询网格考核最终得分表, 拼接:履行抓基层党建工作职责得分
|
|
|
|
|
|
KpiResultGridDTO workScore = this.getWorkDutyScore(id); |
|
|
|
|
|
listMap.add(workScore); |
|
|
|
|
|
//根据 部门ID(网格ID),开始时间,结束时间(年月日) 查询 绩效考核的元数据表, 根据枚举计算得分
|
|
|
|
|
|
Map<String,BigDecimal> mapBigDecimal = this.gridProblemHandlingScore(workScore); |
|
|
|
|
|
|
|
|
|
|
|
// 拼接:群众反映问题网格响应率得分
|
|
|
|
|
|
KpiResultGridDTO dto = new KpiResultGridDTO(); |
|
|
|
|
|
StringBuilder responseDetail = new StringBuilder(); |
|
|
|
|
|
responseDetail.append("群众反应问题总数:"); |
|
|
|
|
|
responseDetail.append(mapBigDecimal.get("peopleReportAmount") + ","); |
|
|
|
|
|
responseDetail.append("群众反应问题响应数:" + mapBigDecimal.get("peopleReportRespAmount")); |
|
|
|
|
|
dto.setRownum(2); |
|
|
|
|
|
dto.setRule(KpiResultGridDataEnum.GIRD_PROBLEM_RESPONSE_RATE_SCORE.getName()); |
|
|
|
|
|
dto.setDetail(responseDetail.toString()); |
|
|
|
|
|
listMap.add(dto); |
|
|
|
|
|
|
|
|
|
|
|
// 拼接:群群众反映问题网格办理满意率得分
|
|
|
|
|
|
KpiResultGridDTO dto1 = new KpiResultGridDTO(); |
|
|
|
|
|
StringBuilder satisfiedDetail = new StringBuilder(); |
|
|
|
|
|
satisfiedDetail.append("调查总数:" + mapBigDecimal.get("total") + ";满意数:" + mapBigDecimal.get("peopleHighEvaluationAmount") + ";基本满意数:" |
|
|
|
|
|
+ mapBigDecimal.get("peopleMediumEvaluationAmount") + ";不满意数:" + mapBigDecimal.get("peopleLowEvaluationAmount")); |
|
|
|
|
|
dto1.setRownum(3); |
|
|
|
|
|
dto1.setRule(KpiResultGridDataEnum.GIRD_PROBLEM_SATISFACTION_RATE_SCORE.getName()); |
|
|
|
|
|
dto1.setDetail(satisfiedDetail.toString()); |
|
|
|
|
|
listMap.add(dto1); |
|
|
|
|
|
return listMap; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @Description: 根据 网格考核最终得分表主键,拼接:履行抓基层党建工作职责得分 |
|
|
|
|
|
* @Param: [id] |
|
|
|
|
|
* @return: com.elink.esua.epdc.dto.KpiResultGridDTO |
|
|
|
|
|
* @Author: zy |
|
|
|
|
|
* @Date: 2019-12-20 |
|
|
|
|
|
*/ |
|
|
|
|
|
public KpiResultGridDTO getWorkDutyScore(String id){ |
|
|
|
|
|
KpiResultGridDTO kpiResultGridDTO = new KpiResultGridDTO(); |
|
|
KpiResultGridEntity entity = baseDao.selectById(id); |
|
|
KpiResultGridEntity entity = baseDao.selectById(id); |
|
|
return ConvertUtils.sourceToTarget(entity, KpiResultGridDTO.class); |
|
|
StringBuilder detail = new StringBuilder(); |
|
|
|
|
|
detail.append("评分部门:"); |
|
|
|
|
|
if (entity.getAllDeptNames() != null && entity.getAllDeptNames() != ""){ |
|
|
|
|
|
String[] split = entity.getAllDeptNames().split("-"); |
|
|
|
|
|
if (split.length >= 2){ |
|
|
|
|
|
detail.append(split[2] + ","); |
|
|
|
|
|
}else { |
|
|
|
|
|
detail.append(","); |
|
|
|
|
|
} |
|
|
|
|
|
}else { |
|
|
|
|
|
detail.append(","); |
|
|
|
|
|
} |
|
|
|
|
|
SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
|
|
|
|
|
String scoreTime = sim.format(entity.getCreatedTime()); |
|
|
|
|
|
detail.append("评分时间:" + scoreTime + ", 原始得分:" + entity.getManualScore()); |
|
|
|
|
|
kpiResultGridDTO.setRownum(1); |
|
|
|
|
|
kpiResultGridDTO.setRule(KpiResultGridDataEnum.BASIC_LEVEL_WORK_SCORE.getName()); |
|
|
|
|
|
kpiResultGridDTO.setDetail(detail.toString()); |
|
|
|
|
|
//用作后期查询,不生成导出列
|
|
|
|
|
|
kpiResultGridDTO.setGridId(entity.getGridId()); |
|
|
|
|
|
kpiResultGridDTO.setId(id); |
|
|
|
|
|
kpiResultGridDTO.setStartDate(entity.getStartDate()); |
|
|
|
|
|
kpiResultGridDTO.setEndDate(entity.getEndDate()); |
|
|
|
|
|
return kpiResultGridDTO; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @Description: 部门ID(网格ID),开始时间,结束时间(年月日) 查询 绩效考核的元数据表 |
|
|
|
|
|
* @Param: {startDate}、{endDate}、{deptId} |
|
|
|
|
|
* @return: com.elink.esua.epdc.dto.KpiResultGridDTO |
|
|
|
|
|
* @Author: zy |
|
|
|
|
|
* @Date: 2019-12-20 |
|
|
|
|
|
*/ |
|
|
|
|
|
public Map<String,BigDecimal> gridProblemHandlingScore(KpiResultGridDTO kpiResultGridDTO){ |
|
|
|
|
|
Map<String,BigDecimal> map = new HashMap<String,BigDecimal>(); |
|
|
|
|
|
List<KpiMetaDataDTO> dto = kpiMetaDataDao.queryGridProblemHandlingScore(kpiResultGridDTO); |
|
|
|
|
|
BigDecimal peopleReportAmount = new BigDecimal(0); |
|
|
|
|
|
BigDecimal peopleReportRespAmount = new BigDecimal(0); |
|
|
|
|
|
BigDecimal peopleHighEvaluationAmount = new BigDecimal(0); |
|
|
|
|
|
BigDecimal peopleMediumEvaluationAmount = new BigDecimal(0); |
|
|
|
|
|
BigDecimal peopleLowEvaluationAmount = new BigDecimal(0); |
|
|
|
|
|
BigDecimal total = new BigDecimal(0); |
|
|
|
|
|
for (KpiMetaDataDTO kpiMetaDataDTO : dto){ |
|
|
|
|
|
if (KpiMetaDataEnum.PEOPLE_REPORT_AMOUNT.equals(kpiMetaDataDTO.getDataCode())){ // 计算 群众反映问题总数
|
|
|
|
|
|
peopleReportAmount = peopleReportAmount.add(kpiMetaDataDTO.getDataValue()); |
|
|
|
|
|
}else if (KpiMetaDataEnum.PEOPLE_REPORT_RESP_AMOUNT.equals(kpiMetaDataDTO.getDataCode())){ //群众反映问题被响应数
|
|
|
|
|
|
peopleReportRespAmount = peopleReportRespAmount.add(kpiMetaDataDTO.getDataValue()); |
|
|
|
|
|
}else if (KpiMetaDataEnum.PEOPLE_HIGH_EVALUATION_AMOUNT.equals(kpiMetaDataDTO.getDataCode())){ //问题办理满意数
|
|
|
|
|
|
peopleHighEvaluationAmount = peopleHighEvaluationAmount.add(kpiMetaDataDTO.getDataValue()); |
|
|
|
|
|
}else if (KpiMetaDataEnum.PEOPLE_MEDIUM_EVALUATION_AMOUNT.equals(kpiMetaDataDTO.getDataCode())){ //问题办理基本满意数
|
|
|
|
|
|
peopleMediumEvaluationAmount = peopleMediumEvaluationAmount.add(kpiMetaDataDTO.getDataValue()); |
|
|
|
|
|
}else if (KpiMetaDataEnum.PEOPLE_LOW_EVALUATION_AMOUNT.equals(kpiMetaDataDTO.getDataCode())){ //问题办理不满意数
|
|
|
|
|
|
peopleLowEvaluationAmount = peopleLowEvaluationAmount.add(kpiMetaDataDTO.getDataValue()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
total = total.add(peopleHighEvaluationAmount); |
|
|
|
|
|
total = total.add(peopleMediumEvaluationAmount); |
|
|
|
|
|
total = total.add(peopleLowEvaluationAmount); |
|
|
|
|
|
map.put("peopleReportAmount",peopleReportAmount); |
|
|
|
|
|
map.put("peopleReportRespAmount",peopleReportRespAmount); |
|
|
|
|
|
map.put("peopleHighEvaluationAmount",peopleHighEvaluationAmount); |
|
|
|
|
|
map.put("peopleMediumEvaluationAmount",peopleMediumEvaluationAmount); |
|
|
|
|
|
map.put("peopleLowEvaluationAmount",peopleLowEvaluationAmount); |
|
|
|
|
|
map.put("total",total); |
|
|
|
|
|
return map; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|