管辖范围考核人员

This commit is contained in:
bianyadong
2024-05-17 16:44:35 +08:00
parent b463d7666f
commit 8d12d79274
9 changed files with 62 additions and 20 deletions

View File

@@ -61,10 +61,9 @@ public class EmployeeTrainingDAO {
public List<EmployeeTrainingVO> assessmentUserList(String name, String practicalAssessmentUserId,
Integer assessmentStatus,
String estimatedAssessmentBeginTime, String estimatedAssessmentEndTime,
String actualAssessmentBeginTime, String actualAssessmentEndTime, List<String> storeIdList,
List<String> authRegionIdList) {
String actualAssessmentBeginTime, String actualAssessmentEndTime, List<String> storeIdList) {
return employeeTrainingMapper.assessmentUserList(name, practicalAssessmentUserId, assessmentStatus, estimatedAssessmentBeginTime,
estimatedAssessmentEndTime, actualAssessmentBeginTime, actualAssessmentEndTime, storeIdList, authRegionIdList);
estimatedAssessmentEndTime, actualAssessmentBeginTime, actualAssessmentEndTime, storeIdList);
}
public List<EmployeeTrainingDO> theoreticalList() {

View File

@@ -26,5 +26,5 @@ public interface EmployeeTrainingMapper extends Mapper<EmployeeTrainingDO> {
@Param("assessmentStatus") Integer assessmentStatus,
@Param("estimatedAssessmentBeginTime") String estimatedAssessmentBeginTime, @Param("estimatedAssessmentEndTime") String estimatedAssessmentEndTime,
@Param("actualAssessmentBeginTime") String actualAssessmentBeginTime, @Param("actualAssessmentEndTime") String actualAssessmentEndTime,
@Param("storeIdList") List<String> storeIdList, @Param("authRegionIdList") List<String> authRegionIdList);
@Param("storeIdList") List<String> storeIdList);
}

View File

@@ -86,6 +86,8 @@ public interface RegionMapper {
List<String> getSubRegionIdsByRegionIds( @Param("regionIds")List<String> regionIds);
List<String> getStoreIdsByRegionIds( @Param("regionIds")List<String> regionIds);
List<String> getSubIdsByRegionpaths( @Param("regionPaths")List<String> regionPaths);
List<String> getRegionPathByRegionIds( @Param("regionIds")List<String> regionIds);

View File

@@ -181,9 +181,7 @@
left join xfsg_employee_training e on e.xfsg_user_detail_id = u.id
left join xfsg_shop_info s on s.id = u.shop_id
where u.deleted = 0
<if test="practicalAssessmentUserId != null and practicalAssessmentUserId != ''">
and e.practical_assessment_user_id = #{practicalAssessmentUserId}
</if>
<if test="assessmentStatus != null">
and e.assessment_status = #{assessmentStatus}
</if>
@@ -202,17 +200,19 @@
<if test="name != null and name != ''">
and u.username like concat('%',#{name},'%')
</if>
<if test="storeIdList != null and storeIdList.size() > 0">
<if test="practicalAssessmentUserId != null and practicalAssessmentUserId != '' and storeIdList != null and storeIdList.size() > 0">
and (e.practical_assessment_user_id = #{practicalAssessmentUserId}
or e.training_store_id in
<foreach collection="storeIdList" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
)
</if>
<if test="practicalAssessmentUserId == null and storeIdList != null and storeIdList.size() > 0">
and e.training_store_id in
<foreach collection="storeIdList" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="authRegionIdList != null and authRegionIdList.size() > 0">
and u.region_id in
<foreach collection="authRegionIdList" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>

View File

@@ -285,6 +285,17 @@
<foreach collection="regionIds" separator=" or " open="(" close=")" item="region" > region_path like concat("%", #{region}, "%")</foreach>
</select>
<select id="getStoreIdsByRegionIds" resultType="string">
select
store_id
from
region_${enterpriseId}
where
deleted = 0
and
<foreach collection="regionIds" separator=" or " open="(" close=")" item="region" > region_path like concat("%", #{region}, "%")</foreach>
</select>
<select id="getSubIdsByRegionpaths" resultType="string">
select
id

View File

@@ -29,6 +29,13 @@ public interface UserAuthMappingService {
*/
List<String> getAuthRegionIdAndSubRegionIdByUserId(String userId);
/**
* 获取用户授权的所有门店id
* @param userId
* @return
*/
List<String> getAuthStoreIdAndSubRegionIdByUserId(String userId);
/**
* 提供 根据职位 意向区域 查 对应人的接口 同时返回人名字
* @param userRoleEnum

View File

@@ -431,18 +431,27 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
@Override
public PageInfo<EmployeeTrainingVO> assessmentUserList(String userId, EmployeeAssessmentRequest request) {
List<String> authRegionIdList = new ArrayList<>();
if (StringUtils.isNotBlank(userId) && !sysRoleService.checkIsAdmin(userId)) {
authRegionIdList = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(userId);
List<String> requestStoreIdList = request.getStoreIdList();
Boolean isAdmin = sysRoleService.checkIsAdmin(userId);
if (CollectionUtils.isEmpty(requestStoreIdList) && StringUtils.isNotBlank(userId) && !isAdmin) {
requestStoreIdList = userAuthMappingService.getAuthStoreIdAndSubRegionIdByUserId(userId);
if(CollectionUtils.isEmpty(requestStoreIdList)){
return new PageInfo<>();
}
}
String practicalAssessmentUserId = userId;
//空意味着管理员
if(isAdmin){
practicalAssessmentUserId = null;
}
PageHelper.startPage(request.getPageNum(), request.getPageSize());
List<EmployeeTrainingVO> employeeTrainingVOList = employeeTrainingDAO
.assessmentUserList(request.getName(), userId, request.getAssessmentStatus(),
.assessmentUserList(request.getName(), practicalAssessmentUserId, request.getAssessmentStatus(),
DateUtils.parseLongDateToStr(request.getEstimatedAssessmentBeginTime()),
DateUtils.parseLongDateToStr(request.getEstimatedAssessmentEndTime()),
DateUtils.parseLongDateToStr(request.getActualAssessmentBeginTime()),
DateUtils.parseLongDateToStr(request.getActualAssessmentEndTime()), request.getStoreIdList(), authRegionIdList);
DateUtils.parseLongDateToStr(request.getActualAssessmentEndTime()), requestStoreIdList);
if (CollectionUtils.isEmpty(employeeTrainingVOList)) {
return new PageInfo<>(employeeTrainingVOList);
}

View File

@@ -79,6 +79,20 @@ public class UserAuthMappingServiceImpl implements UserAuthMappingService {
return regionIds;
}
@Override
public List<String> getAuthStoreIdAndSubRegionIdByUserId(String userId){
List<UserAuthMappingDO> userAuthMapping = listUserAuthMappingByUserId(userId);
if(CollectionUtils.isEmpty(userAuthMapping)){
return Lists.newArrayList();
}
List<String> regionIds = userAuthMapping.stream().map(UserAuthMappingDO::getMappingId).collect(Collectors.toList());
List<String> subRegionIds = regionMapper.getStoreIdsByRegionIds(regionIds);
if(CollectionUtils.isNotEmpty(subRegionIds)){
regionIds.addAll(subRegionIds);
}
return regionIds;
}
/**
* 提供 根据职位 意向区域 查 对应人的接口 同时返回人名字
* @param userRoleEnum

View File

@@ -103,7 +103,7 @@ public class EmployeeTrainingController {
@ApiOperation("培训-战区经理-考核员工列表")
@PostMapping("/assessmentUserList")
public ResponseResult<PageInfo<EmployeeTrainingVO>> assessmentUserList(@RequestBody EmployeeAssessmentRequest request) {
return ResponseResult.success(employeeTrainingService.assessmentUserList(null, request));
return ResponseResult.success(employeeTrainingService.assessmentUserList(CurrentUserHolder.getUserId(), request));
}
@ApiOperation("培训-督导-考核员工列表")