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