generated from dxfeng/secondev-wugang-dxfeng
经理门户接口
This commit is contained in:
parent
e11faa7628
commit
90b9b68704
|
|
@ -0,0 +1,44 @@
|
|||
package com.weaver.seconddev.portal.controller;
|
||||
|
||||
import com.weaver.common.authority.annotation.WeaPermission;
|
||||
import com.weaver.common.base.entity.result.WeaResult;
|
||||
import com.weaver.seconddev.portal.service.ManagerPortalService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/07/09
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api/secondev/portal/manager")
|
||||
@WeaPermission(publicPermission = true)
|
||||
public class ManagerPortalController {
|
||||
|
||||
@Autowired
|
||||
ManagerPortalService managerPortalService;
|
||||
|
||||
@PostMapping("/getMangerInfo")
|
||||
private WeaResult<Map<String, Object>> getMangerInfo(@RequestBody Map<String, String> params) {
|
||||
return managerPortalService.getMangerInfo(params);
|
||||
}
|
||||
|
||||
@PostMapping("/getTodayOverview")
|
||||
private WeaResult<Map<String, Object>> getTodayOverview(@RequestBody Map<String, String> params) {
|
||||
return managerPortalService.getTodayOverview(params);
|
||||
}
|
||||
|
||||
@PostMapping("/getBasicPersonnel")
|
||||
private WeaResult<Map<String, Object>> getBasicPersonnel(@RequestBody Map<String, String> params) {
|
||||
return managerPortalService.getBasicPersonnel(params);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
package com.weaver.seconddev.portal.entity.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/07/08
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
public class BasicPersonnelParam {
|
||||
private Set<Long> departmentIdList;
|
||||
private String searchType;
|
||||
private String startDate;
|
||||
private String endDate;
|
||||
private String tenantKey;
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
package com.weaver.seconddev.portal.mapper;
|
||||
|
||||
import com.weaver.seconddev.portal.entity.param.BasicPersonnelParam;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/07/08
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Mapper
|
||||
public interface ManagerPortalMapper {
|
||||
/**
|
||||
* 在职人数
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
int getOnJobNum(BasicPersonnelParam param);
|
||||
|
||||
/**
|
||||
* 离职人数
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
int getResignNumber(BasicPersonnelParam param);
|
||||
|
||||
/**
|
||||
* 离职流程中人数
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
int getResigningNumber(BasicPersonnelParam param);
|
||||
|
||||
/**
|
||||
* 入职流程中人数
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
int getEntryingNumber(BasicPersonnelParam param);
|
||||
|
||||
/**
|
||||
* 获取所负责的顶级部门
|
||||
*
|
||||
* @param tenantKey
|
||||
* @param emdId
|
||||
* @return
|
||||
*/
|
||||
List<Long> getManageDeptIds(@Param("tenantKey") String tenantKey, @Param("empId") Long emdId);
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package com.weaver.seconddev.portal.service;
|
||||
|
||||
import com.weaver.common.base.entity.result.WeaResult;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 经理门户
|
||||
*
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/07/08
|
||||
* @version: 1.0
|
||||
*/
|
||||
public interface ManagerPortalService {
|
||||
|
||||
/**
|
||||
* 经理信息
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
WeaResult<Map<String, Object>> getMangerInfo(Map<String, String> params);
|
||||
|
||||
/**
|
||||
* 今日概况
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
WeaResult<Map<String, Object>> getTodayOverview(Map<String, String> params);
|
||||
|
||||
/**
|
||||
* 基础人事
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
WeaResult<Map<String, Object>> getBasicPersonnel(Map<String, String> params);
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,133 @@
|
|||
package com.weaver.seconddev.portal.service.impl;
|
||||
|
||||
import com.weaver.common.base.entity.result.WeaResult;
|
||||
import com.weaver.common.hrm.cache.HrmDepartmentComInfo;
|
||||
import com.weaver.common.hrm.dao.HrmCommonDepartmentDao;
|
||||
import com.weaver.common.hrm.manage.HrmComInfoCacheHandler;
|
||||
import com.weaver.seconddev.portal.entity.param.BasicPersonnelParam;
|
||||
import com.weaver.seconddev.portal.mapper.ManagerPortalMapper;
|
||||
import com.weaver.seconddev.portal.service.ManagerPortalService;
|
||||
import com.weaver.seconddev.portal.util.DateUtil;
|
||||
import com.weaver.teams.security.context.UserContext;
|
||||
import com.weaver.teams.security.user.User;
|
||||
import com.weaver.workflow.common.cfg.org.service.DepartMentService;
|
||||
import com.weaver.workflow.common.entity.org.WeaDepartMent;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 经理门户
|
||||
*
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/07/08
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class ManagerPortalServiceImpl implements ManagerPortalService {
|
||||
|
||||
@Autowired
|
||||
ManagerPortalMapper managerPortalMapper;
|
||||
@Autowired
|
||||
DepartMentService departMentService;
|
||||
@Autowired
|
||||
HrmCommonDepartmentDao hrmCommonDepartmentDao;
|
||||
@Autowired
|
||||
HrmComInfoCacheHandler hrmComInfoCacheHandler;
|
||||
|
||||
@Override
|
||||
public WeaResult<Map<String, Object>> getMangerInfo(Map<String, String> params) {
|
||||
User currentUser = UserContext.getCurrentUser();
|
||||
Set<Long> allDepartmentIds = getAllDepartmentIdList(currentUser);
|
||||
List<HrmDepartmentComInfo> departmentList = hrmComInfoCacheHandler.getCacheList(HrmDepartmentComInfo.class, allDepartmentIds);
|
||||
// 获取顶级部门
|
||||
List<HrmDepartmentComInfo> topDepartmentList = departmentList.stream()
|
||||
.filter(dept -> !allDepartmentIds.contains(dept.getParent()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<String> departmentNames = topDepartmentList.stream().map(HrmDepartmentComInfo::getName).collect(Collectors.toList());
|
||||
|
||||
Map<String, Object> returnMap = new HashMap<>();
|
||||
returnMap.put("deptNames", StringUtils.join(departmentNames, "、"));
|
||||
returnMap.put("userName", currentUser.getUsername());
|
||||
return WeaResult.success(returnMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WeaResult<Map<String, Object>> getTodayOverview(Map<String, String> params) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WeaResult<Map<String, Object>> getBasicPersonnel(Map<String, String> params) {
|
||||
Map<String, Object> returnMap = new HashMap<>();
|
||||
String searchType = params.get("searchType");
|
||||
String searchDate = params.get("searchDate");
|
||||
String departmentIds = params.get("departmentIds");
|
||||
|
||||
User currentUser = UserContext.getCurrentUser();
|
||||
Set<Long> allDepartmentIdList = getAllDepartmentIdList(currentUser);
|
||||
BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam();
|
||||
basicPersonnelParam.setTenantKey(currentUser.getTenantKey());
|
||||
// 设置部门范围ID集合
|
||||
basicPersonnelParam.setDepartmentIdList(allDepartmentIdList);
|
||||
|
||||
if ("year".equals(searchType)) {
|
||||
// 开始时间年度第一天
|
||||
basicPersonnelParam.setStartDate(searchDate + "-01-01");
|
||||
// 结束时间年度最后一天
|
||||
basicPersonnelParam.setEndDate(StringUtils.isBlank(searchDate) ? DateUtil.getCurrentDateStr() : searchDate + "-12-31");
|
||||
|
||||
} else if ("month".equals(searchType)) {
|
||||
// 开始时间月度第一天
|
||||
basicPersonnelParam.setStartDate(searchDate + "-01");
|
||||
// 结束时间月度最后一天
|
||||
basicPersonnelParam.setEndDate(StringUtils.isBlank(searchDate) ? DateUtil.getCurrentDateStr() : DateUtil.getLastDayOfPreviousMonthStr(searchDate + "-01"));
|
||||
}
|
||||
|
||||
int onJobNum = managerPortalMapper.getOnJobNum(basicPersonnelParam);
|
||||
int resignNumber = managerPortalMapper.getResignNumber(basicPersonnelParam);
|
||||
int resigningNumber = managerPortalMapper.getResigningNumber(basicPersonnelParam);
|
||||
int entryingNumber = managerPortalMapper.getEntryingNumber(basicPersonnelParam);
|
||||
|
||||
// 在职人数
|
||||
returnMap.put("onJobNumber", onJobNum);
|
||||
// 年度离职人数
|
||||
returnMap.put("resignNumber", resignNumber);
|
||||
// 半年度入职人数
|
||||
returnMap.put("entryNumber", 7);
|
||||
// 离职流程中人数
|
||||
returnMap.put("resigningNumber", resigningNumber);
|
||||
// 入职流程中人数
|
||||
returnMap.put("entryingNumber", entryingNumber);
|
||||
returnMap.put("basicPersonnelParam", basicPersonnelParam);
|
||||
|
||||
return WeaResult.success(returnMap);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取用户当前所负责的所有的部门以及下级部门
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private Set<Long> getAllDepartmentIdList(User currentUser) {
|
||||
// 查询所负责的部门
|
||||
List<Long> manageDeptIds = managerPortalMapper.getManageDeptIds(currentUser.getTenantKey(), currentUser.getEmployeeId());
|
||||
// 查询所有的部门、子部门信息
|
||||
Set<WeaDepartMent> allDepartmentList = new HashSet<>();
|
||||
for (Long manageDeptId : manageDeptIds) {
|
||||
WeaDepartMent departMentById = departMentService.getDepartMentById(manageDeptId);
|
||||
List<WeaDepartMent> beLongDeps = departMentService.getBeLongDeps(manageDeptId);
|
||||
allDepartmentList.add(departMentById);
|
||||
allDepartmentList.addAll(beLongDeps);
|
||||
}
|
||||
return allDepartmentList.stream().map(WeaDepartMent::getDepartMentId).collect(Collectors.toSet());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.weaver.seconddev.portal.mapper.ManagerPortalMapper">
|
||||
|
||||
<select id="getOnJobNum" resultType="java.lang.Integer">
|
||||
SELECT COUNT(t.id) AS value
|
||||
FROM e10_common.uf_jcl_employee_information t
|
||||
WHERE t.delete_type = 0
|
||||
AND t.tenant_key = #{tenantKey}
|
||||
<if test="departmentIdList != null and departmentIdList.size() > 0">
|
||||
AND t.department IN
|
||||
<foreach collection="departmentIdList" item="departmentId" open="(" close=")" separator=",">
|
||||
#{departmentId}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
AND t.hiredate <= #{endDate}
|
||||
AND (t.zhgzr >= #{startDate}
|
||||
OR t.zhgzr IS NULL
|
||||
OR t.zhgzr = '')
|
||||
|
||||
</select>
|
||||
|
||||
<select id="getResignNumber" resultType="java.lang.Integer">
|
||||
select count(id) as value from e10_common.uf_jcl_lzxxjl t
|
||||
where t.delete_type = 0 and t.tenant_key = #{tenantKey}
|
||||
<if test="departmentIdList != null and departmentIdList.size() > 0">
|
||||
AND t.lzqbm IN
|
||||
<foreach collection="departmentIdList" item="departmentId" open="(" close=")" separator=",">
|
||||
#{departmentId}
|
||||
</foreach>
|
||||
</if>
|
||||
and t.zhgzr >= #{startDate}
|
||||
and t.zhgzr <= #{endDate}
|
||||
|
||||
</select>
|
||||
|
||||
<select id="getResigningNumber" resultType="java.lang.Integer">
|
||||
select count(t.id) from e10_common.uf_jcl_lzsq t
|
||||
where t.delete_type = 0 and t.tenant_key = #{tenantKey}
|
||||
<!--审批中-->
|
||||
and t.flow_status in (0,1,2)
|
||||
<!--申请日期-->
|
||||
and t.sqrq >= #{startDate}
|
||||
and t.sqrq <= #{endDate}
|
||||
</select>
|
||||
|
||||
<select id="getEntryingNumber" resultType="java.lang.Integer">
|
||||
select count(t.id) from e10_common.uf_jcl_rzsq t
|
||||
where t.delete_type = 0 and t.tenant_key = #{tenantKey}
|
||||
<!--审批中-->
|
||||
and t.flow_status in (0,1,2)
|
||||
<!--申请日期-->
|
||||
and t.sqsj >= #{startDate}
|
||||
and t.sqsj <= #{endDate}
|
||||
</select>
|
||||
<select id="getManageDeptIds" resultType="java.lang.Long">
|
||||
select t.id
|
||||
from eteams.department t
|
||||
inner join eteams.ft_1154218872715993098 t2 on t.formdata = t2.id
|
||||
where t.type = 'department'
|
||||
and t.delete_type = 0
|
||||
and t.status = 1
|
||||
and t.tenant_key = #{tenantKey}
|
||||
and t2.tenant_key = #{tenantKey}
|
||||
and t2.delete_type = 0
|
||||
and t2.bmfzr = #{empId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue