skyouc
2 天以前 a801f5ac39701e6d2038da57bff910ba278ea6d8
盘点单同步接口, 调拔单同步接口
3个文件已修改
2个文件已添加
170 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferItems.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferParams.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
    }
}