feat(wms): 添加调拨单功能模块

- 创建调拨单主表实体类、业务对象类和视图对象类
- 创建调拨单明细表实体类、业务对象类和视图对象类
- 实现调拨单主表和明细表的数据库映射和XML配置文件
- 开发调拨单主表和明细表的服务接口及实现类
- 创建调拨单主表和明细表的控制器,提供CRUD操作接口
- 实现分页查询、新增、修改、删除和导出功能
- 添加参数验证和数据校验机制
- 集成MyBatis-Plus进行数据库操作
- 配置Excel导出功能支持调拨单数据导出
This commit is contained in:
2026-03-27 16:15:17 +08:00
parent 15a2920053
commit 0d3bde95f3
16 changed files with 993 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
package com.klp.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.domain.vo.WmsTransferOrderVo;
import com.klp.domain.bo.WmsTransferOrderBo;
import com.klp.service.IWmsTransferOrderService;
import com.klp.common.core.page.TableDataInfo;
/**
* 调拨单主
*
* @author klp
* @date 2026-03-27
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/wms/transferOrder")
public class WmsTransferOrderController extends BaseController {
private final IWmsTransferOrderService iWmsTransferOrderService;
/**
* 查询调拨单主列表
*/
@GetMapping("/list")
public TableDataInfo<WmsTransferOrderVo> list(WmsTransferOrderBo bo, PageQuery pageQuery) {
return iWmsTransferOrderService.queryPageList(bo, pageQuery);
}
/**
* 导出调拨单主列表
*/
@Log(title = "调拨单主", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsTransferOrderBo bo, HttpServletResponse response) {
List<WmsTransferOrderVo> list = iWmsTransferOrderService.queryList(bo);
ExcelUtil.exportExcel(list, "调拨单主", WmsTransferOrderVo.class, response);
}
/**
* 获取调拨单主详细信息
*
* @param orderId 主键
*/
@GetMapping("/{orderId}")
public R<WmsTransferOrderVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long orderId) {
return R.ok(iWmsTransferOrderService.queryById(orderId));
}
/**
* 新增调拨单主
*/
@Log(title = "调拨单主", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsTransferOrderBo bo) {
return toAjax(iWmsTransferOrderService.insertByBo(bo));
}
/**
* 修改调拨单主
*/
@Log(title = "调拨单主", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsTransferOrderBo bo) {
return toAjax(iWmsTransferOrderService.updateByBo(bo));
}
/**
* 删除调拨单主
*
* @param orderIds 主键串
*/
@Log(title = "调拨单主", businessType = BusinessType.DELETE)
@DeleteMapping("/{orderIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] orderIds) {
return toAjax(iWmsTransferOrderService.deleteWithValidByIds(Arrays.asList(orderIds), true));
}
}

View File

@@ -0,0 +1,99 @@
package com.klp.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.domain.vo.WmsTransferOrderItemVo;
import com.klp.domain.bo.WmsTransferOrderItemBo;
import com.klp.service.IWmsTransferOrderItemService;
import com.klp.common.core.page.TableDataInfo;
/**
* 调拨单明细
*
* @author klp
* @date 2026-03-27
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/wms/transferOrderItem")
public class WmsTransferOrderItemController extends BaseController {
private final IWmsTransferOrderItemService iWmsTransferOrderItemService;
/**
* 查询调拨单明细列表
*/
@GetMapping("/list")
public TableDataInfo<WmsTransferOrderItemVo> list(WmsTransferOrderItemBo bo, PageQuery pageQuery) {
return iWmsTransferOrderItemService.queryPageList(bo, pageQuery);
}
/**
* 导出调拨单明细列表
*/
@Log(title = "调拨单明细", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsTransferOrderItemBo bo, HttpServletResponse response) {
List<WmsTransferOrderItemVo> list = iWmsTransferOrderItemService.queryList(bo);
ExcelUtil.exportExcel(list, "调拨单明细", WmsTransferOrderItemVo.class, response);
}
/**
* 获取调拨单明细详细信息
*
* @param itemId 主键
*/
@GetMapping("/{itemId}")
public R<WmsTransferOrderItemVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long itemId) {
return R.ok(iWmsTransferOrderItemService.queryById(itemId));
}
/**
* 新增调拨单明细
*/
@Log(title = "调拨单明细", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsTransferOrderItemBo bo) {
return toAjax(iWmsTransferOrderItemService.insertByBo(bo));
}
/**
* 修改调拨单明细
*/
@Log(title = "调拨单明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsTransferOrderItemBo bo) {
return toAjax(iWmsTransferOrderItemService.updateByBo(bo));
}
/**
* 删除调拨单明细
*
* @param itemIds 主键串
*/
@Log(title = "调拨单明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{itemIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] itemIds) {
return toAjax(iWmsTransferOrderItemService.deleteWithValidByIds(Arrays.asList(itemIds), true));
}
}

View File

@@ -0,0 +1,55 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 调拨单主对象 wms_transfer_order
*
* @author klp
* @date 2026-03-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_transfer_order")
public class WmsTransferOrder extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 调拨单主键ID
*/
@TableId(value = "order_id")
private Long orderId;
/**
* 调拨单号(唯一格式DB+年月日+流水号)
*/
private String transferNo;
/**
* 调拨单名称
*/
private String transferName;
/**
* 调拨状态 0-待审核 1-已完成 2-已取消
*/
private Long transferStatus;
/**
* 实际调拨时间
*/
private Date transferTime;
/**
* 备注
*/
private String remark;
/**
* 删除标记(0正常 1删除)
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,69 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 调拨单明细对象 wms_transfer_order_item
*
* @author klp
* @date 2026-03-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_transfer_order_item")
public class WmsTransferOrderItem extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 调拨明细主键ID
*/
@TableId(value = "item_id")
private Long itemId;
/**
* 关联调拨单ID
*/
private Long transferId;
/**
* 钢卷id
*/
private Long coilId;
/**
* 调拨前itemId
*/
private Long itemIdBefore;
/**
* 调拨后itemId
*/
private Long itemIdAfter;
/**
* 修改前物料类型 1-原料 2-成品
*/
private Long materialTypeBefore;
/**
* 修改后物料类型 1-原料 2-成品
*/
private Long materialTypeAfter;
/**
* 调拨前逻辑库区ID
*/
private Long warehouseIdBefore;
/**
* 调拨后逻辑库区ID
*/
private Long warehouseIdAfter;
/**
* 备注
*/
private String remark;
/**
* 删除标记(0正常 1删除)
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,53 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 调拨单主业务对象 wms_transfer_order
*
* @author klp
* @date 2026-03-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsTransferOrderBo extends BaseEntity {
/**
* 调拨单主键ID
*/
private Long orderId;
/**
* 调拨单号(唯一格式DB+年月日+流水号)
*/
private String transferNo;
/**
* 调拨单名称
*/
private String transferName;
/**
* 调拨状态 0-待审核 1-已完成 2-已取消
*/
private Long transferStatus;
/**
* 实际调拨时间
*/
private Date transferTime;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,71 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* 调拨单明细业务对象 wms_transfer_order_item
*
* @author klp
* @date 2026-03-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsTransferOrderItemBo extends BaseEntity {
/**
* 调拨明细主键ID
*/
private Long itemId;
/**
* 关联调拨单ID
*/
private Long transferId;
/**
* 钢卷id
*/
private Long coilId;
/**
* 调拨前itemId
*/
private Long itemIdBefore;
/**
* 调拨后itemId
*/
private Long itemIdAfter;
/**
* 修改前物料类型 1-原料 2-成品
*/
private Long materialTypeBefore;
/**
* 修改后物料类型 1-原料 2-成品
*/
private Long materialTypeAfter;
/**
* 调拨前逻辑库区ID
*/
private Long warehouseIdBefore;
/**
* 调拨后逻辑库区ID
*/
private Long warehouseIdAfter;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,83 @@
package com.klp.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 调拨单明细视图对象 wms_transfer_order_item
*
* @author klp
* @date 2026-03-27
*/
@Data
@ExcelIgnoreUnannotated
public class WmsTransferOrderItemVo {
private static final long serialVersionUID = 1L;
/**
* 调拨明细主键ID
*/
@ExcelProperty(value = "调拨明细主键ID")
private Long itemId;
/**
* 关联调拨单ID
*/
@ExcelProperty(value = "关联调拨单ID")
private Long transferId;
/**
* 钢卷id
*/
@ExcelProperty(value = "钢卷id")
private Long coilId;
/**
* 调拨前itemId
*/
@ExcelProperty(value = "调拨前itemId")
private Long itemIdBefore;
/**
* 调拨后itemId
*/
@ExcelProperty(value = "调拨后itemId")
private Long itemIdAfter;
/**
* 修改前物料类型 1-原料 2-成品
*/
@ExcelProperty(value = "修改前物料类型 1-原料 2-成品")
private Long materialTypeBefore;
/**
* 修改后物料类型 1-原料 2-成品
*/
@ExcelProperty(value = "修改后物料类型 1-原料 2-成品")
private Long materialTypeAfter;
/**
* 调拨前逻辑库区ID
*/
@ExcelProperty(value = "调拨前逻辑库区ID")
private Long warehouseIdBefore;
/**
* 调拨后逻辑库区ID
*/
@ExcelProperty(value = "调拨后逻辑库区ID")
private Long warehouseIdAfter;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,61 @@
package com.klp.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 调拨单主视图对象 wms_transfer_order
*
* @author klp
* @date 2026-03-27
*/
@Data
@ExcelIgnoreUnannotated
public class WmsTransferOrderVo {
private static final long serialVersionUID = 1L;
/**
* 调拨单主键ID
*/
@ExcelProperty(value = "调拨单主键ID")
private Long orderId;
/**
* 调拨单号(唯一格式DB+年月日+流水号)
*/
@ExcelProperty(value = "调拨单号(唯一格式DB+年月日+流水号)")
private String transferNo;
/**
* 调拨单名称
*/
@ExcelProperty(value = "调拨单名称")
private String transferName;
/**
* 调拨状态 0-待审核 1-已完成 2-已取消
*/
@ExcelProperty(value = "调拨状态 0-待审核 1-已完成 2-已取消")
private Long transferStatus;
/**
* 实际调拨时间
*/
@ExcelProperty(value = "实际调拨时间")
private Date transferTime;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,15 @@
package com.klp.mapper;
import com.klp.domain.WmsTransferOrderItem;
import com.klp.domain.vo.WmsTransferOrderItemVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 调拨单明细Mapper接口
*
* @author klp
* @date 2026-03-27
*/
public interface WmsTransferOrderItemMapper extends BaseMapperPlus<WmsTransferOrderItemMapper, WmsTransferOrderItem, WmsTransferOrderItemVo> {
}

View File

@@ -0,0 +1,15 @@
package com.klp.mapper;
import com.klp.domain.WmsTransferOrder;
import com.klp.domain.vo.WmsTransferOrderVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 调拨单主Mapper接口
*
* @author klp
* @date 2026-03-27
*/
public interface WmsTransferOrderMapper extends BaseMapperPlus<WmsTransferOrderMapper, WmsTransferOrder, WmsTransferOrderVo> {
}

View File

@@ -0,0 +1,49 @@
package com.klp.service;
import com.klp.domain.WmsTransferOrderItem;
import com.klp.domain.vo.WmsTransferOrderItemVo;
import com.klp.domain.bo.WmsTransferOrderItemBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 调拨单明细Service接口
*
* @author klp
* @date 2026-03-27
*/
public interface IWmsTransferOrderItemService {
/**
* 查询调拨单明细
*/
WmsTransferOrderItemVo queryById(Long itemId);
/**
* 查询调拨单明细列表
*/
TableDataInfo<WmsTransferOrderItemVo> queryPageList(WmsTransferOrderItemBo bo, PageQuery pageQuery);
/**
* 查询调拨单明细列表
*/
List<WmsTransferOrderItemVo> queryList(WmsTransferOrderItemBo bo);
/**
* 新增调拨单明细
*/
Boolean insertByBo(WmsTransferOrderItemBo bo);
/**
* 修改调拨单明细
*/
Boolean updateByBo(WmsTransferOrderItemBo bo);
/**
* 校验并批量删除调拨单明细信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.klp.service;
import com.klp.domain.WmsTransferOrder;
import com.klp.domain.vo.WmsTransferOrderVo;
import com.klp.domain.bo.WmsTransferOrderBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 调拨单主Service接口
*
* @author klp
* @date 2026-03-27
*/
public interface IWmsTransferOrderService {
/**
* 查询调拨单主
*/
WmsTransferOrderVo queryById(Long orderId);
/**
* 查询调拨单主列表
*/
TableDataInfo<WmsTransferOrderVo> queryPageList(WmsTransferOrderBo bo, PageQuery pageQuery);
/**
* 查询调拨单主列表
*/
List<WmsTransferOrderVo> queryList(WmsTransferOrderBo bo);
/**
* 新增调拨单主
*/
Boolean insertByBo(WmsTransferOrderBo bo);
/**
* 修改调拨单主
*/
Boolean updateByBo(WmsTransferOrderBo bo);
/**
* 校验并批量删除调拨单主信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,115 @@
package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsTransferOrderItemBo;
import com.klp.domain.vo.WmsTransferOrderItemVo;
import com.klp.domain.WmsTransferOrderItem;
import com.klp.mapper.WmsTransferOrderItemMapper;
import com.klp.service.IWmsTransferOrderItemService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 调拨单明细Service业务层处理
*
* @author klp
* @date 2026-03-27
*/
@RequiredArgsConstructor
@Service
public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemService {
private final WmsTransferOrderItemMapper baseMapper;
/**
* 查询调拨单明细
*/
@Override
public WmsTransferOrderItemVo queryById(Long itemId){
return baseMapper.selectVoById(itemId);
}
/**
* 查询调拨单明细列表
*/
@Override
public TableDataInfo<WmsTransferOrderItemVo> queryPageList(WmsTransferOrderItemBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsTransferOrderItem> lqw = buildQueryWrapper(bo);
Page<WmsTransferOrderItemVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询调拨单明细列表
*/
@Override
public List<WmsTransferOrderItemVo> queryList(WmsTransferOrderItemBo bo) {
LambdaQueryWrapper<WmsTransferOrderItem> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsTransferOrderItem> buildQueryWrapper(WmsTransferOrderItemBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsTransferOrderItem> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getTransferId() != null, WmsTransferOrderItem::getTransferId, bo.getTransferId());
lqw.eq(bo.getCoilId() != null, WmsTransferOrderItem::getCoilId, bo.getCoilId());
lqw.eq(bo.getItemIdBefore() != null, WmsTransferOrderItem::getItemIdBefore, bo.getItemIdBefore());
lqw.eq(bo.getItemIdAfter() != null, WmsTransferOrderItem::getItemIdAfter, bo.getItemIdAfter());
lqw.eq(bo.getMaterialTypeBefore() != null, WmsTransferOrderItem::getMaterialTypeBefore, bo.getMaterialTypeBefore());
lqw.eq(bo.getMaterialTypeAfter() != null, WmsTransferOrderItem::getMaterialTypeAfter, bo.getMaterialTypeAfter());
lqw.eq(bo.getWarehouseIdBefore() != null, WmsTransferOrderItem::getWarehouseIdBefore, bo.getWarehouseIdBefore());
lqw.eq(bo.getWarehouseIdAfter() != null, WmsTransferOrderItem::getWarehouseIdAfter, bo.getWarehouseIdAfter());
return lqw;
}
/**
* 新增调拨单明细
*/
@Override
public Boolean insertByBo(WmsTransferOrderItemBo bo) {
WmsTransferOrderItem add = BeanUtil.toBean(bo, WmsTransferOrderItem.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setItemId(add.getItemId());
}
return flag;
}
/**
* 修改调拨单明细
*/
@Override
public Boolean updateByBo(WmsTransferOrderItemBo bo) {
WmsTransferOrderItem update = BeanUtil.toBean(bo, WmsTransferOrderItem.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsTransferOrderItem entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除调拨单明细
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,112 @@
package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsTransferOrderBo;
import com.klp.domain.vo.WmsTransferOrderVo;
import com.klp.domain.WmsTransferOrder;
import com.klp.mapper.WmsTransferOrderMapper;
import com.klp.service.IWmsTransferOrderService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 调拨单主Service业务层处理
*
* @author klp
* @date 2026-03-27
*/
@RequiredArgsConstructor
@Service
public class WmsTransferOrderServiceImpl implements IWmsTransferOrderService {
private final WmsTransferOrderMapper baseMapper;
/**
* 查询调拨单主
*/
@Override
public WmsTransferOrderVo queryById(Long orderId){
return baseMapper.selectVoById(orderId);
}
/**
* 查询调拨单主列表
*/
@Override
public TableDataInfo<WmsTransferOrderVo> queryPageList(WmsTransferOrderBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsTransferOrder> lqw = buildQueryWrapper(bo);
Page<WmsTransferOrderVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询调拨单主列表
*/
@Override
public List<WmsTransferOrderVo> queryList(WmsTransferOrderBo bo) {
LambdaQueryWrapper<WmsTransferOrder> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsTransferOrder> buildQueryWrapper(WmsTransferOrderBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsTransferOrder> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getTransferNo()), WmsTransferOrder::getTransferNo, bo.getTransferNo());
lqw.like(StringUtils.isNotBlank(bo.getTransferName()), WmsTransferOrder::getTransferName, bo.getTransferName());
lqw.eq(bo.getTransferStatus() != null, WmsTransferOrder::getTransferStatus, bo.getTransferStatus());
lqw.eq(bo.getTransferTime() != null, WmsTransferOrder::getTransferTime, bo.getTransferTime());
return lqw;
}
/**
* 新增调拨单主
*/
@Override
public Boolean insertByBo(WmsTransferOrderBo bo) {
WmsTransferOrder add = BeanUtil.toBean(bo, WmsTransferOrder.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setOrderId(add.getOrderId());
}
return flag;
}
/**
* 修改调拨单主
*/
@Override
public Boolean updateByBo(WmsTransferOrderBo bo) {
WmsTransferOrder update = BeanUtil.toBean(bo, WmsTransferOrder.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsTransferOrder entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除调拨单主
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,26 @@
<?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.klp.mapper.WmsTransferOrderItemMapper">
<resultMap type="com.klp.domain.WmsTransferOrderItem" id="WmsTransferOrderItemResult">
<result property="itemId" column="item_id"/>
<result property="transferId" column="transfer_id"/>
<result property="coilId" column="coil_id"/>
<result property="itemIdBefore" column="item_id_before"/>
<result property="itemIdAfter" column="item_id_after"/>
<result property="materialTypeBefore" column="material_type_before"/>
<result property="materialTypeAfter" column="material_type_after"/>
<result property="warehouseIdBefore" column="warehouse_id_before"/>
<result property="warehouseIdAfter" column="warehouse_id_after"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,22 @@
<?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.klp.mapper.WmsTransferOrderMapper">
<resultMap type="com.klp.domain.WmsTransferOrder" id="WmsTransferOrderResult">
<result property="orderId" column="order_id"/>
<result property="transferNo" column="transfer_no"/>
<result property="transferName" column="transfer_name"/>
<result property="transferStatus" column="transfer_status"/>
<result property="transferTime" column="transfer_time"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>