caozixuan 1 年之前
父节点
当前提交
e399dd5645

+ 8 - 3
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBCrmServiceImpl.java

@@ -163,6 +163,9 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
 
         // 删除旧的分配
         tbUserArchivesAllocationService.remove(new QueryWrapper<TBUserArchivesAllocation>().lambda().eq(TBUserArchivesAllocation::getCrmNo, tbCrm.getCrmNo()));
+        // 删除派单详情
+        tbCrmDetailService.remove(new QueryWrapper<TBCrmDetail>().lambda().eq(TBCrmDetail::getCrmNo, tbCrm.getCrmNo()));
+
         if (canEdit) {
             // 可以更改
             switch (leadType) {
@@ -193,10 +196,10 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
                 // 直接指定大区经理
                 UpdateWrapper<TBCrm> personUpdateWrapper = new UpdateWrapper<>();
                 personUpdateWrapper.lambda().set(TBCrm::getServiceId, serviceUnitId).set(TBCrm::getLeadType, leadType)
-                        .set(TBCrm::getLeadId, leadId).set(TBCrm::getUpdateId, requestUser.getId())
+                        .set(TBCrm::getLeadId, leadId).set(TBCrm::getRegionId, null).set(TBCrm::getRegionDetailId, null)
+                        .set(TBCrm::getUpdateId, requestUser.getId())
                         .set(TBCrm::getUpdateTime, System.currentTimeMillis());
-                if ((Objects.isNull(defaultLeadType) || !SystemConstant.longNotNull(defaultLeadId)) || (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 if (CollectionUtils.isNotEmpty(similarCrmIdList)) {
@@ -240,6 +243,8 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
         }
         // 删除旧的分配
         tbUserArchivesAllocationService.remove(new QueryWrapper<TBUserArchivesAllocation>().lambda().eq(TBUserArchivesAllocation::getCrmNo, tbCrm.getCrmNo()));
+        // 删除派单详情
+        tbCrmDetailService.remove(new QueryWrapper<TBCrmDetail>().lambda().eq(TBCrmDetail::getCrmNo, tbCrm.getCrmNo()));
 
         UpdateWrapper<TBCrm> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().eq(TBCrm::getId, crmId).set(TBCrm::getServiceId, null).set(TBCrm::getLeadType, null)

+ 2 - 14
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingStatisticServiceImpl.java

@@ -69,12 +69,6 @@ public class TBDingStatisticServiceImpl extends ServiceImpl<TBDingStatisticMappe
     @Transactional
     @Override
     public void buildDingStatistic(String sopNo) {
-        List<RoleTypeEnum> roleTypeList = new ArrayList<>();
-        roleTypeList.add(RoleTypeEnum.ADMIN);
-        List<UserDto> userDtoList = sysUserRoleService.userListByRoleType(roleTypeList);
-        if (CollectionUtils.isEmpty(userDtoList)) {
-            throw ExceptionResultEnum.ERROR.exception("缺少系统管理员用户");
-        }
         // 统计前一天的数据
         Long currentEarliestTime = DateDisposeUtils.getEarliestTime(System.currentTimeMillis());
         List<TBDing> datasource = tbDingService.list(new QueryWrapper<TBDing>().lambda().eq(TBDing::getSopNo, sopNo)).stream().filter(e -> {
@@ -88,7 +82,7 @@ public class TBDingStatisticServiceImpl extends ServiceImpl<TBDingStatisticMappe
                 return true;
             }
         }).collect(Collectors.toList());
-        this.buildDingStatisticBySop(sopNo, datasource, userDtoList.get(0).getId());
+        this.buildDingStatisticBySop(sopNo, datasource, -1L);
     }
 
     @Transactional
@@ -109,15 +103,9 @@ public class TBDingStatisticServiceImpl extends ServiceImpl<TBDingStatisticMappe
             }
         }).collect(Collectors.toList());
         List<String> sopNoList = datasource.stream().map(TBDing::getSopNo).distinct().collect(Collectors.toList());
-        List<RoleTypeEnum> roleTypeList = new ArrayList<>();
-        roleTypeList.add(RoleTypeEnum.ADMIN);
-        List<UserDto> userDtoList = sysUserRoleService.userListByRoleType(roleTypeList);
-        if (CollectionUtils.isEmpty(userDtoList)) {
-            throw ExceptionResultEnum.ERROR.exception("缺少系统管理员用户");
-        }
         for (String sopNo : sopNoList) {
             List<TBDing> sopDingInfo = datasource.stream().filter(e -> e.getSopNo().equals(sopNo)).collect(Collectors.toList());
-            this.buildDingStatisticBySop(sopNo, sopDingInfo, userDtoList.get(0).getId());
+            this.buildDingStatisticBySop(sopNo, sopDingInfo, -1L);
         }
     }
 

+ 5 - 3
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBServiceRegionServiceImpl.java

@@ -182,9 +182,10 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
             // 修改大区判断1 - 修改大区经理
             TBServiceRegion dbServiceRegion = this.getById(serviceRegionId);
             if (!Objects.equals(leadId, dbServiceRegion.getLeadId())) {
-                List<TBCrm> alreadyPublished = tbCrmService.list(new QueryWrapper<TBCrm>().lambda()
-                        .eq(TBCrm::getEnable, true)
-                        .ne(TBCrm::getStatus, CrmStatusEnum.UN_PUBLISH));
+                List<TBCrm> alreadyPublished = tbCrmService.list(
+                        new QueryWrapper<TBCrm>().lambda().eq(TBCrm::getEnable, true)
+                                .eq(TBCrm::getLeadType, RegionManagerSelectedTypeEnum.BY_AREA)
+                                .eq(TBCrm::getRegionId, dbServiceRegion.getId()).ne(TBCrm::getStatus, CrmStatusEnum.UN_PUBLISH));
                 if (alreadyPublished.size() > 0) {
                     String s = alreadyPublished.stream().map(e -> e.getCrmNo() + "(" + e.getName() + ")").collect(Collectors.joining(","));
                     throw ExceptionResultEnum.ERROR.exception(String.format("该大区规划中存在已经发布或已完结的派单[%s],不能修改大区经理", s));
@@ -206,6 +207,7 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
                     .distinct()
                     .collect(Collectors.toList());
 
+            // TODO: 2024/5/29 服务区域更换的操作 
 
             // 清空之前派单绑定的资源信息
             if (CollectionUtils.isNotEmpty(willDeleteRegionDetailIdList)) {

+ 1 - 1
sop-task/src/main/java/com/qmth/sop/task/job/DingStatisticJob.java

@@ -19,7 +19,7 @@ public class DingStatisticJob extends QuartzJobBean {
     @Override
     protected void executeInternal(JobExecutionContext context) {
         try {
-            jobService.autoAddDingRecord();
+            jobService.dingStatistic();
         } catch (Exception e) {
             throw ExceptionResultEnum.ERROR.exception(e.getMessage());
         }