浏览代码

兼容东方微银OA接口同步,兼容删人员数据

tags/B.2.7.2_20240206_release
yk 1年前
父节点
当前提交
db9b44ec27
共有 5 个文件被更改,包括 45 次插入8 次删除
  1. +5
    -0
      xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/staff/domain/dto/DmStaffCommonDto.java
  2. +1
    -0
      xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/service/MinioSysFileServiceImpl.java
  3. +19
    -8
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/controller/api/DmStaffInnerApiController.java
  4. +2
    -0
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/service/IDmStaffService.java
  5. +18
    -0
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/service/impl/DmStaffServiceImpl.java

+ 5
- 0
xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/staff/domain/dto/DmStaffCommonDto.java 查看文件

@@ -28,6 +28,8 @@ public class DmStaffCommonDto {

private String faceFeature;

private String phone;

@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date birthDate;

@@ -36,6 +38,8 @@ public class DmStaffCommonDto {

private String devId;

private String status;

public DmStaffPo initStaff(Long id){
DmStaffPo staffPo = new DmStaffPo(id);
staffPo.setNickName(this.getStaffName());
@@ -43,6 +47,7 @@ public class DmStaffCommonDto {
staffPo.setUserType(this.getStaffType());
staffPo.setHireDate(this.getHireDate());
staffPo.setBirthDate(this.getBirthDate());
staffPo.setPhone(this.getPhone());
staffPo.setSex(this.getGender()!=null ? String.valueOf(this.getGender()):null);
return staffPo;
}


+ 1
- 0
xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/service/MinioSysFileServiceImpl.java 查看文件

@@ -209,6 +209,7 @@ public class MinioSysFileServiceImpl implements ISysFileService {
* @param url 文件url
* @return 结果
*/
@Override
public Boolean deleteFile(String url) throws Exception {
String bucketName = minioConfig.getBucketName();
String fileName = url.substring(url.indexOf(bucketName) + bucketName.length() + 1);


+ 19
- 8
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/controller/api/DmStaffInnerApiController.java 查看文件

@@ -10,6 +10,7 @@ import com.xueyi.common.core.web.result.R;
import com.xueyi.common.security.annotation.InnerAuth;
import com.xueyi.common.web.constant.ResponseCode;
import com.xueyi.system.api.digitalmans.domain.po.DmVisitorsPo;
import com.xueyi.system.api.resource.domain.po.DmResourcesPo;
import com.xueyi.system.api.staff.domain.dto.DmStaffCommonDto;
import com.xueyi.system.api.staff.domain.po.DmPersonFeaturePo;
import com.xueyi.system.api.staff.domain.po.DmStaffPo;
@@ -116,18 +117,14 @@ public class DmStaffInnerApiController extends MyBaseApiController {
}
}

if (StringUtils.isNotEmpty(commonDto.getFaceFeature())) {//访客传递特征值
//访客传递特征值
if (StringUtils.isNotEmpty(commonDto.getFaceFeature())) {
DmPersonFeaturePo featurePo = new DmPersonFeaturePo(id, DmPersonFeaturePo.PERSON_TYPE_VISITOR, commonDto.getFaceFeature());
featureMapper.insert(featurePo);
}

dmVisitorsMapper.addOne(v);
} else {//员工
//判断员工是否已同步,按姓名来判断
DmStaffPo po = dmStaffMapper.selectOne(new QueryWrapper<DmStaffPo>().eq("user_name", commonDto.getStaffName()).last("limit 1"));
if (po != null) {
return output(ResponseCode.SAVE_FAILED, "该员工已被同步").toJSON();
}
DmStaffPo staffPo = commonDto.initStaff(id);
staffPo.setDeptId(enterpriseService.selectDefaultDeptId(commonDto.getDevId()));
if (StringUtils.isNotEmpty(commonDto.getStaffBase64Img())) {
@@ -142,12 +139,26 @@ public class DmStaffInnerApiController extends MyBaseApiController {
}
}

if (StringUtils.isNotEmpty(commonDto.getFaceFeature())) {//人员传递特征值
//人员传递特征值
if (StringUtils.isNotEmpty(commonDto.getFaceFeature())) {
DmPersonFeaturePo featurePo = new DmPersonFeaturePo(id, DmPersonFeaturePo.PERSON_TYPE_STAFF, commonDto.getFaceFeature());
featureMapper.insert(featurePo);
}

dmStaffMapper.insert(staffPo);
//判断员工是否已同步,按姓名来判断
DmStaffPo po = dmStaffMapper.selectOne(new QueryWrapper<DmStaffPo>().eq("user_name", commonDto.getStaffName()).last("limit 1"));
//不为空,应当修改
if (po != null) {
//如果同步过来状态为删除
if ("1".equals(commonDto.getStatus())) {
dmStaffService.delStaff(po);
} else {//其他情况
dmStaffMapper.update(staffPo,Wrappers.<DmStaffPo>query().lambda().eq(DmStaffPo::getId,po.getId()));
}
} else {
dmStaffMapper.insert(staffPo);
}

}

return outputSuccess().toJSON();


+ 2
- 0
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/service/IDmStaffService.java 查看文件

@@ -22,4 +22,6 @@ public interface IDmStaffService extends IBaseService<DmStaffQuery, DmStaffDto>
List<DmStaffFeature> selectStaffListByTimestamp(String devId,String tempstamp);

Long selectStaffAndVisitorCount();

void delStaff(DmStaffPo staff);
}

+ 18
- 0
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/service/impl/DmStaffServiceImpl.java 查看文件

@@ -13,6 +13,7 @@ import com.xueyi.common.core.utils.core.ObjectUtil;
import com.xueyi.common.web.annotation.TenantIgnore;
import com.xueyi.common.web.entity.service.impl.BaseServiceImpl;
import com.xueyi.common.web.utils.MyDateUtils;
import com.xueyi.file.api.feign.RemoteFileService;
import com.xueyi.nlt.api.netty.domain.vo.DmWebSocketMessageVo;
import com.xueyi.nlt.api.nlt.feign.RemoteIntentService;
import com.xueyi.system.api.holiday.domain.po.DmHolidayPo;
@@ -27,6 +28,7 @@ import com.xueyi.system.common.service.IDmHolidayService;
import com.xueyi.system.organize.mapper.SysDeptExtMapper;
import com.xueyi.system.organize.service.ISysEnterpriseService;
import com.xueyi.system.resource.domain.dto.DmResourcesDto;
import com.xueyi.system.resource.mapper.DmResourcesMapper;
import com.xueyi.system.resource.service.impl.DmResourcesServiceImpl;
import com.xueyi.system.staff.domain.po.DmEmpAttendancePo;
import com.xueyi.system.staff.domain.query.DmStaffQuery;
@@ -128,6 +130,22 @@ public class DmStaffServiceImpl extends BaseServiceImpl<DmStaffQuery, DmStaffDto
return totalCount.longValue();
}

@Autowired
RemoteFileService fileService;

@Autowired
DmResourcesMapper resourcesMapper;
@Override
public void delStaff(DmStaffPo staff) {
if (StringUtils.isNotEmpty(staff.getAvatar())) {
fileService.delete(staff.getAvatar());
}
if (null != staff.getResourceId()) {
resourcesMapper.deleteById(staff.getResourceId());
}
staffMapper.deleteById(staff.getId());
}

public void initEmpAttendance(DmStaffPo po) {
// 初始化员工考勤信息
DmEmpAttendancePo attendancePo = new DmEmpAttendancePo();


正在加载...
取消
保存