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,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.WmsBatchVo;
import com.klp.domain.bo.WmsBatchBo;
import com.klp.service.IWmsBatchService;
import com.klp.common.core.page.TableDataInfo;
/**
* 批次(合并相同工艺的任务)
*
* @author klp
* @date 2025-08-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/klp/batch")
public class WmsBatchController extends BaseController {
private final IWmsBatchService iWmsBatchService;
/**
* 查询批次(合并相同工艺的任务)列表
*/
@GetMapping("/list")
public TableDataInfo<WmsBatchVo> list(WmsBatchBo bo, PageQuery pageQuery) {
return iWmsBatchService.queryPageList(bo, pageQuery);
}
/**
* 导出批次(合并相同工艺的任务)列表
*/
@Log(title = "批次(合并相同工艺的任务)", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsBatchBo bo, HttpServletResponse response) {
List<WmsBatchVo> list = iWmsBatchService.queryList(bo);
ExcelUtil.exportExcel(list, "批次(合并相同工艺的任务)", WmsBatchVo.class, response);
}
/**
* 获取批次(合并相同工艺的任务)详细信息
*
* @param batchId 主键
*/
@GetMapping("/{batchId}")
public R<WmsBatchVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long batchId) {
return R.ok(iWmsBatchService.queryById(batchId));
}
/**
* 新增批次(合并相同工艺的任务)
*/
@Log(title = "批次(合并相同工艺的任务)", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsBatchBo bo) {
return toAjax(iWmsBatchService.insertByBo(bo));
}
/**
* 修改批次(合并相同工艺的任务)
*/
@Log(title = "批次(合并相同工艺的任务)", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsBatchBo bo) {
return toAjax(iWmsBatchService.updateByBo(bo));
}
/**
* 删除批次(合并相同工艺的任务)
*
* @param batchIds 主键串
*/
@Log(title = "批次(合并相同工艺的任务)", businessType = BusinessType.DELETE)
@DeleteMapping("/{batchIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] batchIds) {
return toAjax(iWmsBatchService.deleteWithValidByIds(Arrays.asList(batchIds), 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.WmsProcessTaskVo;
import com.klp.domain.bo.WmsProcessTaskBo;
import com.klp.service.IWmsProcessTaskService;
import com.klp.common.core.page.TableDataInfo;
/**
* 工艺任务(生产计划所需工艺任务)
*
* @author klp
* @date 2025-08-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/klp/processTask")
public class WmsProcessTaskController extends BaseController {
private final IWmsProcessTaskService iWmsProcessTaskService;
/**
* 查询工艺任务(生产计划所需工艺任务)列表
*/
@GetMapping("/list")
public TableDataInfo<WmsProcessTaskVo> list(WmsProcessTaskBo bo, PageQuery pageQuery) {
return iWmsProcessTaskService.queryPageList(bo, pageQuery);
}
/**
* 导出工艺任务(生产计划所需工艺任务)列表
*/
@Log(title = "工艺任务(生产计划所需工艺任务)", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsProcessTaskBo bo, HttpServletResponse response) {
List<WmsProcessTaskVo> list = iWmsProcessTaskService.queryList(bo);
ExcelUtil.exportExcel(list, "工艺任务(生产计划所需工艺任务)", WmsProcessTaskVo.class, response);
}
/**
* 获取工艺任务(生产计划所需工艺任务)详细信息
*
* @param taskId 主键
*/
@GetMapping("/{taskId}")
public R<WmsProcessTaskVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long taskId) {
return R.ok(iWmsProcessTaskService.queryById(taskId));
}
/**
* 新增工艺任务(生产计划所需工艺任务)
*/
@Log(title = "工艺任务(生产计划所需工艺任务)", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsProcessTaskBo bo) {
return toAjax(iWmsProcessTaskService.insertByBo(bo));
}
/**
* 修改工艺任务(生产计划所需工艺任务)
*/
@Log(title = "工艺任务(生产计划所需工艺任务)", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsProcessTaskBo bo) {
return toAjax(iWmsProcessTaskService.updateByBo(bo));
}
/**
* 删除工艺任务(生产计划所需工艺任务)
*
* @param taskIds 主键串
*/
@Log(title = "工艺任务(生产计划所需工艺任务)", businessType = BusinessType.DELETE)
@DeleteMapping("/{taskIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] taskIds) {
return toAjax(iWmsProcessTaskService.deleteWithValidByIds(Arrays.asList(taskIds), 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.WmsProcesseVo;
import com.klp.domain.bo.WmsProcesseBo;
import com.klp.service.IWmsProcesseService;
import com.klp.common.core.page.TableDataInfo;
/**
* 工艺
*
* @author klp
* @date 2025-08-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/klp/processe")
public class WmsProcesseController extends BaseController {
private final IWmsProcesseService iWmsProcesseService;
/**
* 查询工艺列表
*/
@GetMapping("/list")
public TableDataInfo<WmsProcesseVo> list(WmsProcesseBo bo, PageQuery pageQuery) {
return iWmsProcesseService.queryPageList(bo, pageQuery);
}
/**
* 导出工艺列表
*/
@Log(title = "工艺", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsProcesseBo bo, HttpServletResponse response) {
List<WmsProcesseVo> list = iWmsProcesseService.queryList(bo);
ExcelUtil.exportExcel(list, "工艺", WmsProcesseVo.class, response);
}
/**
* 获取工艺详细信息
*
* @param processId 主键
*/
@GetMapping("/{processId}")
public R<WmsProcesseVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long processId) {
return R.ok(iWmsProcesseService.queryById(processId));
}
/**
* 新增工艺
*/
@Log(title = "工艺", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsProcesseBo bo) {
return toAjax(iWmsProcesseService.insertByBo(bo));
}
/**
* 修改工艺
*/
@Log(title = "工艺", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsProcesseBo bo) {
return toAjax(iWmsProcesseService.updateByBo(bo));
}
/**
* 删除工艺
*
* @param processIds 主键串
*/
@Log(title = "工艺", businessType = BusinessType.DELETE)
@DeleteMapping("/{processIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] processIds) {
return toAjax(iWmsProcesseService.deleteWithValidByIds(Arrays.asList(processIds), 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.WmsProductProcesseVo;
import com.klp.domain.bo.WmsProductProcesseBo;
import com.klp.service.IWmsProductProcesseService;
import com.klp.common.core.page.TableDataInfo;
/**
* 产品生产工艺(预定义产品所需工艺)
*
* @author klp
* @date 2025-08-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/klp/productProcesse")
public class WmsProductProcesseController extends BaseController {
private final IWmsProductProcesseService iWmsProductProcesseService;
/**
* 查询产品生产工艺(预定义产品所需工艺)列表
*/
@GetMapping("/list")
public TableDataInfo<WmsProductProcesseVo> list(WmsProductProcesseBo bo, PageQuery pageQuery) {
return iWmsProductProcesseService.queryPageList(bo, pageQuery);
}
/**
* 导出产品生产工艺(预定义产品所需工艺)列表
*/
@Log(title = "产品生产工艺(预定义产品所需工艺)", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsProductProcesseBo bo, HttpServletResponse response) {
List<WmsProductProcesseVo> list = iWmsProductProcesseService.queryList(bo);
ExcelUtil.exportExcel(list, "产品生产工艺(预定义产品所需工艺)", WmsProductProcesseVo.class, response);
}
/**
* 获取产品生产工艺(预定义产品所需工艺)详细信息
*
* @param ppId 主键
*/
@GetMapping("/{ppId}")
public R<WmsProductProcesseVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long ppId) {
return R.ok(iWmsProductProcesseService.queryById(ppId));
}
/**
* 新增产品生产工艺(预定义产品所需工艺)
*/
@Log(title = "产品生产工艺(预定义产品所需工艺)", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsProductProcesseBo bo) {
return toAjax(iWmsProductProcesseService.insertByBo(bo));
}
/**
* 修改产品生产工艺(预定义产品所需工艺)
*/
@Log(title = "产品生产工艺(预定义产品所需工艺)", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsProductProcesseBo bo) {
return toAjax(iWmsProductProcesseService.updateByBo(bo));
}
/**
* 删除产品生产工艺(预定义产品所需工艺)
*
* @param ppIds 主键串
*/
@Log(title = "产品生产工艺(预定义产品所需工艺)", businessType = BusinessType.DELETE)
@DeleteMapping("/{ppIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ppIds) {
return toAjax(iWmsProductProcesseService.deleteWithValidByIds(Arrays.asList(ppIds), true));
}
}

View File

@@ -0,0 +1,66 @@
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;
/**
* 批次(合并相同工艺的任务)对象 wms_batch
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_batch")
public class WmsBatch extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 批次ID
*/
@TableId(value = "batch_id")
private Long batchId;
/**
* 批次编号
*/
private String batchNo;
/**
* 关联工艺ID合并的工艺
*/
private Long processId;
/**
* 批次总数量(合并的任务总量)
*/
private Long totalQuantity;
/**
* 合并来源记录被合并的工艺任务ID用逗号分隔
*/
private String mergeSource;
/**
* 预计开始时间
*/
private Date estimatedStartTime;
/**
* 预计结束时间
*/
private Date estimatedEndTime;
/**
* 批次状态created-已创建/scheduled-已排产/executing-执行中/finished-已完成
*/
private String batchStatus;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,57 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 工艺任务(生产计划所需工艺任务)对象 wms_process_task
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_process_task")
public class WmsProcessTask extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 工艺任务ID
*/
@TableId(value = "task_id")
private Long taskId;
/**
* 关联生产计划ID
*/
private Long planId;
/**
* 所需工艺ID
*/
private Long processId;
/**
* 对应产品ID
*/
private Long productId;
/**
* 任务数量
*/
private Long taskQuantity;
/**
* 任务状态pending-待处理/processing-处理中/completed-已完成
*/
private String taskStatus;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,58 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 工艺对象 wms_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_processe")
public class WmsProcesse extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 工艺ID
*/
@TableId(value = "process_id")
private Long processId;
/**
* 工艺编码
*/
private String processCode;
/**
* 工艺名称
*/
private String processName;
/**
* 产出产品(关联产品表,可选)
*/
private Long outputProductId;
/**
* 工艺描述
*/
private String processDesc;
/**
* 标准工时(小时)
*/
private BigDecimal standardTime;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,53 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 产品生产工艺(预定义产品所需工艺)对象 wms_product_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_product_processe")
public class WmsProductProcesse extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键ID
*/
@TableId(value = "pp_id")
private Long ppId;
/**
* 产品ID关联产品表
*/
private Long productId;
/**
* 工艺ID关联工艺表
*/
private Long processId;
/**
* 工艺顺序(同一产品的工艺执行顺序)
*/
private Long processSequence;
/**
* 是否必选工艺1-是/0-否
*/
private Long isRequired;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,72 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 批次(合并相同工艺的任务)业务对象 wms_batch
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsBatchBo extends BaseEntity {
/**
* 批次ID
*/
private Long batchId;
/**
* 批次编号
*/
private String batchNo;
/**
* 关联工艺ID合并的工艺
*/
private Long processId;
/**
* 批次总数量(合并的任务总量)
*/
private Long totalQuantity;
/**
* 合并来源记录被合并的工艺任务ID用逗号分隔
*/
private String mergeSource;
/**
* 预计开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date estimatedStartTime;
/**
* 预计结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date estimatedEndTime;
/**
* 批次状态created-已创建/scheduled-已排产/executing-执行中/finished-已完成
*/
private String batchStatus;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,55 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 工艺任务(生产计划所需工艺任务)业务对象 wms_process_task
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsProcessTaskBo extends BaseEntity {
/**
* 工艺任务ID
*/
private Long taskId;
/**
* 关联生产计划ID
*/
private Long planId;
/**
* 所需工艺ID
*/
private Long processId;
/**
* 对应产品ID
*/
private Long productId;
/**
* 任务数量
*/
private Long taskQuantity;
/**
* 任务状态pending-待处理/processing-处理中/completed-已完成
*/
private String taskStatus;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,56 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 工艺业务对象 wms_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsProcesseBo extends BaseEntity {
/**
* 工艺ID
*/
private Long processId;
/**
* 工艺编码
*/
private String processCode;
/**
* 工艺名称
*/
private String processName;
/**
* 产出产品(关联产品表,可选)
*/
private Long outputProductId;
/**
* 工艺描述
*/
private String processDesc;
/**
* 标准工时(小时)
*/
private BigDecimal standardTime;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,50 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 产品生产工艺(预定义产品所需工艺)业务对象 wms_product_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsProductProcesseBo extends BaseEntity {
/**
* 主键ID
*/
private Long ppId;
/**
* 产品ID关联产品表
*/
private Long productId;
/**
* 工艺ID关联工艺表
*/
private Long processId;
/**
* 工艺顺序(同一产品的工艺执行顺序)
*/
private Long processSequence;
/**
* 是否必选工艺1-是/0-否
*/
private Long isRequired;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,84 @@
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_batch
*
* @author klp
* @date 2025-08-14
*/
@Data
@ExcelIgnoreUnannotated
public class WmsBatchVo {
private static final long serialVersionUID = 1L;
/**
* 批次ID
*/
@ExcelProperty(value = "批次ID")
private Long batchId;
/**
* 批次编号
*/
@ExcelProperty(value = "批次编号")
private String batchNo;
/**
* 关联工艺ID合并的工艺
*/
@ExcelProperty(value = "关联工艺ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "合=并的工艺")
private Long processId;
/**
* 批次总数量(合并的任务总量)
*/
@ExcelProperty(value = "批次总数量", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "合=并的任务总量")
private Long totalQuantity;
/**
* 合并来源记录被合并的工艺任务ID用逗号分隔
*/
@ExcelProperty(value = "合并来源", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "记=录被合并的工艺任务ID用逗号分隔")
private String mergeSource;
/**
* 预计开始时间
*/
@ExcelProperty(value = "预计开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date estimatedStartTime;
/**
* 预计结束时间
*/
@ExcelProperty(value = "预计结束时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date estimatedEndTime;
/**
* 批次状态created-已创建/scheduled-已排产/executing-执行中/finished-已完成
*/
@ExcelProperty(value = "批次状态created-已创建/scheduled-已排产/executing-执行中/finished-已完成")
private String batchStatus;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,63 @@
package com.klp.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* 工艺任务(生产计划所需工艺任务)视图对象 wms_process_task
*
* @author klp
* @date 2025-08-14
*/
@Data
@ExcelIgnoreUnannotated
public class WmsProcessTaskVo {
private static final long serialVersionUID = 1L;
/**
* 工艺任务ID
*/
@ExcelProperty(value = "工艺任务ID")
private Long taskId;
/**
* 关联生产计划ID
*/
@ExcelProperty(value = "关联生产计划ID")
private Long planId;
/**
* 所需工艺ID
*/
@ExcelProperty(value = "所需工艺ID")
private Long processId;
/**
* 对应产品ID
*/
@ExcelProperty(value = "对应产品ID")
private Long productId;
/**
* 任务数量
*/
@ExcelProperty(value = "任务数量")
private Long taskQuantity;
/**
* 任务状态pending-待处理/processing-处理中/completed-已完成
*/
@ExcelProperty(value = "任务状态pending-待处理/processing-处理中/completed-已完成")
private String taskStatus;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,68 @@
package com.klp.domain.vo;
import java.math.BigDecimal;
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_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@ExcelIgnoreUnannotated
public class WmsProcesseVo {
private static final long serialVersionUID = 1L;
/**
* 工艺ID
*/
@ExcelProperty(value = "工艺ID")
private Long processId;
/**
* 工艺编码
*/
@ExcelProperty(value = "工艺编码")
private String processCode;
/**
* 工艺名称
*/
@ExcelProperty(value = "工艺名称")
private String processName;
/**
* 产出产品(关联产品表,可选)
*/
@ExcelProperty(value = "产出产品", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "关=联产品表,可选")
private Long outputProductId;
/**
* 工艺描述
*/
@ExcelProperty(value = "工艺描述")
private String processDesc;
/**
* 标准工时(小时)
*/
@ExcelProperty(value = "标准工时", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "小=时")
private BigDecimal standardTime;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,62 @@
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_product_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@ExcelIgnoreUnannotated
public class WmsProductProcesseVo {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long ppId;
/**
* 产品ID关联产品表
*/
@ExcelProperty(value = "产品ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "关=联产品表")
private Long productId;
/**
* 工艺ID关联工艺表
*/
@ExcelProperty(value = "工艺ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "关=联工艺表")
private Long processId;
/**
* 工艺顺序(同一产品的工艺执行顺序)
*/
@ExcelProperty(value = "工艺顺序", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "同=一产品的工艺执行顺序")
private Long processSequence;
/**
* 是否必选工艺1-是/0-否
*/
@ExcelProperty(value = "是否必选工艺1-是/0-否")
private Long isRequired;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,15 @@
package com.klp.mapper;
import com.klp.domain.WmsBatch;
import com.klp.domain.vo.WmsBatchVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 批次合并相同工艺的任务Mapper接口
*
* @author klp
* @date 2025-08-14
*/
public interface WmsBatchMapper extends BaseMapperPlus<WmsBatchMapper, WmsBatch, WmsBatchVo> {
}

View File

@@ -0,0 +1,15 @@
package com.klp.mapper;
import com.klp.domain.WmsProcessTask;
import com.klp.domain.vo.WmsProcessTaskVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 工艺任务生产计划所需工艺任务Mapper接口
*
* @author klp
* @date 2025-08-14
*/
public interface WmsProcessTaskMapper extends BaseMapperPlus<WmsProcessTaskMapper, WmsProcessTask, WmsProcessTaskVo> {
}

View File

@@ -0,0 +1,15 @@
package com.klp.mapper;
import com.klp.domain.WmsProcesse;
import com.klp.domain.vo.WmsProcesseVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 工艺Mapper接口
*
* @author klp
* @date 2025-08-14
*/
public interface WmsProcesseMapper extends BaseMapperPlus<WmsProcesseMapper, WmsProcesse, WmsProcesseVo> {
}

View File

@@ -0,0 +1,15 @@
package com.klp.mapper;
import com.klp.domain.WmsProductProcesse;
import com.klp.domain.vo.WmsProductProcesseVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 产品生产工艺预定义产品所需工艺Mapper接口
*
* @author klp
* @date 2025-08-14
*/
public interface WmsProductProcesseMapper extends BaseMapperPlus<WmsProductProcesseMapper, WmsProductProcesse, WmsProductProcesseVo> {
}

View File

@@ -0,0 +1,48 @@
package com.klp.service;
import com.klp.domain.vo.WmsBatchVo;
import com.klp.domain.bo.WmsBatchBo;
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 2025-08-14
*/
public interface IWmsBatchService {
/**
* 查询批次(合并相同工艺的任务)
*/
WmsBatchVo queryById(Long batchId);
/**
* 查询批次(合并相同工艺的任务)列表
*/
TableDataInfo<WmsBatchVo> queryPageList(WmsBatchBo bo, PageQuery pageQuery);
/**
* 查询批次(合并相同工艺的任务)列表
*/
List<WmsBatchVo> queryList(WmsBatchBo bo);
/**
* 新增批次(合并相同工艺的任务)
*/
Boolean insertByBo(WmsBatchBo bo);
/**
* 修改批次(合并相同工艺的任务)
*/
Boolean updateByBo(WmsBatchBo bo);
/**
* 校验并批量删除批次(合并相同工艺的任务)信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,48 @@
package com.klp.service;
import com.klp.domain.vo.WmsProcessTaskVo;
import com.klp.domain.bo.WmsProcessTaskBo;
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 2025-08-14
*/
public interface IWmsProcessTaskService {
/**
* 查询工艺任务(生产计划所需工艺任务)
*/
WmsProcessTaskVo queryById(Long taskId);
/**
* 查询工艺任务(生产计划所需工艺任务)列表
*/
TableDataInfo<WmsProcessTaskVo> queryPageList(WmsProcessTaskBo bo, PageQuery pageQuery);
/**
* 查询工艺任务(生产计划所需工艺任务)列表
*/
List<WmsProcessTaskVo> queryList(WmsProcessTaskBo bo);
/**
* 新增工艺任务(生产计划所需工艺任务)
*/
Boolean insertByBo(WmsProcessTaskBo bo);
/**
* 修改工艺任务(生产计划所需工艺任务)
*/
Boolean updateByBo(WmsProcessTaskBo bo);
/**
* 校验并批量删除工艺任务(生产计划所需工艺任务)信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,48 @@
package com.klp.service;
import com.klp.domain.vo.WmsProcesseVo;
import com.klp.domain.bo.WmsProcesseBo;
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 2025-08-14
*/
public interface IWmsProcesseService {
/**
* 查询工艺
*/
WmsProcesseVo queryById(Long processId);
/**
* 查询工艺列表
*/
TableDataInfo<WmsProcesseVo> queryPageList(WmsProcesseBo bo, PageQuery pageQuery);
/**
* 查询工艺列表
*/
List<WmsProcesseVo> queryList(WmsProcesseBo bo);
/**
* 新增工艺
*/
Boolean insertByBo(WmsProcesseBo bo);
/**
* 修改工艺
*/
Boolean updateByBo(WmsProcesseBo bo);
/**
* 校验并批量删除工艺信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,48 @@
package com.klp.service;
import com.klp.domain.vo.WmsProductProcesseVo;
import com.klp.domain.bo.WmsProductProcesseBo;
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 2025-08-14
*/
public interface IWmsProductProcesseService {
/**
* 查询产品生产工艺(预定义产品所需工艺)
*/
WmsProductProcesseVo queryById(Long ppId);
/**
* 查询产品生产工艺(预定义产品所需工艺)列表
*/
TableDataInfo<WmsProductProcesseVo> queryPageList(WmsProductProcesseBo bo, PageQuery pageQuery);
/**
* 查询产品生产工艺(预定义产品所需工艺)列表
*/
List<WmsProductProcesseVo> queryList(WmsProductProcesseBo bo);
/**
* 新增产品生产工艺(预定义产品所需工艺)
*/
Boolean insertByBo(WmsProductProcesseBo bo);
/**
* 修改产品生产工艺(预定义产品所需工艺)
*/
Boolean updateByBo(WmsProductProcesseBo 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 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;
}
}

View File

@@ -0,0 +1,25 @@
<?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.WmsBatchMapper">
<resultMap type="com.klp.domain.WmsBatch" id="WmsBatchResult">
<result property="batchId" column="batch_id"/>
<result property="batchNo" column="batch_no"/>
<result property="processId" column="process_id"/>
<result property="totalQuantity" column="total_quantity"/>
<result property="mergeSource" column="merge_source"/>
<result property="estimatedStartTime" column="estimated_start_time"/>
<result property="estimatedEndTime" column="estimated_end_time"/>
<result property="batchStatus" column="batch_status"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,23 @@
<?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.WmsProcessTaskMapper">
<resultMap type="com.klp.domain.WmsProcessTask" id="WmsProcessTaskResult">
<result property="taskId" column="task_id"/>
<result property="planId" column="plan_id"/>
<result property="processId" column="process_id"/>
<result property="productId" column="product_id"/>
<result property="taskQuantity" column="task_quantity"/>
<result property="taskStatus" column="task_status"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,23 @@
<?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.WmsProcesseMapper">
<resultMap type="com.klp.domain.WmsProcesse" id="WmsProcesseResult">
<result property="processId" column="process_id"/>
<result property="processCode" column="process_code"/>
<result property="processName" column="process_name"/>
<result property="outputProductId" column="output_product_id"/>
<result property="processDesc" column="process_desc"/>
<result property="standardTime" column="standard_time"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
</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.WmsProductProcesseMapper">
<resultMap type="com.klp.domain.WmsProductProcesse" id="WmsProductProcesseResult">
<result property="ppId" column="pp_id"/>
<result property="productId" column="product_id"/>
<result property="processId" column="process_id"/>
<result property="processSequence" column="process_sequence"/>
<result property="isRequired" column="is_required"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
</resultMap>
</mapper>