| | |
| | | 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.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 |
| | |
| | | } |
| | | |
| | | 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; |
| | | } |
| | | |
| | | to(groupMap, fieldSetEntity, subTableField, result, parentMap); |
| | | to(groupMap, fieldSetEntity, subTableFieldMap, 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; |
| | | } |