From d5ca665f2fd91c88218f790f155f19de0429fa99 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 11 Jan 2023 15:42:41 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=AE=9A=E5=88=B6?= =?UTF-8?q?=E5=88=97=E7=A9=BF=E6=A2=AD=E6=A1=86=E6=8E=A5=E5=8F=A3=E5=BC=80?= =?UTF-8?q?=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); + } } From 0f73f6e3acfccebdb7c935fb2f4b1be3c34aed41 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 11 Jan 2023 16:28:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=AE=9A=E5=88=B6?= =?UTF-8?q?=E5=88=97=E7=A9=BF=E6=A2=AD=E6=A1=86=E6=8E=A5=E5=8F=A3=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/personnelcard/vo/CardAccessVO.java | 2 +- .../mapper/resource/HrmResourceMapper.java | 8 ++++ .../mapper/resource/HrmResourceMapper.xml | 8 ++++ .../service/impl/HrmResourceServiceImpl.java | 43 ++++++++++++------- 4 files changed, 44 insertions(+), 17 deletions(-) diff --git a/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java b/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java index 934ebbeb..cdefeff7 100644 --- a/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java +++ b/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java @@ -55,7 +55,7 @@ public class CardAccessVO { @OrganizationTableColumn(text = "所有上级可见", width = "15%", column = "all_superior") private Integer allSuperior; - @OrganizationTableColumn(text = "查看自定义", width = "15%", column = "custom",transmethod = "com.engine.organization.transmethod.SystemTransMethod.getRoleName") + @OrganizationTableColumn(text = "查看自定义", width = "30%", column = "custom",transmethod = "com.engine.organization.transmethod.SystemTransMethod.getRoleName") private String custom; } diff --git a/src/com/engine/organization/mapper/resource/HrmResourceMapper.java b/src/com/engine/organization/mapper/resource/HrmResourceMapper.java index 164252fb..d0f3f33d 100644 --- a/src/com/engine/organization/mapper/resource/HrmResourceMapper.java +++ b/src/com/engine/organization/mapper/resource/HrmResourceMapper.java @@ -46,6 +46,14 @@ public interface HrmResourceMapper { */ List getSearchTemplatesByUser(@Param("userId") Integer userId); + /** + * 根据用户ID获取列定制模板 + * + * @param userId + * @return + */ + List getCustomTemplatesByUser(@Param("userId") Integer userId); + SearchTemplatePO getSearchTemplateById(@Param("id") String id); SearchTemplatePO getCustomTemplateById(@Param("id") String id); diff --git a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml index ff59d0b7..17c13dd5 100644 --- a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml +++ b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml @@ -135,6 +135,14 @@ from jcl_org_custom_template where id = #{id} + params) { - // TODO String templateId = Util.null2String(params.get("templateId")); - String column = Util.null2String(params.get("column")); + templateId = StringUtils.isBlank(templateId) ? "-1" : templateId; + String type = Util.null2String(params.get("type")); OrganizationAssert.isTrue(StringUtils.isNotBlank(templateId), "数据有误,未找到对应数据"); // 判断是否为搜索模板 - SearchTemplatePO searchTemplateById = null; - if (StringUtils.isBlank(column)) { - searchTemplateById = getHrmResourceMapper().getSearchTemplateById(templateId); + SearchTemplatePO searchTemplateById; + List selectKeys; + if ("custom".equals(type)) { + if ("-1".equals(templateId)) { + selectKeys = Arrays.asList("-1_hrm_lastname,-1_hrm_departmentid,-1_hrm_jobtitle,-1_hrm_mobile,-1_hrm_telephone,-1_hrm_managerid".split(",")); + } else { + searchTemplateById = getHrmResourceMapper().getCustomTemplateById(templateId); + selectKeys = getSelectKeys(searchTemplateById); + } } else { - searchTemplateById = getHrmResourceMapper().getCustomTemplateById(templateId); + if ("-1".equals(templateId)) { + selectKeys = getAllConditions().get(0).getItems().stream().map(item -> item.getDomkey()[0]).collect(Collectors.toList()); + } else { + searchTemplateById = getHrmResourceMapper().getSearchTemplateById(templateId); + selectKeys = getSelectKeys(searchTemplateById); + } } - List selectKeys = getSelectKeys(searchTemplateById); + return StringUtils.join(selectKeys, ","); } @Override public List getSearchTemplate(Map params) { - String templateId = StringUtils.isNotBlank(Util.null2String(params.get("templateId"))) ? Util.null2String(params.get("templateId")) : "-1"; + String type = Util.null2String(params.get("type")); int userUID = user.getUID(); // 根据ID查询所存储的模板 - List templates = getHrmResourceMapper().getSearchTemplatesByUser(userUID); + List templates; + if ("custom".equals(type)) { + templates = getHrmResourceMapper().getCustomTemplatesByUser(userUID); + } else { + templates = getHrmResourceMapper().getSearchTemplatesByUser(userUID); + } templates.add(0, SearchTemplateParam.builder().key("-1").selected(false).showname("默认模板").build()); - templates.forEach(item -> { - if (templateId.equals(item.getKey())) { - item.setSelected(true); - } - }); return templates; } @@ -237,8 +248,8 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic 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()); + String selectKeys = "-1_hrm_lastname,-1_hrm_departmentid,-1_hrm_jobtitle,-1_hrm_mobile,-1_hrm_telephone,-1_hrm_managerid"; + transferKeys = Arrays.asList(selectKeys.split(",")); } else { SearchTemplatePO searchTemplateById = getHrmResourceMapper().getCustomTemplateById(templateId); transferKeys = getSelectKeys(searchTemplateById);