feat(wms): 添加批次、工艺、工艺任务相关功能

- 新增 IWmsBatchService、IWmsProcesseService、IWmsProcessTaskService 接口
- 实现 WmsBatchServiceImpl、WmsProcesseServiceImpl 服务类- 添加 WmsBatch、WmsProcesse、WmsProcessTask 实体类
- 创建对应的 BO、VO 类
- 编写 WmsBatchMapper、WmsProcesseMapper 映射接口- 生成 WmsBatchMapper.xml、WmsProcesseMapper.xml 映射文件
- 开发 WmsBatchController、WmsProcesseController 控制器
This commit is contained in:
JR
2025-08-14 13:52:08 +08:00
parent 85ae6c4efa
commit c4ee58f75d
32 changed files with 1937 additions and 0 deletions

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 com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsBatchBo;
import com.klp.domain.vo.WmsBatchVo;
import com.klp.domain.WmsBatch;
import com.klp.mapper.WmsBatchMapper;
import com.klp.service.IWmsBatchService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 批次合并相同工艺的任务Service业务层处理
*
* @author klp
* @date 2025-08-14
*/
@RequiredArgsConstructor
@Service
public class WmsBatchServiceImpl implements IWmsBatchService {
private final WmsBatchMapper baseMapper;
/**
* 查询批次(合并相同工艺的任务)
*/
@Override
public WmsBatchVo queryById(Long batchId){
return baseMapper.selectVoById(batchId);
}
/**
* 查询批次(合并相同工艺的任务)列表
*/
@Override
public TableDataInfo<WmsBatchVo> queryPageList(WmsBatchBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsBatch> lqw = buildQueryWrapper(bo);
Page<WmsBatchVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询批次(合并相同工艺的任务)列表
*/
@Override
public List<WmsBatchVo> queryList(WmsBatchBo bo) {
LambdaQueryWrapper<WmsBatch> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsBatch> buildQueryWrapper(WmsBatchBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsBatch> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getBatchNo()), WmsBatch::getBatchNo, bo.getBatchNo());
lqw.eq(bo.getProcessId() != null, WmsBatch::getProcessId, bo.getProcessId());
lqw.eq(bo.getTotalQuantity() != null, WmsBatch::getTotalQuantity, bo.getTotalQuantity());
lqw.eq(StringUtils.isNotBlank(bo.getMergeSource()), WmsBatch::getMergeSource, bo.getMergeSource());
lqw.eq(bo.getEstimatedStartTime() != null, WmsBatch::getEstimatedStartTime, bo.getEstimatedStartTime());
lqw.eq(bo.getEstimatedEndTime() != null, WmsBatch::getEstimatedEndTime, bo.getEstimatedEndTime());
lqw.eq(StringUtils.isNotBlank(bo.getBatchStatus()), WmsBatch::getBatchStatus, bo.getBatchStatus());
return lqw;
}
/**
* 新增批次(合并相同工艺的任务)
*/
@Override
public Boolean insertByBo(WmsBatchBo bo) {
WmsBatch add = BeanUtil.toBean(bo, WmsBatch.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setBatchId(add.getBatchId());
}
return flag;
}
/**
* 修改批次(合并相同工艺的任务)
*/
@Override
public Boolean updateByBo(WmsBatchBo bo) {
WmsBatch update = BeanUtil.toBean(bo, WmsBatch.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsBatch entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除批次(合并相同工艺的任务)
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,113 @@
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.WmsProcessTaskBo;
import com.klp.domain.vo.WmsProcessTaskVo;
import com.klp.domain.WmsProcessTask;
import com.klp.mapper.WmsProcessTaskMapper;
import com.klp.service.IWmsProcessTaskService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 工艺任务生产计划所需工艺任务Service业务层处理
*
* @author klp
* @date 2025-08-14
*/
@RequiredArgsConstructor
@Service
public class WmsProcessTaskServiceImpl implements IWmsProcessTaskService {
private final WmsProcessTaskMapper baseMapper;
/**
* 查询工艺任务(生产计划所需工艺任务)
*/
@Override
public WmsProcessTaskVo queryById(Long taskId){
return baseMapper.selectVoById(taskId);
}
/**
* 查询工艺任务(生产计划所需工艺任务)列表
*/
@Override
public TableDataInfo<WmsProcessTaskVo> queryPageList(WmsProcessTaskBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsProcessTask> lqw = buildQueryWrapper(bo);
Page<WmsProcessTaskVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询工艺任务(生产计划所需工艺任务)列表
*/
@Override
public List<WmsProcessTaskVo> queryList(WmsProcessTaskBo bo) {
LambdaQueryWrapper<WmsProcessTask> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsProcessTask> buildQueryWrapper(WmsProcessTaskBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsProcessTask> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getPlanId() != null, WmsProcessTask::getPlanId, bo.getPlanId());
lqw.eq(bo.getProcessId() != null, WmsProcessTask::getProcessId, bo.getProcessId());
lqw.eq(bo.getProductId() != null, WmsProcessTask::getProductId, bo.getProductId());
lqw.eq(bo.getTaskQuantity() != null, WmsProcessTask::getTaskQuantity, bo.getTaskQuantity());
lqw.eq(StringUtils.isNotBlank(bo.getTaskStatus()), WmsProcessTask::getTaskStatus, bo.getTaskStatus());
return lqw;
}
/**
* 新增工艺任务(生产计划所需工艺任务)
*/
@Override
public Boolean insertByBo(WmsProcessTaskBo bo) {
WmsProcessTask add = BeanUtil.toBean(bo, WmsProcessTask.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setTaskId(add.getTaskId());
}
return flag;
}
/**
* 修改工艺任务(生产计划所需工艺任务)
*/
@Override
public Boolean updateByBo(WmsProcessTaskBo bo) {
WmsProcessTask update = BeanUtil.toBean(bo, WmsProcessTask.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsProcessTask entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除工艺任务(生产计划所需工艺任务)
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,113 @@
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.WmsProcesseBo;
import com.klp.domain.vo.WmsProcesseVo;
import com.klp.domain.WmsProcesse;
import com.klp.mapper.WmsProcesseMapper;
import com.klp.service.IWmsProcesseService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 工艺Service业务层处理
*
* @author klp
* @date 2025-08-14
*/
@RequiredArgsConstructor
@Service
public class WmsProcesseServiceImpl implements IWmsProcesseService {
private final WmsProcesseMapper baseMapper;
/**
* 查询工艺
*/
@Override
public WmsProcesseVo queryById(Long processId){
return baseMapper.selectVoById(processId);
}
/**
* 查询工艺列表
*/
@Override
public TableDataInfo<WmsProcesseVo> queryPageList(WmsProcesseBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsProcesse> lqw = buildQueryWrapper(bo);
Page<WmsProcesseVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询工艺列表
*/
@Override
public List<WmsProcesseVo> queryList(WmsProcesseBo bo) {
LambdaQueryWrapper<WmsProcesse> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsProcesse> buildQueryWrapper(WmsProcesseBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsProcesse> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getProcessCode()), WmsProcesse::getProcessCode, bo.getProcessCode());
lqw.like(StringUtils.isNotBlank(bo.getProcessName()), WmsProcesse::getProcessName, bo.getProcessName());
lqw.eq(bo.getOutputProductId() != null, WmsProcesse::getOutputProductId, bo.getOutputProductId());
lqw.eq(StringUtils.isNotBlank(bo.getProcessDesc()), WmsProcesse::getProcessDesc, bo.getProcessDesc());
lqw.eq(bo.getStandardTime() != null, WmsProcesse::getStandardTime, bo.getStandardTime());
return lqw;
}
/**
* 新增工艺
*/
@Override
public Boolean insertByBo(WmsProcesseBo bo) {
WmsProcesse add = BeanUtil.toBean(bo, WmsProcesse.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setProcessId(add.getProcessId());
}
return flag;
}
/**
* 修改工艺
*/
@Override
public Boolean updateByBo(WmsProcesseBo bo) {
WmsProcesse update = BeanUtil.toBean(bo, WmsProcesse.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsProcesse entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除工艺
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,111 @@
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.WmsProductProcesseBo;
import com.klp.domain.vo.WmsProductProcesseVo;
import com.klp.domain.WmsProductProcesse;
import com.klp.mapper.WmsProductProcesseMapper;
import com.klp.service.IWmsProductProcesseService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 产品生产工艺预定义产品所需工艺Service业务层处理
*
* @author klp
* @date 2025-08-14
*/
@RequiredArgsConstructor
@Service
public class WmsProductProcesseServiceImpl implements IWmsProductProcesseService {
private final WmsProductProcesseMapper baseMapper;
/**
* 查询产品生产工艺(预定义产品所需工艺)
*/
@Override
public WmsProductProcesseVo queryById(Long ppId){
return baseMapper.selectVoById(ppId);
}
/**
* 查询产品生产工艺(预定义产品所需工艺)列表
*/
@Override
public TableDataInfo<WmsProductProcesseVo> queryPageList(WmsProductProcesseBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsProductProcesse> lqw = buildQueryWrapper(bo);
Page<WmsProductProcesseVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询产品生产工艺(预定义产品所需工艺)列表
*/
@Override
public List<WmsProductProcesseVo> queryList(WmsProductProcesseBo bo) {
LambdaQueryWrapper<WmsProductProcesse> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsProductProcesse> buildQueryWrapper(WmsProductProcesseBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsProductProcesse> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getProductId() != null, WmsProductProcesse::getProductId, bo.getProductId());
lqw.eq(bo.getProcessId() != null, WmsProductProcesse::getProcessId, bo.getProcessId());
lqw.eq(bo.getProcessSequence() != null, WmsProductProcesse::getProcessSequence, bo.getProcessSequence());
lqw.eq(bo.getIsRequired() != null, WmsProductProcesse::getIsRequired, bo.getIsRequired());
return lqw;
}
/**
* 新增产品生产工艺(预定义产品所需工艺)
*/
@Override
public Boolean insertByBo(WmsProductProcesseBo bo) {
WmsProductProcesse add = BeanUtil.toBean(bo, WmsProductProcesse.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setPpId(add.getPpId());
}
return flag;
}
/**
* 修改产品生产工艺(预定义产品所需工艺)
*/
@Override
public Boolean updateByBo(WmsProductProcesseBo bo) {
WmsProductProcesse update = BeanUtil.toBean(bo, WmsProductProcesse.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsProductProcesse entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除产品生产工艺(预定义产品所需工艺)
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}