Forráskód Böngészése

修改优化师绩效考核代码逻辑

syh 5 éve
szülő
commit
8756bd9239

+ 5 - 0
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/entity/RolePerformanceCommission.java

@@ -60,6 +60,11 @@ public class RolePerformanceCommission {
     @ApiModelProperty(value = "媒体类型")
     @Dict(dicCode = "media_type")
     private Integer appType;
+
+    @Excel(name = "是否有平面", width = 15)
+    @ApiModelProperty(value = "是否有平面")
+    @Dict(dicCode = "has_plane")
+    private Integer hasPlane;
     /**
      * 开始时间
      */

+ 2 - 1
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/IPerformanceService.java

@@ -1,5 +1,6 @@
 package cn.com.ctop.performanceappraisal.service;
 
+import cn.com.ctop.performanceappraisal.entity.OptimizerConfig;
 import cn.com.ctop.performanceappraisal.entity.Performance;
 import cn.com.ctop.performanceappraisal.vo.DesignerCostDetailVO;
 import cn.com.ctop.performanceappraisal.vo.OptimizerCostDetailVO;
@@ -32,5 +33,5 @@ public interface IPerformanceService extends IService<Performance> {
 
     Map<String, Object> getUserOptimizerAccountList(Long projectId, Integer pageNo, Integer pageSize);
 
-    List<OptimizerCostDetailVO> getMemberPerformanceByUserId();
+    List<OptimizerCostDetailVO> getMemberPerformanceByUserId(OptimizerConfig config, OptimizerCostDetailVO totalCostVo);
 }

+ 5 - 5
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/impl/OptimizerRoleInfoServiceImpl.java

@@ -2,19 +2,18 @@ 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.OptimizerRoleInfo;
 import cn.com.ctop.performanceappraisal.mapper.OptimizerRoleInfoMapper;
-import cn.com.ctop.performanceappraisal.mapper.PerformanceMapper;
+import cn.com.ctop.performanceappraisal.service.IOptimizerConfigService;
 import cn.com.ctop.performanceappraisal.service.IOptimizerRoleInfoService;
 import cn.com.ctop.performanceappraisal.service.IPerformanceService;
 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.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -31,7 +30,7 @@ public class OptimizerRoleInfoServiceImpl extends ServiceImpl<OptimizerRoleInfoM
     @Autowired
     private IPerformanceService performanceService;
     @Autowired
-    private PerformanceMapper performanceMapper;
+    private IOptimizerConfigService optimizerConfigService;
 
     @Override
     public Map<String, Object> getmanagerDetail(Integer appType) {
@@ -41,8 +40,9 @@ public class OptimizerRoleInfoServiceImpl extends ServiceImpl<OptimizerRoleInfoM
         sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
         //1:查询媒体任务
         OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost();
+        OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType(appType + "");
         //查询经理所属人员任务完成信息列表
-        List<OptimizerCostDetailVO> detailVOS = performanceService.getMemberPerformanceByUserId();
+        List<OptimizerCostDetailVO> detailVOS = performanceService.getMemberPerformanceByUserId(config, totalCostVo);
         result.put("data", detailVOS);
         ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
         return result;

+ 20 - 6
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/impl/PerformanceOptimizerServiceImpl.java

@@ -103,16 +103,30 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
 
     @Override
     public Map<String, Object> getManagerPerformanceDetail(String mediaType) {
+        Map<String, Object> result = new HashMap<>();
         //获取经理相关信息
-        //查询当前登录人信息
-//        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        LoginUser sysUser = new LoginUser();
-        sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
         //查询优化师系统设置数据
-        OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType("2");
+        OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType(mediaType);
         //2: 查询媒体季度任务完成情况
         OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost();
-        return null;
+        result.put("totalCost", totalCostVo.getTotalCost().toString());
+        if (totalCostVo.getTotalCost().compareTo(config.getMediaTask()) < 0) {
+            //当前消耗季度任务未完成
+            ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
+            result.put("totalRoyalty", totalCostVo.getTotalRoyalty().toString());
+            return result;
+        }
+        //3:查询经理手下所有优化师的总提成
+        List<OptimizerCostDetailVO> opDetails = performanceService.getMemberPerformanceByUserId(config, totalCostVo);
+        BigDecimal totalRoyalty = BigDecimal.ZERO;
+        BigDecimal memberTotalRoyalty = BigDecimal.ZERO;
+        for (OptimizerCostDetailVO vo : opDetails) {
+            memberTotalRoyalty = memberTotalRoyalty.add(vo.getTotalRoyalty());
+        }
+        totalRoyalty = memberTotalRoyalty.multiply(config.getMediaTaskFinishRate()).divide(new BigDecimal("1000")).multiply(new BigDecimal("0.2")).setScale(2, RoundingMode.HALF_UP);
+        ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
+        result.put("totalRoyalty", totalRoyalty.toString());
+        return result;
     }
 
     private BigDecimal getTotalRoyalty(OptimizerConfig config, OptimizerCostDetailVO vo, OptimizerCostDetailVO quarterCost) {

+ 7 - 2
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/impl/PerformanceServiceImpl.java

@@ -134,7 +134,7 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
     }
 
     @Override
-    public List<OptimizerCostDetailVO> getMemberPerformanceByUserId() {
+    public List<OptimizerCostDetailVO> getMemberPerformanceByUserId(OptimizerConfig config, OptimizerCostDetailVO totalCostVo) {
         Map<String, Object> result = new HashMap<>();
         //        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         LoginUser sysUser = new LoginUser();
@@ -146,7 +146,12 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
         String year = DateUtils.getYear(getDate) + "";
         String quarter = DateUtils.getQuarter(getDate) + "";
         List<OptimizerCostDetailVO> detailVOS = performanceMapper.getMemberPerformanceByUserId(startDate, endDate, year, quarter, sysUser.getId());
-        return detailVOS;
+        List<OptimizerCostDetailVO> getDetails = new ArrayList<>();
+        for (OptimizerCostDetailVO vo : detailVOS) {
+            vo.setTotalRoyalty(getTotalRoyalty(config, vo, totalCostVo));
+            getDetails.add(vo);
+        }
+        return getDetails;
     }
 
     private BigDecimal getTotalRoyalty(OptimizerConfig config, OptimizerCostDetailVO vo, OptimizerCostDetailVO quarterCost) {