Browse Source

统计分析修改

ioioio 4 years ago
parent
commit
a8b207c6a4

+ 29 - 13
blade-service/blade-project/src/main/java/org/springblade/project/controller/ProjectController.java

@@ -393,29 +393,45 @@ public class ProjectController {
 	@GetMapping("/performanceAnalysis")
 	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)
+		                        ,@RequestParam(name = "size", defaultValue = "10") Integer size
+	                            ,@RequestParam(name = "createUser",  required = false) Long createUser)
 	{
-        LambdaQueryWrapper<ServiceProject> serviceProjectLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		if(year==null&&year==0L&&year==0)
+		{
+			Calendar cal = Calendar.getInstance();
+			year = Long.valueOf(cal.get(Calendar.YEAR));
+		}
+		//查询结算年份对应的主表
+		LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		itemLambdaQueryWrapper.apply(" year(pay_time) = '"+year+"'");
+		itemLambdaQueryWrapper.eq(ServiceProjectItem::getTenantId,AuthUtil.getTenantId());
+		itemLambdaQueryWrapper.eq(ServiceProjectItem::getIsDeleted,0);
+		if(flag==1)
+		{
+				itemLambdaQueryWrapper.eq(createUser!=null,ServiceProjectItem::getCreateUser,createUser);
+		}
+		List<Long> pids = serviceProjectItemService.list(itemLambdaQueryWrapper).stream().map(ServiceProjectItem::getPId).collect(Collectors.toList());
+        if(CollectionUtils.isEmpty(pids))
+        {
+        	return R.data(null);
+		}
+
+		LambdaQueryWrapper<ServiceProject> serviceProjectLambdaQueryWrapper=new LambdaQueryWrapper<>();
         Page<ServiceProject> page=new Page<>(current,size);
 		serviceProjectLambdaQueryWrapper
+			.in(ServiceProject::getId,pids)
+			.orderByAsc(ServiceProject::getCreateTime)
 			.eq(ServiceProject::getIsDeleted,0)
 			.eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
-			if(year==null&&year==0L&&year==0)
-			{
-				Calendar cal = Calendar.getInstance();
-				year = Long.valueOf(cal.get(Calendar.YEAR));
-			}
-			//年份
-		    serviceProjectLambdaQueryWrapper.apply(" year(create_time) = '"+year+"'");
-			if(flag==1)
-			{
+		    if(flag==1)
+		    {
 				serviceProjectLambdaQueryWrapper.groupBy(ServiceProject::getCreateUser);
 			}
 			else if(flag==2)
 			{
 				serviceProjectLambdaQueryWrapper.groupBy(ServiceProject::getCorpId);
 			}
-		IPage<ServiceProject> iPage = serviceProjectService.page(page);
+		IPage<ServiceProject> iPage = serviceProjectService.page(page,serviceProjectLambdaQueryWrapper);
 		List<ServiceProject> serviceProjectList = iPage.getRecords();
 		   	if(!CollectionUtils.isEmpty(serviceProjectList))
 		   	{
@@ -475,7 +491,7 @@ public class ProjectController {
 
 
 			}
-		   	return R.data(iPage.getRecords());
+		   	return R.data(iPage);
 	}
 
     //计算每个月的服务费