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); } } rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferItems.java
New file @@ -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; } rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferParams.java
New file @@ -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; } 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); } 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(); } }