|
@@ -73,7 +73,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
String effiCalcStart = DateUtils.formatDate(DateUtils.addDay(friday, -14)); //计算有效视频开始的时间
|
|
|
log.info("有效视频统计的开始时间为" + effiCalcStart);
|
|
|
String effiCalcEnd = DateUtils.formatDate(DateUtils.addDay(friday, -1)); //计算有效视频结束的时间
|
|
|
- log.info("有效视频统计的结束时间为" + effiCalcStart);
|
|
|
+ log.info("有效视频统计的结束时间为" + effiCalcEnd);
|
|
|
String effiStart = DateUtils.formatDate(DateUtils.addDay(friday, -21)); //有效视频发布开始时间
|
|
|
log.info("有效视频发布的开始时间为" + effiStart);
|
|
|
String effiEnd = DateUtils.formatDate(DateUtils.addDay(friday, -15)); //有效视频发布结束时间
|
|
@@ -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");
|
|
@@ -274,7 +275,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//拍摄
|
|
|
kuaishouShotPerformance(thisYear, thisQuarter, startTime, endTime);
|
|
|
//剪辑
|
|
|
- kuaishouClipPerformance(thisYear, thisQuarter, startTime, endTime);
|
|
|
+ //kuaishouClipPerformance(thisYear, thisQuarter, startTime, endTime);
|
|
|
//平面设计
|
|
|
kuaishouPlanePerformance(thisYear, thisQuarter, startTime, endTime);
|
|
|
//设计师leader
|
|
@@ -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");
|
|
@@ -309,7 +311,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////编导季度绩效计算start
|
|
|
private void kuaishouPlanPerformance(int thisYear, int thisQuarter, String startTime, String endTime) {
|
|
|
- log.info(thisYear + "年第" + thisQuarter + "季度快手编导季度绩效计算开始");
|
|
|
+ log.info(thisYear + "年第" + thisQuarter + "季度快手编导季度绩效计算开始");
|
|
|
//1.根据角色(编导)查询出相对应角色所有的人
|
|
|
//List<UserDto> planList = sysRoleMapper.getUserByRoleCode("plan"); //编导
|
|
|
List<UserDto2> planList = userEfficientVideoMapMapper.getKuaishouPlanList(); //编导
|
|
@@ -327,9 +329,15 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
|
|
|
//获取编导人数并按照提点比例计算每个梯度的人数
|
|
|
int planLength = planList.size();
|
|
|
+ log.info("快手参与有效率排名的编导总人数为:" + planLength);
|
|
|
//获取前30%和中间50%的人数(视频有效率四舍五入)
|
|
|
int top30 = new BigDecimal(String.valueOf(planLength)).multiply(new BigDecimal("0.3")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
|
|
|
+ log.info("快手参与有效率排名的编导前30%人数为:" + top30);
|
|
|
int middle50 = new BigDecimal(String.valueOf(planLength)).multiply(new BigDecimal("0.5")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
|
|
|
+ log.info("快手参与有效率排名的编导中间50%人数为:" + middle50);
|
|
|
+ //测试数据
|
|
|
+ // top30 = 1;
|
|
|
+ // middle50 =1;
|
|
|
|
|
|
//循环前30%有绩效的人数并计算其绩效,并入库
|
|
|
for (int i = 0; i <= top30 - 1; i++) {
|
|
@@ -400,9 +408,15 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
|
|
|
//获取编导人数并按照提点比例计算每个梯度的人数
|
|
|
int shotLength = shotList.size();
|
|
|
+ log.info("快手参与有效率排名的拍摄总人数为:" + shotLength);
|
|
|
//获取前30%和中间50%的人数(视频有效率四舍五入)
|
|
|
int shotTop30 = new BigDecimal(String.valueOf(shotLength)).multiply(new BigDecimal("0.3")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
|
|
|
+ log.info("快手参与有效率排名的拍摄前30%人数为:" + shotTop30);
|
|
|
int shotMiddle50 = new BigDecimal(String.valueOf(shotLength)).multiply(new BigDecimal("0.5")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
|
|
|
+ log.info("快手参与有效率排名的拍摄中间50%人数为:" + shotTop30);
|
|
|
+ //测试完删除
|
|
|
+ // shotTop30 = 1;
|
|
|
+ // shotMiddle50 = 1;
|
|
|
|
|
|
//循环前30%有绩效的人数并计算其绩效,并入库
|
|
|
for (int i = 0; i <= shotTop30 - 1; i++) {
|
|
@@ -473,9 +487,15 @@ 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);
|
|
|
+ //测试完删除
|
|
|
+ //clipTop30 = 1;
|
|
|
+ //clipMiddle50 = 1;
|
|
|
|
|
|
//循环前30%有绩效的人数并计算其绩效,并入库
|
|
|
for (int i = 0; i <= clipTop30 - 1; i++) {
|
|
@@ -535,15 +555,33 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//如果有并且不止一个就平分;创建一个list,将设计师的userDto加入进来,然后可以在不同的项目中累加(需要增加一张表格,然后记录其中的每一个项目消耗)
|
|
|
Map<String, UserDto2> planeMap = new HashMap<>();
|
|
|
|
|
|
+ //TODO ctop_project表有修改,需要进行相对应的变化
|
|
|
//获取所有project根据媒体类型获取快手下的项目类型 1头条 2快手
|
|
|
List<ProjectDTO> projectDTOS = userEfficientVideoMapMapper.getProjects("2");
|
|
|
|
|
|
+ System.out.println("快手项目数量为:" + projectDTOS.size());
|
|
|
//循环project
|
|
|
for (ProjectDTO projectDTO : projectDTOS) {
|
|
|
- BigDecimal quarterCost = userEfficientVideoMapMapper.getProjectQuarterCostById(startTime, endTime, projectDTO.getProjectId());
|
|
|
+ //测试使用
|
|
|
+ //if(projectDTO.getProjectId() != 42L){
|
|
|
+ // continue;
|
|
|
+ //}
|
|
|
+ System.out.println("快手平面所在项目为:" + projectDTO.getProjectName());
|
|
|
+ //判断是否是北京的部门负责的项目,如果不是的话跳出
|
|
|
+ String orgCode = userEfficientVideoMapMapper.getOrgCodeByProjectId(projectDTO.getProjectId());
|
|
|
+ if (!orgCode.startsWith("A01")) {
|
|
|
+ log.info("此项目不属于北京公司,跳出进入下一个项目计算");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
List<UserDto2> planeList = userEfficientVideoMapMapper.getPlaneByProjectId(projectDTO.getProjectId());
|
|
|
- //此项目当中平面数量
|
|
|
+ //此项目当中平面数量,平面数量为0的时候说明此project当中没有平面设计师,故跳过
|
|
|
int size = planeList.size();
|
|
|
+ log.info(projectDTO.getProjectName() + "中有" + size + "个平面设计");
|
|
|
+ if(size == 0){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ BigDecimal quarterCost = userEfficientVideoMapMapper.getProjectQuarterCostById(startTime, endTime, projectDTO.getProjectId());
|
|
|
BigDecimal averageQuarterCost = quarterCost.divide(new BigDecimal(String.valueOf(size)));
|
|
|
|
|
|
//循环项目下所有平面设计
|
|
@@ -559,10 +597,12 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
planeProjectCost.setProjectTotalCost(quarterCost);
|
|
|
planeProjectCost.setProjectCost(averageQuarterCost);
|
|
|
planeProjectCost.setUserId(plane.getUserId());
|
|
|
-
|
|
|
+ //增加平面人数、和项目单独的绩效
|
|
|
+ planeProjectCost.setProjectPlaneCount(planeList.size());
|
|
|
+ planeProjectCost.setProjectPerformance(averageQuarterCost.multiply(new BigDecimal("0.05")));
|
|
|
if (null == planeMap.get(plane.getUserId())) {
|
|
|
plane.setEffiRate(averageQuarterCost);
|
|
|
- planeMap.put("plane.getUserId()", plane);
|
|
|
+ planeMap.put(plane.getUserId(), plane);
|
|
|
} else {
|
|
|
//将增加的金额增加到
|
|
|
planeMap.get(plane.getUserId()).setEffiRate(planeMap.get(plane.getUserId()).getEffiRate().add(plane.getEffiRate()));
|
|
@@ -602,7 +642,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
BigDecimal totalCost = BigDecimal.ZERO; //剪辑总消耗
|
|
|
|
|
|
for (String clipUserId : clipList) {
|
|
|
- BigDecimal clipCost = userEfficientVideoMapMapper.getClipQuarterCost(2, thisYear, thisQuarter, clipUserId); //媒体类型 //1头条 2快手
|
|
|
+ BigDecimal clipCost = userEfficientVideoMapMapper.getClipQuarterCost(2, thisQuarter, thisYear, clipUserId); //媒体类型 //1头条 2快手
|
|
|
totalCost = totalCost.add(clipCost);
|
|
|
}
|
|
|
|
|
@@ -649,9 +689,12 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
|
|
|
//获取编导人数并按照提点比例计算每个梯度的人数
|
|
|
int planLength = planList.size();
|
|
|
+ log.info("头条参与有效率排名的编导总人数为:" + planLength);
|
|
|
//获取前30%和中间50%的人数(视频有效率四舍五入)
|
|
|
int top30 = new BigDecimal(String.valueOf(planLength)).multiply(new BigDecimal("0.3")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
|
|
|
+ log.info("头条参与有效率排名的编导前30%人数为:" + top30);
|
|
|
int middle50 = new BigDecimal(String.valueOf(planLength)).multiply(new BigDecimal("0.5")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
|
|
|
+ log.info("头条参与有效率排名的编导中间50%人数为:" + middle50);
|
|
|
|
|
|
//循环前30%有绩效的人数并计算其绩效,并入库
|
|
|
for (int i = 0; i <= top30 - 1; i++) {
|
|
@@ -722,9 +765,12 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
|
|
|
//获取编导人数并按照提点比例计算每个梯度的人数
|
|
|
int shotLength = shotList.size();
|
|
|
+ log.info("头条参与有效率排名的拍摄总人数为:" + shotLength);
|
|
|
//获取前30%和中间50%的人数(视频有效率四舍五入)
|
|
|
int shotTop30 = new BigDecimal(String.valueOf(shotLength)).multiply(new BigDecimal("0.3")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
|
|
|
+ log.info("头条参与有效率排名的拍摄前30%人数为:" + shotTop30);
|
|
|
int shotMiddle50 = new BigDecimal(String.valueOf(shotLength)).multiply(new BigDecimal("0.5")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
|
|
|
+ log.info("头条参与有效率排名的拍摄中间50%人数为:" + shotMiddle50);
|
|
|
|
|
|
//循环前30%有绩效的人数并计算其绩效,并入库
|
|
|
for (int i = 0; i <= shotTop30 - 1; i++) {
|
|
@@ -795,9 +841,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++) {
|
|
@@ -857,15 +906,27 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//如果有并且不止一个就平分;创建一个list,将设计师的userDto加入进来,然后可以在不同的项目中累加(需要增加一张表格,然后记录其中的每一个项目消耗)
|
|
|
Map<String, UserDto2> planeMap = new HashMap<>();
|
|
|
|
|
|
+ //TODO ctop_project表有修改,需要进行相对应的变化
|
|
|
//获取所有project根据媒体类型获取快手下的项目类型 1-头条 2-快手
|
|
|
List<ProjectDTO> projectDTOS = userEfficientVideoMapMapper.getProjects("1");
|
|
|
+ System.out.println("头条项目数量为:" + projectDTOS.size());
|
|
|
|
|
|
//循环project
|
|
|
for (ProjectDTO projectDTO : projectDTOS) {
|
|
|
- BigDecimal quarterCost = userEfficientVideoMapMapper.getProjectQuarterCostById(startTime, endTime, projectDTO.getProjectId());
|
|
|
+ //判断是否是北京的部门负责的项目,如果不是的话跳出
|
|
|
+ String orgCode = userEfficientVideoMapMapper.getOrgCodeByProjectId(projectDTO.getProjectId());
|
|
|
+ if (!orgCode.startsWith("A01")) {
|
|
|
+ log.info(projectDTO.getProjectName() + "不是北京的部门的项目,跳出");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
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)));
|
|
|
|
|
|
//循环项目下所有平面设计
|
|
@@ -881,6 +942,9 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
planeProjectCost.setProjectTotalCost(quarterCost);
|
|
|
planeProjectCost.setProjectCost(averageQuarterCost);
|
|
|
planeProjectCost.setUserId(plane.getUserId());
|
|
|
+ //增加平面人数、和项目单独的绩效
|
|
|
+ planeProjectCost.setProjectPlaneCount(planeList.size());
|
|
|
+ planeProjectCost.setProjectPerformance(averageQuarterCost.multiply(new BigDecimal("0.05")));
|
|
|
|
|
|
if (null == planeMap.get(plane.getUserId())) {
|
|
|
plane.setEffiRate(averageQuarterCost);
|
|
@@ -924,7 +988,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
BigDecimal totalCost = BigDecimal.ZERO; //剪辑总消耗
|
|
|
|
|
|
for (String clipUserId : clipList) {
|
|
|
- BigDecimal clipCost = userEfficientVideoMapMapper.getClipQuarterCost(1, thisYear, thisQuarter, clipUserId); //媒体类型 //1头条 2快手
|
|
|
+ BigDecimal clipCost = userEfficientVideoMapMapper.getClipQuarterCost(1, thisQuarter, thisYear, clipUserId); //媒体类型 //1头条 2快手
|
|
|
totalCost = totalCost.add(clipCost);
|
|
|
}
|
|
|
|
|
@@ -1370,13 +1434,15 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
//{"videoAccount":"aabbcc","servingAccount":"ttyyhh","cost":34234.43}
|
|
|
public List<DesignMaterialInfo> materialAccountInfo(String materialInfoId) {
|
|
|
log.info("materialAccountInfo接口开始");
|
|
|
- Date date = new Date();
|
|
|
- Date getDate = DateUtils.addDay(date, -1);
|
|
|
- String startDate = DateUtils.getQuarterStartDate(getDate);
|
|
|
- String endDate = DateUtils.getQuarterEndDate(getDate);
|
|
|
- String endNowDate = DateUtils.formatDate(getDate);
|
|
|
+ Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
|
|
|
+ int year = quarterMap.get("year");
|
|
|
+ int quarter = quarterMap.get("quarter");
|
|
|
|
|
|
- List<DesignMaterialInfo> materialInfoList = userEfficientVideoMapMapper.getMaterialAccountInfoByMaterialId(materialInfoId, startDate, endNowDate);
|
|
|
+ Map<String,String> quarterDate = DateUtils.quarterStartEndDate(year,quarter);
|
|
|
+ String startDate = quarterDate.get("startDate");
|
|
|
+ String endDate = quarterDate.get("endDate");
|
|
|
+
|
|
|
+ List<DesignMaterialInfo> materialInfoList = userEfficientVideoMapMapper.getMaterialAccountInfoByMaterialId(materialInfoId, startDate, endDate);
|
|
|
log.info("materialAccountInfo接口结束");
|
|
|
return materialInfoList;
|
|
|
}
|
|
@@ -1397,5 +1463,149 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
|
|
|
timeMap.put("quarter", quarter);
|
|
|
return timeMap;
|
|
|
}
|
|
|
+
|
|
|
+ //获取快手上个季度的季度有效数、素材总数、上个季度的绩效
|
|
|
+ public Map<String,Object> kuaishouDesignerLastQuarterPerformanceInfo(){
|
|
|
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+
|
|
|
+ //TODO 测试使用
|
|
|
+ //LoginUser sysUser = new LoginUser();
|
|
|
+ //sysUser.setId("f1f4c325a1234827af28fb4d957ffd70");
|
|
|
+ //
|
|
|
+
|
|
|
+ Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
|
|
|
+ int year = quarterMap.get("year");
|
|
|
+ int quarter = quarterMap.get("quarter");
|
|
|
+
|
|
|
+ Map<String,String> quarterDate = DateUtils.quarterStartEndDate(year,quarter);
|
|
|
+ String startDate = quarterDate.get("startDate");
|
|
|
+ String endDate = quarterDate.get("endDate");
|
|
|
+ SysRole role = userEfficientVideoMapMapper.getRoleIdByUserId(sysUser.getId());
|
|
|
+
|
|
|
+ //有效视频数量 1toutiao 2kuaishou
|
|
|
+ int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2, year, quarter, sysUser.getId(), role.getId());
|
|
|
+ //总视频数量
|
|
|
+ int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId("plan", startDate, endDate, sysUser.getId());
|
|
|
+ //获取季度总绩效
|
|
|
+ BigDecimal performance = userEfficientVideoMapMapper.getQuarterPerformance(sysUser.getId(), year, quarter, 2);
|
|
|
+
|
|
|
+ //素材列表
|
|
|
+ List<DesignMaterialInfo> materialInfoList = userEfficientVideoMapMapper.designMaterialInfoList(role.getRoleCode(), sysUser.getId(), startDate, endDate);
|
|
|
+
|
|
|
+ Map<String,Object> resultMap = new HashMap();
|
|
|
+ resultMap.put("effiVideoCount",effiVideoCount);
|
|
|
+ resultMap.put("videoCount",videoCount);
|
|
|
+ resultMap.put("performance",performance);
|
|
|
+ resultMap.put("materialInfoList",materialInfoList);
|
|
|
+
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ //TODO 获取头条上个季度的季度有效数、素材总数、上个季度的绩效
|
|
|
+ public void toutiaoDesignerLastQuarterPerformanceInfo(){
|
|
|
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
|
|
|
+ int year = quarterMap.get("year");
|
|
|
+ int quarter = quarterMap.get("quarter");
|
|
|
+ Map<String,String> quarterDate = DateUtils.quarterStartEndDate(year,quarter);
|
|
|
+ String startDate = quarterDate.get("startDate");
|
|
|
+ String endDate = quarterDate.get("endDate");
|
|
|
+ SysRole role = userEfficientVideoMapMapper.getRoleIdByUserId(sysUser.getId());
|
|
|
+
|
|
|
+ //有效视频数量 1toutiao 2kuaishou
|
|
|
+ int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2, year, quarter, sysUser.getId(), role.getId());
|
|
|
+ //总视频数量
|
|
|
+ int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId("plan", startDate, endDate, sysUser.getId());
|
|
|
+ //获取季度总绩效
|
|
|
+ BigDecimal performance = userEfficientVideoMapMapper.getQuarterPerformance(sysUser.getId(), year, quarter, 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取设计师组下所有人的绩效
|
|
|
+ public Map<String,Object> designerLastQuarterPerformanceInfo(){
|
|
|
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+
|
|
|
+ //TODO 测试删除
|
|
|
+ //LoginUser sysUser = new LoginUser();
|
|
|
+ //sysUser.setId("825dd716d4c041f9ac1c600bf6183979");
|
|
|
+ //
|
|
|
+
|
|
|
+ Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
|
|
|
+ int year = quarterMap.get("year");
|
|
|
+ int quarter = quarterMap.get("quarter");
|
|
|
+ //Map<String,String> quarterDate = DateUtils.quarterStartEndDate(year,quarter);
|
|
|
+ //String startDate = quarterDate.get("startDate");
|
|
|
+ //String endDate = quarterDate.get("endDate");
|
|
|
+ //SysRole role = userEfficientVideoMapMapper.getRoleIdByUserId(sysUser.getId());
|
|
|
+
|
|
|
+ String DepartId = userEfficientVideoMapMapper.getDepartIdByUserId(sysUser.getId());
|
|
|
+ List<UserDto2> userDto2List = userEfficientVideoMapMapper.getUserListByDepartId(DepartId);
|
|
|
+
|
|
|
+ //需要判断属于哪个部门
|
|
|
+ //判断如果在parent_id是不是快手或者头条的
|
|
|
+ int appType = 0; //头条1;快手2
|
|
|
+ String parentId = userEfficientVideoMapMapper.getParentIdByDepartId(DepartId);
|
|
|
+ if(parentId.equals("26c10ecb5e0d416bb01f8ff983f4588c")){
|
|
|
+ appType = 1;
|
|
|
+ }else{
|
|
|
+ appType = 2;
|
|
|
+ }
|
|
|
+
|
|
|
+ //循环获取userDto然后获取赋值季度、年度以及部门、绩效
|
|
|
+ for (UserDto2 userDto:userDto2List){
|
|
|
+ userDto.setYear(year);
|
|
|
+ userDto.setQuarter(quarter);
|
|
|
+ String departName = userEfficientVideoMapMapper.getDepartNameByUserId(userDto.getUserId());
|
|
|
+ //获取绩效
|
|
|
+ BigDecimal performance = userEfficientVideoMapMapper.getClipQuarterCost(appType,quarter,year, userDto.getUserId());
|
|
|
+ userDto.setDepartName(departName);
|
|
|
+ userDto.setEffiRate(performance);
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String,Object> resultMap = new HashMap<>();
|
|
|
+ resultMap.put("userList", userDto2List);
|
|
|
+
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ //平面设计师(快手、头条可能不一样,头条内广是单独的媒体不知道是怎么回事)
|
|
|
+ public Map<String,Object> planeLastQuarterPerformanceInfo(int appType){
|
|
|
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+
|
|
|
+ //测试删除
|
|
|
+ //LoginUser sysUser = new LoginUser();
|
|
|
+ //sysUser.setId("b0e4798234df4096936e6bc6d00db3ba");
|
|
|
+ //
|
|
|
+
|
|
|
+ Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
|
|
|
+ int year = quarterMap.get("year");
|
|
|
+ int quarter = quarterMap.get("quarter");
|
|
|
+ //Map<String,String> quarterDate = DateUtils.quarterStartEndDate(year,quarter);
|
|
|
+ List<PlaneProjectCostDTO> planeProjectCostList = userEfficientVideoMapMapper.getPlanePerformanceInfo(appType,year,quarter,sysUser.getId());
|
|
|
+ BigDecimal performance = userEfficientVideoMapMapper.getQuarterPerformance(sysUser.getId(), year, quarter, appType);
|
|
|
+
|
|
|
+ Map<String,Object> resultMap = new HashMap<>();
|
|
|
+ resultMap.put("planeProjectCostList",planeProjectCostList);
|
|
|
+ resultMap.put("performance",performance);
|
|
|
+
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取同一媒体类型下上个季度所有人的绩效
|
|
|
+ public Map<String, Object> quarterUserPerformanceList(Integer appType){
|
|
|
+ Map<String, Object> resultMap = new HashMap<>();
|
|
|
+
|
|
|
+ //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
|
|
|
+ int year = quarterMap.get("year");
|
|
|
+ int quarter = quarterMap.get("quarter");
|
|
|
+
|
|
|
+ List<UserDto2> userDtoList = userEfficientVideoMapMapper.getUserPerformanceList(appType, year, quarter);
|
|
|
+ resultMap.put("userDtoList",userDtoList);
|
|
|
+
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|