|
|
@@ -30,6 +30,7 @@ import springfox.documentation.annotations.ApiIgnore;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
|
import javax.management.relation.RoleResult;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.security.Security;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -110,7 +111,10 @@ public class ProjectController {
|
|
|
if(!CollectionUtils.isEmpty(projectItemList))
|
|
|
{
|
|
|
k.setAllowDelete(false);
|
|
|
+ k.setAccountName(projectItemList.get(0).getAccountName());
|
|
|
+ k.setPayTime(projectItemList.get(0).getPayTime());
|
|
|
}
|
|
|
+
|
|
|
});
|
|
|
|
|
|
}
|
|
|
@@ -125,6 +129,12 @@ public class ProjectController {
|
|
|
.eq(ServiceProjectItem::getPId,e.getId());
|
|
|
List<ServiceProjectItem> itemList = serviceProjectItemService.list(lambdaQueryWrapper);
|
|
|
e.setItemList(itemList);
|
|
|
+ if(!CollectionUtils.isEmpty(itemList))
|
|
|
+ {
|
|
|
+ e.setAccountName(itemList.get(0).getAccountName());
|
|
|
+ e.setPayTime(itemList.get(0).getPayTime());
|
|
|
+ }
|
|
|
+
|
|
|
});
|
|
|
List<ServiceProject> collect = records.stream().filter(e -> !CollectionUtils.isEmpty(e.getItemList())).collect(Collectors.toList());
|
|
|
iPage.setRecords(collect);
|
|
|
@@ -381,9 +391,12 @@ public class ProjectController {
|
|
|
* 2.0-业绩分析
|
|
|
* */
|
|
|
@GetMapping("/performanceAnalysis")
|
|
|
- public R performanceAnalysis(@RequestParam(name = "flag", required = true) int flag,@RequestParam(name = "year", required = false) Long year)
|
|
|
+ public R performanceAnalysis(@RequestParam(name = "flag", required = true) int flag,@RequestParam(name = "year", required = false) Long year,
|
|
|
+ @RequestParam(name = "current", defaultValue = "1") Integer current
|
|
|
+ ,@RequestParam(name = "size", defaultValue = "10") Integer size)
|
|
|
{
|
|
|
LambdaQueryWrapper<ServiceProject> serviceProjectLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ Page<ServiceProject> page=new Page<>(current,size);
|
|
|
serviceProjectLambdaQueryWrapper
|
|
|
.eq(ServiceProject::getIsDeleted,0)
|
|
|
.eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
@@ -402,68 +415,67 @@ public class ProjectController {
|
|
|
{
|
|
|
serviceProjectLambdaQueryWrapper.groupBy(ServiceProject::getCorpId);
|
|
|
}
|
|
|
- List<ServiceProject> serviceProjectList = serviceProjectService.list(serviceProjectLambdaQueryWrapper);
|
|
|
+ IPage<ServiceProject> iPage = serviceProjectService.page(page);
|
|
|
+ List<ServiceProject> serviceProjectList = iPage.getRecords();
|
|
|
if(!CollectionUtils.isEmpty(serviceProjectList))
|
|
|
{
|
|
|
Long finalYear = year;
|
|
|
- serviceProjectList.forEach(lt->{
|
|
|
+ iPage.getRecords().forEach(lt->{
|
|
|
+
|
|
|
+ LambdaQueryWrapper<ServiceProject> countWrapper=new LambdaQueryWrapper<>();
|
|
|
+ countWrapper
|
|
|
+ .apply(" year(create_time) = '"+finalYear+"'")
|
|
|
+ .eq(ServiceProject::getIsDeleted,0)
|
|
|
+ .eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
+
|
|
|
+ ServiceProject serviceProject=null;
|
|
|
if(flag==1)
|
|
|
{
|
|
|
- List<Long> createUserIds = serviceProjectList.stream().map(ServiceProject::getCreateUser).collect(Collectors.toList());
|
|
|
- createUserIds.forEach(e->{
|
|
|
- LambdaQueryWrapper<ServiceProject> countCops=new LambdaQueryWrapper<>();
|
|
|
- countCops
|
|
|
- .apply(" year(create_time) = '"+finalYear+"'")
|
|
|
- .eq(ServiceProject::getIsDeleted,0)
|
|
|
- .eq(ServiceProject::getCreateUser,e)
|
|
|
- .eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
- int copsSize = serviceProjectService.list(countCops).stream().map(ServiceProject::getCorpId).distinct().collect(Collectors.toList()).size();
|
|
|
+ countWrapper.isNotNull(ServiceProject::getCorpId);
|
|
|
+ countWrapper.eq(ServiceProject::getCreateUser,lt.getCreateUser());
|
|
|
+ List<ServiceProject> projects = serviceProjectService.list(countWrapper);
|
|
|
+ int copsSize = projects.stream().map(ServiceProject::getCorpId).distinct().collect(Collectors.toList()).size();
|
|
|
lt.setCountCorp(copsSize);
|
|
|
- });
|
|
|
-
|
|
|
|
|
|
+ serviceProject = calculateServiceCharge(lt.getCreateUser(), 1, finalYear);
|
|
|
}
|
|
|
else if(flag==2)
|
|
|
{
|
|
|
- List<Long> corpsIds = serviceProjectList.stream().map(ServiceProject::getCorpId).collect(Collectors.toList());
|
|
|
- corpsIds.forEach(e->{
|
|
|
- LambdaQueryWrapper<ServiceProject> countCreateUser=new LambdaQueryWrapper<>();
|
|
|
- countCreateUser
|
|
|
- .apply(" year(create_time) = '"+finalYear+"'")
|
|
|
- .eq(ServiceProject::getIsDeleted,0)
|
|
|
- .eq(ServiceProject::getCorpId,e)
|
|
|
- .eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
- int createUserSize = serviceProjectService.list(countCreateUser).stream().map(ServiceProject::getCreateUser).distinct().collect(Collectors.toList()).size();
|
|
|
+ countWrapper.isNotNull(ServiceProject::getCreateUser);
|
|
|
+ countWrapper.eq(ServiceProject::getCorpId,lt.getCorpId());
|
|
|
+ List<ServiceProject> projects = serviceProjectService.list(countWrapper);
|
|
|
+ int createUserSize = projects.stream().map(ServiceProject::getCreateUser).distinct().collect(Collectors.toList()).size();
|
|
|
lt.setCountCreateUser(createUserSize);
|
|
|
- });
|
|
|
- }
|
|
|
- ServiceProject serviceProject=null;
|
|
|
- if(flag==1)
|
|
|
- {
|
|
|
- serviceProject = calculateServiceCharge(lt.getCreateUser(), 1, finalYear);
|
|
|
+
|
|
|
+ serviceProject = calculateServiceCharge(lt.getCorpId(), 2, finalYear);
|
|
|
}
|
|
|
- else if(flag==2)
|
|
|
+ //客户名称
|
|
|
+ if(lt.getCorpId()!=null)
|
|
|
{
|
|
|
- serviceProject = calculateServiceCharge(lt.getCorpId(), 2, finalYear);
|
|
|
- }
|
|
|
- lt.setJan(serviceProject.getJan());//1
|
|
|
- lt.setFeb(serviceProject.getFeb());//2
|
|
|
- lt.setMar(serviceProject.getMar());//3
|
|
|
- lt.setApr(serviceProject.getApr());//4
|
|
|
- lt.setMay(serviceProject.getMay());//5
|
|
|
- lt.setJune(serviceProject.getJune());//6
|
|
|
- lt.setJuly(serviceProject.getJuly());//7
|
|
|
- lt.setAug(serviceProject.getAug());//8
|
|
|
- lt.setSept(serviceProject.getSept());//9
|
|
|
- lt.setOct(serviceProject.getOct());//10
|
|
|
- lt.setNov(serviceProject.getNov());//11
|
|
|
- lt.setDece(serviceProject.getDece());//12
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(lt.getCorpId());
|
|
|
+ if(corpMessage.isSuccess()&&corpMessage.getData()!=null)
|
|
|
+ {
|
|
|
+ lt.setCorpNames(corpMessage.getData().getCname());
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
+ lt.setJan(serviceProject==null?BigDecimal.ZERO:serviceProject.getJan());//1
|
|
|
+ lt.setFeb(serviceProject==null?BigDecimal.ZERO:serviceProject.getFeb());//2
|
|
|
+ lt.setMar(serviceProject==null?BigDecimal.ZERO:serviceProject.getMar());//3
|
|
|
+ lt.setApr(serviceProject==null?BigDecimal.ZERO:serviceProject.getApr());//4
|
|
|
+ lt.setMay(serviceProject==null?BigDecimal.ZERO:serviceProject.getMay());//5
|
|
|
+ lt.setJune(serviceProject==null?BigDecimal.ZERO:serviceProject.getJune());//6
|
|
|
+ lt.setJuly(serviceProject==null?BigDecimal.ZERO:serviceProject.getJuly());//7
|
|
|
+ lt.setAug(serviceProject==null?BigDecimal.ZERO:serviceProject.getAug());//8
|
|
|
+ lt.setSept(serviceProject==null?BigDecimal.ZERO:serviceProject.getSept());//9
|
|
|
+ lt.setOct(serviceProject==null?BigDecimal.ZERO:serviceProject.getOct());//10
|
|
|
+ lt.setNov(serviceProject==null?BigDecimal.ZERO:serviceProject.getNov());//11
|
|
|
+ lt.setDece(serviceProject==null?BigDecimal.ZERO:serviceProject.getDece());//12
|
|
|
});
|
|
|
|
|
|
|
|
|
}
|
|
|
- return R.data(serviceProjectList);
|
|
|
+ return R.data(iPage.getRecords());
|
|
|
}
|
|
|
|
|
|
//计算每个月的服务费
|