|
@@ -6,22 +6,20 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.qmth.sop.business.bean.dto.DataPermissionDto;
|
|
import com.qmth.sop.business.bean.dto.DataPermissionDto;
|
|
import com.qmth.sop.business.bean.result.CrmAnalyseResult;
|
|
import com.qmth.sop.business.bean.result.CrmAnalyseResult;
|
|
import com.qmth.sop.business.bean.result.TBCrmResult;
|
|
import com.qmth.sop.business.bean.result.TBCrmResult;
|
|
-import com.qmth.sop.business.bean.result.UserArchivesAllocationResult;
|
|
|
|
import com.qmth.sop.business.entity.SysUser;
|
|
import com.qmth.sop.business.entity.SysUser;
|
|
import com.qmth.sop.business.entity.TBCrm;
|
|
import com.qmth.sop.business.entity.TBCrm;
|
|
import com.qmth.sop.business.mapper.CrmAnalyseMapper;
|
|
import com.qmth.sop.business.mapper.CrmAnalyseMapper;
|
|
-import com.qmth.sop.business.mapper.ServiceAnalyseMapper;
|
|
|
|
import com.qmth.sop.business.service.CrmAnalyseService;
|
|
import com.qmth.sop.business.service.CrmAnalyseService;
|
|
import com.qmth.sop.business.service.SysUserService;
|
|
import com.qmth.sop.business.service.SysUserService;
|
|
import com.qmth.sop.common.enums.ProductTypeEnum;
|
|
import com.qmth.sop.common.enums.ProductTypeEnum;
|
|
import com.qmth.sop.common.util.ServletUtil;
|
|
import com.qmth.sop.common.util.ServletUtil;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* @author dhshu
|
|
* @author dhshu
|
|
* @date:
|
|
* @date:
|
|
@@ -52,15 +50,19 @@ public class CrmAnalyseServiceImpl extends ServiceImpl<CrmAnalyseMapper, TBCrm>
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
Map<String, List<Map<String, Object>>> map = new HashMap<>();
|
|
Map<String, List<Map<String, Object>>> map = new HashMap<>();
|
|
map.put("year", this.baseMapper.monthly(startTime, endTime, Objects.nonNull(type) ? type.name() : null, dpr));
|
|
map.put("year", this.baseMapper.monthly(startTime, endTime, Objects.nonNull(type) ? type.name() : null, dpr));
|
|
- map.put("lastYear", this.baseMapper.monthly(startTime - 365 * 24 * 60 * 60 * 1000L, endTime - 365 * 24 * 60 * 60 * 1000L, Objects.nonNull(type) ? type.name() : null, dpr));
|
|
|
|
|
|
+ map.put("lastYear",
|
|
|
|
+ this.baseMapper.monthly(startTime - 365 * 24 * 60 * 60 * 1000L, endTime - 365 * 24 * 60 * 60 * 1000L,
|
|
|
|
+ Objects.nonNull(type) ? type.name() : null, dpr));
|
|
return map;
|
|
return map;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public IPage<TBCrmResult> monthlyDetail(Page<Object> iPage, String year, String month, ProductTypeEnum type, Long startTime, Long endTime) {
|
|
|
|
|
|
+ public IPage<TBCrmResult> monthlyDetail(Page<Object> iPage, String year, String month, ProductTypeEnum type,
|
|
|
|
+ Long startTime, Long endTime) {
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
- return this.baseMapper.crmDetail(iPage, year, month, Objects.nonNull(type) ? type.name() : null,startTime,endTime, dpr);
|
|
|
|
|
|
+ return this.baseMapper.crmDetail(iPage, year, month, Objects.nonNull(type) ? type.name() : null, startTime,
|
|
|
|
+ endTime, dpr);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -81,22 +83,29 @@ public class CrmAnalyseServiceImpl extends ServiceImpl<CrmAnalyseMapper, TBCrm>
|
|
public List<CrmAnalyseResult> region(Long startTime, Long endTime, ProductTypeEnum type) {
|
|
public List<CrmAnalyseResult> region(Long startTime, Long endTime, ProductTypeEnum type) {
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
- List<CrmAnalyseResult> region = this.baseMapper.region(startTime, endTime, Objects.nonNull(type) ? type.name() : null, dpr);
|
|
|
|
- List<CrmAnalyseResult> region1 = this.baseMapper.region(startTime - 24 * 60 * 60 * 1000L, endTime - 24 * 60 * 60 * 1000L, Objects.nonNull(type) ? type.name() : null, dpr);
|
|
|
|
-
|
|
|
|
- return region.stream().map(map->{
|
|
|
|
- CrmAnalyseResult crmAnalyseResult = region1.stream().filter(map1 -> map1.getName().equals(map.getName())).findFirst().orElse(new CrmAnalyseResult());
|
|
|
|
- map.setCompare(map.getCount()-crmAnalyseResult.getCount());
|
|
|
|
- map.setRate(String.format("%.2f", Double.parseDouble(String.valueOf(map.getCount()-crmAnalyseResult.getCount()))*100 /map.getCount()) + "%");
|
|
|
|
|
|
+ List<CrmAnalyseResult> region = this.baseMapper.region(startTime, endTime,
|
|
|
|
+ Objects.nonNull(type) ? type.name() : null, dpr);
|
|
|
|
+ List<CrmAnalyseResult> region1 = this.baseMapper.region(startTime - 24 * 60 * 60 * 1000L,
|
|
|
|
+ endTime - 24 * 60 * 60 * 1000L, Objects.nonNull(type) ? type.name() : null, dpr);
|
|
|
|
+
|
|
|
|
+ return region.stream().map(map -> {
|
|
|
|
+ CrmAnalyseResult crmAnalyseResult = region1.stream().filter(map1 -> map1.getName().equals(map.getName()))
|
|
|
|
+ .findFirst().orElse(new CrmAnalyseResult());
|
|
|
|
+ map.setCompare(map.getCount() - crmAnalyseResult.getCount());
|
|
|
|
+ map.setRate(String.format("%.2f",
|
|
|
|
+ Double.parseDouble(String.valueOf(map.getCount() - crmAnalyseResult.getCount())) * 100
|
|
|
|
+ / map.getCount()) + "%");
|
|
return map;
|
|
return map;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public IPage<TBCrmResult> regionDetail(Page<Object> iPage, Long startTime, Long endTime, String province, ProductTypeEnum type) {
|
|
|
|
|
|
+ public IPage<TBCrmResult> regionDetail(Page<Object> iPage, Long startTime, Long endTime, String province,
|
|
|
|
+ ProductTypeEnum type) {
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
- return this.baseMapper.crmDetail(iPage, startTime, endTime, province, Objects.nonNull(type) ? type.name() : null, dpr);
|
|
|
|
|
|
+ return this.baseMapper.crmDetail(iPage, startTime, endTime, province,
|
|
|
|
+ Objects.nonNull(type) ? type.name() : null, dpr);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -104,29 +113,28 @@ public class CrmAnalyseServiceImpl extends ServiceImpl<CrmAnalyseMapper, TBCrm>
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
List<Map<String, Object>> project = this.baseMapper.project(startTime, endTime, dpr);
|
|
List<Map<String, Object>> project = this.baseMapper.project(startTime, endTime, dpr);
|
|
- List<CrmAnalyseResult> list=new ArrayList<>();
|
|
|
|
|
|
+ List<CrmAnalyseResult> list = new ArrayList<>();
|
|
|
|
|
|
project.stream().collect(Collectors.groupingBy(map -> map.get("name"))).forEach((k, v) -> {
|
|
project.stream().collect(Collectors.groupingBy(map -> map.get("name"))).forEach((k, v) -> {
|
|
CrmAnalyseResult crmAnalyseResult = new CrmAnalyseResult();
|
|
CrmAnalyseResult crmAnalyseResult = new CrmAnalyseResult();
|
|
crmAnalyseResult.setName((String) k);
|
|
crmAnalyseResult.setName((String) k);
|
|
crmAnalyseResult.setId(Long.valueOf(v.get(0).get("id").toString()));
|
|
crmAnalyseResult.setId(Long.valueOf(v.get(0).get("id").toString()));
|
|
- int crmNum=v.stream().collect(Collectors.groupingBy(map -> map.get("crm_no"))).size();
|
|
|
|
- final int[] finish = {0};
|
|
|
|
- v.stream().collect(Collectors.groupingBy(map -> map.get("crm_no")))
|
|
|
|
- .forEach((k1, v1) -> {
|
|
|
|
- if (v1.stream().anyMatch(map2 -> map2.get("sop_no") != null) &&v1.stream().filter(map2 -> map2.get("sop_no") != null).count() == v1.stream().filter(map2 -> "FINISH".equals(map2.get("status"))).count()) {
|
|
|
|
- finish[0] = finish[0] + 1;
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- crmAnalyseResult.setRate(finish[0] *100/crmNum+"%");
|
|
|
|
|
|
+ int crmNum = v.stream().collect(Collectors.groupingBy(map -> map.get("crm_no"))).size();
|
|
|
|
+ final int[] finish = { 0 };
|
|
|
|
+ v.stream().collect(Collectors.groupingBy(map -> map.get("crm_no"))).forEach((k1, v1) -> {
|
|
|
|
+ if (v1.stream().anyMatch(map2 -> map2.get("sop_no") != null)
|
|
|
|
+ && v1.stream().filter(map2 -> map2.get("sop_no") != null).count() == v1.stream()
|
|
|
|
+ .filter(map2 -> "FINISH".equals(map2.get("status"))).count()) {
|
|
|
|
+ finish[0] = finish[0] + 1;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ crmAnalyseResult.setRate(finish[0] * 100 / crmNum + "%");
|
|
list.add(crmAnalyseResult);
|
|
list.add(crmAnalyseResult);
|
|
});
|
|
});
|
|
//list 按字符串Rate升序排列
|
|
//list 按字符串Rate升序排列
|
|
list.sort(Comparator.comparingDouble(o -> Double.parseDouble(o.getRate().replace("%", ""))));
|
|
list.sort(Comparator.comparingDouble(o -> Double.parseDouble(o.getRate().replace("%", ""))));
|
|
return list;
|
|
return list;
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -140,7 +148,8 @@ public class CrmAnalyseServiceImpl extends ServiceImpl<CrmAnalyseMapper, TBCrm>
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
Map<String, Object> map = this.baseMapper.projectCount(startTime, endTime, dpr);
|
|
Map<String, Object> map = this.baseMapper.projectCount(startTime, endTime, dpr);
|
|
Integer allocation = this.baseMapper.findAllocation(startTime, endTime, dpr);
|
|
Integer allocation = this.baseMapper.findAllocation(startTime, endTime, dpr);
|
|
- map.put("person",allocation);
|
|
|
|
|
|
+ map = CollectionUtils.isEmpty(map) ? new HashMap<>() : map;
|
|
|
|
+ map.put("person", Objects.isNull(allocation) ? 0 : allocation);
|
|
return map;
|
|
return map;
|
|
}
|
|
}
|
|
}
|
|
}
|