| | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.io.FileUtil; |
| | | import cn.hutool.core.util.CharsetUtil; |
| | | import cn.hutool.core.util.NumberUtil; |
| | | import cn.hutool.core.util.ReflectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.drew.metadata.Face; |
| | | import com.google.common.collect.Lists; |
| | | import com.google.common.collect.Maps; |
| | | import com.google.common.collect.Sets; |
| | | import com.product.common.lang.StringUtils; |
| | | import com.product.core.cache.DataPoolCacheImpl; |
| | |
| | | import java.io.File; |
| | | import java.nio.charset.Charset; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @Author cheng |
| | |
| | | !StringUtils.isEmpty(dt.getFieldSetEntity(0).getString("field_show_name"))) { |
| | | ls.get(i).setName(dt.getFieldSetEntity(0).getString("field_show_name")); |
| | | } |
| | | if ("file".indexOf(ls.get(i).getComponentType()) != -1) { |
| | | //附件 |
| | | //获取字段类型 |
| | | String fieldType = dt.getString(0, "field_type"); |
| | | if ("file-image".equals(fieldType)) { |
| | | ls.get(i).putOtherParam("fieldType", "image"); |
| | | } else { |
| | | // ls.get(i).putOtherParam("fieldType", "file"); |
| | | } |
| | | } |
| | | } |
| | | ls.get(i).setTable(table_name); |
| | | } else { |
| | |
| | | FieldSetEntity f = dte.getFieldSetEntity(j); |
| | | if ("pk".equals(f.getString("field_type")) |
| | | || "updated_by".equals(f.getString("field_name")) |
| | | || "updated_utc_datetime".equals(f.getString("field_name"))) { |
| | | || "updated_utc_datetime".equals(f.getString("field_name")) |
| | | || "flowsign".equals(f.getString("field_type")) |
| | | ) { |
| | | continue; |
| | | } |
| | | if ("uuid".equals(f.getString("field_name"))) { |
| | |
| | | uuid.setName(f.getString("field_show_name")); |
| | | uuid.setField(f.getString("field_name")); |
| | | uuid.setType(f.getString("field_type")); |
| | | uuid.setRequired(f.getString("is_required")); |
| | | uuid.setTable(table_name); |
| | | ls.add(uuid); |
| | | } |
| | |
| | | if (CollectionUtil.isEmpty(groupMap)) { |
| | | throw new BaseException(MobileCoreCode.GET_FACE_CONFIG_FAIL); |
| | | } |
| | | |
| | | Map<String, Map<String, Object>> group = new HashMap<>(); |
| | | List<FaceFieldEntity> result = new ArrayList<>(); |
| | | List<List<FieldSetEntity>> subTableField = new ArrayList<>(); |
| | | Map<String, List<FieldSetEntity>> subTableFieldMap = new HashMap<>(); |
| | | for (FieldSetEntity fs : tagFieldSetEntityList) { |
| | | String groupUuid = fs.getString("group_uuid"); |
| | | String parentUuid = fs.getString("parent_uuid"); |
| | |
| | | continue; |
| | | } |
| | | List<FieldSetEntity> fieldSetEntity = productSysFaceControlProperty.getFieldSetEntity(parentUuid); |
| | | if (CollectionUtil.isEmpty(fieldSetEntity)) { |
| | | continue; |
| | | int i = result.size(); |
| | | to(groupMap, fieldSetEntity, subTableFieldMap, result, parentMap); |
| | | String parentUuid1 = fieldSetEntity.get(0).getString("parent_uuid"); |
| | | if (!CollectionUtil.isEmpty(fieldSetEntity) && !StringUtils.isEmpty(parentUuid1)) { |
| | | if (i + 1 == result.size()) { |
| | | Map<String, Object> o = group.get(parentUuid1); |
| | | if (o == null) { |
| | | List<FieldSetEntity> fieldSetEntity1 = productSysFaceControlProperty.getFieldSetEntity(parentUuid1); |
| | | List<FieldSetEntity> fieldSetEntity2 = productSysFaceControlProperty.getFieldSetEntity(fieldSetEntity1.get(0).getString("parent_uuid")); |
| | | List<FieldSetEntity> fieldSetEntities = groupMap.get(fieldSetEntity2.get(0).getString("group_uuid")); |
| | | //list转map |
| | | Map<String, Object> map = new HashMap<>(); |
| | | for (FieldSetEntity fieldSetEntity3 : fieldSetEntities) { |
| | | map.put(fieldSetEntity3.getString("property_name"), fieldSetEntity3.getString("property_value")); |
| | | } |
| | | group.put(parentUuid1, map); |
| | | o = map; |
| | | } |
| | | result.get(i).putOtherParam("parentContainerName", BaseUtil.ifNull(o.get("title"), o.get("label"))); |
| | | result.get(i).putOtherParam("parentContainer", parentUuid1); |
| | | } |
| | | } |
| | | |
| | | to(groupMap, fieldSetEntity, subTableField, result, parentMap); |
| | | } |
| | | if (!CollectionUtil.isEmpty(subTableField)) { |
| | | //根据group_uuid 将子表字段分组5 |
| | | if (!CollectionUtil.isEmpty(subTableFieldMap)) { |
| | | //根据子表表名装载 |
| | | Map<String, FaceFieldEntity> tableByFaceField = new HashMap<>(); |
| | | for (List<FieldSetEntity> fieldSetEntities : subTableField) { |
| | | for (Map.Entry<String, List<FieldSetEntity>> entry : subTableFieldMap.entrySet()) { |
| | | List<FieldSetEntity> fieldSetEntities = entry.getValue(); |
| | | String parentUuid = fieldSetEntities.get(0).getString("parent_uuid"); |
| | | //先找到children |
| | | List<FieldSetEntity> fieldSetEntity = productSysFaceControlProperty.getFieldSetEntity(parentUuid); |
| | |
| | | //不是子表组件 |
| | | continue; |
| | | } |
| | | List<FaceFieldEntity> fields = new ArrayList<>(); |
| | | for (FieldSetEntity setEntity : fieldSetEntities) { |
| | | to(groupMap, Lists.newArrayList(setEntity), null, fields, parentMap); |
| | | } |
| | | |
| | | faceFieldEntity.setSubField(fields); |
| | | for (FieldSetEntity setEntity : groupMap.get(groupUuid)) { |
| | | String propertyName = setEntity.getString("property_name"); |
| | | if ("subTableName".equals(propertyName)) { |
| | |
| | | faceFieldEntity.setAllowAdd(setEntity.getBoolean("property_value")); |
| | | } else if ("delete".equals(propertyName)) { |
| | | faceFieldEntity.setAllowDelete(setEntity.getBoolean("property_value")); |
| | | } else if ("control_sequence".equals(propertyName)) { |
| | | faceFieldEntity.putOtherParam("controlSequence", setEntity.getInteger("property_value")); |
| | | } |
| | | } |
| | | List<FaceFieldEntity> subFieldList = faceFieldEntity.getSubField(); |
| | |
| | | subFieldList = new ArrayList<>(); |
| | | faceFieldEntity.setSubField(subFieldList); |
| | | } |
| | | |
| | | for (List<FieldSetEntity> setEntities : subTableField) { |
| | | to(groupMap, setEntities, null, subFieldList, parentMap); |
| | | } |
| | | if (!tableByFaceField.containsKey(uuid)) { |
| | | tableByFaceField.put(uuid, faceFieldEntity); |
| | | result.add(faceFieldEntity); |
| | | } |
| | | break; |
| | | |
| | | } |
| | | |
| | | } |
| | | result.sort((item, item2) -> { |
| | | Object o = item.getOtherParams().get("controlSequence"); |
| | | if (o == null) { |
| | | return -1; |
| | | } |
| | | Object o1 = item2.getOtherParams().get("controlSequence"); |
| | | if (o1 == null) { |
| | | return 1; |
| | | } |
| | | return NumberUtil.parseInt(item.getOtherParams().get("controlSequence").toString()) - NumberUtil.parseInt(item2.getOtherParams().get("controlSequence").toString()); |
| | | }); |
| | | return result; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | private void to(Map<String, List<FieldSetEntity>> groupMap, List<FieldSetEntity> fieldSetEntity, List<List<FieldSetEntity>> subTableField, List<FaceFieldEntity> result, Map<String, List<FieldSetEntity>> parentMap) { |
| | | private void to(Map<String, List<FieldSetEntity>> groupMap, List<FieldSetEntity> fieldSetEntity, Map<String, List<FieldSetEntity>> subTableField, List<FaceFieldEntity> result, Map<String, List<FieldSetEntity>> parentMap) { |
| | | FieldSetEntity parent = fieldSetEntity.get(0); |
| | | String groupUuid1 = parent.getString("group_uuid"); |
| | | if (StringUtils.isEmpty(groupUuid1)) { |
| | |
| | | } |
| | | if ("parentType".equals(propertyName) && "subTable".equals(setEntity.getString("property_value")) && subTableField != null) { |
| | | //子表字段 |
| | | subTableField.add(parentGroup); |
| | | String parentUuid = setEntity.getString("parent_uuid"); |
| | | List<FieldSetEntity> fieldSetEntities = subTableField.get(parentUuid); |
| | | if (fieldSetEntities == null) { |
| | | fieldSetEntities = new ArrayList<>(); |
| | | subTableField.put(parentUuid, fieldSetEntities); |
| | | } |
| | | fieldSetEntities.add(setEntity); |
| | | result.remove(faceFieldEntity); |
| | | break; |
| | | } |
| | |
| | | } |
| | | } |
| | | propertyName = StrUtil.toCamelCase(propertyName); |
| | | if ("defaultValue".equals(propertyName) && !"0".equals(setEntity.getString("property_value")) && !"1".equals(setEntity.getString("property_value"))) { |
| | | continue; |
| | | } |
| | | if (ReflectUtil.hasField(FaceFieldEntity.class, propertyName) && !"field".equals(setEntity.getString("property_name")) && !"prompt".equals(setEntity.getString("property_name"))) { |
| | | ReflectUtil.setFieldValue(faceFieldEntity, propertyName, setEntity.getObject("property_value")); |
| | | |
| | |
| | | propertyName = "prompt"; |
| | | } |
| | | propertyName = StrUtil.toCamelCase(propertyName); |
| | | if ("defaultValue".equals(propertyName) && !"0".equals(setEntity.getString("property_value")) && !"1".equals(setEntity.getString("property_value"))) { |
| | | continue; |
| | | } |
| | | if (ReflectUtil.hasField(FaceFieldEntity.class, propertyName) && !"field".equals(setEntity.getString("property_name")) && !"prompt".equals(setEntity.getString("property_name"))) { |
| | | ReflectUtil.setFieldValue(faceFieldEntity, propertyName, setEntity.getObject("property_value")); |
| | | } |