From 55331431565cffc4328bbbe83533e1e11da3ffd6 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 15 八月 2025 13:33:59 +0800 Subject: [PATCH] 基础物料同步接口 --- rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java | 2 ++ rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java | 38 ++++++++++++++++++++++++++++++++++++++ rsf-server/src/main/java/com/vincent/rsf/server/api/controller/ReceiveMsgController.java | 14 ++++++++++++-- 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/ReceiveMsgController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/ReceiveMsgController.java index e38d229..8786bd7 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/ReceiveMsgController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/ReceiveMsgController.java @@ -5,12 +5,15 @@ import com.vincent.rsf.server.api.controller.params.OrderParams; import com.vincent.rsf.server.api.service.ReceiveMsgService; import com.vincent.rsf.server.common.utils.ExcelUtil; +import com.vincent.rsf.server.manager.entity.Matnr; import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate; import com.vincent.rsf.server.manager.entity.excel.MatnrsTemplate; +import com.vincent.rsf.server.manager.service.MatnrGroupService; import com.vincent.rsf.server.manager.service.MatnrService; import com.vincent.rsf.server.system.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -21,6 +24,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * @author Ryan @@ -38,6 +42,7 @@ private ReceiveMsgService receiveMsgService; @Autowired private MatnrService matnrService; + /** * @author Ryan @@ -72,7 +77,7 @@ AsnOrderTemplate template = ExcelUtil.mockData(AsnOrderTemplate.class); List<AsnOrderTemplate> list = new ArrayList<>(); list.add(template); - ExcelUtil.build(ExcelUtil.create(list, AsnOrderTemplate.class), response); + ExcelUtil.build(ExcelUtil.create(list, AsnOrderTemplate.class), response); System.out.println(template); // return R.ok(); } @@ -80,8 +85,13 @@ @ApiOperation("鍩虹鐗╂枡淇℃伅鍚屾") @PostMapping("/sync/base/matnrs") public R syncMatnrs(@RequestBody List<BaseMatParms> matnrs) { - + if (Objects.isNull(matnrs)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛�1"); + } + receiveMsgService.syncMatnrs(matnrs); return R.ok(); } + public R syc + } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java index 787a028..d1eb12d 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java @@ -1,6 +1,7 @@ package com.vincent.rsf.server.api.service; +import com.vincent.rsf.server.api.controller.params.BaseMatParms; import com.vincent.rsf.server.api.controller.params.OrderParams; import com.vincent.rsf.server.api.entity.dto.PoItemsDto; @@ -22,4 +23,5 @@ */ boolean syncPurchasee(List<OrderParams> orders); + void syncMatnrs(List<BaseMatParms> matnrs); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java index 5440f0c..46eb8f1 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java @@ -3,10 +3,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.framework.exception.CoolException; +import com.vincent.rsf.server.api.controller.params.BaseMatParms; +import com.vincent.rsf.server.manager.entity.Matnr; +import com.vincent.rsf.server.manager.entity.MatnrGroup; import com.vincent.rsf.server.manager.enums.OrderType; import com.vincent.rsf.server.manager.entity.PurchaseItem; +import com.vincent.rsf.server.manager.service.MatnrGroupService; import com.vincent.rsf.server.manager.service.PurchaseItemService; import com.vincent.rsf.server.manager.service.PurchaseService; +import com.vincent.rsf.server.manager.service.impl.MatnrServiceImpl; import com.vincent.rsf.server.system.constant.SerialRuleCode; import com.vincent.rsf.server.api.controller.params.OrderParams; import com.vincent.rsf.server.system.entity.Fields; @@ -42,6 +47,10 @@ private FieldsService fieldsService; @Autowired private FieldsItemService fieldsItemService; + @Autowired + private MatnrGroupService matnrGroupService; + @Autowired + private MatnrServiceImpl matnrService; @Override @Transactional(rollbackFor = Exception.class) @@ -86,6 +95,35 @@ return true; } + /** + * 鐗╂枡淇℃伅鍚屾 + * @param matnrs + */ + @Override + public void syncMatnrs(List<BaseMatParms> matnrs) { + List<Matnr> syncMatnrs = new ArrayList<>(); + if (!matnrs.isEmpty()) { + matnrs.forEach(matnr -> { + Matnr mat = new Matnr(); + if (Objects.isNull(matnr.getMatnr())) { + throw new RuntimeException("鐗╂枡缂栫爜涓嶈兘涓虹┖锛侊紒"); + } + BeanUtils.copyProperties(matnr, mat); + mat.setCode(matnr.getMatnr()).setName(matnr.getMaktx()); + if (!Objects.isNull(matnr.getGroupName())) { + MatnrGroup matnrGroup = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getName, matnr.getGroupName()), false); + if (Objects.isNull(matnrGroup)) { + mat.setGroupCode(matnrGroup.getCode()).setGroupId(matnrGroup.getId()); + } + } + syncMatnrs.add(mat); + }); + + if (!matnrService.saveOrUpdateBatch(syncMatnrs)) { + throw new CoolException("鐗╂枡淇℃伅淇濆瓨鎴愬姛锛侊紒"); + } + } + } } -- Gitblit v1.9.1