浏览代码

Merge remote-tracking branch 'origin/dev_v1.0.0' into dev_v1.0.0

wangliang 1 年之前
父节点
当前提交
dee49e8a1e

+ 1 - 1
sop-api/install/mysql/init/init.sql

@@ -1568,7 +1568,7 @@ INSERT INTO `sys_config` VALUES (32, NULL, 'baidu.face.compare.url', '百度人
 INSERT INTO `sys_config` VALUES (33, NULL, 'baidu.face.compare.score', '百度人脸识别人脸比对阈值', '70', NULL, 1, 1, 1, NULL, NULL, NULL);
 INSERT INTO `sys_config` VALUES (34, NULL, 'fxxk.app.auth.url', '纷享销客应用级授权接口', 'https://open.fxiaoke.com/cgi/corpAccessToken/get/V2', NULL, 1, 1, 1, NULL, NULL, NULL);
 INSERT INTO `sys_config` VALUES (35, NULL, 'fxxk.user.by.mobile.url', '纷享销客根据手机号查询员工接口', 'https://open.fxiaoke.com/cgi/user/getByMobile', NULL, 1, 1, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (36, NULL, 'fxxk.custom.query.url', '纷享销客查询自定义对象接口', 'https://openfxiaokecom/cgi/crm/custom/v2/data/query', NULL, 1, 1, 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` VALUES (36, NULL, 'fxxk.custom.query.url', '纷享销客查询自定义对象接口', 'https://open.fxiaoke.com/cgi/crm/custom/v2/data/query', NULL, 1, 1, 1, NULL, NULL, NULL);
 
 INSERT INTO `sys_privilege` VALUES (1, '系统管理', 'systemManage', 'MENU', NULL, 8, NULL, NULL, 1, 0, 1);
 INSERT INTO `sys_privilege` VALUES (2, '配置管理', 'configureManage', 'MENU', 1, 1, NULL, NULL, 1, 0, 1);

+ 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)})
     @OperationLog
     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 city,
                                         @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) {
 
-        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 = "服务区域规划-编辑")

+ 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 org.hibernate.validator.constraints.Range;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import java.util.List;
@@ -22,6 +23,10 @@ public class ServiceRegionParam {
     @ApiModelProperty("服务区域规划id")
     private Long serviceRegionId;
 
+    @ApiModelProperty("大区名称")
+    @NotBlank(message = "请提供大区名称")
+    private String regionName;
+
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty("服务单元id")
     @NotNull(message = "请提供服务单元")
@@ -54,6 +59,14 @@ public class ServiceRegionParam {
         this.serviceUnitId = serviceUnitId;
     }
 
+    public String getRegionName() {
+        return regionName;
+    }
+
+    public void setRegionName(String regionName) {
+        this.regionName = regionName;
+    }
+
     public Long getLeadId() {
         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 = "服务单元状态")
     private ServiceStatusEnum serviceUnitStatus;
 
+    @ApiModelProperty(value = "大区名称")
+    private String regionName;
+
     @ApiModelProperty(value = "大区经理")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long leadId;
@@ -77,6 +80,14 @@ public class ServiceRegionResult {
         this.serviceUnitStatus = serviceUnitStatus;
     }
 
+    public String getRegionName() {
+        return regionName;
+    }
+
+    public void setRegionName(String regionName) {
+        this.regionName = regionName;
+    }
+
     public Long getLeadId() {
         return leadId;
     }

+ 21 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/result/SysMessageWorkResult.java

@@ -55,6 +55,11 @@ public class SysMessageWorkResult implements Serializable {
     @ApiModelProperty(value = "已读状态")
     private Boolean readStatus;
 
+    @ApiModelProperty(value = "code")
+    private String code;
+
+    @ApiModelProperty(value = "obj_type")
+    private String objType;
 
     public long getId() {
         return id;
@@ -144,4 +149,20 @@ public class SysMessageWorkResult implements Serializable {
     public void setTitle(String title) {
         this.title = title;
     }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getObjType() {
+        return objType;
+    }
+
+    public void setObjType(String objType) {
+        this.objType = objType;
+    }
 }

+ 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)
     private Long serviceId;
 
+    @ApiModelProperty(value = "大区名称")
+    private String regionName;
+
     @ApiModelProperty(value = "大区经理id")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long leadId;
@@ -40,6 +43,14 @@ public class TBServiceRegion extends BaseEntity implements Serializable {
         this.serviceId = serviceId;
     }
 
+    public String getRegionName() {
+        return regionName;
+    }
+
+    public void setRegionName(String regionName) {
+        this.regionName = regionName;
+    }
+
     public Long getLeadId() {
         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 serviceUnitId 服务单元id
+     * @param regionName    大区名称
      * @param leadId        大区经理id
      * @param city          区域城市
      * @param dpr           数据权限
@@ -33,6 +34,7 @@ public interface TBServiceRegionMapper extends BaseMapper<TBServiceRegion> {
      */
     IPage<ServiceRegionResult> findServiceRegionPage(@Param("iPage") Page<SysLogResult> iPage,
                                                      @Param("serviceUnitId") Long serviceUnitId,
+                                                     @Param("regionName") String regionName,
                                                      @Param("leadId") Long leadId,
                                                      @Param("city") String city,
                                                      @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 regionName    大区名称
      * @param leadId        领导人id
      * @param city          城市
      * @param pageNumber    分页页数
      * @param pageSize      分页容量
      * @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;
 
     @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) {
             city = SystemConstant.translateSpecificSign(city);
         }
         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);
+        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集合
@@ -124,6 +127,7 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
     public Long editServiceRegion(ServiceRegionParam serviceRegionParam) {
         Long serviceRegionId = serviceRegionParam.getServiceRegionId();
         Long serviceUnitId = serviceRegionParam.getServiceUnitId();
+        String regionName = serviceRegionParam.getRegionName();
         Long leadId = serviceRegionParam.getLeadId();
         List<AreaDto> areaDtoList = serviceRegionParam.getAreaDtoList();
 
@@ -132,6 +136,21 @@ 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));
+        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);
         if (Objects.isNull(leader)) {
             throw ExceptionResultEnum.ERROR.exception("大区经理不存在");
@@ -143,6 +162,7 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
         TBServiceRegion tbServiceRegion = new TBServiceRegion();
         tbServiceRegion.setServiceId(serviceUnitId);
         tbServiceRegion.setLeadId(leadId);
+        tbServiceRegion.setRegionName(regionName);
 
         // 更新区域规划信息
         if (Objects.isNull(serviceRegionId)) {

+ 7 - 1
sop-business/src/main/resources/db/log/caozixuan_update_log.sql

@@ -340,7 +340,7 @@ INSERT INTO sys_config (id, config_key, config_name, config_value, enable, sort,
 INSERT INTO sys_config (id, config_key, config_name, config_value, enable, sort, create_id) VALUES ('44', 'fxxk.api.name.crm.detail', '纷享销客项目派单明细apiName', 'object_bs553__c', '1', '1', '1');
 INSERT INTO sys_config (id, config_key, config_name, config_value, enable, sort, create_id) VALUES ('45', 'fxxk.app.auth.url', '纷享销客应用级授权接口', 'https://open.fxiaoke.com/cgi/corpAccessToken/get/V2', '1', '1', '1');
 INSERT INTO sys_config (id, config_key, config_name, config_value, enable, sort, create_id) VALUES ('46', 'fxxk.user.by.mobile.url', '纷享销客根据手机号查询员工接口', 'https://open.fxiaoke.com/cgi/user/getByMobile', '1', '1', '1');
-INSERT INTO sys_config (id, config_key, config_name, config_value, enable, sort, create_id) VALUES ('47', 'fxxk.custom.query.url', '纷享销客查询自定义对象接口', 'https://openfxiaokecom/cgi/crm/custom/v2/data/query', '1', '1', '1');
+INSERT INTO sys_config (id, config_key, config_name, config_value, enable, sort, create_id) VALUES ('47', 'fxxk.custom.query.url', '纷享销客查询自定义对象接口', 'https://open.fxiaoke.com/cgi/crm/custom/v2/data/query', '1', '1', '1');
 
 -- 2023-10-12
 ALTER TABLE t_b_device_in_out
@@ -352,3 +352,9 @@ ALTER TABLE sys_device
 ALTER TABLE t_b_crm
     ADD COLUMN publish_user_id BIGINT NULL COMMENT '发布人id' AFTER status,
     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;
+;

+ 3 - 1
sop-business/src/main/resources/db/log/shudonghui_update_log.sql

@@ -376,6 +376,8 @@ INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1095, '二期接口', '/api/sop/schedule/progress', 'URL', 64, 32, 'SYS', NULL, 1, 1, 0);
 
 
-
+--2023.10.30
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1096, '违规登记跟进', '/api/admin/tb/violation/getByCode', 'URL', 48, 1, 'AUTH', NULL, 1, 1, 0);
+UPDATE `sys_privilege` SET `name` = '跟进', `url` = 'Follow', `type` = 'LINK', `parent_id` = 48, `sequence` = 1, `property` = 'AUTH', `related` = '1019,1020,1022,1096', `enable` = 1, `default_auth` = 0, `front_display` = 1 WHERE `id` = 206;
 
 

+ 2 - 0
sop-business/src/main/resources/mapper/SysMessageMapper.xml

@@ -67,11 +67,13 @@
     <select id="pageByTypes" resultType="com.qmth.sop.business.bean.result.SysMessageWorkResult">
         SELECT distinct
         m.id,
+        m.code,
         m.type message_type,
         m.receive_time,
         m.send_time,
         m.STATUS read_status,
         m.content,
+        m.obj_type,
         u.real_name form_user,
         c.NAME custom ,
         c.type custom_type ,

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

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