From 51d656dd7656f103e5c71be3af4f6c37f4f67fce Mon Sep 17 00:00:00 2001 From: mx <1289317512@qq.com> Date: Thu, 14 Nov 2024 17:31:33 +0800 Subject: [PATCH] bug --- .../business/controller/HomeController.java | 10 ++- .../pusong/business/service/HomeService.java | 4 +- .../service/impl/HomeServiceImpl.java | 80 ++++++++++++------- .../mapper/business/PsContractInfoMapper.xml | 19 +++-- .../pusong/system/domain/bo/SysNoticeBo.java | 2 +- 5 files changed, 68 insertions(+), 47 deletions(-) diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java index 736d87c..45a7d5f 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java @@ -94,11 +94,12 @@ public class HomeController extends BaseController { /** * 首页大盘数据:人员成交数据饼图、列表 * @param type + * tabType -1全部 0销售 1财务 * @return */ @GetMapping("/getUserContractAndPayInfo") - public R getUserContractAndPayInfo(@RequestParam() Integer type, @RequestParam() Boolean isCaiwu){ - return R.ok(homeService.getUserContractAndPayInfo(type, isCaiwu)); + public R getUserContractAndPayInfo(@RequestParam() Integer type, @RequestParam() int tabType){ + return R.ok(homeService.getUserContractAndPayInfo(type, tabType)); } /** * 首页大盘数据:人员成交数据列表 @@ -114,12 +115,13 @@ public class HomeController extends BaseController { /** * 首页大盘数据:人员转介绍成交数据列表 * @param type 1本月 2上月 3本季度 4本年 5所有 + * tabType -1全部 0销售 1财务 * @return */ @SaCheckPermission("business:salary:list") @GetMapping("/getUserContractSourceAmounts") - public R getUserContractSourceAmounts(@RequestParam() Integer type, @RequestParam() Boolean isCaiwu){ - return R.ok(homeService.getUserContractSourceAmountsByDeptId(type, isCaiwu));//缺少已回款未回款金额 + public R getUserContractSourceAmounts(@RequestParam() Integer type, @RequestParam() int tabType){ + return R.ok(homeService.getUserContractSourceAmountsByDeptId(type, tabType));//缺少已回款未回款金额 } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java index 4cca5ee..27c6bd6 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java @@ -16,9 +16,9 @@ public interface HomeService { ReturnMoneyInfoVo returnMoney(Integer type); RenewalInfoVo renewal(Integer type); - UserAmountVo getUserContractSourceAmountsByDeptId(Integer type, boolean isCaiwu); + UserAmountVo getUserContractSourceAmountsByDeptId(Integer type, int tabType); List getUserContractAmountsByDeptId(Integer type, Long deptId); - UserAmountVo getUserContractAndPayInfo(Integer type, boolean isCaiwu); + UserAmountVo getUserContractAndPayInfo(Integer type, int tabType); /** * 首页大盘数据:各渠道成交 * @param type diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java index 120550d..90461d8 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java @@ -71,7 +71,7 @@ public class HomeServiceImpl implements HomeService { .ne(PsContractInfo::getIsCancel, CommonStatusEnum.SUCCESS.getCode()) .ne(PsContractInfo::getContractStatus, ContractStatusEnum.INIT.getCode()) .ge(startDate != null,PsContractInfo::getApplyDate,startDate) - .le(endDate != null,PsContractInfo::getApplyDate,endDate)); + .lt(endDate != null,PsContractInfo::getApplyDate,endDate)); Map> map = list.stream().collect(Collectors.groupingBy(PsContractInfo::getIsDue, Collectors.toList())); //续期合同 @@ -105,7 +105,7 @@ public class HomeServiceImpl implements HomeService { List payList = payMapper.selectList(Wrappers.query().select("business_type", "sum(money) money").lambda() .in(PsContractPay::getContractCode, renewCodes).eq(PsContractPay::getPayStatus, PayStatusEnum.SUCCESS.getCode()) .ge(startDate != null, PsContractPay::getCreateTime, startDate) - .le(endDate != null, PsContractPay::getCreateTime, endDate) + .lt(endDate != null, PsContractPay::getCreateTime, endDate) .groupBy(PsContractPay::getBusinessType)); BigDecimal payMoney = BigDecimal.ZERO; for (PsContractPay pay : payList) { @@ -128,6 +128,7 @@ public class HomeServiceImpl implements HomeService { switch (type){ case 1://本月 startDate = now.withDayOfMonth(1); + endDate = now.plusMonths(1).withDayOfMonth(1); date = startDate.format(df); break; case 2: //上月 @@ -218,8 +219,13 @@ public class HomeServiceImpl implements HomeService { res.setSumMoney(sumMoney); res.setPayMoney(payMoney); res.setUnPayMoney(sumMoney.subtract(payMoney)); - res.setPayMoneyPer(payMoney.multiply(new BigDecimal("100.0")).divide(sumMoney,2, RoundingMode.HALF_UP).toPlainString()+"%"); - res.setUnPayMoneyPer(res.getUnPayMoney().multiply(new BigDecimal("100.0")).divide(sumMoney,2, RoundingMode.HALF_UP).toPlainString()+"%"); + if (sumMoney.doubleValue() == 0){ + res.setPayMoneyPer("100%"); + res.setUnPayMoneyPer("0%"); + }else{ + res.setPayMoneyPer(payMoney.multiply(new BigDecimal("100.0")).divide(sumMoney,2, RoundingMode.HALF_UP).toPlainString()+"%"); + res.setUnPayMoneyPer(res.getUnPayMoney().multiply(new BigDecimal("100.0")).divide(sumMoney,2, RoundingMode.HALF_UP).toPlainString()+"%"); + } return res; } @@ -233,9 +239,9 @@ public class HomeServiceImpl implements HomeService { QueryWrapper wrapper = new QueryWrapper() .select("company_id", "contract_code", "sum(business_amount) as business_amount") .eq("business_type", "2") - .between("end_date", startDate, endDate) +// .between("end_date", startDate, endDate) .ge(startDate != null,"end_date", startDate) - .le(endDate != null,"end_date", endDate) + .lt(endDate != null,"end_date", endDate) .groupBy("company_id") .groupBy("contract_code"); //到期的合同 @@ -260,7 +266,7 @@ public class HomeServiceImpl implements HomeService { QueryWrapper contractWrapper = new QueryWrapper() .ge(startDate != null,"apply_date", startDate) - .le(endDate != null,"apply_date", endDate) + .lt(endDate != null,"apply_date", endDate) .eq("con.is_due", 1) .in("cc.company_id", companyIds) .notIn("cc.contract_code", contractCodeList); @@ -293,7 +299,7 @@ public class HomeServiceImpl implements HomeService { * @param isCaiwu * @return */ - public UserAmountVo getUserContractSourceAmountsByDeptId(Integer type, boolean isCaiwu){ + public UserAmountVo getUserContractSourceAmountsByDeptId(Integer type, int tabType){ Map mapParam = this.getDate(type); LocalDate startDate = (LocalDate)mapParam.get("startDate"); LocalDate endDate = (LocalDate)mapParam.get("endDate"); @@ -307,8 +313,8 @@ public class HomeServiceImpl implements HomeService { queryParam.put("payStatus", PayStatusEnum.SUCCESS.getCode()); QueryWrapper queryWrapper = new QueryWrapper() - .in(isCaiwu, "role.role_key", Arrays.asList(RoleEnum.caiwu, RoleEnum.cwzg)) - .in(!isCaiwu, "role.role_key", Arrays.asList(RoleEnum.xiaoshou, RoleEnum.xszg)); + .in(tabType == 1, "role.role_key", Arrays.asList(RoleEnum.caiwu.getCode(), RoleEnum.cwzg.getCode())) + .in(tabType == 0, "role.role_key", Arrays.asList(RoleEnum.xiaoshou.getCode(), RoleEnum.xszg.getCode())); List list = psContractInfoMapper.getUserContractSourceAmountsByDeptId(queryParam, queryWrapper); Map res = new HashMap<>(); @@ -480,7 +486,7 @@ public class HomeServiceImpl implements HomeService { * @param type * @return */ - public UserAmountVo getUserContractAndPayInfo(Integer type, boolean isCaiwu){ + public UserAmountVo getUserContractAndPayInfo(Integer type, int tabType){ Map mapParam = this.getDate(type); LocalDate startDate = (LocalDate)mapParam.get("startDate"); LocalDate endDate = (LocalDate)mapParam.get("endDate"); @@ -492,10 +498,10 @@ public class HomeServiceImpl implements HomeService { queryParam.put("contractStatus", ContractStatusEnum.INIT.getCode()); queryParam.put("isCancel", CommonStatusEnum.SUCCESS.getCode()); queryParam.put("payStatus", PayStatusEnum.SUCCESS.getCode()); - LocalDateTime localDateTime2= LocalDateTime.parse("2024-11-07T14:04:00"); +// LocalDateTime localDateTime2= LocalDateTime.parse("2024-11-07T14:04:00"); QueryWrapper queryWrapper = new QueryWrapper() -// .in(isCaiwu, "role.role_key", Arrays.asList(RoleEnum.caiwu, RoleEnum.cwzg)) -// .in(!isCaiwu, "role.role_key", Arrays.asList(RoleEnum.xiaoshou, RoleEnum.xszg) ); + .in(tabType == 1, "role.role_key", Arrays.asList(RoleEnum.caiwu.getCode(), RoleEnum.cwzg.getCode())) + .in(tabType == 0, "role.role_key", Arrays.asList(RoleEnum.xiaoshou.getCode(), RoleEnum.xszg.getCode()) ); ; List list = psContractInfoMapper.getUserContractAndPayInfo(queryParam, queryWrapper); Map resMap = new HashMap<>(); @@ -515,12 +521,15 @@ public class HomeServiceImpl implements HomeService { if(obj.getContractCode() != null && obj.getContractCode().length() > 0){ vo.addContractNum(); } - vo.addPayedSumAmount(obj.getPayedMoney()); - + if (obj.getPayedMoney() != null){ + vo.addPayedSumAmount(obj.getPayedMoney()); + } if(repeatContractCode.get(obj.getContractCode())==null){ repeatContractCode.put(obj.getContractCode(), obj.getContractCode()); - vo.addSumAmount(obj.getContractAmount()); + if (obj.getContractAmount() != null) { + vo.addSumAmount(obj.getContractAmount()); + } } //托管合同金额累计 @@ -529,17 +538,23 @@ public class HomeServiceImpl implements HomeService { } else { //软件开发合同金额累计 if (obj.getBusinessType() != null && obj.getBusinessType().equals("9")) { - vo.addSoftwareDevAmount(obj.getContractAmount()); + if (obj.getContractAmount() != null) { + vo.addSoftwareDevAmount(obj.getContractAmount()); + } } else { //其他合同金额累计 if (obj.getIsDue() == null || obj.getIsDue().equals("0")) { - vo.addOtherAmount(obj.getContractAmount()); + if (obj.getContractAmount() != null){ + vo.addOtherAmount(obj.getContractAmount()); + } } } } //续签合同金额累计 if(obj.getIsDue()!=null&&obj.getIsDue().equals("1")){ - vo.addXuFeiAmount(obj.getContractAmount()); + if (obj.getContractAmount() != null) { + vo.addXuFeiAmount(obj.getContractAmount()); + } } } @@ -594,7 +609,7 @@ public class HomeServiceImpl implements HomeService { QueryWrapper wq = new QueryWrapper() .ne("info.is_due", CommonStatusEnum.SUCCESS.getCode()).ne("info.contract_status", ContractStatusEnum.INIT.getCode()) // .eq("pay.pay_status", PayStatusEnum.SUCCESS.getCode()) - .ge(startDate != null, "info.apply_date", startDate).le(endDate != null, "info.apply_date", endDate); + .ge(startDate != null, "info.apply_date", startDate).lt(endDate != null, "info.apply_date", endDate); List list; if(dateType == 1){//所有的数据权限 list = psContractInfoMapper.byChannel(wq, startDate, endDate); @@ -658,7 +673,7 @@ public class HomeServiceImpl implements HomeService { LambdaQueryWrapper wq = Wrappers.lambdaQuery().ne(PsTaskMain::getTaskStatus, TaskStatusEnum.CANCEL.getCode()) .ge(startDate != null,PsTaskMain::getCreateTime,startDate) - .le(endDate != null,PsTaskMain::getCreateTime,endDate); + .lt(endDate != null,PsTaskMain::getCreateTime,endDate); //任务的总数 Long count = taskMainMapper.selectCount(wq); wq.eq(PsTaskMain::getTaskStatus, TaskStatusEnum.FINISH.getCode()); @@ -669,10 +684,15 @@ public class HomeServiceImpl implements HomeService { finishTaskVo.setDateStr(date); finishTaskVo.setFinishNum(finishCount); finishTaskVo.setCount(count); - finishTaskVo.setUnfinishNum(count-finishCount); - finishTaskVo.setFinishPre(new BigDecimal(finishCount).divide(new BigDecimal(count),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).toPlainString()); - finishTaskVo.setUnfinishPre(new BigDecimal(finishTaskVo.getUnfinishNum()).divide(new BigDecimal(count),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).toPlainString()); - return finishTaskVo; + finishTaskVo.setUnfinishNum(count - finishCount); + if (count == 0){ + finishTaskVo.setFinishPre("100"); + finishTaskVo.setUnfinishPre("0"); + }else{ + finishTaskVo.setFinishPre(new BigDecimal(finishCount).divide(new BigDecimal(count),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).toPlainString()); + finishTaskVo.setUnfinishPre(new BigDecimal(finishTaskVo.getUnfinishNum()).divide(new BigDecimal(count),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).toPlainString()); + } + return finishTaskVo; } @@ -693,13 +713,13 @@ public class HomeServiceImpl implements HomeService { //查范围内创建并且范围内完成的数据 List> allList = taskMainMapper.selectMaps(Wrappers.query().select("round(AVG(TIMESTAMPDIFF(day, create_time, finish_date) )) avg") .eq("task_status", TaskStatusEnum.FINISH.getCode()) - .ge(startDate != null, "create_time", startDate).le(endDate != null, "create_time", endDate) - .ge(startDate != null, "finish_date", startDate).le(endDate != null, "finish_date", endDate)); + .ge(startDate != null, "create_time", startDate).lt(endDate != null, "create_time", endDate) + .ge(startDate != null, "finish_date", startDate).lt(endDate != null, "finish_date", endDate)); List> appointList = taskAppointMapper.selectMaps(Wrappers.query().select("appoint_type","round(AVG(TIMESTAMPDIFF(day, create_time, finish_date) )) avg") .eq("appoint_status", TaskStatusEnum.AppointStatusEnum.FINISH.getCode()) - .ge(startDate != null, "create_time", startDate).le(endDate != null, "create_time", endDate) - .ge(startDate != null, "finish_date", startDate).le(endDate != null, "finish_date", endDate) + .ge(startDate != null, "create_time", startDate).lt(endDate != null, "create_time", endDate) + .ge(startDate != null, "finish_date", startDate).lt(endDate != null, "finish_date", endDate) .groupBy("appoint_type")); map.put("taskAvg", allList.isEmpty() || allList.get(0) == null ? 0 : allList.get(0).get("avg"));//任务平均天数 map.put("inAvg", 0);//内勤 diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml index d7d4315..0d858a5 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml @@ -133,22 +133,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM sys_user u LEFT JOIN ps_contract_info info on u.user_id = info.custom_manager - inner join sys_user_role ur on ur.user_id = u.user_id - inner join sys_role role on role.role_id = ur.role_id - - and info.apply_date >= #{queryParam.startDate} - - - and info.apply_date < #{queryParam.endDate} - + + and info.apply_date >= #{queryParam.startDate} + + + and info.apply_date < #{queryParam.endDate} + and info.contract_status != #{queryParam.contractStatus} and info.is_cancel != #{queryParam.isCancel} + inner join sys_user_role ur on ur.user_id = u.user_id + inner join sys_role role on role.role_id = ur.role_id LEFT JOIN ps_contract_pay pay on info.contract_code=pay.contract_code and pay.pay_status=#{queryParam.payStatus} and pay.del_flag=0 - ${ew.getCustomSqlSegment} @@ -166,7 +165,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" inner join sys_user_role ur on ur.user_id = u.user_id inner join sys_role role on role.role_id = ur.role_id LEFT JOIN ps_contract_info info on - u.user_id=info.custom_manager + u.user_id = info.custom_manager and info.contract_status != #{queryParam.contractStatus} and info.is_cancel != #{queryParam.isCancel} diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysNoticeBo.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysNoticeBo.java index a576e58..7a7e1fb 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysNoticeBo.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysNoticeBo.java @@ -315,7 +315,7 @@ public class SysNoticeBo extends BaseEntity { noticeBo.setNoticeTitle("通知"); noticeBo.setStatus("0"); noticeBo.setNoticeContent("新增【"+ coustomName +"】的开票需求,请及时处理。"); - noticeBo.setRecRole(Arrays.asList(RoleEnum.caiwu.getCode())); + noticeBo.setRecRole(Arrays.asList(RoleEnum.caiwu.getCode(), RoleEnum.cwzg.getCode())); noticeBo.setJumpType(0); return noticeBo; }