|
|
@@ -324,7 +324,7 @@ public class ProjectController {
|
|
|
/**
|
|
|
* 2.0新逻辑-主营项目主表清核-必须所有子表明细结算之后才可以清核
|
|
|
*/
|
|
|
- @PostMapping("masterCheck")
|
|
|
+ @PostMapping("/masterCheck")
|
|
|
public R masterCheck(@RequestParam(name = "id", required = true) Long id)
|
|
|
{
|
|
|
serviceProjectService.masterCheck(id);
|
|
|
@@ -334,7 +334,7 @@ public class ProjectController {
|
|
|
/**
|
|
|
* 2.0新逻辑-微服务对外feign调用接口-主营项目审批通过
|
|
|
* */
|
|
|
- @PostMapping("projectPassCheck")
|
|
|
+ @PostMapping("/projectPassCheck")
|
|
|
public R projectPassCheck(@RequestParam(name = "id", required = true) Long id)
|
|
|
{
|
|
|
serviceProjectService.projectPassCheck(id);
|
|
|
@@ -344,7 +344,7 @@ public class ProjectController {
|
|
|
/**
|
|
|
* 2.0新逻辑-微服务对外feign调用接口-主营项目审批驳回
|
|
|
* */
|
|
|
- @PostMapping("projectPassCancel")
|
|
|
+ @PostMapping("/projectPassCancel")
|
|
|
public R projectPassCancel(@RequestParam(name = "id", required = true) Long id)
|
|
|
{
|
|
|
serviceProjectService.projectPassCancel(id);
|
|
|
@@ -354,24 +354,131 @@ public class ProjectController {
|
|
|
/**
|
|
|
* 2.0新逻辑 主营项目明细结算和取消结算功能
|
|
|
* */
|
|
|
- @PostMapping("settleAccounts")
|
|
|
+ @PostMapping("/settleAccounts")
|
|
|
public R settleAccounts(@RequestParam(name = "id", required = true) Long id,
|
|
|
- @RequestParam(name = "status", required = true) int status)
|
|
|
+ @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);
|
|
|
+ serviceProjectService.settleAccounts(id,status,accountName,accountBank,payTime,accountNo);
|
|
|
return R.success("操作成功");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 2.0-统计分析
|
|
|
+ * 2.0-统计列表
|
|
|
* */
|
|
|
- @GetMapping("statisticalAnalysis")
|
|
|
+ @GetMapping("/statisticalAnalysis")
|
|
|
public R statisticalAnalysis()
|
|
|
{
|
|
|
List<ServiceProjectItem> serviceProjectItems = serviceProjectItemService.statisticalAnalysis(AuthUtil.getTenantId());
|
|
|
return R.data(serviceProjectItems);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 2.0-业绩分析
|
|
|
+ * */
|
|
|
+ @GetMapping("/performanceAnalysis")
|
|
|
+ public R performanceAnalysis(@RequestParam(name = "flag", required = true) int flag,@RequestParam(name = "year", required = false) Long year)
|
|
|
+ {
|
|
|
+ LambdaQueryWrapper<ServiceProject> serviceProjectLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ serviceProjectLambdaQueryWrapper
|
|
|
+ .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)
|
|
|
+ {
|
|
|
+ serviceProjectLambdaQueryWrapper.groupBy(ServiceProject::getCreateUser);
|
|
|
+ }
|
|
|
+ else if(flag==2)
|
|
|
+ {
|
|
|
+ serviceProjectLambdaQueryWrapper.groupBy(ServiceProject::getCorpId);
|
|
|
+ }
|
|
|
+ List<ServiceProject> serviceProjectList = serviceProjectService.list(serviceProjectLambdaQueryWrapper);
|
|
|
+ if(!CollectionUtils.isEmpty(serviceProjectList))
|
|
|
+ {
|
|
|
+ Long finalYear = year;
|
|
|
+ serviceProjectList.forEach(lt->{
|
|
|
+ if(flag==1)
|
|
|
+ {
|
|
|
+ List<Long> createUserIds = serviceProjectList.stream().map(ServiceProject::getCreateUser).collect(Collectors.toList());
|
|
|
+ createUserIds.forEach(e->{
|
|
|
+ LambdaQueryWrapper<ServiceProject> countCops=new LambdaQueryWrapper<>();
|
|
|
+ countCops
|
|
|
+ .eq(ServiceProject::getCreateUser,e)
|
|
|
+ .eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
+ int copsSize = serviceProjectService.list(countCops).stream().map(ServiceProject::getCorpId).distinct().collect(Collectors.toList()).size();
|
|
|
+ lt.setCountCorp(copsSize);
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else if(flag==2)
|
|
|
+ {
|
|
|
+ List<Long> corpsIds = serviceProjectList.stream().map(ServiceProject::getCorpId).collect(Collectors.toList());
|
|
|
+ corpsIds.forEach(e->{
|
|
|
+ LambdaQueryWrapper<ServiceProject> countCreateUser=new LambdaQueryWrapper<>();
|
|
|
+ countCreateUser
|
|
|
+ .eq(ServiceProject::getCorpId,e)
|
|
|
+ .eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
+ int createUserSize = serviceProjectService.list(countCreateUser).stream().map(ServiceProject::getCreateUser).distinct().collect(Collectors.toList()).size();
|
|
|
+ lt.setCountCreateUser(createUserSize);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ ServiceProject serviceProject=null;
|
|
|
+ if(flag==1)
|
|
|
+ {
|
|
|
+ serviceProject = calculateServiceCharge(lt.getCreateUser(), 1, finalYear);
|
|
|
+ }
|
|
|
+ else if(flag==2)
|
|
|
+ {
|
|
|
+ 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
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ return R.data(serviceProjectList);
|
|
|
+ }
|
|
|
+
|
|
|
+ //计算每个月的服务费
|
|
|
+ public ServiceProject calculateServiceCharge(Long id,int flag,Long year)
|
|
|
+ {
|
|
|
+ if(flag==1)
|
|
|
+ {
|
|
|
+ return serviceProjectService.calculateServiceCharge(AuthUtil.getTenantId(), year.toString(), null, id);
|
|
|
+ }
|
|
|
+ else if(flag==2)
|
|
|
+ {
|
|
|
+ return serviceProjectService.calculateServiceCharge(AuthUtil.getTenantId(),year.toString(),id,null);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ throw new SecurityException("查询服务费失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|