|
@@ -2,6 +2,7 @@ package com.rongwei.sfcommon.sys.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.rongwe.scentity.domian.AspSafetyProductObjective;
|
|
@@ -37,12 +38,25 @@ public class AspSafetyProductObjectiveServiceImpl extends ServiceImpl<AspSafetyP
|
|
|
@Override
|
|
|
public void safetyResult() {
|
|
|
//==============查询所有需要生成的目标
|
|
|
- //查询今年的所有目标数据
|
|
|
- List<AspSafetyProductObjective> aspSafetyProductObjectives = this.baseMapper.selectList(new QueryWrapper<AspSafetyProductObjective>().lambda().like(AspSafetyProductObjective::getYear, DateUtil.thisYear()));
|
|
|
//获取当前季度(1,2,3,4)
|
|
|
int quarter = DateUtil.quarter(DateUtil.date());
|
|
|
+ //查询考核主表今年、当前季度,是否有已经生成的数据
|
|
|
+ List<AspSafetyProductObjectiveResult> aspSafetyProductObjectiveResults = objectiveResultService.getBaseMapper().selectList(new QueryWrapper<AspSafetyProductObjectiveResult>().lambda()
|
|
|
+ .like(AspSafetyProductObjectiveResult::getYear, DateUtil.thisYear())
|
|
|
+ .eq(AspSafetyProductObjectiveResult::getQuerter, quarter));
|
|
|
+ //获取mainID
|
|
|
+ List<String> hadMainIDList = aspSafetyProductObjectiveResults.stream().map(AspSafetyProductObjectiveResult::getMainid).collect(Collectors.toList());
|
|
|
+
|
|
|
+ //查询今年的所有目标数据
|
|
|
+ List<AspSafetyProductObjective> aspSafetyProductObjectiveList = this.baseMapper.selectList(new QueryWrapper<AspSafetyProductObjective>().lambda().like(AspSafetyProductObjective::getYear, DateUtil.thisYear()));
|
|
|
+ //过滤掉已经生成考核的数据
|
|
|
+ List<AspSafetyProductObjective> aspSafetyProductObjectives = aspSafetyProductObjectiveList.stream().filter(item -> !hadMainIDList.contains(item.getId())).collect(Collectors.toList());
|
|
|
+
|
|
|
//遍历目标获取所有目标的ID集合
|
|
|
List<String> collectIds = aspSafetyProductObjectives.stream().map(AspSafetyProductObjective::getId).collect(Collectors.toList());
|
|
|
+ if (ObjectUtil.isEmpty(collectIds)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
//查询出所有目标的子表数据
|
|
|
List<AspSafetyProductObjectiveScoreDetail> scoreDetails = scoreDetailService.getBaseMapper().selectList(new QueryWrapper<AspSafetyProductObjectiveScoreDetail>().lambda().in(AspSafetyProductObjectiveScoreDetail::getMainid, collectIds));
|
|
|
|