From 52c964f199d79643a8a4855585127ae03a37ef7e Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 16 Jun 2022 14:19:54 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E5=AD=97=E6=AE=B5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/权限SQL/权限插入SQL.sql | 24 +-- .../entity/SelectOptionParam.java | 19 +++ .../entity/extend/bo/ExtendGroupBO.java | 6 +- .../entity/extend/bo/ExtendInfoBO.java | 14 +- .../mapper/extend/ExtendInfoMapper.java | 9 +- .../mapper/extend/ExtendInfoMapper.xml | 157 +++++++++++++++++- .../service/impl/FieldDefinedServiceImpl.java | 19 ++- .../service/impl/JobServiceImpl.java | 4 +- .../web/FieldDefinedController.java | 14 +- .../wrapper/FieldDefinedWrapper.java | 10 +- 10 files changed, 243 insertions(+), 33 deletions(-) diff --git a/docs/权限SQL/权限插入SQL.sql b/docs/权限SQL/权限插入SQL.sql index 995ea9e3..00adefc4 100644 --- a/docs/权限SQL/权限插入SQL.sql +++ b/docs/权限SQL/权限插入SQL.sql @@ -2,70 +2,70 @@ insert into SystemRights (id,rightdesc,righttype) values (-20220601,'等级方案权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220601,7,'等级方案权限','等级方案权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220601,8,'Scheme Right','Scheme Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220601,'等级方案权限','Scheme:All:',-20220601) ; +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220601,'等级方案权限','Scheme:All',-20220601) ; -- 职等 insert into SystemRights (id,rightdesc,righttype) values (-20220602,'职等权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220602,7,'职等权限','职等权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220602,8,'Level Right','Level Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220602,'职等权限','Level:All:',-20220602) ; +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220602,'职等权限','Level:All',-20220602) ; -- 职级 insert into SystemRights (id,rightdesc,righttype) values (-20220603,'职级权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220603,7,'职级权限','职级权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220603,8,'Grade Right','Grade Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220603,'职级权限','Grade:All:',-20220603) ; +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220603,'职级权限','Grade:All',-20220603) ; -- 岗位序列 insert into SystemRights (id,rightdesc,righttype) values (-20220604,'岗位序列权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220604,7,'岗位序列权限','岗位序列权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220604,8,'Sequence Right','Sequence Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220604,'岗位序列权限','Sequence:All:',-20220604) ; +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220604,'岗位序列权限','Sequence:All',-20220604) ; -- 职务分类 insert into SystemRights (id,rightdesc,righttype) values (-20220605,'职务分类权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220605,7,'职务分类权限','职务分类权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220605,8,'Post Right','Post Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220605,'职务分类权限','Post:All:',-20220605) ; +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220605,'职务分类权限','Post:All',-20220605) ; -- 职务信息 insert into SystemRights (id,rightdesc,righttype) values (-20220606,'职务信息权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220606,7,'职务信息权限','职务信息权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220606,8,'PostInfo Right','PostInfo Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220606,'职务信息权限','PostInfo:All:',-20220606) ; +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220606,'职务信息权限','PostInfo:All',-20220606) ; -- 集团管理 insert into SystemRights (id,rightdesc,righttype) values (-20220607,'集团管理权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220607,7,'集团管理权限','集团管理权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220607,8,'Group Right','Group Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220607,'集团管理权限','Group:All:',-20220607) ; +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220607,'集团管理权限','Group:All',-20220607) ; -- 公司/分部管理 insert into SystemRights (id,rightdesc,righttype) values (-20220608,'公司/分部管理权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220608,7,'公司/分部管理权限','公司/分部管理权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220608,8,'Company Right','Company Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220608,'公司/分部管理权限','Company:All:',-20220608) ; +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220608,'公司/分部管理权限','Company:All',-20220608) ; -- 部门管理 insert into SystemRights (id,rightdesc,righttype) values (-20220609,'部门管理权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220609,7,'部门管理权限','部门管理权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220609,8,'Department Right','Department Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220609,'部门管理权限','Department:All:',-20220609) ; +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220609,'部门管理权限','Department:All',-20220609) ; -- 岗位管理 insert into SystemRights (id,rightdesc,righttype) values (-20220610,'岗位管理权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220610,7,'岗位管理权限','岗位管理权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220610,8,'Job Right','Job Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220610,'岗位管理权限','Job:All:',-20220610) ; +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220610,'岗位管理权限','Job:All',-20220610) ; -- 编制方案 insert into SystemRights (id,rightdesc,righttype) values (-20220611,'编制方案权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220611,7,'编制方案权限','编制方案权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220611,8,'StaffPlan Right','StaffPlan Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220611,'编制方案权限','StaffPlan:All:',-20220611) ; +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220611,'编制方案权限','StaffPlan:All',-20220611) ; -- 编制表 insert into SystemRights (id,rightdesc,righttype) values (-20220612,'编制表权限','0'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220612,7,'编制表权限','编制表权限'); insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (-20220612,8,'Staff Right','Staff Right'); -insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220612,'编制表权限','Staff:All:',-20220612) ; \ No newline at end of file +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (-20220612,'编制表权限','Staff:All',-20220612) ; \ No newline at end of file diff --git a/src/com/engine/organization/entity/SelectOptionParam.java b/src/com/engine/organization/entity/SelectOptionParam.java index 8690b3be..7db7f6df 100644 --- a/src/com/engine/organization/entity/SelectOptionParam.java +++ b/src/com/engine/organization/entity/SelectOptionParam.java @@ -38,4 +38,23 @@ public class SelectOptionParam { } return selectOptions; } + + /** + * 获取自定义浏览按钮标识 + * + * @param customValue + * @return + */ + public static String getCustomBrowserId(String customValue) { + try { + JSONArray objects = JSONObject.parseArray(customValue); + if (null != objects && objects.size() > 2) { + JSONObject object = (JSONObject) objects.get(2); + return object.getString("value"); + } + } catch (Exception e) { + + } + return customValue; + } } diff --git a/src/com/engine/organization/entity/extend/bo/ExtendGroupBO.java b/src/com/engine/organization/entity/extend/bo/ExtendGroupBO.java index 9212661c..3612f6a9 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendGroupBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendGroupBO.java @@ -60,13 +60,13 @@ public class ExtendGroupBO { public static String getTableNameByGroupPO(ExtendGroupPO extendGroupPO) { String tableName = ""; switch (extendGroupPO.getExtendType()) { - case -1: + case 1: tableName = "JCL_ORG_COMP"; break; - case -2: + case 2: tableName = "JCL_ORG_DEPT"; break; - case -3: + case 3: tableName = "JCL_ORG_JOB"; break; default: diff --git a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java index 1f7f18bf..05e71f10 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java @@ -18,6 +18,7 @@ import com.engine.organization.entity.extend.po.ExtendGroupPO; import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.sensitive.biz.SensitiveWordTypeComInfo; +import org.apache.commons.lang.StringUtils; import weaver.file.ImageFileManager; import weaver.general.Util; import weaver.hrm.User; @@ -81,6 +82,9 @@ public class ExtendInfoBO { String controlType = infoFieldParam.getControlType(); String browserType = infoFieldParam.getBrowserType(controlType); String dbType = infoFieldParam.getDbType(controlType, browserType); + if (StringUtils.isEmpty(dbType)) { + dbType = infoFieldParam.getDbType("2", ""); + } return ExtendInfoPO .builder() .id(infoFieldParam.getId()) @@ -93,10 +97,10 @@ public class ExtendInfoBO { .controlType(Integer.parseInt(controlType)) .browserType(browserType) .extendGroupId(extendGroupId) - .isenable(Integer.parseInt(infoFieldParam.getEnable())) - .isrequired(Integer.parseInt(infoFieldParam.getRequired())) + .isenable(null == infoFieldParam.getEnable() ? null : Integer.parseInt(infoFieldParam.getEnable())) + .isrequired(null == infoFieldParam.getRequired() ? null : Integer.parseInt(infoFieldParam.getRequired())) .listShow(1) - .editShow(1) + .editShow(null == infoFieldParam.getIsModify() ? null : Integer.parseInt(infoFieldParam.getIsModify())) .addShow(1) .browserShow(1) .customValue(infoFieldParam.getFieldType().toString()) @@ -157,7 +161,8 @@ public class ExtendInfoBO { // 浏览按钮特殊处理 if (FieldType.BROWSER.equals(fieldItem.getType())) { - BrowserBean browserConditionParam = OrganizationFormItemUtil.browserItem(user, 2, 16, fieldItem.getViewAttr(), false, extendInfoPO.getFieldNameDesc(), extendInfoPO.getBrowserType(), extendInfoPO.getFieldName(), extendInfoPO.getCustomValue()).getBrowserConditionParam(); + String browserId = SelectOptionParam.getCustomBrowserId(extendInfoPO.getCustomValue()); + BrowserBean browserConditionParam = OrganizationFormItemUtil.browserItem(user, 2, 16, fieldItem.getViewAttr(), false, extendInfoPO.getFieldNameDesc(), extendInfoPO.getBrowserType(), extendInfoPO.getFieldName(), browserId).getBrowserConditionParam(); fieldItem.setBrowserConditionParam(browserConditionParam); } @@ -224,6 +229,7 @@ public class ExtendInfoBO { } else if (fieldhtmltype.equals("2")) {//多行文本框 searchConditionItem = conditionFactory.createCondition(ConditionType.TEXTAREA, fieldlabel, fieldname); } else if (fieldhtmltype.equals("3")) {//浏览按钮 + customValue = SelectOptionParam.getCustomBrowserId(customValue); if (detailtype.equals("2")) { if (!extendInfoPO.getTableName().toLowerCase().contains("_dt")) { searchConditionItem = conditionFactory.createCondition(ConditionType.DATEPICKER, fieldlabel, fieldname); diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java index e298a331..a6a84ca2 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java @@ -13,11 +13,18 @@ import java.util.List; */ public interface ExtendInfoMapper { - List listFields(@Param("extendType") String extendType, @Param("extendGroupId") String extendGroupId, @Param("tableName") String tableName,@Param("operateType")String operateType); + List listFields(@Param("extendType") String extendType, @Param("extendGroupId") String extendGroupId, @Param("tableName") String tableName, @Param("operateType") String operateType); int countFieldsByGroupId(@Param("groupId") Long groupId); int updateExtendInfo(ExtendInfoPO extendInfo); + int insertExtendInfo(ExtendInfoPO extendInfo); + + // 添加表结构 + void addTableColumn(@Param("tableName") String tableName, @Param("fieldName") String fieldName, @Param("dbType") String dbType); + + Long getMaxId(); + } diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml index 3835e399..4c1d58f8 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -53,8 +53,156 @@ , t.create_time , t.update_time - - + + INSERT INTO jcl_field_extendinfo + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + extend_type, + + + table_name, + + + field_name, + + + field_name_desc, + + + field_type, + + + control_type, + + + browser_type, + + + extend_group_id, + + + isenable, + + + isrequired, + + + list_show, + + + search_show, + + + edit_show, + + + add_show, + + + browser_show, + + + custom_value, + + + show_order, + + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{extendType}, + + + #{tableName}, + + + #{fieldName}, + + + #{fieldNameDesc}, + + + #{fieldType}, + + + #{controlType}, + + + #{browserType}, + + + #{extendGroupId}, + + + #{isenable}, + + + #{isrequired}, + + + #{listShow}, + + + #{searchShow}, + + + #{editShow}, + + + #{addShow}, + + + #{browserShow}, + + + #{customValue}, + + + #{showOrder}, + + + + + ALTER TABLE ${tableName} + ADD ${fieldName} ${dbType} NULL; + + + update jcl_field_extendinfo + + update_time=#{updateTime}, + field_name_desc=#{fieldNameDesc}, + isenable=#{isenable}, + isrequired=#{isrequired}, + edit_show=#{editShow}, + show_order=#{showOrder}, + + WHERE id = #{id} AND delete_type = 0 @@ -84,6 +232,11 @@ where t.delete_type = 0 and extend_group_id = #{groupId} + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index c2cc48b8..a0c5586b 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -92,23 +92,32 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ Long extendGroupId = jsonObject.getLong("groupId"); JSONArray records = (JSONArray) jsonObject.get("records"); + int updateCount = 0; for (int i = 0; i < records.size(); i++) { // 存在ID则更新 ,不存在ID则增加 ExtendInfoFieldParam infoFieldParam = JSONObject.toJavaObject((JSONObject) records.get(i), ExtendInfoFieldParam.class); - // TODO ExtendInfoPO extendInfo = ExtendInfoBO.convertFieldParam2ExtendInfo(user, infoFieldParam, extendGroup, extendGroupId, i + 1); if (null != extendInfo.getId()) { // 更新 extend_title数据 - getExtendInfoMapper().updateExtendInfo(extendInfo); - + updateCount += getExtendInfoMapper().updateExtendInfo(extendInfo); } else { // 新增extend_title数据 - + // 获取操作表最大id,生成字段名 + Long maxId = getExtendInfoMapper().getMaxId(); + extendInfo.setFieldName("field" + (maxId + 1)); + updateCount += getExtendInfoMapper().insertExtendInfo(extendInfo); // 新增表结构 + getExtendInfoMapper().addTableColumn(extendInfo.getTableName(), extendInfo.getFieldName(), extendInfo.getFieldType()); + // 明细表且为浏览按钮字段,添加span字段 + if (null != extendGroup.getPid() && 3 == extendInfo.getControlType()) { + String dbType = infoFieldParam.getDbType("2", ""); + getExtendInfoMapper().addTableColumn(extendInfo.getTableName(), extendInfo.getFieldName() + "span", dbType); + } + } } - return 0; + return updateCount; } @Override diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index b52f7c2f..bbeb22c3 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -298,8 +298,8 @@ public class JobServiceImpl extends Service implements JobService { tableMap.put("tabname", "职等职级"); Map tabinfoMap = new HashMap<>(); List infoPOList = new ArrayList<>(); - infoPOList.add(ExtendInfoPO.builder().fieldName("gradeId").fieldNameDesc("职级").controlType(3).isrequired(1).browserType("161").customValue("gradeBrowser").build()); - infoPOList.add(ExtendInfoPO.builder().fieldName("levelId").fieldNameDesc("职等").controlType(3).isrequired(1).browserType("162").customValue("levelBrowser").build()); + infoPOList.add(ExtendInfoPO.builder().fieldName("gradeId").fieldNameDesc("职级").controlType(3).isrequired(1).browserType("161").customValue("[\"browser\",{\"value\":\"161\",\"valueSpan\":\"自定义单选\",\"replaceDatas\":[{\"id\":\"161\",\"name\":\"自定义单选\"}]},{\"value\":\"gradeBrowser\",\"valueSpan\":\"职级浏览按钮\",\"replaceDatas\":[{\"showname\":\"gradeBrowser\",\"shownamespan\":\"gradeBrowser\",\"namespan\":\"职级浏览按钮\",\"name\":\"职级浏览按钮\",\"showtypespan\":\"列表式\",\"randomFieldIdspan\":\"\",\"showtype\":\"1\",\"randomFieldId\":\"gradeBrowser\",\"id\":\"gradeBrowser\"}]}]").build()); + infoPOList.add(ExtendInfoPO.builder().fieldName("levelId").fieldNameDesc("职等").controlType(3).isrequired(1).browserType("162").customValue("[\"browser\",{\"value\":\"162\",\"valueSpan\":\"自定义多选\",\"replaceDatas\":[{\"id\":\"162\",\"name\":\"自定义多选\"}]},{\"value\":\"LevelBrowser\",\"valueSpan\":\"职等浏览按钮\",\"replaceDatas\":[{\"showname\":\"LevelBrowser\",\"shownamespan\":\"LevelBrowser\",\"namespan\":\"职等浏览按钮\",\"name\":\"职等浏览按钮\",\"showtypespan\":\"列表式\",\"randomFieldIdspan\":\"\",\"showtype\":\"1\",\"randomFieldId\":\"LevelBrowser\",\"id\":\"LevelBrowser\"}]}]").build()); tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, infoPOList, viewAttr, false)); tabinfoMap.put("rownum", "rownum"); // 去除null 元素 diff --git a/src/com/engine/organization/web/FieldDefinedController.java b/src/com/engine/organization/web/FieldDefinedController.java index dbefccf1..12778f7a 100644 --- a/src/com/engine/organization/web/FieldDefinedController.java +++ b/src/com/engine/organization/web/FieldDefinedController.java @@ -130,7 +130,19 @@ public class FieldDefinedController { public ReturnResult deleteTitle(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @QueryParam("id") Long id) { try { User user = HrmUserVarify.getUser(request, response); - return ReturnResult.successed(getFieldDefinedWrapper(user).deleteTitle(id)); + return ReturnResult.successed(getFieldDefinedWrapper(user).deleteTitle(id)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + @POST + @Path("/{moduleTypeEnum}/saveFields") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveFields(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @RequestBody ExtendTitleSaveParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getFieldDefinedWrapper(user).saveFields(param.getData())); } catch (Exception e) { return ReturnResult.exceptionHandle(e.getMessage()); } diff --git a/src/com/engine/organization/wrapper/FieldDefinedWrapper.java b/src/com/engine/organization/wrapper/FieldDefinedWrapper.java index 77876ce4..c3500489 100644 --- a/src/com/engine/organization/wrapper/FieldDefinedWrapper.java +++ b/src/com/engine/organization/wrapper/FieldDefinedWrapper.java @@ -34,6 +34,7 @@ public class FieldDefinedWrapper extends Service { /** * 获取标题分组 + * * @param groupType * @return */ @@ -53,6 +54,7 @@ public class FieldDefinedWrapper extends Service { /** * 新建分组 + * * @param param * @return */ @@ -62,13 +64,15 @@ public class FieldDefinedWrapper extends Service { public ReturnResult changeTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) { - getFieldDefinedService(user).changeTree(moduleTypeEnum,fieldTypeTreeParam); + getFieldDefinedService(user).changeTree(moduleTypeEnum, fieldTypeTreeParam); return ReturnResult.successed(); } - - public int deleteTitle(Long id) { return getFieldDefinedService(user).deleteTitle(id); } + + public int saveFields(String data) { + return getFieldDefinedService(user).saveFields(data); + } } From 08ca2e0c5d0362852947ba0ac6b599f1361b3dc9 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 16 Jun 2022 16:10:33 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/SelectOptionParam.java | 30 +++ .../extend/param/ExtendFieldSearchParam.java | 21 ++ .../service/FieldDefinedService.java | 3 +- .../service/impl/FieldDefinedServiceImpl.java | 217 +++++++++++++++++- .../web/FieldDefinedController.java | 16 ++ .../wrapper/FieldDefinedWrapper.java | 5 + 6 files changed, 285 insertions(+), 7 deletions(-) create mode 100644 src/com/engine/organization/entity/extend/param/ExtendFieldSearchParam.java diff --git a/src/com/engine/organization/entity/SelectOptionParam.java b/src/com/engine/organization/entity/SelectOptionParam.java index 7db7f6df..5383f894 100644 --- a/src/com/engine/organization/entity/SelectOptionParam.java +++ b/src/com/engine/organization/entity/SelectOptionParam.java @@ -57,4 +57,34 @@ public class SelectOptionParam { } return customValue; } + + /** + * 获取自定义浏览按钮标识 + * + * @param customValue + * @return + */ + public static String getCustomBrowserValueSpan(String customValue) { + JSONArray objects = JSONObject.parseArray(customValue); + if (null != objects && objects.size() > 2) { + JSONObject object = (JSONObject) objects.get(2); + return object.getString("valueSpan"); + } + return customValue; + } + + /** + * 获取文本长度 + * + * @param customValue + * @return + */ + public static String getTextLength(String customValue) { + JSONArray objects = JSONObject.parseArray(customValue); + + if (null != objects && objects.size() > 2) { + return objects.get(2).toString(); + } + return customValue; + } } diff --git a/src/com/engine/organization/entity/extend/param/ExtendFieldSearchParam.java b/src/com/engine/organization/entity/extend/param/ExtendFieldSearchParam.java new file mode 100644 index 00000000..760b3d5a --- /dev/null +++ b/src/com/engine/organization/entity/extend/param/ExtendFieldSearchParam.java @@ -0,0 +1,21 @@ +package com.engine.organization.entity.extend.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/06/16 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ExtendFieldSearchParam { + private String groupId; + private String groupType; +} diff --git a/src/com/engine/organization/service/FieldDefinedService.java b/src/com/engine/organization/service/FieldDefinedService.java index 113eeea9..e9a5208d 100644 --- a/src/com/engine/organization/service/FieldDefinedService.java +++ b/src/com/engine/organization/service/FieldDefinedService.java @@ -1,6 +1,7 @@ package com.engine.organization.service; +import com.engine.organization.entity.extend.param.ExtendFieldSearchParam; import com.engine.organization.entity.extend.param.ExtendTitleSaveParam; import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; @@ -79,6 +80,6 @@ public interface FieldDefinedService { * @param param * @return */ - Map getFieldDefinedInfo(ExtendTitleSaveParam param); + Map getFieldDefinedInfo(ExtendFieldSearchParam param); } diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index a0c5586b..f6173160 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -5,8 +5,10 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.engine.core.impl.Service; import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.SelectOptionParam; import com.engine.organization.entity.extend.bo.ExtendGroupBO; import com.engine.organization.entity.extend.bo.ExtendInfoBO; +import com.engine.organization.entity.extend.param.ExtendFieldSearchParam; import com.engine.organization.entity.extend.param.ExtendInfoFieldParam; import com.engine.organization.entity.extend.param.ExtendTitleSaveParam; import com.engine.organization.entity.extend.po.ExtendGroupPO; @@ -24,6 +26,9 @@ import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; +import weaver.general.Util; +import weaver.systeminfo.SystemEnv; +import weaver.workflow.field.BrowserComInfo; import java.util.*; import java.util.stream.Collectors; @@ -91,7 +96,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ // 主表、主表拓展表为extend_title主键;明细表为extend_group主键 Long extendGroupId = jsonObject.getLong("groupId"); - JSONArray records = (JSONArray) jsonObject.get("records"); + JSONArray records = jsonObject.getJSONArray("records"); int updateCount = 0; for (int i = 0; i < records.size(); i++) { // 存在ID则更新 ,不存在ID则增加 @@ -130,7 +135,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ String data = param.getData(); JSONObject jsonObject = JSON.parseObject(data); Set ids = new HashSet<>(); - JSONArray records = (JSONArray) jsonObject.get("records"); + JSONArray records = jsonObject.getJSONArray("records"); for (int i = 0; i < records.size(); i++) { ExtendTitlePO extendTitle = new ExtendTitlePO(); JSONObject object = (JSONObject) records.get(i); @@ -168,13 +173,13 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ Map datas = new HashMap<>(); List titlesByGroupID = getExtendTitleMapper().getTitlesByGroupID(param.getGroupType()); - ExtendTitlePO extendTitlePO = titlesByGroupID.stream().max(Comparator.comparing(ExtendTitlePO::getShowOrder)).get(); + ExtendTitlePO extendTitlePO = titlesByGroupID.stream().max(Comparator.comparing(ExtendTitlePO::getShowOrder)).orElse(ExtendTitlePO.builder().showOrder(1).build()); Set ids = titlesByGroupID.stream().map(ExtendTitlePO::getId).collect(Collectors.toSet()); ExtendTitlePO extendTitle = new ExtendTitlePO(); extendTitle.setGroupId(param.getGroupType()); extendTitle.setIsShow(param.getIsShow()); extendTitle.setTitle(param.getGroupName()); - extendTitle.setShowOrder(null == extendTitlePO ? 0 : extendTitlePO.getShowOrder() + 1); + extendTitle.setShowOrder(extendTitlePO.getShowOrder() + 1); extendTitle.setCreator((long) user.getUID()); extendTitle.setCreateTime(new Date()); extendTitle.setDeleteType(0); @@ -206,8 +211,208 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ } @Override - public Map getFieldDefinedInfo(ExtendTitleSaveParam param) { - return null; + public Map getFieldDefinedInfo(ExtendFieldSearchParam param) { + Map returnMap = new HashMap<>(); + List> lsFieldInfo = new ArrayList<>(); + Map fieldInfo; + Map recordInfo; + Map propsInfo; + Map comInfo; + List fieldTypeInfo; + List lsComDetialInfo; + Map comDetialInfo; + List infoPOList = getExtendInfoMapper().listFields("", param.getGroupId(), "", ""); + for (ExtendInfoPO extendInfoPO : infoPOList) { + Long fieldId = extendInfoPO.getId(); + String fieldName = extendInfoPO.getFieldName(); + String fieldLabel = extendInfoPO.getFieldNameDesc(); + String fieldHtmlType = extendInfoPO.getControlType().toString(); + String fieldtype = extendInfoPO.getBrowserType(); + String customValue = extendInfoPO.getCustomValue(); + String fielddmlurl = ""; + String fieldstrlength = SelectOptionParam.getTextLength(customValue); + //自定义字段排序 标识rowKey + String fieldidrowKey; + int dsporder = extendInfoPO.getShowOrder(); + boolean isUsed = false; + // 系统字段id<0 + boolean isSysField = extendInfoPO.getId() < 0; + if (isSysField) { + fieldidrowKey = fieldId + "_hrm"; + } else { + fieldidrowKey = fieldId + "_cus"; + } + // TODO 字段是否已使用 + // if (!isSysField) isUsed = hfm.fieldIsUsed("field" + hfm.getFieldid()); + boolean allowhide = extendInfoPO.getId() < 0; + boolean allowModify = extendInfoPO.getId() < 0; + + + BrowserComInfo BrowserComInfo = new BrowserComInfo(); + List fieldTypeObj = new ArrayList<>(); + String fieldType = ""; + switch (fieldHtmlType) { + case "1": + fieldTypeObj.add("input"); + fieldType = SystemEnv.getHtmlLabelName(688, user.getLanguage()); + + if (fieldtype.equals("1")) { + fieldTypeObj.add("text"); + fieldType += " " + SystemEnv.getHtmlLabelName(608, user.getLanguage()); + fieldType += " " + SystemEnv.getHtmlLabelName(608, user.getLanguage()) + ":" + fieldstrlength; + fieldTypeObj.add(fieldstrlength); + } else if (fieldtype.equals("2")) { + fieldTypeObj.add("int"); + fieldType += " " + SystemEnv.getHtmlLabelName(696, user.getLanguage()); + } else if (fieldtype.equals("3")) { + fieldTypeObj.add("float"); + fieldType += " " + SystemEnv.getHtmlLabelName(697, user.getLanguage()); + } + break; + case "2": + fieldTypeObj.add("textarea"); + fieldType = SystemEnv.getHtmlLabelName(689, user.getLanguage()); + break; + case "3": { + fieldTypeObj.add("browser"); + List replaceDatas = new ArrayList<>(); + Map tmp = new HashMap<>(); + tmp.put("value", fieldtype); + tmp.put("valueSpan", SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(fieldtype), 0), user.getLanguage())); + Map tmp1 = new HashMap<>(); + tmp1.put("id", fieldtype); + tmp1.put("name", SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(fieldtype), 0), user.getLanguage())); + replaceDatas.add(tmp1); + tmp.put("replaceDatas", replaceDatas); + fieldTypeObj.add(tmp); + if (fieldtype.equals("161") || fieldtype.equals("162") || fieldtype.equals("256") || fieldtype.equals("257")) { + tmp = new HashMap<>(); + tmp.put("value", SelectOptionParam.getCustomBrowserId(customValue)); + tmp.put("valueSpan", SelectOptionParam.getCustomBrowserValueSpan(customValue)); + fieldTypeObj.add(tmp); + } + fieldType = SystemEnv.getHtmlLabelName(695, user.getLanguage()); + fieldType += " " + SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(fieldtype), 0), user.getLanguage()); + // TODO + if ("emptyVal".equals(fielddmlurl) || "".equals(fielddmlurl)) { + } else { + fieldType += " " + SelectOptionParam.getCustomBrowserValueSpan(customValue); + } + break; + } + case "4": + fieldTypeObj.add("check"); + fieldType = SystemEnv.getHtmlLabelName(691, user.getLanguage()); + break; + case "5": { + fieldTypeObj.add("select"); + fieldTypeObj.add("select"); + Map tmp = new HashMap<>(); + tmp.put("datas", SelectOptionParam.convertJsonToListOption(customValue)); + tmp.put("sort", "horizontal"); + fieldTypeObj.add(tmp); + fieldType = SystemEnv.getHtmlLabelName(690, user.getLanguage()); + break; + } + case "6": + fieldTypeObj.add("upload"); + fieldTypeObj.add("file"); + fieldType = SystemEnv.getHtmlLabelName(17616, user.getLanguage()); + fieldType += " " + SystemEnv.getHtmlLabelName(20798, user.getLanguage()); + //fieldType += " " + (fieldtype.equals("1") ? SystemEnv.getHtmlLabelName(20798, user.getLanguage()) : SystemEnv.getHtmlLabelName(20001, user.getLanguage())); + break; + } + + fieldInfo = new HashMap<>(); + recordInfo = new HashMap<>(); + recordInfo.put("id", "" + fieldId); + recordInfo.put("fieldlabel", fieldLabel); + recordInfo.put("fieldname", fieldName); + recordInfo.put("fieldType", fieldType); + recordInfo.put("fieldTypeObj", fieldTypeObj); + recordInfo.put("enable", extendInfoPO.getIsenable()); + recordInfo.put("required", extendInfoPO.getIsrequired()); + recordInfo.put("isModify", extendInfoPO.getEditShow()); + recordInfo.put("viewAttr", isUsed || isSysField ? 1 : 2); + recordInfo.put("key", "" + dsporder); + recordInfo.put("fieldidrowKey", fieldidrowKey); + + fieldInfo.put("record", recordInfo); + + propsInfo = new HashMap<>(); + Map checkPropsInfo = new HashMap<>(); + Map checkPropsEnableInfo = new HashMap<>(); + Map checkPropsRequiredInfo = new HashMap<>(); + //允许个人修改字段check框属性 + Map checkPropsModifyInfo = new HashMap<>(); + checkPropsEnableInfo.put("viewAttr", allowhide ? 2 : 1); + checkPropsModifyInfo.put("viewAttr", allowModify ? 2 : 1); + checkPropsRequiredInfo.put("viewAttr", allowhide ? 2 : 1); + + checkPropsInfo.put("enable", checkPropsEnableInfo); + checkPropsInfo.put("required", checkPropsRequiredInfo); + checkPropsInfo.put("isModify", checkPropsModifyInfo); + propsInfo.put("checkProps", checkPropsInfo); + fieldInfo.put("props", propsInfo); + + comInfo = new HashMap<>(); + + lsComDetialInfo = new ArrayList<>(); + comDetialInfo = new HashMap<>(); + comDetialInfo.put("label", ""); + if (isSysField) { + comDetialInfo.put("type", "TEXT"); + } else { + comDetialInfo.put("type", "INPUT"); + } + comDetialInfo.put("width", "15%"); + comDetialInfo.put("key", "fieldlabel"); + comDetialInfo.put("viewAttr", "3"); + lsComDetialInfo.add(comDetialInfo); + comInfo.put("fieldlabel", lsComDetialInfo); + + lsComDetialInfo = new ArrayList<>(); + comDetialInfo = new HashMap<>(); + comDetialInfo.put("label", ""); + comDetialInfo.put("type", "TEXT"); + comDetialInfo.put("width", "15%"); + comDetialInfo.put("key", "fieldname"); + comDetialInfo.put("viewAttr", "3"); + lsComDetialInfo.add(comDetialInfo); + comInfo.put("fieldname", lsComDetialInfo); + + lsComDetialInfo = new ArrayList<>(); + comDetialInfo = new HashMap<>(); + comDetialInfo.put("label", ""); + comDetialInfo.put("type", fieldHtmlType.equals("5") ? "CUSTOMFIELD" : "TEXT"); + comDetialInfo.put("width", "60%"); + comDetialInfo.put("key", "fieldType"); + lsComDetialInfo.add(comDetialInfo); + comInfo.put("fieldType", lsComDetialInfo); + + fieldInfo.put("com", comInfo); + fieldInfo.put("isSysField", isSysField); + + fieldTypeInfo = new ArrayList<>(); + fieldTypeInfo.add("select"); + fieldTypeInfo.add("select"); + Map fieldTypeParamInfo = new HashMap<>(); + + if (fieldHtmlType.equals("5")) { + + fieldTypeParamInfo.put("datas", SelectOptionParam.convertJsonToListOption(customValue)); + fieldTypeParamInfo.put("sort", "horizontal"); + fieldTypeInfo.add(fieldTypeParamInfo); + fieldInfo.put("fieldType", fieldTypeInfo); + } + lsFieldInfo.add(fieldInfo); + + } + + + returnMap.put("data", lsFieldInfo); + returnMap.put("encryptEnable", false); + return returnMap; } private ExtendTitlePO buildExtendTitleType(ExtendGroupPO extendGroupPO) { diff --git a/src/com/engine/organization/web/FieldDefinedController.java b/src/com/engine/organization/web/FieldDefinedController.java index 12778f7a..5360eab0 100644 --- a/src/com/engine/organization/web/FieldDefinedController.java +++ b/src/com/engine/organization/web/FieldDefinedController.java @@ -2,6 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.extend.param.ExtendFieldSearchParam; import com.engine.organization.entity.extend.param.ExtendTitleSaveParam; import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam; import com.engine.organization.enums.ModuleTypeEnum; @@ -147,4 +148,19 @@ public class FieldDefinedController { return ReturnResult.exceptionHandle(e.getMessage()); } } + + @GET + @Path("/{moduleTypeEnum}/getFieldDefinedInfo") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getFieldDefinedInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + String groupType = (String) map.get("groupType"); + String groupId = (String) map.get("groupId"); + return ReturnResult.successed(getFieldDefinedWrapper(user).getFieldDefinedInfo(ExtendFieldSearchParam.builder().groupType(groupType).groupId(groupId).build())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } } diff --git a/src/com/engine/organization/wrapper/FieldDefinedWrapper.java b/src/com/engine/organization/wrapper/FieldDefinedWrapper.java index c3500489..353407da 100644 --- a/src/com/engine/organization/wrapper/FieldDefinedWrapper.java +++ b/src/com/engine/organization/wrapper/FieldDefinedWrapper.java @@ -2,6 +2,7 @@ package com.engine.organization.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.organization.entity.extend.param.ExtendFieldSearchParam; import com.engine.organization.entity.extend.param.ExtendTitleSaveParam; import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; @@ -75,4 +76,8 @@ public class FieldDefinedWrapper extends Service { public int saveFields(String data) { return getFieldDefinedService(user).saveFields(data); } + + public Map getFieldDefinedInfo(ExtendFieldSearchParam param) { + return getFieldDefinedService(user).getFieldDefinedInfo(param); + } } From 5fd7eb34986b2b345722556bc02f2447bc15e743 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 16 Jun 2022 16:13:04 +0800 Subject: [PATCH 3/5] =?UTF-8?q?JCL=5FFIELD=5FEXTENDGROUP=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20show=5Forder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/表结构SQL/MySQL.sql | 1 + docs/表结构SQL/Oracle.sql | 1 + docs/表结构SQL/SqlServer.sql | 1 + 3 files changed, 3 insertions(+) diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index fe065481..3bc3bbe4 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -119,6 +119,7 @@ CREATE TABLE JCL_FIELD_EXTENDGROUP ( pid int null, extend_type int null, group_name varchar(100) NULL, + show_order int null, creator int null, delete_type int null, create_time date null, diff --git a/docs/表结构SQL/Oracle.sql b/docs/表结构SQL/Oracle.sql index cc122eac..ebc68141 100644 --- a/docs/表结构SQL/Oracle.sql +++ b/docs/表结构SQL/Oracle.sql @@ -121,6 +121,7 @@ CREATE TABLE JCL_FIELD_EXTENDGROUP ( PID NUMBER NULL, EXTEND_TYPE NUMBER NULL, GROUP_NAME NVARCHAR2(100) NULL, + SHOW_ORDER NUMBER null, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, diff --git a/docs/表结构SQL/SqlServer.sql b/docs/表结构SQL/SqlServer.sql index f164c0cd..d6c4d2b6 100644 --- a/docs/表结构SQL/SqlServer.sql +++ b/docs/表结构SQL/SqlServer.sql @@ -119,6 +119,7 @@ CREATE TABLE JCL_FIELD_EXTENDGROUP ( pid int null, extend_type int null, group_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, + show_order int null, creator int null, delete_type int null, create_time datetime null, From 4d2a70ad5dd1b51321653896fd09cfa1e7299a07 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 16 Jun 2022 17:53:48 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/SelectOptionParam.java | 25 ++++++ .../entity/extend/bo/ExtendInfoBO.java | 21 ++++- .../extend/param/ExtendFieldSearchParam.java | 1 - .../mapper/extend/ExtendInfoMapper.java | 2 + .../mapper/extend/ExtendInfoMapper.xml | 4 + .../service/impl/FieldDefinedServiceImpl.java | 82 ++++++++++--------- .../web/FieldDefinedController.java | 15 ++-- 7 files changed, 102 insertions(+), 48 deletions(-) diff --git a/src/com/engine/organization/entity/SelectOptionParam.java b/src/com/engine/organization/entity/SelectOptionParam.java index 5383f894..70e04030 100644 --- a/src/com/engine/organization/entity/SelectOptionParam.java +++ b/src/com/engine/organization/entity/SelectOptionParam.java @@ -87,4 +87,29 @@ public class SelectOptionParam { } return customValue; } + + /** + * 获取下拉框信息 + * + * @param customValue + * @return + */ + public static List getSelectFields(String customValue) { + List selectFields = new ArrayList<>(); + JSONArray objects = JSONObject.parseArray(customValue); + if (objects.size() < 3) { + return selectFields; + } + JSONObject o = (JSONObject) objects.get(2); + JSONArray datas = o.getJSONArray("datas"); + if (!datas.isEmpty()) { + int size = datas.size(); + for (int i = 0; i < size; i++) { + selectFields.add(datas.get(i)); + } + } + return selectFields; + } + + } diff --git a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java index 05e71f10..339d2fdb 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java @@ -16,9 +16,12 @@ import com.engine.organization.entity.SelectOptionParam; import com.engine.organization.entity.extend.param.ExtendInfoFieldParam; import com.engine.organization.entity.extend.po.ExtendGroupPO; import com.engine.organization.entity.extend.po.ExtendInfoPO; +import com.engine.organization.mapper.extend.ExtendInfoMapper; import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.db.MapperProxyFactory; import com.engine.sensitive.biz.SensitiveWordTypeComInfo; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.file.ImageFileManager; import weaver.general.Util; import weaver.hrm.User; @@ -111,6 +114,22 @@ public class ExtendInfoBO { .build(); } + /** + * 当前自定义字段是否已使用 + * + * @param tableName + * @param fieldName + * @return + */ + public static boolean fieldIsUsed(String tableName, String fieldName) { + if (StringUtils.isAnyEmpty(tableName, fieldName)) { + return true; + } + List objects = MapperProxyFactory.getProxy(ExtendInfoMapper.class).listFieldsByTableName(tableName, fieldName); + objects.removeIf(Objects::isNull); + return CollectionUtils.isNotEmpty(objects); + } + /** * 明细表字段 * diff --git a/src/com/engine/organization/entity/extend/param/ExtendFieldSearchParam.java b/src/com/engine/organization/entity/extend/param/ExtendFieldSearchParam.java index 760b3d5a..26181f1d 100644 --- a/src/com/engine/organization/entity/extend/param/ExtendFieldSearchParam.java +++ b/src/com/engine/organization/entity/extend/param/ExtendFieldSearchParam.java @@ -6,7 +6,6 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: TODO * @author:dxfeng * @createTime: 2022/06/16 * @version: 1.0 diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java index a6a84ca2..c6e4e082 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java @@ -26,5 +26,7 @@ public interface ExtendInfoMapper { Long getMaxId(); + List listFieldsByTableName(@Param("tableName") String tableName, @Param("fieldName") String fieldName); + } diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml index 4c1d58f8..666e9c91 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -237,6 +237,10 @@ from jcl_field_extendinfo order by id desc + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index f6173160..c5f98399 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -227,26 +227,27 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ String fieldName = extendInfoPO.getFieldName(); String fieldLabel = extendInfoPO.getFieldNameDesc(); String fieldHtmlType = extendInfoPO.getControlType().toString(); - String fieldtype = extendInfoPO.getBrowserType(); + String browserType = extendInfoPO.getBrowserType(); String customValue = extendInfoPO.getCustomValue(); - String fielddmlurl = ""; - String fieldstrlength = SelectOptionParam.getTextLength(customValue); + String fieldStrLength = SelectOptionParam.getTextLength(customValue); //自定义字段排序 标识rowKey String fieldidrowKey; int dsporder = extendInfoPO.getShowOrder(); boolean isUsed = false; + // TODO 去除脏数据后调整为extendInfoPO.getId() > 0 // 系统字段id<0 - boolean isSysField = extendInfoPO.getId() < 0; + boolean isSysField = extendInfoPO.getExtendGroupId() < 0; if (isSysField) { fieldidrowKey = fieldId + "_hrm"; } else { fieldidrowKey = fieldId + "_cus"; } - // TODO 字段是否已使用 - // if (!isSysField) isUsed = hfm.fieldIsUsed("field" + hfm.getFieldid()); - boolean allowhide = extendInfoPO.getId() < 0; - boolean allowModify = extendInfoPO.getId() < 0; - + if (!isSysField) { + isUsed = ExtendInfoBO.fieldIsUsed(extendInfoPO.getTableName(), extendInfoPO.getFieldName()); + } + // TODO 去除脏数据后调整为extendInfoPO.getId() > 0 + boolean allowHide = extendInfoPO.getExtendGroupId() > 0; + boolean allowModify = extendInfoPO.getExtendGroupId() > 0; BrowserComInfo BrowserComInfo = new BrowserComInfo(); List fieldTypeObj = new ArrayList<>(); @@ -255,18 +256,21 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ case "1": fieldTypeObj.add("input"); fieldType = SystemEnv.getHtmlLabelName(688, user.getLanguage()); - - if (fieldtype.equals("1")) { - fieldTypeObj.add("text"); - fieldType += " " + SystemEnv.getHtmlLabelName(608, user.getLanguage()); - fieldType += " " + SystemEnv.getHtmlLabelName(608, user.getLanguage()) + ":" + fieldstrlength; - fieldTypeObj.add(fieldstrlength); - } else if (fieldtype.equals("2")) { - fieldTypeObj.add("int"); - fieldType += " " + SystemEnv.getHtmlLabelName(696, user.getLanguage()); - } else if (fieldtype.equals("3")) { - fieldTypeObj.add("float"); - fieldType += " " + SystemEnv.getHtmlLabelName(697, user.getLanguage()); + switch (browserType) { + case "1": + fieldTypeObj.add("text"); + fieldType += " " + SystemEnv.getHtmlLabelName(608, user.getLanguage()); + fieldType += " " + SystemEnv.getHtmlLabelName(608, user.getLanguage()) + ":" + fieldStrLength; + fieldTypeObj.add(fieldStrLength); + break; + case "2": + fieldTypeObj.add("int"); + fieldType += " " + SystemEnv.getHtmlLabelName(696, user.getLanguage()); + break; + case "3": + fieldTypeObj.add("float"); + fieldType += " " + SystemEnv.getHtmlLabelName(697, user.getLanguage()); + break; } break; case "2": @@ -277,25 +281,21 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ fieldTypeObj.add("browser"); List replaceDatas = new ArrayList<>(); Map tmp = new HashMap<>(); - tmp.put("value", fieldtype); - tmp.put("valueSpan", SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(fieldtype), 0), user.getLanguage())); + tmp.put("value", browserType); + tmp.put("valueSpan", SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(browserType), 0), user.getLanguage())); Map tmp1 = new HashMap<>(); - tmp1.put("id", fieldtype); - tmp1.put("name", SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(fieldtype), 0), user.getLanguage())); + tmp1.put("id", browserType); + tmp1.put("name", SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(browserType), 0), user.getLanguage())); replaceDatas.add(tmp1); tmp.put("replaceDatas", replaceDatas); fieldTypeObj.add(tmp); - if (fieldtype.equals("161") || fieldtype.equals("162") || fieldtype.equals("256") || fieldtype.equals("257")) { + fieldType = SystemEnv.getHtmlLabelName(695, user.getLanguage()); + fieldType += " " + SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(browserType), 0), user.getLanguage()); + if (browserType.equals("161") || browserType.equals("162") || browserType.equals("256") || browserType.equals("257")) { tmp = new HashMap<>(); tmp.put("value", SelectOptionParam.getCustomBrowserId(customValue)); tmp.put("valueSpan", SelectOptionParam.getCustomBrowserValueSpan(customValue)); fieldTypeObj.add(tmp); - } - fieldType = SystemEnv.getHtmlLabelName(695, user.getLanguage()); - fieldType += " " + SystemEnv.getHtmlLabelName(Util.getIntValue(BrowserComInfo.getBrowserlabelid(fieldtype), 0), user.getLanguage()); - // TODO - if ("emptyVal".equals(fielddmlurl) || "".equals(fielddmlurl)) { - } else { fieldType += " " + SelectOptionParam.getCustomBrowserValueSpan(customValue); } break; @@ -308,7 +308,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ fieldTypeObj.add("select"); fieldTypeObj.add("select"); Map tmp = new HashMap<>(); - tmp.put("datas", SelectOptionParam.convertJsonToListOption(customValue)); + tmp.put("datas", SelectOptionParam.getSelectFields(customValue)); tmp.put("sort", "horizontal"); fieldTypeObj.add(tmp); fieldType = SystemEnv.getHtmlLabelName(690, user.getLanguage()); @@ -319,7 +319,6 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ fieldTypeObj.add("file"); fieldType = SystemEnv.getHtmlLabelName(17616, user.getLanguage()); fieldType += " " + SystemEnv.getHtmlLabelName(20798, user.getLanguage()); - //fieldType += " " + (fieldtype.equals("1") ? SystemEnv.getHtmlLabelName(20798, user.getLanguage()) : SystemEnv.getHtmlLabelName(20001, user.getLanguage())); break; } @@ -330,9 +329,9 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ recordInfo.put("fieldname", fieldName); recordInfo.put("fieldType", fieldType); recordInfo.put("fieldTypeObj", fieldTypeObj); - recordInfo.put("enable", extendInfoPO.getIsenable()); - recordInfo.put("required", extendInfoPO.getIsrequired()); - recordInfo.put("isModify", extendInfoPO.getEditShow()); + recordInfo.put("enable", extendInfoPO.getIsenable() + ""); + recordInfo.put("required", extendInfoPO.getIsrequired() + ""); + recordInfo.put("isModify", extendInfoPO.getEditShow() + ""); recordInfo.put("viewAttr", isUsed || isSysField ? 1 : 2); recordInfo.put("key", "" + dsporder); recordInfo.put("fieldidrowKey", fieldidrowKey); @@ -343,11 +342,12 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ Map checkPropsInfo = new HashMap<>(); Map checkPropsEnableInfo = new HashMap<>(); Map checkPropsRequiredInfo = new HashMap<>(); + //允许个人修改字段check框属性 Map checkPropsModifyInfo = new HashMap<>(); - checkPropsEnableInfo.put("viewAttr", allowhide ? 2 : 1); + checkPropsEnableInfo.put("viewAttr", allowHide ? 2 : 1); checkPropsModifyInfo.put("viewAttr", allowModify ? 2 : 1); - checkPropsRequiredInfo.put("viewAttr", allowhide ? 2 : 1); + checkPropsRequiredInfo.put("viewAttr", allowHide ? 2 : 1); checkPropsInfo.put("enable", checkPropsEnableInfo); checkPropsInfo.put("required", checkPropsRequiredInfo); @@ -400,7 +400,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ if (fieldHtmlType.equals("5")) { - fieldTypeParamInfo.put("datas", SelectOptionParam.convertJsonToListOption(customValue)); + fieldTypeParamInfo.put("datas", SelectOptionParam.getSelectFields(customValue)); fieldTypeParamInfo.put("sort", "horizontal"); fieldTypeInfo.add(fieldTypeParamInfo); fieldInfo.put("fieldType", fieldTypeInfo); @@ -412,6 +412,8 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ returnMap.put("data", lsFieldInfo); returnMap.put("encryptEnable", false); + // TODO 后续去除 + returnMap.put("status", "1"); return returnMap; } diff --git a/src/com/engine/organization/web/FieldDefinedController.java b/src/com/engine/organization/web/FieldDefinedController.java index 5360eab0..24a85f8e 100644 --- a/src/com/engine/organization/web/FieldDefinedController.java +++ b/src/com/engine/organization/web/FieldDefinedController.java @@ -1,5 +1,6 @@ package com.engine.organization.web; +import com.alibaba.fastjson.JSON; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; import com.engine.organization.entity.extend.param.ExtendFieldSearchParam; @@ -152,15 +153,17 @@ public class FieldDefinedController { @GET @Path("/{moduleTypeEnum}/getFieldDefinedInfo") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult getFieldDefinedInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum) { - try { + public String getFieldDefinedInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum) { + // TODO + //try { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); String groupType = (String) map.get("groupType"); String groupId = (String) map.get("groupId"); - return ReturnResult.successed(getFieldDefinedWrapper(user).getFieldDefinedInfo(ExtendFieldSearchParam.builder().groupType(groupType).groupId(groupId).build())); - } catch (Exception e) { - return ReturnResult.exceptionHandle(e.getMessage()); - } + // return ReturnResult.successed(getFieldDefinedWrapper(user).getFieldDefinedInfo(ExtendFieldSearchParam.builder().groupType(groupType).groupId(groupId).build())); + return JSON.toJSONString(getFieldDefinedWrapper(user).getFieldDefinedInfo(ExtendFieldSearchParam.builder().groupType(groupType).groupId(groupId).build())); + //} catch (Exception e) { + // return ReturnResult.exceptionHandle(e.getMessage()); + //} } } From 3ba19c1b8df39c39476c7d1d2d86a3413f2daedf Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 16 Jun 2022 18:08:06 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FieldDefinedServiceImpl.java | 39 +++++++++---------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index f097bb65..1e843b77 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -32,7 +32,6 @@ import weaver.workflow.field.BrowserComInfo; import java.util.*; import java.util.stream.Collectors; -import java.util.stream.Stream; /** * @Author weaver_cl @@ -198,12 +197,12 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ if (fieldTypeTreeParam.getId() == null) { List extendGroupPOList = MapperProxyFactory.getProxy(ExtendGroupMapper.class).listGroupByPid(fieldTypeTreeParam.getParentId()); ExtendGroupPO extendGroup = extendGroupPOList.stream().max(Comparator.comparing(ExtendGroupPO::getShowOrder)).get(); - ExtendGroupPO extendGroupPO = buildExtendGroupType(moduleTypeEnum, fieldTypeTreeParam,extendGroup.getShowOrder()); + ExtendGroupPO extendGroupPO = buildExtendGroupType(moduleTypeEnum, fieldTypeTreeParam, extendGroup.getShowOrder()); MapperProxyFactory.getProxy(ExtendGroupMapper.class).insertIgnoreNull(extendGroupPO); //默认新增title List titlesByGroupID = getExtendTitleMapper().getTitlesByGroupID(extendGroup.getId()); ExtendTitlePO extendTitle = titlesByGroupID.stream().max(Comparator.comparing(ExtendTitlePO::getShowOrder)).get(); - ExtendTitlePO extendTitlePO = buildExtendTitleType(extendGroupPO,extendTitle.getShowOrder()); + ExtendTitlePO extendTitlePO = buildExtendTitleType(extendGroupPO, extendTitle.getShowOrder()); MapperProxyFactory.getProxy(ExtendTitleMapper.class).insertIgnoreNull(extendTitlePO); } else { MapperProxyFactory.getProxy(ExtendGroupMapper.class).update(fieldTypeTreeParam.getId(), fieldTypeTreeParam.getName()); @@ -237,16 +236,16 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ String customValue = extendInfoPO.getCustomValue(); String fieldStrLength = SelectOptionParam.getTextLength(customValue); //自定义字段排序 标识rowKey - String fieldidrowKey; - int dsporder = extendInfoPO.getShowOrder(); + String fieldIdRowKey; + int showOrder = extendInfoPO.getShowOrder(); boolean isUsed = false; // TODO 去除脏数据后调整为extendInfoPO.getId() > 0 // 系统字段id<0 boolean isSysField = extendInfoPO.getExtendGroupId() < 0; if (isSysField) { - fieldidrowKey = fieldId + "_hrm"; + fieldIdRowKey = fieldId + "_hrm"; } else { - fieldidrowKey = fieldId + "_cus"; + fieldIdRowKey = fieldId + "_cus"; } if (!isSysField) { isUsed = ExtendInfoBO.fieldIsUsed(extendInfoPO.getTableName(), extendInfoPO.getFieldName()); @@ -339,8 +338,8 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ recordInfo.put("required", extendInfoPO.getIsrequired() + ""); recordInfo.put("isModify", extendInfoPO.getEditShow() + ""); recordInfo.put("viewAttr", isUsed || isSysField ? 1 : 2); - recordInfo.put("key", "" + dsporder); - recordInfo.put("fieldidrowKey", fieldidrowKey); + recordInfo.put("key", "" + showOrder); + recordInfo.put("fieldidrowKey", fieldIdRowKey); fieldInfo.put("record", recordInfo); @@ -433,12 +432,12 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ List collect = MapperProxyFactory.getProxy(ExtendGroupMapper.class) .listGroupByPid(fieldTypeTreeParam.getParentId()).stream().map(ExtendGroupPO::getId).collect(Collectors.toList()); Integer extendType = moduleTypeEnum.getValue(); - List extendGroupPOS = JSONArray.parseArray(fieldTypeTreeParam.getData(),ExtendGroupPO.class); + List extendGroupPOS = JSONArray.parseArray(fieldTypeTreeParam.getData(), ExtendGroupPO.class); List collect1 = extendGroupPOS.stream().map(ExtendGroupPO::getId).collect(Collectors.toList()); Set removeSet = new HashSet<>(); - collect1.forEach(e->{ - if(!collect.contains(e)){ + collect1.forEach(e -> { + if (!collect.contains(e)) { removeSet.add(e); } }); @@ -449,25 +448,23 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ e.setExtendType(extendType); e.setPid(fieldTypeTreeParam.getParentId()); e.setIsShow(fieldTypeTreeParam.getIsShow()); - e.setShowOrder(showOrder+1); - e.setCreator((long)user.getUID()); + e.setShowOrder(showOrder + 1); + e.setCreator((long) user.getUID()); e.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); e.setCreateTime(new Date()); e.setUpdateTime(new Date()); - if (e.getId() == null){//新增 + if (e.getId() == null) {//新增 MapperProxyFactory.getProxy(ExtendGroupMapper.class).insertIgnoreNull(e); - }else { //更新 - MapperProxyFactory.getProxy(ExtendGroupMapper.class).updateNameAndOrder(e.getId(),e.getGroupName(),e.getShowOrder()); + } else { //更新 + MapperProxyFactory.getProxy(ExtendGroupMapper.class).updateNameAndOrder(e.getId(), e.getGroupName(), e.getShowOrder()); } }); - - } - private ExtendTitlePO buildExtendTitleType(ExtendGroupPO extendGroupPO,Integer max) { + private ExtendTitlePO buildExtendTitleType(ExtendGroupPO extendGroupPO, Integer max) { return ExtendTitlePO.builder() .groupId(extendGroupPO.getId()) .title(extendGroupPO.getGroupName()) @@ -480,7 +477,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ } - private ExtendGroupPO buildExtendGroupType(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) { + private ExtendGroupPO buildExtendGroupType(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam, Integer max) { return ExtendGroupPO.builder() .extendType(moduleTypeEnum.getValue()) .groupName(fieldTypeTreeParam.getName())