回访记录

This commit is contained in:
1073413548 2024-09-09 11:16:54 +08:00
parent ff80866acf
commit ce3da9354d
2 changed files with 41 additions and 16 deletions

View File

@ -155,4 +155,9 @@ public class PsCustomerRecordVo implements Serializable {
* 免费工单审批失败描述 * 免费工单审批失败描述
*/ */
private String freeFailDesc; private String freeFailDesc;
/**
* 回访记录vo已完成客户列表使用
*/
private List<PsCustomCallbackVo> psCustomCallbackVo;
} }

View File

@ -356,43 +356,63 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
* @param queryBo * @param queryBo
* @return * @return
*/ */
public TableDataInfo<PsCustomerRecordVo> getCustomerRecordList(PsCustomRecordQueryBo queryBo, PageQuery pageQuery){ public TableDataInfo<PsCustomerRecordVo> getCustomerRecordList(PsCustomRecordQueryBo queryBo, PageQuery pageQuery) {
QueryWrapper<PsCustomInfo> qw = Wrappers.query(); QueryWrapper<PsCustomInfo> qw = Wrappers.query();
qw.like(StringUtils.isNotBlank(queryBo.getCompanyName()), "com.company_name", queryBo.getCompanyName()); qw.like(StringUtils.isNotBlank(queryBo.getCompanyName()), "com.company_name", queryBo.getCompanyName());
qw.like(StringUtils.isNotBlank(queryBo.getFinanceAccountNo()), "com.finance_account_no", queryBo.getFinanceAccountNo()); qw.like(StringUtils.isNotBlank(queryBo.getFinanceAccountNo()), "com.finance_account_no", queryBo.getFinanceAccountNo());
qw.like(StringUtils.isNotBlank(queryBo.getLegalPersonName()), "com.legal_person_name", queryBo.getLegalPersonName()); qw.like(StringUtils.isNotBlank(queryBo.getLegalPersonName()), "com.legal_person_name", queryBo.getLegalPersonName());
qw.eq(queryBo.getId() != null,"custom.id",queryBo.getId()); qw.eq(queryBo.getId() != null, "custom.id", queryBo.getId());
qw.like(StringUtils.isNotBlank(queryBo.getName()), "custom.custom_name", queryBo.getName()); qw.like(StringUtils.isNotBlank(queryBo.getName()), "custom.custom_name", queryBo.getName());
qw.like(StringUtils.isNotBlank(queryBo.getMobile()), "custom.custom_mobile", queryBo.getMobile()); qw.like(StringUtils.isNotBlank(queryBo.getMobile()), "custom.custom_mobile", queryBo.getMobile());
qw.eq(StringUtils.isNotBlank(queryBo.getCustomSource()), "custom.custom_source", queryBo.getCustomSource()); qw.eq(StringUtils.isNotBlank(queryBo.getCustomSource()), "custom.custom_source", queryBo.getCustomSource());
qw.notIn("con.contract_status", ContractStatusEnum.isValid()); qw.notIn("con.contract_status", ContractStatusEnum.isValid());
qw.exists(StringUtils.isNotBlank(queryBo.getCustomIntroducerName()),"select 1 from ps_custom_info pc where pc.id = custom.custom_introducer and pc.custom_name like '%"+queryBo.getCustomIntroducerName()+"%'"); qw.exists(StringUtils.isNotBlank(queryBo.getCustomIntroducerName()), "select 1 from ps_custom_info pc where pc.id = custom.custom_introducer and pc.custom_name like '%" + queryBo.getCustomIntroducerName() + "%'");
qw.exists(StringUtils.isNotBlank(queryBo.getCustomManagerName()),"select 1 from sys_user su where su.user_id = custom.custom_manager and su.nick_name like '%"+queryBo.getCustomManagerName()+"%'"); qw.exists(StringUtils.isNotBlank(queryBo.getCustomManagerName()), "select 1 from sys_user su where su.user_id = custom.custom_manager and su.nick_name like '%" + queryBo.getCustomManagerName() + "%'");
if(queryBo.getType() !=null && queryBo.getType() == 2){ if (queryBo.getType() != null && queryBo.getType() == 2) {
// qw.eq("con.contract_status", ContractStatusEnum.SUCCESS.getCode()); // qw.eq("con.contract_status", ContractStatusEnum.SUCCESS.getCode());
//已完成合同列表客户下不存在未完成的合同信息不包括作废和暂存的合同 //已完成合同列表客户下不存在未完成的合同信息不包括作废和暂存的合同
qw.notExists("select 1 from ps_contract_info pscon where pscon.custom_id = custom.id and pscon.contract_status not in ('"+ContractStatusEnum.SUCCESS.getCode()+"','" qw.notExists("select 1 from ps_contract_info pscon where pscon.custom_id = custom.id and pscon.contract_status not in ('" + ContractStatusEnum.SUCCESS.getCode() + "','"
+ContractStatusEnum.INIT.getCode()+"' and pscon.is_cancel != '03')"); + ContractStatusEnum.INIT.getCode() + "' and pscon.is_cancel != '03')");
}else if (queryBo.getType() !=null && queryBo.getType() == 1) { } else if (queryBo.getType() != null && queryBo.getType() == 1) {
//托管类服务类型编码集合 //托管类服务类型编码集合
qw.exists(queryBo.getServiceType() !=null && queryBo.getServiceType() == 1, "select 1 from ps_contract_business bus " + qw.exists(queryBo.getServiceType() != null && queryBo.getServiceType() == 1, "select 1 from ps_contract_business bus " +
"where bus.contract_code = con.contract_code and bus.business_type = 2"); "where bus.contract_code = con.contract_code and bus.business_type = 2");
//非托管服务类型编码集合 //非托管服务类型编码集合
qw.notExists(queryBo.getServiceType() !=null && queryBo.getServiceType() == 2, "select 1 from ps_contract_business bus " + qw.notExists(queryBo.getServiceType() != null && queryBo.getServiceType() == 2, "select 1 from ps_contract_business bus " +
"where bus.contract_code = con.contract_code and bus.business_type = 2"); "where bus.contract_code = con.contract_code and bus.business_type = 2");
//服务项目编码集合 //服务项目编码集合
qw.exists(CollectionUtils.isNotEmpty(queryBo.getServiceProjects()), "select 1 from ps_contract_business detail " + qw.exists(CollectionUtils.isNotEmpty(queryBo.getServiceProjects()), "select 1 from ps_contract_business detail " +
"where detail.contract_code = con.contract_code and detail.business_type in ("+StringUtils.join(queryBo.getServiceProjects(),",")+")");//服务项目编码集合 "where detail.contract_code = con.contract_code and detail.business_type in (" + StringUtils.join(queryBo.getServiceProjects(), ",") + ")");//服务项目编码集合
} }
Page<PsCustomerRecordVo> list = baseMapper.selectPageCustomerRecordList(pageQuery.build(), qw); Page<PsCustomerRecordVo> list = baseMapper.selectPageCustomerRecordList(pageQuery.build(), qw);
if(CollectionUtils.isEmpty(list.getRecords())){ if (CollectionUtils.isEmpty(list.getRecords())) {
return TableDataInfo.build(list); return TableDataInfo.build(list);
} }
//免费工单审批
list.getRecords().forEach(item->{ Map<Long, List<PsCustomCallbackVo>> id_callbackMap = new HashMap<>();
item.setFreeFailDesc(approverRecordService.getLastFail(item.getContractCode(),item.getContractCode(),List.of(ApproverTypeEnum.FREE.getCode()))); //已完成客户的回访记录
}); if (queryBo.getType() != null && queryBo.getType() == 2) {
List<Long> ids = list.getRecords().stream().map(PsCustomerRecordVo::getId).collect(Collectors.toList());
//查询回访记录详细
List<PsCustomCallbackVo> callbacks = callbackMapper.selectVoList(Wrappers.<PsCustomCallback>lambdaQuery()
.in(PsCustomCallback::getCustomId, ids)
.eq(PsCustomCallback::getDelFlag, 0));
if (CollectionUtils.isNotEmpty(callbacks)) {
//分组
id_callbackMap = callbacks.stream().collect((Collectors.groupingBy(PsCustomCallbackVo::getCustomId)));
//排序
id_callbackMap.entrySet().forEach(entry -> {
entry.setValue(entry.getValue().stream().sorted(Comparator.comparingLong(PsCustomCallbackVo::getId).reversed()).collect(Collectors.toList()));
});
}
}
for (PsCustomerRecordVo item : list.getRecords()){
//免费工单审批
item.setFreeFailDesc(approverRecordService.getLastFail(item.getContractCode(), item.getContractCode(), List.of(ApproverTypeEnum.FREE.getCode())));
//装填回访记录vo
item.setPsCustomCallbackVo(id_callbackMap.get(item.getId()));
}
return TableDataInfo.build(list); return TableDataInfo.build(list);
} }