From d5ca665f2fd91c88218f790f155f19de0429fa99 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 11 Jan 2023 15:42:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=AE=9A=E5=88=B6=E5=88=97?= =?UTF-8?q?=E7=A9=BF=E6=A2=AD=E6=A1=86=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/hrmresource/po/TransferDataPO.java | 22 +++++ .../mapper/resource/HrmResourceMapper.java | 2 + .../mapper/resource/HrmResourceMapper.xml | 7 ++ .../service/HrmResourceService.java | 8 ++ .../service/impl/HrmResourceServiceImpl.java | 86 +++++++++++++++---- .../web/HrmResourceController.java | 13 +++ .../wrapper/HrmResourceWrapper.java | 4 + 7 files changed, 125 insertions(+), 17 deletions(-) create mode 100644 src/com/engine/organization/entity/hrmresource/po/TransferDataPO.java diff --git a/src/com/engine/organization/entity/hrmresource/po/TransferDataPO.java b/src/com/engine/organization/entity/hrmresource/po/TransferDataPO.java new file mode 100644 index 00000000..c0de5cba --- /dev/null +++ b/src/com/engine/organization/entity/hrmresource/po/TransferDataPO.java @@ -0,0 +1,22 @@ +package com.engine.organization.entity.hrmresource.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2023/01/11 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TransferDataPO { + private String id; + private String label; + private String title; + private String idx; +} diff --git a/src/com/engine/organization/mapper/resource/HrmResourceMapper.java b/src/com/engine/organization/mapper/resource/HrmResourceMapper.java index aaa7f84e..164252fb 100644 --- a/src/com/engine/organization/mapper/resource/HrmResourceMapper.java +++ b/src/com/engine/organization/mapper/resource/HrmResourceMapper.java @@ -48,6 +48,8 @@ public interface HrmResourceMapper { SearchTemplatePO getSearchTemplateById(@Param("id") String id); + SearchTemplatePO getCustomTemplateById(@Param("id") String id); + Integer insertSearchTemplate(SearchTemplatePO templatePO); Integer deleteSearchTemplate(@Param("id") Integer Id, @Param("userId") Integer userId); diff --git a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml index 793d042a..ff59d0b7 100644 --- a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml +++ b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml @@ -129,6 +129,13 @@ where id = #{id} + + diff --git a/src/com/engine/organization/service/HrmResourceService.java b/src/com/engine/organization/service/HrmResourceService.java index a794f2b0..dee1bbee 100644 --- a/src/com/engine/organization/service/HrmResourceService.java +++ b/src/com/engine/organization/service/HrmResourceService.java @@ -142,4 +142,12 @@ public interface HrmResourceService { * @param id */ void deleteCustomTemplate(Integer id); + + /** + * 获取列定制穿梭框数据 + * + * @param params + * @return + */ + Map getCustomTransferData(Map params); } diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index a978e911..0f68bbfc 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -20,6 +20,7 @@ import com.engine.organization.entity.hrmresource.param.HrmRelationSaveParam; import com.engine.organization.entity.hrmresource.param.SearchTemplateParam; import com.engine.organization.entity.hrmresource.po.HrmRelationPO; import com.engine.organization.entity.hrmresource.po.SearchTemplatePO; +import com.engine.organization.entity.hrmresource.po.TransferDataPO; import com.engine.organization.entity.hrmresource.vo.HrmResourceVO; import com.engine.organization.entity.jclimport.po.CusFormFieldPO; import com.engine.organization.entity.job.bo.JobBO; @@ -52,6 +53,7 @@ import weaver.general.Util; import weaver.hrm.definedfield.HrmFieldManager; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -168,29 +170,19 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic @Override public String getTemplateSelectKeys(Map params) { + // TODO String templateId = Util.null2String(params.get("templateId")); String column = Util.null2String(params.get("column")); OrganizationAssert.isTrue(StringUtils.isNotBlank(templateId), "数据有误,未找到对应数据"); // 判断是否为搜索模板 + SearchTemplatePO searchTemplateById = null; if (StringUtils.isBlank(column)) { - SearchTemplatePO searchTemplateById = getHrmResourceMapper().getSearchTemplateById(templateId); - String basicFields = searchTemplateById.getBasicFields(); - String personalFields = searchTemplateById.getPersonalFields(); - String workflowFields = searchTemplateById.getWorkFields(); - List selectKeys = new ArrayList<>(); - if (StringUtils.isNotBlank(basicFields)) { - selectKeys.addAll(Arrays.asList(basicFields.split(","))); - } - if (StringUtils.isNotBlank(personalFields)) { - selectKeys.addAll(Arrays.asList(personalFields.split(","))); - } - if (StringUtils.isNotBlank(workflowFields)) { - selectKeys.addAll(Arrays.asList(workflowFields.split(","))); - } - return StringUtils.join(selectKeys, ","); + searchTemplateById = getHrmResourceMapper().getSearchTemplateById(templateId); + } else { + searchTemplateById = getHrmResourceMapper().getCustomTemplateById(templateId); } - return ""; - + List selectKeys = getSelectKeys(searchTemplateById); + return StringUtils.join(selectKeys, ","); } @Override @@ -227,6 +219,38 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic getHrmResourceMapper().deleteCustomTemplate(id, user.getUID()); } + @Override + public Map getCustomTransferData(Map params) { + Map resultMap = new HashMap<>(); + String templateId = StringUtils.isNotBlank(Util.null2String(params.get("templateId"))) ? Util.null2String(params.get("templateId")) : "-1"; + List transferDatas = new ArrayList<>(); + List transferKeys = new ArrayList<>(); + List transferOptions = new ArrayList<>(); + List allConditions = getAllConditions(); + AtomicInteger idx = new AtomicInteger(0); + for (SearchConditionGroup allCondition : allConditions) { + List items = allCondition.getItems(); + List collect = items.stream().map(item -> TransferDataPO.builder().id(item.getDomkey()[0]).label(item.getLabel()).title(allCondition.getTitle()).idx(Integer.toString(idx.get())).build()).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(collect)) { + transferDatas.addAll(collect); + } + transferOptions.add(SearchTemplateParam.builder().key(Integer.toString(idx.getAndIncrement())).showname(allCondition.getTitle()).build()); + } + if ("-1".equals(templateId)) { + List items = allConditions.get(0).getItems(); + transferKeys = items.stream().map(item -> item.getDomkey()[0]).collect(Collectors.toList()); + } else { + SearchTemplatePO searchTemplateById = getHrmResourceMapper().getCustomTemplateById(templateId); + transferKeys = getSelectKeys(searchTemplateById); + } + + resultMap.put("transferDatas", transferDatas); + resultMap.put("transferKeys", transferKeys); + resultMap.put("transferOptions", transferOptions); + + return resultMap; + } + @Override public Map getSearchCondition(Map params) { String templateId = Util.null2String(params.get("templateId")); @@ -879,6 +903,11 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic return sb.toString(); } + /** + * 为下拉框搜索条件、添加空选项 + * + * @param searchConditionItem + */ private void addEmptyForSelect(SearchConditionItem searchConditionItem) { searchConditionItem.setValue(""); List options = searchConditionItem.getOptions(); @@ -891,4 +920,27 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic options.add(0, searchConditionOption); } + + /** + * 根据模板示例,组装所有selectKeys + * + * @param searchTemplatePO + * @return + */ + private List getSelectKeys(SearchTemplatePO searchTemplatePO) { + List selectKeys = new ArrayList<>(); + String basicFields = searchTemplatePO.getBasicFields(); + String personalFields = searchTemplatePO.getPersonalFields(); + String workflowFields = searchTemplatePO.getWorkFields(); + if (StringUtils.isNotBlank(basicFields)) { + selectKeys.addAll(Arrays.asList(basicFields.split(","))); + } + if (StringUtils.isNotBlank(personalFields)) { + selectKeys.addAll(Arrays.asList(personalFields.split(","))); + } + if (StringUtils.isNotBlank(workflowFields)) { + selectKeys.addAll(Arrays.asList(workflowFields.split(","))); + } + return selectKeys; + } } diff --git a/src/com/engine/organization/web/HrmResourceController.java b/src/com/engine/organization/web/HrmResourceController.java index 7813c5f0..6f1b49ea 100644 --- a/src/com/engine/organization/web/HrmResourceController.java +++ b/src/com/engine/organization/web/HrmResourceController.java @@ -305,4 +305,17 @@ public class HrmResourceController { return ReturnResult.exceptionHandle(e); } } + + @GET + @Path("/getCustomTransferData") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getCustomTransferData(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(JSON.toJSON(getHrmResourceWrapper(user).getCustomTransferData(map))); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } } diff --git a/src/com/engine/organization/wrapper/HrmResourceWrapper.java b/src/com/engine/organization/wrapper/HrmResourceWrapper.java index 8e1e183d..2588586d 100644 --- a/src/com/engine/organization/wrapper/HrmResourceWrapper.java +++ b/src/com/engine/organization/wrapper/HrmResourceWrapper.java @@ -99,4 +99,8 @@ public class HrmResourceWrapper extends OrganizationWrapper { public void deleteCustomTemplate(Integer id) { getHrmResourceService(user).deleteCustomTemplate(id); } + + public Map getCustomTransferData(Map params) { + return getHrmResourceService(user).getCustomTransferData(params); + } }