skyouc
1 天以前 860493f543afddffa17ed4f30cdd8256b0a06f23
单据提交同步
5个文件已修改
81 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ErpQueryController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/OrderParams.java 2 ●●●●● 补丁 | 查看 | 原始文档 | 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 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ErpQueryController.java
@@ -4,6 +4,7 @@
import com.vincent.rsf.server.api.service.ReceiveMsgService;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.controller.erp.params.*;
import com.vincent.rsf.server.common.annotation.OperationLog;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.framework.common.R;
@@ -46,6 +47,7 @@
     * @version 1.0
     */
    @ApiOperation(value = "查询分类信息")
    @OperationLog("物料分类列表")
    @PostMapping("/query/matnr/group")
    public R syncMatGroup() {
        return R.ok().add(matnrGroupService.list());
@@ -58,6 +60,7 @@
     * @version 1.0
     */
    @ApiOperation(value = "查询单据状态及明细")
    @OperationLog("查询订单状态及明细")
    @PostMapping("/query/order")
    public R queryOrderStatus(@RequestBody QueryOrderParam queryParams) {
        if (Objects.isNull(queryParams)) {
@@ -75,6 +78,7 @@
     */
    @PostMapping("/query/locs/detls")
    @ApiOperation(value = "库位信息查询")
    @OperationLog("库位明细列表")
    public R syncLocDetls(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Loc, BaseParam> pageParam = new PageParam<>(baseParam, Loc.class);
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
@@ -7,6 +7,7 @@
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.annotation.OperationLog;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
import com.vincent.rsf.server.manager.enums.OrderType;
@@ -40,7 +41,9 @@
     * @return
     * @time 2025/3/4 13:57
     */
    @ApiOperation(value = "接收同步ERP采购单")
    @OperationLog("采购单同步")
    @PostMapping("/sync/purchase")
    public R syncPurchases(@RequestBody List<OrderParams> orders) {
        if (orders.isEmpty()) {
@@ -60,6 +63,7 @@
     * @version 1.0
     */
    @ApiOperation(value = "出库通知单(DO单同步)")
    @OperationLog("出库通知单(DO单同步)")
    @PostMapping("/sync/delivery")
    public R syncDelivery(@RequestBody List<OrderParams> orders) {
        if (!receiveMsgService.syncPurchasee(orders)) {
@@ -77,6 +81,7 @@
     * @time 2025/3/12 16:56
     */
    @ApiOperation(value = "质检结果同步")
    @OperationLog("质检结果同步")
    @PostMapping("/sync/inspect")
    public void syncQlyInspect(HttpServletRequest request, HttpServletResponse response) {
        AsnOrderTemplate template = ExcelUtil.mockData(AsnOrderTemplate.class);
@@ -94,6 +99,7 @@
     * @version 1.0
     */
    @ApiOperation("同步单据")
    @OperationLog("单据同步")
    @PostMapping("/sync/checks")
    public R syncCheckResult(@RequestBody SyncOrderParams syncOrders) {
        if (Objects.isNull(syncOrders)) {
@@ -109,6 +115,7 @@
     * @version 1.0
     */
    @ApiOperation("调拔单同步")
    @OperationLog("调拔单同步")
    @PostMapping("/sync/transfers")
    public R syncTransfer(@RequestBody SyncTransferParams transferParams) {
        if (Objects.isNull(transferParams)) {
@@ -125,6 +132,7 @@
     * @version 1.0
     */
    @ApiOperation("库存调整单同步")
    @OperationLog("库存调整单同步")
    @PostMapping("/sync/revises")
    public R syncRevise(@RequestBody SyncLocReviseParams reviseParams) {
        if (Objects.isNull(reviseParams)) {
@@ -140,6 +148,7 @@
     * @version 1.0
     */
    @ApiOperation("质检单上报")
    @OperationLog("质检单上报")
    @PostMapping("/sync/qlyInspect")
    public R syncQlyReport(@RequestBody List<OrderParams> orders) {
@@ -153,10 +162,14 @@
     * @version 1.0
     */
    @ApiOperation("单据修改")
    @OperationLog("单据修改")
    @PostMapping("/sync/orders/update")
    public R syncOrderUpdate(@RequestBody List<OrderParams> orders) {
    public R syncOrderUpdate(@RequestBody SyncOrderParams orders) {
        if (Objects.isNull(orders)) {
            return R.error("参数不能为空!!");
        }
        return R.ok();
        return receiveMsgService.syncOrderUpdate(orders);
    }
@@ -167,6 +180,7 @@
     * @version 1.0
     */
    @ApiOperation("单据删除")
    @OperationLog("单据删除")
    @PostMapping("/sync/orders/delete")
    public R syncOrderDel(@RequestBody List<OrderParams> orders) {
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/OrderParams.java
@@ -7,6 +7,7 @@
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@@ -30,6 +31,7 @@
    private String code;
    @ApiModelProperty(value = "需求数量", required = true)
    @NotNull(message = "数量不能为空")
    private Double anfme;
    @ApiModelProperty(value = "已收货数量",required = true)
rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
@@ -113,4 +113,12 @@
     * @version 1.0
     */
    R syncLocRevise(SyncLocReviseParams reviseParams);
    /**
     * @author Ryan
     * @date 2025/8/20
     * @description: 单据修改--收货通知单/出库单/盘点单
     * @version 1.0
     */
    R syncOrderUpdate(SyncOrderParams orders);
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -3,6 +3,7 @@
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vincent.rsf.framework.common.R;
@@ -210,7 +211,7 @@
    @Override
    public R queryOrderStatus(QueryOrderParam queryParams) {
        WkOrder wkOrders = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
                .eq(WkOrder::getCode, queryParams.getOrderNo())
                .in(WkOrder::getCode, queryParams.getOrderNo())
                .eq(WkOrder::getType, queryParams.getType()));
        if (Objects.isNull(wkOrders)) {
            throw new CoolException("单据不存在!!");
@@ -532,4 +533,50 @@
        return R.ok();
    }
    /**
     * @author Ryan
     * @date 2025/8/20
     * @description: 单据修改--收货通知单/出库单/盘点单
     * @version 1.0
     */
    @Override
    @Transactional(timeout = 60, rollbackFor = Exception.class)
    public R syncOrderUpdate(SyncOrderParams orders) {
        //入库单修改
        if (orders.getType().equals(OrderType.ORDER_IN.type)) {
            orders.getItems().forEach(orderItem -> {
                WkOrder order = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
                        .eq(WkOrder::getCode, orderItem.getOrderCode()));
                if (Objects.isNull(order)) {
                    throw new CoolException("单据不存在!!");
                }
                if (!asnOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>()
                        .eq(WkOrderItem::getOrderCode, orderItem.getOrderCode())
                        .eq(WkOrderItem::getMatnrCode, orderItem.getMatnrCode())
                        .eq(WkOrderItem::getSplrBatch, orderItem.getBatch())
                        .set(WkOrderItem::getAnfme, orderItem.getAnfme()))) {
                    throw new CoolException("单据修改失败!!");
                }
                List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>()
                        .eq(WkOrderItem::getOrderId, order.getId()));
                if (orderItems.isEmpty()) {
                    throw new CoolException("单据明细不存在!!");
                }
                Double summed = orderItems.stream().mapToDouble(WkOrderItem::getAnfme).sum();
                order.setAnfme(summed);
                if (!asnOrderService.updateById(order)) {
                    throw new CoolException("单据修改失败!!");
                }
                //TODO 添加操作日志
            });
        } else {
        }
        return null;
    }
}