Browse Source

添加优化师经理绩效计算接口--修改获取当前季度数工具类

syh 5 years ago
parent
commit
fdf9d35ae0

+ 1 - 1
jeecg-boot-base-common/src/main/java/org/jeecg/common/util/DateUtils.java

@@ -911,7 +911,7 @@ public class DateUtils extends PropertyEditorSupport {
         Calendar cal = Calendar.getInstance();
         Calendar cal = Calendar.getInstance();
         cal.setTime(date);
         cal.setTime(date);
         //获取当前月份
         //获取当前月份
-        int month = cal.get(Calendar.MONDAY+1);
+        int month = cal.get(Calendar.MONDAY) + 1;
         if(month<=3){
         if(month<=3){
             return 1;
             return 1;
         }else if(month <=6){
         }else if(month <=6){

+ 1 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java

@@ -80,6 +80,7 @@ public class ShiroConfig {
 		filterChainDefinitionMap.put("/ctop/performanceOptimizer/ranking/list", "anon");
 		filterChainDefinitionMap.put("/ctop/performanceOptimizer/ranking/list", "anon");
 		filterChainDefinitionMap.put("/ctop/performance/project/list", "anon");
 		filterChainDefinitionMap.put("/ctop/performance/project/list", "anon");
 		filterChainDefinitionMap.put("/ctop/performance/account/list", "anon");
 		filterChainDefinitionMap.put("/ctop/performance/account/list", "anon");
+		filterChainDefinitionMap.put("/ctop/optimizerRoleInfo/manager/detail", "anon");
 
 
 
 
         filterChainDefinitionMap.put("/generic/**", "anon");
         filterChainDefinitionMap.put("/generic/**", "anon");

+ 1 - 1
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/mapper/PerformanceMapper.java

@@ -24,7 +24,7 @@ public interface PerformanceMapper extends BaseMapper<Performance> {
 
 
     List<OptimizerCostDetailVO> getUserOptimizerTotalCostGroupByAccountId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize, @Param(value = "projectId") Long projectId, @Param(value = "accountId") Long accountId);
     List<OptimizerCostDetailVO> getUserOptimizerTotalCostGroupByAccountId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize, @Param(value = "projectId") Long projectId, @Param(value = "accountId") Long accountId);
 
 
-    List<OptimizerCostDetailVO> getMemberPerformanceByUserId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId);
+    List<OptimizerCostDetailVO> getMemberPerformanceByOrgCode(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "orgCode") String orgCode);
 
 
     OptimizerCostDetailVO getOptimizerTotalCost(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter);
     OptimizerCostDetailVO getOptimizerTotalCost(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter);
 }
 }

+ 2 - 8
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/mapper/xml/PerformanceMapper.xml

@@ -150,7 +150,7 @@
         GROUP BY userRole.role_id
         GROUP BY userRole.role_id
     </select>
     </select>
 
 
-    <select id="getMemberPerformanceByUserId" resultMap="OptimizerTotalCostDetail">
+    <select id="getMemberPerformanceByOrgCode" resultMap="OptimizerTotalCostDetail">
         SELECT
         SELECT
             sysUser.id as userId,sysUser.realname as realName,SUM(charge) as totalCost,#{year} AS year,#{quarter} as quarter,2 as appType
             sysUser.id as userId,sysUser.realname as realName,SUM(charge) as totalCost,#{year} AS year,#{quarter} as quarter,2 as appType
         FROM
         FROM
@@ -161,16 +161,10 @@
             sys_user_role userRole ON userRole.user_id = allocation.user_id
             sys_user_role userRole ON userRole.user_id = allocation.user_id
         LEFT JOIN
         LEFT JOIN
             sys_user sysUser ON sysUser.id = userRole.user_id
             sys_user sysUser ON sysUser.id = userRole.user_id
-		LEFT JOIN
-			ctop_optimizer_role_info roleInfo ON roleInfo.user_id = sysUser.id
         WHERE
         WHERE
             userRole.role_id = '79fba4f45f1b8e284af9c68311c6c771'
             userRole.role_id = '79fba4f45f1b8e284af9c68311c6c771'
 		AND
 		AND
-			roleInfo.belonger_id = #{userId}
-		AND
-            dailiAccount.stat_date &gt;= #{startDate}
-        AND
-            dailiAccount.stat_date &lt; #{endDate}
+			sysUser.org_code = #{orgCode}
         GROUP BY
         GROUP BY
             sysUser.id
             sysUser.id
         ORDER BY
         ORDER BY

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

@@ -33,5 +33,5 @@ public interface IPerformanceService extends IService<Performance> {
 
 
     Map<String, Object> getUserOptimizerAccountList(Long projectId, Integer pageNo, Integer pageSize);
     Map<String, Object> getUserOptimizerAccountList(Long projectId, Integer pageNo, Integer pageSize);
 
 
-    List<OptimizerCostDetailVO> getMemberPerformanceByUserId(OptimizerConfig config, OptimizerCostDetailVO totalCostVo);
+    Map<String, Object> getMemberPerformanceByUserId(OptimizerConfig config, OptimizerCostDetailVO totalCostVo);
 }
 }

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

@@ -10,12 +10,10 @@ import cn.com.ctop.performanceappraisal.service.IOptimizerRoleInfoService;
 import cn.com.ctop.performanceappraisal.service.IPerformanceService;
 import cn.com.ctop.performanceappraisal.service.IPerformanceService;
 import cn.com.ctop.performanceappraisal.vo.OptimizerCostDetailVO;
 import cn.com.ctop.performanceappraisal.vo.OptimizerCostDetailVO;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.jeecg.common.system.vo.LoginUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.util.HashMap;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
@@ -35,16 +33,18 @@ public class OptimizerRoleInfoServiceImpl extends ServiceImpl<OptimizerRoleInfoM
     @Override
     @Override
     public Map<String, Object> getmanagerDetail(Integer appType) {
     public Map<String, Object> getmanagerDetail(Integer appType) {
         Map<String, Object> result = new HashMap<>();
         Map<String, Object> result = new HashMap<>();
-        //        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        LoginUser sysUser = new LoginUser();
-        sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
-        //1:查询媒体任务
-        OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost();
-        OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType(appType + "");
-        //查询经理所属人员任务完成信息列表
-        List<OptimizerCostDetailVO> detailVOS = performanceService.getMemberPerformanceByUserId(config, totalCostVo);
-        result.put("data", detailVOS);
-        ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
-        return result;
+        try {
+            //1:查询媒体任务
+            OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost();
+            OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType(appType + "");
+            //查询经理所属人员任务完成信息列表
+            result = performanceService.getMemberPerformanceByUserId(config, totalCostVo);
+            ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
+            return result;
+        } catch (Exception e) {
+            e.printStackTrace();
+            ResultMapUtils.setResultMap(result, StatusCode.COMMON_SERVER_ERROR.getCode());
+            return result;
+        }
     }
     }
 }
 }

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

@@ -117,15 +117,7 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
             return result;
             return result;
         }
         }
         //3:查询经理手下所有优化师的总提成
         //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());
+        result = performanceService.getMemberPerformanceByUserId(config, totalCostVo);
         return result;
         return result;
     }
     }
 
 

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

@@ -134,24 +134,40 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
     }
     }
 
 
     @Override
     @Override
-    public List<OptimizerCostDetailVO> getMemberPerformanceByUserId(OptimizerConfig config, OptimizerCostDetailVO totalCostVo) {
+    public Map<String, Object> getMemberPerformanceByUserId(OptimizerConfig config, OptimizerCostDetailVO totalCostVo) {
         Map<String, Object> result = new HashMap<>();
         Map<String, Object> result = new HashMap<>();
+        //查询此机构下其他运营专员跑量数据
         //        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         //        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         LoginUser sysUser = new LoginUser();
         LoginUser sysUser = new LoginUser();
         sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
         sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
+        sysUser.setOrgCode("A01A07A01");
         Date date = new Date();
         Date date = new Date();
         Date getDate = DateUtils.addDay(date, -1);
         Date getDate = DateUtils.addDay(date, -1);
         String startDate = DateUtils.getQuarterStartDate(getDate);
         String startDate = DateUtils.getQuarterStartDate(getDate);
         String endDate = DateUtils.getQuarterEndDate(getDate);
         String endDate = DateUtils.getQuarterEndDate(getDate);
         String year = DateUtils.getYear(getDate) + "";
         String year = DateUtils.getYear(getDate) + "";
         String quarter = DateUtils.getQuarter(getDate) + "";
         String quarter = DateUtils.getQuarter(getDate) + "";
-        List<OptimizerCostDetailVO> detailVOS = performanceMapper.getMemberPerformanceByUserId(startDate, endDate, year, quarter, sysUser.getId());
+        //查询用户相关机构编号
+        List<OptimizerCostDetailVO> detailVOS = performanceMapper.getMemberPerformanceByOrgCode(startDate, endDate, year, quarter, sysUser.getOrgCode());
         List<OptimizerCostDetailVO> getDetails = new ArrayList<>();
         List<OptimizerCostDetailVO> getDetails = new ArrayList<>();
+        BigDecimal memberTotaRoyalty = BigDecimal.ZERO;
+        result.put("totalCost", totalCostVo.getTotalCost());
+        result.put("mediaTask", config.getMediaTask());
         for (OptimizerCostDetailVO vo : detailVOS) {
         for (OptimizerCostDetailVO vo : detailVOS) {
-            vo.setTotalRoyalty(getTotalRoyalty(config, vo, totalCostVo));
+            BigDecimal royalty = getTotalRoyalty(config, vo, totalCostVo);
+            vo.setTotalRoyalty(royalty);
+            memberTotaRoyalty = memberTotaRoyalty.add(royalty);
             getDetails.add(vo);
             getDetails.add(vo);
         }
         }
-        return getDetails;
+        result.put("memberDetails", getDetails);
+        if (totalCostVo.getTotalCost().compareTo(config.getMediaTask()) < 0) {
+            result.put("totalRoyalty", "0");
+            ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
+            return result;
+        }
+        result.put("totalRoyalty", memberTotaRoyalty.multiply(new BigDecimal("0.2")).setScale(2, RoundingMode.HALF_UP).toString());
+        ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
+        return result;
     }
     }
 
 
     private BigDecimal getTotalRoyalty(OptimizerConfig config, OptimizerCostDetailVO vo, OptimizerCostDetailVO quarterCost) {
     private BigDecimal getTotalRoyalty(OptimizerConfig config, OptimizerCostDetailVO vo, OptimizerCostDetailVO quarterCost) {