From a801f5ac39701e6d2038da57bff910ba278ea6d8 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 19 八月 2025 19:50:29 +0800 Subject: [PATCH] 盘点单同步接口, 调拔单同步接口 --- rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferItems.java | 56 ++++++++++++++++++ rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferParams.java | 27 +++++++++ rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java | 8 ++ rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java | 63 +++++++++++++++++++++ rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java | 16 +++++ 5 files changed, 170 insertions(+), 0 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java index f3b403b..8c3ba2c 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java @@ -4,6 +4,7 @@ import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.api.controller.erp.params.OrderParams; import com.vincent.rsf.server.api.controller.erp.params.SyncOrderParams; +import com.vincent.rsf.server.api.controller.erp.params.SyncTransferParams; import com.vincent.rsf.server.api.service.ReceiveMsgService; import com.vincent.rsf.server.common.utils.ExcelUtil; import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate; @@ -99,4 +100,19 @@ return receiveMsgService.syncCheckOrder(syncOrders, getLoginUserId()); } + /** + * @author Ryan + * @date 2025/8/19 + * @description: 璋冩嫈鍗曟嵁鍚屾 + * @version 1.0 + */ + @ApiOperation("璋冩嫈鍗曞悓姝�") + @PostMapping("/sync/transfers") + public R syncTransfer(@RequestBody SyncTransferParams transferParams) { + if (Objects.isNull(transferParams)) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return receiveMsgService.syncTransfer(transferParams); + } + } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferItems.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferItems.java new file mode 100644 index 0000000..fbf2f01 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferItems.java @@ -0,0 +1,56 @@ +package com.vincent.rsf.server.api.controller.erp.params; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +@Data +@Accessors(chain = true) +@ApiModel(value = "SyncTransferItems", description = "璋冩嫈鍗曞悓姝ュ弬鏁�") +public class SyncTransferItems implements Serializable { + + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("鐗╂枡鍚嶇О") + private String maktx; + + @ApiModelProperty("鐗╂枡缂栫爜") + private String matnrCode; + + @ApiModelProperty("鍗曚綅") + private String unit; + + @ApiModelProperty("鏁伴噺 ") + private Double anfme; + + @ApiModelProperty("鎵规") + private String batch; + + @ApiModelProperty("渚涘簲鍟�") + private Long splrId; + + @ApiModelProperty("瑙勬牸") + private String spec; + + @ApiModelProperty("鍨嬪彿") + private String model; + + @ApiModelProperty("瀹㈡埛璁㈠崟鍙�") + private String platOrderCode; + + @ApiModelProperty("琛屽彿") + private Long platItemId; + + @ApiModelProperty("宸ュ彿") + private String platWorkCode; + + @ApiModelProperty("椤圭洰缂栫爜") + private String projectCode; + + +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferParams.java new file mode 100644 index 0000000..c23ae54 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferParams.java @@ -0,0 +1,27 @@ +package com.vincent.rsf.server.api.controller.erp.params; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.List; + +@Data +@Accessors(chain = true) +@ApiModel(value = "SyncTransferParams", description = "璋冩嫈鍗曞悓姝ュ弬鏁�") +public class SyncTransferParams implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("鍘熷簱鍖�") + private String orgAreaName; + + @ApiModelProperty("鐩爣搴撳尯") + private String tarAreaName; + + @ApiModelProperty("璋冩嫈鍗曟槑缁�") + private List<SyncTransferItems> items; +} 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 0ac5d53..8880399 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 @@ -97,4 +97,12 @@ * @version 1.0 */ R syncCheckOrder(SyncOrderParams syncOrders, Long loginUserId); + + /** + * @author Ryan + * @date 2025/8/19 + * @description: 璋冩嫈鍗曟嵁鍚屾 + * @version 1.0 + */ + R syncTransfer(SyncTransferParams transferParams); } 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 fb49c49..cc26147 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 @@ -13,10 +13,12 @@ import com.vincent.rsf.server.manager.controller.dto.LocStockDto; import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.enums.CompanysType; +import com.vincent.rsf.server.manager.enums.OrderSourceType; import com.vincent.rsf.server.manager.enums.OrderType; import com.vincent.rsf.server.manager.enums.OrderWorkType; import com.vincent.rsf.server.manager.service.*; import com.vincent.rsf.server.manager.service.impl.MatnrServiceImpl; +import com.vincent.rsf.server.manager.service.impl.TransferItemServiceImpl; import com.vincent.rsf.server.system.constant.SerialRuleCode; import com.vincent.rsf.server.system.entity.Fields; import com.vincent.rsf.server.system.service.FieldsItemService; @@ -73,6 +75,10 @@ private WarehouseService warehouseService; @Autowired private CompanysService companysService; + @Autowired + private TransferService transferService; + @Autowired + private TransferItemService transferItemService; /** @@ -411,4 +417,61 @@ return R.ok(); } + /** + * @author Ryan + * @date 2025/8/19 + * @description: 璋冩嫈鍗曟嵁鍚屾 + * @version 1.0 + */ + @Override + @Transactional(timeout = 60, rollbackFor = Exception.class) + public R syncTransfer(SyncTransferParams transferParams) { + Transfer transfer = new Transfer(); + WarehouseAreas warehouseAreas = warehouseAreasService + .getOne(new LambdaQueryWrapper<WarehouseAreas>() + .eq(WarehouseAreas::getName, transfer.getOrgAreaName())); + if (Objects.isNull(warehouseAreas)) { + throw new CoolException("鍘熷簱鍖轰笉瀛樺湪锛侊紒"); + } + + WarehouseAreas warehouseAreas1 = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>() + .eq(WarehouseAreas::getName, transfer.getTarAreaName())); + if (Objects.isNull(warehouseAreas1)) { + throw new CoolException("鐩爣搴撳尯涓嶅瓨鍦紒锛�"); + } + + transfer.setOrgAreaName(warehouseAreas.getName()) + .setOrgAreaId(warehouseAreas.getId()) + .setOrgWareName(warehouseAreas.getWarehouseId$()) + .setOrgWareId(warehouseAreas.getWarehouseId()) + .setTarWareName(warehouseAreas1.getWarehouseId$()) + .setTarAreaName(warehouseAreas1.getName()) + .setTarAreaId(warehouseAreas1.getId()) + .setTarWareName(warehouseAreas1.getWarehouseId$()) + .setTarWareId(warehouseAreas1.getWarehouseId()) + .setSource(OrderSourceType.ORDER_SOURCE_TYPE_ERP.val); + + if (!transferService.save(transfer)) { + throw new CoolException("璋冩嫈鍗曟嵁淇濆瓨澶辫触锛侊紒"); + } + + transferParams.getItems().forEach(item -> { + TransferItem transferItem = new TransferItem(); + BeanUtils.copyProperties(item, transferItem); + Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, item.getMatnrCode())); + if (Objects.isNull(matnr)) { + throw new CoolException("鐗╂枡涓嶅瓨鍦紒锛�"); + } + transferItem.setMatnrId(matnr.getId()) + .setTransferId(transfer.getId()) + .setTransferCode(transfer.getCode()); + + if (!transferItemService.save(transferItem)) { + throw new CoolException("璋冩嫈鍗曟槑缁嗕繚瀛樺け璐ワ紒锛�"); + } + }); + + return R.ok(); + } + } -- Gitblit v1.9.1