|
|
@@ -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;
|
|
|
@@ -87,16 +88,17 @@ public class ProjectController {
|
|
|
|
|
|
//客户名称
|
|
|
records.forEach(e->{
|
|
|
- if(corpsDescClient.getCorpMessage(e.getCorpId()).isSuccess())
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
|
|
|
+ if(corpMessage.isSuccess()&&corpMessage.getData()!=null)
|
|
|
{
|
|
|
- e.setCorpNames(corpsDescClient.getCorpMessage(e.getCorpId()).getData().getCname());
|
|
|
+ e.setCorpNames(corpMessage.getData().getCname());
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
- //检查是否可以删除主表,没有字表信息 或者 字表status全部为0 就可以删除
|
|
|
+ //检查是否可以删除主表,没有子表信息 或者 子表status全部为0 就可以删除
|
|
|
if(flag==0)
|
|
|
{
|
|
|
records.forEach(k->{
|
|
|
@@ -109,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());
|
|
|
}
|
|
|
+
|
|
|
});
|
|
|
|
|
|
}
|
|
|
@@ -124,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);
|
|
|
@@ -282,13 +293,13 @@ public class ProjectController {
|
|
|
.eq(ServiceProject::getId,e.getPId())).getCorpId();
|
|
|
e.setCornId(corpId);
|
|
|
R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpId);
|
|
|
- if(corpMessage.isSuccess())
|
|
|
+ if(corpMessage.isSuccess()&&corpMessage.getData()!=null)
|
|
|
{
|
|
|
e.setCornName(corpMessage.getData().getCname());
|
|
|
}
|
|
|
//任务部门
|
|
|
R<Dept> dept = iSysClient.getDept(e.getDeptid());
|
|
|
- if(dept.isSuccess())
|
|
|
+ if(dept.isSuccess()&&dept.getData()!=null)
|
|
|
{
|
|
|
e.setDeptName(dept.getData().getDeptName());
|
|
|
}
|
|
|
@@ -320,5 +331,329 @@ public class ProjectController {
|
|
|
return R.data(projectItem.getPId());
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 2.0新逻辑-主营项目主表清核-必须所有子表明细结算之后才可以清核
|
|
|
+ */
|
|
|
+ @PostMapping("/masterCheck")
|
|
|
+ public R masterCheck(@RequestParam(name = "id", required = true) Long id)
|
|
|
+ {
|
|
|
+ serviceProjectService.masterCheck(id);
|
|
|
+ return R.success("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 2.0新逻辑-微服务对外feign调用接口-主营项目审批通过
|
|
|
+ * */
|
|
|
+ @PostMapping("/projectPassCheck")
|
|
|
+ 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)
|
|
|
+ {
|
|
|
+ serviceProjectService.projectPassCancel(id);
|
|
|
+ return R.success("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 2.0新逻辑 主营项目明细结算和取消结算功能
|
|
|
+ * */
|
|
|
+ @PostMapping("/settleAccounts")
|
|
|
+ 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);
|
|
|
+ return R.success("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 2.0-统计列表
|
|
|
+ * */
|
|
|
+ @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", defaultValue = "2021") Long year,
|
|
|
+ @RequestParam(name = "current", defaultValue = "1") Integer current
|
|
|
+ ,@RequestParam(name = "size", defaultValue = "10") Integer size
|
|
|
+ ,@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);
|
|
|
+ itemLambdaQueryWrapper.groupBy(ServiceProjectItem::getUserName);
|
|
|
+ //分组不同的承做人
|
|
|
+ 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->{
|
|
|
+ //统计此制单人多少个客户
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> count=new LambdaQueryWrapper<>();
|
|
|
+ count
|
|
|
+ .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))
|
|
|
+ {
|
|
|
+ //从主表获取客户并且分组
|
|
|
+ LambdaQueryWrapper<ServiceProject> countCorps=new LambdaQueryWrapper<>();
|
|
|
+ countCorps
|
|
|
+ .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
|
|
|
+ {
|
|
|
+ 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
|
|
|
+ });
|
|
|
+ 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);
|
|
|
+ List<Long> pids = serviceProjectItemService.list(itemLambdaQueryWrapper).stream().map(ServiceProjectItem::getPId).collect(Collectors.toList());
|
|
|
+ if(CollectionUtils.isEmpty(pids))
|
|
|
+ {
|
|
|
+ return R.data(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ //通过上述数据,查询相关客户数据
|
|
|
+ Page<ServiceProject> page=new Page<>(current,size);
|
|
|
+ LambdaQueryWrapper<ServiceProject> countCorps=new LambdaQueryWrapper<>();
|
|
|
+ countCorps
|
|
|
+ .isNotNull(ServiceProject::getCorpId)
|
|
|
+ .in(ServiceProject::getId,pids)
|
|
|
+ .eq(ServiceProject::getIsDeleted,0)
|
|
|
+ .groupBy(ServiceProject::getCorpId)
|
|
|
+ .eq(ServiceProject::getTenantId,AuthUtil.getTenantId());
|
|
|
+ IPage<ServiceProject> iPage = serviceProjectService.page(page, countCorps);
|
|
|
+
|
|
|
+ Long finalYear = year;
|
|
|
+ //开始封装数据
|
|
|
+ iPage.getRecords().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
|
|
|
+
|
|
|
+ });
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
+ //计算每个月的服务费
|
|
|
+ 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("查询服务费失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|