Commit 64950969 authored by fangxinjiang's avatar fangxinjiang

Merge remote-tracking branch 'origin/MVP1.7.7' into MVP1.7.7

parents ece358ae 43447079
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
......@@ -15,5 +16,6 @@ import java.time.LocalDateTime;
public class EmpProjectStatusVo implements Serializable {
private String deptNo;
private String empIdcard;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime projectTime;
}
......@@ -392,4 +392,15 @@ public class TEmployeeProjectController {
public EmpProjectStatusVo getEmpProjectStatus(@RequestBody EmpProjectStatusVo vo) {
return tEmployeeProjectService.getEmpProjectStatus(vo);
}
/**
* 通过项目编码查询项目信息
* @param tEmployeeProject
* @return R
*/
@Operation(summary = "通过项目编码查询项目信息", description = "通过项目编码查询项目信息")
@GetMapping("/getProjectByDetpNo" )
public R<IPage<TEmployeeProject>> getProjectByDetpNo(Page page, TEmployeeProject tEmployeeProject) {
return R.ok(tEmployeeProjectService.getProjectByDetpNo(page,tEmployeeProject));
}
}
......@@ -330,6 +330,24 @@ public class TSettleDomainController {
return tSettleDomainService.getSettleInfoByCodes(codes);
}
/**
* @Author huych
* @Description 通过项目编码获取项目信息
* @Date 11:37 2025/3/3
* @Param
* @return
**/
@Operation(description = "通过项目编码获取项目信息")
@SysLog("通过项目编码获取项目信息")
@PostMapping("/getSettleDomainByNo")
public R getSettleDomainByNo(@RequestParam String deptNo) {
TSettleDomain tSettleDomain = tSettleDomainService.getOne(Wrappers.<TSettleDomain>query().lambda()
.eq(TSettleDomain::getDepartNo, deptNo)
.eq(TSettleDomain::getDeleteFlag,CommonConstants.ZERO_STRING)
.last(CommonConstants.LAST_ONE_SQL));
return R.ok(tSettleDomain);
}
/**
* @param id 项目主键
* @Description: 通过id获取结算主体及单位部分信息
......
......@@ -54,6 +54,8 @@ public interface TEmployeeProjectMapper extends BaseMapper<TEmployeeProject> {
IPage<TEmployeeProject> getTEmployeeProjectInfoPage(Page page, @Param("tEmployeeProject") TEmployeeProject tEmployeeProject);
IPage<TEmployeeProject> getProjectByDetpNo(Page page, @Param("tEmployeeProject") TEmployeeProject tEmployeeProject);
// getTEmployeeProjectExportPage 改造
List<EmployeeProjectExportVO> noPageDiy(@Param("tEmployeeProject")EmployeeProjectExportParamVO searchVo);
......
......@@ -178,6 +178,8 @@ public interface TEmployeeProjectService extends IService<TEmployeeProject> {
R getItemByEmpNo(String empIdcard, String empNo);
IPage<TEmployeeProject> getProjectByDetpNo(Page page, TEmployeeProject tEmployeeProject);
/**
* @param empId
* @param deptId
......
......@@ -1366,6 +1366,12 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
return R.ok(map);
}
@Override
public IPage<TEmployeeProject> getProjectByDetpNo(Page page, TEmployeeProject tEmployeeProject) {
return baseMapper.getProjectByDetpNo(page,tEmployeeProject);
}
@Override
public TEmployeeProject getByEmpIdAndDeptId(String empId, String deptId) {
TEmployeeProject employeeProject = null;
......
......@@ -30,6 +30,8 @@
<result property="empDeptid" column="emp_deptid"/>
</resultMap>
<sql id="tEmployeeProjectBelongDept_where">
/* 派单审核通过,或其他路径 */
and ((a.PROJECT_SOURCE = '1' and a.STATUS = 1) or a.PROJECT_SOURCE != '1')
<if test="tEmployeeProjectBelongDept != null">
<if test="tEmployeeProjectBelongDept.deptId != null and tEmployeeProjectBelongDept.deptId.trim() != ''">
AND a.DEPT_ID = #{tEmployeeProjectBelongDept.deptId}
......@@ -170,7 +172,7 @@
from t_employee_project_belong_dept b
LEFT JOIN t_employee_project a on b.id = a.id
<where>
a.DELETE_FLAG ='0'
a.DELETE_FLAG ='0' and ((a.PROJECT_SOURCE = '1' and a.STATUS = 1) or a.PROJECT_SOURCE != '1')
<if test="tEmployeeProjectBelongDept.deptId != null and tEmployeeProjectBelongDept.deptId.trim() != ''">
AND a.DEPT_ID = #{tEmployeeProjectBelongDept.deptId}
</if>
......@@ -186,7 +188,7 @@
from t_employee_project_belong_dept b
LEFT JOIN t_employee_project a on b.id = a.id
<where>
a.DELETE_FLAG ='0'
a.DELETE_FLAG ='0' and ((a.PROJECT_SOURCE = '1' and a.STATUS = 1) or a.PROJECT_SOURCE != '1')
<if test="deptId != null and deptId.trim() != ''">
AND a.DEPT_ID = #{deptId}
</if>
......@@ -207,7 +209,7 @@
from t_employee_project a
LEFT JOIN t_employee_project_belong_dept b on a.id=b.id
<where>
a.DELETE_FLAG ='0' and b.id is null
a.DELETE_FLAG ='0' and ((a.PROJECT_SOURCE = '1' and a.STATUS = 1) or a.PROJECT_SOURCE != '1') and b.id is null
<if test="tEmployeeProjectBelongDept.deptId != null and tEmployeeProjectBelongDept.deptId.trim() != ''">
AND a.DEPT_ID = #{tEmployeeProjectBelongDept.deptId}
</if>
......
......@@ -869,6 +869,23 @@
order by a.CREATE_TIME desc
</select>
<!--tEmployeeInfo简单分页查询-->
<select id="getProjectByDetpNo" resultMap="tEmployeeProjectMap">
SELECT
a.ID,
a.EMP_NAME,
a.EMP_IDCARD,
b.EMP_PHONE
FROM t_employee_project a left join t_employee_info b on a.EMP_ID = b.id
where
a.DELETE_FLAG = '0' and a.DEPT_NO = #{tEmployeeProject.deptNo}
and a.PROJECT_STATUS = 0
<if test="tEmployeeProject.empIdcard != null and tEmployeeProject.empIdcard.trim() != ''">
AND (a.EMP_IDCARD like concat('%',#{tEmployeeProject.empIdcard},'%') or a.EMP_NAME like concat('%',#{tEmployeeProject.empIdcard}))
</if>
order by a.CREATE_TIME desc
</select>
<!--tEmployeeInfo导出查询改造 fxj 2022-11-03-->
<select id="noPageDiy" resultMap="tEmployeeProjectExportMap">
SELECT
......
......@@ -20,16 +20,16 @@ import java.util.Date;
@ColumnWidth(12)
public class EmployeeRegistrationHrExportVo extends RowIndex implements Serializable {
@ExcelAttribute(name = "项目名称")
@Schema(description = "项目名称")
@ExcelProperty("项目名称")
private String deptName;
@ExcelAttribute(name = "项目编码")
@Schema(description = "项目编码")
@ExcelProperty("项目编码")
private String deptNo;
@ExcelAttribute(name = "项目名称")
@Schema(description = "项目名称")
@ExcelProperty("项目名称")
private String deptName;
@ExcelAttribute(name = "员工姓名")
@Schema(description = "员工姓名")
@ExcelProperty("员工姓名")
......
......@@ -383,7 +383,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
return RegistConstants.REGIST_SAME_CHECK;
}
//针对离职的判断人员项目档案状态是否正常
if (CommonConstants.ONE_STRING.equals(registration.getFeedbackType())) {
if (CommonConstants.TWO_STRING.equals(registration.getFeedbackType())) {
EmpProjectStatusVo vo = new EmpProjectStatusVo();
vo.setEmpIdcard(registration.getEmpIdcard());
vo.setDeptNo(registration.getDeptNo());
......@@ -428,6 +428,9 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
private void sendMessageToWx(EmployeeRegistration registration, String type) {
//获取前端客服
SysUser user;
if (Common.isEmpty(registration.getCustomerUserLoginname())) {
return;
}
R<SysUser> res = upmsDaprUtils.getSimpleUserByLoginName(registration.getCustomerUserLoginname());
if (Common.isNotNull(res) && Common.isNotNull(res.getData())){
user = res.getData();
......
......@@ -165,6 +165,7 @@
1=1
<include refid="employeeRegistration_where"/>
</where>
order by a.create_time desc
</select>
<select id="selectExportCount" resultType="java.lang.Long">
......@@ -193,10 +194,11 @@
<where>
1=1
<include refid="employeeRegistration_where"/>
<if test="employeeRegistration.limitStart != null">
limit #{employeeRegistration.limitStart},#{employeeRegistration.limitEnd}
</if>
</where>
order by a.create_time desc
<if test="employeeRegistration.limitStart != null">
limit #{employeeRegistration.limitStart},#{employeeRegistration.limitEnd}
</if>
</select>
......@@ -218,9 +220,10 @@
<where>
1=1
<include refid="employeeRegistration_where"/>
<if test="employeeRegistration.limitStart != null">
limit #{employeeRegistration.limitStart},#{employeeRegistration.limitEnd}
</if>
</where>
order by a.create_time desc
<if test="employeeRegistration.limitStart != null">
limit #{employeeRegistration.limitStart},#{employeeRegistration.limitEnd}
</if>
</select>
</mapper>
......@@ -451,7 +451,7 @@ public class TInsuranceUnpurchaseApplyServiceImpl extends ServiceImpl<TInsurance
autoAuditRecord.setNodeId(CommonConstants.EMPTY_STRING);
autoAuditRecord.setNodeName("SSC审核");
autoAuditRecord.setApprovalMan(CommonConstants.ONE_STRING);
autoAuditRecord.setApprovalManName("系统默认审核通过");
autoAuditRecord.setApprovalManName("首次申请,系统默认审核通过");
autoAuditRecord.setApprovalOpinion("默认审核通过");
autoAuditRecord.setApprovalTime(LocalDateTime.now());
autoAuditRecord.setDeleteFlag(CommonConstants.NOT_DELETE_FLAG);
......
......@@ -44,23 +44,6 @@ public interface SysUserDeptPermissionService extends IService<SysUserDeptPermis
*/
SysUserDeptPermission getInfo(String projectNo, String userId);
/**
* 项目下用户数据权限
* @param projectNo 项目编号
* @param userId 用户ID
*
* @return UserPermissionVo 用户在指定项目下的权限
*/
UserPermissionVo getUserPermissionVo(String projectNo, String userId);
/**
* 用户所有项目的数据权限
* @param userId 用户ID
*
* @return Map<String, UserPermissionVo> 用户不同项目的数据权限
*/
Map<String, UserPermissionVo> getUserPermissionFlush(String userId);
/**
* 客户服务平台——用户权限控制
* @param sysUserDeptPermission 实体
......
......@@ -494,13 +494,13 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
if (Common.isEmpty(info)) {
return R.failed("父级部门未找到");
}
if (Common.isNotNull(info.getAncestors())){
// todo 商量是否加这个限制
String[] split = info.getAncestors().split(",");
if (split.length >= 6){
return R.failed("添加部门的层级超出限制,最多支持5级");
}
}
// 暂时不加这个限制
// if (Common.isNotNull(info.getAncestors())){
// String[] split = info.getAncestors().split(",");
// if (split.length >= 6){
// return R.failed("添加部门的层级超出限制,最多支持5级");
// }
// }
dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
}
}
......
......@@ -73,139 +73,7 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer
return baseMapper.selectOne(permissionQuery);
}
@Override
public UserPermissionVo getUserPermissionVo(String projectNo, String userId) {
UserPermissionVo authority = new UserPermissionVo();
if (Common.isEmpty(projectNo) && Common.isEmpty(userId)) {
log.error("获取用户权限失败,缺少用户或项目信息");
return authority;
}
Object cacheValue = redisUtil.get(CacheConstants.PROJECT_USER_PERMISSION + projectNo +"_"+ userId);
if (null != cacheValue) {
authority = (UserPermissionVo) cacheValue;
} else {
Map<String, UserPermissionVo> tPermissionMapByProject = getUserPermissionFlush(userId);
authority = tPermissionMapByProject.get(projectNo);
}
return authority;
}
@Override
public Map<String, UserPermissionVo> getUserPermissionFlush(String userId) {
UserPermissionVo authority;
Map<String, UserPermissionVo> tPermissionMapByProject = new HashMap<>();if (Common.isEmpty(userId)) {
log.error("获取用户权限失败,缺少用户信息");
return tPermissionMapByProject;
}
String deptIdSplit = "";
Long deptId = 0L;
Set<String> permissionDbSet = null;
List<SysUserDeptPermission> tPermissionInfoList = baseMapper.getUserDeptPermissionList(userId);
if (Common.isEmpty(tPermissionInfoList)) {
log.error("获取用户权限失败,未获取到用户在项目下的权限信息>>用户"+userId);
return tPermissionMapByProject;
}
Set<String> projectNoSet = tPermissionInfoList.stream().map(SysUserDeptPermission::getProjectNo).collect(Collectors.toSet());
Map<String, SysUserDeptPermission> tPermissionMap = tPermissionInfoList.stream().collect(Collectors.toMap(SysUserDeptPermission::getProjectNo, v -> v, (v1, v2) -> v1));
SysUserDeptPermission tPermissionInfo;
for (String projectNoStr : projectNoSet) {
tPermissionInfo = tPermissionMap.get(projectNoStr);
// 没有配置部门
if(Common.isEmpty(tPermissionInfo)){
authority = new UserPermissionVo();
log.error("获取用户权限失败,该用户指定项目权限{}", userId);
authority.setHaveAll(false);
redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
continue;
}else {
authority = new UserPermissionVo();
authority.setProjectNo(projectNoStr);
authority.setProjectName(tPermissionInfo.getProjectName());
authority.setUserType(tPermissionInfo.getUserType());
if (CommonConstants.ZERO_STRING.equals(tPermissionInfo.getPermissionsType())) {
// 全部数据
authority.setHaveAll(true);
// redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
} else if (CommonConstants.THREE_STRING.equals(tPermissionInfo.getPermissionsType())) {
// 指定部门权限
if (Common.isNotKong(tPermissionInfo.getAppointDeptScope())) {
authority.setHaveAll(false);
String[] appointDeptIdArr = tPermissionInfo.getAppointDeptScope().split(CommonConstants.COMMA_STRING);
Set<String> appointDeptIdSet = Arrays.stream(appointDeptIdArr).collect(Collectors.toSet());
authority.setDepartIdSet(appointDeptIdSet);
authority.setUserId(userId);
// redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
} else {
log.error("获取用户权限失败,该用户指定部门权限为空{}", userId);
authority.setHaveAll(false);
redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
continue;
}
} else {
SysDept sysDept = sysDeptMapper.selectById(tPermissionInfo.getDeptId());
if (Common.isNotKong(sysDept)) {
String ancestors = sysDept.getAncestors();
if (Common.isEmpty(ancestors)) {
log.error("获取用户权限失败,该用户所属部门关系为空{}", sysDept);
authority.setHaveAll(false);
redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
continue;
}
String[] ancestorsSplit = ancestors.split(CommonConstants.COMMA_STRING);
if (CommonConstants.ONE_STRING.equals(tPermissionInfo.getPermissionsType())) {
// 二级部门及以下
if (ancestorsSplit.length == 2) {
deptIdSplit = ancestorsSplit[0] + CommonConstants.COMMA_STRING + ancestorsSplit[1] + CommonConstants.COMMA_STRING + sysDept.getDeptId();
deptId = sysDept.getDeptId();
} else if (ancestorsSplit.length > 2) {
deptIdSplit = ancestorsSplit[0] + CommonConstants.COMMA_STRING + ancestorsSplit[1] + CommonConstants.COMMA_STRING + ancestorsSplit[2];
deptId = Long.valueOf(ancestorsSplit[2]);
} else {
log.error("获取用户权限失败,该用户所在部门为顶级部门,未查到权限{}", sysDept);
authority.setHaveAll(false);
redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
continue;
}
} else if (CommonConstants.TWO_STRING.equals(tPermissionInfo.getPermissionsType())) {
// 本级部门及以下
deptIdSplit = ancestors + CommonConstants.COMMA_STRING + sysDept.getDeptId();
deptId = sysDept.getDeptId();
}
// 获取指定部门及下级部门的数据
List<SysDept> sysDeptList = sysDeptMapper.getDeptListByDeptId(deptIdSplit, deptId);
if (Common.isNotKong(sysDeptList)) {
permissionDbSet = new HashSet<>();
for(SysDept deptOne : sysDeptList){
permissionDbSet.add(String.valueOf(deptOne.getDeptId()));
}
authority.setHaveAll(false);
authority.setDepartIdSet(permissionDbSet);
authority.setUserId(userId);
//redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
} else {
log.error("获取用户权限失败,该用户部门及以下权限为空{}", userId);
authority.setHaveAll(false);
redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
continue;
}
} else {
log.error("获取用户权限失败,该用户所属部门不存在{}", userId);
authority.setHaveAll(false);
redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
continue;
}
}
}
// 赋值用户在不同项目下的权限
tPermissionMapByProject.put(projectNoStr,authority);
redisUtil.set(CacheConstants.PROJECT_USER_PERMISSION + projectNoStr +"_"+ userId, authority);
}
return tPermissionMapByProject;
}
/**
* 客户服务平台——用户权限控制
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment