Ver código fonte

Merge remote-tracking branch 'origin/dev_1.1.0' into dev_1.1.0

wangliang 1 ano atrás
pai
commit
6ddc81102a

+ 0 - 6
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingServiceImpl.java

@@ -43,9 +43,6 @@ import java.util.stream.Collectors;
 @Service
 public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> implements TBDingService {
 
-    @Resource
-    private SysRoleService sysRoleService;
-
     @Resource
     private TBCrmService tbCrmService;
 
@@ -98,9 +95,6 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
         if (Objects.isNull(sopCrmInfo)) {
             throw ExceptionResultEnum.ERROR.exception(String.format("未找到sop单号为[%s]的派单信息", sopNo));
         }
-
-        Long serviceUnitId = sopCrmInfo.getServiceUnitId();
-
         DingElementResult dingElementResult = this.findDingRule(userId, sopNo);
         if (Objects.nonNull(dingElementResult)) {
             Long userArchivesId = dingElementResult.getUserArchivesId();

+ 26 - 10
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingStatisticServiceImpl.java

@@ -4,22 +4,16 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.sop.business.bean.dto.UserDto;
 import com.qmth.sop.business.bean.result.CrmProjectResult;
 import com.qmth.sop.business.bean.result.UserArchivesResult;
-import com.qmth.sop.business.entity.TBCrm;
-import com.qmth.sop.business.entity.TBCrmDetail;
-import com.qmth.sop.business.entity.TBDing;
-import com.qmth.sop.business.entity.TBDingStatistic;
+import com.qmth.sop.business.entity.*;
 import com.qmth.sop.business.mapper.TBDingStatisticMapper;
 import com.qmth.sop.business.service.*;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.DingDateTypeEnum;
 import com.qmth.sop.common.enums.ExceptionResultEnum;
-import com.qmth.sop.common.enums.RoleTypeEnum;
 import com.qmth.sop.common.enums.SopRoleTypeEnum;
 import com.qmth.sop.common.util.DateDisposeUtils;
-import org.apache.commons.collections4.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -56,10 +50,10 @@ public class TBDingStatisticServiceImpl extends ServiceImpl<TBDingStatisticMappe
     private TBCrmService tbCrmService;
 
     @Resource
-    private SysUserRoleService sysUserRoleService;
+    private TBUserArchivesService tbUserArchivesService;
 
     @Resource
-    private TBUserArchivesService tbUserArchivesService;
+    private TBDingApplyService tbDingApplyService;
 
     @Override
     public TBDingStatistic findBySopNoAndUserArchivesId(String sopNo, Long userArchivesId) {
@@ -142,6 +136,7 @@ public class TBDingStatisticServiceImpl extends ServiceImpl<TBDingStatisticMappe
             if (Objects.isNull(tbUserArchives)) {
                 throw ExceptionResultEnum.ERROR.exception("人员档案不存在");
             }
+            Long userId = tbUserArchives.getUserId();
             // 打卡数据集合
             List<TBDing> dingList = datasource.stream()
                     .filter(e -> Objects.equals(sopNo, e.getSopNo()) && Objects.equals(userArchivesId, e.getUserArchivesId())).collect(Collectors.toList());
@@ -189,6 +184,25 @@ public class TBDingStatisticServiceImpl extends ServiceImpl<TBDingStatisticMappe
             int violationDays = Math.toIntExact(
                     dingList.stream().filter(e -> SystemConstant.isOneNull(e.getSignInTime(), e.getSignOutTime()))
                             .count());
+            // 考勤异常数
+            int dingExceptionCount = 0;
+            for (TBDing tbDing : dingList) {
+                Long signInTime = tbDing.getSignInTime();
+                Long signOutTime = tbDing.getSignOutTime();
+                if (!SystemConstant.longNotNull(signInTime)) {
+                    dingExceptionCount++;
+                }
+                if (!SystemConstant.longNotNull(signOutTime)) {
+                    dingExceptionCount++;
+                }
+            }
+
+            // 剩余补卡数
+            int remainCount = tbDingService.findRemainCount(userId, sopNo);
+
+            // 待处理异常数
+            int exceptionCount = tbDingApplyService.count(
+                    new QueryWrapper<TBDingApply>().lambda().eq(TBDingApply::getSopNo, sopNo).isNull(TBDingApply::getApprove));
 
             TBDingStatistic tbDingStatistic;
             tbDingStatistic = this.findBySopNoAndUserArchivesId(sopNo, userArchivesId);
@@ -220,7 +234,9 @@ public class TBDingStatisticServiceImpl extends ServiceImpl<TBDingStatisticMappe
             tbDingStatistic.setLegalHolidays(legalHolidays);
             tbDingStatistic.setWorkHours(workHours);
             tbDingStatistic.setViolationDays(violationDays);
-            // TODO: 2024/5/24 差考勤异常数、剩余补卡数、待处理异常数的统计 -czx
+            tbDingStatistic.setDingExceptionCount(dingExceptionCount);
+            tbDingStatistic.setRemainCount(remainCount);
+            tbDingStatistic.setExceptionCount(exceptionCount);
             tbDingStatisticList.add(tbDingStatistic);
         }
         this.saveOrUpdateBatch(tbDingStatisticList);

+ 0 - 17
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBServiceRegionDetailServiceImpl.java

@@ -41,21 +41,14 @@ public class TBServiceRegionDetailServiceImpl extends ServiceImpl<TBServiceRegio
     @Transactional
     @Override
     public void bindServiceRegionAreas(Long serviceRegionId, List<AreaDto> areaDtoList) {
-        TBServiceRegion db = tbServiceRegionService.getById(serviceRegionId);
-        Long serviceUnitId = db.getServiceId();
-        Long leaderId = db.getLeadId();
-
         // 删除之前绑定的区域
         this.remove(new QueryWrapper<TBServiceRegionDetail>().lambda().eq(TBServiceRegionDetail::getServiceRegionId, serviceRegionId));
 
-        List<TBCrm> willUpdateCrmList = new ArrayList<>();
         // 添加新绑定区域
         List<TBServiceRegionDetail> tbServiceRegionDetailList = areaDtoList.stream().flatMap(e -> {
             // 批量更新相关的派单的大区经理
             String province = e.getProvince();
             String city = e.getCity();
-            List<TBCrm> tbCrmList = tbCrmService.findByTBCrmListByServiceUnitIdAndAddress(serviceUnitId, province, city);
-            willUpdateCrmList.addAll(tbCrmList);
 
             TBServiceRegionDetail detail = new TBServiceRegionDetail();
             detail.setId(SystemConstant.getDbUuid());
@@ -68,16 +61,6 @@ public class TBServiceRegionDetailServiceImpl extends ServiceImpl<TBServiceRegio
             return Stream.of(detail);
         }).collect(Collectors.toList());
         this.saveBatch(tbServiceRegionDetailList);
-
-        if (CollectionUtils.isNotEmpty(willUpdateCrmList)) {
-            for (TBCrm tbCrm : willUpdateCrmList) {
-                ServiceRegionDetailResult result = this.findRegionDetail(tbCrm.getServiceId(), tbCrm.getCrmNo());
-                tbCrm.setLeadId(result.getLeadId());
-                tbCrm.setRegionId(result.getServiceRegionId());
-                tbCrm.setRegionDetailId(result.getServiceRegionDetailId());
-            }
-            tbCrmService.updateBatchById(willUpdateCrmList);
-        }
     }
 
     @Override

+ 58 - 86
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBServiceRegionServiceImpl.java

@@ -38,21 +38,31 @@ import java.util.stream.Stream;
  */
 @Service
 public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMapper, TBServiceRegion> implements TBServiceRegionService {
+
     @Resource
     private TBServiceService tbServiceService;
+
     @Resource
     private SysUserService sysUserService;
+
     @Resource
     private TBServiceRegionDetailService tbServiceRegionDetailService;
+
     @Resource
     private TBCrmService tbCrmService;
+
     @Resource
     private SysUserRoleService sysUserRoleService;
+
     @Resource
     private TBUserArchivesAllocationService tbUserArchivesAllocationService;
+
     @Resource
     private TBUserArchivesService tbUserArchivesService;
 
+    @Resource
+    private TBCrmDetailService tbCrmDetailService;
+
     @Override
     public IPage<ServiceRegionResult> findServiceRegionPage(Long serviceUnitId, String regionName, Long leadId, String city, Integer pageNumber, Integer pageSize) {
         if (regionName != null && regionName.length() > 0) {
@@ -64,7 +74,8 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
 
-        IPage<ServiceRegionResult> page = this.baseMapper.findServiceRegionPage(new Page<>(pageNumber, pageSize), serviceUnitId, regionName, leadId, city, ServiceStatusEnum.CANCEL, dpr);
+        IPage<ServiceRegionResult> page = this.baseMapper.findServiceRegionPage(new Page<>(pageNumber, pageSize),
+                serviceUnitId, regionName, leadId, city, ServiceStatusEnum.CANCEL, dpr);
         List<ServiceRegionResult> records = page.getRecords();
         if (records.size() > 0) {
             // 涉及的服务单元id集合
@@ -74,16 +85,15 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
             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().in(TBServiceRegionDetail::getServiceRegionId, serviceRegionIdList));
+            List<TBServiceRegionDetail> tbServiceRegionDetailList = tbServiceRegionDetailService.list(
+                    new QueryWrapper<TBServiceRegionDetail>().lambda().in(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());
+                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();
@@ -93,8 +103,7 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
                         String regionInfoCell = detailProvince + detailCity;
 
                         List<CrmServiceResult> crmList = crmServiceResultList.stream()
-                                .filter(e -> unitId.equals(e.getServiceUnitId())
-                                        && detailProvince.equals(e.getProvince())
+                                .filter(e -> unitId.equals(e.getServiceUnitId()) && detailProvince.equals(e.getProvince())
                                         && detailCity.equals(e.getCity()))
                                 .collect(Collectors.toList());
                         int count = crmList.size();
@@ -144,10 +153,8 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
             throw ExceptionResultEnum.ERROR.exception("服务单元不存在");
         }
 
-        List<TBServiceRegion> regionUnCheckList = this.list(new QueryWrapper<TBServiceRegion>()
-                .lambda()
-                .eq(TBServiceRegion::getServiceId, serviceUnitId)
-                .eq(TBServiceRegion::getRegionName, regionName));
+        List<TBServiceRegion> regionUnCheckList = this.list(
+                new QueryWrapper<TBServiceRegion>().lambda().eq(TBServiceRegion::getServiceId, serviceUnitId).eq(TBServiceRegion::getRegionName, regionName));
         if (CollectionUtils.isNotEmpty(regionUnCheckList)) {
             if (regionUnCheckList.size() > 1) {
                 throw ExceptionResultEnum.ERROR.exception("大区规划信息异常: 同一个服务单元下存在相同的大区名称");
@@ -192,59 +199,38 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
                 }
             }
 
-
             // 编辑
-            List<TBServiceRegionDetail> tbServiceRegionDetailList = tbServiceRegionDetailService
-                    .list(new QueryWrapper<TBServiceRegionDetail>()
-                            .lambda()
+            List<TBServiceRegionDetail> tbServiceRegionDetailList = tbServiceRegionDetailService.list(new QueryWrapper<TBServiceRegionDetail>().lambda()
                             .eq(TBServiceRegionDetail::getServiceRegionId, serviceRegionId));
 
             // 将要删除的服务区域规划
             List<Long> willDeleteRegionDetailIdList = tbServiceRegionDetailList.stream().filter(e -> {
-                        String key = e.getProvince() + sign + e.getCity();
-                        return !areaStrList.contains(key);
-                    }).map(TBServiceRegionDetail::getId)
-                    .distinct()
-                    .collect(Collectors.toList());
-
-            // TODO: 2024/5/29 服务区域更换的操作 
+                String key = e.getProvince() + sign + e.getCity();
+                return !areaStrList.contains(key);
+            }).map(TBServiceRegionDetail::getId).distinct().collect(Collectors.toList());
 
             // 清空之前派单绑定的资源信息
             if (CollectionUtils.isNotEmpty(willDeleteRegionDetailIdList)) {
-                List<TBCrm> willDisposeCrmList = tbCrmService.list(new QueryWrapper<TBCrm>().lambda().in(TBCrm::getRegionDetailId, willDeleteRegionDetailIdList));
+                List<TBCrm> willDisposeCrmList = tbCrmService.list(
+                        new QueryWrapper<TBCrm>().lambda().in(TBCrm::getRegionDetailId, willDeleteRegionDetailIdList));
 
                 for (TBCrm tbCrm : willDisposeCrmList) {
                     // 修改大区判断2 - 修改大区区域
                     if (!CrmStatusEnum.UN_PUBLISH.equals(tbCrm.getStatus())) {
-                        throw ExceptionResultEnum.ERROR.exception("该大区规划中存在已经发布或已完结的派单[" + tbCrm.getCrmNo() + "(" + tbCrm.getName() + ")" + "]不能修改区域");
-                    }
-                    // 之前派单有划定在服务单元 -> 解绑派单所有资源信息
-                    List<TBUserArchivesAllocation> dbAllocationList = tbUserArchivesAllocationService.list(new QueryWrapper<TBUserArchivesAllocation>().lambda()
-                            .eq(TBUserArchivesAllocation::getCrmNo, tbCrm.getCrmNo())
-                            .eq(TBUserArchivesAllocation::getServiceId, tbCrm.getServiceId()));
-
-                    if (CollectionUtils.isNotEmpty(dbAllocationList)) {
-                        // 释放工程师资源
-                        List<Long> archivesIdList = dbAllocationList.stream().map(TBUserArchivesAllocation::getArchivesId).distinct().collect(Collectors.toList());
-                        if (CollectionUtils.isNotEmpty(archivesIdList)) {
-                            UpdateWrapper<TBUserArchives> archivesUpdateWrapper = new UpdateWrapper<>();
-                            archivesUpdateWrapper.lambda()
-                                    .in(TBUserArchives::getId, archivesIdList)
-                                    .set(TBUserArchives::getStatus, UserArchivesStatusEnum.FREE);
-                            tbUserArchivesService.update(archivesUpdateWrapper);
-                        }
-                        // 删除之前的派单分配详情
-                        tbUserArchivesAllocationService.removeByIds(dbAllocationList.stream().map(TBUserArchivesAllocation::getId).distinct().collect(Collectors.toList()));
+                        throw ExceptionResultEnum.ERROR.exception(
+                                "该大区规划中存在已经发布或已完结的派单[" + tbCrm.getCrmNo() + "(" + tbCrm.getName() + ")" + "]不能修改区域");
                     }
+                    // 删除旧的分配
+                    tbUserArchivesAllocationService.remove(new QueryWrapper<TBUserArchivesAllocation>().lambda().eq(TBUserArchivesAllocation::getCrmNo, tbCrm.getCrmNo()));
+                    // 删除派单详情
+                    tbCrmDetailService.remove(
+                            new QueryWrapper<TBCrmDetail>().lambda().eq(TBCrmDetail::getCrmNo, tbCrm.getCrmNo()));
                 }
 
                 UpdateWrapper<TBCrm> crmUpdateWrapper = new UpdateWrapper<>();
-                crmUpdateWrapper.lambda()
-                        .in(TBCrm::getRegionDetailId, willDeleteRegionDetailIdList)
-                        .set(TBCrm::getRegionCoordinatorId, null)
-                        .set(TBCrm::getRegionId, null)
-                        .set(TBCrm::getRegionDetailId, null)
-                        .set(TBCrm::getLeadId, null);
+                crmUpdateWrapper.lambda().in(TBCrm::getRegionDetailId, willDeleteRegionDetailIdList)
+                        .set(TBCrm::getServiceId, null).set(TBCrm::getRegionCoordinatorId, null)
+                        .set(TBCrm::getRegionId, null).set(TBCrm::getRegionDetailId, null).set(TBCrm::getLeadId, null);
                 tbCrmService.update(crmUpdateWrapper);
             }
             tbServiceRegion.setId(serviceRegionId);
@@ -252,20 +238,17 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
         }
 
         // 同一个服务单元
-        List<Long> regionIdList = this.list(new QueryWrapper<TBServiceRegion>()
-                        .lambda()
-                        .eq(TBServiceRegion::getServiceId, serviceUnitId))
-                .stream()
-                .map(BaseEntity::getId)
-                .collect(Collectors.toList());
+        List<Long> regionIdList = this.list(
+                        new QueryWrapper<TBServiceRegion>().lambda().eq(TBServiceRegion::getServiceId, serviceUnitId)).stream()
+                .map(BaseEntity::getId).collect(Collectors.toList());
         regionIdList.remove(serviceRegionId);
         if (CollectionUtils.isNotEmpty(regionIdList)) {
-            List<TBServiceRegionDetail> detailList = tbServiceRegionDetailService.list(new QueryWrapper<TBServiceRegionDetail>()
-                    .lambda()
-                    .in(TBServiceRegionDetail::getServiceRegionId, regionIdList));
+            List<TBServiceRegionDetail> detailList = tbServiceRegionDetailService.list(
+                    new QueryWrapper<TBServiceRegionDetail>().lambda().in(TBServiceRegionDetail::getServiceRegionId, regionIdList));
             for (AreaDto areaDto : areaDtoList) {
                 if (detailList.stream().anyMatch(e -> e.getCity().equals(areaDto.getCity()) && e.getProvince().equals(areaDto.getProvince()))) {
-                    throw ExceptionResultEnum.ERROR.exception(String.format("服务单元[%s]已经存在[%s]省,[%s]市的区域规划", tbServiceUnit.getName(), areaDto.getProvince(), areaDto.getCity()));
+                    throw ExceptionResultEnum.ERROR.exception(
+                            String.format("服务单元[%s]已经存在[%s]省,[%s]市的区域规划", tbServiceUnit.getName(), areaDto.getProvince(), areaDto.getCity()));
                 }
             }
 
@@ -287,49 +270,43 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
             }
 
             // 删除派单规划详情
-            List<Long> willDeleteRegionDetailIdList = tbServiceRegionDetailService.list(new QueryWrapper<TBServiceRegionDetail>()
-                            .lambda()
-                            .eq(TBServiceRegionDetail::getServiceRegionId, tbServiceRegion.getId()))
-                    .stream()
-                    .map(TBServiceRegionDetail::getId)
-                    .distinct()
-                    .collect(Collectors.toList());
+            List<Long> willDeleteRegionDetailIdList = tbServiceRegionDetailService.list(
+                            new QueryWrapper<TBServiceRegionDetail>().lambda().eq(TBServiceRegionDetail::getServiceRegionId, tbServiceRegion.getId())).stream()
+                    .map(TBServiceRegionDetail::getId).distinct().collect(Collectors.toList());
 
             // 清空之前派单绑定的资源信息
             if (CollectionUtils.isNotEmpty(willDeleteRegionDetailIdList)) {
-                List<TBCrm> willDisposeCrmList = tbCrmService.list(new QueryWrapper<TBCrm>().lambda().in(TBCrm::getRegionDetailId, willDeleteRegionDetailIdList));
+                List<TBCrm> willDisposeCrmList = tbCrmService.list(
+                        new QueryWrapper<TBCrm>().lambda().in(TBCrm::getRegionDetailId, willDeleteRegionDetailIdList));
 
                 for (TBCrm tbCrm : willDisposeCrmList) {
                     if (!CrmStatusEnum.UN_PUBLISH.equals(tbCrm.getStatus())) {
-                        throw ExceptionResultEnum.ERROR.exception("该大区规划中存在已经发布的派单[" + tbCrm.getCrmNo() + "(" + tbCrm.getName() + ")" + "]不能修改区域");
+                        throw ExceptionResultEnum.ERROR.exception(
+                                "该大区规划中存在已经发布的派单[" + tbCrm.getCrmNo() + "(" + tbCrm.getName() + ")" + "]不能修改区域");
                     }
                     // 之前派单有划定在服务单元 -> 解绑派单所有资源信息
                     List<TBUserArchivesAllocation> dbAllocationList = tbUserArchivesAllocationService.list(new QueryWrapper<TBUserArchivesAllocation>().lambda()
-                            .eq(TBUserArchivesAllocation::getCrmNo, tbCrm.getCrmNo())
-                            .eq(TBUserArchivesAllocation::getServiceId, tbCrm.getServiceId()));
+                            .eq(TBUserArchivesAllocation::getCrmNo, tbCrm.getCrmNo()).eq(TBUserArchivesAllocation::getServiceId, tbCrm.getServiceId()));
 
                     if (CollectionUtils.isNotEmpty(dbAllocationList)) {
                         // 释放工程师资源
                         List<Long> archivesIdList = dbAllocationList.stream().map(TBUserArchivesAllocation::getArchivesId).distinct().collect(Collectors.toList());
                         if (CollectionUtils.isNotEmpty(archivesIdList)) {
                             UpdateWrapper<TBUserArchives> archivesUpdateWrapper = new UpdateWrapper<>();
-                            archivesUpdateWrapper.lambda()
-                                    .in(TBUserArchives::getId, archivesIdList)
+                            archivesUpdateWrapper.lambda().in(TBUserArchives::getId, archivesIdList)
                                     .set(TBUserArchives::getStatus, UserArchivesStatusEnum.FREE);
                             tbUserArchivesService.update(archivesUpdateWrapper);
                         }
                         // 删除之前的派单分配详情
-                        tbUserArchivesAllocationService.removeByIds(dbAllocationList.stream().map(TBUserArchivesAllocation::getId).distinct().collect(Collectors.toList()));
+                        tbUserArchivesAllocationService.removeByIds(
+                                dbAllocationList.stream().map(TBUserArchivesAllocation::getId).distinct().collect(Collectors.toList()));
                     }
                 }
 
                 UpdateWrapper<TBCrm> crmUpdateWrapper = new UpdateWrapper<>();
-                crmUpdateWrapper.lambda()
-                        .in(TBCrm::getRegionDetailId, willDeleteRegionDetailIdList)
-                        .set(TBCrm::getRegionCoordinatorId, null)
-                        .set(TBCrm::getRegionId, null)
-                        .set(TBCrm::getRegionDetailId, null)
-                        .set(TBCrm::getLeadId, null);
+                crmUpdateWrapper.lambda().in(TBCrm::getRegionDetailId, willDeleteRegionDetailIdList)
+                        .set(TBCrm::getRegionCoordinatorId, null).set(TBCrm::getRegionId, null)
+                        .set(TBCrm::getRegionDetailId, null).set(TBCrm::getLeadId, null);
                 tbCrmService.update(crmUpdateWrapper);
             }
 
@@ -342,13 +319,8 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
     @Override
     public List<SysUserBriefResult> findCanChooseLeader(Long serviceUnitId) {
         List<SysUserBriefResult> regionLeaderList = sysUserService.findUserListByRoleType(RoleTypeEnum.REGION_MANAGER);
-        List<Long> cantChooseLeader = this.list(new QueryWrapper<TBServiceRegion>()
-                        .lambda()
-                        .eq(TBServiceRegion::getServiceId, serviceUnitId)
-                        .eq(TBServiceRegion::getEnable, true))
-                .stream()
-                .map(TBServiceRegion::getLeadId)
-                .distinct()
+        List<Long> cantChooseLeader = this.list(
+                        new QueryWrapper<TBServiceRegion>().lambda().eq(TBServiceRegion::getServiceId, serviceUnitId).eq(TBServiceRegion::getEnable, true)).stream().map(TBServiceRegion::getLeadId).distinct()
                 .collect(Collectors.toList());
 
         return regionLeaderList.stream().filter(e -> !cantChooseLeader.contains(e.getId())).collect(Collectors.toList());