Browse Source

fix:成本权限修正

master
wang 2 months ago
parent
commit
4158ab0c2d
  1. 4
      yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/form/ServiceDepartmentImportForm.java
  2. 4
      yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/form/ServiceLawyerImportForm.java
  3. 124
      yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java

4
yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/form/ServiceDepartmentImportForm.java

@ -27,14 +27,14 @@ public class ServiceDepartmentImportForm {
private Double quarterlyServiceDuration = 0.0;
@ExcelProperty("季度累计服务成本")
@ExcelIgnore
//@ExcelIgnore
private BigDecimal quarterlyServiceCost = BigDecimal.ZERO;
@ExcelProperty("年度累计服务时长")
private Double annualServiceDuration = 0.0;
@ExcelProperty("年度累计服务成本")
@ExcelIgnore
//@ExcelIgnore
private BigDecimal annualServiceCost = BigDecimal.ZERO;
}

4
yun-admin/src/main/java/net/lab1024/sa/admin/module/service/domain/form/ServiceLawyerImportForm.java

@ -30,13 +30,13 @@ public class ServiceLawyerImportForm {
private Double quarterlyServiceDuration = 0.0;
@ExcelProperty("季度累计服务成本")
@ExcelIgnore
//@ExcelIgnore
private BigDecimal quarterlyServiceCost = BigDecimal.ZERO;
@ExcelProperty("年度累计服务时长")
private Double annualServiceDuration = 0.0;
@ExcelProperty("年度累计服务成本")
@ExcelIgnore
//@ExcelIgnore
private BigDecimal annualServiceCost = BigDecimal.ZERO;
}

124
yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java

@ -730,6 +730,52 @@ public class ServiceApplicationsService {
return ResponseDTO.ok();
}
/**
* 根据用户权限屏蔽成本数据
* @param statisticsList 统计数据列表
*/
private void maskCostDataForUser(List<LawyerStatisticsVO> statisticsList) {
if (statisticsList == null || statisticsList.isEmpty()) {
return;
}
RequestEmployee requestUser = AdminRequestUtil.getRequestUser();
if (requestUser == null) {
// 用户未登录,屏蔽所有成本数据
statisticsList.forEach(this::clearCostData);
return;
}
// 检查用户的costVisibleFlag权限
Boolean costVisibleFlag = requestUser.getCostVisibleFlag();
if (costVisibleFlag == null || !costVisibleFlag) {
// 用户没有成本查看权限,清空成本数据
statisticsList.forEach(this::clearCostData);
}
// 如果有权限,则保持原数据不变
}
/**
* 清空成本相关数据
* @param statisticsVO 统计VO对象
*/
private void clearCostData(LawyerStatisticsVO statisticsVO) {
if (statisticsVO != null) {
statisticsVO.setQuarterlyServiceCost(BigDecimal.ZERO);
statisticsVO.setAnnualServiceCost(BigDecimal.ZERO);
// 如果有律师服务列表,也需要清空其中的成本数据
if (statisticsVO.getLawyerServiceVOList() != null) {
statisticsVO.getLawyerServiceVOList().forEach(lawyerService -> {
if (lawyerService != null) {
lawyerService.setQuarterlyServiceCost(BigDecimal.ZERO);
lawyerService.setAnnualServiceCost(BigDecimal.ZERO);
}
});
}
}
}
/**
* 律所统计
* @param queryForms
@ -800,6 +846,8 @@ public class ServiceApplicationsService {
lawyerStatisticsVO.setLawyerServiceVOList(lawyerServiceVOList);
});
}
//屏蔽成本数据
maskCostDataForUser(lawyerStatisticsWithParamYear);
return lawyerStatisticsWithParamYear;
}
@ -849,9 +897,81 @@ public class ServiceApplicationsService {
LawyerStatisticsQueryForm queryForm1 = SmartBeanUtil.copy(queryForm, LawyerStatisticsQueryForm.class);
monthStatisticsDepartment(queryForm1, null, lawyerStatisticsWithParamYear);
}
//屏蔽成本数据(导出专用)
maskCostDataForLawyerExport(lawyerStatisticsWithParamYear);
//写入数据到文件
exportExcel(response, "律所统计信息.xlsx", "律所统计信息", ServiceDepartmentImportForm.class, lawyerStatisticsWithParamYear);
}
/** 导出专用的成本数据屏蔽方法ServiceDepartmentImportForm
* @param statisticsList 统计数据列表
*/
private void maskCostDataForLawyerExport(List<ServiceDepartmentImportForm> statisticsList) {
if (statisticsList == null || statisticsList.isEmpty()) {
return;
}
RequestEmployee requestUser = AdminRequestUtil.getRequestUser();
if (requestUser == null) {
// 用户未登录,屏蔽所有成本数据
statisticsList.forEach(this::clearCostForLawyer);
return;
}
// 检查用户的costVisibleFlag权限
Boolean costVisibleFlag = requestUser.getCostVisibleFlag();
if (costVisibleFlag == null || !costVisibleFlag) {
// 用户没有成本查看权限,清空成本数据
statisticsList.forEach(this::clearCostForLawyer);
}
// 如果有权限,则保持原数据不变
}
/**
* 清空律师统计数据的成本相关数据
* @param statisticsVO 律师统计对象
*/
private void clearCostForLawyer(ServiceDepartmentImportForm statisticsVO) {
if (statisticsVO != null) {
statisticsVO.setQuarterlyServiceCost(BigDecimal.ZERO);
statisticsVO.setAnnualServiceCost(BigDecimal.ZERO);
}
}
/** 导出专用的成本数据屏蔽方法针对ServiceLawyerImportForm
* @param statisticsList 统计数据列表
*/
private void maskCostDataForExport(List<ServiceLawyerImportForm> statisticsList) {
if (statisticsList == null || statisticsList.isEmpty()) {
return;
}
RequestEmployee requestUser = AdminRequestUtil.getRequestUser();
if (requestUser == null) {
// 用户未登录,屏蔽所有成本数据
statisticsList.forEach(this::clearCostDataForLawyer);
return;
}
// 检查用户的costVisibleFlag权限
Boolean costVisibleFlag = requestUser.getCostVisibleFlag();
if (costVisibleFlag == null || !costVisibleFlag) {
// 用户没有成本查看权限,清空成本数据
statisticsList.forEach(this::clearCostDataForLawyer);
}
// 如果有权限,则保持原数据不变
}
/**
* 清空律师统计数据的成本相关数据
* @param statisticsVO 律师统计对象
*/
private void clearCostDataForLawyer(ServiceLawyerImportForm statisticsVO) {
if (statisticsVO != null) {
statisticsVO.setQuarterlyServiceCost(BigDecimal.ZERO);
statisticsVO.setAnnualServiceCost(BigDecimal.ZERO);
}
}
@Transactional
public ResponseDTO<String> batchReview(@Valid ServiceApplicationsUpdateForm updateForm) {
@ -1196,6 +1316,8 @@ public class ServiceApplicationsService {
}
monthStatistics(queryForm, lawyerStatisticsVOPageResult.getList(),null);
}
// 根据用户权限控制成本数据显示
maskCostDataForUser(lawyerStatisticsVOPageResult.getList());
return lawyerStatisticsVOPageResult;
}
@ -1235,6 +1357,8 @@ public class ServiceApplicationsService {
LawyerStatisticsQueryForm queryForm1 = SmartBeanUtil.copy(queryForm, LawyerStatisticsQueryForm.class);
monthStatistics(queryForm1, null, lawyerStatisticsWithParamYear);
}
maskCostDataForExport(lawyerStatisticsWithParamYear);
//写入数据到文件
exportExcel(response, "律师统计信息.xlsx", "律师统计信息", ServiceLawyerImportForm.class, lawyerStatisticsWithParamYear);
}

Loading…
Cancel
Save