|
@@ -1,20 +1,24 @@
|
|
package com.qmth.sop.business.service.impl;
|
|
package com.qmth.sop.business.service.impl;
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
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.bean.params.ServiceRegionParam;
|
|
import com.qmth.sop.business.bean.params.ServiceRegionParam;
|
|
|
|
+import com.qmth.sop.business.bean.result.CrmServiceResult;
|
|
import com.qmth.sop.business.bean.result.ServiceRegionResult;
|
|
import com.qmth.sop.business.bean.result.ServiceRegionResult;
|
|
import com.qmth.sop.business.entity.SysUser;
|
|
import com.qmth.sop.business.entity.SysUser;
|
|
import com.qmth.sop.business.entity.TBService;
|
|
import com.qmth.sop.business.entity.TBService;
|
|
import com.qmth.sop.business.entity.TBServiceRegion;
|
|
import com.qmth.sop.business.entity.TBServiceRegion;
|
|
|
|
+import com.qmth.sop.business.entity.TBServiceRegionDetail;
|
|
import com.qmth.sop.business.mapper.TBServiceRegionMapper;
|
|
import com.qmth.sop.business.mapper.TBServiceRegionMapper;
|
|
import com.qmth.sop.business.service.*;
|
|
import com.qmth.sop.business.service.*;
|
|
import com.qmth.sop.common.contant.SystemConstant;
|
|
import com.qmth.sop.common.contant.SystemConstant;
|
|
import com.qmth.sop.common.enums.ExceptionResultEnum;
|
|
import com.qmth.sop.common.enums.ExceptionResultEnum;
|
|
import com.qmth.sop.common.enums.RoleTypeEnum;
|
|
import com.qmth.sop.common.enums.RoleTypeEnum;
|
|
import com.qmth.sop.common.enums.ServiceStatusEnum;
|
|
import com.qmth.sop.common.enums.ServiceStatusEnum;
|
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@@ -51,9 +55,50 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
|
|
}
|
|
}
|
|
IPage<ServiceRegionResult> page = this.baseMapper.findServiceRegionPage(new Page<>(pageNumber, pageSize), serviceUnitId, leadId, city, ServiceStatusEnum.CANCEL);
|
|
IPage<ServiceRegionResult> page = this.baseMapper.findServiceRegionPage(new Page<>(pageNumber, pageSize), serviceUnitId, leadId, city, ServiceStatusEnum.CANCEL);
|
|
List<ServiceRegionResult> records = page.getRecords();
|
|
List<ServiceRegionResult> records = page.getRecords();
|
|
- // 涉及的服务单元id集合
|
|
|
|
- List<Long> serviceUnitIdList = records.stream().map(ServiceRegionResult::getServiceUnitId).distinct().collect(Collectors.toList());
|
|
|
|
- // TODO: 2023/8/10 和派单关联
|
|
|
|
|
|
+ if (records.size() > 0) {
|
|
|
|
+ // 涉及的服务单元id集合
|
|
|
|
+ List<Long> serviceUnitIdList = records.stream().map(ServiceRegionResult::getServiceUnitId).distinct().collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ // 派单
|
|
|
|
+ List<CrmServiceResult> crmServiceResultList = tbCrmService.findCrmOrderByServiceIdList(serviceUnitIdList);
|
|
|
|
+ // 规划位置
|
|
|
|
+ List<Long> serviceRegionIdList = records.stream().map(ServiceRegionResult::getServiceRegionId).distinct().collect(Collectors.toList());
|
|
|
|
+ List<TBServiceRegionDetail> tbServiceRegionDetailList = tbServiceRegionDetailService.list(new QueryWrapper<TBServiceRegionDetail>().lambda().eq(TBServiceRegionDetail::getServiceRegionId, serviceRegionIdList));
|
|
|
|
+
|
|
|
|
+ for (ServiceRegionResult record : records) {
|
|
|
|
+ Long unitId = record.getServiceUnitId();
|
|
|
|
+ Long regionId = record.getServiceRegionId();
|
|
|
|
+
|
|
|
|
+ List<TBServiceRegionDetail> detailList = tbServiceRegionDetailList
|
|
|
|
+ .stream()
|
|
|
|
+ .filter(e -> regionId.equals(e.getServiceRegionId()))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ if (CollectionUtils.isNotEmpty(detailList)) {
|
|
|
|
+ int orderCount = 0;
|
|
|
|
+ StringBuilder regionInfo = new StringBuilder();
|
|
|
|
+ for (TBServiceRegionDetail detail : detailList) {
|
|
|
|
+ String detailProvince = detail.getProvince();
|
|
|
|
+ String detailCity = detail.getCity();
|
|
|
|
+ String regionInfoCell = detailProvince + detailCity;
|
|
|
|
+
|
|
|
|
+ List<CrmServiceResult> crmList = crmServiceResultList.stream()
|
|
|
|
+ .filter(e -> unitId.equals(e.getServiceUnitId())
|
|
|
|
+ && detailProvince.equals(e.getProvince())
|
|
|
|
+ && detailCity.equals(e.getCity()))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ int count = crmList.size();
|
|
|
|
+ regionInfoCell = regionInfoCell + "(" + count + ")";
|
|
|
|
+ orderCount = orderCount + count;
|
|
|
|
+ regionInfo.append(regionInfoCell).append("、");
|
|
|
|
+ }
|
|
|
|
+ if (regionInfo.length() > 0) {
|
|
|
|
+ regionInfo = new StringBuilder(regionInfo.substring(0, regionInfo.length() - 1));
|
|
|
|
+ }
|
|
|
|
+ record.setOrderCount(orderCount);
|
|
|
|
+ record.setRegionInfo(regionInfo.toString());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
return page;
|
|
return page;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -98,4 +143,15 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
|
|
tbServiceRegionDetailService.bindServiceRegionAreas(serviceRegionId, areaDtoList);
|
|
tbServiceRegionDetailService.bindServiceRegionAreas(serviceRegionId, areaDtoList);
|
|
return serviceRegionId;
|
|
return serviceRegionId;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Transactional
|
|
|
|
+ @Override
|
|
|
|
+ public void removeServiceRegion(Long serviceRegionId) {
|
|
|
|
+ TBServiceRegion tbServiceRegion = this.getById(serviceRegionId);
|
|
|
|
+ if (Objects.isNull(tbServiceRegion)) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("服务区域规划不存在");
|
|
|
|
+ }
|
|
|
|
+ tbServiceRegion.setEnable(false);
|
|
|
|
+ this.updateById(tbServiceRegion);
|
|
|
|
+ }
|
|
}
|
|
}
|