| | |
| | | import com.vincent.rsf.server.system.entity.FieldsItem; |
| | | import com.vincent.rsf.server.system.service.FieldsItemService; |
| | | import com.vincent.rsf.server.system.service.FieldsService; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.*; |
| | | |
| | |
| | | * @author Ryan |
| | | * @description 通过字段唯一标识获取动态字段对象key-value |
| | | * @param |
| | | * @return |
| | | * @return 扩展字段对象 |
| | | * @time 2025/3/12 12:50 |
| | | */ |
| | | public static Map<String, String> getFields(String uuid) { |
| | |
| | | return fieldsMap; |
| | | } |
| | | |
| | | public static void mergeFields(Map<String, Object> fileds ,String uuid) { |
| | | /** |
| | | * @author Ryan |
| | | * @description 获取集合扩展字段key-value值 |
| | | * @param |
| | | * @return 包含扩展字段的集合对象 |
| | | * @time 2025/3/15 15:05 |
| | | */ |
| | | public static List<Map<String, Object>> getExtendFields(List<Map<String, Object>> params) { |
| | | FieldsService fieldsService = SpringUtils.getBean(FieldsService.class); |
| | | List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1).eq(Fields::getStatus, 1)); |
| | | if (fields.isEmpty()) { |
| | | return; |
| | | } |
| | | List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>() |
| | | .eq(Fields::getStatus, 1) |
| | | .eq(Fields::getFlagEnable, 1)); |
| | | FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class); |
| | | List<FieldsItem> fieldsItems = fieldsItemService.list(new LambdaQueryWrapper<FieldsItem>().eq(FieldsItem::getUuid, uuid)); |
| | | for (Fields field : fields ) { |
| | | if (fieldsItems.isEmpty()) { |
| | | fileds.put(field.getFields(), null); |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (Map<String, Object> param : params) { |
| | | result.add(param); |
| | | if (Objects.isNull(param.get("fieldsIndex"))) { |
| | | continue; |
| | | } |
| | | fieldsItems.forEach(fieldsItem -> { |
| | | if (fieldsItem.getFieldsId().equals(field.getId())) { |
| | | fileds.put(field.getFields(), fieldsItem.getValue()); |
| | | List<FieldsItem> itemList = fieldsItemService |
| | | .list(new LambdaQueryWrapper<FieldsItem>() |
| | | .eq(FieldsItem::getUuid, param.get("fieldsIndex"))); |
| | | if (itemList.isEmpty()) { |
| | | continue; |
| | | } |
| | | fields.forEach(fds -> { |
| | | for (FieldsItem fieldsItem : itemList) { |
| | | if (!Objects.isNull(fieldsItem.getFieldsId()) && fieldsItem.getFieldsId().equals(fds.getId())) { |
| | | param.put(fds.getFields(), fieldsItem.getValue()); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @param template |
| | | * @return |
| | |
| | | * @description 动态字段value保存 |
| | | * @time 2025/3/18 15:00 |
| | | */ |
| | | public static void saveFields(Map<String, ?> template, String uuid) throws Exception{ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public static boolean saveFields(Map<String, ?> template, String uuid) throws Exception{ |
| | | List<Fields> fields = getFieldsSta(); |
| | | FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class); |
| | | if (fields.isEmpty()) { |
| | | throw new CoolException("扩展字段不存在!!"); |
| | | } |
| | | List<FieldsItem> fieldsItems = new ArrayList<>(); |
| | | for (Fields field : fields) { |
| | | if (!Objects.isNull(template.get(field.getFields()))) { |
| | | FieldsItem item = new FieldsItem(); |
| | | item.setFieldsId(field.getId()) |
| | | .setUuid(uuid) |
| | | .setValue(template.get(field.getFields()).toString()); |
| | | fieldsItems.add(item); |
| | | if (!fields.isEmpty()) { |
| | | for (Fields obj : fields) { |
| | | if (!Objects.isNull(template.get(obj.getFields())) && StringUtils.isNotBlank(template.get(obj.getFields()).toString())) { |
| | | FieldsItem item = new FieldsItem(); |
| | | item.setUuid(uuid) |
| | | .setValue(template.get(obj.getFields()).toString()) |
| | | .setMatnrId(Long.parseLong(template.get("matnrId").toString())) |
| | | .setFieldsId(obj.getId()); |
| | | fieldsItems.add(item); |
| | | } |
| | | } |
| | | if (fieldsItems.isEmpty()) { |
| | | return false; |
| | | } |
| | | if (!fieldsItemService.saveBatch(fieldsItems)) { |
| | | throw new CoolException("扩展字段保存失败!!"); |
| | | } |
| | | return true; |
| | | } |
| | | if (!fieldsItemService.saveBatch(fieldsItems)) { |
| | | throw new CoolException("动态字段值保存失败!!"); |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | |
| | | return fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getStatus, 1).eq(Fields::getFlagEnable, 1)); |
| | | } |
| | | |
| | | public static void updateFieldsValue(Map<String, Object> params) throws Exception{ |
| | | /** |
| | | * @author Ryan |
| | | * @description 动态字段修改 |
| | | * @param |
| | | * @return |
| | | * @time 2025/4/7 15:28 |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public static void updateFieldsValue(Map<String, Object> params) throws Exception { |
| | | List<Fields> fields = getFieldsSta(); |
| | | if (fields.isEmpty()) { return; } |
| | | Object fieldsIndex = params.get("fieldsIndex"); |
| | | if (!Objects.isNull(fieldsIndex)) { |
| | | if (!Objects.isNull(fieldsIndex) && StringUtils.isNotBlank(fieldsIndex.toString())) { |
| | | String index = fieldsIndex.toString(); |
| | | FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class); |
| | | for (Fields field : fields) { |
| | |
| | | FieldsItem item = new FieldsItem(); |
| | | item.setUuid(index) |
| | | .setFieldsId(field.getId()) |
| | | .setMatnrId(Long.parseLong(params.get("matnrId").toString())) |
| | | .setValue(params.get(field.getFields()).toString()); |
| | | if (!fieldsItemService.save(item)) { |
| | | throw new CoolException("扩展字段修改失败!!"); |