|
|
@@ -3,19 +3,16 @@ package org.springblade.project.controller;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
-import com.obs.services.internal.security.EcsSecurityUtils;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springblade.client.entity.CorpsDesc;
|
|
|
import org.springblade.client.feign.ICorpsDescClient;
|
|
|
-import org.springblade.core.log.exception.ServiceException;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
|
-import org.springblade.core.tenant.annotation.NonDS;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.CollectionUtil;
|
|
|
import org.springblade.project.entity.ServiceProject;
|
|
|
-
|
|
|
import org.springblade.project.entity.ServiceProjectFiles;
|
|
|
import org.springblade.project.entity.ServiceProjectItem;
|
|
|
import org.springblade.project.service.ServiceProjectFilesService;
|
|
|
@@ -26,17 +23,13 @@ import org.springblade.system.entity.Dept;
|
|
|
import org.springblade.system.entity.Tenant;
|
|
|
import org.springblade.system.feign.ISysClient;
|
|
|
import org.springblade.system.feign.ITenantClient;
|
|
|
-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.web.bind.annotation.*;
|
|
|
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;
|
|
|
|
|
|
@@ -52,11 +45,11 @@ public class ProjectController {
|
|
|
private ServiceProjectItemService serviceProjectItemService;
|
|
|
@Autowired
|
|
|
private ServiceProjectFilesService serviceProjectFilesService;
|
|
|
- @Autowired
|
|
|
+ @Autowired
|
|
|
private IUserClient userClient;
|
|
|
@Autowired
|
|
|
private ITenantClient iTenantClient;
|
|
|
- @Autowired
|
|
|
+ @Autowired
|
|
|
private ICorpsDescClient corpsDescClient;//获取客户信息
|
|
|
@Autowired
|
|
|
private ISysClient iSysClient;//部门
|
|
|
@@ -75,38 +68,33 @@ public class ProjectController {
|
|
|
@RequestParam(name = "createStartDate", required = false) String createStartDate,
|
|
|
@RequestParam(name = "createEndDate", required = false) String createEndDate,
|
|
|
@RequestParam(name = "flag", required = true) int flag
|
|
|
- )
|
|
|
- {
|
|
|
+ ) {
|
|
|
LambdaQueryWrapper<ServiceProject> serviceProjectLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
//只显示未结算的
|
|
|
- if(flag==2)
|
|
|
- {
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> lambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ if (flag == 2) {
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
lambdaQueryWrapper
|
|
|
- .eq(ServiceProjectItem::getStatus,0)
|
|
|
- .eq(ServiceProjectItem::getIsDeleted,0);
|
|
|
+ .eq(ServiceProjectItem::getStatus, 0)
|
|
|
+ .eq(ServiceProjectItem::getIsDeleted, 0);
|
|
|
List<ServiceProjectItem> list = serviceProjectItemService.list(lambdaQueryWrapper);
|
|
|
//如果等于空,直接返回
|
|
|
- if(CollectionUtils.isEmpty(list))
|
|
|
- {
|
|
|
- return R.data(null);
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
+ return R.data(null);
|
|
|
}
|
|
|
//不为空
|
|
|
- else
|
|
|
- {
|
|
|
+ else {
|
|
|
List<Long> ids = list.stream().map(ServiceProjectItem::getPId).collect(Collectors.toList());
|
|
|
- serviceProjectLambdaQueryWrapper.in(ServiceProject::getId,ids);
|
|
|
+ serviceProjectLambdaQueryWrapper.in(ServiceProject::getId, ids);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
List<Long> corpIdList = Collections.emptyList();
|
|
|
- if (StringUtils.isNotBlank(corpName))
|
|
|
- {
|
|
|
+ if (StringUtils.isNotBlank(corpName)) {
|
|
|
corpIdList = corpsDescClient.listCorpIdByName(corpName);
|
|
|
}
|
|
|
|
|
|
- serviceProjectLambdaQueryWrapper.between(StringUtils.isNotBlank(createStartDate)&&StringUtils.isNotBlank(createEndDate),ServiceProject::getCreateTime,createStartDate,createEndDate)
|
|
|
+ serviceProjectLambdaQueryWrapper.between(StringUtils.isNotBlank(createStartDate) && StringUtils.isNotBlank(createEndDate), ServiceProject::getCreateTime, createStartDate, createEndDate)
|
|
|
.eq(ServiceProject::getTenantId, AuthUtil.getTenantId())
|
|
|
.like(StringUtils.isNotBlank(dutyName), ServiceProject::getDutyName, dutyName)
|
|
|
.like(StringUtils.isNotBlank(remark), ServiceProject::getRemark, remark)
|
|
|
@@ -123,29 +111,25 @@ public class ProjectController {
|
|
|
List<ServiceProject> records = iPage.getRecords();
|
|
|
|
|
|
//客户名称
|
|
|
- records.forEach(e->{
|
|
|
+ records.forEach(e -> {
|
|
|
R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
|
|
|
- if(corpMessage.isSuccess()&&corpMessage.getData()!=null)
|
|
|
- {
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
e.setCorpNames(corpMessage.getData().getCname());
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
-
|
|
|
//检查是否可以删除主表,没有子表信息 或者 子表status全部为0 就可以删除
|
|
|
- if(flag==0)
|
|
|
- {
|
|
|
- records.forEach(k->{
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> lambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ if (flag == 0) {
|
|
|
+ records.forEach(k -> {
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
lambdaQueryWrapper
|
|
|
- .eq(ServiceProjectItem::getIsDeleted,0)
|
|
|
- .eq(ServiceProjectItem::getPId,k.getId())
|
|
|
- .gt(ServiceProjectItem::getStatus,0);
|
|
|
+ .eq(ServiceProjectItem::getIsDeleted, 0)
|
|
|
+ .eq(ServiceProjectItem::getPId, k.getId())
|
|
|
+ .gt(ServiceProjectItem::getStatus, 0);
|
|
|
List<ServiceProjectItem> projectItemList = serviceProjectItemService.list(lambdaQueryWrapper);
|
|
|
- if(!CollectionUtils.isEmpty(projectItemList))
|
|
|
- {
|
|
|
+ if (!CollectionUtils.isEmpty(projectItemList)) {
|
|
|
k.setAllowDelete(false);
|
|
|
k.setAccountName(projectItemList.get(0).getAccountName());
|
|
|
k.setPayTime(projectItemList.get(0).getPayTime());
|
|
|
@@ -155,25 +139,26 @@ public class ProjectController {
|
|
|
|
|
|
}
|
|
|
//flag=1为
|
|
|
- if(flag==1)
|
|
|
- {
|
|
|
- records.forEach(e->{
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> lambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ if (flag == 1 || flag == 3) {
|
|
|
+ records.forEach(e -> {
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
lambdaQueryWrapper
|
|
|
- .ge(ServiceProjectItem::getStatus,2)
|
|
|
- .eq(ServiceProjectItem::getIsDeleted,0)
|
|
|
- .eq(ServiceProjectItem::getPId,e.getId());
|
|
|
+ .ge(ServiceProjectItem::getStatus, 2)
|
|
|
+ .eq(ServiceProjectItem::getIsDeleted, 0)
|
|
|
+ .eq(ServiceProjectItem::getPId, e.getId());
|
|
|
List<ServiceProjectItem> itemList = serviceProjectItemService.list(lambdaQueryWrapper);
|
|
|
e.setItemList(itemList);
|
|
|
- if(!CollectionUtils.isEmpty(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);
|
|
|
+
|
|
|
+ if (flag == 1) {
|
|
|
+ List<ServiceProject> collect = records.stream().filter(e -> !CollectionUtils.isEmpty(e.getItemList())).collect(Collectors.toList());
|
|
|
+ iPage.setRecords(collect);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return R.data(iPage);
|
|
|
@@ -181,16 +166,14 @@ public class ProjectController {
|
|
|
}
|
|
|
|
|
|
@PutMapping("modify")
|
|
|
- public R edit(@RequestBody ServiceProject serviceProject)
|
|
|
- {
|
|
|
+ public R edit(@RequestBody ServiceProject serviceProject) {
|
|
|
serviceProjectService.modify(serviceProject);
|
|
|
return R.data(serviceProject.getId());
|
|
|
}
|
|
|
|
|
|
@DeleteMapping("delete")
|
|
|
- public R delete (@RequestParam(name = "id", required = true) Long id)
|
|
|
- {
|
|
|
- ServiceProject serviceProject=new ServiceProject();
|
|
|
+ public R delete(@RequestParam(name = "id", required = true) Long id) {
|
|
|
+ ServiceProject serviceProject = new ServiceProject();
|
|
|
serviceProject.setId(id);
|
|
|
serviceProject.setIsDeleted(1);
|
|
|
serviceProjectService.updateById(serviceProject);
|
|
|
@@ -198,8 +181,7 @@ public class ProjectController {
|
|
|
}
|
|
|
|
|
|
@GetMapping("/countByDate")
|
|
|
- public R countByDate(@RequestParam(name = "type") Integer type)
|
|
|
- {
|
|
|
+ public R countByDate(@RequestParam(name = "type") Integer type) {
|
|
|
String beginTime;
|
|
|
String endTime;
|
|
|
|
|
|
@@ -219,7 +201,7 @@ public class ProjectController {
|
|
|
|
|
|
QueryWrapper<ServiceProjectItem> amountQueryWrapper = new QueryWrapper<>();
|
|
|
amountQueryWrapper.select("ifnull(sum(service_charge), 0) as income", "ifnull(sum(amount), 0) as amount")
|
|
|
- .between("create_time", beginTime, endTime);
|
|
|
+ .between("pay_time", beginTime, endTime);
|
|
|
Map<String, Object> amountMap = serviceProjectItemService.getMap(amountQueryWrapper);
|
|
|
|
|
|
LambdaQueryWrapper<ServiceProjectItem> countLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
@@ -242,27 +224,25 @@ public class ProjectController {
|
|
|
|
|
|
@GetMapping("findById")
|
|
|
public R<?> findById(@RequestParam(name = "id", required = true) Long id,
|
|
|
- @RequestParam(name = "itemStatus", required = true) String itemStatus)
|
|
|
- {
|
|
|
+ @RequestParam(name = "itemStatus", required = true) String itemStatus) {
|
|
|
ServiceProject serviceProject = serviceProjectService.getById(id);
|
|
|
- List<String> status=Arrays.asList(itemStatus.split(","));
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> itemServiceLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
- itemServiceLambdaQueryWrapper.in(ServiceProjectItem::getStatus,status).eq(ServiceProjectItem::getPId,id).eq(ServiceProjectItem::getIsDeleted,0);
|
|
|
+ List<String> status = Arrays.asList(itemStatus.split(","));
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> itemServiceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ itemServiceLambdaQueryWrapper.in(ServiceProjectItem::getStatus, status).eq(ServiceProjectItem::getPId, id).eq(ServiceProjectItem::getIsDeleted, 0);
|
|
|
List<ServiceProjectItem> serviceProjectItems = serviceProjectItemService.list(itemServiceLambdaQueryWrapper);
|
|
|
- if (serviceProject.getCorpId() != null){
|
|
|
- R<List<Map<String,Object>>> corpMessage = corpsDescClient.getCorpsMessage(serviceProject.getCorpId().toString());
|
|
|
- if (corpMessage.isSuccess() && corpMessage.getData() != null){
|
|
|
+ if (serviceProject.getCorpId() != null) {
|
|
|
+ R<List<Map<String, Object>>> corpMessage = corpsDescClient.getCorpsMessage(serviceProject.getCorpId().toString());
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
serviceProject.setCorpName(corpMessage.getData());
|
|
|
}
|
|
|
}
|
|
|
- LambdaQueryWrapper<ServiceProjectFiles> filesLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
- filesLambdaQueryWrapper.eq(ServiceProjectFiles::getPId,id).eq(ServiceProjectFiles::getIsDeleted,0);
|
|
|
+ LambdaQueryWrapper<ServiceProjectFiles> filesLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ filesLambdaQueryWrapper.eq(ServiceProjectFiles::getPId, id).eq(ServiceProjectFiles::getIsDeleted, 0);
|
|
|
List<ServiceProjectFiles> filesList = serviceProjectFilesService.list(filesLambdaQueryWrapper);
|
|
|
|
|
|
- if(!CollectionUtils.isEmpty(serviceProjectItems))
|
|
|
- {
|
|
|
- String[] str = new String[]{"录入","已请核","审核中","审核通过","正在结算","结算完成","","追加","退费"};
|
|
|
- serviceProjectItems.forEach(e->{
|
|
|
+ if (!CollectionUtils.isEmpty(serviceProjectItems)) {
|
|
|
+ String[] str = new String[]{"录入", "已请核", "审核中", "审核通过", "正在结算", "结算完成", "", "追加", "退费"};
|
|
|
+ serviceProjectItems.forEach(e -> {
|
|
|
|
|
|
e.setStrStatus(str[e.getStatus()]);
|
|
|
/* R<User> r = userClient.userInfoById(e.getUserid());
|
|
|
@@ -273,8 +253,7 @@ public class ProjectController {
|
|
|
});
|
|
|
serviceProject.setItemList(serviceProjectItems);
|
|
|
}
|
|
|
- if(!CollectionUtils.isEmpty(filesList))
|
|
|
- {
|
|
|
+ if (!CollectionUtils.isEmpty(filesList)) {
|
|
|
serviceProject.setFilesList(filesList);
|
|
|
}
|
|
|
|
|
|
@@ -283,77 +262,69 @@ public class ProjectController {
|
|
|
|
|
|
@PostMapping("updateItemStatus")
|
|
|
public R check(@RequestParam(name = "id", required = true) Long itemId
|
|
|
- ,@RequestParam(name = "status", required = true) int status
|
|
|
- ,@RequestParam(name = "accountName", required = false) String accountName
|
|
|
- ,@RequestParam(name = "accountBank", required = false) String accountBank
|
|
|
- ,@RequestParam(name = "payTime", required = false) Date payTime
|
|
|
- ,@RequestParam(name = "accountNo", required = false) String accountNo
|
|
|
- )
|
|
|
- {
|
|
|
- serviceProjectService.updateItemStatus(itemId,status,accountName,accountBank, accountNo,payTime);
|
|
|
- return R.success("操作完成");
|
|
|
+ , @RequestParam(name = "status", required = true) int status
|
|
|
+ , @RequestParam(name = "accountName", required = false) String accountName
|
|
|
+ , @RequestParam(name = "accountBank", required = false) String accountBank
|
|
|
+ , @RequestParam(name = "payTime", required = false) Date payTime
|
|
|
+ , @RequestParam(name = "accountNo", required = false) String accountNo
|
|
|
+ ) {
|
|
|
+ serviceProjectService.updateItemStatus(itemId, status, accountName, accountBank, accountNo, payTime);
|
|
|
+ return R.success("操作完成");
|
|
|
}
|
|
|
|
|
|
@GetMapping("item/list")
|
|
|
- public R<?> itemList( @RequestParam(name = "current", defaultValue = "1") Integer current,
|
|
|
- @RequestParam(name = "size", defaultValue = "10") Integer size,
|
|
|
- @RequestParam(name = "pname", required = false) String pName,
|
|
|
- @RequestParam(name = "beginTime", required = false) String beginTime,
|
|
|
-
|
|
|
- @RequestParam(name = "cornId", required = false) Long cornId,
|
|
|
- @RequestParam(name = "corpName", required = false) String corpName,
|
|
|
- @RequestParam(name = "deptName", required = false) String deptName,
|
|
|
-
|
|
|
-
|
|
|
- @RequestParam(name = "actualDate", required = false) String actualDate,
|
|
|
- @RequestParam(name = "userName", required = false) String userName,
|
|
|
- @RequestParam(name = "deptid", required = false) Long deptid,
|
|
|
- @RequestParam(name = "status", required = true) String status,
|
|
|
- @RequestParam(name = "payStartTime", required = false) String payStartTime,
|
|
|
- @RequestParam(name = "payEndTime", required = false) String payEndTime,
|
|
|
- @RequestParam(name = "createStartTime", required = false) String createStartTime,
|
|
|
- @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
|
|
|
- )
|
|
|
- {
|
|
|
- List<String> listStatus=Arrays.asList(status.split(","));
|
|
|
-
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ public R<?> itemList(@RequestParam(name = "current", defaultValue = "1") Integer current,
|
|
|
+ @RequestParam(name = "size", defaultValue = "10") Integer size,
|
|
|
+ @RequestParam(name = "pname", required = false) String pName,
|
|
|
+ @RequestParam(name = "beginTime", required = false) String beginTime,
|
|
|
+
|
|
|
+ @RequestParam(name = "cornId", required = false) Long cornId,
|
|
|
+ @RequestParam(name = "corpName", required = false) String corpName,
|
|
|
+ @RequestParam(name = "deptName", required = false) String deptName,
|
|
|
+
|
|
|
+
|
|
|
+ @RequestParam(name = "actualDate", required = false) String actualDate,
|
|
|
+ @RequestParam(name = "userName", required = false) String userName,
|
|
|
+ @RequestParam(name = "deptid", required = false) Long deptid,
|
|
|
+ @RequestParam(name = "status", required = true) String status,
|
|
|
+ @RequestParam(name = "payStartTime", required = false) String payStartTime,
|
|
|
+ @RequestParam(name = "payEndTime", required = false) String payEndTime,
|
|
|
+ @RequestParam(name = "createStartTime", required = false) String createStartTime,
|
|
|
+ @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
|
|
|
+ ) {
|
|
|
+ List<String> listStatus = Arrays.asList(status.split(","));
|
|
|
+
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
itemLambdaQueryWrapper
|
|
|
- .eq(projectType!=null,ServiceProjectItem::getProjectType,projectType)
|
|
|
- .eq(StringUtils.isNotBlank(userName),ServiceProjectItem::getUserName,userName)
|
|
|
- .eq(ServiceProjectItem::getTenantId,AuthUtil.getTenantId())
|
|
|
- .between(StringUtils.isNotBlank(beginStartTime)&&StringUtils.isNotBlank(beginEndTime),ServiceProjectItem::getBeginTime,beginStartTime,beginEndTime)
|
|
|
- .between(StringUtils.isNotBlank(createStartTime)&&StringUtils.isNotBlank(createEndTime),ServiceProjectItem::getCreateTime,createStartTime,createEndTime)
|
|
|
- .between(StringUtils.isNotBlank(payStartTime)&&StringUtils.isNotBlank(payEndTime),ServiceProjectItem::getPayTime,payStartTime,payEndTime)
|
|
|
- .like(StringUtils.isNotBlank(pName),ServiceProjectItem::getPName,pName)
|
|
|
- .apply(StringUtils.isNotBlank(beginTime),"date_format(begin_time,'%Y-%m-%d') = '"+beginTime+"'")
|
|
|
- .apply(StringUtils.isNotBlank(actualDate),"date_format(actual_date,'%Y-%m-%d') = '"+actualDate+"'");
|
|
|
-
|
|
|
- LambdaQueryWrapper<ServiceProject> lambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ .eq(projectType != null, ServiceProjectItem::getProjectType, projectType)
|
|
|
+ .eq(StringUtils.isNotBlank(userName), ServiceProjectItem::getUserName, userName)
|
|
|
+ .eq(ServiceProjectItem::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .between(StringUtils.isNotBlank(beginStartTime) && StringUtils.isNotBlank(beginEndTime), ServiceProjectItem::getBeginTime, beginStartTime, beginEndTime)
|
|
|
+ .between(StringUtils.isNotBlank(createStartTime) && StringUtils.isNotBlank(createEndTime), ServiceProjectItem::getCreateTime, createStartTime, createEndTime)
|
|
|
+ .between(StringUtils.isNotBlank(payStartTime) && StringUtils.isNotBlank(payEndTime), ServiceProjectItem::getPayTime, payStartTime, payEndTime)
|
|
|
+ .like(StringUtils.isNotBlank(pName), ServiceProjectItem::getPName, pName)
|
|
|
+ .apply(StringUtils.isNotBlank(beginTime), "date_format(begin_time,'%Y-%m-%d') = '" + beginTime + "'")
|
|
|
+ .apply(StringUtils.isNotBlank(actualDate), "date_format(actual_date,'%Y-%m-%d') = '" + actualDate + "'");
|
|
|
+
|
|
|
+ LambdaQueryWrapper<ServiceProject> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
//客户名称
|
|
|
- if(cornId!=null)
|
|
|
- {
|
|
|
- lambdaQueryWrapper.eq(ServiceProject::getCorpId,cornId);
|
|
|
+ if (cornId != null) {
|
|
|
+ lambdaQueryWrapper.eq(ServiceProject::getCorpId, cornId);
|
|
|
List<ServiceProject> list = serviceProjectService.list(lambdaQueryWrapper);
|
|
|
}
|
|
|
- if(StringUtils.isNotBlank(corpName))
|
|
|
- {
|
|
|
+ if (StringUtils.isNotBlank(corpName)) {
|
|
|
List<Long> corpIdList = corpsDescClient.listCorpIdByName(corpName);
|
|
|
lambdaQueryWrapper.in(CollectionUtil.isNotEmpty(corpIdList), ServiceProject::getCorpId, corpIdList);
|
|
|
|
|
|
}
|
|
|
- if(cornId!=null || StringUtils.isNotBlank(corpName))
|
|
|
- {
|
|
|
+ if (cornId != null || StringUtils.isNotBlank(corpName)) {
|
|
|
List<ServiceProject> list = serviceProjectService.list(lambdaQueryWrapper);
|
|
|
- if(!CollectionUtils.isEmpty(list))
|
|
|
- {
|
|
|
- itemLambdaQueryWrapper.in(ServiceProjectItem::getPId,list.stream().map(ServiceProject::getId).collect(Collectors.toList()));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
+ if (!CollectionUtils.isEmpty(list)) {
|
|
|
+ itemLambdaQueryWrapper.in(ServiceProjectItem::getPId, list.stream().map(ServiceProject::getId).collect(Collectors.toList()));
|
|
|
+ } else {
|
|
|
return R.data(Collections.EMPTY_LIST);
|
|
|
}
|
|
|
}
|
|
|
@@ -369,28 +340,25 @@ public class ProjectController {
|
|
|
return R.data(Collections.EMPTY_LIST);
|
|
|
}*/
|
|
|
itemLambdaQueryWrapper.orderByDesc(ServiceProjectItem::getUpdateTime)
|
|
|
- .eq(deptid!=null,ServiceProjectItem::getDeptid,deptid)
|
|
|
+ .eq(deptid != null, ServiceProjectItem::getDeptid, deptid)
|
|
|
/* .eq(ServiceProjectItem::getIsDeleted,0) */
|
|
|
- .in(ServiceProjectItem::getStatus,listStatus);
|
|
|
- Page<ServiceProjectItem> page=new Page<>(current,size);
|
|
|
+ .in(ServiceProjectItem::getStatus, listStatus);
|
|
|
+ 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->{
|
|
|
+ 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();
|
|
|
+ .eq(ServiceProject::getId, e.getPId())).getCorpId();
|
|
|
e.setCornId(corpId);
|
|
|
R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpId);
|
|
|
- if(corpMessage.isSuccess()&&corpMessage.getData()!=null)
|
|
|
- {
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
e.setCornName(corpMessage.getData().getCname());
|
|
|
}
|
|
|
//任务部门
|
|
|
R<Dept> dept = iSysClient.getDept(e.getDeptid());
|
|
|
- if(dept.isSuccess()&&dept.getData()!=null)
|
|
|
- {
|
|
|
+ if (dept.isSuccess() && dept.getData() != null) {
|
|
|
e.setDeptName(dept.getData().getDeptName());
|
|
|
}
|
|
|
//承做人
|
|
|
@@ -402,162 +370,147 @@ public class ProjectController {
|
|
|
}*/
|
|
|
//毛收入
|
|
|
e.setGrossIncome((e.getServiceCharge().add(e.getMatMoney())).subtract(e.getCostReturn()));
|
|
|
- });
|
|
|
+ });
|
|
|
|
|
|
}
|
|
|
return R.data(iPage);
|
|
|
}
|
|
|
|
|
|
- @GetMapping("getSysNo")
|
|
|
- public R getSysNo()
|
|
|
- {
|
|
|
- return serviceProjectService.getSysNo();
|
|
|
+ @GetMapping("getSysNo")
|
|
|
+ public R getSysNo() {
|
|
|
+ return serviceProjectService.getSysNo();
|
|
|
}
|
|
|
|
|
|
@GetMapping("getPidByItemId")
|
|
|
- public R getPidByItemId( @RequestParam(name = "itemId", required = true) Long itemId)
|
|
|
- {
|
|
|
+ public R getPidByItemId(@RequestParam(name = "itemId", required = true) Long itemId) {
|
|
|
ServiceProjectItem projectItem = serviceProjectItemService.getById(itemId);
|
|
|
return R.data(projectItem.getPId());
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 2.0新逻辑-主营项目主表清核-必须所有子表明细结算之后才可以清核
|
|
|
- */
|
|
|
+ */
|
|
|
@PostMapping("/masterCheck")
|
|
|
- public R masterCheck(@RequestParam(name = "id", required = true) Long id,
|
|
|
- @RequestParam(name = "url", required = false) String url,
|
|
|
- @RequestParam(name = "pageStatus", required = false) String pageStatus,
|
|
|
- @RequestParam(name = "pageLabel", required = false) String pageLabel)
|
|
|
- {
|
|
|
- serviceProjectService.masterCheck(id,url,pageStatus,pageLabel);
|
|
|
+ public R masterCheck(@RequestParam(name = "id", required = true) Long id,
|
|
|
+ @RequestParam(name = "url", required = false) String url,
|
|
|
+ @RequestParam(name = "pageStatus", required = false) String pageStatus,
|
|
|
+ @RequestParam(name = "pageLabel", required = false) String pageLabel) {
|
|
|
+ serviceProjectService.masterCheck(id, url, pageStatus, pageLabel);
|
|
|
return R.success("操作成功");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 2.0新逻辑-微服务对外feign调用接口-主营项目审批通过
|
|
|
- * */
|
|
|
+ */
|
|
|
@PostMapping("/projectPassCheck")
|
|
|
- public R projectPassCheck(@RequestParam(name = "id", required = true) Long id)
|
|
|
- {
|
|
|
+ public R projectPassCheck(@RequestParam(name = "id", required = true) Long id) {
|
|
|
serviceProjectService.projectPassCheck(id);
|
|
|
return R.success("操作成功");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 2.0新逻辑-微服务对外feign调用接口-主营项目审批驳回
|
|
|
- * */
|
|
|
+ */
|
|
|
@PostMapping("/projectPassCancel")
|
|
|
- public R projectPassCancel(@RequestParam(name = "id", required = true) Long id)
|
|
|
- {
|
|
|
+ public R projectPassCancel(@RequestParam(name = "id", required = true) Long id) {
|
|
|
serviceProjectService.projectPassCancel(id);
|
|
|
return R.success("操作成功");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 2.0新逻辑 主营项目明细结算和取消结算功能
|
|
|
- * */
|
|
|
+ */
|
|
|
@PostMapping("/settleAccounts")
|
|
|
- public R settleAccounts(@RequestParam(name = "id", required = true) Long id,
|
|
|
+ public R settleAccounts(@RequestParam(name = "id", required = true) Long id,
|
|
|
@RequestParam(name = "status", required = true) int status
|
|
|
- ,@RequestParam(name = "accountName", required = false) String accountName
|
|
|
- ,@RequestParam(name = "accountBank", required = false) String accountBank
|
|
|
- ,@RequestParam(name = "payTime", required = false) Date payTime
|
|
|
- ,@RequestParam(name = "accountNo", required = false) String accountNo)
|
|
|
- {
|
|
|
- serviceProjectService.settleAccounts(id,status,accountName,accountBank,payTime,accountNo);
|
|
|
+ , @RequestParam(name = "accountName", required = false) String accountName
|
|
|
+ , @RequestParam(name = "accountBank", required = false) String accountBank
|
|
|
+ , @RequestParam(name = "payTime", required = false) Date payTime
|
|
|
+ , @RequestParam(name = "accountNo", required = false) String accountNo) {
|
|
|
+ serviceProjectService.settleAccounts(id, status, accountName, accountBank, payTime, accountNo);
|
|
|
return R.success("操作成功");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 2.0-统计列表
|
|
|
- * */
|
|
|
+ */
|
|
|
@GetMapping("/statisticalAnalysis")
|
|
|
public R statisticalAnalysis(@RequestParam(name = "userName", required = false) String userName,
|
|
|
- @RequestParam(name = "projectType", required = false)String projectType,
|
|
|
- @RequestParam(name = "deptid", required = false)String deptid,
|
|
|
- @RequestParam(name = "pname", required = false)String pname,
|
|
|
- @RequestParam(name = "status", required = false)String status,
|
|
|
- @RequestParam(name = "cornId", required = false)String cornId,
|
|
|
+ @RequestParam(name = "projectType", required = false) String projectType,
|
|
|
+ @RequestParam(name = "deptid", required = false) String deptid,
|
|
|
+ @RequestParam(name = "pname", required = false) String pname,
|
|
|
+ @RequestParam(name = "status", required = false) String status,
|
|
|
+ @RequestParam(name = "cornId", required = false) String cornId,
|
|
|
@RequestParam(name = "payStartTime", required = false) String payStartTime,
|
|
|
- @RequestParam(name = "payEndTime", required = false)String payEndTime)
|
|
|
- {
|
|
|
- List<ServiceProjectItem> serviceProjectItems = serviceProjectItemService.statisticalAnalysis(AuthUtil.getTenantId(),userName,projectType,deptid,pname,status,cornId,payStartTime,payEndTime);
|
|
|
+ @RequestParam(name = "payEndTime", required = false) String payEndTime) {
|
|
|
+ List<ServiceProjectItem> serviceProjectItems = serviceProjectItemService.statisticalAnalysis(AuthUtil.getTenantId(), userName, projectType, deptid, pname, status, cornId, payStartTime, payEndTime);
|
|
|
return R.data(serviceProjectItems);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
- *
|
|
|
* 2.0-业绩分析 -导出
|
|
|
- * */
|
|
|
+ */
|
|
|
@GetMapping("/import-out-performanceAnalysis")
|
|
|
public R<?> importOutPerformanceAnalysis(
|
|
|
- @RequestParam(name = "flag", required = true) int flag
|
|
|
- ,@RequestParam(name = "year", defaultValue = "2021") Long year
|
|
|
- ,@RequestParam(name = "corpNames", required = false) Long corpNames
|
|
|
- ,@RequestParam(name = "userName", required = false) String userName)
|
|
|
- {
|
|
|
+ @RequestParam(name = "flag", required = true) int flag
|
|
|
+ , @RequestParam(name = "year", defaultValue = "2021") Long year
|
|
|
+ , @RequestParam(name = "corpNames", required = false) Long corpNames
|
|
|
+ , @RequestParam(name = "userName", required = false) String userName) {
|
|
|
//按承做人统计多少个客户
|
|
|
- if(flag==1)
|
|
|
- {
|
|
|
+ if (flag == 1) {
|
|
|
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
- itemLambdaQueryWrapper.apply(" year(pay_time) = '"+year+"'");
|
|
|
- itemLambdaQueryWrapper.eq(ServiceProjectItem::getTenantId,AuthUtil.getTenantId());
|
|
|
- itemLambdaQueryWrapper.eq(ServiceProjectItem::getIsDeleted,0);
|
|
|
- itemLambdaQueryWrapper.eq(StringUtils.isNotBlank(userName),ServiceProjectItem::getUserName,userName);
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ itemLambdaQueryWrapper.apply(" year(pay_time) = '" + year + "'");
|
|
|
+ itemLambdaQueryWrapper.eq(ServiceProjectItem::getTenantId, AuthUtil.getTenantId());
|
|
|
+ itemLambdaQueryWrapper.eq(ServiceProjectItem::getIsDeleted, 0);
|
|
|
+ itemLambdaQueryWrapper.eq(StringUtils.isNotBlank(userName), ServiceProjectItem::getUserName, userName);
|
|
|
itemLambdaQueryWrapper.groupBy(ServiceProjectItem::getUserName);
|
|
|
//分组不同的承做人
|
|
|
List<ServiceProjectItem> itemList = serviceProjectItemService.list(itemLambdaQueryWrapper);
|
|
|
- if(CollectionUtils.isEmpty(itemList))
|
|
|
- {
|
|
|
+ if (CollectionUtils.isEmpty(itemList)) {
|
|
|
return R.data(Collections.EMPTY_LIST);
|
|
|
}
|
|
|
Long finalYear = year;
|
|
|
- itemList.forEach(e->{
|
|
|
+ itemList.forEach(e -> {
|
|
|
//统计此制单人多少个客户
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> count=new LambdaQueryWrapper<>();
|
|
|
- count.apply(" year(pay_time) = '"+year+"'")
|
|
|
- .eq(ServiceProjectItem::getUserName,e.getUserName())
|
|
|
- .eq(ServiceProjectItem::getTenantId,AuthUtil.getTenantId())
|
|
|
- .eq(ServiceProjectItem::getIsDeleted,0);
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> count = new LambdaQueryWrapper<>();
|
|
|
+ count.apply(" year(pay_time) = '" + year + "'")
|
|
|
+ .eq(ServiceProjectItem::getUserName, e.getUserName())
|
|
|
+ .eq(ServiceProjectItem::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(ServiceProjectItem::getIsDeleted, 0);
|
|
|
List<ServiceProjectItem> list = serviceProjectItemService.list(count);
|
|
|
List<Long> pids = list.stream().map(ServiceProjectItem::getPId).collect(Collectors.toList());
|
|
|
- if(!CollectionUtils.isEmpty(pids))
|
|
|
- {
|
|
|
+ if (!CollectionUtils.isEmpty(pids)) {
|
|
|
//从主表获取客户并且分组
|
|
|
- LambdaQueryWrapper<ServiceProject> countCorps=new LambdaQueryWrapper<>();
|
|
|
+ LambdaQueryWrapper<ServiceProject> countCorps = new LambdaQueryWrapper<>();
|
|
|
countCorps
|
|
|
- .in(ServiceProject::getId,pids)
|
|
|
- .eq(ServiceProject::getIsDeleted,0)
|
|
|
- .eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
+ .in(ServiceProject::getId, pids)
|
|
|
+ .eq(ServiceProject::getIsDeleted, 0)
|
|
|
+ .eq(ServiceProject::getTenantId, AuthUtil.getTenantId());
|
|
|
List<ServiceProject> corpsProjects = serviceProjectService.list(countCorps);
|
|
|
e.setCountCorp(corpsProjects.stream().map(ServiceProject::getCorpId).distinct().collect(Collectors.toList()).size());
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
+ } else {
|
|
|
e.setCountCorp(0);
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
//计算服务费
|
|
|
ServiceProject serviceProject = this.calculateServiceCharge(e.getUserName(), null, 1, 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.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()
|
|
|
+ (e.getJan()
|
|
|
.add(e.getFeb())
|
|
|
.add(e.getMar())
|
|
|
.add(e.getApr())
|
|
|
@@ -572,29 +525,26 @@ public class ProjectController {
|
|
|
);
|
|
|
});
|
|
|
return R.data(itemList);
|
|
|
- }
|
|
|
- else if(flag==2)
|
|
|
- {
|
|
|
+ } else if (flag == 2) {
|
|
|
List<ServiceProject> serviceProjectList = serviceProjectService.statisticalAnalysisOutData(AuthUtil.getTenantId(), year, null);
|
|
|
- if(!CollectionUtils.isEmpty(serviceProjectList))
|
|
|
- {
|
|
|
- serviceProjectList.forEach(e->{
|
|
|
+ if (!CollectionUtils.isEmpty(serviceProjectList)) {
|
|
|
+ serviceProjectList.forEach(e -> {
|
|
|
//统计服务费
|
|
|
- ServiceProject serviceProject = calculateServiceCharge(null,e.getCorpId(), 2, year);
|
|
|
- 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
|
|
|
+ ServiceProject serviceProject = calculateServiceCharge(null, e.getCorpId(), 2, year);
|
|
|
+ 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()
|
|
|
+ (e.getJan()
|
|
|
.add(e.getFeb())
|
|
|
.add(e.getMar())
|
|
|
.add(e.getApr())
|
|
|
@@ -704,168 +654,152 @@ public class ProjectController {
|
|
|
|
|
|
|
|
|
/**
|
|
|
- *
|
|
|
* 2.0-业绩分析
|
|
|
- * */
|
|
|
+ */
|
|
|
@GetMapping("/performanceAnalysis")
|
|
|
- public R<?> performanceAnalysis(@RequestParam(name = "flag", required = true) int flag,@RequestParam(name = "year", defaultValue = "2021") Long year,
|
|
|
- @RequestParam(name = "current", defaultValue = "1") Integer current
|
|
|
- ,@RequestParam(name = "size", defaultValue = "10") Integer size
|
|
|
- ,@RequestParam(name = "corpNames", required = false) Long corpNames
|
|
|
- ,@RequestParam(name = "userName", required = false) String userName)
|
|
|
- {
|
|
|
+ public R<?> performanceAnalysis(@RequestParam(name = "flag", required = true) int flag, @RequestParam(name = "year", defaultValue = "2021") Long year,
|
|
|
+ @RequestParam(name = "current", defaultValue = "1") Integer current
|
|
|
+ , @RequestParam(name = "size", defaultValue = "10") Integer size
|
|
|
+ , @RequestParam(name = "corpNames", required = false) Long corpNames
|
|
|
+ , @RequestParam(name = "userName", required = false) String userName) {
|
|
|
|
|
|
//按承做人统计多少个客户
|
|
|
- if(flag==1)
|
|
|
- {
|
|
|
- Page<ServiceProjectItem> page=new Page<>(current,size);
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
- itemLambdaQueryWrapper.apply(" year(pay_time) = '"+year+"'");
|
|
|
- itemLambdaQueryWrapper.eq(ServiceProjectItem::getTenantId,AuthUtil.getTenantId());
|
|
|
- itemLambdaQueryWrapper.eq(ServiceProjectItem::getIsDeleted,0);
|
|
|
- itemLambdaQueryWrapper.eq(StringUtils.isNotBlank(userName),ServiceProjectItem::getUserName,userName);
|
|
|
+ if (flag == 1) {
|
|
|
+ Page<ServiceProjectItem> page = new Page<>(current, size);
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ itemLambdaQueryWrapper.apply(" year(pay_time) = '" + year + "'");
|
|
|
+ itemLambdaQueryWrapper.eq(ServiceProjectItem::getTenantId, AuthUtil.getTenantId());
|
|
|
+ itemLambdaQueryWrapper.eq(ServiceProjectItem::getIsDeleted, 0);
|
|
|
+ itemLambdaQueryWrapper.eq(StringUtils.isNotBlank(userName), ServiceProjectItem::getUserName, userName);
|
|
|
itemLambdaQueryWrapper.groupBy(ServiceProjectItem::getUserName);
|
|
|
//分组不同的承做人
|
|
|
- IPage<ServiceProjectItem> ipage= serviceProjectItemService.page(page,itemLambdaQueryWrapper);
|
|
|
- if(CollectionUtils.isEmpty(ipage.getRecords()))
|
|
|
- {
|
|
|
- return R.data(Collections.EMPTY_LIST);
|
|
|
+ IPage<ServiceProjectItem> ipage = serviceProjectItemService.page(page, itemLambdaQueryWrapper);
|
|
|
+ if (CollectionUtils.isEmpty(ipage.getRecords())) {
|
|
|
+ return R.data(Collections.EMPTY_LIST);
|
|
|
}
|
|
|
Long finalYear = year;
|
|
|
- ipage.getRecords().forEach(e->{
|
|
|
+ ipage.getRecords().forEach(e -> {
|
|
|
//统计此制单人多少个客户
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> count=new LambdaQueryWrapper<>();
|
|
|
- count.apply(" year(pay_time) = '"+year+"'")
|
|
|
- .eq(ServiceProjectItem::getUserName,e.getUserName())
|
|
|
- .eq(ServiceProjectItem::getTenantId,AuthUtil.getTenantId())
|
|
|
- .eq(ServiceProjectItem::getIsDeleted,0);
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> count = new LambdaQueryWrapper<>();
|
|
|
+ count.apply(" year(pay_time) = '" + year + "'")
|
|
|
+ .eq(ServiceProjectItem::getUserName, e.getUserName())
|
|
|
+ .eq(ServiceProjectItem::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(ServiceProjectItem::getIsDeleted, 0);
|
|
|
List<ServiceProjectItem> list = serviceProjectItemService.list(count);
|
|
|
List<Long> pids = list.stream().map(ServiceProjectItem::getPId).collect(Collectors.toList());
|
|
|
- if(!CollectionUtils.isEmpty(pids))
|
|
|
- {
|
|
|
+ if (!CollectionUtils.isEmpty(pids)) {
|
|
|
//从主表获取客户并且分组
|
|
|
- LambdaQueryWrapper<ServiceProject> countCorps=new LambdaQueryWrapper<>();
|
|
|
+ LambdaQueryWrapper<ServiceProject> countCorps = new LambdaQueryWrapper<>();
|
|
|
countCorps
|
|
|
- .in(ServiceProject::getId,pids)
|
|
|
- .eq(ServiceProject::getIsDeleted,0)
|
|
|
- .eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
+ .in(ServiceProject::getId, pids)
|
|
|
+ .eq(ServiceProject::getIsDeleted, 0)
|
|
|
+ .eq(ServiceProject::getTenantId, AuthUtil.getTenantId());
|
|
|
List<ServiceProject> corpsProjects = serviceProjectService.list(countCorps);
|
|
|
e.setCountCorp(corpsProjects.stream().map(ServiceProject::getCorpId).distinct().collect(Collectors.toList()).size());
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
+ } else {
|
|
|
e.setCountCorp(0);
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
- //计算服务费
|
|
|
+ //计算服务费
|
|
|
ServiceProject serviceProject = calculateServiceCharge(e.getUserName(), null, 1, 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.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())
|
|
|
- );
|
|
|
+ (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(ipage);
|
|
|
- }
|
|
|
- else if(flag==2)
|
|
|
- {
|
|
|
+ return R.data(ipage);
|
|
|
+ } else if (flag == 2) {
|
|
|
//获取结算时间为指定年的数据
|
|
|
- LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
- itemLambdaQueryWrapper.apply(" year(pay_time) = '"+year+"'");
|
|
|
- itemLambdaQueryWrapper.eq(ServiceProjectItem::getTenantId,AuthUtil.getTenantId());
|
|
|
- itemLambdaQueryWrapper.eq(ServiceProjectItem::getIsDeleted,0);
|
|
|
+ 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))
|
|
|
- {
|
|
|
+ if (CollectionUtils.isEmpty(pids)) {
|
|
|
return R.data(null);
|
|
|
}
|
|
|
|
|
|
- //通过上述数据,查询相关客户数据
|
|
|
- Page<ServiceProject> page=new Page<>(current,size);
|
|
|
- LambdaQueryWrapper<ServiceProject> countCorps=new LambdaQueryWrapper<>();
|
|
|
+ //通过上述数据,查询相关客户数据
|
|
|
+ Page<ServiceProject> page = new Page<>(current, size);
|
|
|
+ LambdaQueryWrapper<ServiceProject> countCorps = new LambdaQueryWrapper<>();
|
|
|
countCorps
|
|
|
- .eq(corpNames!=null,ServiceProject::getCorpId,corpNames)
|
|
|
+ .eq(corpNames != null, ServiceProject::getCorpId, corpNames)
|
|
|
.isNotNull(ServiceProject::getCorpId)
|
|
|
- .in(ServiceProject::getId,pids)
|
|
|
- .eq(ServiceProject::getIsDeleted,0)
|
|
|
+ .in(ServiceProject::getId, pids)
|
|
|
+ .eq(ServiceProject::getIsDeleted, 0)
|
|
|
.groupBy(ServiceProject::getCorpId)
|
|
|
- .eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
+ .eq(ServiceProject::getTenantId, AuthUtil.getTenantId());
|
|
|
IPage<ServiceProject> iPage = serviceProjectService.page(page, countCorps);
|
|
|
|
|
|
Long finalYear = year;
|
|
|
//开始封装数据
|
|
|
- iPage.getRecords().forEach(e->{
|
|
|
+ iPage.getRecords().forEach(e -> {
|
|
|
//客户名称
|
|
|
- if(e.getCorpId()!=null)
|
|
|
- {
|
|
|
+ if (e.getCorpId() != null) {
|
|
|
R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
|
|
|
- if(corpMessage.isSuccess()&&corpMessage.getData()!=null)
|
|
|
- {
|
|
|
+ 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());
|
|
|
+ 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());
|
|
|
+ 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
|
|
|
- {
|
|
|
+ } 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
|
|
|
+ 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()
|
|
|
+ (e.getJan()
|
|
|
.add(e.getFeb())
|
|
|
.add(e.getMar())
|
|
|
.add(e.getApr())
|
|
|
@@ -985,21 +919,15 @@ public class ProjectController {
|
|
|
return R.data(Collections.EMPTY_LIST);
|
|
|
}
|
|
|
|
|
|
- //计算每个月的服务费
|
|
|
- public ServiceProject calculateServiceCharge(String userName,Long id,int flag,Long year)
|
|
|
- {
|
|
|
- if(flag==1)
|
|
|
- {
|
|
|
- return serviceProjectService.calculateServiceCharge(AuthUtil.getTenantId(), year.toString(), null, id,userName);
|
|
|
- }
|
|
|
- else if(flag==2)
|
|
|
- {
|
|
|
- return serviceProjectService.calculateServiceCharge(AuthUtil.getTenantId(),year.toString(),id,null,userName);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- throw new SecurityException("查询服务费失败");
|
|
|
- }
|
|
|
+ //计算每个月的服务费
|
|
|
+ public ServiceProject calculateServiceCharge(String userName, Long id, int flag, Long year) {
|
|
|
+ if (flag == 1) {
|
|
|
+ return serviceProjectService.calculateServiceCharge(AuthUtil.getTenantId(), year.toString(), null, id, userName);
|
|
|
+ } else if (flag == 2) {
|
|
|
+ return serviceProjectService.calculateServiceCharge(AuthUtil.getTenantId(), year.toString(), id, null, userName);
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("查询服务费失败");
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|