Browse Source

add:服务单元管理

caozixuan 1 year ago
parent
commit
fd25ee52c1

+ 2 - 0
sop-api/src/main/java/com/qmth/sop/server/api/SysController.java

@@ -539,6 +539,8 @@ public class SysController {
         }
         if (Objects.nonNull(status)) {
             queryWrapper.lambda().eq(TBService::getStatus, status);
+        } else {
+            queryWrapper.lambda().and(qw -> qw.eq(TBService::getStatus,ServiceStatusEnum.PUBLISH).or().eq(TBService::getStatus,ServiceStatusEnum.FINISH));
         }
         if (name != null && name.length() > 0) {
             queryWrapper.lambda().like(TBService::getName, SystemConstant.translateSpecificSign(name));

+ 1 - 1
sop-api/src/main/java/com/qmth/sop/server/api/TBServiceRegionController.java

@@ -73,4 +73,4 @@ public class TBServiceRegionController {
     public Result findCanChooseLeader(@ApiParam(value = "服务单元id") @RequestParam(required = false) String serviceUnitId) {
         return ResultUtil.ok(tbServiceRegionService.findCanChooseLeader(SystemConstant.convertIdToLong(serviceUnitId)));
     }
-}
+}

+ 4 - 1
sop-business/src/main/java/com/qmth/sop/business/mapper/TBServiceRegionMapper.java

@@ -3,6 +3,7 @@ package com.qmth.sop.business.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.sop.business.bean.dto.DataPermissionDto;
 import com.qmth.sop.business.bean.result.ServiceRegionResult;
 import com.qmth.sop.business.bean.result.SysLogResult;
 import com.qmth.sop.business.entity.TBServiceRegion;
@@ -27,13 +28,15 @@ public interface TBServiceRegionMapper extends BaseMapper<TBServiceRegion> {
      * @param serviceUnitId 服务单元id
      * @param leadId        大区经理id
      * @param city          区域城市
+     * @param dpr           数据权限
      * @return 分页查询结果
      */
     IPage<ServiceRegionResult> findServiceRegionPage(@Param("iPage") Page<SysLogResult> iPage,
                                                      @Param("serviceUnitId") Long serviceUnitId,
                                                      @Param("leadId") Long leadId,
                                                      @Param("city") String city,
-                                                     @Param("serviceStatus") ServiceStatusEnum serviceStatus);
+                                                     @Param("serviceStatus") ServiceStatusEnum serviceStatus,
+                                                     @Param("dpr") DataPermissionDto dpr);
 
     /**
      * 根据服务单元id和派单号查询大区经理

+ 6 - 2
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBCrmServiceImpl.java

@@ -99,12 +99,14 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
             }
         }
         List<TBCrm> tbCrmList = this.listByIds(crmIdList);
+        tbCrmList = tbCrmList.stream().peek(e -> e.setServiceId(serviceUnitId)).collect(Collectors.toList());
+        this.updateBatchById(tbCrmList);
+
         tbCrmList = tbCrmList.stream().peek(e -> {
             Long regionLeaderId = tbServiceRegionService.findRegionLeader(serviceUnitId, e.getCrmNo());
             if (Objects.nonNull(regionLeaderId)) {
                 e.setLeadId(regionLeaderId);
             }
-            e.setServiceId(serviceUnitId);
         }).collect(Collectors.toList());
         this.updateBatchById(tbCrmList);
     }
@@ -219,12 +221,14 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
     public boolean batchZone(long serviceId, long[] crmIds) {
         List<Long> crmIdList = Arrays.stream(crmIds).boxed().collect(Collectors.toList());
         List<TBCrm> tbCrmList = this.listByIds(crmIdList);
+        tbCrmList.forEach(e -> e.setServiceId(serviceId));
+        this.updateBatchById(tbCrmList);
+
         tbCrmList.forEach(e -> {
             Long regionLeaderId = tbServiceRegionService.findRegionLeader(serviceId, e.getCrmNo());
             if (Objects.nonNull(regionLeaderId)) {
                 e.setLeadId(regionLeaderId);
             }
-            e.setServiceId(serviceId);
         });
         return this.updateBatchById(tbCrmList);
     }

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

@@ -39,7 +39,7 @@ public class TBServiceRegionDetailServiceImpl extends ServiceImpl<TBServiceRegio
     public void bindServiceRegionAreas(Long serviceRegionId, List<AreaDto> areaDtoList) {
         TBServiceRegion db = tbServiceRegionService.getById(serviceRegionId);
         Long serviceUnitId = db.getServiceId();
-        Long leaderId = db.getServiceId();
+        Long leaderId = db.getLeadId();
 
         // 删除之前绑定的区域
         this.remove(new QueryWrapper<TBServiceRegionDetail>().lambda().eq(TBServiceRegionDetail::getServiceRegionId, serviceRegionId));

+ 12 - 2
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBServiceRegionServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.sop.business.bean.dto.AreaDto;
+import com.qmth.sop.business.bean.dto.DataPermissionDto;
 import com.qmth.sop.business.bean.params.ServiceRegionParam;
 import com.qmth.sop.business.bean.result.CrmServiceResult;
 import com.qmth.sop.business.bean.result.ServiceRegionResult;
@@ -18,6 +19,7 @@ import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.ExceptionResultEnum;
 import com.qmth.sop.common.enums.RoleTypeEnum;
 import com.qmth.sop.common.enums.ServiceStatusEnum;
+import com.qmth.sop.common.util.ServletUtil;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -54,7 +56,10 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
         if (city != null && city.length() > 0) {
             city = SystemConstant.translateSpecificSign(city);
         }
-        IPage<ServiceRegionResult> page = this.baseMapper.findServiceRegionPage(new Page<>(pageNumber, pageSize), serviceUnitId, leadId, city, ServiceStatusEnum.CANCEL);
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
+
+        IPage<ServiceRegionResult> page = this.baseMapper.findServiceRegionPage(new Page<>(pageNumber, pageSize), serviceUnitId, leadId, city, ServiceStatusEnum.CANCEL, dpr);
         List<ServiceRegionResult> records = page.getRecords();
         if (records.size() > 0) {
             // 涉及的服务单元id集合
@@ -157,6 +162,7 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
                     .eq(TBCrm::getServiceId, dbServiceUnitId)
                     .eq(TBCrm::getLeadId, dbLeadId)
                     .set(TBCrm::getLeadId, null);
+            tbCrmService.update(crmUpdateWrapper);
             this.updateById(tbServiceRegion);
         }
 
@@ -188,6 +194,7 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
     @Transactional
     @Override
     public void removeServiceRegion(Long serviceRegionId) {
+        // 物理删除
         TBServiceRegion tbServiceRegion = this.getById(serviceRegionId);
         if (Objects.isNull(tbServiceRegion)) {
             throw ExceptionResultEnum.ERROR.exception("服务区域规划不存在");
@@ -202,9 +209,12 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
                 .set(TBCrm::getLeadId, null);
         tbCrmService.update(crmUpdateWrapper);
 
+        // 删除派单规划详情
+        tbServiceRegionDetailService.remove(new QueryWrapper<TBServiceRegionDetail>().lambda().eq(TBServiceRegionDetail::getServiceRegionId, tbServiceRegion.getId()));
+
         // 删除派单规划
         tbServiceRegion.setEnable(false);
-        this.updateById(tbServiceRegion);
+        this.removeById(tbServiceRegion);
     }
 
     @Override

+ 5 - 0
sop-business/src/main/resources/mapper/TBServiceRegionMapper.xml

@@ -36,6 +36,11 @@
             <if test="serviceStatus != null">
                 AND tbs.status != #{serviceStatus}
             </if>
+            <if test="dpr != null">
+                <if test="dpr.hasBusiness">
+                    AND tbs.service_lead_id = #{dpr.requestUserId}
+                </if>
+            </if>
         </where>
         ORDER BY tbsr.create_time DESC
     </select>