|
@@ -3,13 +3,18 @@ package com.qmth.sop.business.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.qmth.sop.business.bean.dto.AreaDto;
|
|
import com.qmth.sop.business.bean.dto.AreaDto;
|
|
|
|
+import com.qmth.sop.business.entity.TBCrm;
|
|
|
|
+import com.qmth.sop.business.entity.TBServiceRegion;
|
|
import com.qmth.sop.business.entity.TBServiceRegionDetail;
|
|
import com.qmth.sop.business.entity.TBServiceRegionDetail;
|
|
import com.qmth.sop.business.mapper.TBServiceRegionDetailMapper;
|
|
import com.qmth.sop.business.mapper.TBServiceRegionDetailMapper;
|
|
|
|
+import com.qmth.sop.business.service.TBCrmService;
|
|
import com.qmth.sop.business.service.TBServiceRegionDetailService;
|
|
import com.qmth.sop.business.service.TBServiceRegionDetailService;
|
|
|
|
+import com.qmth.sop.business.service.TBServiceRegionService;
|
|
import com.qmth.sop.common.contant.SystemConstant;
|
|
import com.qmth.sop.common.contant.SystemConstant;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Stream;
|
|
import java.util.stream.Stream;
|
|
@@ -24,20 +29,36 @@ import java.util.stream.Stream;
|
|
*/
|
|
*/
|
|
@Service
|
|
@Service
|
|
public class TBServiceRegionDetailServiceImpl extends ServiceImpl<TBServiceRegionDetailMapper, TBServiceRegionDetail> implements TBServiceRegionDetailService {
|
|
public class TBServiceRegionDetailServiceImpl extends ServiceImpl<TBServiceRegionDetailMapper, TBServiceRegionDetail> implements TBServiceRegionDetailService {
|
|
|
|
+ @Resource
|
|
|
|
+ private TBCrmService tbCrmService;
|
|
|
|
+ @Resource
|
|
|
|
+ private TBServiceRegionService tbServiceRegionService;
|
|
|
|
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public void bindServiceRegionAreas(Long serviceRegionId, List<AreaDto> areaDtoList) {
|
|
public void bindServiceRegionAreas(Long serviceRegionId, List<AreaDto> areaDtoList) {
|
|
|
|
+ TBServiceRegion db = tbServiceRegionService.getById(serviceRegionId);
|
|
|
|
+ Long serviceUnitId = db.getServiceId();
|
|
|
|
+ Long leaderId = db.getServiceId();
|
|
|
|
+
|
|
// 删除之前绑定的区域
|
|
// 删除之前绑定的区域
|
|
this.remove(new QueryWrapper<TBServiceRegionDetail>().lambda().eq(TBServiceRegionDetail::getServiceRegionId, serviceRegionId));
|
|
this.remove(new QueryWrapper<TBServiceRegionDetail>().lambda().eq(TBServiceRegionDetail::getServiceRegionId, serviceRegionId));
|
|
|
|
+
|
|
// 添加新绑定区域
|
|
// 添加新绑定区域
|
|
List<TBServiceRegionDetail> tbServiceRegionDetailList = areaDtoList.stream().flatMap(e -> {
|
|
List<TBServiceRegionDetail> tbServiceRegionDetailList = areaDtoList.stream().flatMap(e -> {
|
|
|
|
+ // 批量更新相关的派单的大区经理
|
|
|
|
+ String province = e.getProvince();
|
|
|
|
+ String city = e.getCity();
|
|
|
|
+ List<TBCrm> tbCrmList = tbCrmService.findByTBCrmListByServiceUnitIdAndAddress(serviceUnitId, province, city);
|
|
|
|
+ tbCrmList = tbCrmList.stream().peek(crm -> crm.setLeadId(leaderId)).collect(Collectors.toList());
|
|
|
|
+ tbCrmService.updateBatchById(tbCrmList);
|
|
|
|
+
|
|
TBServiceRegionDetail detail = new TBServiceRegionDetail();
|
|
TBServiceRegionDetail detail = new TBServiceRegionDetail();
|
|
detail.setId(SystemConstant.getDbUuid());
|
|
detail.setId(SystemConstant.getDbUuid());
|
|
detail.setServiceRegionId(serviceRegionId);
|
|
detail.setServiceRegionId(serviceRegionId);
|
|
detail.setCountry(e.getCountry());
|
|
detail.setCountry(e.getCountry());
|
|
- detail.setProvince(e.getProvince());
|
|
|
|
- detail.setCity(e.getCity());
|
|
|
|
|
|
+ detail.setProvince(province);
|
|
|
|
+ detail.setCity(city);
|
|
detail.setArea(e.getArea());
|
|
detail.setArea(e.getArea());
|
|
detail.setAddress(e.getAddress());
|
|
detail.setAddress(e.getAddress());
|
|
return Stream.of(detail);
|
|
return Stream.of(detail);
|