|
@@ -16,10 +16,7 @@ import com.qmth.sop.common.util.ServletUtil;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -104,7 +101,35 @@ public class CrmAnalyseServiceImpl extends ServiceImpl<CrmAnalyseMapper, TBCrm>
|
|
|
public List<CrmAnalyseResult> project(Long startTime, Long endTime) {
|
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
|
- return this.baseMapper.project(startTime, endTime, dpr);
|
|
|
+ List<Map<String, Object>> project = this.baseMapper.project(startTime, endTime, dpr);
|
|
|
+ List<CrmAnalyseResult> list=new ArrayList<>();
|
|
|
+
|
|
|
+ project.stream().collect(Collectors.groupingBy(map -> map.get("name"))).forEach((k, v) -> {
|
|
|
+ CrmAnalyseResult crmAnalyseResult = new CrmAnalyseResult();
|
|
|
+ crmAnalyseResult.setName((String) k);
|
|
|
+ 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[] finsh = {0};
|
|
|
+ v.stream().collect(Collectors.groupingBy(map -> map.get("crm_no")))
|
|
|
+ .forEach((k1, v1) -> {
|
|
|
+ if (v1.stream().filter(map -> map.get("sop_no") != null).count() == v1.stream().filter(map -> "FINISH".equals(map.get("status"))).count()) {
|
|
|
+ finsh[0] = finsh[0] + 1;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ crmAnalyseResult.setRate(finsh[0] *100/crmNum+"%");
|
|
|
+ list.add(crmAnalyseResult);
|
|
|
+ });
|
|
|
+
|
|
|
+ Collections.sort(list, new Comparator<CrmAnalyseResult>() {
|
|
|
+ @Override
|
|
|
+ public int compare(CrmAnalyseResult o1, CrmAnalyseResult o2) {
|
|
|
+ return Double.compare(Double.parseDouble(o1.getRate().replace("%","")),Double.parseDouble(o2.getRate().replace("%","")));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return list;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|