From cacec73b3e43824f3bdd2c6e1653c2d85cc9272f Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Mon, 3 Jul 2023 15:22:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=91=98=E5=B7=A5=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ding/controller/DingInfoPullController.java | 10 +++++ .../pmapi/ding/task/EmployeeBatchGetTask.java | 50 ++++++++++++++++++++++ .../model/entity/DingEmployeeInfo.java | 3 ++ .../com/ningdatech/pmapi/user/entity/UserInfo.java | 4 ++ 4 files changed, 67 insertions(+) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/ding/controller/DingInfoPullController.java b/pmapi/src/main/java/com/ningdatech/pmapi/ding/controller/DingInfoPullController.java index a569131..b2ebe61 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/ding/controller/DingInfoPullController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/ding/controller/DingInfoPullController.java @@ -48,4 +48,14 @@ public class DingInfoPullController { public void employeeBatchGetByOrdCode(@PathVariable String orgCode) { employeeBatchGetTask.batchGetEmployeeTaskByOrdCode(orgCode); } + + @GetMapping("/getEmployeeByCode/{empCode}") + public void getEmployeeByCode(@PathVariable String empCode) { + employeeBatchGetTask.getEmployeeByCode(empCode); + } + + @GetMapping("/getBatchEmployeeByCode/{orgCode}") + public void getBatchEmployeeByCode(@PathVariable String orgCode) { + employeeBatchGetTask.getBatchEmployeeByCode(orgCode); + } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java b/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java index 6ac9084..cbe7991 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java @@ -19,6 +19,7 @@ import com.ningdatech.zwdd.ZwddIntegrationProperties; import com.ningdatech.zwdd.client.ZwddClient; import com.ningdatech.zwdd.model.Page; import com.ningdatech.zwdd.model.dto.EmployeeAccountIdDTO; +import com.ningdatech.zwdd.model.dto.EmployeeInfoDTO; import com.ningdatech.zwdd.model.query.PageOrganizationEmployeePositionsQuery; import com.ningdatech.zwdd.model.response.OrganizationEmployeePosition; import com.ningdatech.zwdd.model.response.OrganizationEmployeePosition.GovEmployeePosition; @@ -245,6 +246,7 @@ public class EmployeeBatchGetTask { .createOn(LocalDateTime.now()) .updateOn(LocalDateTime.now()) .empPosUnitCode(dingEmployeeInfo.getEmpPosUnitCode()) + .avatar(dingEmployeeInfo.getAvatar()) .build(); if(StringUtils.isNotBlank(userInfo.getEmpPosUnitCode()) && organizationMap.containsKey(userInfo.getEmpPosUnitCode())){ DingOrganization dingOrganization = organizationMap.get(userInfo.getEmpPosUnitCode()); @@ -252,6 +254,10 @@ public class EmployeeBatchGetTask { userInfo.setRegionCode(dingOrganization.getDivisionCode()); } iUserInfoService.save(userInfo); + }else{ + userInfo.setAvatar(dingEmployeeInfo.getAvatar()); + userInfo.setUpdateOn(LocalDateTime.now()); + iUserInfoService.updateById(userInfo); } } @@ -409,4 +415,48 @@ public class EmployeeBatchGetTask { } + /** + * 更新员工信息 主要是头像 + * @param empCode + */ + public void getEmployeeByCode(String empCode) { + GenericResult result = zwddClient.getEmployeeByCode(empCode); + log.error("请求员工信息 result:{}",JSON.toJSONString(result)); + if(!result.isSuccess()){ + log.error("请求员工信息失败 :{},mesg:{}",empCode,result.getMsg()); + } + EmployeeInfoDTO data = result.getData(); + + DingEmployeeInfo emp = iDingEmployeeInfoService.getOne(Wrappers.lambdaQuery(DingEmployeeInfo.class) + .eq(DingEmployeeInfo::getEmployeeCode, empCode) + .last(BizConst.LIMIT_1)); + + if(Objects.nonNull(emp)){ + emp.setAvatar(data.getGovEmpAvatar()); + iDingEmployeeInfoService.updateById(emp); + } + + UserInfo user = iUserInfoService.getOne(Wrappers.lambdaQuery(UserInfo.class) + .eq(UserInfo::getEmployeeCode, empCode) + .last(BizConst.LIMIT_1)); + + if(Objects.nonNull(user)){ + user.setAvatar(data.getGovEmpAvatar()); + iUserInfoService.updateById(user); + } + } + + /** + * 更新一整个单位的 + * @param orgCode + */ + public void getBatchEmployeeByCode(String orgCode) { + + List employees = iDingEmployeeInfoService.list(Wrappers.lambdaQuery(DingEmployeeInfo.class) + .eq(DingEmployeeInfo::getEmpPosUnitCode, orgCode)); + + for(DingEmployeeInfo employee : employees){ + getEmployeeByCode(employee.getEmployeeCode()); + } + } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/entity/DingEmployeeInfo.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/entity/DingEmployeeInfo.java index 980c13f..50fbde8 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/entity/DingEmployeeInfo.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/entity/DingEmployeeInfo.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @@ -78,4 +79,6 @@ public class DingEmployeeInfo implements Serializable { */ private String bindUserMobile; + @ApiModelProperty("头像") + private String avatar; } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java index 1c0758d..88baedc 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java @@ -2,6 +2,7 @@ package com.ningdatech.pmapi.user.entity; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -48,6 +49,9 @@ public class UserInfo implements Serializable { private String empPosUnitCode; private String empPosUnitName; + @ApiModelProperty("头像") + private String avatar; + @TableField(fill = FieldFill.INSERT) private LocalDateTime createOn;