Sfoglia il codice sorgente

设计师页面接口修改

hcst_sunzhen 5 anni fa
parent
commit
a8e638e092

+ 70 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/PerformanceController2.java

@@ -178,4 +178,74 @@ public class PerformanceController2 {
         return result;
     }
 
+    @AutoLog(value = "获取设计师组下所有人的绩效")
+    @ApiOperation(value = "获取设计师组下所有人的绩效", notes = "获取设计师组下所有人的绩效")
+    @PostMapping(value = "/designerLastQuarterPerformanceInfo")
+    public Result<Map<String,Object>> designerLastQuarterPerformanceInfo() {
+        Result<Map<String,Object>> result = new Result<Map<String,Object>>();
+        try {
+            Map<String,Object> resultMap = performanceService.designerLastQuarterPerformanceInfo();
+            result.setResult(resultMap);
+            result.setSuccess(true);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            log.error("/ctop/performance2/designerLastQuarterPerformanceInfo出错啦");
+            result.error500("/ctop/performance2/designerLastQuarterPerformanceInfo出错啦");
+        }
+        return result;
+    }
+
+    @AutoLog(value = "获取同一媒体类型下上个季度所有人的绩效")
+    @ApiOperation(value = "获取同一媒体类型下上个季度所有人的绩效", notes = "获取同一媒体类型下上个季度所有人的绩效")
+    @PostMapping(value = "/quarterUserPerformanceList")
+    public Result<Map<String,Object>> quarterUserPerformanceList(@RequestParam(name = "appType", required = true) int appType) {
+        Result<Map<String,Object>> result = new Result<Map<String,Object>>();
+        try {
+            Map<String,Object> resultMap = performanceService.quarterUserPerformanceList(appType);
+            result.setResult(resultMap);
+            result.setSuccess(true);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            log.error("/ctop/performance2/quarterUserPerformanceList出错啦");
+            result.error500("/ctop/performance2/quarterUserPerformanceList出错啦");
+        }
+        return result;
+    }
+
+    @AutoLog(value = "获取快手上个季度的季度有效数、素材总数、上个季度的绩效")
+    @ApiOperation(value = "获取快手上个季度的季度有效数、素材总数、上个季度的绩效", notes = "获取快手上个季度的季度有效数、素材总数、上个季度的绩效")
+    @PostMapping(value = "/kuaishouDesignerLastQuarterPerformanceInfo")
+    public Result<Map<String,Object>> kuaishouDesignerLastQuarterPerformanceInfo() {
+        Result<Map<String,Object>> result = new Result<Map<String,Object>>();
+        Map<String,Object> resultMap = new HashMap<>();
+        try {
+            resultMap = performanceService.kuaishouDesignerLastQuarterPerformanceInfo();
+            result.setResult(resultMap);
+            result.setSuccess(true);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            log.error("/ctop/performance2/kuaishouDesignerLastQuarterPerformanceInfo出错啦");
+            result.error500("/ctop/performance2/kuaishouDesignerLastQuarterPerformanceInfo出错啦");
+        }
+        return result;
+    }
+
+    @AutoLog(value = "获取平面设计师上个季度的绩效")
+    @ApiOperation(value = "获取平面设计师上个季度的绩效", notes = "获取平面设计师上个季度的绩效")
+    @PostMapping(value = "/planeLastQuarterPerformanceInfo")
+    public Result<Map<String,Object>> planeLastQuarterPerformanceInfo(@RequestParam(name = "appType", required = true) int appType) {
+        Result<Map<String,Object>> result = new Result<Map<String,Object>>();
+        try {
+            Map<String, Object> resultMap = performanceService.planeLastQuarterPerformanceInfo(appType);
+            result.setResult(resultMap);
+            result.setSuccess(true);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            log.error("/ctop/performance2/planeLastQuarterPerformanceInfo出错啦");
+            result.error500("/ctop/performance2/planeLastQuarterPerformanceInfo出错啦");
+        }
+        return result;
+    }
+
+
 }

+ 9 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IPerformanceService2.java

@@ -57,4 +57,13 @@ public interface IPerformanceService2 extends IService<Performance> {
     void kuaishouDesigner(int thisYear, int thisQuarter);
 
     void toutiaoDesigner(int thisYear, int thisQuarter);
+
+    Map<String,Object> designerLastQuarterPerformanceInfo();
+
+    Map<String, Object> quarterUserPerformanceList(Integer appType);
+
+    Map<String,Object> kuaishouDesignerLastQuarterPerformanceInfo();
+
+    Map<String,Object> planeLastQuarterPerformanceInfo(int appType);
+
 }

+ 162 - 11
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/PerformanceServiceImpl2.java

@@ -275,7 +275,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         //拍摄
         kuaishouShotPerformance(thisYear, thisQuarter, startTime, endTime);
         //剪辑
-        kuaishouClipPerformance(thisYear, thisQuarter, startTime, endTime);
+        //kuaishouClipPerformance(thisYear, thisQuarter, startTime, endTime);
         //平面设计
         kuaishouPlanePerformance(thisYear, thisQuarter, startTime, endTime);
         //设计师leader
@@ -311,7 +311,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     ////////////////////////////////////////////////////////////////////////////////////////////
     ////////////////////////////////////////////////////////////////////////////////////////////////编导季度绩效计算start
     private void kuaishouPlanPerformance(int thisYear, int thisQuarter, String startTime, String endTime) {
-        log.info(thisYear + "年第" + thisQuarter + "季度快手编导季度绩效计算开始");
+                             log.info(thisYear + "年第" + thisQuarter + "季度快手编导季度绩效计算开始");
         //1.根据角色(编导)查询出相对应角色所有的人
         //List<UserDto> planList = sysRoleMapper.getUserByRoleCode("plan"); //编导
         List<UserDto2> planList = userEfficientVideoMapMapper.getKuaishouPlanList(); //编导
@@ -559,14 +559,14 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         //获取所有project根据媒体类型获取快手下的项目类型 1头条 2快手
         List<ProjectDTO> projectDTOS = userEfficientVideoMapMapper.getProjects("2");
 
-        System.out.println("北京公司快手项目数量为:" + projectDTOS.size());
+        System.out.println("快手项目数量为:" + projectDTOS.size());
         //循环project
         for (ProjectDTO projectDTO : projectDTOS) {
             //测试使用
             //if(projectDTO.getProjectId() != 42L){
             //    continue;
             //}
-            System.out.println("快手平面所项目为:" + projectDTO.getProjectName());
+            System.out.println("快手平面所项目为:" + projectDTO.getProjectName());
             //判断是否是北京的部门负责的项目,如果不是的话跳出
             String orgCode = userEfficientVideoMapMapper.getOrgCodeByProjectId(projectDTO.getProjectId());
             if (!orgCode.startsWith("A01")) {
@@ -597,7 +597,9 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
                 planeProjectCost.setProjectTotalCost(quarterCost);
                 planeProjectCost.setProjectCost(averageQuarterCost);
                 planeProjectCost.setUserId(plane.getUserId());
-
+                //增加平面人数、和项目单独的绩效
+                planeProjectCost.setProjectPlaneCount(planeList.size());
+                planeProjectCost.setProjectPerformance(averageQuarterCost.multiply(new BigDecimal("0.05")));
                 if (null == planeMap.get(plane.getUserId())) {
                     plane.setEffiRate(averageQuarterCost);
                     planeMap.put(plane.getUserId(), plane);
@@ -940,6 +942,9 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
                 planeProjectCost.setProjectTotalCost(quarterCost);
                 planeProjectCost.setProjectCost(averageQuarterCost);
                 planeProjectCost.setUserId(plane.getUserId());
+                //增加平面人数、和项目单独的绩效
+                planeProjectCost.setProjectPlaneCount(planeList.size());
+                planeProjectCost.setProjectPerformance(averageQuarterCost.multiply(new BigDecimal("0.05")));
 
                 if (null == planeMap.get(plane.getUserId())) {
                     plane.setEffiRate(averageQuarterCost);
@@ -1429,13 +1434,15 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     //{"videoAccount":"aabbcc","servingAccount":"ttyyhh","cost":34234.43}
     public List<DesignMaterialInfo> materialAccountInfo(String materialInfoId) {
         log.info("materialAccountInfo接口开始");
-        Date date = new Date();
-        Date getDate = DateUtils.addDay(date, -1);
-        String startDate = DateUtils.getQuarterStartDate(getDate);
-        String endDate = DateUtils.getQuarterEndDate(getDate);
-        String endNowDate = DateUtils.formatDate(getDate);
+        Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
+        int year = quarterMap.get("year");
+        int quarter = quarterMap.get("quarter");
 
-        List<DesignMaterialInfo> materialInfoList = userEfficientVideoMapMapper.getMaterialAccountInfoByMaterialId(materialInfoId, startDate, endNowDate);
+        Map<String,String> quarterDate = DateUtils.quarterStartEndDate(year,quarter);
+        String startDate = quarterDate.get("startDate");
+        String endDate = quarterDate.get("endDate");
+
+        List<DesignMaterialInfo> materialInfoList = userEfficientVideoMapMapper.getMaterialAccountInfoByMaterialId(materialInfoId, startDate, endDate);
         log.info("materialAccountInfo接口结束");
         return materialInfoList;
     }
@@ -1456,5 +1463,149 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         timeMap.put("quarter", quarter);
         return timeMap;
     }
+
+    //获取快手上个季度的季度有效数、素材总数、上个季度的绩效
+    public Map<String,Object> kuaishouDesignerLastQuarterPerformanceInfo(){
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+        //TODO 测试使用
+        //LoginUser sysUser = new LoginUser();
+        //sysUser.setId("f1f4c325a1234827af28fb4d957ffd70");
+        //
+
+        Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
+        int year = quarterMap.get("year");
+        int quarter = quarterMap.get("quarter");
+
+        Map<String,String> quarterDate = DateUtils.quarterStartEndDate(year,quarter);
+        String startDate = quarterDate.get("startDate");
+        String endDate = quarterDate.get("endDate");
+        SysRole role = userEfficientVideoMapMapper.getRoleIdByUserId(sysUser.getId());
+
+        //有效视频数量 1toutiao 2kuaishou
+        int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2, year, quarter, sysUser.getId(), role.getId());
+        //总视频数量
+        int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId("plan", startDate, endDate, sysUser.getId());
+        //获取季度总绩效
+        BigDecimal performance = userEfficientVideoMapMapper.getQuarterPerformance(sysUser.getId(), year, quarter, 2);
+
+        //素材列表
+        List<DesignMaterialInfo> materialInfoList = userEfficientVideoMapMapper.designMaterialInfoList(role.getRoleCode(), sysUser.getId(), startDate, endDate);
+
+        Map<String,Object> resultMap = new HashMap();
+        resultMap.put("effiVideoCount",effiVideoCount);
+        resultMap.put("videoCount",videoCount);
+        resultMap.put("performance",performance);
+        resultMap.put("materialInfoList",materialInfoList);
+
+        return resultMap;
+    }
+
+    //TODO 获取头条上个季度的季度有效数、素材总数、上个季度的绩效
+    public void toutiaoDesignerLastQuarterPerformanceInfo(){
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
+        int year = quarterMap.get("year");
+        int quarter = quarterMap.get("quarter");
+        Map<String,String> quarterDate = DateUtils.quarterStartEndDate(year,quarter);
+        String startDate = quarterDate.get("startDate");
+        String endDate = quarterDate.get("endDate");
+        SysRole role = userEfficientVideoMapMapper.getRoleIdByUserId(sysUser.getId());
+
+        //有效视频数量 1toutiao 2kuaishou
+        int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2, year, quarter, sysUser.getId(), role.getId());
+        //总视频数量
+        int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId("plan", startDate, endDate, sysUser.getId());
+        //获取季度总绩效
+        BigDecimal performance = userEfficientVideoMapMapper.getQuarterPerformance(sysUser.getId(), year, quarter, 1);
+    }
+
+    //获取设计师组下所有人的绩效
+    public Map<String,Object>  designerLastQuarterPerformanceInfo(){
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+        //TODO 测试删除
+        //LoginUser sysUser = new LoginUser();
+        //sysUser.setId("825dd716d4c041f9ac1c600bf6183979");
+        //
+
+        Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
+        int year = quarterMap.get("year");
+        int quarter = quarterMap.get("quarter");
+        //Map<String,String> quarterDate = DateUtils.quarterStartEndDate(year,quarter);
+        //String startDate = quarterDate.get("startDate");
+        //String endDate = quarterDate.get("endDate");
+        //SysRole role = userEfficientVideoMapMapper.getRoleIdByUserId(sysUser.getId());
+
+        String DepartId = userEfficientVideoMapMapper.getDepartIdByUserId(sysUser.getId());
+        List<UserDto2> userDto2List = userEfficientVideoMapMapper.getUserListByDepartId(DepartId);
+
+        //需要判断属于哪个部门
+        //判断如果在parent_id是不是快手或者头条的
+        int appType = 0; //头条1;快手2
+        String parentId = userEfficientVideoMapMapper.getParentIdByDepartId(DepartId);
+        if(parentId.equals("26c10ecb5e0d416bb01f8ff983f4588c")){
+            appType = 1;
+        }else{
+            appType = 2;
+        }
+
+        //循环获取userDto然后获取赋值季度、年度以及部门、绩效
+        for (UserDto2 userDto:userDto2List){
+            userDto.setYear(year);
+            userDto.setQuarter(quarter);
+            String departName = userEfficientVideoMapMapper.getDepartNameByUserId(userDto.getUserId());
+            //获取绩效
+            BigDecimal performance = userEfficientVideoMapMapper.getClipQuarterCost(appType,quarter,year, userDto.getUserId());
+            userDto.setDepartName(departName);
+            userDto.setEffiRate(performance);
+        }
+
+        Map<String,Object> resultMap = new HashMap<>();
+        resultMap.put("userList", userDto2List);
+
+        return resultMap;
+    }
+
+    //平面设计师(快手、头条可能不一样,头条内广是单独的媒体不知道是怎么回事)
+    public Map<String,Object> planeLastQuarterPerformanceInfo(int appType){
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+        //测试删除
+        //LoginUser sysUser = new LoginUser();
+        //sysUser.setId("b0e4798234df4096936e6bc6d00db3ba");
+        //
+
+        Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
+        int year = quarterMap.get("year");
+        int quarter = quarterMap.get("quarter");
+        //Map<String,String> quarterDate = DateUtils.quarterStartEndDate(year,quarter);
+        List<PlaneProjectCostDTO> planeProjectCostList = userEfficientVideoMapMapper.getPlanePerformanceInfo(appType,year,quarter,sysUser.getId());
+        BigDecimal performance = userEfficientVideoMapMapper.getQuarterPerformance(sysUser.getId(), year, quarter, appType);
+
+        Map<String,Object> resultMap = new HashMap<>();
+        resultMap.put("planeProjectCostList",planeProjectCostList);
+        resultMap.put("performance",performance);
+
+        return resultMap;
+    }
+
+    //获取同一媒体类型下上个季度所有人的绩效
+    public Map<String, Object> quarterUserPerformanceList(Integer appType){
+        Map<String, Object> resultMap = new HashMap<>();
+
+        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
+        int year = quarterMap.get("year");
+        int quarter = quarterMap.get("quarter");
+
+        List<UserDto2> userDtoList = userEfficientVideoMapMapper.getUserPerformanceList(appType, year, quarter);
+        resultMap.put("userDtoList",userDtoList);
+
+        return resultMap;
+    }
+
+
+
 }
 

+ 9 - 5
performance-appraisal/src/main/java/cn/com/ctop/planeprojectcost/entity/PlaneProjectCost.java

@@ -1,20 +1,18 @@
 package cn.com.ctop.planeprojectcost.entity;
 
-import java.io.Serializable;
-import java.util.Date;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
 import org.jeecgframework.poi.excel.annotation.Excel;
 
+import java.math.BigDecimal;
+import java.util.Date;
+
 /**
  * 平面设计项目消耗表
  * @author jeecg-boot
@@ -66,4 +64,10 @@ public class PlaneProjectCost {
 	/**updateTime*/
     @ApiModelProperty(value = "updateTime")
 	private Date updateTime;
+	/**projectPerformance*/
+	@ApiModelProperty(value = "projectPerformance")
+	private BigDecimal projectPerformance;
+	/**projectPlaneCount*/
+	@ApiModelProperty(value = "projectPlaneCount")
+	private Integer projectPlaneCount;
 }

+ 21 - 0
performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/entity/PlaneProjectCostDTO.java

@@ -0,0 +1,21 @@
+package cn.com.ctop.userefficientvideomap.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class PlaneProjectCostDTO {
+
+	private Integer id;
+	private Long projectId;
+	private String userId;
+	private BigDecimal projectCost;
+	private Integer appType;
+	private BigDecimal projectTotalCost;
+	private Integer year;
+	private Integer quarter;
+	private BigDecimal projectPerformance;
+	private Integer projectPlaneCount;
+	private String projectName;
+}

+ 8 - 0
performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/entity/UserDto2.java

@@ -22,4 +22,12 @@ public class UserDto2 implements Serializable {
 
     private String depId;
 
+    private Integer year;
+
+    private Integer quarter;
+
+    private String departName;
+
+    private String parentId;
+
 }

+ 14 - 0
performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/mapper/UserEfficientVideoMapMapper.java

@@ -86,5 +86,19 @@ public interface UserEfficientVideoMapMapper extends BaseMapper<UserEfficientVid
 
     String getOrgCodeByProjectId(@Param("projectId")Long projectId);
 
+    SysRole getRoleIdByUserId(@Param("userId")String userId);
+
+    String getDepartIdByUserId(@Param("userId")String userId);
+
+    List<UserDto2> getUserListByDepartId(@Param("departId")String departId);
+
+    String getDepartNameByUserId(@Param("userId")String userId);
+
+    String getParentIdByDepartId(@Param("departId")String departId);
+
+    List<PlaneProjectCostDTO> getPlanePerformanceInfo(@Param("appType")int appType, @Param("year")int year, @Param("quarter")int quarter, @Param("userId")String userId);
+
+    List<UserDto2> getUserPerformanceList(@Param("appType")Integer appType, @Param("year")Integer year, @Param("quarter")Integer quarter);
+
 }
 

+ 108 - 5
performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/mapper/xml/UserEfficientVideoMapMapper.xml

@@ -401,7 +401,7 @@
         from sys_user_role
         WHERE role_id = '8d3e2ed58bdedf17716f698ea674da27'   <!-- 设计师 -->
         )
-        and b.parent_id = '26c10ecb5e0d416bb01f8ff983f4588c'  <!-- 快手设计部 -->
+        and b.parent_id = '26c10ecb5e0d416bb01f8ff983f4588c'  <!-- 头条设计部 -->
     </select>
 
     <!-- 获取toutiao编导列表 -->
@@ -421,7 +421,7 @@
         from sys_user_role
         WHERE role_id = '0214283aa16f943efbb149ea4bb18f18'    <!-- 编导 -->
         )
-        and b.parent_id = '26c10ecb5e0d416bb01f8ff983f4588c'  <!-- 快手设计部 -->
+        and b.parent_id = '26c10ecb5e0d416bb01f8ff983f4588c'  <!-- 头条设计部 -->
     </select>
 
     <!-- 获取toutiao拍摄列表 -->
@@ -441,7 +441,7 @@
         from sys_user_role
         WHERE role_id = '7bff9afed625aeeabca6bffe3c189183'   <!-- 拍摄 -->
         )
-        and b.parent_id = '26c10ecb5e0d416bb01f8ff983f4588c'   <!-- 快手设计部 -->
+        and b.parent_id = '26c10ecb5e0d416bb01f8ff983f4588c'   <!-- 头条设计部 -->
     </select>
 
     <!-- 获取toutiao剪辑列表 -->
@@ -461,7 +461,7 @@
         from sys_user_role
         WHERE role_id = 'f38d8d70cf7ec50d5357a749e4dbf8ee'   <!-- 拍摄 -->
         )
-        and b.parent_id = '26c10ecb5e0d416bb01f8ff983f4588c'   <!-- 快手设计部 -->
+        and b.parent_id = '26c10ecb5e0d416bb01f8ff983f4588c'   <!-- 头条设计部 -->
     </select>
 
     <!-- 头条有效视频用户关系绑定 -->
@@ -547,7 +547,7 @@
         select
         total_performance
         from
-        ctop_user_efficient_video_map
+        ctop_performance
         where
         user_id = #{userId}
         and
@@ -556,6 +556,7 @@
         quarter = #{quarter}
         and
         app_type = #{appType}
+        limit 1
     </select>
 
     <!-- 根据year、quarter、user_id获取季度总消耗 -->
@@ -585,4 +586,106 @@
         a.id = #{projectId}
     </select>
 
+    <select id="getRoleIdByUserId" resultType="cn.com.ctop.userefficientvideomap.entity.SysRole">
+            select
+            c.id as id,
+            c.role_code as roleCode,
+            c.role_name as roleName
+        from
+        sys_user a
+        left join sys_user_role b on a.id = b.user_id
+        left join sys_role c on b.role_id = c.id
+        where a.id = #{userId}
+    </select>
+
+    <!-- 根据userId获取depart_id -->
+    <select id="getDepartIdByUserId" resultType="string">
+        select
+        dep_id
+        from
+        sys_user_depart
+        where
+        user_id = #{userId}
+    </select>
+
+    <!-- 根据departId获取部门下所有的人 -->
+    <select id="getUserListByDepartId" resultType="cn.com.ctop.userefficientvideomap.entity.UserDto2">
+            select
+            b.id as userId,
+            b.realname as realname,
+            d.id as roleId ,
+            d.role_name as roleName,
+			d.role_code as roleCode,
+			e.parent_id as parentId,
+			e.depart_name as departName
+        from
+        sys_user_depart a
+        left join sys_user b on a.user_id = b.id
+        left join sys_user_role c on b.id = c.user_id
+        left join sys_role d on c.role_id = d.id
+        left join sys_depart e on a.dep_id = e.id
+        where a.dep_id = #{departId}
+    </select>
+
+    <!-- 根据userId获取departName -->
+    <select id="getDepartNameByUserId" resultType="string">
+        select
+        b.depart_name
+        from
+        sys_user_depart a
+        left join sys_depart b on a.dep_id = b.id
+        where a.user_id = #{userId}
+    </select>
+
+    <!-- 获取部门的上一级部门 -->
+    <select id="getParentIdByDepartId" resultType="string">
+            select
+            parent_id
+        from
+        sys_depart
+        where
+        id = #{departId}
+    </select>
+
+    <select id="getPlanePerformanceInfo" resultType="cn.com.ctop.userefficientvideomap.entity.PlaneProjectCostDTO">
+        select
+        b.project_name as projectName,
+        a.year as year,
+        a.quarter as quarter,
+        a.app_type as apptType,
+        a.project_performance as projectPerformance,
+        a.project_total_cost as projectTotalCost
+        from
+        ctop_plane_project_cost a
+        left join ctop_project b on a.project_id = b.id
+        where
+        a.app_type = #{appType} and
+        a.year = #{year} and
+        a.quarter = #{quarter} and
+        a.user_id = #{userId}
+    </select>
+
+    <select id="getUserPerformanceList" resultType="cn.com.ctop.userefficientvideomap.entity.UserDto2">
+            select
+            b.id as userId,
+            b.realname as realname,
+            c.id as roleId,
+            c.role_name as roleName,
+            a.year as year,
+            a.quarter as quarter,
+            sum(a.total_performance) as effiRate,
+            e.depart_name as departName
+        from
+        ctop_performance a
+        left join sys_user b on a.user_id = b.id
+        left join sys_role c on a.role_id = c.id
+        left join sys_user_depart d on a.user_id = d.user_id
+        left join sys_depart e on d.dep_id = e.id
+        where
+        a.year = #{year} and
+        a.quarter = #{quarter} and
+        a.app_type = #{appType}
+        group by a.user_id
+    </select>
+
 </mapper>