From 9e27b1b292872bd83b761091554fbd8db72b595e Mon Sep 17 00:00:00 2001 From: yangyang Date: 星期四, 20 三月 2025 10:47:13 +0800 Subject: [PATCH] #优化 物料扩展字段修改优化 --- rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java | 33 +++++++++++++++++++++++++++++++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java | 16 ++++++++++++---- 2 files changed, 45 insertions(+), 4 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 abf6c8a..d3cfffb 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 @@ -87,4 +87,37 @@ FieldsService fieldsService = SpringUtils.getBean(FieldsService.class); return fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getStatus, 1).eq(Fields::getFlagEnable, 1)); } + + public static void updateFieldsValue(Map<String, Object> params) { + List<Fields> fields = getFieldsSta(); + if (fields.isEmpty()) { return; } + Object fieldsIndex = params.get("fieldsIndex"); + if (!Objects.isNull(fieldsIndex)) { + 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("鎵╁睍瀛楁淇敼澶辫触锛侊紒"); + } + } + } + } + + } + } } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java index 12ed36f..ca97031 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java @@ -24,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -83,15 +84,17 @@ throw new CoolException("鐗╂枡鍒嗙粍涓嶈兘涓虹┖锛侊紒"); } + Matnr matnr1 = JSONObject.parseObject(JSONObject.toJSONString(matnr), Matnr.class); + /** * 鎵╁睍瀛楁瀛樺叆搴� */ + String uuid16 = CommonUtil.randomUUID16(); if (!FieldsUtils.getFieldsSta().isEmpty()) { - String uuid16 = CommonUtil.randomUUID16(); FieldsUtils.saveFields(matnr, uuid16); + matnr1.setFieldsIndex(uuid16); } - Matnr matnr1 = JSONObject.parseObject(JSONObject.toJSONString(matnr), Matnr.class); matnr1.setCreateBy(getLoginUserId()); matnr1.setUpdateBy(getLoginUserId()); @@ -104,12 +107,17 @@ @PreAuthorize("hasAuthority('manager:matnr:update')") @OperationLog("Update 鐗╂枡淇℃伅琛�") @PostMapping("/matnr/update") - public R update(@RequestBody Matnr matnr) { + @Transactional(rollbackFor = Exception.class) + public R update(@RequestBody Map<String, Object> params) { + + Matnr matnr = JSONObject.parseObject(JSONObject.toJSONString(params), Matnr.class); matnr.setUpdateBy(getLoginUserId()); - matnr.setUpdateTime(new Date()); if (!matnrService.updateById(matnr)) { return R.error("Update Fail"); } + if (!Objects.isNull(params.get("fieldsIndex"))) { + FieldsUtils.updateFieldsValue(params); + } return R.ok("Update Success").add(matnr); } -- Gitblit v1.9.1