|
|
@@ -598,79 +598,110 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R<Map<String, Object>> completionRate(String dateStart, String dateEnd) {
|
|
|
+ public R<Map<String, Object>> completionRate(String dateStart, String dateEnd,String type ) {
|
|
|
long sum;
|
|
|
long refurbishment;
|
|
|
long complete;
|
|
|
- LambdaQueryWrapper<Bills> lambdaQueryWrapperSE = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrapperSE.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Bills::getIsDeleted, 0)
|
|
|
- .ge(Bills::getBillDate, dateStart)
|
|
|
- .le(Bills::getBillDate, dateEnd);
|
|
|
- if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
|
|
|
- lambdaQueryWrapperSE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
|
|
|
- }
|
|
|
- if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
- lambdaQueryWrapperSE.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
- }
|
|
|
- lambdaQueryWrapperSE.eq(Bills::getBusinessType, "SE");
|
|
|
- List<Bills> HYCKList = billsMapper.selectList(lambdaQueryWrapperSE);
|
|
|
- LambdaQueryWrapper<Bills> lambdaQueryWrapperSI = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrapperSI.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Bills::getIsDeleted, 0)
|
|
|
- .ge(Bills::getBillDate, dateStart)
|
|
|
- .le(Bills::getBillDate, dateEnd);
|
|
|
- if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
|
|
|
- lambdaQueryWrapperSI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
|
|
|
- }
|
|
|
- if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
- lambdaQueryWrapperSI.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
- }
|
|
|
- lambdaQueryWrapperSI.eq(Bills::getBusinessType, "SI");
|
|
|
- List<Bills> HYJKList = billsMapper.selectList(lambdaQueryWrapperSI);
|
|
|
- LambdaQueryWrapper<AeaBills> aeaBillsLambdaQueryWrapperAE = new LambdaQueryWrapper<>();
|
|
|
- aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(AeaBills::getIsDeleted, 0)
|
|
|
- .ge(AeaBills::getBillDate, dateStart)
|
|
|
- .le(AeaBills::getBillDate, dateEnd);
|
|
|
- if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
|
|
|
- aeaBillsLambdaQueryWrapperAE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
|
|
|
- }
|
|
|
- if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
- aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
|
|
|
- }
|
|
|
- aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getBusinessType, "AE");
|
|
|
- List<AeaBills> KYCKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapperAE);
|
|
|
- LambdaQueryWrapper<AeaBills> aeaBillsLambdaQueryWrapperAI = new LambdaQueryWrapper<>();
|
|
|
- aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(AeaBills::getIsDeleted, 0)
|
|
|
- .ge(AeaBills::getBillDate, dateStart)
|
|
|
- .le(AeaBills::getBillDate, dateEnd);
|
|
|
- if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
|
|
|
- aeaBillsLambdaQueryWrapperAI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
|
|
|
- }
|
|
|
- if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
- aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
|
|
|
- }
|
|
|
- aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getBusinessType, "AI");
|
|
|
- List<AeaBills> KYJKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapperAI);
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
- sum = HYCKList.size() + HYJKList.size() + KYCKList.size() + KYJKList.size();
|
|
|
- refurbishment = HYCKList.stream().filter(e -> e.getBillStatus() == 1).count() +
|
|
|
- HYJKList.stream().filter(e -> e.getBillStatus() == 1).count() +
|
|
|
- KYCKList.stream().filter(e -> e.getBillStatus() == 1).count() +
|
|
|
- KYJKList.stream().filter(e -> e.getBillStatus() == 1).count();
|
|
|
- complete = HYCKList.stream().filter(e -> e.getStatus() == 3).count() +
|
|
|
- HYJKList.stream().filter(e -> e.getStatus() == 3).count() +
|
|
|
- KYCKList.stream().filter(e -> e.getStatus() == 3).count() +
|
|
|
- KYJKList.stream().filter(e -> e.getStatus() == 3).count();
|
|
|
- map.put("sum", sum);
|
|
|
- map.put("refurbishment", refurbishment);
|
|
|
- map.put("complete", complete);
|
|
|
- if (sum == 0) {
|
|
|
- map.put("rate", 0);
|
|
|
- } else {
|
|
|
- map.put("rate", new BigDecimal(complete).divide(new BigDecimal(sum), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
|
|
|
+ if ("1".equals(type)){
|
|
|
+ LambdaQueryWrapper<Bills> lambdaQueryWrapperSE = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapperSE.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .ge(Bills::getBillDate, dateStart)
|
|
|
+ .le(Bills::getBillDate, dateEnd);
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
|
|
|
+ lambdaQueryWrapperSE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
|
|
|
+ }
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
+ lambdaQueryWrapperSE.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
+ }
|
|
|
+ lambdaQueryWrapperSE.eq(Bills::getBusinessType, "SE");
|
|
|
+ List<Bills> HYCKList = billsMapper.selectList(lambdaQueryWrapperSE);
|
|
|
+ LambdaQueryWrapper<Bills> lambdaQueryWrapperSI = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapperSI.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .ge(Bills::getBillDate, dateStart)
|
|
|
+ .le(Bills::getBillDate, dateEnd);
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
|
|
|
+ lambdaQueryWrapperSI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
|
|
|
+ }
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
+ lambdaQueryWrapperSI.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
+ }
|
|
|
+ lambdaQueryWrapperSI.eq(Bills::getBusinessType, "SI");
|
|
|
+ List<Bills> HYJKList = billsMapper.selectList(lambdaQueryWrapperSI);
|
|
|
+ sum = HYCKList.size() + HYJKList.size();
|
|
|
+ refurbishment = HYCKList.stream().filter(e -> e.getBillStatus() == 1).count() +
|
|
|
+ HYJKList.stream().filter(e -> e.getBillStatus() == 1).count();
|
|
|
+ complete = HYCKList.stream().filter(e -> e.getStatus() == 3).count() +
|
|
|
+ HYJKList.stream().filter(e -> e.getStatus() == 3).count();
|
|
|
+ map.put("sum", sum);
|
|
|
+ map.put("refurbishment", refurbishment);
|
|
|
+ map.put("complete", complete);
|
|
|
+ if (sum == 0) {
|
|
|
+ map.put("rate", 0);
|
|
|
+ } else {
|
|
|
+ map.put("rate", new BigDecimal(complete).divide(new BigDecimal(sum), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
|
|
|
+ }
|
|
|
+ }else if ("2".equals(type)){
|
|
|
+ LambdaQueryWrapper<AeaBills> aeaBillsLambdaQueryWrapperAE = new LambdaQueryWrapper<>();
|
|
|
+ aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AeaBills::getIsDeleted, 0)
|
|
|
+ .ge(AeaBills::getBillDate, dateStart)
|
|
|
+ .le(AeaBills::getBillDate, dateEnd);
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
|
|
|
+ aeaBillsLambdaQueryWrapperAE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
|
|
|
+ }
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
+ aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
|
|
|
+ }
|
|
|
+ aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getBusinessType, "AE");
|
|
|
+ List<AeaBills> KYCKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapperAE);
|
|
|
+ LambdaQueryWrapper<AeaBills> aeaBillsLambdaQueryWrapperAI = new LambdaQueryWrapper<>();
|
|
|
+ aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AeaBills::getIsDeleted, 0)
|
|
|
+ .ge(AeaBills::getBillDate, dateStart)
|
|
|
+ .le(AeaBills::getBillDate, dateEnd);
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
|
|
|
+ aeaBillsLambdaQueryWrapperAI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
|
|
|
+ }
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
+ aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
|
|
|
+ }
|
|
|
+ aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getBusinessType, "AI");
|
|
|
+ List<AeaBills> KYJKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapperAI);
|
|
|
+ sum = KYCKList.size() + KYJKList.size();
|
|
|
+ refurbishment = KYCKList.stream().filter(e -> e.getBillStatus() == 1).count() +
|
|
|
+ KYJKList.stream().filter(e -> e.getBillStatus() == 1).count();
|
|
|
+ complete = KYCKList.stream().filter(e -> e.getStatus() == 3).count() +
|
|
|
+ KYJKList.stream().filter(e -> e.getStatus() == 3).count();
|
|
|
+ map.put("sum", sum);
|
|
|
+ map.put("refurbishment", refurbishment);
|
|
|
+ map.put("complete", complete);
|
|
|
+ if (sum == 0) {
|
|
|
+ map.put("rate", 0);
|
|
|
+ } else {
|
|
|
+ map.put("rate", new BigDecimal(complete).divide(new BigDecimal(sum), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
|
|
|
+ }
|
|
|
+ }else if ("3".equals(type)){
|
|
|
+ LambdaQueryWrapper<Agent> agentLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ agentLambdaQueryWrapper.eq(Agent::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Agent::getIsDeleted, 0)
|
|
|
+ .ge(Agent::getContractDate, dateStart)
|
|
|
+ .le(Agent::getContractDate, dateEnd);
|
|
|
+ agentLambdaQueryWrapper.eq(Agent::getBusinessType, "MYDL");
|
|
|
+ List<Agent> agentList = agentMapper.selectList(agentLambdaQueryWrapper);
|
|
|
+ sum = agentList.size();
|
|
|
+ refurbishment = agentList.stream().filter(e -> !e.getBusinessStatus().equals("审核通过")).count();
|
|
|
+ complete = agentList.stream().filter(e -> e.getBusinessStatus().equals("审核通过")).count();
|
|
|
+ map.put("sum", sum);
|
|
|
+ map.put("refurbishment", refurbishment);
|
|
|
+ map.put("complete", complete);
|
|
|
+ if (sum == 0) {
|
|
|
+ map.put("rate", 0);
|
|
|
+ } else {
|
|
|
+ map.put("rate", new BigDecimal(complete).divide(new BigDecimal(sum), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
|
|
|
+ }
|
|
|
}
|
|
|
return R.data(map);
|
|
|
}
|