|
@@ -630,11 +630,11 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
String endTime = quarterStartEndDateMap.get("endDate");
|
|
|
|
|
|
//编导
|
|
|
- kuaishouPlanPerformance(thisYear, thisQuarter, startTime, endTime);
|
|
|
+ //kuaishouPlanPerformance(thisYear, thisQuarter, startTime, endTime);
|
|
|
//拍摄
|
|
|
- kuaishouShotPerformance(thisYear, thisQuarter, startTime, endTime);
|
|
|
+ //kuaishouShotPerformance(thisYear, thisQuarter, startTime, endTime);
|
|
|
//剪辑
|
|
|
- kuaishouClipPerformance(thisYear, thisQuarter, startTime, endTime);
|
|
|
+ //kuaishouClipPerformance(thisYear, thisQuarter, startTime, endTime);
|
|
|
//平面设计
|
|
|
kuaishouPlanePerformance(thisYear, thisQuarter, startTime, endTime);
|
|
|
//设计师leader
|
|
@@ -706,8 +706,10 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//总消耗--获取这个人的总消耗
|
|
|
BigDecimal totalCost = userEfficientVideoMapMapper.getTotalCostByPlanId(planList.get(i).getUserId(), startTime, endTime);
|
|
|
//总绩效=总消耗*提点比例(5‰)*提成比例(编导40%)
|
|
|
- BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.005")).multiply(new BigDecimal("0.4"));
|
|
|
-
|
|
|
+ BigDecimal totalPerformance = BigDecimal.ZERO;
|
|
|
+ if(totalCost != null) {
|
|
|
+ totalPerformance = totalCost.multiply(new BigDecimal("0.005")).multiply(new BigDecimal("0.4"));
|
|
|
+ }
|
|
|
Performance performance = new Performance();
|
|
|
performance.setAppType(2); //1头条 2快手
|
|
|
performance.setRoleId(planList.get(i).getRoleId());
|
|
@@ -793,8 +795,10 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//总消耗--获取这个人所在项目的总消耗
|
|
|
BigDecimal totalCost = userEfficientVideoMapMapper.getTotalCostByShotId(shotList.get(i).getUserId(), startTime, endTime);
|
|
|
//总绩效=总消耗*提点比例(5‰)*提成比例(拍摄10%)
|
|
|
- BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.005")).multiply(new BigDecimal("0.1"));
|
|
|
-
|
|
|
+ BigDecimal totalPerformance = BigDecimal.ZERO;
|
|
|
+ if(totalCost != null) {
|
|
|
+ totalPerformance = totalCost.multiply(new BigDecimal("0.005")).multiply(new BigDecimal("0.1"));
|
|
|
+ }
|
|
|
Performance performance = new Performance();
|
|
|
performance.setAppType(2); //1头条 2快手
|
|
|
performance.setRoleId(shotList.get(i).getRoleId());
|
|
@@ -819,8 +823,10 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//总消耗--获取这个人所在项目的总消耗
|
|
|
BigDecimal totalCost = userEfficientVideoMapMapper.getTotalCostByShotId(shotList.get(i).getUserId(), startTime, endTime);
|
|
|
//总绩效=总消耗*提点比例(3‰)*提成比例(拍摄10%)
|
|
|
- BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.003")).multiply(new BigDecimal("0.1"));
|
|
|
-
|
|
|
+ BigDecimal totalPerformance = BigDecimal.ZERO;
|
|
|
+ if(totalCost != null) {
|
|
|
+ totalPerformance = totalCost.multiply(new BigDecimal("0.003")).multiply(new BigDecimal("0.1"));
|
|
|
+ }
|
|
|
Performance performance = new Performance();
|
|
|
performance.setAppType(2); //1头条 2快手
|
|
|
performance.setRoleId(shotList.get(i).getRoleId());
|
|
@@ -877,8 +883,10 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//总消耗--获取这个人所在项目的总消耗
|
|
|
BigDecimal totalCost = userEfficientVideoMapMapper.getTotalCostByClipId(clipList.get(i).getUserId(), startTime, endTime);
|
|
|
//总绩效=总消耗*提点比例(5‰)*提成比例(剪辑30%)
|
|
|
- BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.005")).multiply(new BigDecimal("0.3"));
|
|
|
-
|
|
|
+ BigDecimal totalPerformance = BigDecimal.ZERO;
|
|
|
+ if(totalCost != null) {
|
|
|
+ totalPerformance = totalCost.multiply(new BigDecimal("0.005")).multiply(new BigDecimal("0.3"));
|
|
|
+ }
|
|
|
Performance performance = new Performance();
|
|
|
performance.setAppType(2); //1头条 2快手
|
|
|
performance.setRoleId(clipList.get(i).getRoleId());
|
|
@@ -903,8 +911,10 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//总消耗--获取这个人所在项目的总消耗
|
|
|
BigDecimal totalCost = userEfficientVideoMapMapper.getTotalCostByClipId(clipList.get(i).getUserId(), startTime, endTime);
|
|
|
//总绩效=总消耗*提点比例(3‰)*提成比例(剪辑30%)
|
|
|
- BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.003")).multiply(new BigDecimal("0.3"));
|
|
|
-
|
|
|
+ BigDecimal totalPerformance = BigDecimal.ZERO;
|
|
|
+ if(totalCost != null) {
|
|
|
+ totalPerformance = totalCost.multiply(new BigDecimal("0.003")).multiply(new BigDecimal("0.3"));
|
|
|
+ }
|
|
|
Performance performance = new Performance();
|
|
|
performance.setAppType(2); //1头条 2快手
|
|
|
performance.setRoleId(clipList.get(i).getRoleId());
|
|
@@ -948,6 +958,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
UserDto2 designLeader = userEfficientVideoMapMapper.getProjectDesignResponsibleInfo(projectDTO.getProjectId());
|
|
|
List<UserDto2> planeList = userEfficientVideoMapMapper.getPlaneByProjectId(projectDTO.getProjectId());
|
|
|
BigDecimal quarterCost = userEfficientVideoMapMapper.getProjectQuarterCostById(startTime, endTime, projectDTO.getProjectId());
|
|
|
+ quarterCost = quarterCost==null?BigDecimal.ZERO:quarterCost;
|
|
|
//此项目当中平面数量,平面数量为0的时候说明此project当中没有平面设计师,故跳过
|
|
|
int size = planeList.size();
|
|
|
log.info(projectDTO.getProjectName() + "中有" + size + "个平面设计");
|
|
@@ -963,17 +974,17 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
planeProjectCost.setUserId(designLeader.getUserId());
|
|
|
//增加平面人数、和项目单独的绩效
|
|
|
planeProjectCost.setProjectPlaneCount(1);
|
|
|
- planeProjectCost.setProjectPerformance(quarterCost.multiply(new BigDecimal("0.2")).multiply(new BigDecimal("0.003")));
|
|
|
+ planeProjectCost.setProjectPerformance(quarterCost.multiply(new BigDecimal("0.2")).multiply(new BigDecimal("0.003")).setScale(4,BigDecimal.ROUND_HALF_UP));
|
|
|
planeProjectCost.setType(2);
|
|
|
|
|
|
if (null == designLeaderMap.get(designLeader.getUserId())) {
|
|
|
designLeader.setEffiRate(planeProjectCost.getProjectPerformance()); //项目绩效
|
|
|
designLeader.setCost(quarterCost); //项目总消耗
|
|
|
- planeMap.put(planeProjectCost.getUserId(), designLeader);
|
|
|
+ designLeaderMap.put(planeProjectCost.getUserId(), designLeader);
|
|
|
} else {
|
|
|
//将增加的金额增加到
|
|
|
- planeMap.get(designLeader.getUserId()).setEffiRate(planeMap.get(designLeader.getUserId()).getEffiRate().add(designLeader.getEffiRate()));
|
|
|
- planeMap.get(designLeader.getUserId()).setCost(planeMap.get(designLeader.getUserId()).getCost().add(designLeader.getCost()));
|
|
|
+ designLeaderMap.get(designLeader.getUserId()).setEffiRate(designLeaderMap.get(designLeader.getUserId()).getEffiRate().add(planeProjectCost.getProjectPerformance()));
|
|
|
+ designLeaderMap.get(designLeader.getUserId()).setCost(designLeaderMap.get(designLeader.getUserId()).getCost().add(quarterCost));
|
|
|
}
|
|
|
planeProjectCostMapper.insert(planeProjectCost);
|
|
|
|
|
@@ -997,7 +1008,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
planeProjectCost.setUserId(plane.getUserId());
|
|
|
//增加平面人数、和项目单独的绩效
|
|
|
planeProjectCost.setProjectPlaneCount(planeList.size());
|
|
|
- planeProjectCost.setProjectPerformance(averageQuarterCost.multiply(new BigDecimal("0.05")).multiply(new BigDecimal("0.003")).setScale(2));
|
|
|
+ planeProjectCost.setProjectPerformance(averageQuarterCost.multiply(new BigDecimal("0.05")).multiply(new BigDecimal("0.003")).setScale(4,BigDecimal.ROUND_HALF_UP));
|
|
|
if (null == planeMap.get(plane.getUserId())) {
|
|
|
plane.setEffiRate(averageQuarterCost);
|
|
|
planeMap.put(plane.getUserId(), plane);
|
|
@@ -1024,11 +1035,11 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
if (null == designLeaderMap.get(designLeader.getUserId())) {
|
|
|
designLeader.setEffiRate(planeProjectCost.getProjectPerformance()); //项目绩效
|
|
|
designLeader.setCost(quarterCost); //项目总消耗
|
|
|
- planeMap.put(designLeader.getUserId(), designLeader);
|
|
|
+ designLeaderMap.put(designLeader.getUserId(), designLeader);
|
|
|
} else {
|
|
|
//将增加的金额增加到
|
|
|
- planeMap.get(designLeader.getUserId()).setEffiRate(planeMap.get(designLeader.getUserId()).getEffiRate().add(designLeader.getEffiRate()));
|
|
|
- planeMap.get(designLeader.getUserId()).setCost(planeMap.get(designLeader.getUserId()).getCost().add(designLeader.getCost()));
|
|
|
+ designLeaderMap.get(designLeader.getUserId()).setEffiRate(designLeaderMap.get(designLeader.getUserId()).getEffiRate().add(planeProjectCost.getProjectPerformance()));
|
|
|
+ designLeaderMap.get(designLeader.getUserId()).setCost(designLeaderMap.get(designLeader.getUserId()).getCost().add(quarterCost));
|
|
|
}
|
|
|
planeProjectCostMapper.insert(planeProjectCost);
|
|
|
|
|
@@ -1108,8 +1119,10 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//头条编导总消耗
|
|
|
BigDecimal totalCost = userEfficientVideoMapMapper.toutiaoGetTotalCostByPlanId(planList.get(i).getUserId(), startTime, endTime);
|
|
|
//总绩效=总消耗*提点比例(5‰)*提成比例(编导40%)
|
|
|
- BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.003")).multiply(new BigDecimal("0.4"));
|
|
|
-
|
|
|
+ BigDecimal totalPerformance = BigDecimal.ZERO;
|
|
|
+ if(totalCost != null) {
|
|
|
+ totalPerformance = totalCost.multiply(new BigDecimal("0.003")).multiply(new BigDecimal("0.4"));
|
|
|
+ }
|
|
|
Performance performance = new Performance();
|
|
|
performance.setAppType(1); //1头条 2快手
|
|
|
performance.setRoleId(planList.get(i).getRoleId());
|
|
@@ -1134,8 +1147,10 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//这个编导的总消耗
|
|
|
BigDecimal totalCost = userEfficientVideoMapMapper.toutiaoGetTotalCostByPlanId(planList.get(i).getUserId(), startTime, endTime);
|
|
|
//总绩效=总消耗*提点比例(2‰)*提成比例(编导40%)
|
|
|
- BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.002")).multiply(new BigDecimal("0.4"));
|
|
|
-
|
|
|
+ BigDecimal totalPerformance = BigDecimal.ZERO;
|
|
|
+ if(totalCost != null) {
|
|
|
+ totalPerformance = totalCost.multiply(new BigDecimal("0.002")).multiply(new BigDecimal("0.4"));
|
|
|
+ }
|
|
|
Performance performance = new Performance();
|
|
|
performance.setAppType(1); //1头条 2快手
|
|
|
performance.setRoleId(planList.get(i).getRoleId());
|
|
@@ -1189,8 +1204,10 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//总消耗--获取这个人所在项目的总消耗
|
|
|
BigDecimal totalCost = userEfficientVideoMapMapper.toutiaoGetTotalCostByShotId(shotList.get(i).getUserId(), startTime, endTime);
|
|
|
//总绩效=总消耗*提点比例(5‰)*提成比例(拍摄10%)
|
|
|
- BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.003")).multiply(new BigDecimal("0.1"));
|
|
|
-
|
|
|
+ BigDecimal totalPerformance = BigDecimal.ZERO;
|
|
|
+ if(totalCost != null) {
|
|
|
+ totalPerformance = totalCost.multiply(new BigDecimal("0.003")).multiply(new BigDecimal("0.1"));
|
|
|
+ }
|
|
|
Performance performance = new Performance();
|
|
|
performance.setAppType(1); //1头条 2快手
|
|
|
performance.setRoleId(shotList.get(i).getRoleId());
|
|
@@ -1215,8 +1232,10 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//总消耗--获取这个人所在项目的总消耗
|
|
|
BigDecimal totalCost = userEfficientVideoMapMapper.toutiaoGetTotalCostByShotId(shotList.get(i).getUserId(), startTime, endTime);
|
|
|
//总绩效=总消耗*提点比例(3‰)*提成比例(拍摄10%)
|
|
|
- BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.002")).multiply(new BigDecimal("0.1"));
|
|
|
-
|
|
|
+ BigDecimal totalPerformance = BigDecimal.ZERO;
|
|
|
+ if(totalCost != null) {
|
|
|
+ totalPerformance = totalCost.multiply(new BigDecimal("0.002")).multiply(new BigDecimal("0.1"));
|
|
|
+ }
|
|
|
Performance performance = new Performance();
|
|
|
performance.setAppType(1); //1头条 2快手
|
|
|
performance.setRoleId(shotList.get(i).getRoleId());
|
|
@@ -1270,8 +1289,10 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//总消耗--获取这个人所在项目的总消耗
|
|
|
BigDecimal totalCost = userEfficientVideoMapMapper.toutiaoGetTotalCostByClipId(clipList.get(i).getUserId(), startTime, endTime);
|
|
|
//总绩效=总消耗*提点比例(5‰)*提成比例(剪辑30%)
|
|
|
- BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.003")).multiply(new BigDecimal("0.3"));
|
|
|
-
|
|
|
+ BigDecimal totalPerformance = BigDecimal.ZERO;
|
|
|
+ if(totalCost != null) {
|
|
|
+ totalPerformance = totalCost.multiply(new BigDecimal("0.003")).multiply(new BigDecimal("0.3"));
|
|
|
+ }
|
|
|
Performance performance = new Performance();
|
|
|
performance.setAppType(1); //1头条 2快手
|
|
|
performance.setRoleId(clipList.get(i).getRoleId());
|
|
@@ -1296,8 +1317,10 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//总消耗--获取这个人所在项目的总消耗
|
|
|
BigDecimal totalCost = userEfficientVideoMapMapper.toutiaoGetTotalCostByClipId(clipList.get(i).getUserId(), startTime, endTime);
|
|
|
//总绩效=总消耗*提点比例(3‰)*提成比例(剪辑30%)
|
|
|
- BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.002")).multiply(new BigDecimal("0.3"));
|
|
|
-
|
|
|
+ BigDecimal totalPerformance = BigDecimal.ZERO;
|
|
|
+ if(totalCost != null) {
|
|
|
+ totalPerformance = totalCost.multiply(new BigDecimal("0.002")).multiply(new BigDecimal("0.3"));
|
|
|
+ }
|
|
|
Performance performance = new Performance();
|
|
|
performance.setAppType(1); //1头条 2快手
|
|
|
performance.setRoleId(clipList.get(i).getRoleId());
|
|
@@ -1342,6 +1365,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
UserDto2 designLeader = userEfficientVideoMapMapper.getProjectDesignResponsibleInfo(projectDTO.getProjectId());
|
|
|
List<UserDto2> planeList = userEfficientVideoMapMapper.getPlaneByProjectId(projectDTO.getProjectId());
|
|
|
BigDecimal quarterCost = userEfficientVideoMapMapper.getProjectQuarterCostById(startTime, endTime, projectDTO.getProjectId());
|
|
|
+ quarterCost = quarterCost==null?BigDecimal.ZERO:quarterCost;
|
|
|
//此项目当中平面数量,平面数量为0的时候说明此project当中没有平面设计师;项目没有平面的情况下,项目leader绩效提成为20%
|
|
|
int size = planeList.size();
|
|
|
if (size == 0) {
|
|
@@ -1366,8 +1390,8 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
designLeaderMap.put(designLeader.getUserId(), designLeader);
|
|
|
} else {
|
|
|
//将增加的金额增加到
|
|
|
- designLeaderMap.get(designLeader.getUserId()).setEffiRate(designLeaderMap.get(designLeader.getUserId()).getEffiRate().add(designLeader.getEffiRate()));
|
|
|
- designLeaderMap.get(designLeader.getUserId()).setCost(designLeaderMap.get(designLeader.getUserId()).getCost().add(designLeader.getCost()));
|
|
|
+ designLeaderMap.get(designLeader.getUserId()).setEffiRate(designLeaderMap.get(designLeader.getUserId()).getEffiRate().add(planeProjectCost.getProjectPerformance()));
|
|
|
+ designLeaderMap.get(designLeader.getUserId()).setCost(designLeaderMap.get(designLeader.getUserId()).getCost().add(quarterCost));
|
|
|
}
|
|
|
planeProjectCostMapper.insert(planeProjectCost);
|
|
|
}
|
|
@@ -1415,7 +1439,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
planeProjectCost.setUserId(designLeader.getUserId());
|
|
|
//增加平面人数、和项目单独的绩效
|
|
|
planeProjectCost.setProjectPlaneCount(1);
|
|
|
- planeProjectCost.setProjectPerformance(quarterCost.multiply(new BigDecimal("0.15")).multiply(new BigDecimal("0.002")));
|
|
|
+ planeProjectCost.setProjectPerformance(quarterCost.multiply(new BigDecimal("0.15")).multiply(new BigDecimal("0.002")).setScale(4,BigDecimal.ROUND_HALF_UP));
|
|
|
planeProjectCost.setType(2);
|
|
|
|
|
|
if (null == designLeaderMap.get(designLeader.getUserId())) {
|
|
@@ -1424,8 +1448,8 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
designLeaderMap.put(designLeader.getUserId(), designLeader);
|
|
|
} else {
|
|
|
//将增加的金额增加到
|
|
|
- designLeaderMap.get(designLeader.getUserId()).setEffiRate(designLeaderMap.get(designLeader.getUserId()).getEffiRate().add(designLeader.getEffiRate()));
|
|
|
- designLeaderMap.get(designLeader.getUserId()).setCost(designLeaderMap.get(designLeader.getUserId()).getCost().add(designLeader.getCost()));
|
|
|
+ designLeaderMap.get(designLeader.getUserId()).setEffiRate(designLeaderMap.get(designLeader.getUserId()).getEffiRate().add(planeProjectCost.getProjectPerformance()));
|
|
|
+ designLeaderMap.get(designLeader.getUserId()).setCost(designLeaderMap.get(designLeader.getUserId()).getCost().add(quarterCost));
|
|
|
}
|
|
|
planeProjectCostMapper.insert(planeProjectCost);
|
|
|
}
|
|
@@ -1439,7 +1463,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
performance.setYear(thisYear);
|
|
|
performance.setCommissionRate(new BigDecimal("0.002")); //头条平台比例2‰
|
|
|
performance.setTotalCost(planeMap.get(key).getEffiRate());
|
|
|
- performance.setTotalPerformance(planeMap.get(key).getEffiRate().multiply(new BigDecimal("0.05")).multiply(new BigDecimal("0.002"))); //头条
|
|
|
+ performance.setTotalPerformance(planeMap.get(key).getEffiRate().multiply(new BigDecimal("0.05")).multiply(new BigDecimal("0.002")).setScale(4,BigDecimal.ROUND_HALF_UP)); //头条
|
|
|
performance.setRoleCommissionRate(new BigDecimal("0.05"));
|
|
|
performance.setStartTime(startTime);
|
|
|
performance.setEndTime(endTime);
|