From 890a44585d16f44b0376a164bbdbd4e1c07052fd Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 25 Jan 2024 09:07:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98-=E7=AC=94=E8=AF=95=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WrittenResultsController.java | 12 + .../controller/WrittenResultsController.java | 37 ++ .../service/WrittenResultsService.java | 18 + .../impl/WrittenResultsServiceImpl.java | 42 +++ .../recruit/util/RecruitFormItemUtil.java | 357 ++++++++++++++++++ .../wrapper/WrittenResultsWrapper.java | 24 ++ 6 files changed, 490 insertions(+) create mode 100644 src/com/api/recruit/controller/WrittenResultsController.java create mode 100644 src/com/engine/recruit/controller/WrittenResultsController.java create mode 100644 src/com/engine/recruit/service/WrittenResultsService.java create mode 100644 src/com/engine/recruit/service/impl/WrittenResultsServiceImpl.java create mode 100644 src/com/engine/recruit/util/RecruitFormItemUtil.java create mode 100644 src/com/engine/recruit/wrapper/WrittenResultsWrapper.java diff --git a/src/com/api/recruit/controller/WrittenResultsController.java b/src/com/api/recruit/controller/WrittenResultsController.java new file mode 100644 index 0000000..a3581f4 --- /dev/null +++ b/src/com/api/recruit/controller/WrittenResultsController.java @@ -0,0 +1,12 @@ +package com.api.recruit.controller; + +import javax.ws.rs.Path; + +/** + * @author:dxfeng + * @createTime: 2023/10/23 + * @version: 1.0 + */ +@Path("/jcl/recruit/written") +public class WrittenResultsController extends com.engine.recruit.controller.WrittenResultsController{ +} diff --git a/src/com/engine/recruit/controller/WrittenResultsController.java b/src/com/engine/recruit/controller/WrittenResultsController.java new file mode 100644 index 0000000..d722c6b --- /dev/null +++ b/src/com/engine/recruit/controller/WrittenResultsController.java @@ -0,0 +1,37 @@ +package com.engine.recruit.controller; + +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.recruit.util.ResponseResult; +import com.engine.recruit.wrapper.WrittenResultsWrapper; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2024/01/24 + * @version: 1.0 + */ +public class WrittenResultsController { + public WrittenResultsWrapper getWrittenResultsWrapper(User user) { + return ServiceUtil.getService(WrittenResultsWrapper.class, user); + } + + @GET + @Path("/getFormCondition") + @Produces(MediaType.APPLICATION_JSON) + public String getFormCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map params = ParamUtil.request2Map(request); + return new ResponseResult, Map>(user).run(getWrittenResultsWrapper(user)::getFormCondition,params); + } +} diff --git a/src/com/engine/recruit/service/WrittenResultsService.java b/src/com/engine/recruit/service/WrittenResultsService.java new file mode 100644 index 0000000..250ddab --- /dev/null +++ b/src/com/engine/recruit/service/WrittenResultsService.java @@ -0,0 +1,18 @@ +package com.engine.recruit.service; + +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2024/01/24 + * @version: 1.0 + */ +public interface WrittenResultsService { + + /** + * 获取表单结构 + * + * @return + */ + Map getFormCondition(); +} diff --git a/src/com/engine/recruit/service/impl/WrittenResultsServiceImpl.java b/src/com/engine/recruit/service/impl/WrittenResultsServiceImpl.java new file mode 100644 index 0000000..e9d890b --- /dev/null +++ b/src/com/engine/recruit/service/impl/WrittenResultsServiceImpl.java @@ -0,0 +1,42 @@ +package com.engine.recruit.service.impl; + +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; +import com.engine.core.impl.Service; +import com.engine.recruit.service.WrittenResultsService; +import com.engine.recruit.util.RecruitFormItemUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2024/01/24 + * @version: 1.0 + */ +public class WrittenResultsServiceImpl extends Service implements WrittenResultsService { + @Override + public Map getFormCondition() { + Map apiDatas = new HashMap<>(); + List selectItems = new ArrayList<>(); + List addGroups = new ArrayList<>(); + SearchConditionItem schemeNameCondition = RecruitFormItemUtil.inputItem(user, 2, 17, 1, 50, "导入类型", "importType"); + schemeNameCondition.setRules("required|string"); + schemeNameCondition.setValue("更新"); + SearchConditionItem schemeNoCondition = RecruitFormItemUtil.uploadItem(user, 2, 17, 3, 50, "Excel文件", "excelFile", 5, 1, "xls,xlsx"); + SearchConditionItem subCompanyIdItem = RecruitFormItemUtil.browserItem(user, 2, 17, 1, false, "所属分部", "164", "subCompanyId", ""); + SearchConditionItem textareaItem = RecruitFormItemUtil.textareaItem(user, 2, 17, true, 1, 200, "方案说明", "schemeDescription"); + + selectItems.add(schemeNameCondition); + selectItems.add(schemeNoCondition); + selectItems.add(subCompanyIdItem); + selectItems.add(textareaItem); + addGroups.add(new SearchConditionGroup("基本信息", true, selectItems, "")); + apiDatas.put("condition", addGroups); + apiDatas.put("hasRight", true); + return apiDatas; + + } +} diff --git a/src/com/engine/recruit/util/RecruitFormItemUtil.java b/src/com/engine/recruit/util/RecruitFormItemUtil.java new file mode 100644 index 0000000..b782503 --- /dev/null +++ b/src/com/engine/recruit/util/RecruitFormItemUtil.java @@ -0,0 +1,357 @@ +package com.engine.recruit.util; + +import com.api.browser.bean.BrowserBean; +import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SearchConditionOption; +import com.api.browser.util.ConditionFactory; +import com.api.browser.util.ConditionType; +import weaver.hrm.User; +import weaver.integration.util.ConstantsUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * @Author dxfeng + * @description: + * @Date 2024/1/24 + * @Version V1.0 + **/ +@Deprecated +public class RecruitFormItemUtil { + + /** + * 下拉框 + * + * @param user + * @param selectOptions + * @param colSpan + * @param fieldcol + * @param labelcol + * @param isQuickSearch + * @param label + * @return + */ + public static SearchConditionItem selectItem(User user, List selectOptions, int colSpan, int fieldcol, + int labelcol, boolean isQuickSearch, String label, String name) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem select = conditionFactory.createCondition(ConditionType.SELECT, 502327, name); + select.setOptions(selectOptions); + select.setColSpan(colSpan); + select.setFieldcol(fieldcol); + select.setLabelcol(labelcol); + select.setIsQuickSearch(isQuickSearch); + select.setLabel(label); + return select; + } + + + /** + * checkbox + * + * @param user + * @param colSpan + * @param fieldcol + * @param viewAttr + * @param isQuickSearch + * @param label + * @param name + * @return + */ + public static SearchConditionItem checkboxItem(User user, int colSpan, int fieldcol, + int viewAttr, boolean isQuickSearch, String label, String name) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem checkbox = conditionFactory.createCondition(ConditionType.CHECKBOX, 502327, name); + checkbox.setColSpan(colSpan); + checkbox.setFieldcol(fieldcol); + checkbox.setViewAttr(viewAttr); + checkbox.setIsQuickSearch(isQuickSearch); + checkbox.setLabel(label); + return checkbox; + } + + + /** + * 输入框数字 + * + * @param user + * @param colSpan + * @param fieldcol + * @param viewAttr + * @param label + * @return + */ + public static SearchConditionItem inputNumberItem(User user, int colSpan, int fieldcol, + int viewAttr, String label, String name) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem inputnumber = conditionFactory.createCondition(ConditionType.INPUTNUMBER, 502327, name); + inputnumber.setColSpan(colSpan); + inputnumber.setFieldcol(fieldcol); + inputnumber.setViewAttr(viewAttr); + inputnumber.setLabel(label); + return inputnumber; + } + + + /** + * 输入框文本 + * + * @param user + * @param colSpan + * @param fieldcol + * @param viewAttr + * @param length + * @param label + * @return + */ + public static SearchConditionItem inputItem(User user, int colSpan, int fieldcol, + int viewAttr, int length, String label, String name) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem input = conditionFactory.createCondition(ConditionType.INPUT, 25034, name); + input.setColSpan(colSpan); + input.setFieldcol(fieldcol); + input.setViewAttr(viewAttr); + input.setLength(length); + input.setLabel(label); + return input; + } + + public static SearchConditionItem uploadItem(User user, int colSpan, int fieldcol, + int viewAttr, int length, String label, String name,int maxUploadSize,int maxFilesNumber,String limitType) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem upload = conditionFactory.createCondition(ConditionType.UPLOAD, 25034, name); + upload.setColSpan(colSpan); + upload.setFieldcol(fieldcol); + upload.setViewAttr(viewAttr); + upload.setLength(length); + upload.setLabel(label); + upload.setUploadUrl(ConstantsUtil.INTEGRATION_DATASOURCE_UPLOADFILE); + upload.setCategory("string"); + upload.setMultiSelection(false); + Map otherParams = new HashMap<>(); + otherParams.put("maxUploadSize", maxUploadSize); + otherParams.put("autoUpload", true); + otherParams.put("limitType", limitType); + upload.setOtherParams(otherParams); + upload.setMaxFilesNumber(maxFilesNumber); + upload.setViewAttr(viewAttr); + if (viewAttr == 3) { + upload.setRules("required"); + } + return upload; + } + + + /** + * 浏览按钮 + * + * @param user + * @param colSpan + * @param fieldcol + * @param viewAttr + * @param isQuickSearch + * @param label + * @param type + * @param name + * @param fieldDbType 数据展现集成标识 + * @return + */ + public static SearchConditionItem browserItem(User user, int colSpan, int fieldcol, + int viewAttr, boolean isQuickSearch, String label, String type, String name, String fieldDbType) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem browser = conditionFactory.createCondition(ConditionType.BROWSER, 502327, name, type); + browser.setColSpan(colSpan); + browser.setFieldcol(fieldcol); + browser.setViewAttr(viewAttr); + browser.setIsQuickSearch(isQuickSearch); + browser.setLabel(label); + if ("161".equals(type) || "162".equals(type)) { + fieldDbType = "browser." + fieldDbType; + BrowserBean browserBean = new BrowserBean(); + // completeParams + Map completeMap = new HashMap<>(); + completeMap.put("f_weaver_belongto_usertype", 0); + completeMap.put("type", type); + completeMap.put("fielddbtype", fieldDbType); + browserBean.setCompleteParams(completeMap); + // conditionDataParams + Map conditionDataMap = new HashMap<>(); + conditionDataMap.put("f_weaver_belongto_usertype", 0); + conditionDataMap.put("type", fieldDbType); + conditionDataMap.put("fielddbtype", fieldDbType); + browserBean.setConditionDataParams(conditionDataMap); + // dataParams + Map dataMap = new HashMap<>(); + dataMap.put("f_weaver_belongto_usertype", 0); + dataMap.put("type", fieldDbType); + browserBean.setDataParams(dataMap); + // destDataParams + Map destDataMap = new HashMap<>(); + destDataMap.put("f_weaver_belongto_usertype", 0); + destDataMap.put("type", fieldDbType); + browserBean.setDestDataParams(destDataMap); + + browserBean.setLinkUrl(""); + browserBean.setMobileLinkUrl(""); + browserBean.setPageSize(10); + browserBean.setScrollx(true); + browserBean.setTitle(label); + browserBean.setType(type); + + browser.setBrowserConditionParam(browserBean); + if ("162".equals(type)) { + HashMap otherMap = new HashMap<>(); + otherMap.put("isMultCheckbox", "true"); + otherMap.put("icon", "icon-coms-integration"); + browser.setOtherParams(otherMap); + } + } + return browser; + } + + + /** + * 日期区间 + * + * @param user + * @param colSpan + * @param fieldcol + * @param viewAttr + * @param label + * @return + */ + public static SearchConditionItem rangeDateItem(User user, int colSpan, int fieldcol, int viewAttr + , String label, String name1, String name2) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem rangeDate = conditionFactory.createCondition(ConditionType.TIMEPICKER, 502327, new String[]{name1, name2}); + rangeDate.setColSpan(colSpan); + rangeDate.setFieldcol(fieldcol); + rangeDate.setViewAttr(viewAttr); + rangeDate.setLabel(label); + return rangeDate; + } + + + /** + * 多行文本框 + * + * @param user + * @param colSpan + * @param fieldcol + * @param isQuickSearch + * @param viewAttr + * @param length + * @param label + * @param name + * @return + */ + public static SearchConditionItem textareaItem(User user, int colSpan, int fieldcol, boolean isQuickSearch, + int viewAttr, int length, String label, String name) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem textarea = conditionFactory.createCondition(ConditionType.TEXTAREA, 502227, name); + textarea.setColSpan(colSpan); + textarea.setFieldcol(fieldcol); + textarea.setIsQuickSearch(isQuickSearch); + textarea.setViewAttr(viewAttr); + textarea.setLength(length); + textarea.setLabel(label); + + return textarea; + } + + + /** + * 日期组合 + * + * @param user + * @param colSpan + * @param fieldcol + * @param isQuickSearch + * @param viewAttr + * @param label + * @param name + * @return + */ + public static SearchConditionItem dateItem(User user, int colSpan, int fieldcol, boolean isQuickSearch, + int viewAttr, String label, String name) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem date = conditionFactory.createCondition(ConditionType.DATE, 502227, name); + date.setColSpan(colSpan); + date.setFieldcol(fieldcol); + date.setIsQuickSearch(isQuickSearch); + date.setViewAttr(viewAttr); + date.setLabel(label); + return date; + } + + /** + * @param user + * @param colSpan + * @param fieldcol + * @param isQuickSearch + * @param viewAttr + * @param label + * @param name + * @return + */ + public static SearchConditionItem datePickerItem(User user, int colSpan, int fieldcol, boolean isQuickSearch, + int viewAttr, String label, String name) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem datePicker = conditionFactory.createCondition(ConditionType.DATEPICKER, 502227, name); + datePicker.setColSpan(colSpan); + datePicker.setFieldcol(fieldcol); + datePicker.setIsQuickSearch(isQuickSearch); + datePicker.setViewAttr(viewAttr); + datePicker.setLabel(label); + return datePicker; + } + + + public static SearchConditionItem dateGroupItem(User user, int colSpan, int fieldcol, boolean isQuickSearch, + int viewAttr, String label, String name) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem dateGroup = conditionFactory.createCondition(ConditionType.DATEGROUP, 502227, name); + dateGroup.setColSpan(colSpan); + dateGroup.setFieldcol(fieldcol); + dateGroup.setIsQuickSearch(isQuickSearch); + dateGroup.setViewAttr(viewAttr); + dateGroup.setLabel(label); + List datas = new ArrayList<>(); + datas.add(new DateGroupData("全部", "0")); + datas.add(new DateGroupData("今天", "1")); + datas.add(new DateGroupData("本周", "2")); + datas.add(new DateGroupData("本月", "3")); + datas.add(new DateGroupData("本季", "4")); + datas.add(new DateGroupData("本年", "5")); + datas.add(new DateGroupData("上个月", "7")); + datas.add(new DateGroupData("上一年", "8")); + datas.add(new DateGroupData("指定日期范围", "6")); + dateGroup.setDatas(datas); + dateGroup.setValue(new ArrayList<>()); + dateGroup.setDateGroup(true); + return dateGroup; + } + + static class DateGroupData { + private String name; + private String value; + + public DateGroupData(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public String getValue() { + return value; + } + } + + +} diff --git a/src/com/engine/recruit/wrapper/WrittenResultsWrapper.java b/src/com/engine/recruit/wrapper/WrittenResultsWrapper.java new file mode 100644 index 0000000..31814d9 --- /dev/null +++ b/src/com/engine/recruit/wrapper/WrittenResultsWrapper.java @@ -0,0 +1,24 @@ +package com.engine.recruit.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.recruit.service.WrittenResultsService; +import com.engine.recruit.service.impl.WrittenResultsServiceImpl; +import weaver.hrm.User; + +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2024/01/24 + * @version: 1.0 + */ +public class WrittenResultsWrapper extends Service { + private WrittenResultsService getWrittenResultsService(User user) { + return ServiceUtil.getService(WrittenResultsServiceImpl.class, user); + } + + public Map getFormCondition(Map params) { + return getWrittenResultsService(user).getFormCondition(); + } +}