|
|
@@ -27,6 +27,7 @@ import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
+import org.springframework.util.ObjectUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import springfox.documentation.annotations.ApiIgnore;
|
|
|
|
|
|
@@ -294,7 +295,8 @@ public class ProjectController {
|
|
|
@RequestParam(name = "createEndTime", required = false) String createEndTime,
|
|
|
@RequestParam(name = "beginStartTime", required = false) String beginStartTime,
|
|
|
@RequestParam(name = "beginEndTime", required = false) String beginEndTime,
|
|
|
- @RequestParam(name = "projectType", required = false) Integer projectType
|
|
|
+ @RequestParam(name = "projectType", required = false) Integer projectType,
|
|
|
+ @RequestParam(name = "branch", required = false) String branch
|
|
|
) {
|
|
|
List<String> listStatus = Arrays.asList(status.split(","));
|
|
|
|
|
|
@@ -340,11 +342,11 @@ public class ProjectController {
|
|
|
{
|
|
|
return R.data(Collections.EMPTY_LIST);
|
|
|
}*/
|
|
|
- itemLambdaQueryWrapper.orderByDesc(ServiceProjectItem::getBeginTime)
|
|
|
+ itemLambdaQueryWrapper.orderByDesc(ServiceProjectItem::getCreateTime)
|
|
|
.eq(deptid != null, ServiceProjectItem::getDeptid, deptid)
|
|
|
.eq(ServiceProjectItem::getIsDeleted,0)
|
|
|
- .in(ServiceProjectItem::getStatus, listStatus);
|
|
|
-// .eq(ServiceProjectItem::getBranch,"Y");
|
|
|
+ .in(ServiceProjectItem::getStatus, listStatus)
|
|
|
+ .eq(ServiceProjectItem::getBranch,branch);
|
|
|
Page<ServiceProjectItem> page = new Page<>(current, size);
|
|
|
IPage<ServiceProjectItem> iPage = serviceProjectItemService.page(page, itemLambdaQueryWrapper);
|
|
|
if (!CollectionUtils.isEmpty(iPage.getRecords())) {
|
|
|
@@ -562,94 +564,6 @@ public class ProjectController {
|
|
|
});
|
|
|
return R.data(serviceProjectList);
|
|
|
}
|
|
|
-
|
|
|
-/*
|
|
|
- //获取结算时间为指定年的数据
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
- itemLambdaQueryWrapper.apply(" year(pay_time) = '"+year+"'");
|
|
|
- itemLambdaQueryWrapper.eq(ServiceProjectItem::getTenantId,AuthUtil.getTenantId());
|
|
|
- itemLambdaQueryWrapper.eq(ServiceProjectItem::getIsDeleted,0);
|
|
|
- List<Long> pids = serviceProjectItemService.list(itemLambdaQueryWrapper).stream().map(ServiceProjectItem::getPId).collect(Collectors.toList());
|
|
|
- if(CollectionUtils.isEmpty(pids))
|
|
|
- {
|
|
|
- return R.data(null);
|
|
|
- }
|
|
|
-
|
|
|
- //通过上述数据,查询相关客户数据
|
|
|
- LambdaQueryWrapper<ServiceProject> countCorps=new LambdaQueryWrapper<>();
|
|
|
- countCorps
|
|
|
- .eq(corpNames!=null,ServiceProject::getCorpId,corpNames)
|
|
|
- .isNotNull(ServiceProject::getCorpId)
|
|
|
- .in(ServiceProject::getId,pids)
|
|
|
- .eq(ServiceProject::getIsDeleted,0)
|
|
|
- .groupBy(ServiceProject::getCorpId)
|
|
|
- .eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
- List<ServiceProject> projectList = serviceProjectService.list(countCorps);
|
|
|
-
|
|
|
- Long finalYear = year;
|
|
|
- //开始封装数据
|
|
|
- projectList.forEach(e->{
|
|
|
- //客户名称
|
|
|
- if(e.getCorpId()!=null)
|
|
|
- {
|
|
|
- R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
|
|
|
- if(corpMessage.isSuccess()&&corpMessage.getData()!=null)
|
|
|
- {
|
|
|
- e.setCorpNames(corpMessage.getData().getCname());
|
|
|
- }
|
|
|
- }
|
|
|
- //统计此客户多少个承做人
|
|
|
- LambdaQueryWrapper<ServiceProject> count=new LambdaQueryWrapper<>();
|
|
|
- count.eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
- count.eq(ServiceProject::getIsDeleted,0);
|
|
|
- count.eq(ServiceProject::getCorpId,e.getCorpId());
|
|
|
- List<Long> pid = serviceProjectService.list(count).stream().map(ServiceProject::getId).collect(Collectors.toList());
|
|
|
-
|
|
|
- if(!CollectionUtils.isEmpty(pid))
|
|
|
- {
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> countItem=new LambdaQueryWrapper<>();
|
|
|
- countItem.in(ServiceProjectItem::getPId,pid);
|
|
|
- countItem.eq(ServiceProjectItem::getIsDeleted,0);
|
|
|
- countItem.eq(ServiceProjectItem::getTenantId,AuthUtil.getTenantId());
|
|
|
- List<ServiceProjectItem> list = serviceProjectItemService.list(countItem);
|
|
|
- e.setCountUserName(list.stream().map(ServiceProjectItem::getUserName).distinct().collect(Collectors.toList()).size());
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- e.setCountUserName(0);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- //统计服务费
|
|
|
- ServiceProject serviceProject = calculateServiceCharge(null,e.getCorpId(), 2, finalYear);
|
|
|
- e.setJan(serviceProject==null?BigDecimal.ZERO:serviceProject.getJan());//1
|
|
|
- e.setFeb(serviceProject==null?BigDecimal.ZERO:serviceProject.getFeb());//2
|
|
|
- e.setMar(serviceProject==null?BigDecimal.ZERO:serviceProject.getMar());//3
|
|
|
- e.setApr(serviceProject==null?BigDecimal.ZERO:serviceProject.getApr());//4
|
|
|
- e.setMay(serviceProject==null?BigDecimal.ZERO:serviceProject.getMay());//5
|
|
|
- e.setJune(serviceProject==null?BigDecimal.ZERO:serviceProject.getJune());//6
|
|
|
- e.setJuly(serviceProject==null?BigDecimal.ZERO:serviceProject.getJuly());//7
|
|
|
- e.setAug(serviceProject==null?BigDecimal.ZERO:serviceProject.getAug());//8
|
|
|
- e.setSept(serviceProject==null?BigDecimal.ZERO:serviceProject.getSept());//9
|
|
|
- e.setOct(serviceProject==null?BigDecimal.ZERO:serviceProject.getOct());//10
|
|
|
- e.setNov(serviceProject==null?BigDecimal.ZERO:serviceProject.getNov());//11
|
|
|
- e.setDece(serviceProject==null?BigDecimal.ZERO:serviceProject.getDece());//12
|
|
|
- e.setTotal
|
|
|
- ( e.getJan()
|
|
|
- .add(e.getFeb())
|
|
|
- .add(e.getMar())
|
|
|
- .add(e.getApr())
|
|
|
- .add(e.getMay())
|
|
|
- .add(e.getJune())
|
|
|
- .add(e.getJuly())
|
|
|
- .add(e.getAug())
|
|
|
- .add(e.getSept())
|
|
|
- .add(e.getOct())
|
|
|
- .add(e.getNov())
|
|
|
- .add(e.getDece())
|
|
|
- );
|
|
|
- });*/
|
|
|
-
|
|
|
}
|
|
|
return R.data(Collections.EMPTY_LIST);
|
|
|
}
|
|
|
@@ -819,105 +733,6 @@ public class ProjectController {
|
|
|
return R.data(iPage);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-/*
|
|
|
- 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(flag==1)
|
|
|
- {
|
|
|
- serviceProjectLambdaQueryWrapper.groupBy(ServiceProject::getCreateUser);
|
|
|
- }
|
|
|
- else if(flag==2)
|
|
|
- {
|
|
|
- serviceProjectLambdaQueryWrapper.groupBy(ServiceProject::getCorpId);
|
|
|
- }
|
|
|
- IPage<ServiceProject> iPage = serviceProjectService.page(page,serviceProjectLambdaQueryWrapper);
|
|
|
- List<ServiceProject> serviceProjectList = iPage.getRecords();
|
|
|
- if(!CollectionUtils.isEmpty(serviceProjectList))
|
|
|
- {
|
|
|
- Long finalYear = year;
|
|
|
- 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)
|
|
|
- {
|
|
|
- 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)
|
|
|
- {
|
|
|
- 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 = calculateServiceCharge(lt.getCorpId(), 2, finalYear);
|
|
|
- }
|
|
|
- //客户名称
|
|
|
- if(lt.getCorpId()!=null)
|
|
|
- {
|
|
|
- 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(iPage);*/
|
|
|
return R.data(Collections.EMPTY_LIST);
|
|
|
}
|
|
|
|
|
|
@@ -946,4 +761,66 @@ public class ProjectController {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @GetMapping("statistics/list")
|
|
|
+ public R<?> statistics(@RequestParam(name = "current", defaultValue = "1") Integer current,
|
|
|
+ @RequestParam(name = "size", defaultValue = "10") Integer size,
|
|
|
+ @RequestParam(name = "beginTime", required = false) String beginTime,
|
|
|
+ @RequestParam(name = "actualDate", required = false) String actualDate,
|
|
|
+ @RequestParam(name = "corpName", required = false) String corpName,
|
|
|
+ @RequestParam(name = "status", required = true) String status,
|
|
|
+ @RequestParam(name = "branch", required = false) String branch
|
|
|
+ ) {
|
|
|
+ List<String> listStatus = Arrays.asList(status.split(","));
|
|
|
+
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ itemLambdaQueryWrapper
|
|
|
+ .eq(ServiceProjectItem::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .apply(StringUtils.isNotBlank(beginTime), "date_format(begin_time,'%Y-%m-%d') >= '" + beginTime + "'")
|
|
|
+ .apply(StringUtils.isNotBlank(actualDate), "date_format(actual_date,'%Y-%m-%d') <= '" + actualDate + "'");
|
|
|
+
|
|
|
+ // 承做人
|
|
|
+ if(StringUtils.isNotBlank(corpName)) {
|
|
|
+ List<User> userList = userClient.userInfoByName(corpName,AuthUtil.getTenantId());
|
|
|
+ List<Long> userIds = userList.stream().map(User::getId).collect(Collectors.toList());
|
|
|
+ itemLambdaQueryWrapper.in(ServiceProjectItem::getUserid,userIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ itemLambdaQueryWrapper.orderByDesc(ServiceProjectItem::getUserid)
|
|
|
+ .eq(ServiceProjectItem::getIsDeleted,0)
|
|
|
+ .in(ServiceProjectItem::getStatus, listStatus)
|
|
|
+ .eq(ServiceProjectItem::getBranch,branch);
|
|
|
+ Page<ServiceProjectItem> page = new Page<>(current, size);
|
|
|
+ IPage<ServiceProjectItem> iPage = serviceProjectItemService.page(page, itemLambdaQueryWrapper);
|
|
|
+ if (!CollectionUtils.isEmpty(iPage.getRecords())) {
|
|
|
+ String[] str = new String[]{"录入", "已请核", "审核中", "审核通过", "正在结算", "结算完成", "", "追加", "退费"};
|
|
|
+ iPage.getRecords().forEach(e -> {
|
|
|
+ e.setStrStatus(str[e.getStatus()]);
|
|
|
+ Long corpId = serviceProjectService.getOne(new LambdaQueryWrapper<ServiceProject>()
|
|
|
+ .eq(ServiceProject::getId, e.getPId())).getCorpId();
|
|
|
+ e.setCornId(corpId);
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpId);
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
+ e.setCornName(corpMessage.getData().getCname());
|
|
|
+ }
|
|
|
+ //任务部门
|
|
|
+ R<Dept> dept = iSysClient.getDept(e.getDeptid());
|
|
|
+ if (dept.isSuccess() && dept.getData() != null) {
|
|
|
+ e.setDeptName(dept.getData().getDeptName());
|
|
|
+ }
|
|
|
+ //承做人
|
|
|
+
|
|
|
+ R<User> userR = userClient.userInfoById(e.getUserid());
|
|
|
+ if(userR.isSuccess())
|
|
|
+ {
|
|
|
+ e.setUserName(userR.getData().getRealName());
|
|
|
+ }
|
|
|
+ //毛收入
|
|
|
+ e.setGrossIncome((e.getServiceCharge().add(e.getMatMoney())).subtract(e.getCostReturn()));
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+ return R.data(iPage);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|