|
@@ -381,18 +381,19 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
}};
|
|
|
|
|
|
//当天
|
|
|
- if (startDate == entDate && entDate == now){
|
|
|
+ int newUnitNumNow = 0;
|
|
|
+ if (startDate == now || entDate == now){
|
|
|
//查询 当天有效 上新计划 上新组
|
|
|
- JSONObject newEffect = materialStareMapper.getKuaiShouAccountNowBaseByUserId(ids,null,null,startDate,entDate);
|
|
|
- operate.setNewUnitNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum"));//组
|
|
|
- }else {
|
|
|
- //查询 有效 上新计划 上新组
|
|
|
- JSONObject newEffect = materialStareMapper.getKuaiShouAccountBaseByUserId(ids,null,null,startDate,entDate);
|
|
|
- //operate.setNewEffectNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newEffectNum"));//有效
|
|
|
- operate.setNewCampaignNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newCampaignNum"));//计划
|
|
|
- operate.setNewUnitNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum"));//组
|
|
|
+ JSONObject newEffect = materialStareMapper.getKuaiShouAccountNowBaseByUserId(operatorUserIds,null,null,now,now);
|
|
|
+ newUnitNumNow = Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum");//组
|
|
|
}
|
|
|
|
|
|
+ //查询 有效 上新计划 上新组
|
|
|
+ JSONObject newEffect = materialStareMapper.getKuaiShouAccountBaseByUserId(ids,null,null,startDate,entDate);
|
|
|
+ //operate.setNewEffectNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newEffectNum"));//有效
|
|
|
+ operate.setNewCampaignNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newCampaignNum"));//计划
|
|
|
+ operate.setNewUnitNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum")+newUnitNumNow);//组
|
|
|
+
|
|
|
Set<String> userSet = new HashSet<String>(){{
|
|
|
add(operate.getUserId());
|
|
|
}};
|
|
@@ -530,9 +531,13 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
//查看 上传到助手、媒体的素材数量 分版位花费
|
|
|
List<JSONObject> materailUpload = materialStareMapper.getKuaiShouMaterailUploadType(projectInfo.getProjectId(),startDate,entDate);
|
|
|
|
|
|
- projectInfo.setAdspNum(Check.isNull(materailUpload) ? "0" : JSONObject.parseObject(materailUpload.get(0)+"").getString("num"));//上传到助手
|
|
|
- projectInfo.setMediaNum(Check.isNull(materailUpload) ? "0" : JSONObject.parseObject(materailUpload.get(1)+"").getString("num"));//上传到媒体
|
|
|
- projectInfo.setAdSceneNum(Check.isNull(materailUpload) ? "0" : JSONObject.parseObject(materailUpload.get(2)+"").getString("num"));//分版位
|
|
|
+ projectInfo.setAdspNum(Check.isNull(materailUpload) ? 0L : JSONObject.parseObject(materailUpload.get(0)+"").getLong("num"));//上传到助手
|
|
|
+ projectInfo.setMediaNum(Check.isNull(materailUpload) ? 0L : JSONObject.parseObject(materailUpload.get(1)+"").getLong("num"));//上传到媒体
|
|
|
+
|
|
|
+ //分版位
|
|
|
+ List<JSONObject> adSceneDate = materialStareMapper.getKuaiShouAdSceneData(projectInfo.getProjectId(),startDate,entDate);
|
|
|
+ projectInfo.setAdSceneDate(adSceneDate);
|
|
|
+
|
|
|
|
|
|
String projectId = projectInfo.getProjectId();
|
|
|
List<KuaiShouOperateProjectVo> projectYearOnYearInfo = materialStareMapper.getKuaiShouOperateProjectInfo(lastTimeStart,lastTimeEnd,projectId,operatorUserIds);
|
|
@@ -606,9 +611,12 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
//查看 上传到助手、媒体的素材数量 分版位花费
|
|
|
List<JSONObject> materailUpload = materialStareMapper.getKuaiShouMaterailUploadType(projectInfo.getProjectId(),startDate,entDate);
|
|
|
|
|
|
- projectInfo.setAdspNum(Check.isNull(materailUpload) ? "0" : JSONObject.parseObject(materailUpload.get(0)+"").getString("num"));//上传到助手
|
|
|
- projectInfo.setMediaNum(Check.isNull(materailUpload) ? "0" : JSONObject.parseObject(materailUpload.get(1)+"").getString("num"));//上传到媒体
|
|
|
- projectInfo.setAdSceneNum(Check.isNull(materailUpload) ? "0" : JSONObject.parseObject(materailUpload.get(2)+"").getString("num"));//分版位
|
|
|
+ projectInfo.setAdspNum(Check.isNull(materailUpload) ? 0L : JSONObject.parseObject(materailUpload.get(0)+"").getLong("num"));//上传到助手
|
|
|
+ projectInfo.setMediaNum(Check.isNull(materailUpload) ? 0L : JSONObject.parseObject(materailUpload.get(1)+"").getLong("num"));//上传到媒体
|
|
|
+
|
|
|
+ //分版位
|
|
|
+ List<JSONObject> adSceneDate = materialStareMapper.getKuaiShouAdSceneData(projectInfo.getProjectId(),startDate,entDate);
|
|
|
+ projectInfo.setAdSceneDate(adSceneDate);
|
|
|
|
|
|
String projectId = projectInfo.getProjectId();
|
|
|
List<KuaiShouOperateProjectVo> projectYearOnYearInfo = materialStareMapper.getKuaiShouOperateProjectInfo(lastTimeStart,lastTimeEnd,projectId,operatorUserIds);
|
|
@@ -1055,9 +1063,10 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
*/
|
|
|
@Override
|
|
|
public Result getOperationGroupData(String startTime,String endTime,Integer pageNum,Integer pageSize) {
|
|
|
- List<KuaiShouOperateGroupVo> resultList = new ArrayList<>();
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
|
|
|
try {
|
|
|
+ long nowDate = Long.valueOf(DateUtils.getDateInteger(DateUtils.getDate("yyyy-MM-dd")));
|
|
|
+
|
|
|
long startDate = Long.valueOf(DateUtils.getDateInteger(startTime));
|
|
|
long entDate = Long.valueOf(DateUtils.getDateInteger(endTime));
|
|
|
//计算环比 时间值 上阶段时间 以及 两个日期之间的 间隔天数
|
|
@@ -1067,17 +1076,24 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
Integer daysBetween = Integer.valueOf(lastTime.get("daysBetween"))+1;
|
|
|
PageHelper.startPage(pageNum,pageSize);
|
|
|
//查询运营经理
|
|
|
- List<JSONObject> operationManagerList = materialStareMapper.getOperationManagerUser();
|
|
|
- for (JSONObject operationManagerUser : operationManagerList) {
|
|
|
- KuaiShouOperateGroupVo groupVo = new KuaiShouOperateGroupVo();
|
|
|
- groupVo.setRealname(operationManagerUser.getString("realname"));
|
|
|
+ List<KuaiShouOperateGroupVo> operationManagerList = materialStareMapper.getOperationManagerUser();
|
|
|
+ for (KuaiShouOperateGroupVo groupVo : operationManagerList) {
|
|
|
+
|
|
|
//下级员工
|
|
|
- Set<String> operatorUserIds = getAffiliateId(operationManagerUser.getString("userId"));
|
|
|
+ Set<String> operatorUserIds = getAffiliateId(groupVo.getUserId());
|
|
|
//运营数量
|
|
|
int operationNum = Check.isNull(operatorUserIds) ? 0 : operatorUserIds.size();
|
|
|
groupVo.setOperationNum(operationNum);
|
|
|
+
|
|
|
//查询账户数据
|
|
|
- List<KuaiShouOperateVo> listOperate = materialStareMapper.getKuaiShouOperateInfo(startDate,entDate,operatorUserIds);
|
|
|
+ List<KuaiShouOperateVo> listOperate= new ArrayList<>();
|
|
|
+ if (daysBetween < 0){
|
|
|
+ //时报
|
|
|
+ listOperate= materialStareMapper.getKuaiShouOperateInfoHourly(startDate,entDate,operatorUserIds);
|
|
|
+ }else {
|
|
|
+ listOperate = materialStareMapper.getKuaiShouOperateInfo(startDate,entDate,operatorUserIds);
|
|
|
+ }
|
|
|
+
|
|
|
//总花费
|
|
|
Double totalCost = Check.isNull(listOperate) ? 0 : listOperate.stream().mapToDouble(KuaiShouOperateVo::getTotalCost).sum();
|
|
|
groupVo.setTotalCost(new BigDecimal(totalCost).setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
@@ -1086,8 +1102,8 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
Double aveDay = daysBetween == 0 ? 0 : totalCost/daysBetween;
|
|
|
groupVo.setAverageDayCost(new BigDecimal(aveDay).setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
//人均消耗
|
|
|
- OptionalDouble avePeople = listOperate.stream().mapToDouble(KuaiShouOperateVo::getTotalCost).average();
|
|
|
- groupVo.setAveragePeopleCost(Check.isNull(listOperate) ? 0 : new BigDecimal( avePeople.getAsDouble()).setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
+ Double avePeople = totalCost/operationNum;
|
|
|
+ groupVo.setAveragePeopleCost(avePeople);
|
|
|
|
|
|
//项目数量
|
|
|
Double projectNum = Check.isNull(listOperate) ? 0 : listOperate.stream().mapToDouble(KuaiShouOperateVo::getProjectNum).sum();
|
|
@@ -1108,14 +1124,23 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
}
|
|
|
//花费环比
|
|
|
groupVo.setYearOnYearCost(yearOnYear);
|
|
|
- //查询 上新组
|
|
|
+
|
|
|
+
|
|
|
+ //当天
|
|
|
+ int newUnitNumNow = 0;
|
|
|
+ if (startDate == nowDate || entDate == nowDate){
|
|
|
+ //查询 当天有效 上新计划 上新组
|
|
|
+ JSONObject newEffect = materialStareMapper.getKuaiShouAccountNowBaseByUserId(operatorUserIds,null,null,nowDate,nowDate);
|
|
|
+ newUnitNumNow = Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum");//组
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询 历史上新组
|
|
|
JSONObject newEffect = materialStareMapper.getKuaiShouAccountBaseByUserId(operatorUserIds,null,null,startDate,entDate);
|
|
|
//基建数量
|
|
|
- groupVo.setUnitNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum"));//组
|
|
|
- resultList.add(groupVo);
|
|
|
+ groupVo.setUnitNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum")+newUnitNumNow);//组
|
|
|
}
|
|
|
|
|
|
- PageInfo<KuaiShouOperateGroupVo> pageInfo = new PageInfo<>(resultList);
|
|
|
+ PageInfo<KuaiShouOperateGroupVo> pageInfo = new PageInfo<>(operationManagerList);
|
|
|
return Result.successMsg("运营组列表数据查询成功。",pageInfo);
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
@@ -1125,9 +1150,10 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
|
|
|
|
|
|
public Result exportOperationGroupData(String startTime,String endTime, HttpServletResponse response) {
|
|
|
- List<KuaiShouOperateGroupVo> resultList = new ArrayList<>();
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
|
|
|
try {
|
|
|
+ long nowDate = Long.valueOf(DateUtils.getDateInteger(DateUtils.getDate("yyyy-MM-dd")));
|
|
|
+
|
|
|
long startDate = Long.valueOf(DateUtils.getDateInteger(startTime));
|
|
|
long entDate = Long.valueOf(DateUtils.getDateInteger(endTime));
|
|
|
//计算环比 时间值 上阶段时间 以及 两个日期之间的 间隔天数
|
|
@@ -1137,17 +1163,22 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
Integer daysBetween = Integer.valueOf(lastTime.get("daysBetween"))+1;
|
|
|
|
|
|
//查询运营经理
|
|
|
- List<JSONObject> operationManagerList = materialStareMapper.getOperationManagerUser();
|
|
|
- for (JSONObject operationManagerUser : operationManagerList) {
|
|
|
- KuaiShouOperateGroupVo groupVo = new KuaiShouOperateGroupVo();
|
|
|
- groupVo.setRealname(operationManagerUser.getString("realname"));
|
|
|
+ List<KuaiShouOperateGroupVo> operationManagerList = materialStareMapper.getOperationManagerUser();
|
|
|
+ for (KuaiShouOperateGroupVo groupVo : operationManagerList) {
|
|
|
+
|
|
|
//下级员工
|
|
|
- Set<String> operatorUserIds = getAffiliateId(operationManagerUser.getString("userId"));
|
|
|
+ Set<String> operatorUserIds = getAffiliateId(groupVo.getUserId());
|
|
|
//运营数量
|
|
|
int operationNum = Check.isNull(operatorUserIds) ? 0 : operatorUserIds.size();
|
|
|
groupVo.setOperationNum(operationNum);
|
|
|
//查询账户数据
|
|
|
- List<KuaiShouOperateVo> listOperate = materialStareMapper.getKuaiShouOperateInfo(startDate,entDate,operatorUserIds);
|
|
|
+ List<KuaiShouOperateVo> listOperate= new ArrayList<>();
|
|
|
+ if (daysBetween < 0){
|
|
|
+ //时报
|
|
|
+ listOperate= materialStareMapper.getKuaiShouOperateInfoHourly(startDate,entDate,operatorUserIds);
|
|
|
+ }else {
|
|
|
+ listOperate = materialStareMapper.getKuaiShouOperateInfo(startDate,entDate,operatorUserIds);
|
|
|
+ }
|
|
|
//总花费
|
|
|
Double totalCost = Check.isNull(listOperate) ? 0 : listOperate.stream().mapToDouble(KuaiShouOperateVo::getTotalCost).sum();
|
|
|
groupVo.setTotalCost(new BigDecimal(totalCost).setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
@@ -1155,10 +1186,9 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
Double aveDay = daysBetween == 0 ? 0 : totalCost/daysBetween;
|
|
|
groupVo.setAverageDayCost(new BigDecimal(aveDay).setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
//人均消耗
|
|
|
- OptionalDouble avePeople = listOperate.stream().mapToDouble(KuaiShouOperateVo::getTotalCost).average();
|
|
|
-
|
|
|
- groupVo.setAveragePeopleCost(Check.isNull(listOperate) ? 0 : new BigDecimal(String.valueOf( avePeople.getAsDouble())).setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
- //项目数量
|
|
|
+ Double avePeople = totalCost/operationNum;
|
|
|
+ groupVo.setAveragePeopleCost(avePeople);
|
|
|
+ //项目数量
|
|
|
Double projectNum = Check.isNull(listOperate) ? 0 : listOperate.stream().mapToDouble(KuaiShouOperateVo::getProjectNum).sum();
|
|
|
groupVo.setProjectNum(projectNum.longValue());
|
|
|
//账户数量
|
|
@@ -1177,13 +1207,20 @@ public class MaterialStareServiceImpl implements MaterialStareService {
|
|
|
}
|
|
|
//花费环比
|
|
|
groupVo.setYearOnYearCost(yearOnYear);
|
|
|
- //查询 上新组
|
|
|
+ //当天
|
|
|
+ int newUnitNumNow = 0;
|
|
|
+ if (startDate == nowDate || entDate == nowDate){
|
|
|
+ //查询 当天有效 上新计划 上新组
|
|
|
+ JSONObject newEffect = materialStareMapper.getKuaiShouAccountNowBaseByUserId(operatorUserIds,null,null,nowDate,nowDate);
|
|
|
+ newUnitNumNow = Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum");//组
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询 历史上新组
|
|
|
JSONObject newEffect = materialStareMapper.getKuaiShouAccountBaseByUserId(operatorUserIds,null,null,startDate,entDate);
|
|
|
//基建数量
|
|
|
- groupVo.setUnitNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum"));//组
|
|
|
- resultList.add(groupVo);
|
|
|
+ groupVo.setUnitNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum")+newUnitNumNow);//组
|
|
|
}
|
|
|
- Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("运营组数据详情", "运营组数据"), KuaiShouOperateGroupVo.class, resultList);
|
|
|
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("运营组数据详情", "运营组数据"), KuaiShouOperateGroupVo.class, operationManagerList);
|
|
|
response.setCharacterEncoding("UTF-8");
|
|
|
response.setHeader("content-Type", "application/vnd.ms-excel");
|
|
|
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("运营组数据详情.xlsx", "UTF-8"));
|