feat(wms): 新增中心领料和退料功能

- 添加了中心领料和退料相关的数据传输对象(DTO)和查询对象(QO)
- 新增了中心领料和退料的控制器、服务接口和实现类
- 创建了中心领料和退料的数据库表结构及对应的实体类
- 实现了中心领料和退料的基本业务逻辑,包括查询、详情获取等功能
This commit is contained in:
zhangke 2025-08-02 16:12:00 +08:00
parent ba1b80819c
commit 590fe80e24
52 changed files with 1532 additions and 1 deletions

View File

@ -0,0 +1,52 @@
package com.nflg.wms.admin.controller;
import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.PageData;
import com.nflg.wms.common.pojo.qo.C_MaterialOutboundItemQO;
import com.nflg.wms.common.pojo.qo.C_MaterialOutboundSearchQO;
import com.nflg.wms.common.pojo.qo.C_MaterialReturnSearchQO;
import com.nflg.wms.common.pojo.vo.C_MaterialOutboundVO;
import com.nflg.wms.common.pojo.vo.C_MaterialReturnItemVO;
import com.nflg.wms.common.pojo.vo.C_MaterialReturnVO;
import com.nflg.wms.common.pojo.vo.ScanCodeVO;
import com.nflg.wms.starter.annotation.ApiMark;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 中心领料单
*/
@RestController
@RequestMapping("/center/outbound")
public class CeneterOutboundControlelr {
@PostMapping("search")
@ApiMark(moduleName = "中心领料单管理", apiName = "领料单列表")
public ApiResult<PageData<C_MaterialOutboundVO>> search(@Valid @RequestBody C_MaterialOutboundSearchQO request) {
// return ApiResult.success(wmsSrmOrderService.search(request));
}
//收货单详情
@GetMapping("getOrderItem")
@ApiMark(moduleName = "中心领料单管理", apiName = "领料单详情")
public ApiResult<C_MaterialOutboundItemQO> getOrderItem(@RequestParam Long orderId) {
// return ApiResult.success(wmsSrmOrderItemService.getOrderItem(orderId));
}
// 根据预留单号查询出库信息
//确认出库
// 获取出库单列表信息
// 获取出库单详情信息
//获取物料的扫码信息
@GetMapping("getScanCodes")
@ApiMark(moduleName = "中心领料单管理", apiName = "条码详情")
public List<ScanCodeVO> getScanCodes(@RequestParam String orderItemId) {
// return wmsSrmOrderItemService.getScanCodes(orderItemId);
}
// 获取物料出库的推荐批次根据物料编号+仓库+工厂+数量 按照有效期和批次号进行升序排序
}

View File

@ -0,0 +1,132 @@
package com.nflg.wms.admin.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.PageData;
import com.nflg.wms.common.pojo.qo.C_MaterialReturnSearchQO;
import com.nflg.wms.common.pojo.vo.*;
import com.nflg.wms.repository.entity.WmsCenterReturnItem;
import com.nflg.wms.repository.entity.WmsCenterReturnScan;
import com.nflg.wms.repository.service.IWmsCenterReturnItemService;
import com.nflg.wms.repository.service.IWmsCenterReturnScanService;
import com.nflg.wms.repository.service.IWmsCenterReturnService;
import com.nflg.wms.starter.annotation.ApiMark;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* 中心退料单
*/
@RestController
@RequestMapping("/center/return")
public class CenterReturnController {
@Resource
private IWmsCenterReturnService wmsCenterReturnService;
@Resource
private IWmsCenterReturnItemService wmsCenterReturnItemService;
@Resource
private IWmsCenterReturnScanService wmsCenterReturnScanService;
@Autowired
private IWmsCenterReturnItemService iWmsCenterReturnItemService;
@PostMapping("search")
@ApiMark(moduleName = "中心物料退库管理", apiName = "退库单列表")
public ApiResult<PageData<C_MaterialReturnVO>> search(@Valid @RequestBody C_MaterialReturnSearchQO request) {
// return ApiResult.success(wmsSrmOrderService.search(request));
}
/**
* 获取退库单详情
* @param orderId 退库单ID不能为空
* @return 退库单详情列表
*/
@GetMapping("getItems")
@ApiMark(moduleName = "中心物料退库管理", apiName = "退库单单详情")
public ApiResult<List<C_MaterialReturnItemVO>> getOrderItem(@RequestParam @NotNull Long orderId) {
// 查询退库单对应的明细项
List<WmsCenterReturnItem> items = wmsCenterReturnItemService.lambdaQuery()
.eq(WmsCenterReturnItem::getOrderId, orderId)
.list();
// 如果明细项为空返回空列表
if (CollectionUtil.isEmpty(items)) {
return ApiResult.success(Collections.emptyList());
}
// 将明细项转换为VO对象
List<C_MaterialReturnItemVO> vos = items.stream()
.map(this::convertToVO)
.collect(Collectors.toList());
return ApiResult.success(vos);
}
private C_MaterialReturnItemVO convertToVO(WmsCenterReturnItem item) {
C_MaterialReturnItemVO vo = new C_MaterialReturnItemVO();
if (item != null) {
vo.setId(item.getId());
vo.setOrderId(item.getOrderId());
vo.setReservedNumberId(item.getReservedNumberId());
vo.setMaterialNo(item.getMaterialNo());
vo.setMaterialDesc(item.getMaterialDesc());
vo.setUnit(item.getUnit());
vo.setFactory(item.getFactory());
vo.setReturnQty(item.getReturnQty());
vo.setWarehouseNumber(item.getWarehouseNumber());
}
return vo;
}
// 根据预留单号查询退货信息
//用户确认退货
/**
* 根据订单项ID获取扫码信息列表
*
* @param orderItemId 订单项ID不能为空
* @return 返回扫码信息列表的API结果
*/
@GetMapping("getScanCodes")
public ApiResult<List<ScanCodeVO>> getScanCodes(@RequestParam @NotNull Long orderItemId) {
// 查询指定订单项ID的扫码记录
List<WmsCenterReturnScan> wmsCenterReturnScans = wmsCenterReturnScanService.lambdaQuery()
.eq(WmsCenterReturnScan::getItemId, orderItemId)
.list();
if (CollectionUtil.isEmpty(wmsCenterReturnScans)) {
return ApiResult.success(Collections.emptyList());
}
// 将扫码记录转换为VO对象列表
List<ScanCodeVO> scanCodeVOS = wmsCenterReturnScans.stream()
.map(this::convertToScanCodeVO)
.collect(Collectors.toList());
return ApiResult.success(scanCodeVOS);
}
private ScanCodeVO convertToScanCodeVO(WmsCenterReturnScan wmsCenterReturnScan) {
ScanCodeVO scanCodeVO = new ScanCodeVO();
scanCodeVO.setCodeId(wmsCenterReturnScan.getCodeId());
scanCodeVO.setCodeNum(wmsCenterReturnScan.getCodeNum());
scanCodeVO.setBatchNumber(wmsCenterReturnScan.getBatchNumber());
scanCodeVO.setSerialNumber(wmsCenterReturnScan.getSerialNumber());
return scanCodeVO;
}
}

View File

@ -9,6 +9,7 @@ import com.nflg.wms.admin.pojo.dto.ZIM003DTO;
import com.nflg.wms.common.constant.STATE;
import com.nflg.wms.common.exception.NflgException;
import com.nflg.wms.common.pojo.dto.*;
import com.nflg.wms.common.pojo.qo.C_MaterialOutboundQO;
import com.nflg.wms.common.pojo.qo.C_MaterialReturnItemQO;
import com.nflg.wms.common.pojo.qo.C_MaterialReturnQO;
import com.nflg.wms.common.pojo.qo.ScanCodeQO;
@ -341,11 +342,26 @@ public class SapService {
JCoTable tOut = function.getTableParameterList().getTable("T_OUT");
log.info("SAP返回: {}", tOut);
C_MaterialReturnDTO result = new C_MaterialReturnDTO()
.setEMblnr(tOut.getString("E_MBLNR"))
.setEMJahr(tOut.getString("E_MJAHR"))
.setRequestQO(request);
return null;
}
//成本中心领料查询
public C_MaterialOutboundQueryDTO zwm00_MB026(String resebRsNum) throws JCoException {
return null;
}
public C_MaterialOutboundDTO ZWM00_MB115(C_MaterialOutboundQO request) throws JCoException {
return null;
}
//成本中心领料
private JCoTable execReturnTable(String functionName, Map<String, Object> parameters) {
return execReturnTable(functionName, parameters, null, "T_OUT");

View File

@ -0,0 +1,21 @@
package com.nflg.wms.common.pojo.dto;
import com.nflg.wms.common.pojo.qo.C_MaterialOutboundQO;
import com.nflg.wms.common.pojo.qo.C_MaterialReturnQO;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
public class C_MaterialOutboundDTO {
//物料凭证(202移动类型凭证
private String eMblnr;
//物料凭证年度
private String eMJahr;
//中心退库的物料详情信息
private C_MaterialOutboundQO requestQO;
}

View File

@ -0,0 +1,29 @@
package com.nflg.wms.common.pojo.dto;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@Accessors(chain = true)
public class C_MaterialOutboundItemQueryDTO {
private String resbRsnum;
// 预留项目号 RESB-RSPOS
private String resbRspos;
//RESB-MATNR 物料号
private String resbMatnr;
//MAKTX 物料描述
private String maktx;
//wqyls 需求数量
private BigDecimal wqyls;
// RESB-LGORT 库存地点
private String resbLgort;
// RESB-WERKS 工厂
private String resbWerks;
//RESB-MEINS 单位
private String resbMeins;
}

View File

@ -0,0 +1,17 @@
package com.nflg.wms.common.pojo.dto;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
public class C_MaterialOutboundQueryDTO {
private String resbRsnum;
// 预留项目号 RKPF-WEMPF
private String rkpfWempf;
//领料明细
private List<C_MaterialOutboundItemQueryDTO> items;
}

View File

@ -0,0 +1,35 @@
package com.nflg.wms.common.pojo.qo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
public class C_MaterialOutboundItemQO {
//预留项目号
private String resbRspos;
// 物料号
private String resbMatnr;
//MAKTX 物料描述
private String maktx;
//库存地点
private String resbLgort;
// 工厂
private String resbWerks;
// 单位
private String resbMeins;
// 实际出库数量
private String resbErfmg;
//扫码信息
private List<ScanCodeQO> scanCodes;
}

View File

@ -0,0 +1,19 @@
package com.nflg.wms.common.pojo.qo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
public class C_MaterialOutboundQO {
//预留号
private String resbRsNum;
//PDA操作员
private String pdaOperator;
// 预留单退料详情信息
private List<C_MaterialOutboundItemQO> items;
}

View File

@ -0,0 +1,13 @@
package com.nflg.wms.common.pojo.qo;
import lombok.Data;
@Data
public class C_MaterialOutboundSearchQO extends SearchBaseQO {
//领料单号
private String orderNumber;
//中心预留号
private String reservedNumber;
}

View File

@ -17,6 +17,9 @@ public class C_MaterialReturnItemQO {
// 物料号
private String resbMatnr;
//MAKTX 物料描述
private String maktx;
//库存地点
private String resbLgort;
@ -26,6 +29,9 @@ public class C_MaterialReturnItemQO {
// 单位
private String resbMeins;
// 退库数量
private String erfmg;
//扫码信息
private List<ScanCodeQO> scanCodes;
}

View File

@ -0,0 +1,12 @@
package com.nflg.wms.common.pojo.qo;
import lombok.Data;
@Data
public class C_MaterialReturnSearchQO extends SearchBaseQO {
//退料单号
private String orderNumber;
//中心预留号
private String reservedNumber;
}

View File

@ -0,0 +1,52 @@
package com.nflg.wms.common.pojo.vo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@Accessors(chain = true)
public class C_MaterialOutboundItemVO {
private Long id;
/**
* 出库单的ID
*/
private Long orderId;
/**
* 预留单行号
*/
private String reservedNumberId;
/**
* 物料编号
*/
private String materialNo;
/**
* 物料描述
*/
private String materialDesc;
/**
* 单位
*/
private String unit;
/**
* 工厂
*/
private String factory;
/**
* 领料数量
*/
private BigDecimal qty;
/**
* 默认仓库
*/
private String warehouseNumber;
}

View File

@ -0,0 +1,67 @@
package com.nflg.wms.common.pojo.vo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Accessors(chain = true)
public class C_MaterialOutboundVO {
private Long id;
/**
* 出库单号-O+yyMMdd+4为流水号
*/
private String orderNumber;
/**
* 预留单号
*/
private String reservedNumber;
/**
* 物品凭证
*/
private String materialDoc;
/**
* 物料年度凭证
*/
private String materialDocYear;
/**
* 创建人编号
*/
private Long createUserId;
/**
* 创建人名称
*/
private String createUserName;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* sap导入的状态
*/
private Boolean sapStatus;
/**
* sap导入异常信息
*/
private String sapMsg;
/**
* 流水号
*/
private Integer serialNumber;
/**
* 工位
*/
private String workstation;
}

View File

@ -0,0 +1,54 @@
package com.nflg.wms.common.pojo.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@Accessors(chain = true)
public class C_MaterialReturnItemVO {
private Long id;
/**
* 退库单的ID
*/
private Long orderId;
/**
* 预留单行号
*/
private String reservedNumberId;
/**
* 物料编号
*/
private String materialNo;
/**
* 物料描述
*/
private String materialDesc;
/**
* 单位
*/
private String unit;
/**
* 工厂
*/
private String factory;
/**
* 退货数量
*/
private BigDecimal returnQty;
/**
* 默认仓库
*/
private String warehouseNumber;
}

View File

@ -0,0 +1,64 @@
package com.nflg.wms.common.pojo.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Accessors(chain = true)
public class C_MaterialReturnVO {
private Long id;
/**
* 退库单号-TK+yyMMdd+4为流水号
*/
private String orderNumber;
/**
* 预留单号
*/
private String reservedNumber;
/**
* 物品凭证
*/
private String materialDoc;
/**
* 物料年度凭证
*/
private String materialDocYear;
/**
* 创建人编号
*/
private Long createUserId;
/**
* 创建人名称
*/
private String createUserName;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* sap导入的状态
*/
private Boolean sapStatus;
/**
* sap导入异常信息
*/
private String sapMsg;
/**
* 流水号
*/
private Integer serialNumber;
}

View File

@ -0,0 +1,36 @@
package com.nflg.wms.common.pojo.vo;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ScanCodeVO {
/**
* 二维码编号
*/
private String codeId;
/**
* 数量
*/
@NotNull
private BigDecimal codeNum;
/**
* 批次号
*/
private String batchNumber;
/**
* 序列号
*/
private String serialNumber;
/**
* 二维码内容
*/
private String codeContent;
}

View File

@ -0,0 +1,88 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_center_outbound")
public class WmsCenterOutbound implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 出库单号-O+yyMMdd+4为流水号
*/
private String orderNumber;
/**
* 预留单号
*/
private String reservedNumber;
/**
* 物品凭证
*/
private String materialDoc;
/**
* 物料年度凭证
*/
private String materialDocYear;
/**
* 创建人编号
*/
private Long createUserId;
/**
* 创建人名称
*/
private String createUserName;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* sap导入的状态
*/
private Boolean sapStatus;
/**
* sap导入异常信息
*/
private String sapMsg;
/**
* 流水号
*/
private Integer serialNumber;
/**
* 工位
*/
private String workstation;
}

View File

@ -0,0 +1,73 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_center_outbound_item")
public class WmsCenterOutboundItem implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 出库单的ID
*/
private Long orderId;
/**
* 预留单行号
*/
private String reservedNumberId;
/**
* 物料编号
*/
private String materialNo;
/**
* 物料描述
*/
private String materialDesc;
/**
* 单位
*/
private String unit;
/**
* 工厂
*/
private String factory;
/**
* 领料数量
*/
private BigDecimal qty;
/**
* 默认仓库
*/
private String warehouseNumber;
}

View File

@ -0,0 +1,63 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_center_outbound_scan")
public class WmsCenterOutboundScan implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 出库单的详情ID
*/
private Long itemId;
/**
* 二维码编号
*/
private String codeId;
/**
* 数量
*/
private BigDecimal codeNum;
/**
* 批次号
*/
private String batchNumber;
/**
* 序列号,多个序列号使用;号隔开
*/
private String serialNumber;
/**
* 二维码内容
*/
private String codeContent;
}

View File

@ -0,0 +1,83 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_center_return")
public class WmsCenterReturn implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 退库单号-TK+yyMMdd+4为流水号
*/
private String orderNumber;
/**
* 预留单号
*/
private String reservedNumber;
/**
* 物品凭证
*/
private String materialDoc;
/**
* 物料年度凭证
*/
private String materialDocYear;
/**
* 创建人编号
*/
private Long createUserId;
/**
* 创建人名称
*/
private String createUserName;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* sap导入的状态
*/
private Boolean sapStatus;
/**
* sap导入异常信息
*/
private String sapMsg;
/**
* 流水号
*/
private Integer serialNumber;
}

View File

@ -0,0 +1,73 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_center_return_item")
public class WmsCenterReturnItem implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 退库单的ID
*/
private Long orderId;
/**
* 预留单行号
*/
private String reservedNumberId;
/**
* 物料编号
*/
private String materialNo;
/**
* 物料描述
*/
private String materialDesc;
/**
* 单位
*/
private String unit;
/**
* 工厂
*/
private String factory;
/**
* 退货数量
*/
private BigDecimal returnQty;
/**
* 默认仓库
*/
private String warehouseNumber;
}

View File

@ -0,0 +1,63 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_center_return_scan")
public class WmsCenterReturnScan implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 退货单的详情ID
*/
private Long itemId;
/**
* 二维码编号
*/
private String codeId;
/**
* 数量
*/
private BigDecimal codeNum;
/**
* 批次号
*/
private String batchNumber;
/**
* 序列号,多个序列号使用;号隔开
*/
private String serialNumber;
/**
* 二维码内容
*/
private String codeContent;
}

View File

@ -0,0 +1,64 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_outbound_recommendation")
public class WmsOutboundRecommendation implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 推荐物料的数据行ID
*/
private Long sourceId;
/**
* 推荐的批次号
*/
private String recommendationBatchCode;
/**
* 推荐的数量
*/
private BigDecimal recommendationBatchNum;
/**
* 是否命中推荐的批次号
*/
private Boolean isMatch;
/**
* 0 来自于中心领料出库
*/
private Short sourceFrom;
/**
* 推荐日期
*/
private LocalDateTime createTime;
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsCenterOutboundItem;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsCenterOutboundItemMapper extends BaseMapper<WmsCenterOutboundItem> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsCenterOutbound;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsCenterOutboundMapper extends BaseMapper<WmsCenterOutbound> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsCenterOutboundScan;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsCenterOutboundScanMapper extends BaseMapper<WmsCenterOutboundScan> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsCenterReturnItem;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsCenterReturnItemMapper extends BaseMapper<WmsCenterReturnItem> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsCenterReturn;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsCenterReturnMapper extends BaseMapper<WmsCenterReturn> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsCenterReturnScan;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsCenterReturnScanMapper extends BaseMapper<WmsCenterReturnScan> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsOutboundRecommendation;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsOutboundRecommendationMapper extends BaseMapper<WmsOutboundRecommendation> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.service;
import com.nflg.wms.repository.entity.WmsCenterOutboundItem;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsCenterOutboundItemService extends IService<WmsCenterOutboundItem> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.service;
import com.nflg.wms.repository.entity.WmsCenterOutboundScan;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsCenterOutboundScanService extends IService<WmsCenterOutboundScan> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.service;
import com.nflg.wms.repository.entity.WmsCenterOutbound;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsCenterOutboundService extends IService<WmsCenterOutbound> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.service;
import com.nflg.wms.repository.entity.WmsCenterReturnItem;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsCenterReturnItemService extends IService<WmsCenterReturnItem> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.service;
import com.nflg.wms.repository.entity.WmsCenterReturnScan;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsCenterReturnScanService extends IService<WmsCenterReturnScan> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.service;
import com.nflg.wms.repository.entity.WmsCenterReturn;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsCenterReturnService extends IService<WmsCenterReturn> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.service;
import com.nflg.wms.repository.entity.WmsOutboundRecommendation;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsOutboundRecommendationService extends IService<WmsOutboundRecommendation> {
}

View File

@ -0,0 +1,20 @@
package com.nflg.wms.repository.service.impl;
import com.nflg.wms.repository.entity.WmsCenterOutboundItem;
import com.nflg.wms.repository.mapper.WmsCenterOutboundItemMapper;
import com.nflg.wms.repository.service.IWmsCenterOutboundItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsCenterOutboundItemServiceImpl extends ServiceImpl<WmsCenterOutboundItemMapper, WmsCenterOutboundItem> implements IWmsCenterOutboundItemService {
}

View File

@ -0,0 +1,20 @@
package com.nflg.wms.repository.service.impl;
import com.nflg.wms.repository.entity.WmsCenterOutboundScan;
import com.nflg.wms.repository.mapper.WmsCenterOutboundScanMapper;
import com.nflg.wms.repository.service.IWmsCenterOutboundScanService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsCenterOutboundScanServiceImpl extends ServiceImpl<WmsCenterOutboundScanMapper, WmsCenterOutboundScan> implements IWmsCenterOutboundScanService {
}

View File

@ -0,0 +1,20 @@
package com.nflg.wms.repository.service.impl;
import com.nflg.wms.repository.entity.WmsCenterOutbound;
import com.nflg.wms.repository.mapper.WmsCenterOutboundMapper;
import com.nflg.wms.repository.service.IWmsCenterOutboundService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsCenterOutboundServiceImpl extends ServiceImpl<WmsCenterOutboundMapper, WmsCenterOutbound> implements IWmsCenterOutboundService {
}

View File

@ -0,0 +1,20 @@
package com.nflg.wms.repository.service.impl;
import com.nflg.wms.repository.entity.WmsCenterReturnItem;
import com.nflg.wms.repository.mapper.WmsCenterReturnItemMapper;
import com.nflg.wms.repository.service.IWmsCenterReturnItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsCenterReturnItemServiceImpl extends ServiceImpl<WmsCenterReturnItemMapper, WmsCenterReturnItem> implements IWmsCenterReturnItemService {
}

View File

@ -0,0 +1,20 @@
package com.nflg.wms.repository.service.impl;
import com.nflg.wms.repository.entity.WmsCenterReturnScan;
import com.nflg.wms.repository.mapper.WmsCenterReturnScanMapper;
import com.nflg.wms.repository.service.IWmsCenterReturnScanService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsCenterReturnScanServiceImpl extends ServiceImpl<WmsCenterReturnScanMapper, WmsCenterReturnScan> implements IWmsCenterReturnScanService {
}

View File

@ -0,0 +1,20 @@
package com.nflg.wms.repository.service.impl;
import com.nflg.wms.repository.entity.WmsCenterReturn;
import com.nflg.wms.repository.mapper.WmsCenterReturnMapper;
import com.nflg.wms.repository.service.IWmsCenterReturnService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsCenterReturnServiceImpl extends ServiceImpl<WmsCenterReturnMapper, WmsCenterReturn> implements IWmsCenterReturnService {
}

View File

@ -0,0 +1,20 @@
package com.nflg.wms.repository.service.impl;
import com.nflg.wms.repository.entity.WmsOutboundRecommendation;
import com.nflg.wms.repository.mapper.WmsOutboundRecommendationMapper;
import com.nflg.wms.repository.service.IWmsOutboundRecommendationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsOutboundRecommendationServiceImpl extends ServiceImpl<WmsOutboundRecommendationMapper, WmsOutboundRecommendation> implements IWmsOutboundRecommendationService {
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsCenterOutboundItemMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsCenterOutboundMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsCenterOutboundScanMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsCenterReturnItemMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsCenterReturnMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsCenterReturnScanMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsOutboundRecommendationMapper">
</mapper>

View File

@ -33,7 +33,7 @@ public class CodeGeneratorTest {
)
.strategyConfig(builder -> {
builder
.addInclude("wms_normal_print_order") //只生成指定表
.addInclude("wms_outbound_recommendation") //只生成指定表
.entityBuilder().idType(IdType.ASSIGN_ID)
.enableLombok()
.enableChainModel()