feat:人员调动页面完成
This commit is contained in:
1 parent
46701dfdc6
commit
b914931b37
10 files changed
+88
-14
No files matched your search
+1
-1
@@ -15,7 +15,7 @@ import java.util.Arrays;
|
||||
public enum UserTransactionEnum {
|
||||
|
||||
LEAVE("10", "离职"),
|
||||
TRANSFER("20", "调岗(外地)"),
|
||||
RETIRE("20", "退休"),
|
||||
INNER_TRANSFER("30", "调岗(内部)"),
|
||||
;
|
||||
private final String type;
|
||||
|
||||
+4
@@ -11,6 +11,7 @@ import com.bsd.pjcloud.common.core.util.R;
|
||||
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||
import com.bsd.pjcloud.common.log.annotation.SysLog;
|
||||
import com.bsd.pjcloud.admin.service.SysUserTransactionService;
|
||||
import com.bsd.pjcloud.common.security.annotation.Inner;
|
||||
import com.bsd.pjcloud.common.security.service.PjcloudUser;
|
||||
import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
||||
import com.bsd.pjcloud.flow.task.dto.ProcessNodeRecordAssignUserParamDto;
|
||||
@@ -41,6 +42,9 @@ public class SysUserTransactionController {
|
||||
|
||||
/* ************************************* start callback start ************************************* */
|
||||
|
||||
@Inner(value = false)
|
||||
@Operation(summary = "申请调岗审批回调", description = "申请调岗审批回调")
|
||||
@PostMapping("/apply-callback")
|
||||
public void applyCallback(@RequestBody ProcessNodeRecordAssignUserParamDto dto, @RequestParam(required = false) Long tenantId) {
|
||||
sysUserTransactionService.applyCallback(dto, tenantId);
|
||||
}
|
||||
|
||||
+2
@@ -3,6 +3,8 @@ package com.bsd.pjcloud.admin.service;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.bsd.pjcloud.admin.api.dto.SysUserTransactionDto;
|
||||
import com.bsd.pjcloud.admin.api.dto.UserDTO;
|
||||
import com.bsd.pjcloud.admin.api.entity.SysUser;
|
||||
import com.bsd.pjcloud.admin.api.entity.SysUserTransactionEntity;
|
||||
import com.bsd.pjcloud.admin.api.vo.SysUserTransactionVo;
|
||||
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||
|
||||
+1
-2
@@ -915,11 +915,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
}
|
||||
|
||||
|
||||
|
||||
public List<SimpleUserListVO> listUserIdByDeptId(Long deptId, String name) {
|
||||
List<SysUser> sysUsers = baseMapper.selectList(Wrappers.<SysUser>lambdaQuery()
|
||||
.eq(SysUser::getDeptId, deptId)
|
||||
.like(StrUtil.isNotBlank(name),SysUser::getName, name));
|
||||
.like(StrUtil.isNotBlank(name), SysUser::getName, name));
|
||||
return com.bsd.pjcloud.common.core.util.BeanUtils.toBean(sysUsers, SimpleUserListVO.class);
|
||||
}
|
||||
|
||||
|
||||
+45
-6
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bsd.pjcloud.admin.api.constant.UserTransactionEnum;
|
||||
import com.bsd.pjcloud.admin.api.dto.SysUserTransactionDto;
|
||||
import com.bsd.pjcloud.admin.api.dto.UserDTO;
|
||||
import com.bsd.pjcloud.admin.api.entity.SysDept;
|
||||
import com.bsd.pjcloud.admin.api.entity.SysUser;
|
||||
import com.bsd.pjcloud.admin.api.entity.SysUserTransactionEntity;
|
||||
@@ -23,11 +24,16 @@ import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||
import com.bsd.pjcloud.common.data.resolver.ParamResolver;
|
||||
import com.bsd.pjcloud.common.data.tenant.TenantContextHolder;
|
||||
import com.bsd.pjcloud.common.security.service.PjcloudUser;
|
||||
import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
||||
import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowEngineService;
|
||||
import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum;
|
||||
import com.bsd.pjcloud.flow.task.dto.ProcessNodeRecordAssignUserParamDto;
|
||||
import com.bsd.pjcloud.wallet.api.entity.recharge.WalletRechargeApplyEntity;
|
||||
import com.bsd.pjcloud.flow.task.dto.TaskParamDto;
|
||||
import com.bsd.pjcloud.wallet.api.feign.RemoteWalletService;
|
||||
import com.bsd.pjcloud.wallet.api.feign.RemoteWalletThirdZyService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -48,6 +54,9 @@ public class SysUserTransactionServiceImpl extends ServiceImpl<SysUserTransactio
|
||||
private final SysUserService sysUserService;
|
||||
private final SysDeptService sysDeptService;
|
||||
|
||||
private final RemoteFlowEngineService remoteFlowEngineService;
|
||||
private final RemoteWalletThirdZyService remoteWalletThirdZyService;
|
||||
|
||||
private final FlowUtil flowUtil;
|
||||
|
||||
@Override
|
||||
@@ -70,22 +79,42 @@ public class SysUserTransactionServiceImpl extends ServiceImpl<SysUserTransactio
|
||||
if (ObjectUtil.notEqual(dto.getBizType(), UserTransactionEnum.INNER_TRANSFER.getType())) {
|
||||
dto.setIsWalletTransaction(YesNoEnum.YES.getCode());
|
||||
}
|
||||
// 查询调动用户
|
||||
SysUser userDetail = sysUserService.getById(dto.getUserId());
|
||||
// 如果是离职或者调岗(外地)自动移动到指定部门
|
||||
if (ObjectUtil.equals(dto.getBizType(), UserTransactionEnum.LEAVE.getType())) {
|
||||
Long deptId = null;
|
||||
try {
|
||||
String deptId = ParamResolver.getStr("USER_TRANSACTION_LEAVE");
|
||||
dto.setTargetDeptId(Long.valueOf(deptId));
|
||||
String deptIdStr = ParamResolver.getStr("USER_TRANSACTION_LEAVE");
|
||||
deptId = Long.valueOf(deptIdStr);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("请配置离职部门参数");
|
||||
}
|
||||
if (ObjectUtil.equals(userDetail.getDeptId(), deptId)) {
|
||||
throw new RuntimeException("用户已在离职人员部门");
|
||||
}
|
||||
dto.setTargetDeptId(deptId);
|
||||
}
|
||||
if (ObjectUtil.equals(dto.getBizType(), UserTransactionEnum.TRANSFER.getType())) {
|
||||
if (ObjectUtil.equals(dto.getBizType(), UserTransactionEnum.RETIRE.getType())) {
|
||||
Long deptId = null;
|
||||
try {
|
||||
String deptId = ParamResolver.getStr("USER_TRANSACTION_TRANSFER");
|
||||
dto.setTargetDeptId(Long.valueOf(deptId));
|
||||
String deptIdStr = ParamResolver.getStr("USER_TRANSACTION_TRANSFER");
|
||||
deptId = Long.valueOf(deptIdStr);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("请配置调岗(外地)部门参数");
|
||||
}
|
||||
if (ObjectUtil.equals(userDetail.getDeptId(), deptId)) {
|
||||
throw new RuntimeException("用户已在退休人员部门");
|
||||
}
|
||||
dto.setTargetDeptId(deptId);
|
||||
}
|
||||
if (ObjectUtil.equals(dto.getBizType(), UserTransactionEnum.INNER_TRANSFER.getType())) {
|
||||
if (ObjectUtil.isEmpty(ObjectUtil.isEmpty(dto.getTargetDeptId()))) {
|
||||
throw new RuntimeException("请选择目标部门");
|
||||
}
|
||||
if (ObjectUtil.equals(userDetail.getDeptId(), dto.getTargetDeptId())) {
|
||||
throw new RuntimeException("调动用户源部门和目标部门不能一致");
|
||||
}
|
||||
}
|
||||
// 查询发起用户
|
||||
SysUser applySysUser = sysUserService.getById(applyUser.getId());
|
||||
@@ -132,9 +161,14 @@ public class SysUserTransactionServiceImpl extends ServiceImpl<SysUserTransactio
|
||||
throw new RuntimeException("调动人<" + detail.getUsername() + ">手机号<" + detail.getUserMobile() + ">,审批中状态才可以修改");
|
||||
}
|
||||
}
|
||||
// 取消审批
|
||||
TaskParamDto dto = new TaskParamDto();
|
||||
dto.setProcessInstanceIdList(userList.stream().map(SysUserTransactionEntity::getProcessId).filter(ObjectUtil::isNotEmpty).distinct().toList());
|
||||
remoteFlowEngineService.stopProcessInstance(dto).getData();
|
||||
baseMapper.deleteBatchIds(list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 回调
|
||||
*/
|
||||
@@ -166,6 +200,11 @@ public class SysUserTransactionServiceImpl extends ServiceImpl<SysUserTransactio
|
||||
userUpdateObj.setUserId(detail.getUserId());
|
||||
userUpdateObj.setDeptId(detail.getTargetDeptId());
|
||||
sysUserService.updateById(userUpdateObj);
|
||||
// 通知正元
|
||||
if (ObjectUtil.equals(detail.getBizType(), UserTransactionEnum.INNER_TRANSFER.getType())) {
|
||||
// 通知正元
|
||||
remoteWalletThirdZyService.syncUserById(detail.getUserId());
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
||||
+2
-2
@@ -58,12 +58,12 @@ public class FlowUtil {
|
||||
log.error("|{}|请配置跨单位审批流程ID;userId:|{}|businessId:|{}|", TAG, user.getUserId(), businessId);
|
||||
throw new RuntimeException("请配置跨单位审批流程ID");
|
||||
}
|
||||
R<ProcessVO> detail = flowApiFlowService.getDetail(defaultRole);
|
||||
R<Process> detail = flowApiFlowService.getProcessByBusinessKey(defaultRole);
|
||||
if (Optional.of(detail.getData()).map(Process::getId).isEmpty()) {
|
||||
log.error("|{}|未查询到该审批流程;userId:|{}|businessId:|{}|", TAG, user.getUserId(), businessId);
|
||||
throw new RuntimeException("未查询到该审批流程");
|
||||
}
|
||||
ProcessVO processVo = detail.getData();
|
||||
Process processVo = detail.getData();
|
||||
ProcessInstanceParamDto processDto = new ProcessInstanceParamDto();
|
||||
if (ObjectUtil.isNotEmpty(dto)) {
|
||||
if (ObjectUtil.isNotEmpty(user.getUserId())) {
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
<where>
|
||||
<include refid="whereA"/>
|
||||
</where>
|
||||
order by a.create_time desc,a.id desc
|
||||
</select>
|
||||
|
||||
<select id="join" resultType="com.bsd.pjcloud.admin.api.vo.SysUserTransactionVo">
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.bsd.pjcloud.wallet.api.feign;
|
||||
|
||||
import com.bsd.pjcloud.common.core.constant.ServiceNameConstants;
|
||||
import com.bsd.pjcloud.common.core.util.R;
|
||||
import com.bsd.pjcloud.common.feign.annotation.NoToken;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
@FeignClient(contextId = "remoteWalletThirdZyService", value = ServiceNameConstants.WALLET_SERVICE)
|
||||
public interface RemoteWalletThirdZyService {
|
||||
|
||||
@NoToken
|
||||
@PostMapping("/mch-third-zy/sync-user")
|
||||
R syncUserById(@RequestParam Long userId);
|
||||
|
||||
}
|
||||
+1
@@ -3,4 +3,5 @@ com.bsd.pjcloud.wallet.api.feign.RemoteCodeUseService
|
||||
com.bsd.pjcloud.wallet.api.feign.RemoteWalletRechargeService
|
||||
com.bsd.pjcloud.wallet.api.feign.RemoteMchService
|
||||
com.bsd.pjcloud.wallet.api.feign.RemoteWalletSettingService
|
||||
com.bsd.pjcloud.wallet.api.feign.RemoteWalletThirdZyService
|
||||
com.bsd.pjcloud.wallet.api.feign.RemoteWalletTransactionService
|
||||
+14
-3
@@ -1,6 +1,7 @@
|
||||
package com.bsd.pjcloud.wallet.controller.third;
|
||||
|
||||
import com.bsd.pjcloud.common.core.util.R;
|
||||
import com.bsd.pjcloud.common.security.annotation.Inner;
|
||||
import com.bsd.pjcloud.wallet.api.vo.MchManageVo;
|
||||
import com.bsd.pjcloud.wallet.service.WalletThirdZyService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@@ -9,9 +10,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -25,6 +24,18 @@ public class WalletThirdZyController {
|
||||
|
||||
private final WalletThirdZyService walletThirdZyService;
|
||||
|
||||
/* ************************************* start 远程调用 start ************************************* */
|
||||
|
||||
@Inner
|
||||
@PostMapping("/sync-user")
|
||||
@Operation(summary = "同步全部用户")
|
||||
public R syncUserById(@RequestParam Long userId) {
|
||||
walletThirdZyService.syncAllUser(userId);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/* ************************************* end 远程调用 end ************************************* */
|
||||
|
||||
@GetMapping("/sync-all-mch")
|
||||
@Operation(summary = "同步全部商户")
|
||||
public R<MchManageVo> syncAllMch() {
|
||||
|
||||
Reference in new issue
Block a user