소스 검색

fix:大区规划修改限制

caozixuan 1 년 전
부모
커밋
d54a30b007
1개의 변경된 파일17개의 추가작업 그리고 3개의 파일을 삭제
  1. 17 3
      sop-business/src/main/java/com/qmth/sop/business/service/impl/TBServiceRegionServiceImpl.java

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

@@ -179,6 +179,19 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
             this.save(tbServiceRegion);
             serviceRegionId = tbServiceRegion.getId();
         } else {
+            // 修改大区判断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));
+                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));
+                }
+            }
+
+
             // 编辑
             List<TBServiceRegionDetail> tbServiceRegionDetailList = tbServiceRegionDetailService
                     .list(new QueryWrapper<TBServiceRegionDetail>()
@@ -199,8 +212,9 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
                 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() + ")" + "]不能修改区域");
+                    // 修改大区判断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()
@@ -284,7 +298,7 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
                 List<TBCrm> willDisposeCrmList = tbCrmService.list(new QueryWrapper<TBCrm>().lambda().in(TBCrm::getRegionDetailId, willDeleteRegionDetailIdList));
 
                 for (TBCrm tbCrm : willDisposeCrmList) {
-                    if (!CrmStatusEnum.UN_PUBLISH.equals(tbCrm.getStatus())){
+                    if (!CrmStatusEnum.UN_PUBLISH.equals(tbCrm.getStatus())) {
                         throw ExceptionResultEnum.ERROR.exception("该大区规划中存在已经发布的派单[" + tbCrm.getCrmNo() + "(" + tbCrm.getName() + ")" + "]不能修改区域");
                     }
                     // 之前派单有划定在服务单元 -> 解绑派单所有资源信息