Parcourir la source

1.控制人代理人优化
2.控制台数据权限

wuhp il y a 2 ans
Parent
commit
4ba7ba8650

+ 4 - 1
src/main/java/com/ydtech/modules/admin/dao/KztDataPermissionMapper.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.po.KztDataPermission;
 import com.ydtech.modules.admin.model.vo.KztDataPermissionVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 
 /**
@@ -12,6 +14,7 @@ import com.ydtech.modules.admin.model.vo.KztDataPermissionVo;
 * @createDate 2024-08-20 11:56:29
 * @Entity generator.domain.KztDataPermission
 */
+@Mapper
 public interface KztDataPermissionMapper extends BaseMapper<KztDataPermission> {
     /**
      *  @version
@@ -19,7 +22,7 @@ public interface KztDataPermissionMapper extends BaseMapper<KztDataPermission> {
      *  @Date: 2024/9/4 16:18
      *  @Description: 分页显示数据
      */
-    Page<KztDataPermission> queryPage(Page<KztDataPermission> page, KztDataPermissionVo kztDataPermissionVo);
+    Page<KztDataPermission> queryPage(@Param("page") Page<KztDataPermission> page, @Param("vo") KztDataPermissionVo kztDataPermissionVo);
 }
 
 

+ 5 - 0
src/main/java/com/ydtech/modules/admin/model/report/profitAnalysis/ProfitAnalysisQueryDto.java

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  *  @version
  *  @author: hxl
@@ -34,4 +36,7 @@ public class ProfitAnalysisQueryDto {
     @ApiModelProperty("时间天数")
     private  String days;
 
+    @ApiModelProperty("部门ids")
+    private List<String> deptIds;
+
 }

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/vo/HouLinePersonnelReportVo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @description: 人员统计
@@ -26,5 +27,7 @@ public class HouLinePersonnelReportVo implements Serializable {
 
     @ApiModelProperty(value = "门店机构id")
     private String houseId;
+    @ApiModelProperty(value = "机构集合")
+    private List<String> deptIds;
 
 }

+ 5 - 0
src/main/java/com/ydtech/modules/admin/model/vo/KztDataPermissionVo.java

@@ -19,4 +19,9 @@ public class KztDataPermissionVo {
 
     @ApiModelProperty(value = "每页数据量")
     private Integer pageSize = 10;
+
+
+    @ApiModelProperty(value = "路径")
+    private String url;
+
 }

+ 4 - 2
src/main/java/com/ydtech/modules/admin/service/impl/UserReportServiceImpl.java

@@ -628,9 +628,9 @@ public class UserReportServiceImpl implements UserReportService {
                         List<String>  levelList =new ArrayList<>();
                         if(users!=null && users.size()>0){
                             for(SysUserTeamDto vo :users){
-                                if("1".equals(vo.getStatus())){
+                                if("1".equals(vo.getStatus().toString())){
                                     rzCount++;
-                                }else if("2".equals(vo.getStatus())){
+                                }else if("2".equals(vo.getStatus().toString())){
                                     wrzCount++;
                                 }
                             }
@@ -646,6 +646,8 @@ public class UserReportServiceImpl implements UserReportService {
                         dto.setIsFactorVerify(rzCount+"");
                         dto.setIsNotFactorVerify(wrzCount+"");
                         dto.setTotalManpower(levelList.size()+"");
+                        levelList.clear();
+                        levelList.add(dto.getUserId());
                         TaskStatisticsDto taskStatisticsDto = insAreaCompanyMapper.numberQuotationsByUserIds(levelList,qxFrontlineAgentVo.getMonth());
                         if(taskStatisticsDto ==null){
                             dto.setOrderNumber("0");

+ 69 - 0
src/main/java/com/ydtech/modules/admin/utils/KztGetDeptUtils.java

@@ -0,0 +1,69 @@
+package com.ydtech.modules.admin.utils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ydtech.modules.admin.dao.KztDataPermissionMapper;
+import com.ydtech.modules.admin.dao.SysUserDeptRelationshipMapper;
+import com.ydtech.modules.admin.model.po.KztDataPermission;
+import com.ydtech.modules.admin.model.po.SysUserDeptRelationship;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.utils.StringUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+public class KztGetDeptUtils {
+
+
+    @Autowired
+    private SysUserDeptRelationshipMapper sysUserDeptRelationshipMapper;
+    @Autowired
+    private KztDataPermissionMapper kztDataPermissionMapper;
+
+
+
+    public List<String> KztGetDeptIds(String requestURL) {
+        try {
+            ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
+            SysUserDeptRelationshipMapper bean = applicationContext.getBean(SysUserDeptRelationshipMapper.class);
+            ApplicationContext applicationContext2 = SpringContextUtil.getApplicationContext();
+            KztDataPermissionMapper bean1 = applicationContext2.getBean(KztDataPermissionMapper.class);
+
+
+            URI uri = new URI(requestURL);
+            String path = uri.getPath();
+            QueryWrapper<KztDataPermission> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("url", path);
+
+            KztDataPermission kztDataPermissions = bean1.selectOne(queryWrapper);
+            String userId = BaseController.getUserId();
+            if (ObjectUtils.isNotEmpty(kztDataPermissions)) {
+                QueryWrapper<SysUserDeptRelationship> relationshipQueryWrapper = new QueryWrapper<>();//用户权限关系表
+                relationshipQueryWrapper.eq("user_id", userId);
+                List<SysUserDeptRelationship> sysUserDeptRelationships = bean.selectList(relationshipQueryWrapper);
+                if (sysUserDeptRelationships.isEmpty()) {
+                    return new ArrayList<>();
+                }
+                String dataPermissionId = kztDataPermissions.getDataPermissionId();
+                if (StringUtils.isNotEmpty(dataPermissionId)) {
+                    if ("1".equals(dataPermissionId)) {
+                        List<String> collect = sysUserDeptRelationships.stream().map(SysUserDeptRelationship::getDeptId).collect(Collectors.toList());
+                        return collect;
+                    }
+                }
+            }
+        } catch (URISyntaxException e) {
+            e.printStackTrace();
+        }
+        return new ArrayList<>();
+    }
+}

+ 34 - 0
src/main/java/com/ydtech/modules/admin/utils/SpringContextUtil.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.admin.utils;
+
+
+import lombok.Getter;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+@Component
+public class SpringContextUtil implements ApplicationContextAware{
+    @Getter
+    private static ApplicationContext applicationContext;
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        if (SpringContextUtil.applicationContext == null) {
+            SpringContextUtil.applicationContext = applicationContext;
+        }
+    }
+
+    public static Object getBean(String name){
+        return getApplicationContext().getBean(name);
+    }
+
+    public static <T>T getBean(Class<T> clazz){
+        return getApplicationContext().getBean(clazz);
+    }
+
+    public static <T>T getBean(String name, Class<T> clazz){
+        return getApplicationContext().getBean(name,clazz);
+    }
+
+
+}

+ 6 - 0
src/main/resources/mapper/modules/admin/KztDataPermissionMapper.xml

@@ -28,5 +28,11 @@
             create_time,
             url
          from  kzt_data_permission
+         <where>
+             1=1
+         <if test="vo.url != null  and  vo.url !=''">
+          and    url=#{vo.url}
+         </if>
+         </where>
     </select>
 </mapper>

+ 13 - 7
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -1296,15 +1296,15 @@
 
     <select id="queryHXReportDataNew" resultType="java.util.HashMap">
         SELECT
-            sum(info.salary) as  "salary",
-            sum(case when info.sex ='M' THEN 1 ELSE 0 END ) as "manSex",
-            sum(case when info.sex ='F'  THEN 1 ELSE 0 END) as "femaleSex",
+            IFNULL(sum(info.salary),0) as  "salary",
+            IFNULL(sum(case when info.sex ='M' THEN 1 ELSE 0 END ),0) as "manSex",
+            IFNULL(sum(case when info.sex ='F'  THEN 1 ELSE 0 END),0) as "femaleSex",
             IFNULL(sum(case when info.sex ='M' THEN 1 ELSE 0 END ) / (sum(case when info.sex ='M' THEN 1 ELSE 0 END ) +  sum(case when info.sex ='F'  THEN 1 ELSE 0 END)),0) as "manProportion",
             IFNULL(sum(case when info.sex ='F'  THEN 1 ELSE 0 END) / (sum(case when info.sex ='M' THEN 1 ELSE 0 END ) +  sum(case when info.sex ='F'  THEN 1 ELSE 0 END)),0) as "femaleProportion",
-            sum(case when info.is_speciality ='1'  THEN 1 ELSE 0 END) as "computerSpecialityPersion",
-            sum(case when info.is_speciality ='0'  THEN 1 ELSE 0 END) as "otherSpecialityPersion",
-            sum(case when info.is_speciality ='1'  THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1'  THEN 1 ELSE 0 END) + sum(case when info.is_speciality ='0'  THEN 1 ELSE 0 END)) as "computerSpecialityProportion",
-            sum(case when info.is_speciality ='0'  THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1'  THEN 1 ELSE 0 END) + sum(case when info.is_speciality ='0'  THEN 1 ELSE 0 END))  as "otherSpecialityProportion"
+            IFNULL(sum(case when info.is_speciality ='1'  THEN 1 ELSE 0 END),0) as "computerSpecialityPersion",
+            IFNULL(sum(case when info.is_speciality ='0'  THEN 1 ELSE 0 END),0) as "otherSpecialityPersion",
+            IFNULL(sum(case when info.is_speciality ='1'  THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1'  THEN 1 ELSE 0 END) + sum(case when info.is_speciality ='0'  THEN 1 ELSE 0 END)),0) as "computerSpecialityProportion",
+            IFNULL(sum(case when info.is_speciality ='0'  THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1'  THEN 1 ELSE 0 END) + sum(case when info.is_speciality ='0'  THEN 1 ELSE 0 END)),0)  as "otherSpecialityProportion"
         FROM
             sys_user su
                 LEFT JOIN sys_dept sd ON su.dept_id = sd.id
@@ -1324,6 +1324,12 @@
             <if test="vo.houseId != null and vo.houseId != ''">
                 and sd.id like concat('%',#{vo.houseId},'%')
             </if>
+            <if test="vo.deptIds != null  and  vo.deptIds != ''  and  vo.deptIds.size >0">
+                and su.dept_id IN
+                <foreach collection="vo.deptIds" item="id" index="index" open="(" close=")" separator=",">
+                    #{id}
+                </foreach>
+            </if>
         </where>
     </select>
     <select id="queryQxFrontlineAgent" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">