Jelajahi Sumber

设计师接口修改

hcst_sunzhen 5 tahun lalu
induk
melakukan
a07bf71532

+ 34 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/PerformanceController2.java

@@ -144,4 +144,38 @@ public class PerformanceController2 {
         return result;
     }
 
+    @AutoLog(value = "根据year、quarter计算kuaishou季度设计师绩效")
+    @ApiOperation(value = "根据year、quarter计算kuaishou季度设计师绩效", notes = "根据year、quarter计算kuaishou季度设计师绩效")
+    @PostMapping(value = "/toutiaoDesignerPerformance")
+    public Result<Map<String,Object>> toutiaoDesignerPerformance(@RequestParam(name = "year", required = true) int year,
+                                                              @RequestParam(name = "quarter", required = true) int quarter) {
+        Result<Map<String,Object>> result = new Result<Map<String,Object>>();
+        try {
+            performanceService.toutiaoDesigner(year,quarter);
+            result.setSuccess(true);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            log.error("/ctop/performance2/toutiaoDesignerPerformance出错啦" + "year:" + year + " quarter:" + quarter);
+            result.error500("/ctop/performance2/toutiaoDesignerPerformance出错啦");
+        }
+        return result;
+    }
+
+    @AutoLog(value = "根据year、quarter计算toutiao季度设计师绩效")
+    @ApiOperation(value = "根据year、quarter计算toutiao季度设计师绩效", notes = "根据year、quarter计算toutiao季度设计师绩效")
+    @PostMapping(value = "/kuaishouDesignerPerformance")
+    public Result<Map<String,Object>> kuaishouDesignerPerformance(@RequestParam(name = "year", required = true) int year,
+                                                              @RequestParam(name = "quarter", required = true) int quarter) {
+        Result<Map<String,Object>> result = new Result<Map<String,Object>>();
+        try {
+            performanceService.kuaishouDesigner(year,quarter);
+            result.setSuccess(true);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            log.error("/ctop/performance2/kuaishouDesignerPerformance出错啦" + "year:" + year + " quarter:" + quarter);
+            result.error500("/ctop/performance2/kuaishouDesignerPerformance出错啦");
+        }
+        return result;
+    }
+
 }

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IPerformanceService2.java

@@ -53,4 +53,8 @@ public interface IPerformanceService2 extends IService<Performance> {
     List<DesignMaterialInfo> materialAccountInfo(String materialInfoId);
 
     void designerPerformanceTask(int year, int quarter);
+
+    void kuaishouDesigner(int thisYear, int thisQuarter);
+
+    void toutiaoDesigner(int thisYear, int thisQuarter);
 }

+ 17 - 6
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/PerformanceServiceImpl2.java

@@ -263,7 +263,8 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     }
 
     //快手设计师、设计师leader和平面设计师逻辑
-    private void kuaishouDesigner(int thisYear, int thisQuarter) {
+    @Override
+    public void kuaishouDesigner(int thisYear, int thisQuarter) {
         log.info(thisYear + "年第" + thisQuarter + "季度快手设计师季度绩效计算开始");
         Map<String, String> quarterStartEndDateMap = DateUtils.quarterStartEndDate(thisYear, thisQuarter);
         String startTime = quarterStartEndDateMap.get("startDate");
@@ -284,7 +285,8 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     }
 
     //头条设计师逻辑
-    private void toutiaoDesigner(int thisYear, int thisQuarter) {
+    @Override
+    public void toutiaoDesigner(int thisYear, int thisQuarter) {
         log.info(thisYear + "年第" + thisQuarter + "季度头条设计师季度绩效计算开始");
         Map<String, String> quarterStartEndDateMap = DateUtils.quarterStartEndDate(thisYear, thisQuarter);
         String startTime = quarterStartEndDateMap.get("startDate");
@@ -563,10 +565,13 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
                 continue;
             }
 
-            BigDecimal quarterCost = userEfficientVideoMapMapper.getProjectQuarterCostById(startTime, endTime, projectDTO.getProjectId());
             List<UserDto2> planeList = userEfficientVideoMapMapper.getPlaneByProjectId(projectDTO.getProjectId());
-            //此项目当中平面数量
+            //此项目当中平面数量,平面数量为0的时候说明此project当中没有平面设计师,故跳过
             int size = planeList.size();
+            if(size == 0){
+                continue;
+            }
+            BigDecimal quarterCost = userEfficientVideoMapMapper.getProjectQuarterCostById(startTime, endTime, projectDTO.getProjectId());
             BigDecimal averageQuarterCost = quarterCost.divide(new BigDecimal(String.valueOf(size)));
 
             //循环项目下所有平面设计
@@ -818,9 +823,12 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
 
         //获取剪辑人数并按照提点比例计算每个梯度的人数
         int clipLength = clipList.size();
+        log.info("头条剪辑总人数为:" + clipLength);
         //获取前30%和中间50%的人数(视频有效率四舍五入)
         int clipTop30 = new BigDecimal(String.valueOf(clipLength)).multiply(new BigDecimal("0.3")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
+        log.info("头条前30%的人数为:" + clipTop30);
         int clipMiddle50 = new BigDecimal(String.valueOf(clipLength)).multiply(new BigDecimal("0.5")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
+        log.info("头条中间50%的人数为:" + clipMiddle50);
 
         //循环前30%有绩效的人数并计算其绩效,并入库
         for (int i = 0; i <= clipTop30 - 1; i++) {
@@ -891,10 +899,13 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
                 continue;
             }
 
-            BigDecimal quarterCost = userEfficientVideoMapMapper.getProjectQuarterCostById(startTime, endTime, projectDTO.getProjectId());
             List<UserDto2> planeList = userEfficientVideoMapMapper.getPlaneByProjectId(projectDTO.getProjectId());
-            //此项目当中平面数量
+            //此项目当中平面数量,平面数量为0的时候说明此project当中没有平面设计师,故跳过
             int size = planeList.size();
+            if(size == 0){
+                continue;
+            }
+            BigDecimal quarterCost = userEfficientVideoMapMapper.getProjectQuarterCostById(startTime, endTime, projectDTO.getProjectId());
             BigDecimal averageQuarterCost = quarterCost.divide(new BigDecimal(String.valueOf(size)));
 
             //循环项目下所有平面设计