From bcd9cb83cbbb36217cb99ced7bf1fa3cb26bd53c Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 28 四月 2025 16:59:51 +0800 Subject: [PATCH] #wms端生成任务优化 --- rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java | 128 ++++++++++++++++++++++++++++++------------ 1 files changed, 90 insertions(+), 38 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java index 8a6897f..ad98507 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java @@ -7,6 +7,8 @@ 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.*; @@ -24,7 +26,7 @@ * @author Ryan * @description 閫氳繃瀛楁鍞竴鏍囪瘑鑾峰彇鍔ㄦ�佸瓧娈靛璞ey-value * @param - * @return + * @return 鎵╁睍瀛楁瀵硅薄 * @time 2025/3/12 12:50 */ public static Map<String, String> getFields(String uuid) { @@ -50,7 +52,43 @@ return fieldsMap; } - + + /** + * @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::getStatus, 1) + .eq(Fields::getFlagEnable, 1)); + FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class); + List<Map<String, Object>> result = new ArrayList<>(); + for (Map<String, Object> param : params) { + result.add(param); + if (Objects.isNull(param.get("fieldsIndex"))) { + continue; + } + 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 @@ -58,25 +96,31 @@ * @description 鍔ㄦ�佸瓧娈祐alue淇濆瓨 * @time 2025/3/18 15:00 */ - public static void saveFields(Map<String, ?> template, String uuid) { + @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(!Objects.isNull(template.get("matnrId")) ? Long.parseLong(template.get("matnrId").toString()) : null) + .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; } /** @@ -88,38 +132,46 @@ return fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getStatus, 1).eq(Fields::getFlagEnable, 1)); } - public static void updateFieldsValue(Map<String, Object> params) { + /** + * @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) { - if (!Objects.isNull(params.get(field.getFields()))) { - FieldsItem indexItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>() - .eq(FieldsItem::getUuid, index) - .eq(FieldsItem::getFieldsId, field.getId())); - //濡傛灉瀛愯〃涓虹┖锛屾墽琛屾彃鍏ユ搷浣滐紝鍚﹀垯灏辨墽琛屼慨鏀规搷浣� - if (Objects.isNull(indexItem)) { - FieldsItem item = new FieldsItem(); - item.setUuid(index) - .setFieldsId(field.getId()) - .setValue(params.get(field.getFields()).toString()); - if (fieldsItemService.save(item)) { - throw new CoolException("鎵╁睍瀛楁淇敼澶辫触锛侊紒"); - } - } else { - indexItem.setValue(params.get(field.getFields()).toString()); - if (fieldsItemService.updateById(indexItem)) { - throw new CoolException("鎵╁睍瀛楁淇敼澶辫触锛侊紒"); + if (!Objects.isNull(params.get(field.getFields()))) { + FieldsItem indexItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>() + .eq(FieldsItem::getUuid, index) + .eq(FieldsItem::getFieldsId, field.getId())); + //濡傛灉瀛愯〃涓虹┖锛屾墽琛屾彃鍏ユ搷浣滐紝鍚﹀垯灏辨墽琛屼慨鏀规搷浣� + if (Objects.isNull(indexItem)) { + FieldsItem item = new FieldsItem(); + item.setUuid(index) + .setFieldsId(field.getId()) + .setMatnrId(!Objects.isNull(params.get("matnrId")) ? Long.parseLong(params.get("matnrId").toString()) : null) + .setValue(params.get(field.getFields()).toString()); + if (!fieldsItemService.save(item)) { + throw new CoolException("鎵╁睍瀛楁淇敼澶辫触锛侊紒"); + } + } else { + indexItem.setValue(params.get(field.getFields()).toString()); + if (!fieldsItemService.updateById(indexItem)) { + throw new CoolException("鎵╁睍瀛楁淇敼澶辫触锛侊紒"); + } } } - } } } else { - String uuid16 = CommonUtil.randomUUID16(); - saveFields(params, uuid16); + saveFields(params, params.get("index").toString()); } } } -- Gitblit v1.9.1