Merge remote-tracking branch 'origin/main' into main

main
SondonYong 2025-12-04 15:08:17 +08:00
commit 683a681e10
27 changed files with 264 additions and 90 deletions

View File

@ -2,6 +2,7 @@ package com.zcloud.basic.info;
import com.jjb.saas.base.starter.bootstart.JJBSpringbootApplication;
import com.jjb.saas.facade.starter.annotation.EnableFacadeRpcClient;
import com.jjb.saas.framework.event.consumer.EnableConsumer;
import org.springframework.boot.SpringApplication;
/**
@ -13,6 +14,7 @@ import org.springframework.boot.SpringApplication;
mapperPackages = {"com.zcloud.basic.info.persistence.mapper"}
)
//@EnableFacadeRpcClient
@EnableConsumer
public class Application {
public static void main(String[] args) {

View File

@ -2,29 +2,26 @@ package com.zcloud.basic.info.event;
import com.jjb.saas.framework.event.consumer.MessageConsumer;
import com.jjb.saas.framework.event.consumer.MsgConsumer;
import com.jjb.saas.framework.event.dto.BaseEvent;
import com.jjb.saas.framework.event.producer.RemoteEventPublisher;
import com.jjb.saas.system.client.user.event.UserAddEvent;
import com.zcloud.gbscommon.event.user.ZcUserEvent;
import lombok.Data;
import com.zcloud.gbscommon.event.user.ZcUserResignation;
import org.springframework.stereotype.Component;
/**
* @author lin
*/
@Component
@MsgConsumer(tag = "zcloud:user:ev")
public class UserUpdateAuditStatusConsumer implements MessageConsumer<ZcUserEvent> {
// private RemoteEventPublisher eventPublisher;
@MsgConsumer(tag = "zcloud:user:resignation")
public class UserUpdateAuditStatusConsumer implements MessageConsumer<ZcUserResignation> {
/* private RemoteEventPublisher eventPublisher;
// public UserUpdateAuditStatusConsumer(RemoteEventPublisher eventPublisher) {
// this.eventPublisher = eventPublisher;
// }
public UserUpdateAuditStatusConsumer(RemoteEventPublisher eventPublisher) {
this.eventPublisher = eventPublisher;
}*/
@Override
public void consume(ZcUserEvent event) {
public void consume(ZcUserResignation event) {
System.out.println(event.getName());
System.out.println(event.getUserId());
System.out.println(event.getCorpinfoId());
}

View File

@ -10,16 +10,24 @@ import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.basic.info.api.UserServiceI;
import com.zcloud.basic.info.dto.*;
import com.zcloud.basic.info.dto.clientobject.UserCO;
import com.zcloud.basic.info.persistence.dataobject.UserJobHandoverDO;
import com.zcloud.basic.info.plan.DockingRZUserPlanJob;
import com.zcloud.basic.info.dto.clientobject.UserXmfCO;
import com.zcloud.gbscommon.translateaop.TranslateField;
import com.zcloud.gbscommon.zclouduser.facade.ZcloudUserJobFacade;
import com.zcloud.gbscommon.zclouduser.request.ZcloudUserJobQry;
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserJobCo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
/**
@ -35,6 +43,9 @@ import javax.servlet.http.HttpServletResponse;
public class UserController {
private final UserServiceI userService;
private final TranslateField translateField;
// @DubboReference
// private List<ZcloudUserJobFacade> userJobFacadeList;
@ApiOperation("新增用户")
@PostMapping("/test")
public SingleResponse<UserCO> test(@RequestBody UserCO cmd) {
@ -82,6 +93,21 @@ public class UserController {
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<UserCO> getInfoById(@PathVariable("id") Long id) {
/* ZcloudUserJobQry zcloudUserJobQry = new ZcloudUserJobQry();
zcloudUserJobQry.setUserId(11L);
zcloudUserJobQry.setCorpinfoId(123L);
List<ZcloudUserJobCo> allJob = new ArrayList<>();
userJobFacadeList.forEach(userJobFacade -> {
try {
MultiResponse<ZcloudUserJobCo> userJob = userJobFacade.getUserJob(zcloudUserJobQry);
List<ZcloudUserJobCo> data = userJob.getData();
allJob.addAll(data);
}catch (Exception e){
System.out.println( e);
}
});
System.out.println(allJob);*/
return userService.getInfoById(id);
}
@ApiOperation("获取当前登录人信息")

View File

@ -1,32 +1,37 @@
package com.zcloud.basic.info.command;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.exception.BizException;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.system.client.user.facade.UserFacade;
import com.zcloud.basic.info.constant.RedisConstant;
import com.zcloud.basic.info.command.convertor.UserJobHandoverCoConvertor;
import com.zcloud.basic.info.domain.enums.UserChangeRecordStatusEnum;
import com.zcloud.basic.info.domain.enums.UserEmploymentFlagEnum;
import com.zcloud.basic.info.domain.enums.UserFlowFlagEnum;
import com.zcloud.basic.info.domain.enums.UserJobStatusEnum;
import com.zcloud.basic.info.domain.gateway.*;
import com.zcloud.basic.info.domain.model.*;
import com.zcloud.basic.info.dto.*;
import com.zcloud.basic.info.dto.clientobject.UserJobHandoverCO;
import com.zcloud.basic.info.persistence.dataobject.*;
import com.zcloud.basic.info.persistence.repository.*;
import com.zcloud.gbscommon.utils.Const;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.ZcloudRedisUtil;
import com.zcloud.gbscommon.zclouduser.facade.ZcloudUserJobFacade;
import com.zcloud.gbscommon.zclouduser.request.ZcloudUserJobQry;
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserJobCo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.catalina.User;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.time.LocalDateTime;
import java.util.Map;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
@ -37,6 +42,7 @@ import java.util.Map;
*/
@Component
@AllArgsConstructor
@Slf4j
public class UserUpdateExe {
private final UserGateway userGateway;
@ -51,9 +57,16 @@ public class UserUpdateExe {
private final DepartmentRepository departmentRepository;
private final UserCorpRecordRepository userCorpRecordRepository;
private final UserCorpRecordGateway userCorpRecordGateway;
private final UserJobHandoverRepository userJobHandoverRepository;
private final UserJobHandoverCoConvertor userJobHandoverCoConvertor;
@DubboReference
private UserFacade userFacade;
private ZcloudRedisUtil zcloudRedisUtil;
// @DubboReference
// private List<ZcloudUserJobFacade> userJobFacadeList;
@Transactional(rollbackFor = Exception.class)
public void execute(UserUpdateCmd userUpdateCmd) {
@ -164,47 +177,49 @@ public class UserUpdateExe {
//获取用户信息,并更新离职状态为离职
UserDO userDO = userRepository.getInfoById(userResignationCmd.getUserId());
//
UserE userE=null;
Long corpinfoId = userResignationCmd.getCorpinfoId()==null?AuthContext.getTenantId():userResignationCmd.getCorpinfoId();
UserE userE = null;
Long corpinfoId = userResignationCmd.getCorpinfoId() == null ? AuthContext.getTenantId() : userResignationCmd.getCorpinfoId();
Integer employmentFlagBefore;
if(UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())){
if (UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())) {
UserCorpDO userCorpDO = userCorpRepository.getInfoByUserId(userDO.getId(), corpinfoId);
if (userCorpDO == null) {
return;
}
employmentFlagBefore = userCorpDO.getEmploymentFlag();
userE=userCorpRepository.executeResignation(userCorpDO, corpinfoId,UserEmploymentFlagEnum.RESIGNATION.getCode());
}else{
userE = new UserE();
userE = userCorpRepository.executeResignation(userCorpDO, corpinfoId, UserEmploymentFlagEnum.RESIGNATION.getCode());
} else {
userE = new UserE();
BeanUtils.copyProperties(userDO, userE);
employmentFlagBefore = userDO.getEmploymentFlag();
userE.setEmploymentFlag(UserEmploymentFlagEnum.RESIGNATION.getCode());
userGateway.update(userE);
}
if(userE==null){
return;
if (userE == null) {
return;
}
//修改企业入职记录
UserCorpRecordDO userCorpRecordDO = userCorpRecordRepository.getInfoByUserId(userDO.getId(), corpinfoId,UserEmploymentFlagEnum.ON.getCode());
UserCorpRecordDO userCorpRecordDO = userCorpRecordRepository.getInfoByUserId(userDO.getId(), corpinfoId, UserEmploymentFlagEnum.ON.getCode());
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
if(userCorpRecordDO!=null){
if (userCorpRecordDO != null) {
BeanUtils.copyProperties(userCorpRecordDO, userCorpRecordE);
userCorpRecordE.executeResignation(userCorpRecordE,userE,UserEmploymentFlagEnum.RESIGNATION.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode());
userCorpRecordE.executeResignation(userCorpRecordE, userE, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode());
userCorpRecordGateway.update(userCorpRecordE);
}else{
userCorpRecordE.initResignation(userE,UserEmploymentFlagEnum.RESIGNATION.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode());
} else {
userCorpRecordE.initResignation(userE, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode());
userCorpRecordGateway.add(userCorpRecordE);
}
// 增加用户变更记录
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
userChangeRecordE.executeResignation(userE,UserEmploymentFlagEnum.RESIGNATION.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode(),employmentFlagBefore);
userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode(), employmentFlagBefore);
userChangeRecordGateway.add(userChangeRecordE);
//TODO 处理未完成工作
List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
userJobHandoverRepository.saveBatch(allJob);
//离职发送方mq消息
userRepository.sendResignationMq(userResignationCmd.getUserId(),corpinfoId);
}
public void executeReviewStatus(UserReviewStatusCmd userReviewStatusCmd) {
@ -216,11 +231,11 @@ public class UserUpdateExe {
switch (employmentFlagEnum) {
case ENTRY_AUDIT:
//入职待审核
ReviewEntryAudit(userDO,userReviewStatusCmd);
ReviewEntryAudit(userDO, userReviewStatusCmd);
break;
case RESIGNATION_AUDIT:
//离职待审核
ReviewResignationAudit(userDO,userReviewStatusCmd);
ReviewResignationAudit(userDO, userReviewStatusCmd);
break;
default:
throw new IllegalArgumentException("审核记录已完成");
@ -231,7 +246,7 @@ public class UserUpdateExe {
private void ReviewResignationAudit(UserDO userDO, UserReviewStatusCmd userReviewStatusCmd) {
Integer reviewStatus = userReviewStatusCmd.getReviewStatus();
//TODO 驳回需要待处理,暂时按照只能通过处理
Integer employmentFlag = UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus)?UserEmploymentFlagEnum.RESIGNATION.getCode():UserEmploymentFlagEnum.ON.getCode();
Integer employmentFlag = UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus) ? UserEmploymentFlagEnum.RESIGNATION.getCode() : UserEmploymentFlagEnum.ON.getCode();
UserE userE = null;
Long corpinfoId = userReviewStatusCmd.getCorpinfoId() == null ? AuthContext.getTenantId() : userReviewStatusCmd.getCorpinfoId();
if (UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())) {
@ -245,41 +260,41 @@ public class UserUpdateExe {
if (userE == null) {
return;
}
if(UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus)){
if (UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus)) {
//修改企业入职记录
UserCorpRecordDO userCorpRecordDO = userCorpRecordRepository.getInfoByUserId(userDO.getId(), corpinfoId, UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode());
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
if(userCorpRecordDO!=null){
if (userCorpRecordDO != null) {
BeanUtils.copyProperties(userCorpRecordDO, userCorpRecordE);
userCorpRecordE.executeResignation(userCorpRecordE,userE,UserEmploymentFlagEnum.RESIGNATION.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode());
userCorpRecordE.executeResignation(userCorpRecordE, userE, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode());
userCorpRecordGateway.update(userCorpRecordE);
}else{
userCorpRecordE.initResignation(userE,UserEmploymentFlagEnum.RESIGNATION.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode());
} else {
userCorpRecordE.initResignation(userE, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode());
userCorpRecordGateway.add(userCorpRecordE);
}
// 增加用户变更记录
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
userChangeRecordE.executeReviewStatus(userE, UserEmploymentFlagEnum.RESIGNATION.getCode());
userChangeRecordGateway.add(userChangeRecordE);
}else{
//驳回
// 发送mq消息 ,人员离职
userRepository.sendResignationMq(userE.getId(),corpinfoId);
//处理未完成的工作
userJobHandoverRepository.processUserJobHandover(userCorpRecordE.getUserCorpRecordId());
} else {
//驳回
UserCorpRecordDO userCorpRecordDO = userCorpRecordRepository.getInfoByUserId(userDO.getId(), corpinfoId, UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode());
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
if(userCorpRecordDO!=null){
if (userCorpRecordDO != null) {
BeanUtils.copyProperties(userCorpRecordDO, userCorpRecordE);
userCorpRecordE.executeResignation(userCorpRecordE,userE,UserEmploymentFlagEnum.ON.getCode(),UserChangeRecordStatusEnum.REJECTED.getCode());
userCorpRecordE.executeResignation(userCorpRecordE, userE, UserEmploymentFlagEnum.ON.getCode(), UserChangeRecordStatusEnum.REJECTED.getCode());
userCorpRecordGateway.update(userCorpRecordE);
}else{
userCorpRecordE.initResignation(userE,UserEmploymentFlagEnum.ON.getCode(),UserChangeRecordStatusEnum.REJECTED.getCode());
} else {
userCorpRecordE.initResignation(userE, UserEmploymentFlagEnum.ON.getCode(), UserChangeRecordStatusEnum.REJECTED.getCode());
userCorpRecordGateway.add(userCorpRecordE);
}
}
}
private void ReviewEntryAudit(UserDO userDO,UserReviewStatusCmd userReviewStatusCmd) {
private void ReviewEntryAudit(UserDO userDO, UserReviewStatusCmd userReviewStatusCmd) {
Integer reviewStatus = userReviewStatusCmd.getReviewStatus();
//TODO 驳回需要待处理,暂时按照只能通过处理
Integer employmentFlag = UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus)?UserEmploymentFlagEnum.ON.getCode():UserEmploymentFlagEnum.NOT_ON.getCode();
Integer employmentFlag = UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus) ? UserEmploymentFlagEnum.ON.getCode() : UserEmploymentFlagEnum.NOT_ON.getCode();
UserE userE = null;
Long corpinfoId = userReviewStatusCmd.getCorpinfoId() == null ? AuthContext.getTenantId() : userReviewStatusCmd.getCorpinfoId();
if (UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())) {
@ -293,7 +308,7 @@ public class UserUpdateExe {
if (userE == null) {
return;
}
if(UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus)){
if (UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus)) {
//增加企业入职记录
//增加用户入职企业. 驳回不增加下边信息
CorpInfoDO corpInfoDO = corpInfoRepository.getById(userE.getCorpinfoId());
@ -301,20 +316,20 @@ public class UserUpdateExe {
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
BeanUtils.copyProperties(userDO, userCorpRecordE);
userCorpRecordE.initAdd(userE,corpInfoDO.getCorpName(),departmentDO.getName());
userCorpRecordE.initAdd(userE, corpInfoDO.getCorpName(), departmentDO.getName());
userCorpRecordGateway.add(userCorpRecordE);
// 增加用户变更记录
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
userChangeRecordE.executeReviewStatus(userE, UserEmploymentFlagEnum.ON.getCode());
userChangeRecordGateway.add(userChangeRecordE);
}else{
} else {
//驳回
//驳回
UserCorpRecordDO userCorpRecordDO = userCorpRecordRepository.getInfoByUserId(userDO.getId(), corpinfoId, UserEmploymentFlagEnum.ENTRY_AUDIT.getCode());
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
if(userCorpRecordDO!=null){
if (userCorpRecordDO != null) {
BeanUtils.copyProperties(userCorpRecordDO, userCorpRecordE);
userCorpRecordE.executeEntryAudit(userCorpRecordE,userE,UserEmploymentFlagEnum.NOT_ON.getCode(),UserChangeRecordStatusEnum.REJECTED.getCode());
userCorpRecordE.executeEntryAudit(userCorpRecordE, userE, UserEmploymentFlagEnum.NOT_ON.getCode(), UserChangeRecordStatusEnum.REJECTED.getCode());
userCorpRecordGateway.update(userCorpRecordE);
}
}
@ -324,20 +339,20 @@ public class UserUpdateExe {
public void appUserResignation(AppUserResignationCmd appUserResignationCmd) {
//更新状态,添加记录
UserDO userDO = userRepository.getInfoById(appUserResignationCmd.getId());
if(userDO==null){
if (userDO == null) {
throw new IllegalArgumentException("用户信息不存在");
}
UserE userE = null;
Long corpinfoId = appUserResignationCmd.getCorpinfoId()==null?AuthContext.getTenantId():appUserResignationCmd.getCorpinfoId();
Long corpinfoId = appUserResignationCmd.getCorpinfoId() == null ? AuthContext.getTenantId() : appUserResignationCmd.getCorpinfoId();
Integer employmentFlagBefore = null;
if(UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())){
if (UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())) {
UserCorpDO userCorpDO = userCorpRepository.getInfoByUserId(userDO.getId(), corpinfoId);
if (userCorpDO == null) {
return;
}
employmentFlagBefore = userCorpDO.getEmploymentFlag();
userE=userCorpRepository.executeResignation(userCorpDO, corpinfoId,UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode());
}else{
userE = userCorpRepository.executeResignation(userCorpDO, corpinfoId, UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode());
} else {
userE = new UserE();
BeanUtils.copyProperties(userDO, userE);
employmentFlagBefore = userDO.getEmploymentFlag();
@ -347,9 +362,34 @@ public class UserUpdateExe {
//插入变更记录
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
userChangeRecordE.executeResignation(userE,UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode(),UserChangeRecordStatusEnum.PENDING.getCode(),employmentFlagBefore);
userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode(), UserChangeRecordStatusEnum.PENDING.getCode(), employmentFlagBefore);
userChangeRecordGateway.add(userChangeRecordE);
//TODO 处理未完成工作
List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
userJobHandoverRepository.saveBatch(allJob);
}
private List<UserJobHandoverDO> getUserJob(Long userId, Long corpinfoId, String userChangeRecordId) {
ZcloudUserJobQry zcloudUserJobQry = new ZcloudUserJobQry();
zcloudUserJobQry.setUserId(userId);
zcloudUserJobQry.setCorpinfoId(corpinfoId);
List<UserJobHandoverDO> allJob = new ArrayList<>();
/* userJobFacadeList.forEach(userJobFacade -> {
try {
MultiResponse<ZcloudUserJobCo> userJob = userJobFacade.getUserJob(zcloudUserJobQry);
List<ZcloudUserJobCo> data = userJob.getData();
List<UserJobHandoverDO> userJobHandoverEList = userJobHandoverCoConvertor.converCosToDOs( data);
userJobHandoverEList.forEach(userJobHandoverE -> {
userJobHandoverE.setUserChangeRecordId(userChangeRecordId);
});
allJob.addAll(userJobHandoverEList);
}catch (Exception e){
log.error("获取用户未完成工作失败, userId: {}, corpinfoId: {},类信息{}", userId, corpinfoId,userJobFacade.getClass(),e);
}
});*/
return allJob;
}
}

View File

@ -1,7 +1,9 @@
package com.zcloud.basic.info.command.convertor;
import com.zcloud.basic.info.domain.model.UserJobHandoverE;
import com.zcloud.basic.info.dto.clientobject.UserJobHandoverCO;
import com.zcloud.basic.info.persistence.dataobject.UserJobHandoverDO;
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserJobCo;
import org.mapstruct.Mapper;
import java.util.List;
@ -20,5 +22,7 @@ public interface UserJobHandoverCoConvertor {
* @return
*/
List<UserJobHandoverCO> converDOsToCOs(List<UserJobHandoverDO> userJobHandoverDOs);
List<UserJobHandoverDO> converCosToDOs(List<ZcloudUserJobCo> data);
}

View File

@ -104,6 +104,7 @@ public class UserQueryExe {
userCO.setSort(userCorpDO.getSort());
userCO.setCorpinfoId(userCorpDO.getCorpinfoId());
}
return SingleResponse.of(userCO);
}

View File

@ -103,9 +103,7 @@ public class CorpInfoServiceImpl implements CorpInfoServiceI {
@Override
public PageResponse<CorpUserMiddleCO> corpUserMiddlePage(CorpUserMiddleQry qry) {
return corpInfoQueryExe.corpUserMiddlePage(qry);
}
@Override

View File

@ -45,5 +45,20 @@ public class CorpUserMiddleQry extends PageQuery {
private String eqType;
@ApiModelProperty(value = "选取形式", name = "selectFrom")
private String selectFrom;
@ApiModelProperty(value = "所属省编码", name = "province", required = true)
private String eqProvince;
@ApiModelProperty(value = "所属市级编码", name = "city", required = true)
private String eqCity;
@ApiModelProperty(value = "所属区县编码", name = "country", required = true)
private String eqCountry;
@ApiModelProperty(value = "所属乡镇街道编码", name = "street", required = true)
private String eqStreet;
@ApiModelProperty(value = "所属村居委会编码", name = "village", required = true)
private String eqVillage;
}

View File

@ -44,8 +44,8 @@ public class UserJobHandoverAddCmd extends Command {
@NotEmpty(message = "工作内容不能为空")
private String workContent;
@ApiModelProperty(value = "交接状态,10:关闭任务", name = "handoverStatus", required = true)
@NotNull(message = "交接状态,10:关闭任务不能为空")
@ApiModelProperty(value = "交接状态,1:关闭任务", name = "handoverStatus", required = true)
@NotNull(message = "交接状态,1:关闭任务不能为空")
private Integer handoverStatus;
@ApiModelProperty(value = "交接人企业id", name = "handoverCompanyId", required = true)

View File

@ -45,8 +45,8 @@ public class UserJobHandoverUpdateCmd extends Command {
@ApiModelProperty(value = "工作内容", name = "workContent", required = true)
@NotEmpty(message = "工作内容不能为空")
private String workContent;
@ApiModelProperty(value = "交接状态,10:关闭任务", name = "handoverStatus", required = true)
@NotNull(message = "交接状态,10:关闭任务不能为空")
@ApiModelProperty(value = "交接状态,1:关闭任务", name = "handoverStatus", required = true)
@NotNull(message = "交接状态,1:关闭任务不能为空")
private Integer handoverStatus;
@ApiModelProperty(value = "交接人企业id", name = "handoverCompanyId", required = true)
@NotNull(message = "交接人企业id不能为空")

View File

@ -181,10 +181,12 @@ public class CorpInfoCO extends ClientObject {
private LocalDate licenseEnd;
//开户人idaccount_contact_id
@ApiModelProperty(value = "开户人id")
private String accountContactId;
private Long accountContactId;
//开户人姓名 account_contact_name
@ApiModelProperty(value = "开户人姓名")
private String accountContactName;
@ApiModelProperty(value = "租户名称")
private String tenantName;
//有无职业卫生信息,1:是,0:否
@ApiModelProperty(value = "有无职业卫生信息,1:是,0:否")
private Integer whetherHygieneFlag;

View File

@ -1,6 +1,7 @@
package com.zcloud.basic.info.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import com.jjb.saas.framework.auth.utils.AuthContext;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -85,7 +86,8 @@ public class CorpUserMiddleCO extends ClientObject {
@ApiModelProperty(value = "选取形式")
private String selectfromString;
@ApiModelProperty(value = "租户名称")
private String tenantName;
}

View File

@ -38,8 +38,8 @@ public class UserJobHandoverCO extends ClientObject {
//工作内容
@ApiModelProperty(value = "工作内容")
private String workContent;
//交接状态,10:关闭任务
@ApiModelProperty(value = "交接状态,10:关闭任务")
//交接状态,1:关闭任务
@ApiModelProperty(value = "交接状态,1:关闭任务")
private Integer handoverStatus;
//交接人企业id
@ApiModelProperty(value = "交接人企业id")

View File

@ -0,0 +1,20 @@
package com.zcloud.basic.info.domain.enums;
import lombok.Getter;
@Getter
public enum UserJobStatusEnum {
//交接状态,0:未处理1:关闭任务
UNTREATED(0, "未处理"),
CLOSE_TASK(1, "关闭任务"),
;
private final Integer code;
private final String name;
UserJobStatusEnum(Integer code, String name) {
this.code = code;
this.name = name;
}
}

View File

@ -2,6 +2,8 @@ package com.zcloud.basic.info.domain.gateway;
import com.zcloud.basic.info.domain.model.UserJobHandoverE;
import java.util.List;
/**
* web-domain
*
@ -26,5 +28,6 @@ public interface UserJobHandoverGateway {
Boolean deletedUserJobHandoverById(Long id);
Boolean deletedUserJobHandoverByIds(Long[] id);
}

View File

@ -138,9 +138,11 @@ public class CorpInfoE extends BaseE {
//营业执照结束时间
private LocalDate licenseEnd;
//开户人id
private String accountContactId;
private Long accountContactId;
//开户人姓名
private String accountContactName;
private String tenantName;
//有无职业卫生信息,1:是,0:否
private Integer whetherHygieneFlag;
//有无重大危险源,1:是,0:否

View File

@ -27,7 +27,7 @@ public class UserJobHandoverE extends BaseE {
private String workProject;
//工作内容
private String workContent;
//交接状态,10:关闭任务
//交接状态,1:关闭任务
private Integer handoverStatus;
//交接人企业id
private Long handoverCompanyId;

View File

@ -2,6 +2,7 @@ package com.zcloud.basic.info.gatewayimpl;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.exception.BizException;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.system.client.tenant.facade.TenantFacade;
import com.jjb.saas.system.client.tenant.request.OtaTenantAddCmd;
import com.zcloud.basic.info.domain.gateway.CorpInfoGateway;
@ -47,9 +48,10 @@ public class CorpInfoGatewayImpl implements CorpInfoGateway {
d.setCorpinfoId(Tools.get32UUID());
}
if(!CorpInfoE.isCorp()){
d.setAccountContactId(corpInfoE.getAccountContactId());
d.setAccountContactName(corpInfoE.getAccountContactName());
d.setAccountContactId(AuthContext.getUserId());
d.setAccountContactName(AuthContext.getName());
}
d.setTenantName(AuthContext.getCurrentUser().getTenantName());
corpInfoRepository.saveCorp(d);
// corpInfoRepository.save(d);

View File

@ -9,6 +9,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* web-infrastructure
@ -46,5 +47,7 @@ public class UserJobHandoverGatewayImpl implements UserJobHandoverGateway {
public Boolean deletedUserJobHandoverByIds(Long[] ids) {
return userJobHandoverRepository.removeByIds(Collections.singletonList(ids));
}
}

View File

@ -188,10 +188,12 @@ public class CorpInfoDO extends BaseDO {
private LocalDate licenseEnd;
//开户人idaccount_contact_id
@ApiModelProperty(value = "开户人id")
private String accountContactId;
private Long accountContactId;
//开户人姓名 account_contact_name
@ApiModelProperty(value = "开户人姓名")
private String accountContactName;
@ApiModelProperty(value = "租户名称")
private String tenantName;
//有无职业卫生信息,1:是,0:否
@ApiModelProperty(value = "有无职业卫生信息,1:是,0:否")
private Integer whetherHygieneFlag;

View File

@ -38,8 +38,8 @@ public class UserJobHandoverDO extends BaseDO {
//工作内容
@ApiModelProperty(value = "工作内容")
private String workContent;
//交接状态,10:关闭任务
@ApiModelProperty(value = "交接状态,10:关闭任务")
//交接状态,1:关闭任务
@ApiModelProperty(value = "交接状态,1:关闭任务")
private Integer handoverStatus;
//交接人企业id
@ApiModelProperty(value = "交接人企业id")

View File

@ -23,5 +23,7 @@ public interface UserJobHandoverRepository extends BaseRepository<UserJobHandove
SingleResponse<UserJobHandoverDO> getInfoById(Long id);
List<UserJobHandoverDO> getListByChangerRecordId(String userChangeRecordId);
void processUserJobHandover(String userCorpRecordId);
}

View File

@ -73,5 +73,7 @@ public interface UserRepository extends BaseRepository<UserDO> {
void saveUserXgf(UserDO d);
PageResponse<UserDO> listXgf(Map<String, Object> params);
void sendResignationMq(Long userId, Long corpinfoId);
}

View File

@ -81,6 +81,7 @@ public class UserCorpRepositoryImpl extends BaseRepositoryImpl<UserCorpMapper, U
userCorpMapper.updateById(userCorpDO);
UserE userE = new UserE();
BeanUtils.copyProperties(userCorpDO, userE);
userE.setId(userCorpDO.getUserId());
return userE;
}

View File

@ -1,6 +1,8 @@
package com.zcloud.basic.info.persistence.repository.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.zcloud.basic.info.domain.enums.UserJobStatusEnum;
import com.zcloud.basic.info.persistence.dataobject.UserJobHandoverDO;
import com.zcloud.basic.info.persistence.mapper.UserJobHandoverMapper;
import com.zcloud.basic.info.persistence.repository.UserJobHandoverRepository;
@ -61,5 +63,23 @@ public class UserJobHandoverRepositoryImpl extends BaseRepositoryImpl<UserJobHan
List<UserJobHandoverDO> result = userJobHandoverMapper.selectList(queryWrapper);
return result;
}
@Override
public void processUserJobHandover(String userCorpRecordId) {
//根据user_change_record_id 修改状态
LambdaUpdateWrapper<UserJobHandoverDO> updateWrapper = new LambdaUpdateWrapper<>();
// 设置更新条件
updateWrapper.eq(UserJobHandoverDO::getUserChangeRecordId, userCorpRecordId);
updateWrapper.eq(UserJobHandoverDO::getHandoverStatus, UserJobStatusEnum.UNTREATED.getCode());
// 设置要更新的字段
updateWrapper.set(UserJobHandoverDO::getHandoverStatus, UserJobStatusEnum.CLOSE_TASK.getCode());
// 执行更新
userJobHandoverMapper.update(null, updateWrapper);
}
}

View File

@ -1,6 +1,5 @@
package com.zcloud.basic.info.persistence.repository.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
@ -13,28 +12,29 @@ import com.jjb.saas.auth.client.account.facade.AccountFacade;
import com.jjb.saas.auth.client.account.request.AccountPasswordCheckCmd;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.framework.event.producer.RemoteEventPublisher;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.jjb.saas.system.client.role.facade.RoleFacade;
import com.jjb.saas.system.client.role.response.RoleCO;
import com.jjb.saas.system.client.system.facade.SystemFacade;
import com.jjb.saas.system.client.tenant.facade.TenantFacade;
import com.jjb.saas.system.client.user.facade.UserFacade;
import com.jjb.saas.system.client.user.request.*;
import com.zcloud.basic.info.domain.enums.UserFlowFlagEnum;
import com.zcloud.basic.info.domain.model.UserCorpE;
import com.zcloud.basic.info.domain.model.UserE;
import com.zcloud.basic.info.persistence.dataobject.DepartmentLeaderStatictiscDO;
import com.zcloud.basic.info.persistence.dataobject.UserDO;
import com.zcloud.basic.info.persistence.mapper.UserMapper;
import com.zcloud.basic.info.persistence.repository.UserRepository;
import com.zcloud.gbscommon.event.consttag.EventTagConst;
import com.zcloud.gbscommon.event.user.ZcUserResignation;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query;
import com.zcloud.gbscommon.utils.Tools;
import com.zcloud.gbscommon.utils.UuidUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
@ -53,6 +53,7 @@ import java.util.stream.Collectors;
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> implements UserRepository {
private final UserMapper userMapper;
@ -63,7 +64,8 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
@DubboReference(check = false)
private AccountFacade accountFacade;
@Autowired
private RemoteEventPublisher remoteEventPublisher;
@Override
public PageResponse<UserDO> listPage(Map<String, Object> params) {
IPage<UserDO> iPage = new Query<UserDO>().getPage(params);
@ -408,5 +410,18 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
IPage<UserDO> result = userMapper.listXgf(iPage, params);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public void sendResignationMq(Long userId, Long corpinfoId) {
try{
ZcUserResignation message = new ZcUserResignation();
message.setUserId(userId);
message.setCorpinfoId(corpinfoId);
remoteEventPublisher.sendMessage(message, EventTagConst.userResignationTag);
}catch (Exception e){
log.error("发送离职消息失败, userId: {}, corpinfoId: {}", userId, corpinfoId, e);
}
}
}

View File

@ -22,6 +22,21 @@
<if test="params.likeCorpName != null and params.likeCorpName.trim() != ''">
AND c.corp_name like concat('%',#{params.likeCorpName},'%')
</if>
<if test="params.eqProvince != null and params.eqProvince.trim() != ''">
AND c.province = #{params.eqProvince}
</if>
<if test="params.eqCity != null and params.eqCity.trim() != ''">
AND c.city = #{params.eqCity}
</if>
<if test="params.eqCountry != null and params.eqCountry.trim() != ''">
AND c.country = #{params.eqCountry}
</if>
<if test="params.eqStreet != null and params.eqStreet.trim() != ''">
AND c.street = #{params.eqStreet}
</if>
<if test="params.eqVillage != null and params.eqVillage.trim() != ''">
AND c.village = #{params.eqVillage}
</if>
group by c.id
ORDER BY
c.corp_order ASC,