From 50de5642245055fb0d46a1c2fde335a78865a9b1 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 6 Aug 2025 16:23:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(entry):=20=E4=B8=8A=E4=BC=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=88=B0=20EB=20=E8=A1=A8=E5=8D=95=20=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=85=B3=E8=81=94EB=E6=95=B0=E6=8D=AE=E3=80=81?= =?UTF-8?q?=E5=85=B3=E8=81=94=E6=96=87=E4=BB=B6=E7=9B=AE=E5=BD=95=E3=80=81?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EntryManageController.java | 39 +++++++++++ .../entry/service/EntryManageService.java | 2 +- .../service/impl/EntryManageServiceImpl.java | 68 ++++++++++++++++--- .../mapper/portal/EbuilderBaseMapper.java | 3 + .../mapper/portal/EbuilderBaseMapper.xml | 6 ++ 5 files changed, 109 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/weaver/seconddev/entry/controller/EntryManageController.java b/src/main/java/com/weaver/seconddev/entry/controller/EntryManageController.java index c2e5513..7828cf0 100644 --- a/src/main/java/com/weaver/seconddev/entry/controller/EntryManageController.java +++ b/src/main/java/com/weaver/seconddev/entry/controller/EntryManageController.java @@ -1,12 +1,22 @@ package com.weaver.seconddev.entry.controller; +import com.alibaba.fastjson.JSON; import com.weaver.common.authority.annotation.WeaPermission; import com.weaver.common.base.entity.result.WeaResult; import com.weaver.seconddev.entry.service.EntryManageService; +import com.weaver.teams.hrapp.dto.est.HrComEstEmpDto; +import com.weaver.teams.hrapp.dto.est.HrComEstOrgValResDto; +import com.weaver.teams.hrapp.dto.est.param.HrComEstCheckParam; +import com.weaver.teams.hrapp.service.HrComEstService; +import com.weaver.teams.security.context.UserContext; +import com.weaver.teams.security.user.User; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -22,6 +32,9 @@ public class EntryManageController { @Autowired EntryManageService entryManageService; + @Autowired + HrComEstService hrComEstService; + @GetMapping("/checkJobNum") public WeaResult> checkJobNum(@RequestParam("jobNum") String jobNum) { return entryManageService.checkJobNum(jobNum); @@ -31,4 +44,30 @@ public class EntryManageController { private WeaResult> uploadFiles(@RequestBody Map params) { return entryManageService.uploadFiles(params); } + + @PostMapping("/testStaff") + private WeaResult> testStaff(@RequestBody HrComEstCheckParam checkParam) { + //return entryManageService.testStaff(params); + User currentUser = UserContext.getCurrentUser(); + log.error("checkParam==={}", JSON.toJSONString(checkParam)); + log.error("currentUser==={}", JSON.toJSONString(currentUser)); + Map map = new HashMap<>(); + + HrComEstOrgValResDto hrComEstOrgValResDto = hrComEstService.estValidate(currentUser.getTenantKey(), currentUser.getEmployeeId(), checkParam); + log.error("hrComEstOrgValResDto==={}", JSON.toJSONString(hrComEstOrgValResDto)); + + map.put("currentUser", JSON.toJSONString(currentUser)); + map.put("checkParam", JSON.toJSONString(checkParam)); + map.put("hrComEstOrgValResDto", JSON.toJSONString(hrComEstOrgValResDto)); + return WeaResult.success(map); + } + + public static void main(String[] args) { + HrComEstCheckParam checkParam = new HrComEstCheckParam(); + List empList = new ArrayList<>(); + HrComEstEmpDto emp = new HrComEstEmpDto(); + emp.setNewDepartmentId(1151352978370437120L); + + + } } diff --git a/src/main/java/com/weaver/seconddev/entry/service/EntryManageService.java b/src/main/java/com/weaver/seconddev/entry/service/EntryManageService.java index d7e3da7..60c1725 100644 --- a/src/main/java/com/weaver/seconddev/entry/service/EntryManageService.java +++ b/src/main/java/com/weaver/seconddev/entry/service/EntryManageService.java @@ -22,7 +22,7 @@ public interface EntryManageService { /** * 上传文件 * - * @param fileIds 文件ID + * @param params * @return */ WeaResult> uploadFiles(Map params); diff --git a/src/main/java/com/weaver/seconddev/entry/service/impl/EntryManageServiceImpl.java b/src/main/java/com/weaver/seconddev/entry/service/impl/EntryManageServiceImpl.java index 429ba63..dff53ff 100644 --- a/src/main/java/com/weaver/seconddev/entry/service/impl/EntryManageServiceImpl.java +++ b/src/main/java/com/weaver/seconddev/entry/service/impl/EntryManageServiceImpl.java @@ -5,8 +5,13 @@ import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.common.form.metadata.field.FormField; +import com.weaver.eteams.file.client.file.FileData; import com.weaver.eteams.file.client.file.FileObj; +import com.weaver.eteams.file.client.param.RemoteUploadParam; import com.weaver.eteams.file.client.remote.FileClientService; +import com.weaver.file.ud.api.FileDownloadService; +import com.weaver.file.ud.api.FileUploadService; import com.weaver.seconddev.entry.entity.FileUploadLoad; import com.weaver.seconddev.entry.enums.FileUploadType; import com.weaver.seconddev.entry.mapper.EntryManageMapper; @@ -22,6 +27,7 @@ import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.io.InputStream; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -42,6 +48,12 @@ public class EntryManageServiceImpl implements EntryManageService { @Autowired FileClientService fileClientService; + @Autowired + FileUploadService fileUploadService; + + @Autowired + private FileDownloadService fileDownloadService; + @Autowired EbuilderBaseMapper ebuilderBaseMapper; @@ -83,18 +95,18 @@ public class EntryManageServiceImpl implements EntryManageService { } String formatDate = DateUtil.formatDateTime(localDate, DateTimeFormatter.ofPattern("yyyyMMddHHmm")); - FileUploadLoad fileUploadLoad = new FileUploadLoad(fileObj.getName(), formatDate,field); + FileUploadLoad fileUploadLoad = new FileUploadLoad(fileObj.getName(), formatDate, field); fileObj.setName(fileUploadLoad.getFileName()); fileClientService.update(fileObj); - log.error("fileUploadLoad==={}", fileUploadLoad); fileUploadLoadList.add(fileUploadLoad); } - log.error("fileUploadLoadList==={}", fileUploadLoadList); Map> fileUploadMap = fileUploadLoadList.stream().collect(Collectors.groupingBy(FileUploadLoad::getJobNum)); JSONArray datas = new JSONArray(); + Long formId = ebuilderBaseMapper.getFormIdByTableName(baseParam, "uf_jcl_rzgl"); + for (Map.Entry> entry : fileUploadMap.entrySet()) { String jobNum = entry.getKey(); // 入职记录ID @@ -105,15 +117,15 @@ public class EntryManageServiceImpl implements EntryManageService { List personFileUploadLoadList = entry.getValue(); // 根据文件类型分组,并将同一类别的附件ID用逗号分隔 - Map fileTypeMap = personFileUploadLoadList.stream().collect(Collectors.groupingBy(FileUploadLoad::getFileTypeName, Collectors.mapping(item -> item.getFileId().toString(), Collectors.joining(",")))); + Map> fileTypeMap = personFileUploadLoadList.stream().collect(Collectors.groupingBy(FileUploadLoad::getFileTypeName)); // 组合更新的JOSN对象 JSONObject mainDataObj = new JSONObject(); mainDataObj.put("id", entryRecordId); - fileTypeMap.forEach((fileTypeName, ids) -> { + fileTypeMap.forEach((fileTypeName, list) -> { FileUploadType byName = FileUploadType.getByName(fileTypeName); if (null != byName) { - // 构建更新数据 - mainDataObj.put(byName.getDbName(), ids); + String fieldIds = reUploadFiled(entryRecordId, list, formId, byName.getDbName()); + mainDataObj.put(byName.getDbName(), fieldIds); } }); JSONObject dataObj = new JSONObject(); @@ -126,12 +138,19 @@ public class EntryManageServiceImpl implements EntryManageService { Long userId = UserContext.getCurrentUser().getEmployeeId(); String updateMsg = updateEbTable(datas, String.valueOf(objId), String.valueOf(userId)); - log.error("updateMsg===" + updateMsg); Map actionMap = new HashMap<>(); actionMap.put("updateMsg", updateMsg); return WeaResult.success(actionMap); } + /** + * 更新EB表单数据 + * + * @param datas + * @param objId + * @param userId + * @return + */ private String updateEbTable(JSONArray datas, String objId, String userId) { JSONObject dataJson = new JSONObject(); JSONObject operationinfo = new JSONObject(); @@ -160,4 +179,37 @@ public class EntryManageServiceImpl implements EntryManageService { .execute() .body(); } + + /** + * 将文件上传到EB + * + * @param entryRecordId + * @param fileUploadLoadList + * @param formId + * @param fieldName + * @return + */ + private String reUploadFiled(Long entryRecordId, List fileUploadLoadList, Long formId, String fieldName) { + List newFieldIds = new ArrayList<>(); + FormField formField = ebuilderBaseMapper.getFormFieldByFieldName(baseParam, formId, fieldName); + if (null != formField) { + Long folderIdByFieldId = ebuilderBaseMapper.getFolderIdByFieldId(baseParam, formField.getId()); + for (FileUploadLoad fileUploadLoad : fileUploadLoadList) { + FileData fileData = fileDownloadService.downloadFile(fileUploadLoad.getFileId()); + FileObj fileObj = fileData.getFileObj(); + RemoteUploadParam uploadParam = new RemoteUploadParam(fileObj.getName(), String.valueOf(System.currentTimeMillis()), "ebuilderform"); + uploadParam.setRefId(entryRecordId); + uploadParam.setFolderId(folderIdByFieldId); + + InputStream inputStream = fileData.getInputStream(); + FileObj fileObj1 = fileUploadService.uploadLocalFile(inputStream, UserContext.getCurrentUser().getEmployeeId(), fileObj.getType(), uploadParam); + if (null != fileObj1) { + newFieldIds.add(fileObj1.getId().toString()); + } + } + } + return StringUtils.join(newFieldIds, ","); + } + + } diff --git a/src/main/java/com/weaver/seconddev/portal/mapper/portal/EbuilderBaseMapper.java b/src/main/java/com/weaver/seconddev/portal/mapper/portal/EbuilderBaseMapper.java index d092f4c..2f34dc8 100644 --- a/src/main/java/com/weaver/seconddev/portal/mapper/portal/EbuilderBaseMapper.java +++ b/src/main/java/com/weaver/seconddev/portal/mapper/portal/EbuilderBaseMapper.java @@ -45,9 +45,12 @@ public interface EbuilderBaseMapper { /** * 根据表名获取对象ID + * * @param param * @param tableName * @return */ Long getObjIdByTableName(@Param("param") BaseParam param, @Param("tableName") String tableName); + + Long getFolderIdByFieldId(@Param("param") BaseParam param, @Param("fieldId") Long fieldId); } diff --git a/src/main/resources/mapper/portal/EbuilderBaseMapper.xml b/src/main/resources/mapper/portal/EbuilderBaseMapper.xml index 6336d56..1620fff 100644 --- a/src/main/resources/mapper/portal/EbuilderBaseMapper.xml +++ b/src/main/resources/mapper/portal/EbuilderBaseMapper.xml @@ -28,4 +28,10 @@ and t.table_name = #{tableName} + +