Commit f68114b5 authored by hongguangwu's avatar hongguangwu

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

parents da193285 f96d44b4
......@@ -18,4 +18,5 @@ public class EmpProjectStatusVo implements Serializable {
private String empIdcard;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime projectTime;
private String empProjectId;
}
......@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysCspDeptVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProjectBelongDept;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeProjectBelongDeptService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectScpVO;
......@@ -29,6 +30,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.UserPermissionVo;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
......@@ -182,4 +184,17 @@ public class TEmployeeProjectBelongDeptController {
return R.ok(tEmployeeProjectBelongDeptService.getNoneDeptCount(tEmployeeProjectBelongDept));
}
/**
* @Author huych
* @Description 根据项目id和用户id查询csp部门信息
* @Date 14:27 2025/3/10
* @Param
* @return
**/
@Inner
@PostMapping("/inner/saveOrDeleteDeptRelation")
public R<Boolean> saveOrDeleteDeptRelation(@RequestBody SysCspDeptVo vo) {
return R.ok(tEmployeeProjectBelongDeptService.saveOrDeleteDeptRelation(vo));
}
}
......@@ -20,6 +20,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysCspDeptVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProjectBelongDept;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectScpVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeProjectBelongDeptSearchVo;
......@@ -76,4 +77,6 @@ public interface TEmployeeProjectBelongDeptService extends IService<TEmployeePro
*/
Integer getNoneDeptCount(TEmployeeProjectBelongDeptSearchVo tEmployeeProjectBelongDept);
Boolean saveOrDeleteDeptRelation(SysCspDeptVo vo);
}
......@@ -22,6 +22,7 @@ import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysCspDeptVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProjectBelongDept;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeProjectBelongDeptMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeProjectBelongDeptService;
......@@ -194,4 +195,18 @@ public class TEmployeeProjectBelongDeptServiceImpl extends ServiceImpl<TEmployee
public Integer getNoneDeptCount(TEmployeeProjectBelongDeptSearchVo tEmployeeProjectBelongDept) {
return baseMapper.getNoneDeptCount(tEmployeeProjectBelongDept);
}
@Override
public Boolean saveOrDeleteDeptRelation(SysCspDeptVo vo) {
if (Common.isNotNull(vo.getDepartName())) {
TEmployeeProjectBelongDept dept = new TEmployeeProjectBelongDept();
dept.setId(vo.getProjectId());
dept.setEmpDeptid(vo.getDepartId().toString());
dept.setEmpDeptname(vo.getDepartName());
this.save(dept);
} else {
this.removeById(vo.getProjectId());
}
return true;
}
}
......@@ -155,6 +155,7 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
.eq(TEmployeeProject::getProjectStatus, CommonConstants.ZERO_INT).last(CommonConstants.LAST_ONE_SQL));
if (Common.isNotNull(employeeProject)) {
vo.setProjectTime(employeeProject.getCreateTime());
vo.setEmpProjectId(employeeProject.getId());
return vo;
}
return null;
......@@ -169,6 +170,7 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
.eq(TEmployeeProject::getProjectStatus, CommonConstants.ONE_INT).last(CommonConstants.LAST_ONE_SQL));
if (Common.isNotNull(employeeProject)) {
vo.setProjectTime(employeeProject.getLeaveTime());
vo.setEmpProjectId(employeeProject.getId());
return vo;
}
return null;
......
......@@ -2,6 +2,7 @@ package com.yifu.cloud.plus.v1.yifu.common.dapr.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysCspDeptVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TBusinessEmployeeExtendInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
......@@ -518,4 +519,15 @@ public class ArchivesDaprUtil {
public R<Boolean> selectExitEmpProject(TInsuranceUnpurchasePersonCardVo cardVo) {
return HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/temployeeproject/inner/selectExitEmpProject", JSON.toJSONString(cardVo), Boolean.class, SecurityConstants.FROM_IN);
}
/**
* @Author huyc
* @Description 新增或者删除项目档案与所属部门的关联表
* @Date 17:07 2025/3/10
* @Param
* @return
**/
public R<Boolean> saveOrDeleteDeptRelation(SysCspDeptVo vo) {
return HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/temployeeprojectbelongdept/inner/saveOrDeleteDeptRelation", JSON.toJSONString(vo), Boolean.class, SecurityConstants.FROM_IN);
}
}
package com.yifu.cloud.plus.v1.yifu.common.dapr.util;
import com.alibaba.fastjson.JSON;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
......@@ -129,4 +130,15 @@ public class UpmsDaprUtils {
public R<Boolean> selectExitDeptCompany(String deptId) {
return HttpDaprUtil.invokeMethodPost(daprUpmsProperties.getAppUrl(),daprUpmsProperties.getAppId(),"/user/inner/selectExitDeptCompany", deptId, Boolean.class, SecurityConstants.FROM_IN);
}
/**
* @Author huyc
* @Description 判断部门是否属于分公司
* @Date 10:38 2025/1/20
* @Param
* @return
**/
public R<SysCspDeptVo> selectCspDeptByUserDeptId(SysCspDeptVo vo) {
return HttpDaprUtil.invokeMethodPost(daprUpmsProperties.getAppUrl(),daprUpmsProperties.getAppId(),"/user/inner/selectInnerCspDeptByUserDeptId", JSON.toJSONString(vo), SysCspDeptVo.class, SecurityConstants.FROM_IN);
}
}
......@@ -98,6 +98,10 @@ public class EmployeeRegistration extends BaseEntity {
@TableField(exist = false)
private int outNum;
@Schema(description = "项目档案id")
@TableField(exist = false)
private String empProjectId;
}
......@@ -24,10 +24,12 @@ import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationHrExportVo;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationSearchVo;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysCspDeptVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProjectBelongDept;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpProjectStatusVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeProjectBelongDeptSearchCspVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ClientNameConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
......@@ -102,6 +104,12 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
*/
@Override
public IPage<EmployeeRegistration> getHrEmployeeRegistrationPage(Page<EmployeeRegistration> page, EmployeeRegistrationSearchVo employeeRegistration) {
YifuUser user = SecurityUtils.getUser();
long roleId = 1839501715787390978L;
boolean isSsc = this.haveRole(user, roleId);
if (isSsc) {
employeeRegistration.setCustomerUserLoginname(null);
}
return baseMapper.getEmployeeRegistrationPage(page, employeeRegistration);
}
......@@ -365,7 +373,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
exit = getOutEmpProjectStatus(vo);
}
if (Common.isNotNull(exit)) {
return R.ok(exit.getProjectTime());
return R.ok(exit);
}
registrationNow.setProcessStatus(CommonConstants.ZERO_STRING);
baseMapper.updateById(registrationNow);
......@@ -386,6 +394,13 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
logService.saveLog(registration.getId(), CommonConstants.ZERO_STRING,RegistConstants.MESSAGE_FINISH, registration.getProjectCreateTime(),
user.getNickname(),CommonConstants.ONE_STRING.equals(registrationNow.getFeedbackType())
? RegistConstants.BEFORE_IN_PROJECT :RegistConstants.BEFORE_OUT_PROJECT);
SysCspDeptVo vo = new SysCspDeptVo();
if (CommonConstants.ONE_STRING.equals(registrationNow.getFeedbackType())) {
vo.setDepartName(registrationNow.getEmpDeptname());
vo.setDepartId(Long.valueOf(registrationNow.getEmpDeptid()));
}
vo.setProjectId(registration.getEmpProjectId());
archivesDaprUtil.saveOrDeleteDeptRelation(vo);
baseMapper.updateById(registrationNow);
return R.ok();
}
......@@ -452,12 +467,24 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
//数据初始化
private void initRegistInfo(EmployeeRegistration insert,YifuUser user,TSettleDomainSelectVo selectVo) {
insert.setRegistorDeptname(user.getDeptName());
insert.setRegistorDeptid(user.getDeptId().toString());
SysCspDeptVo vo = new SysCspDeptVo();
vo.setUserId(user.getId());
vo.setProjectId(selectVo.getId());
R<SysCspDeptVo> booleanR = upmsDaprUtils.selectCspDeptByUserDeptId(vo);
if (Common.isEmpty(booleanR) || Common.isEmpty(booleanR.getData())) {
insert.setRegistorDeptname(user.getDeptName());
insert.setRegistorDeptid(user.getDeptId().toString());
insert.setEmpDeptid(user.getDeptId().toString());
insert.setEmpDeptname(user.getDeptName());
} else {
vo = booleanR.getData();
insert.setRegistorDeptname(vo.getDepartName());
insert.setRegistorDeptid(vo.getDepartId().toString());
insert.setEmpDeptid(vo.getDepartId().toString());
insert.setEmpDeptname(vo.getDepartName());
}
insert.setRegistorUsername(user.getNickname());
insert.setRegistorPhone(user.getPhone());
insert.setEmpDeptid(user.getDeptId().toString());
insert.setEmpDeptname(user.getDeptName());
insert.setCustomerPhone(selectVo.getCsPhone());
insert.setCustomerUsername(selectVo.getCsName());
insert.setCustomerUserLoginname(selectVo.getCsLoginName());
......@@ -516,6 +543,9 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if (!wxConfig.sendTextCard(restTemplate, requestMap)) {
wxConfig.sendTextCard(restTemplate, requestMap);
}
//企业微信发送记录
logService.saveLog(user.getUserId(), CommonConstants.ZERO_STRING,"企业微信消息提醒", LocalDateTime.now(),
registration.getRegistorUsername(),"提醒人:" + user.getNickname());
}
}
......@@ -601,4 +631,14 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
}
}
}
public boolean haveRole(YifuUser user, long roleId) {
List<Long> roleList = user.getClientRoleMap().get(ClientNameConstants.CLIENT_MVP);
for (Long role : roleList) {
if (role == roleId) {
return true;
}
}
return false;
}
}
package com.yifu.cloud.plus.v1.yifu.admin.api.vo;
import lombok.Data;
/**
* csp部门信息
*
* @author huych
* @since 1.9.7
*/
@Data
public class SysCspDeptVo {
/**
* 部门名称
*/
private String departName;
/**
* 部门id
*/
private Long departId;
/**
* 用户id
*/
private String userId;
/**
* 项目id
*/
private String projectId;
}
......@@ -665,4 +665,29 @@ public class UserController {
@RequestParam(required = false) String nickname) {
return userService.cspUserPage(page, deptId,username,nickname);
}
/**
* @Author huych
* @Description 根据项目id和用户id查询csp部门信息
* @Date 14:27 2025/3/10
* @Param
* @return
**/
@Inner
@PostMapping("/inner/selectInnerCspDeptByUserDeptId")
public R<SysCspDeptVo> selectInnerCspDeptByUserDeptId(@RequestBody SysCspDeptVo vo) {
return userService.selectCspDeptByUserDeptId(vo);
}
/**
* @Author huych
* @Description 根据项目id和用户id查询csp部门信息
* @Date 14:27 2025/3/10
* @Param
* @return
**/
@PostMapping("/selectCspDeptByUserDeptId")
public R<SysCspDeptVo> selectCspDeptByUserDeptId(@RequestBody SysCspDeptVo vo) {
return userService.selectCspDeptByUserDeptId(vo);
}
}
......@@ -18,6 +18,7 @@ package com.yifu.cloud.plus.v1.yifu.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserDeptPermission;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysCspDeptVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -36,4 +37,6 @@ public interface SysUserDeptPermissionMapper extends BaseMapper<SysUserDeptPermi
List<SysUserDeptPermission> getUserDeptPermissionList(@Param("userId")String userId);
SysCspDeptVo selectCasDeptVo(@Param("userId") String userId, @Param("projectId") String projectId);
}
......@@ -18,6 +18,7 @@ package com.yifu.cloud.plus.v1.yifu.admin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserDeptPermission;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysCspDeptVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserCspVO;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.UserPermissionVo;
......@@ -64,4 +65,6 @@ public interface SysUserDeptPermissionService extends IService<SysUserDeptPermis
R<Boolean> updateByIdAsso(UserCspVO entity);
R<Boolean> removeUserDeptPermissionById(String userId, String projectNo);
SysCspDeptVo selectCasDeptVo(String userId, String projectId);
}
......@@ -23,10 +23,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.admin.api.dto.UserDTO;
import com.yifu.cloud.plus.v1.yifu.admin.api.dto.UserInfo;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.BusinessUserVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserExcelVO;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserPasswordVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserVO;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import org.springframework.validation.BindingResult;
......@@ -215,4 +212,6 @@ public interface SysUserService extends IService<SysUser> {
R<IPage<SysUser>> cspUserPage(Page page, String deptId, String userName, String nickName);
R<SysCspDeptVo> selectCspDeptByUserDeptId(SysCspDeptVo vo);
}
......@@ -561,6 +561,10 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
*/
@Override
public R<String> removeCspDeptById(Long deptId) {
SysDept findInfo = baseMapper.selectById(deptId);
if (Common.isEmpty(findInfo)) {
return R.failed("部门未找到");
}
int hasChild = baseMapper.hasChildByDeptId(deptId);
if (hasChild > 0) {
return R.failed("存在下级部门,不允许删除");
......@@ -570,8 +574,9 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
return R.failed("部门下仍然有员工,请调出所有员工后,删除部门");
}
this.removeById(deptId);
// 清理用户权限,重新获取用户的部门权限
List<String> userNames = sysUserMapper.getCspUserByDeptId(deptId.toString());
// 清理用户权限,重新获取项目下的用户的部门权限
List<String> userNames = sysUserMapper.getCspUserByProjectNo(findInfo.getProjectNo());
if (Common.isNotNull(userNames)){
for (String us:userNames){
redisUtil.remove(CacheConstants.USER_DETAILS +"::"+ us);
......@@ -623,8 +628,9 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
baseMapper.updateById(updateEntity);
List<DeptSortVo> moveVos = dept.getDeptSortList();
baseMapper.batchUpdateSort(moveVos);
//清理用户权限
List<String> userNames = sysUserMapper.getCspUserByDeptId(dept.getDeptId());
// 清理用户权限
// List<String> userNames = sysUserMapper.getCspUserByDeptId(dept.getDeptId());
List<String> userNames = sysUserMapper.getCspUserByProjectNo(updateEntity.getProjectNo());
if (Common.isNotNull(userNames)){
for (String us:userNames){
redisUtil.remove(CacheConstants.USER_DETAILS +"::"+ us);
......
......@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysDept;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUserDeptPermission;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysCspDeptVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.UserCspVO;
import com.yifu.cloud.plus.v1.yifu.admin.constants.UserDeptPermConstants;
import com.yifu.cloud.plus.v1.yifu.admin.mapper.SysDeptMapper;
......@@ -398,9 +399,19 @@ public class SysUserDeptPermissionServiceImpl extends ServiceImpl<SysUserDeptPer
if (Common.isEmpty(permission)){
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
SysUser user = sysUserMapper.selectById(userId);
if (Common.isEmpty(user)){
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
if (baseMapper.deleteById(permission.getId()) > CommonConstants.ZERO_INT){
redisUtil.remove(CacheConstants.USER_DETAILS +"::"+ user.getUsername());
return R.ok(Boolean.TRUE,CommonConstants.RESULT_DATA_SUCESS);
}
return R.failed(Boolean.FALSE,CommonConstants.RESULT_DATA_FAIL);
}
@Override
public SysCspDeptVo selectCasDeptVo(String userId, String projectId) {
return baseMapper.selectCasDeptVo(userId,projectId);
}
}
......@@ -1012,4 +1012,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return R.ok(baseMapper.cspUserPage(page,deptId,userName,nickName,dept.getProjectNo()));
}
@Override
public R<SysCspDeptVo> selectCspDeptByUserDeptId(SysCspDeptVo vo) {
SysCspDeptVo returnVo = userDeptPermissionService.selectCasDeptVo(vo.getUserId(),vo.getProjectId());
if (Common.isEmpty(returnVo)) {
return null;
} else {
vo.setDepartName(returnVo.getDepartName());
vo.setDepartId(returnVo.getDepartId());
}
return R.ok(vo);
}
}
......@@ -59,4 +59,14 @@
FROM sys_user_dept_permission a
WHERE a.user_id = #{userId}
</select>
<select id="selectCasDeptVo" resultType="com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysCspDeptVo">
SELECT
b.name as departName,
a.dept_id as departId
FROM sys_user_dept_permission a
inner join sys_dept b on a.dept_id = b.dept_id
WHERE a.user_id = #{userId} and a.project_id = #{projectId}
limit 1
</select>
</mapper>
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