|
@@ -1,5 +1,7 @@
|
|
|
package cn.com.ctop.performanceappraisal.service.impl;
|
|
|
|
|
|
+import cn.com.ctop.common.module.utils.ResultMapUtils;
|
|
|
+import cn.com.ctop.common.module.utils.StatusCode;
|
|
|
import cn.com.ctop.performanceappraisal.entity.OptimizerConfig;
|
|
|
import cn.com.ctop.performanceappraisal.entity.Performance;
|
|
|
import cn.com.ctop.performanceappraisal.entity.PerformanceOptimizer;
|
|
@@ -10,15 +12,14 @@ import cn.com.ctop.performanceappraisal.service.IPerformanceService;
|
|
|
import cn.com.ctop.performanceappraisal.vo.DesignerCostDetailVO;
|
|
|
import cn.com.ctop.performanceappraisal.vo.OptimizerCostDetailVO;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import org.jeecg.common.system.vo.LoginUser;
|
|
|
import org.jeecg.common.util.DateUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* 设计师季度绩效表
|
|
@@ -32,18 +33,9 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
|
|
|
@Autowired
|
|
|
private PerformanceMapper performanceMapper;
|
|
|
@Autowired
|
|
|
+ private PerformanceOptimizerMapper optimizerMapper;
|
|
|
+ @Autowired
|
|
|
private IOptimizerConfigService optimizerConfigService;
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<DesignerCostDetailVO> getTotalCostDetailByRoleId(String roleId) {
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<OptimizerCostDetailVO> getOptimizerTotalCostDetail(String startDate, String endDate, String year, String quarter) {
|
|
|
- return performanceMapper.getOptimizerTotalCostDetail(startDate, endDate, year, quarter);
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 计算设计岗位绩效逻辑
|
|
|
* 1:查询用户总消耗以及总视频数
|
|
@@ -51,6 +43,21 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
|
|
|
* 3:根据视频有效率分配提点比例
|
|
|
* 4:计算个人总绩效
|
|
|
*/
|
|
|
+ @Override
|
|
|
+ public List<DesignerCostDetailVO> getTotalCostDetailByRoleId(String roleId) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<OptimizerCostDetailVO> getOptimizerTotalCostDetailGroupByUserId(String userId, Integer startIndex, Integer pageSize) {
|
|
|
+ Date date = new Date();
|
|
|
+ Date getDate = DateUtils.addDay(date, -1);
|
|
|
+ String startDate = DateUtils.getQuarterStartDate(getDate);
|
|
|
+ String endDate = DateUtils.getQuarterEndDate(getDate);
|
|
|
+ String year = DateUtils.getYear(getDate) + "";
|
|
|
+ String quarter = DateUtils.getQuarter(getDate) + "";
|
|
|
+ return performanceMapper.getOptimizerTotalCostDetailGroupByUserId(startDate, endDate, year, quarter, userId, startIndex, pageSize);
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 计算优化师岗位绩效逻辑
|
|
@@ -59,18 +66,12 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
|
|
|
* 3:计算单个优化师提成总额
|
|
|
*/
|
|
|
public List<OptimizerCostDetailVO> getOptimizerPerformance() {
|
|
|
- Date date = new Date();
|
|
|
- Date getDate = DateUtils.addDay(date, -1);
|
|
|
- String startDate = DateUtils.getQuarterStartDate(getDate);
|
|
|
- String endDate = DateUtils.getQuarterEndDate(getDate);
|
|
|
- String year = DateUtils.getYear(getDate) + "";
|
|
|
- String quarter = DateUtils.getQuarter(getDate) + "";
|
|
|
//1:查询所有优化师总消耗数据
|
|
|
- List<OptimizerCostDetailVO> detailVOS = getOptimizerTotalCostDetail(startDate, endDate, year, quarter);
|
|
|
+ List<OptimizerCostDetailVO> detailVOS = getOptimizerTotalCostDetailGroupByUserId(null, 1, 10);
|
|
|
//查询优化师系统设置数据
|
|
|
OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType("2");
|
|
|
//2: 查询媒体季度任务完成情况
|
|
|
- OptimizerCostDetailVO totalCostVo = performanceMapper.getOptimizerTotalCost(startDate, endDate, year, quarter);
|
|
|
+ OptimizerCostDetailVO totalCostVo = getOptimizerTotalCost();
|
|
|
//3:计算单个优化师提成总额
|
|
|
List<OptimizerCostDetailVO> getDetailVos = new ArrayList<>();
|
|
|
if (null != detailVOS && detailVOS.size() > 0) {
|
|
@@ -80,12 +81,73 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
|
|
|
optimizerMapper.insert(optimizer);
|
|
|
}
|
|
|
}
|
|
|
- //TODO 需要入库
|
|
|
return getDetailVos;
|
|
|
}
|
|
|
|
|
|
- @Autowired
|
|
|
- private PerformanceOptimizerMapper optimizerMapper;
|
|
|
+ @Override
|
|
|
+ public OptimizerCostDetailVO getOptimizerTotalCost() {
|
|
|
+ Date date = new Date();
|
|
|
+ Date getDate = DateUtils.addDay(date, -1);
|
|
|
+ String startDate = DateUtils.getQuarterStartDate(getDate);
|
|
|
+ String endDate = DateUtils.getQuarterEndDate(getDate);
|
|
|
+ String year = DateUtils.getYear(getDate) + "";
|
|
|
+ String quarter = DateUtils.getQuarter(getDate) + "";
|
|
|
+ return performanceMapper.getOptimizerTotalCost(startDate, endDate, year, quarter);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> getUserOptimizerProjectList(Integer pageNo, Integer pageSize) {
|
|
|
+ Map<String, Object> result = new HashMap<>();
|
|
|
+ // LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ LoginUser sysUser = new LoginUser();
|
|
|
+ sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
|
|
|
+ Integer startIndex = (pageNo - 1) * pageSize;
|
|
|
+ Date date = new Date();
|
|
|
+ Date getDate = DateUtils.addDay(date, -1);
|
|
|
+ String startDate = DateUtils.getQuarterStartDate(getDate);
|
|
|
+ String endDate = DateUtils.getQuarterEndDate(getDate);
|
|
|
+ String year = DateUtils.getYear(getDate) + "";
|
|
|
+ String quarter = DateUtils.getQuarter(getDate) + "";
|
|
|
+ List<OptimizerCostDetailVO> detailVOS = performanceMapper.getUserOptimizerTotalCostGroupByProjectId(startDate, endDate, year, quarter, sysUser.getId(), startIndex, pageSize, null);
|
|
|
+ result.put("data", detailVOS);
|
|
|
+ ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> getUserOptimizerAccountList(Long projectId, Integer pageNo, Integer pageSize) {
|
|
|
+ Map<String, Object> result = new HashMap<>();
|
|
|
+ // LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ LoginUser sysUser = new LoginUser();
|
|
|
+ sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
|
|
|
+ Integer startIndex = (pageNo - 1) * pageSize;
|
|
|
+ Date date = new Date();
|
|
|
+ Date getDate = DateUtils.addDay(date, -1);
|
|
|
+ String startDate = DateUtils.getQuarterStartDate(getDate);
|
|
|
+ String endDate = DateUtils.getQuarterEndDate(getDate);
|
|
|
+ String year = DateUtils.getYear(getDate) + "";
|
|
|
+ String quarter = DateUtils.getQuarter(getDate) + "";
|
|
|
+ List<OptimizerCostDetailVO> detailVOS = performanceMapper.getUserOptimizerTotalCostGroupByAccountId(startDate, endDate, year, quarter, sysUser.getId(), startIndex, pageSize, projectId, null);
|
|
|
+ result.put("data", detailVOS);
|
|
|
+ ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<OptimizerCostDetailVO> getMemberPerformanceByUserId() {
|
|
|
+ Map<String, Object> result = new HashMap<>();
|
|
|
+ // LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ LoginUser sysUser = new LoginUser();
|
|
|
+ sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
|
|
|
+ Date date = new Date();
|
|
|
+ Date getDate = DateUtils.addDay(date, -1);
|
|
|
+ String startDate = DateUtils.getQuarterStartDate(getDate);
|
|
|
+ String endDate = DateUtils.getQuarterEndDate(getDate);
|
|
|
+ String year = DateUtils.getYear(getDate) + "";
|
|
|
+ String quarter = DateUtils.getQuarter(getDate) + "";
|
|
|
+ List<OptimizerCostDetailVO> detailVOS = performanceMapper.getMemberPerformanceByUserId(startDate, endDate, year, quarter, sysUser.getId());
|
|
|
+ return detailVOS;
|
|
|
+ }
|
|
|
|
|
|
private BigDecimal getTotalRoyalty(OptimizerConfig config, OptimizerCostDetailVO vo, OptimizerCostDetailVO quarterCost) {
|
|
|
BigDecimal royalty = BigDecimal.ZERO;
|