diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomerRecordVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomerRecordVo.java index 274982c..e6ba811 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomerRecordVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomerRecordVo.java @@ -155,4 +155,9 @@ public class PsCustomerRecordVo implements Serializable { * 免费工单审批失败描述 */ private String freeFailDesc; + + /** + * 回访记录vo(已完成客户列表使用) + */ + private List psCustomCallbackVo; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java index 30a264b..b45641d 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java @@ -356,43 +356,63 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { * @param queryBo * @return */ - public TableDataInfo getCustomerRecordList(PsCustomRecordQueryBo queryBo, PageQuery pageQuery){ + public TableDataInfo getCustomerRecordList(PsCustomRecordQueryBo queryBo, PageQuery pageQuery) { QueryWrapper qw = Wrappers.query(); 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.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.getMobile()), "custom.custom_mobile", queryBo.getMobile()); qw.eq(StringUtils.isNotBlank(queryBo.getCustomSource()), "custom.custom_source", queryBo.getCustomSource()); 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.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){ + 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() + "%'"); + if (queryBo.getType() != null && queryBo.getType() == 2) { // 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()+"','" - +ContractStatusEnum.INIT.getCode()+"' and pscon.is_cancel != '03')"); - }else if (queryBo.getType() !=null && queryBo.getType() == 1) { + 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')"); + } 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"); //非托管服务类型编码集合 - 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"); //服务项目编码集合 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 list = baseMapper.selectPageCustomerRecordList(pageQuery.build(), qw); - if(CollectionUtils.isEmpty(list.getRecords())){ + if (CollectionUtils.isEmpty(list.getRecords())) { return TableDataInfo.build(list); } - //免费工单审批 - list.getRecords().forEach(item->{ - item.setFreeFailDesc(approverRecordService.getLastFail(item.getContractCode(),item.getContractCode(),List.of(ApproverTypeEnum.FREE.getCode()))); - }); + + Map> id_callbackMap = new HashMap<>(); + //已完成客户的回访记录 + if (queryBo.getType() != null && queryBo.getType() == 2) { + List ids = list.getRecords().stream().map(PsCustomerRecordVo::getId).collect(Collectors.toList()); + //查询回访记录详细 + List callbacks = callbackMapper.selectVoList(Wrappers.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); }