소스 검색

add:
1.新需求 服务区域规划 新增字段大区名称

caozixuan 1 년 전
부모
커밋
2edc171b46

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

@@ -38,12 +38,13 @@ public class TBServiceRegionController {
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = ServiceRegionResult.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = ServiceRegionResult.class)})
     @OperationLog
     @OperationLog
     public Result findServiceRegionPage(@ApiParam(value = "服务单元id") @RequestParam(required = false) String serviceUnitId,
     public Result findServiceRegionPage(@ApiParam(value = "服务单元id") @RequestParam(required = false) String serviceUnitId,
+                                        @ApiParam(value = "大区名称") @RequestParam(required = false) String regionName,
                                         @ApiParam(value = "大区经理") @RequestParam(required = false) String leadId,
                                         @ApiParam(value = "大区经理") @RequestParam(required = false) String leadId,
                                         @ApiParam(value = "城市") @RequestParam(required = false) String city,
                                         @ApiParam(value = "城市") @RequestParam(required = false) String city,
                                         @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                         @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                         @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
                                         @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
 
 
-        return ResultUtil.ok(tbServiceRegionService.findServiceRegionPage(SystemConstant.convertIdToLong(serviceUnitId), SystemConstant.convertIdToLong(leadId), city, pageNumber, pageSize));
+        return ResultUtil.ok(tbServiceRegionService.findServiceRegionPage(SystemConstant.convertIdToLong(serviceUnitId), regionName, SystemConstant.convertIdToLong(leadId), city, pageNumber, pageSize));
     }
     }
 
 
     @ApiOperation(value = "服务区域规划-编辑")
     @ApiOperation(value = "服务区域规划-编辑")

+ 13 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/params/ServiceRegionParam.java

@@ -7,6 +7,7 @@ import com.qmth.sop.business.bean.dto.AreaDto;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Range;
 import org.hibernate.validator.constraints.Range;
 
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 import java.util.List;
 import java.util.List;
@@ -22,6 +23,10 @@ public class ServiceRegionParam {
     @ApiModelProperty("服务区域规划id")
     @ApiModelProperty("服务区域规划id")
     private Long serviceRegionId;
     private Long serviceRegionId;
 
 
+    @ApiModelProperty("大区名称")
+    @NotBlank(message = "请提供大区名称")
+    private String regionName;
+
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty("服务单元id")
     @ApiModelProperty("服务单元id")
     @NotNull(message = "请提供服务单元")
     @NotNull(message = "请提供服务单元")
@@ -54,6 +59,14 @@ public class ServiceRegionParam {
         this.serviceUnitId = serviceUnitId;
         this.serviceUnitId = serviceUnitId;
     }
     }
 
 
+    public String getRegionName() {
+        return regionName;
+    }
+
+    public void setRegionName(String regionName) {
+        this.regionName = regionName;
+    }
+
     public Long getLeadId() {
     public Long getLeadId() {
         return leadId;
         return leadId;
     }
     }

+ 11 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/result/ServiceRegionResult.java

@@ -28,6 +28,9 @@ public class ServiceRegionResult {
     @ApiModelProperty(value = "服务单元状态")
     @ApiModelProperty(value = "服务单元状态")
     private ServiceStatusEnum serviceUnitStatus;
     private ServiceStatusEnum serviceUnitStatus;
 
 
+    @ApiModelProperty(value = "大区名称")
+    private String regionName;
+
     @ApiModelProperty(value = "大区经理")
     @ApiModelProperty(value = "大区经理")
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
     private Long leadId;
     private Long leadId;
@@ -77,6 +80,14 @@ public class ServiceRegionResult {
         this.serviceUnitStatus = serviceUnitStatus;
         this.serviceUnitStatus = serviceUnitStatus;
     }
     }
 
 
+    public String getRegionName() {
+        return regionName;
+    }
+
+    public void setRegionName(String regionName) {
+        this.regionName = regionName;
+    }
+
     public Long getLeadId() {
     public Long getLeadId() {
         return leadId;
         return leadId;
     }
     }

+ 11 - 0
sop-business/src/main/java/com/qmth/sop/business/entity/TBServiceRegion.java

@@ -25,6 +25,9 @@ public class TBServiceRegion extends BaseEntity implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
     private Long serviceId;
     private Long serviceId;
 
 
+    @ApiModelProperty(value = "大区名称")
+    private String regionName;
+
     @ApiModelProperty(value = "大区经理id")
     @ApiModelProperty(value = "大区经理id")
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
     private Long leadId;
     private Long leadId;
@@ -40,6 +43,14 @@ public class TBServiceRegion extends BaseEntity implements Serializable {
         this.serviceId = serviceId;
         this.serviceId = serviceId;
     }
     }
 
 
+    public String getRegionName() {
+        return regionName;
+    }
+
+    public void setRegionName(String regionName) {
+        this.regionName = regionName;
+    }
+
     public Long getLeadId() {
     public Long getLeadId() {
         return leadId;
         return leadId;
     }
     }

+ 2 - 0
sop-business/src/main/java/com/qmth/sop/business/mapper/TBServiceRegionMapper.java

@@ -26,6 +26,7 @@ public interface TBServiceRegionMapper extends BaseMapper<TBServiceRegion> {
      *
      *
      * @param iPage         分页参数
      * @param iPage         分页参数
      * @param serviceUnitId 服务单元id
      * @param serviceUnitId 服务单元id
+     * @param regionName    大区名称
      * @param leadId        大区经理id
      * @param leadId        大区经理id
      * @param city          区域城市
      * @param city          区域城市
      * @param dpr           数据权限
      * @param dpr           数据权限
@@ -33,6 +34,7 @@ public interface TBServiceRegionMapper extends BaseMapper<TBServiceRegion> {
      */
      */
     IPage<ServiceRegionResult> findServiceRegionPage(@Param("iPage") Page<SysLogResult> iPage,
     IPage<ServiceRegionResult> findServiceRegionPage(@Param("iPage") Page<SysLogResult> iPage,
                                                      @Param("serviceUnitId") Long serviceUnitId,
                                                      @Param("serviceUnitId") Long serviceUnitId,
+                                                     @Param("regionName") String regionName,
                                                      @Param("leadId") Long leadId,
                                                      @Param("leadId") Long leadId,
                                                      @Param("city") String city,
                                                      @Param("city") String city,
                                                      @Param("serviceStatus") ServiceStatusEnum serviceStatus,
                                                      @Param("serviceStatus") ServiceStatusEnum serviceStatus,

+ 2 - 1
sop-business/src/main/java/com/qmth/sop/business/service/TBServiceRegionService.java

@@ -25,13 +25,14 @@ public interface TBServiceRegionService extends IService<TBServiceRegion> {
      * 根据条件分页查询服务区域规划结果
      * 根据条件分页查询服务区域规划结果
      *
      *
      * @param serviceUnitId 服务单元id
      * @param serviceUnitId 服务单元id
+     * @param regionName    大区名称
      * @param leadId        领导人id
      * @param leadId        领导人id
      * @param city          城市
      * @param city          城市
      * @param pageNumber    分页页数
      * @param pageNumber    分页页数
      * @param pageSize      分页容量
      * @param pageSize      分页容量
      * @return 分页查询结果
      * @return 分页查询结果
      */
      */
-    IPage<ServiceRegionResult> findServiceRegionPage(Long serviceUnitId, Long leadId, String city, Integer pageNumber, Integer pageSize);
+    IPage<ServiceRegionResult> findServiceRegionPage(Long serviceUnitId, String regionName, Long leadId, String city, Integer pageNumber, Integer pageSize);
 
 
     /**
     /**
      * 服务区域规划编辑
      * 服务区域规划编辑

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

@@ -52,14 +52,17 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
     private SysUserRoleService sysUserRoleService;
     private SysUserRoleService sysUserRoleService;
 
 
     @Override
     @Override
-    public IPage<ServiceRegionResult> findServiceRegionPage(Long serviceUnitId, Long leadId, String city, Integer pageNumber, Integer pageSize) {
+    public IPage<ServiceRegionResult> findServiceRegionPage(Long serviceUnitId, String regionName, Long leadId, String city, Integer pageNumber, Integer pageSize) {
+        if (regionName != null && regionName.length() > 0) {
+            regionName = SystemConstant.translateSpecificSign(regionName);
+        }
         if (city != null && city.length() > 0) {
         if (city != null && city.length() > 0) {
             city = SystemConstant.translateSpecificSign(city);
             city = SystemConstant.translateSpecificSign(city);
         }
         }
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
 
 
-        IPage<ServiceRegionResult> page = this.baseMapper.findServiceRegionPage(new Page<>(pageNumber, pageSize), serviceUnitId, 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();
         List<ServiceRegionResult> records = page.getRecords();
         if (records.size() > 0) {
         if (records.size() > 0) {
             // 涉及的服务单元id集合
             // 涉及的服务单元id集合
@@ -124,6 +127,7 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
     public Long editServiceRegion(ServiceRegionParam serviceRegionParam) {
     public Long editServiceRegion(ServiceRegionParam serviceRegionParam) {
         Long serviceRegionId = serviceRegionParam.getServiceRegionId();
         Long serviceRegionId = serviceRegionParam.getServiceRegionId();
         Long serviceUnitId = serviceRegionParam.getServiceUnitId();
         Long serviceUnitId = serviceRegionParam.getServiceUnitId();
+        String regionName = serviceRegionParam.getRegionName();
         Long leadId = serviceRegionParam.getLeadId();
         Long leadId = serviceRegionParam.getLeadId();
         List<AreaDto> areaDtoList = serviceRegionParam.getAreaDtoList();
         List<AreaDto> areaDtoList = serviceRegionParam.getAreaDtoList();
 
 
@@ -132,6 +136,21 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
             throw ExceptionResultEnum.ERROR.exception("服务单元不存在");
             throw ExceptionResultEnum.ERROR.exception("服务单元不存在");
         }
         }
 
 
+        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("大区规划信息异常: 同一个服务单元下存在相同的大区名称");
+            } else {
+                TBServiceRegion regionCheck = regionUnCheckList.get(0);
+                if (!Objects.equals(regionCheck.getId(), serviceRegionParam.getServiceRegionId())) {
+                    throw ExceptionResultEnum.ERROR.exception(String.format("该服务单元已存在大区名称[%s]", regionCheck.getRegionName()));
+                }
+            }
+        }
+
         SysUser leader = sysUserService.getById(leadId);
         SysUser leader = sysUserService.getById(leadId);
         if (Objects.isNull(leader)) {
         if (Objects.isNull(leader)) {
             throw ExceptionResultEnum.ERROR.exception("大区经理不存在");
             throw ExceptionResultEnum.ERROR.exception("大区经理不存在");
@@ -143,6 +162,7 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
         TBServiceRegion tbServiceRegion = new TBServiceRegion();
         TBServiceRegion tbServiceRegion = new TBServiceRegion();
         tbServiceRegion.setServiceId(serviceUnitId);
         tbServiceRegion.setServiceId(serviceUnitId);
         tbServiceRegion.setLeadId(leadId);
         tbServiceRegion.setLeadId(leadId);
+        tbServiceRegion.setRegionName(regionName);
 
 
         // 更新区域规划信息
         // 更新区域规划信息
         if (Objects.isNull(serviceRegionId)) {
         if (Objects.isNull(serviceRegionId)) {

+ 6 - 0
sop-business/src/main/resources/db/log/caozixuan_update_log.sql

@@ -352,3 +352,9 @@ ALTER TABLE sys_device
 ALTER TABLE t_b_crm
 ALTER TABLE t_b_crm
     ADD COLUMN publish_user_id BIGINT NULL COMMENT '发布人id' AFTER status,
     ADD COLUMN publish_user_id BIGINT NULL COMMENT '发布人id' AFTER status,
     ADD COLUMN publish_time BIGINT NULL COMMENT '发布时间' AFTER publish_user_id;
     ADD COLUMN publish_time BIGINT NULL COMMENT '发布时间' AFTER publish_user_id;
+-- 2023-10-30
+ALTER TABLE t_b_service_region
+    ADD COLUMN region_name VARCHAR(100) NOT NULL COMMENT '大区名称' AFTER service_id;
+ALTER TABLE t_b_service_region
+    ADD UNIQUE INDEX service_region_UN (service_id ASC, region_name ASC) VISIBLE;
+;

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

@@ -7,6 +7,7 @@
             tbsr.id AS serviceRegionId,
             tbsr.id AS serviceRegionId,
             tbs.id AS serviceUnitId,
             tbs.id AS serviceUnitId,
             tbs.name AS serviceUnitName,
             tbs.name AS serviceUnitName,
+            tbsr.region_name AS regionName,
             leader.id AS leadId,
             leader.id AS leadId,
             leader.real_name AS leadName,
             leader.real_name AS leadName,
             tbs.status AS serviceUnitStatus
             tbs.status AS serviceUnitStatus
@@ -22,6 +23,9 @@
             <if test="serviceUnitId != null">
             <if test="serviceUnitId != null">
                 AND tbsr.service_id = #{serviceUnitId}
                 AND tbsr.service_id = #{serviceUnitId}
             </if>
             </if>
+            <if test="regionName != null and regionName != ''">
+                AND tbsr.region_name LIKE CONCAT('%',#{regionName},'%')
+            </if>
             <if test="leadId != null">
             <if test="leadId != null">
                 AND tbsr.lead_id = #{leadId}
                 AND tbsr.lead_id = #{leadId}
             </if>
             </if>