From 52d78628a70d6aa129f874050b7846d259819554 Mon Sep 17 00:00:00 2001 From: skyouc <958836976@qq.com> Date: 星期三, 15 十月 2025 08:54:19 +0800 Subject: [PATCH] 物料同步接口优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java | 117 ++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 73 insertions(+), 44 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java index bcf2413..524ce11 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.common.domain.BaseParam; @@ -17,12 +16,14 @@ import com.vincent.rsf.server.manager.controller.params.MatnrToGroupParams; import com.vincent.rsf.server.manager.entity.MatnrGroup; import com.vincent.rsf.server.manager.entity.excel.MatnrsTemplate; +import com.vincent.rsf.server.manager.enums.MatnrLocLevel; import com.vincent.rsf.server.manager.mapper.MatnrMapper; import com.vincent.rsf.server.manager.entity.Matnr; import com.vincent.rsf.server.manager.service.MatnrGroupService; import com.vincent.rsf.server.manager.service.MatnrService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.vincent.rsf.server.system.constant.SerialRuleCode; +import com.vincent.rsf.server.system.service.FieldsService; import com.vincent.rsf.server.system.utils.SerialRuleUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -41,6 +42,9 @@ @Autowired private MatnrGroupService matnrGroupService; + @Autowired + private FieldsService fieldsService; + /** * @return * @throws @@ -56,49 +60,12 @@ if (result.getList().isEmpty()) { throw new CoolException("鐗╂枡瀵煎叆澶辫触锛侊紒"); } - List<Matnr> matnrs = new ArrayList<>(); - List<Map<String, String>> list = result.getList(); - list.forEach(template -> { - Matnr matnr = new Matnr(); - matnr.setBarcode(template.get("barcode")) - .setCode(template.get("code")) - .setDescrible(template.get("describle")) - .setColor(template.get("color")) - .setFlagCheck(!Objects.isNull(template.get("flagCheck")) ? Short.parseShort(template.get("flagCheck")) : 0) - .setWeight(!Objects.isNull(template.get("weight")) ? Double.parseDouble(template.get("weight")) : 0.0) - .setValidWarn(!Objects.isNull(template.get("validWarn")) ? Integer.parseInt(template.get("validWarn")): 0) - .setValid(!Objects.isNull(template.get("valid")) ? Integer.parseInt( template.get("valid")) : 0) - .setUnit(template.get("unit")) - .setStockUnit(template.get("purUnit")) - .setSpec(template.get("spec")) - .setStagn(!Objects.isNull(template.get("stagn")) ? Integer.parseInt(template.get("stagn")) : 0) - .setModel(template.get("model")) - .setGroupCode(template.get("groupCode")) - .setPurUnit(template.get("purUnit")) - .setStockLevel(!Objects.isNull(template.get("stockLevel")) ? Short.parseShort(template.get("stockLevel")) : 0) - .setSafeQty(!Objects.isNull(template.get("safeQty")) ? Double.parseDouble(template.get("safeQty")) : 0) - .setMinQty(!Objects.isNull(template.get("safeQty")) ? Double.parseDouble(template.get("minQty")) : 0); - if (Objects.isNull(template.get("groupCode")) && Objects.isNull(template.get("groupName"))) { - MatnrGroup matnrGroups = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>() - .eq(!Objects.isNull(template.get("groupCode")), MatnrGroup::getCode, template.get("groupCode")) - .eq(!Objects.isNull(template.get("groupName")),MatnrGroup::getName, template.get("groupName"))); - matnr.setGroupId(matnrGroups.getId()); - } - //鑾峰彇鍔ㄦ�佸瓧娈碉紝骞朵繚瀛樻槑缁嗗唴瀹� - if (!FieldsUtils.getFieldsSta().isEmpty()) { - //淇濆瓨鐗╂枡鎵╁睍灞炴�у�� - try { - String uuid = CommonUtil.randomUUID16(); - boolean b = FieldsUtils.saveFields(template, uuid); - if (b) { - matnr.setFieldsIndex(uuid); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } - matnrs.add(matnr); - }); + + List<MatnrsTemplate> list = result.getList(); + /** + * 鑾峰彇瀵煎叆鐗╂枡妯℃澘 + */ + List<Matnr> matnrs = getMatnrTempletes(list); if (!this.saveBatch(matnrs)) { throw new CoolException("瀵煎叆澶辫触锛侊紒"); @@ -106,6 +73,68 @@ return R.ok("瀵煎叆鎴愬姛锛侊紒"); } + /** + * 鑾峰彇鐗╂枡妯℃澘淇℃伅 + * @param list + * @return + */ + @Override + public List<Matnr> getMatnrTempletes(List<MatnrsTemplate> list) { + List<Matnr> matnrs = new ArrayList<>(); + list.forEach(template -> { + Matnr matnr = new Matnr(); + matnr.setBarcode(template.getBarcode()) + .setCode(template.getCode()) + .setName(template.getName()) + .setId(null) + .setDescrible(template.getDescrible()) + .setColor(template.getColor()) + .setFlagCheck(!Objects.isNull(template.getFlagCheck()) ? Short.parseShort(template.getFlagCheck()) : 0) + .setWeight(!Objects.isNull(template.getWeight()) ? Double.parseDouble(template.getWeight()) : 0.0) + .setValidWarn(!Objects.isNull(template.getValidWarn()) ? Integer.parseInt(template.getValidWarn()): 0) + .setValid(!Objects.isNull(template.getValid()) ? Integer.parseInt( template.getValid()) : 0) + .setUnit(template.getUnit()) + .setStockUnit(template.getPurUnit()) + .setSize(template.getSize()) + .setSpec(template.getSpec()) + .setStagn(!Objects.isNull(template.getStagn()) ? Integer.parseInt(template.getStagn()) : 0) + .setModel(template.getModel()) + .setGroupCode(template.getGroupCode()) + .setPurUnit(template.getPurUnit()) + .setStockLevel(!Objects.isNull(template.getStockLevel()) ? MatnrLocLevel.getTypeVal(template.getStockLevel()) : null) + .setSafeQty(!Objects.isNull(template.getSafeQty()) ? Double.parseDouble(template.getSafeQty()) : 0) + .setMinQty(!Objects.isNull(template.getMinQty()) ? Double.parseDouble(template.getMinQty()) : 0); + if (!Objects.isNull(template.getGroupCode()) || !Objects.isNull(template.getGroupName())) { + MatnrGroup matnrGroups = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>() + .eq(!Objects.isNull(template.getGroupCode()), MatnrGroup::getCode, template.getGroupCode()) + .eq(!Objects.isNull(template.getGroupName()), MatnrGroup::getName, template.getGroupName())); + if (!Objects.isNull(matnrGroups)) { + matnr.setGroupId(matnrGroups.getId()).setGroupCode(matnrGroups.getCode()); + } + } +// List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>() +// .eq(Fields::getUnique, CommonStatus.COMMONSTATUS_NO.val) +// .eq(Fields::getFlagEnable, CommonStatus.COMMONSTATUS_YES.val)); +// +// //鑾峰彇鍔ㄦ�佸瓧娈碉紝骞朵繚瀛樻槑缁嗗唴瀹� +// if (!fields.isEmpty()) { +// //淇濆瓨鐗╂枡鎵╁睍灞炴�у�� +// try { +// Map<String, Object> map = JSONObject.parseObject(JSONObject.toJSONString(template), Map.class); +// String uuid = CommonUtil.randomUUID16(); +// boolean b = FieldsUtils.saveFields(map, uuid); +// if (b) { +// matnr.setFieldsIndex(uuid); +// } +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// } + matnrs.add(matnr); + }); + return matnrs; + } + @Override public PageParam<Matnr, BaseParam> getMatnrPage(PageParam<Matnr, BaseParam> pageParam, Map<String, Object> params) { List<Long> longs = new ArrayList<>(); -- Gitblit v1.9.1