This commit is contained in:
mx 2024-11-14 17:31:33 +08:00
parent 77bc7793e9
commit 51d656dd76
5 changed files with 68 additions and 47 deletions

View File

@ -94,11 +94,12 @@ public class HomeController extends BaseController {
/**
* 首页大盘数据人员成交数据饼图列表
* @param type
* tabType -1全部 0销售 1财务
* @return
*/
@GetMapping("/getUserContractAndPayInfo")
public R<UserAmountVo> getUserContractAndPayInfo(@RequestParam() Integer type, @RequestParam() Boolean isCaiwu){
return R.ok(homeService.getUserContractAndPayInfo(type, isCaiwu));
public R<UserAmountVo> 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<UserAmountVo> getUserContractSourceAmounts(@RequestParam() Integer type, @RequestParam() Boolean isCaiwu){
return R.ok(homeService.getUserContractSourceAmountsByDeptId(type, isCaiwu));//缺少已回款未回款金额
public R<UserAmountVo> getUserContractSourceAmounts(@RequestParam() Integer type, @RequestParam() int tabType){
return R.ok(homeService.getUserContractSourceAmountsByDeptId(type, tabType));//缺少已回款未回款金额
}

View File

@ -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<UserContractAmountVo> getUserContractAmountsByDeptId(Integer type, Long deptId);
UserAmountVo getUserContractAndPayInfo(Integer type, boolean isCaiwu);
UserAmountVo getUserContractAndPayInfo(Integer type, int tabType);
/**
* 首页大盘数据各渠道成交
* @param type

View File

@ -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<String, List<PsContractInfo>> map = list.stream().collect(Collectors.groupingBy(PsContractInfo::getIsDue, Collectors.toList()));
//续期合同
@ -105,7 +105,7 @@ public class HomeServiceImpl implements HomeService {
List<PsContractPay> payList = payMapper.selectList(Wrappers.<PsContractPay>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<PsContractBusiness> wrapper = new QueryWrapper<PsContractBusiness>()
.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<PsContractInfo> contractWrapper = new QueryWrapper<PsContractInfo>()
.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<String, Object> 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<PsContractInfo> queryWrapper = new QueryWrapper<PsContractInfo>()
.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<UserContractAmountInfo> list = psContractInfoMapper.getUserContractSourceAmountsByDeptId(queryParam, queryWrapper);
Map<Long,UserContractAmountVo> 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<String, Object> 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<PsContractInfo> queryWrapper = new QueryWrapper<PsContractInfo>()
// .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<UserContractAmountInfo> list = psContractInfoMapper.getUserContractAndPayInfo(queryParam, queryWrapper);
Map<Long, UserAmountInfoVo> 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<PsContractInfo> wq = new QueryWrapper<PsContractInfo>()
.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<ChannelPayInfo> list;
if(dateType == 1){//所有的数据权限
list = psContractInfoMapper.byChannel(wq, startDate, endDate);
@ -658,7 +673,7 @@ public class HomeServiceImpl implements HomeService {
LambdaQueryWrapper<PsTaskMain> wq = Wrappers.<PsTaskMain>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<Map<String, Object>> allList = taskMainMapper.selectMaps(Wrappers.<PsTaskMain>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<Map<String, Object>> appointList = taskAppointMapper.selectMaps(Wrappers.<PsTaskAppoint>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);//内勤

View File

@ -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
<if test="queryParam.startDate != null">
and info.apply_date >= #{queryParam.startDate}
</if>
<if test="queryParam.endDate != null">
and info.apply_date &lt; #{queryParam.endDate}
</if>
<if test="queryParam.startDate != null">
and info.apply_date >= #{queryParam.startDate}
</if>
<if test="queryParam.endDate != null">
and info.apply_date &lt; #{queryParam.endDate}
</if>
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}
</select>
@ -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}

View File

@ -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;
}