Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

tags/24080901
PoffyZhang 1 anno fa
parent
commit
3267cf6c94
20 ha cambiato i file con 379 aggiunte e 105 eliminazioni
  1. +0
    -20
      pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingEmployeeInfoController.java
  2. +26
    -1
      pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java
  3. +2
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/OrganizationProcdefController.java
  4. +41
    -1
      pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java
  5. +31
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/organization/model/po/ReqOrganizationListPO.java
  6. +38
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/organization/model/vo/ResOrganizationListVO.java
  7. +3
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/todocenter/controller/TodoCenterController.java
  8. +28
    -19
      pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java
  9. +18
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/user/constant/UserAvailableEnum.java
  10. +11
    -5
      pmapi/src/main/java/com/ningdatech/pmapi/user/controller/UserInfoController.java
  11. +6
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java
  12. +83
    -5
      pmapi/src/main/java/com/ningdatech/pmapi/user/manage/UserInfoManage.java
  13. +0
    -33
      pmapi/src/main/java/com/ningdatech/pmapi/user/model/base/UserRoleInfo.java
  14. +12
    -5
      pmapi/src/main/java/com/ningdatech/pmapi/user/model/po/ReqUserDetailEditPO.java
  15. +6
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/user/model/po/ReqUserDetailPO.java
  16. +5
    -4
      pmapi/src/main/java/com/ningdatech/pmapi/user/model/po/ReqUserDisableOrEnablePO.java
  17. +5
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/user/model/po/ReqUserInfoListPO.java
  18. +6
    -4
      pmapi/src/main/java/com/ningdatech/pmapi/user/model/vo/ResUserDetailVO.java
  19. +21
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/user/model/vo/UserRoleVO.java
  20. +37
    -0
      pmapi/src/test/java/com/ningdatech/pmapi/todocenter/TodoCenterTest.java

+ 0
- 20
pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingEmployeeInfoController.java Vedi File

@@ -1,20 +0,0 @@
package com.ningdatech.pmapi.organization.controller;


import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.stereotype.Controller;

/**
* <p>
* 前端控制器
* </p>
*
* @author Lierbao
* @since 2023-02-11
*/
@Controller
@RequestMapping("/pmapi.organization/ding-employee-info")
public class DingEmployeeInfoController {

}

+ 26
- 1
pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java Vedi File

@@ -1,10 +1,22 @@
package com.ningdatech.pmapi.organization.controller;


import com.ningdatech.basic.model.PageVo;
import com.ningdatech.pmapi.organization.manage.OrganizationManage;
import com.ningdatech.pmapi.organization.model.po.ReqOrganizationListPO;
import com.ningdatech.pmapi.organization.model.vo.ResOrganizationListVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;

/**
* <p>
@@ -14,14 +26,27 @@ import org.springframework.web.bind.annotation.RequestMapping;
* @author Lierbao
* @since 2023-02-09
*/
@Controller

@Slf4j
@Validated
@RestController
@RequiredArgsConstructor
@Api(value = "DingOrganizationController", tags = "单位管理")
@RequestMapping("/api/v1/organization")
public class DingOrganizationController {

private final OrganizationManage organizationManage;

@ApiModelProperty("单位成员配置")
@PostMapping("/member/config")
public void organizationManage() {

}

@ApiModelProperty("单位列表筛选")
@PostMapping("/list")
public PageVo<ResOrganizationListVO> organizationList(@Valid @RequestBody ReqOrganizationListPO reqOrganizationListPO) {
return organizationManage.organizationList(reqOrganizationListPO);
}

}

+ 2
- 2
pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/OrganizationProcdefController.java Vedi File

@@ -57,14 +57,14 @@ public class OrganizationProcdefController {
@ApiOperation(value = "单位流程配置启用", notes = "单位流程配置启用")
@PutMapping("/enable/{processDefId}")
public String enableProcess(@PathVariable String processDefId) {
orgProcessModelService.enableProcess(processDefId,Boolean.FALSE);
orgProcessModelService.enableProcess(processDefId, Boolean.FALSE);
return "启用成功";
}

@ApiOperation(value = "单位流程配置禁用", notes = "单位流程配置禁用")
@PutMapping("/disable/{processDefId}")
public String disableProcess(@PathVariable String processDefId) {
orgProcessModelService.enableProcess(processDefId,Boolean.TRUE);
orgProcessModelService.enableProcess(processDefId, Boolean.TRUE);
return "禁用成功";
}



+ 41
- 1
pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java Vedi File

@@ -1,8 +1,21 @@
package com.ningdatech.pmapi.organization.manage;

import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.pmapi.organization.model.entity.DingOrganization;
import com.ningdatech.pmapi.organization.model.po.ReqOrganizationListPO;
import com.ningdatech.pmapi.organization.model.vo.ResOrganizationListVO;
import com.ningdatech.pmapi.organization.service.IDingOrganizationService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
* @author liuxinxin
* @date 2023/1/13 下午2:55
@@ -11,7 +24,34 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor
public class OrganizationManage {

// private final
private final IDingOrganizationService iDingOrganizationService;

public PageVo<ResOrganizationListVO> organizationList(ReqOrganizationListPO reqOrganizationListPO) {
String orgName = reqOrganizationListPO.getOrgName();

Page<DingOrganization> page = iDingOrganizationService
.page(new Page<>(reqOrganizationListPO.getPageNumber(), reqOrganizationListPO.getPageSize())
, Wrappers.lambdaQuery(DingOrganization.class)
.like(StringUtils.isNotBlank(orgName), DingOrganization::getOrganizationName, orgName));

long total = page.getTotal();
List<DingOrganization> records = page.getRecords();

List<ResOrganizationListVO> resVOList = new ArrayList<>();
if (CollUtil.isNotEmpty(records)) {
resVOList = records.stream().map(r -> {
ResOrganizationListVO resOrganizationListVO = new ResOrganizationListVO();
resOrganizationListVO.setOrgCode(r.getOrganizationCode());
resOrganizationListVO.setOrgName(r.getOrganizationName());
// TODO 补充其他字段
return resOrganizationListVO;
}).collect(Collectors.toList());
}

PageVo<ResOrganizationListVO> pageVo = new PageVo<>();
pageVo.setTotal(total);
pageVo.setRecords(resVOList);
return pageVo;
}

}

+ 31
- 0
pmapi/src/main/java/com/ningdatech/pmapi/organization/model/po/ReqOrganizationListPO.java Vedi File

@@ -0,0 +1,31 @@
package com.ningdatech.pmapi.organization.model.po;

import com.ningdatech.basic.model.PagePo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
* @author liuxinxin
* @date 2023/2/16 上午11:50
*/
@Data
@ApiModel("组织列表 请求PO")
public class ReqOrganizationListPO extends PagePo {

@ApiModelProperty("单位名称")
private String orgName;

@ApiModelProperty("浙政钉编码")
private String orgCode;

@ApiModelProperty("所属区域id")
private String regionId;

@ApiModelProperty("是否为主管单位")
private Boolean isCompetentUnit;

@ApiModelProperty("是否为上级条线主管单位")
private Boolean isSuperiorLineCompetentUnit;

}

+ 38
- 0
pmapi/src/main/java/com/ningdatech/pmapi/organization/model/vo/ResOrganizationListVO.java Vedi File

@@ -0,0 +1,38 @@
package com.ningdatech.pmapi.organization.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
* @author liuxinxin
* @date 2023/2/16 上午11:50
*/
@Data
@ApiModel("组织列表VO")
public class ResOrganizationListVO {

public String id;

@ApiModelProperty("单位名称")
private String orgName;

@ApiModelProperty("浙政钉编码")
private String orgCode;

@ApiModelProperty("财政编码")
private String fiscalCode;

@ApiModelProperty("所属区域id")
private String regionId;

@ApiModelProperty("所属区域")
private String regionName;

@ApiModelProperty("是否为主管单位")
private Boolean isCompetentUnit;

@ApiModelProperty("是否为上级条线主管单位")
private Boolean isSuperiorLineCompetentUnit;

}

+ 3
- 2
pmapi/src/main/java/com/ningdatech/pmapi/todocenter/controller/TodoCenterController.java Vedi File

@@ -66,8 +66,9 @@ public class TodoCenterController {
*/
@GetMapping("/progress/{instanceId}/{nodeId}")
public ApiResponse<ProcessProgressDetailVo> getProcessDetail(@PathVariable String instanceId,
@PathVariable(required = false) String nodeId) {
return ApiResponse.ofSuccess(todoCenterManage.getProcessDetail(nodeId, instanceId));
@PathVariable(required = false) String nodeId,
@PathVariable Long projectId) {
return ApiResponse.ofSuccess(todoCenterManage.getProcessDetail(nodeId, instanceId, projectId));
}

/**


+ 28
- 19
pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java Vedi File

@@ -458,17 +458,23 @@ public class TodoCenterManage {
* @param param 参数
*/
private void doSealPass(Task task, Long userId, ReqProcessHandlerDTO param) {
String processInstanceId = task.getProcessInstanceId();
// 获取当前申报项目
Project declaredProject = projectService
.getOne(Wrappers.lambdaQuery(Project.class).eq(Project::getInstCode, task.getProcessInstanceId()));
String projectName = declaredProject.getProjectName();

Map<String, Object> var = new HashMap<>(16);
var.put("approve_" + task.getId(), param.getAction());

// 保存审核意见
if (hasComment(param.getAuditInfo())) {
// 执行自定义的保存评论的功能
managementService.executeCommand(new SaveCommentCmd(param.getTaskId(), param.getInstanceId(),
String.valueOf(userId), JSONObject.toJSONString(param.getAuditInfo())));
}
// TODO 判断项目申报单位级别,区县单位申报有上级主管单位意见栏,市级单位没有

// TODO 市级单位:为大数据局;区县单位:为大数据中心(根据附件区分?)
// 获取当前申报项目
Project declaredProject = projectService
.getOne(Wrappers.lambdaQuery(Project.class).eq(Project::getInstCode, task.getProcessInstanceId()));
// 更新项目状态到下一个状态
updatePassProjectStatus(userId, declaredProject);
taskService.complete(param.getTaskId(), var);
}

@@ -554,7 +560,7 @@ public class TodoCenterManage {
// 获取浙政钉用户ID
UserInfo auditUserInfo = userInfoService.getById(Long.valueOf(nextUserId));
WorkNoticeInfo sendWorkNoticeInfo = getSendWorkNoticeInfo(auditUserInfo);
String msg = String.format(PASS_MSG_TEMPLATE, null, projectName);
String msg = String.format(PASS_MSG_TEMPLATE, sendWorkNoticeInfo.getOrganizationName(), projectName);
zwddClient.sendWorkNotice(sendWorkNoticeInfo.getReceiverUserId(),sendWorkNoticeInfo.getBizMsgId(),msg);
} else {
// 若没有,向发起人发送浙政钉工作通知:【项目名称】已通过【流程名称】,请及时开始下一步操作。
@@ -579,7 +585,7 @@ public class TodoCenterManage {
* @author CMM
* @since 2023/02/15 14:04
*/
private WorkNoticeInfo getSendWorkNoticeInfo(UserInfo auditUserInfo) {
public WorkNoticeInfo getSendWorkNoticeInfo(UserInfo auditUserInfo) {
WorkNoticeInfo workNoticeInfo = new WorkNoticeInfo();
Long accountId = auditUserInfo.getAccountId();
if (Objects.isNull(accountId)){
@@ -785,6 +791,17 @@ public class TodoCenterManage {
.singleResult();
// 获取前一个审核节点审核人信息
String beforeUserId = lastInstance.getAssignee();
// 获取当前审核节点审核人信息
String currentUserId = task.getAssignee();
//HashSet<String> userSet = new HashSet<>();
//userSet.add(beforeUserId);
//userSet.add(currentUserId);
//Map<Long, UserInfoVO> userMap = userInfoService.getUserMapByIds(userSet);
//UserInfoVO beforeUserInfoVO = userMap.get(Long.valueOf(beforeUserId));
//UserInfoVO currentUserInfoVO = userMap.get(Long.valueOf(currentUserId));
//String beforeUserOrgCode = beforeUserInfoVO.getOrganizationCode();
//String currentUserOrgCode = currentUserInfoVO.getOrganizationCode();
//Boolean orgFlag = currentUserOrgCode.equals(beforeUserOrgCode) ? true : false;

// TODO 判断前一个审核人的部门和当前登录用户的部门是否是同一个,如果是同一个才可以撤回,否则抛出异常
Boolean orgFlag = true;
@@ -897,7 +914,7 @@ public class TodoCenterManage {
* @param instanceId 流程实例ID
* @return 流程进度及表单详情
*/
public ProcessProgressDetailVo getProcessDetail(String nodeId, String instanceId) {
public ProcessProgressDetailVo getProcessDetail(String nodeId, String instanceId, Long projectId) {
HistoricProcessInstance instance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(instanceId)
.singleResult();
@@ -973,16 +990,8 @@ public class TodoCenterManage {
.progress(taskRecords)
.build();
//res.setStartUser(userInfoVO);
if (Objects.isNull(instance.getEndActivityId())) {
res.setStatus(ProcessStatusEnum.UNDER_REVIEW.name());
} else if (HisProInsEndActId.BACK.equals(instance.getEndActivityId())) {
// TODO 被退回的审核节点状态这里只是暂时这么判断,具体怎么保存这个退回状态,后面讨论
res.setStatus(ProcessStatusEnum.BE_BACKED.name());
} else if (HisProInsEndActId.REJECT.equals(instance.getEndActivityId())) {
res.setStatus(ProcessStatusEnum.BE_REJECTED.name());
} else if (HisProInsEndActId.END.equals(instance.getEndActivityId())) {
res.setStatus(ProcessStatusEnum.APPROVED.name());
}
Project project = projectService.getById(projectId);
res.setStatus(ProcessStatusEnum.getDescByCode(project.getProcessStatus()));
return res;
}



+ 18
- 0
pmapi/src/main/java/com/ningdatech/pmapi/user/constant/UserAvailableEnum.java Vedi File

@@ -0,0 +1,18 @@
package com.ningdatech.pmapi.user.constant;

/**
* @author liuxinxin
* @date 2023/2/15 下午5:13
*/

public enum UserAvailableEnum {
/**
* 启用
*/
ENABLE,

/**
* 禁用
*/
DISABLE
}

+ 11
- 5
pmapi/src/main/java/com/ningdatech/pmapi/user/controller/UserInfoController.java Vedi File

@@ -4,7 +4,8 @@ package com.ningdatech.pmapi.user.controller;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.pmapi.user.manage.UserInfoManage;
import com.ningdatech.pmapi.user.model.po.ReqUserDetailEditPO;
import com.ningdatech.pmapi.user.model.po.ReqUserDisablePO;
import com.ningdatech.pmapi.user.model.po.ReqUserDetailPO;
import com.ningdatech.pmapi.user.model.po.ReqUserDisableOrEnablePO;
import com.ningdatech.pmapi.user.model.po.ReqUserInfoListPO;
import com.ningdatech.pmapi.user.model.vo.ResUserDetailVO;
import com.ningdatech.pmapi.user.model.vo.ResUserInfoListVO;
@@ -38,14 +39,14 @@ public class UserInfoController {

@ApiOperation(value = "用户禁用/启用", notes = "用户禁用/启用")
@PostMapping("/disable-enable")
public void disableOrEnable(@Valid @RequestBody ReqUserDisablePO reqUserDisablePO) {
userInfoManage.disableOrEnable(reqUserDisablePO);
public void disableOrEnable(@Valid @RequestBody ReqUserDisableOrEnablePO reqUserDisableOrEnablePO) {
userInfoManage.disableOrEnable(reqUserDisableOrEnablePO);
}

@ApiOperation(value = "用户详情", notes = "用户详情")
@PostMapping("/detail")
public ResUserDetailVO userInfoDetail(@Valid @RequestBody ReqUserInfoListPO reqUserInfoListPO) {
return userInfoManage.userInfoDetail(reqUserInfoListPO);
public ResUserDetailVO userInfoDetail(@Valid @RequestBody ReqUserDetailPO reqUserDetailPO) {
return userInfoManage.userInfoDetail(reqUserDetailPO);
}

@ApiOperation(value = "用户详情编辑", notes = "用户详情编辑")
@@ -54,5 +55,10 @@ public class UserInfoController {
userInfoManage.userInfoDetailEdit(reqUserDetailEditPO);
}

@ApiOperation(value = "获取当前登陆用户详情信息", notes = "用户详情")
@PostMapping("/current-user-info")
public ResUserDetailVO currentUserInfo() {
return userInfoManage.currentUserInfo();
}

}

+ 6
- 0
pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java Vedi File

@@ -2,8 +2,10 @@ package com.ningdatech.pmapi.user.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;
@@ -19,6 +21,8 @@ import java.time.LocalDateTime;
@TableName("nd_user_info")
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "NdUserInfo对象", description = "")
public class UserInfo implements Serializable {

@@ -44,4 +48,6 @@ public class UserInfo implements Serializable {

private String available;

private String employeeCode;

}

+ 83
- 5
pmapi/src/main/java/com/ningdatech/pmapi/user/manage/UserInfoManage.java Vedi File

@@ -1,23 +1,34 @@
package com.ningdatech.pmapi.user.manage;

import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ningdatech.basic.exception.BizException;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.pmapi.organization.model.entity.DingEmployeeInfo;
import com.ningdatech.pmapi.organization.service.IDingEmployeeInfoService;
import com.ningdatech.pmapi.organization.service.IDingOrganizationService;
import com.ningdatech.pmapi.sys.model.entity.UserRole;
import com.ningdatech.pmapi.sys.service.IUserRoleService;
import com.ningdatech.pmapi.user.constant.UserAvailableEnum;
import com.ningdatech.pmapi.user.entity.UserInfo;
import com.ningdatech.pmapi.user.model.po.ReqUserDetailEditPO;
import com.ningdatech.pmapi.user.model.po.ReqUserDisablePO;
import com.ningdatech.pmapi.user.model.po.ReqUserDetailPO;
import com.ningdatech.pmapi.user.model.po.ReqUserDisableOrEnablePO;
import com.ningdatech.pmapi.user.model.po.ReqUserInfoListPO;
import com.ningdatech.pmapi.user.model.vo.ResUserDetailVO;
import com.ningdatech.pmapi.user.model.vo.ResUserInfoListVO;
import com.ningdatech.pmapi.user.model.vo.UserRoleVO;
import com.ningdatech.pmapi.user.service.IUserInfoService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
@@ -31,6 +42,7 @@ public class UserInfoManage {
private final IDingOrganizationService iDingOrganizationService;
private final IDingEmployeeInfoService iDingEmployeeInfoService;
private final IUserInfoService iUserInfoService;
private final IUserRoleService iUserRoleService;

public PageVo<ResUserInfoListVO> list(ReqUserInfoListPO reqUserInfoListPO) {
LambdaQueryWrapper<DingEmployeeInfo> wrapper = Wrappers.lambdaQuery(DingEmployeeInfo.class)
@@ -67,16 +79,82 @@ public class UserInfoManage {
return pageVo;
}

public void disableOrEnable(ReqUserDisablePO reqUserDisablePO) {
public void disableOrEnable(ReqUserDisableOrEnablePO reqUserDisableOrEnablePO) {
Long userId = generateUserId(reqUserDisableOrEnablePO.getEmployeeCode());
UserInfo userInfo = iUserInfoService.getById(userId);
userInfo.setAvailable(reqUserDisableOrEnablePO.getOperation());
iUserInfoService.updateById(userInfo);
}

public ResUserDetailVO userInfoDetail(ReqUserDetailPO reqUserDetailPO) {
Long userId = generateUserId(reqUserDetailPO.getEmployeeCode());
UserInfo userInfo = iUserInfoService.getById(userId);
if (Objects.isNull(userInfo)) {
return null;
}
ResUserDetailVO resUserDetailVO = new ResUserDetailVO();
resUserDetailVO.setRealName(userInfo.getRealName());
resUserDetailVO.setUserId(userInfo.getId());
resUserDetailVO.setPhoneNo(userInfo.getMobile());
resUserDetailVO.setStatus(userInfo.getAvailable());
resUserDetailVO.setUserRoleInfoList(new ArrayList<>());
return resUserDetailVO;
}

@Transactional(rollbackFor = Exception.class)
public void userInfoDetailEdit(ReqUserDetailEditPO reqUserDetailEditPO) {
Long userId = generateUserId(reqUserDetailEditPO.getEmployeeCode());

UserInfo userInfo = iUserInfoService.getById(userId);
if (Objects.isNull(userInfo)) {
return;
}
userInfo.setMobile(reqUserDetailEditPO.getPhoneNo());
userInfo.setAvailable(reqUserDetailEditPO.getStatus());
iUserInfoService.updateById(userInfo);

List<UserRoleVO> userRoleInfoList = reqUserDetailEditPO.getUserRoleInfoList();
iUserRoleService.remove(Wrappers.lambdaQuery(UserRole.class).eq(UserRole::getUserId, userId));
if (CollUtil.isNotEmpty(userRoleInfoList)) {
List<UserRole> userRoleList = userRoleInfoList.stream().map(r -> {
UserRole saveRecord = new UserRole();
saveRecord.setRoleId(r.getId());
saveRecord.setUserId(userId);
return saveRecord;
}).collect(Collectors.toList());
iUserRoleService.saveBatch(userRoleList);
}

}

public ResUserDetailVO userInfoDetail(ReqUserInfoListPO reqUserInfoListPO) {
return null;
private Long generateUserId(String employeeCode) {
UserInfo userInfo = iUserInfoService.getOne(Wrappers.lambdaQuery(UserInfo.class)
.eq(UserInfo::getEmployeeCode, employeeCode));
if (Objects.isNull(userInfo)) {
List<DingEmployeeInfo> dingEmployeeInfoList = iDingEmployeeInfoService.list(Wrappers.lambdaQuery(DingEmployeeInfo.class)
.eq(DingEmployeeInfo::getMainJob, "true"));
if (CollUtil.isEmpty(dingEmployeeInfoList)) {
throw new BizException("员工账号不存在");
}
DingEmployeeInfo dingEmployeeInfo = dingEmployeeInfoList.get(0);
userInfo = UserInfo.builder()
.accountId(dingEmployeeInfo.getAccountId())
.username(dingEmployeeInfo.getEmployeeName())
.realName(dingEmployeeInfo.getEmployeeName())
.employeeCode(dingEmployeeInfo.getEmployeeCode())
.available(UserAvailableEnum.DISABLE.name())
.createBy(-1L)
.updateBy(-1L)
.createOn(LocalDateTime.now())
.updateOn(LocalDateTime.now())
.build();
iUserInfoService.save(userInfo);
}
return userInfo.getId();
}

public void userInfoDetailEdit(ReqUserDetailEditPO reqUserDetailEditPO) {

public ResUserDetailVO currentUserInfo() {
return null;
}
}

+ 0
- 33
pmapi/src/main/java/com/ningdatech/pmapi/user/model/base/UserRoleInfo.java Vedi File

@@ -1,33 +0,0 @@
package com.ningdatech.pmapi.user.model.base;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Size;

import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;

/**
* @author liuxinxin
* @date 2022/8/22 下午4:12
*/
@Data
@ApiModel("用户角色信息")
public class UserRoleInfo {

@ApiModelProperty(value = "名称")
private String name;

@ApiModelProperty(value = "枚举code")
private String code;

@ApiModelProperty(value = "描述")
@Size(max = 100, message = "描述长度不能超过100")
@TableField(value = "describe", condition = LIKE)
private String describe;

@ApiModelProperty(value = "排序")
private Integer roleSort;
}

+ 12
- 5
pmapi/src/main/java/com/ningdatech/pmapi/user/model/po/ReqUserDetailEditPO.java Vedi File

@@ -1,10 +1,11 @@
package com.ningdatech.pmapi.user.model.po;

import com.ningdatech.pmapi.user.model.base.UserRoleInfo;
import com.ningdatech.pmapi.user.model.vo.UserRoleVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
@@ -12,18 +13,24 @@ import java.util.List;
* @date 2023/2/15 上午8:43
*/
@Data
@ApiModel("获取用户详情编辑请求")
@ApiModel("用户详情编辑请求")
public class ReqUserDetailEditPO {

@ApiModelProperty("userId")
private Long userId;

@NotBlank(message = "浙政钉 用户编码 不能为空")
@ApiModelProperty("浙政钉 用户编码")
private String employeeCode;

@NotBlank(message = "用户手机号不能为空")
@ApiModelProperty("手机号")
private String phoneNo;

@ApiModelProperty("状态 启用/禁用")
private Boolean status;
@NotBlank(message = "状态不能为空")
@ApiModelProperty("状态 启用 ENABLE/禁用 DISABLE")
private String status;

@ApiModelProperty("用户角色信息列表")
private List<UserRoleInfo> userRoleInfoList;
private List<UserRoleVO> userRoleInfoList;
}

+ 6
- 2
pmapi/src/main/java/com/ningdatech/pmapi/user/model/po/ReqUserDetailPO.java Vedi File

@@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;

/**
* @author liuxinxin
@@ -14,7 +14,11 @@ import javax.validation.constraints.NotNull;
@ApiModel("获取用户详情请求")
public class ReqUserDetailPO {

@NotNull(message = "用户id 不能为空")
@ApiModelProperty("用户id")
private Long userId;

@NotBlank(message = "浙政钉 用户编码 不能为空")
@ApiModelProperty("浙政钉 用户编码")
private String employeeCode;

}

pmapi/src/main/java/com/ningdatech/pmapi/user/model/po/ReqUserDisablePO.java → pmapi/src/main/java/com/ningdatech/pmapi/user/model/po/ReqUserDisableOrEnablePO.java Vedi File

@@ -13,7 +13,7 @@ import javax.validation.constraints.NotBlank;

@Data
@ApiModel("用户禁用/启用 PO")
public class ReqUserDisablePO {
public class ReqUserDisableOrEnablePO {

@ApiModelProperty("用户id")
private Long userId;
@@ -22,8 +22,9 @@ public class ReqUserDisablePO {
@ApiModelProperty("浙政钉 用户编码")
private String employeeCode;

@NotBlank(message = "浙政钉 用户编码 不能为空")
@ApiModelProperty("操作 true: 启用 / false 禁用")
private Boolean operation;
@NotBlank(message = "操作 不能为空")
@ApiModelProperty("操作 启用 ENABLE/禁用 DISABLE")
private String operation;


}

+ 5
- 2
pmapi/src/main/java/com/ningdatech/pmapi/user/model/po/ReqUserInfoListPO.java Vedi File

@@ -1,7 +1,7 @@
package com.ningdatech.pmapi.user.model.po;

import com.ningdatech.basic.model.PagePo;
import com.ningdatech.pmapi.sys.model.entity.Role;
import com.ningdatech.pmapi.user.model.vo.UserRoleVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -28,8 +28,11 @@ public class ReqUserInfoListPO extends PagePo {
@ApiModelProperty("所属区域")
private Long regionId;

@ApiModelProperty("所属区域名称")
private Long regionName;

@ApiModelProperty("用户角色")
private List<Role> userRoleList;
private List<UserRoleVO> userRoleList;

@ApiModelProperty("状态")
private String status;


+ 6
- 4
pmapi/src/main/java/com/ningdatech/pmapi/user/model/vo/ResUserDetailVO.java Vedi File

@@ -1,6 +1,5 @@
package com.ningdatech.pmapi.user.model.vo;

import com.ningdatech.pmapi.user.model.base.UserRoleInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -18,12 +17,15 @@ public class ResUserDetailVO {
@ApiModelProperty("userId")
private Long userId;

@ApiModelProperty("用户姓名")
private String realName;

@ApiModelProperty("手机号")
private String phoneNo;

@ApiModelProperty("状态 启用/禁用")
private Boolean status;
@ApiModelProperty("状态 启用 ENABLE/禁用 DISABLE")
private String status;

@ApiModelProperty("用户角色信息列表")
private List<UserRoleInfo> userRoleInfoList;
private List<UserRoleVO> userRoleInfoList;
}

+ 21
- 0
pmapi/src/main/java/com/ningdatech/pmapi/user/model/vo/UserRoleVO.java Vedi File

@@ -0,0 +1,21 @@
package com.ningdatech.pmapi.user.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
* @author liuxinxin
* @date 2023/2/15 下午5:47
*/

@Data
@ApiModel("用户角色VO")
public class UserRoleVO {

@ApiModelProperty(value = "角色id")
private Long id;

@ApiModelProperty(value = "名称")
private String name;
}

+ 37
- 0
pmapi/src/test/java/com/ningdatech/pmapi/todocenter/TodoCenterTest.java Vedi File

@@ -0,0 +1,37 @@
package com.ningdatech.pmapi.todocenter;

import com.ningdatech.pmapi.AppTests;
import com.ningdatech.pmapi.todocenter.bean.entity.WorkNoticeInfo;
import com.ningdatech.pmapi.todocenter.manage.TodoCenterManage;
import com.ningdatech.pmapi.user.entity.UserInfo;
import com.ningdatech.zwdd.client.ZwddClient;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import static com.ningdatech.pmapi.todocenter.constant.WorkNotice.PASS_MSG_TEMPLATE;

/**
* 待办中心测试
*
* @author CMM
* @since 2023/02/15 22:03
*/
@Slf4j
public class TodoCenterTest extends AppTests {

@Autowired
private TodoCenterManage todoCenterManage;

@Autowired
private ZwddClient zwddClient;
@Test
public void sendWorkNoticeTest(){
// String msg = String.format(PASS_MSG_TEMPLATE, "发改委", "0216-4-测试项目");
String msg = "发改委的0216-6-测试项目需要您审核";
log.info("开始发送工作通知");
zwddClient.sendWorkNotice("846085","0216-7",msg);
// zwddClient.sendWorkNotice("829728","0216-5",msg);
log.info("发送工作通知结束");
}
}

Loading…
Annulla
Salva