diff --git a/src/main/java/com/weaver/seconddev/employee/action/FormatChangeFilesAction.java b/src/main/java/com/weaver/seconddev/employee/action/FormatChangeFilesAction.java new file mode 100644 index 0000000..b3313f0 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/employee/action/FormatChangeFilesAction.java @@ -0,0 +1,124 @@ +package com.weaver.seconddev.employee.action; + +import cn.hutool.core.convert.Convert; +import com.alibaba.fastjson.JSON; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.eteams.file.client.file.FileObj; +import com.weaver.eteams.file.client.remote.FileClientService; +import com.weaver.seconddev.employee.mapper.FormatChangeMapper; +import com.weaver.seconddev.portal.entity.param.BaseParam; +import com.weaver.seconddev.portal.util.DateUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2025/08/08 + * @version: 1.0 + */ +@Slf4j +@Service("FormatChangeFilesAction") +public class FormatChangeFilesAction implements EsbServerlessRpcRemoteInterface { + + @Autowired + FormatChangeMapper formatEntryFilesMapper; + + @Autowired + FileClientService fileClientService; + + @Override + public WeaResult> execute(Map params) { + log.error("params=>:{}", params); + Long rzjlid = Convert.toLong(params.get("rzjlid")); + log.error("rzjlid=>:{}", rzjlid); + if (null == rzjlid) { + return WeaResult.success(); + } + // 查询入职管理表数据信息 + BaseParam baseParam = new BaseParam(); + Map entryRecord = formatEntryFilesMapper.getChangeRecord(baseParam, rzjlid); + if (entryRecord.isEmpty()) { + log.error("entryRecord is null,{}", params); + return WeaResult.success(); + } + log.error("entryRecord=>:{}", JSON.toJSONString(entryRecord)); + String username = Convert.toStr(entryRecord.get("username")); + String jobNum = Convert.toStr(entryRecord.get("job_num")); + log.error("userName=={}", username); + log.error("jobNum=={}", jobNum); + if (StringUtils.isBlank(jobNum)) { + log.error("jobNum is null,{}", params); + return WeaResult.success(); + } + + String prefix = username + "-" + jobNum; + renameFile(Convert.toStr(entryRecord.get("sfzzpzfm")), prefix, "身份证正面"); + renameFile(Convert.toStr(entryRecord.get("sfzfmghm")), prefix, "身份证反面"); + renameFile(Convert.toStr(entryRecord.get("hzzp")), prefix, "护照"); + renameFile(Convert.toStr(entryRecord.get("zgxlbyzszp")), prefix, "学历证明"); + renameFile(Convert.toStr(entryRecord.get("xxzbs")), prefix, "半身形象照"); + renameFile(Convert.toStr(entryRecord.get("czycbdz")), prefix, "寸照"); + renameFile(Convert.toStr(entryRecord.get("yxkzm")), prefix, "银行卡"); + renameFile(Convert.toStr(entryRecord.get("tjbg")), prefix, "体检报告"); + renameFile(Convert.toStr(entryRecord.get("jkz")), prefix, "健康证"); + renameFile(Convert.toStr(entryRecord.get("sjdwlzzm")), prefix, "离职证明"); + renameFile(Convert.toStr(entryRecord.get("qtfj")), prefix, "其他附件"); + + + return WeaResult.success(params); + } + + + /** + * 重命名文件 + * + * @param fileIds 文件ID + * @param prefix 前缀 + * @param fileName 文件名 + */ + private void renameFile(String fileIds, String prefix, String fileName) { + if (StringUtils.isBlank(fileIds)) { + return; + } + + int index = 1; + String[] split = fileIds.split(","); + if (split.length > 0) { + for (String s : split) { + Long fileId = Convert.toLong(s); + if (null == fileId) { + log.error("fileId is null,{}", s); + continue; + } + FileObj fileObj = fileClientService.get(fileId); + if (null == fileObj) { + log.error("fileObj is null,{}", fileId); + continue; + } + Date uploadTime = fileObj.getUploadTime(); + LocalDateTime localDate = DateUtil.toLocalDateTime(uploadTime); + if (null == localDate) { + localDate = DateUtil.toLocalDateTime(new Date()); + } + String formatDate = DateUtil.formatDateTime(localDate, DateTimeFormatter.ofPattern("yyyyMMddHHmm")); + int lastDotIndex = fileName.lastIndexOf("."); + String suffix = fileName.substring(lastDotIndex); + String fileNameWithoutSuffix = fileName.substring(0, lastDotIndex); + String newFileName = prefix + "-" + fileNameWithoutSuffix + "-" + formatDate + suffix; + fileObj.setName(newFileName); + fileClientService.update(fileObj); + } + } + + } + + +} diff --git a/src/main/java/com/weaver/seconddev/employee/mapper/FormatChangeMapper.java b/src/main/java/com/weaver/seconddev/employee/mapper/FormatChangeMapper.java new file mode 100644 index 0000000..7e62a9a --- /dev/null +++ b/src/main/java/com/weaver/seconddev/employee/mapper/FormatChangeMapper.java @@ -0,0 +1,19 @@ +package com.weaver.seconddev.employee.mapper; + +import com.weaver.seconddev.portal.entity.param.BaseParam; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2025/08/08 + * @version: 1.0 + */ +@Mapper +public interface FormatChangeMapper { + + Map getChangeRecord(@Param("param") BaseParam param, @Param("id") Long id); + +} diff --git a/src/main/resources/mapper/employee/action/FormatChangeMapper.xml b/src/main/resources/mapper/employee/action/FormatChangeMapper.xml new file mode 100644 index 0000000..a7f3d52 --- /dev/null +++ b/src/main/resources/mapper/employee/action/FormatChangeMapper.xml @@ -0,0 +1,14 @@ + + + + + + +