|
@@ -170,19 +170,19 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
|
|
|
// 按地区匹配
|
|
|
ServiceRegionDetailResult serviceRegionDetailResult = tbServiceRegionDetailService.findRegionDetail(
|
|
|
serviceUnitId, tbCrm.getCrmNo());
|
|
|
+ if (Objects.isNull(serviceRegionDetailResult)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("该地区还没有分配大区经理,请先分配");
|
|
|
+ }
|
|
|
UpdateWrapper<TBCrm> areaUpdateWrapper = new UpdateWrapper<>();
|
|
|
areaUpdateWrapper.lambda().set(TBCrm::getServiceId, serviceUnitId).set(TBCrm::getLeadType, leadType)
|
|
|
.set(TBCrm::getUpdateId, requestUser.getId())
|
|
|
- .set(TBCrm::getUpdateTime, System.currentTimeMillis());
|
|
|
- if (Objects.nonNull(serviceRegionDetailResult)) {
|
|
|
- areaUpdateWrapper.lambda().set(TBCrm::getLeadId, serviceRegionDetailResult.getLeadId())
|
|
|
- .set(TBCrm::getRegionId, serviceRegionDetailResult.getServiceRegionId())
|
|
|
- .set(TBCrm::getRegionDetailId, serviceRegionDetailResult.getServiceRegionDetailId());
|
|
|
- }
|
|
|
- if (leadType.equals(defaultLeadType)) {
|
|
|
- // 更新自己信息
|
|
|
+ .set(TBCrm::getUpdateTime, System.currentTimeMillis()).set(TBCrm::getLeadId, serviceRegionDetailResult.getLeadId())
|
|
|
+ .set(TBCrm::getRegionId, serviceRegionDetailResult.getServiceRegionId())
|
|
|
+ .set(TBCrm::getRegionDetailId, serviceRegionDetailResult.getServiceRegionDetailId());
|
|
|
+ if (Objects.isNull(defaultLeadType) || leadType.equals(defaultLeadType)) {
|
|
|
+ // 更新自己信息(没有默认信息或默认信息与更改信息一致)
|
|
|
areaUpdateWrapper.lambda().eq(TBCrm::getId, crmId);
|
|
|
- } else {
|
|
|
+ } else if (CollectionUtils.isNotEmpty(similarCrmIdList)) {
|
|
|
// 更新同类派单信息
|
|
|
areaUpdateWrapper.lambda().in(TBCrm::getId, similarCrmIdList);
|
|
|
}
|
|
@@ -195,13 +195,15 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
|
|
|
personUpdateWrapper.lambda().set(TBCrm::getServiceId, serviceUnitId).set(TBCrm::getLeadType, leadType)
|
|
|
.set(TBCrm::getLeadId, leadId).set(TBCrm::getUpdateId, requestUser.getId())
|
|
|
.set(TBCrm::getUpdateTime, System.currentTimeMillis());
|
|
|
- if (leadType.equals(defaultLeadType) && leadId.equals(defaultLeadId)) {
|
|
|
- // 更新自己信息
|
|
|
+ if ((Objects.isNull(defaultLeadType) || !SystemConstant.longNotNull(defaultLeadId)) || (leadType.equals(
|
|
|
+ defaultLeadType) && leadId.equals(defaultLeadId))) {
|
|
|
+ // 更新自己信息(没有默认信息或默认信息与更改信息一致)
|
|
|
personUpdateWrapper.lambda().eq(TBCrm::getId, crmId);
|
|
|
- } else {
|
|
|
+ } else if (CollectionUtils.isNotEmpty(similarCrmIdList)) {
|
|
|
// 更新同类派单信息
|
|
|
personUpdateWrapper.lambda().in(TBCrm::getId, similarCrmIdList);
|
|
|
}
|
|
|
+ this.update(personUpdateWrapper);
|
|
|
break;
|
|
|
}
|
|
|
} else {
|
|
@@ -212,6 +214,7 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
|
|
|
tbCrm.setServiceId(serviceUnitId);
|
|
|
tbCrm.setLeadType(defaultLeadType);
|
|
|
tbCrm.setLeadId(defaultLeadId);
|
|
|
+ this.updateById(tbCrm);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -827,12 +830,12 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
|
|
|
.eq(TBCrm::getServiceId, serviceUnitId));
|
|
|
if (CollectionUtils.isNotEmpty(sameCrmList)) {
|
|
|
// 对于同一服务单元同客户下有发布sop的,不允许更换大区经理,上述两图中内容置灰,不可更换大区经理。一旦更换大区经理,该客户的所有派单均更换大区经理
|
|
|
- List<RegionManagerSelectedTypeEnum> leadTypeList = sameCrmList.stream().map(TBCrm::getLeadType).collect(Collectors.toList());
|
|
|
+ List<RegionManagerSelectedTypeEnum> leadTypeList = sameCrmList.stream().map(TBCrm::getLeadType).distinct().collect(Collectors.toList());
|
|
|
if (leadTypeList.size() != 1) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("客户在服务单元下存在不同的大区经理指定方式");
|
|
|
}
|
|
|
leadType = leadTypeList.get(0);
|
|
|
- List<Long> leadIdList = sameCrmList.stream().map(TBCrm::getLeadId).collect(Collectors.toList());
|
|
|
+ List<Long> leadIdList = sameCrmList.stream().map(TBCrm::getLeadId).distinct().collect(Collectors.toList());
|
|
|
if (leadIdList.size() != 1) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("客户在服务单元下存在不同的大区经理");
|
|
|
}
|