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()); + //} } }