diff --git a/klp-wms/src/main/java/com/klp/controller/WmsBatchController.java b/klp-wms/src/main/java/com/klp/controller/WmsBatchController.java new file mode 100644 index 00000000..bbc1fb6f --- /dev/null +++ b/klp-wms/src/main/java/com/klp/controller/WmsBatchController.java @@ -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 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 list = iWmsBatchService.queryList(bo); + ExcelUtil.exportExcel(list, "批次(合并相同工艺的任务)", WmsBatchVo.class, response); + } + + /** + * 获取批次(合并相同工艺的任务)详细信息 + * + * @param batchId 主键 + */ + @GetMapping("/{batchId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long batchId) { + return R.ok(iWmsBatchService.queryById(batchId)); + } + + /** + * 新增批次(合并相同工艺的任务) + */ + @Log(title = "批次(合并相同工艺的任务)", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsBatchBo bo) { + return toAjax(iWmsBatchService.insertByBo(bo)); + } + + /** + * 修改批次(合并相同工艺的任务) + */ + @Log(title = "批次(合并相同工艺的任务)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsBatchBo bo) { + return toAjax(iWmsBatchService.updateByBo(bo)); + } + + /** + * 删除批次(合并相同工艺的任务) + * + * @param batchIds 主键串 + */ + @Log(title = "批次(合并相同工艺的任务)", businessType = BusinessType.DELETE) + @DeleteMapping("/{batchIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] batchIds) { + return toAjax(iWmsBatchService.deleteWithValidByIds(Arrays.asList(batchIds), true)); + } +} diff --git a/klp-wms/src/main/java/com/klp/controller/WmsProcessTaskController.java b/klp-wms/src/main/java/com/klp/controller/WmsProcessTaskController.java new file mode 100644 index 00000000..acd4ecef --- /dev/null +++ b/klp-wms/src/main/java/com/klp/controller/WmsProcessTaskController.java @@ -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 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 list = iWmsProcessTaskService.queryList(bo); + ExcelUtil.exportExcel(list, "工艺任务(生产计划所需工艺任务)", WmsProcessTaskVo.class, response); + } + + /** + * 获取工艺任务(生产计划所需工艺任务)详细信息 + * + * @param taskId 主键 + */ + @GetMapping("/{taskId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long taskId) { + return R.ok(iWmsProcessTaskService.queryById(taskId)); + } + + /** + * 新增工艺任务(生产计划所需工艺任务) + */ + @Log(title = "工艺任务(生产计划所需工艺任务)", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsProcessTaskBo bo) { + return toAjax(iWmsProcessTaskService.insertByBo(bo)); + } + + /** + * 修改工艺任务(生产计划所需工艺任务) + */ + @Log(title = "工艺任务(生产计划所需工艺任务)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsProcessTaskBo bo) { + return toAjax(iWmsProcessTaskService.updateByBo(bo)); + } + + /** + * 删除工艺任务(生产计划所需工艺任务) + * + * @param taskIds 主键串 + */ + @Log(title = "工艺任务(生产计划所需工艺任务)", businessType = BusinessType.DELETE) + @DeleteMapping("/{taskIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] taskIds) { + return toAjax(iWmsProcessTaskService.deleteWithValidByIds(Arrays.asList(taskIds), true)); + } +} diff --git a/klp-wms/src/main/java/com/klp/controller/WmsProcesseController.java b/klp-wms/src/main/java/com/klp/controller/WmsProcesseController.java new file mode 100644 index 00000000..9d49ca37 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/controller/WmsProcesseController.java @@ -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 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 list = iWmsProcesseService.queryList(bo); + ExcelUtil.exportExcel(list, "工艺", WmsProcesseVo.class, response); + } + + /** + * 获取工艺详细信息 + * + * @param processId 主键 + */ + @GetMapping("/{processId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long processId) { + return R.ok(iWmsProcesseService.queryById(processId)); + } + + /** + * 新增工艺 + */ + @Log(title = "工艺", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsProcesseBo bo) { + return toAjax(iWmsProcesseService.insertByBo(bo)); + } + + /** + * 修改工艺 + */ + @Log(title = "工艺", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsProcesseBo bo) { + return toAjax(iWmsProcesseService.updateByBo(bo)); + } + + /** + * 删除工艺 + * + * @param processIds 主键串 + */ + @Log(title = "工艺", businessType = BusinessType.DELETE) + @DeleteMapping("/{processIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] processIds) { + return toAjax(iWmsProcesseService.deleteWithValidByIds(Arrays.asList(processIds), true)); + } +} diff --git a/klp-wms/src/main/java/com/klp/controller/WmsProductProcesseController.java b/klp-wms/src/main/java/com/klp/controller/WmsProductProcesseController.java new file mode 100644 index 00000000..e0ee2481 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/controller/WmsProductProcesseController.java @@ -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 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 list = iWmsProductProcesseService.queryList(bo); + ExcelUtil.exportExcel(list, "产品生产工艺(预定义产品所需工艺)", WmsProductProcesseVo.class, response); + } + + /** + * 获取产品生产工艺(预定义产品所需工艺)详细信息 + * + * @param ppId 主键 + */ + @GetMapping("/{ppId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long ppId) { + return R.ok(iWmsProductProcesseService.queryById(ppId)); + } + + /** + * 新增产品生产工艺(预定义产品所需工艺) + */ + @Log(title = "产品生产工艺(预定义产品所需工艺)", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsProductProcesseBo bo) { + return toAjax(iWmsProductProcesseService.insertByBo(bo)); + } + + /** + * 修改产品生产工艺(预定义产品所需工艺) + */ + @Log(title = "产品生产工艺(预定义产品所需工艺)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsProductProcesseBo bo) { + return toAjax(iWmsProductProcesseService.updateByBo(bo)); + } + + /** + * 删除产品生产工艺(预定义产品所需工艺) + * + * @param ppIds 主键串 + */ + @Log(title = "产品生产工艺(预定义产品所需工艺)", businessType = BusinessType.DELETE) + @DeleteMapping("/{ppIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ppIds) { + return toAjax(iWmsProductProcesseService.deleteWithValidByIds(Arrays.asList(ppIds), true)); + } +} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsBatch.java b/klp-wms/src/main/java/com/klp/domain/WmsBatch.java new file mode 100644 index 00000000..703615a8 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/WmsBatch.java @@ -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; + +} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsProcessTask.java b/klp-wms/src/main/java/com/klp/domain/WmsProcessTask.java new file mode 100644 index 00000000..34ce71e3 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/WmsProcessTask.java @@ -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; + +} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsProcesse.java b/klp-wms/src/main/java/com/klp/domain/WmsProcesse.java new file mode 100644 index 00000000..e6c485e9 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/WmsProcesse.java @@ -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; + +} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsProductProcesse.java b/klp-wms/src/main/java/com/klp/domain/WmsProductProcesse.java new file mode 100644 index 00000000..6c6adb69 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/WmsProductProcesse.java @@ -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; + +} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsBatchBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsBatchBo.java new file mode 100644 index 00000000..946efe46 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsBatchBo.java @@ -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; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsProcessTaskBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsProcessTaskBo.java new file mode 100644 index 00000000..8d21f4ca --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsProcessTaskBo.java @@ -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; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsProcesseBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsProcesseBo.java new file mode 100644 index 00000000..f58d4c49 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsProcesseBo.java @@ -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; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsProductProcesseBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsProductProcesseBo.java new file mode 100644 index 00000000..669fbad2 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsProductProcesseBo.java @@ -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; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsBatchVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsBatchVo.java new file mode 100644 index 00000000..7a2a3f80 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsBatchVo.java @@ -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; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsProcessTaskVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsProcessTaskVo.java new file mode 100644 index 00000000..ad40bda1 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsProcessTaskVo.java @@ -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; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsProcesseVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsProcesseVo.java new file mode 100644 index 00000000..03019508 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsProcesseVo.java @@ -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; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsProductProcesseVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsProductProcesseVo.java new file mode 100644 index 00000000..89c6dcef --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsProductProcesseVo.java @@ -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; + + +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsBatchMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsBatchMapper.java new file mode 100644 index 00000000..120d137b --- /dev/null +++ b/klp-wms/src/main/java/com/klp/mapper/WmsBatchMapper.java @@ -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 { + +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsProcessTaskMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsProcessTaskMapper.java new file mode 100644 index 00000000..ce8c29c0 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/mapper/WmsProcessTaskMapper.java @@ -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 { + +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsProcesseMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsProcesseMapper.java new file mode 100644 index 00000000..9903347e --- /dev/null +++ b/klp-wms/src/main/java/com/klp/mapper/WmsProcesseMapper.java @@ -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 { + +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsProductProcesseMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsProductProcesseMapper.java new file mode 100644 index 00000000..01352996 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/mapper/WmsProductProcesseMapper.java @@ -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 { + +} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsBatchService.java b/klp-wms/src/main/java/com/klp/service/IWmsBatchService.java new file mode 100644 index 00000000..838d251e --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/IWmsBatchService.java @@ -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 queryPageList(WmsBatchBo bo, PageQuery pageQuery); + + /** + * 查询批次(合并相同工艺的任务)列表 + */ + List queryList(WmsBatchBo bo); + + /** + * 新增批次(合并相同工艺的任务) + */ + Boolean insertByBo(WmsBatchBo bo); + + /** + * 修改批次(合并相同工艺的任务) + */ + Boolean updateByBo(WmsBatchBo bo); + + /** + * 校验并批量删除批次(合并相同工艺的任务)信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsProcessTaskService.java b/klp-wms/src/main/java/com/klp/service/IWmsProcessTaskService.java new file mode 100644 index 00000000..cce45a30 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/IWmsProcessTaskService.java @@ -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 queryPageList(WmsProcessTaskBo bo, PageQuery pageQuery); + + /** + * 查询工艺任务(生产计划所需工艺任务)列表 + */ + List queryList(WmsProcessTaskBo bo); + + /** + * 新增工艺任务(生产计划所需工艺任务) + */ + Boolean insertByBo(WmsProcessTaskBo bo); + + /** + * 修改工艺任务(生产计划所需工艺任务) + */ + Boolean updateByBo(WmsProcessTaskBo bo); + + /** + * 校验并批量删除工艺任务(生产计划所需工艺任务)信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsProcesseService.java b/klp-wms/src/main/java/com/klp/service/IWmsProcesseService.java new file mode 100644 index 00000000..a8f58572 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/IWmsProcesseService.java @@ -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 queryPageList(WmsProcesseBo bo, PageQuery pageQuery); + + /** + * 查询工艺列表 + */ + List queryList(WmsProcesseBo bo); + + /** + * 新增工艺 + */ + Boolean insertByBo(WmsProcesseBo bo); + + /** + * 修改工艺 + */ + Boolean updateByBo(WmsProcesseBo bo); + + /** + * 校验并批量删除工艺信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsProductProcesseService.java b/klp-wms/src/main/java/com/klp/service/IWmsProductProcesseService.java new file mode 100644 index 00000000..19ac4e1f --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/IWmsProductProcesseService.java @@ -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 queryPageList(WmsProductProcesseBo bo, PageQuery pageQuery); + + /** + * 查询产品生产工艺(预定义产品所需工艺)列表 + */ + List queryList(WmsProductProcesseBo bo); + + /** + * 新增产品生产工艺(预定义产品所需工艺) + */ + Boolean insertByBo(WmsProductProcesseBo bo); + + /** + * 修改产品生产工艺(预定义产品所需工艺) + */ + Boolean updateByBo(WmsProductProcesseBo bo); + + /** + * 校验并批量删除产品生产工艺(预定义产品所需工艺)信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsBatchServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsBatchServiceImpl.java new file mode 100644 index 00000000..ea8ad374 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsBatchServiceImpl.java @@ -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 queryPageList(WmsBatchBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询批次(合并相同工艺的任务)列表 + */ + @Override + public List queryList(WmsBatchBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsBatchBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsProcessTaskServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsProcessTaskServiceImpl.java new file mode 100644 index 00000000..05a77616 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsProcessTaskServiceImpl.java @@ -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 queryPageList(WmsProcessTaskBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询工艺任务(生产计划所需工艺任务)列表 + */ + @Override + public List queryList(WmsProcessTaskBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsProcessTaskBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsProcesseServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsProcesseServiceImpl.java new file mode 100644 index 00000000..d00230d2 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsProcesseServiceImpl.java @@ -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 queryPageList(WmsProcesseBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询工艺列表 + */ + @Override + public List queryList(WmsProcesseBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsProcesseBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsProductProcesseServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsProductProcesseServiceImpl.java new file mode 100644 index 00000000..0981225d --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsProductProcesseServiceImpl.java @@ -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 queryPageList(WmsProductProcesseBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询产品生产工艺(预定义产品所需工艺)列表 + */ + @Override + public List queryList(WmsProductProcesseBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsProductProcesseBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-wms/src/main/resources/mapper/klp/WmsBatchMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsBatchMapper.xml new file mode 100644 index 00000000..4b36199e --- /dev/null +++ b/klp-wms/src/main/resources/mapper/klp/WmsBatchMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-wms/src/main/resources/mapper/klp/WmsProcessTaskMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsProcessTaskMapper.xml new file mode 100644 index 00000000..aa46a6f5 --- /dev/null +++ b/klp-wms/src/main/resources/mapper/klp/WmsProcessTaskMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-wms/src/main/resources/mapper/klp/WmsProcesseMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsProcesseMapper.xml new file mode 100644 index 00000000..7c7fe373 --- /dev/null +++ b/klp-wms/src/main/resources/mapper/klp/WmsProcesseMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-wms/src/main/resources/mapper/klp/WmsProductProcesseMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsProductProcesseMapper.xml new file mode 100644 index 00000000..8412e9c9 --- /dev/null +++ b/klp-wms/src/main/resources/mapper/klp/WmsProductProcesseMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + +