skyouc
2025-08-18 ad705232b85b1484b08e9a6072294ba5f261a9eb
仓库,库区ERP同步接口优化
1个文件已删除
6个文件已修改
2个文件已添加
191 ■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ReceiveMsgController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/LocAreasParams.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/WarehouseParams.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocArea.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Warehouse.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/stockStatistic.sql 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ReceiveMsgController.java
@@ -176,6 +176,26 @@
        return receiveMsgService.syncMatGroups(matGroupsParams);
    }
    @ApiOperation(value = "库区数据同步", tags = "基础信息同步")
    @PostMapping("/sync/warehouse/areas")
    public R syncLocAreas(@RequestBody List<LocAreasParams> areasParams) {
        if (areasParams.isEmpty()) {
            throw new CoolException("库区参数不能为空!!");
        }
        return receiveMsgService.syncWarehouseAreas(areasParams);
    }
    @ApiOperation(value = "库区数据同步", tags = "基础信息同步")
    @PostMapping("/sync/warehouse")
    public R syncWarehouse(@RequestBody List<WarehouseParams> warehouseParams) {
        if (warehouseParams.isEmpty()) {
            throw new CoolException("库区参数不能为空!!");
        }
        return receiveMsgService.syncWarehouse(warehouseParams);
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/LocAreasParams.java
New file
@@ -0,0 +1,27 @@
package com.vincent.rsf.server.api.controller.erp.params;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModel;
import lombok.experimental.Accessors;
import lombok.Data;
import java.io.Serializable;
@Data
@Accessors(chain = true)
@ApiModel(value = "LocAreasParams", description = "库区同步参数")
public class LocAreasParams implements Serializable {
    @ApiModelProperty("库区名称")
    private String name;
    @ApiModelProperty("库区编码")
    private String code;
    @ApiModelProperty("仓库名称")
    private String warehouse;
    @ApiModelProperty("库区类型")
    private String type;
}
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/WarehouseParams.java
New file
@@ -0,0 +1,33 @@
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 = "WarehouseParams", description = "仓库参数")
public class WarehouseParams implements Serializable {
    @ApiModelProperty("名称")
    private String name;
    @ApiModelProperty("工厂")
    private String factory;
    @ApiModelProperty("地址")
    private String address;
    @ApiModelProperty("类型")
    private Integer type;
    @ApiModelProperty("经度")
    private String longitude;
    @ApiModelProperty("纬度")
    private String latitude;
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
@@ -65,4 +65,20 @@
     * @version 1.0
     */
    R syncMatGroups(List<SyncMatGroupsParams> matGroupsParams);
    /**
     * @author Ryan
     * @date 2025/8/18
     * @description: 库区同步
     * @version 1.0
     */
    R syncWarehouseAreas(List<LocAreasParams> areasParams);
    /**
     * @author Ryan
     * @date 2025/8/18
     * @description: 仓库信息同步
     * @version 1.0
     */
    R syncWarehouse(List<WarehouseParams> warehouses);
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -14,6 +14,7 @@
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.OrderType;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.manager.service.impl.LocAreaServiceImpl;
import com.vincent.rsf.server.manager.service.impl.MatnrServiceImpl;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.entity.Fields;
@@ -64,6 +65,10 @@
    private LocService locService;
    @Autowired
    private LocItemService locItemService;
    @Autowired
    private WarehouseAreasService warehouseAreasService;
    @Autowired
    private WarehouseService warehouseService;
    /**
     * @author Ryan
@@ -222,7 +227,7 @@
     * @version 1.0
     */
    @Override
    @Transactional(timeout = 30, rollbackFor = Exception.class)
    @Transactional(timeout = 60, rollbackFor = Exception.class)
    public R syncLocs(List<SyncLocsParams> locs) {
        List<Loc> syncLocs = new ArrayList<>();
        locs.forEach(loc -> {
@@ -244,7 +249,7 @@
     * @version 1.0
     */
    @Override
    @Transactional(timeout = 30, rollbackFor = Exception.class)
    @Transactional(timeout = 60, rollbackFor = Exception.class)
    public R syncMatGroups(List<SyncMatGroupsParams> matGroupsParams) {
        List<MatnrGroup> syncMatGroups = new ArrayList<>();
        matGroupsParams.forEach(matGroupsParam -> {
@@ -266,4 +271,53 @@
        }
        return R.ok();
    }
    /**
     * @author Ryan
     * @date 2025/8/18
     * @description: 库区信息同步
     * @version 1.0
     */
    @Override
    @Transactional(timeout = 60, rollbackFor = Exception.class)
    public R syncWarehouseAreas(List<LocAreasParams> areasParams) {
        areasParams.forEach(param -> {
            WarehouseAreas locArea = new WarehouseAreas();
            BeanUtils.copyProperties(param, locArea);
            WarehouseAreas warehouseAreas = warehouseAreasService
                    .getOne(new LambdaQueryWrapper<WarehouseAreas>()
                    .eq(WarehouseAreas::getName, param.getName()));
            if (!Objects.isNull(warehouseAreas)) {
                locArea.setWarehouseId(warehouseAreas.getId());
            }
            locArea.setName(param.getName())
                    .setCode(param.getCode())
                    .setId(null);
            if (!warehouseAreasService.save(locArea)) {
                throw new CoolException("库区保存失败!!");
            }
        });
        return R.ok();
    }
    /**
     * @author Ryan
     * @date 2025/8/18
     * @description: 仓库同步
     * @version 1.0
     */
    @Override
    @Transactional(timeout = 60, rollbackFor = Exception.class)
    public R syncWarehouse(List<WarehouseParams> warehouses) {
        warehouses.forEach(warehouse -> {
            Warehouse ware = new Warehouse();
            BeanUtils.copyProperties(warehouse, ware);
            ware.setId(null);
            if (!warehouseService.save(ware)) {
                throw new CoolException("仓库同步保存失败!!");
            }
        });
        return R.ok();
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocArea.java
@@ -7,6 +7,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.vincent.rsf.server.manager.service.LocService;
import com.vincent.rsf.server.manager.service.WarehouseAreasService;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -26,6 +27,7 @@
import java.util.Date;
@Data
@Accessors(chain = true)
@TableName("man_loc_area")
public class LocArea implements Serializable {
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Warehouse.java
@@ -6,6 +6,7 @@
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -24,6 +25,7 @@
@Data
@TableName("man_warehouse")
@Accessors(chain = true)
@ApiModel(value = "Warehouse", description = "仓库基础信息")
public class Warehouse implements Serializable {
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java
@@ -14,6 +14,7 @@
import com.vincent.rsf.server.system.entity.DictData;
import com.vincent.rsf.server.system.service.DictDataService;
import io.swagger.annotations.Api;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
@@ -32,6 +33,7 @@
import java.util.stream.Collectors;
@Data
@Accessors(chain = true)
@TableName("man_warehouse_areas")
public class WarehouseAreas implements Serializable {
rsf-server/src/main/java/stockStatistic.sql
File was deleted