rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ReceiveMsgController.java
@@ -6,6 +6,7 @@ import com.vincent.rsf.server.api.controller.erp.params.BaseMatParms; import com.vincent.rsf.server.api.controller.erp.params.OrderParams; import com.vincent.rsf.server.api.controller.erp.params.QueryOrderParam; import com.vincent.rsf.server.api.controller.erp.params.SyncLocsParams; import com.vincent.rsf.server.api.service.ReceiveMsgService; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; @@ -39,6 +40,7 @@ */ @RestController @RequestMapping("/erp") //@Api(tags = "三方接口文档") public class ReceiveMsgController extends BaseController { @Autowired @@ -135,15 +137,33 @@ /** * @author Ryan * @date 2025/8/15 * @description: 库位明细同步 * @description: 库位信息查询 * @version 1.0 */ @PostMapping("/sync/locs/detls") @ApiOperation(value = "库位信息明细同步", tags = "基础信息同步") @ApiOperation(value = "库位信息查询", tags = "查询") public R syncLocDetls(@RequestBody Map<String, Object> map) { BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<Loc, BaseParam> pageParam = new PageParam<>(baseParam, Loc.class); QueryWrapper<Loc> wrapper = pageParam.buildWrapper(true); return receiveMsgService.syncLocsDetl(pageParam, wrapper); } /** * @author Ryan * @date 2025/8/18 * @description: 库位信息同步 * @version 1.0 */ @PostMapping("/sync/locs") @ApiOperation(value = "库位信息同步", tags = "基础信息同步") public R syncLocs(@RequestBody List<SyncLocsParams> locs) { if (locs.isEmpty()) { throw new CoolException("参数不能为空!!"); } return receiveMsgService.syncLocs(locs); } } rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocsParams.java
New file @@ -0,0 +1,82 @@ package com.vincent.rsf.server.api.controller.erp.params; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModel; import lombok.experimental.Accessors; import java.io.Serializable; import lombok.Data; @Data @Accessors(chain = true) @ApiModel(value = "SyncLocsParams", description = "库位同步参数") public class SyncLocsParams implements Serializable { @ApiModelProperty("库位编码") private String locCode; @ApiModelProperty("库位ID") private Long locId; @ApiModelProperty(value= "库位类型(*) H: 高库位 M: 中库位 L: 低库位 ") private String type; /** * 容器编码 */ @ApiModelProperty(value= "容器编码") private String barcode; /** * 长 */ @ApiModelProperty(value= "长") private Double length; /** * 高 */ @ApiModelProperty(value= "高") private Double height; /** * 宽 */ @ApiModelProperty(value= "宽") private Double width; /** * 排 */ @ApiModelProperty(value= "排") private Integer row; /** * 列 */ @ApiModelProperty(value= "列") private Integer col; /** * 层 */ @ApiModelProperty(value= "层") private Integer lev; /** * 巷道 */ @ApiModelProperty(value= "巷道") private Integer channel; /** * 库位使用状态 O: 空库 D: 空板 R: 预约出库 S: 预约入库 X: 禁用 F: 在库 */ @ApiModelProperty(value= "库位使用状态 O: 空库 D: 空板 R: 预约出库 S: 预约入库 X: 禁用 F: 在库 ") private String useStatus; /** * 状态 1: 正常 0: 冻结 */ @ApiModelProperty(value= "状态 1: 正常 0: 冻结 ") private Integer status; } rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
@@ -6,6 +6,7 @@ import com.vincent.rsf.server.api.controller.erp.params.BaseMatParms; import com.vincent.rsf.server.api.controller.erp.params.OrderParams; import com.vincent.rsf.server.api.controller.erp.params.QueryOrderParam; import com.vincent.rsf.server.api.controller.erp.params.SyncLocsParams; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.entity.Loc; @@ -51,4 +52,12 @@ * @version 1.0 */ R syncLocsDetl(PageParam<Loc, BaseParam> pageParam, QueryWrapper<Loc> wrapper); /** * @author Ryan * @date 2025/8/18 * @description: 库位同步 * @version 1.0 */ R syncLocs(List<SyncLocsParams> locs); } rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.api.controller.erp.params.BaseMatParms; import com.vincent.rsf.server.api.controller.erp.params.QueryOrderParam; import com.vincent.rsf.server.api.controller.erp.params.WkOrderDto; import com.vincent.rsf.server.api.controller.erp.params.*; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.controller.dto.LocStockDto; @@ -18,7 +16,6 @@ import com.vincent.rsf.server.manager.service.*; import com.vincent.rsf.server.manager.service.impl.MatnrServiceImpl; import com.vincent.rsf.server.system.constant.SerialRuleCode; import com.vincent.rsf.server.api.controller.erp.params.OrderParams; import com.vincent.rsf.server.system.entity.Fields; import com.vincent.rsf.server.system.service.FieldsItemService; import com.vincent.rsf.server.system.service.FieldsService; @@ -207,7 +204,7 @@ /** * @author Ryan * @date 2025/8/15 * @description: 同步库位信息 * @description: 查询库位信息 * @version 1.0 */ @Override @@ -218,5 +215,27 @@ return R.ok().add(locStocks); } /** * @author Ryan * @date 2025/8/18 * @description: 库位同步 * @version 1.0 */ @Override @Transactional(timeout = 30, rollbackFor = Exception.class) public R syncLocs(List<SyncLocsParams> locs) { List<Loc> syncLocs = new ArrayList<>(); locs.forEach(loc -> { Loc loc1 = new Loc(); BeanUtils.copyProperties(loc, loc1); loc1.setCode(loc.getLocCode()).setId(null); syncLocs.add(loc1); }); if (!locService.saveBatch(syncLocs)) { throw new CoolException("库位同步失败!!"); } return R.ok(); } }