From 6436d56ab80bf2e8cac2a1687ee913aa38c15a76 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 22 Jun 2026 16:38:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(flow):=20=E6=B7=BB=E5=8A=A0=E7=9B=98?= =?UTF-8?q?=E5=BA=93=E7=AE=A1=E7=90=86=E7=9B=B8=E5=85=B3=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=E5=92=8C=E6=9C=8D=E5=8A=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建盘库差异记录实体类InvCountDiscrepancy及对应的BO、VO - 创建盘库计划主实体类InvCountPlan及对应的BO、VO - 创建盘库计划-库区关联实体类InvCountPlanWarehouse及对应的BO、VO - 实现盘库差异记录的增删改查服务接口IInvCountDiscrepancyService - 实现盘库计划主的增删改查服务接口IInvCountPlanService - 实现盘库计划-库区关联的服务接口IInvCountPlanWarehouseService - 添加对应的控制器InvCountDiscrepancyController和InvCountPlanController - 创建相应的数据库映射文件和XML配置 - 实现服务接口的具体业务逻辑实现类 --- .../InvCountDiscrepancyController.java | 99 ++++++++++++ .../controller/InvCountPlanController.java | 99 ++++++++++++ .../InvCountPlanWarehouseController.java | 99 ++++++++++++ .../klp/flow/domain/InvCountDiscrepancy.java | 91 +++++++++++ .../com/klp/flow/domain/InvCountPlan.java | 87 +++++++++++ .../flow/domain/InvCountPlanWarehouse.java | 104 +++++++++++++ .../flow/domain/bo/InvCountDiscrepancyBo.java | 98 ++++++++++++ .../klp/flow/domain/bo/InvCountPlanBo.java | 93 ++++++++++++ .../domain/bo/InvCountPlanWarehouseBo.java | 114 ++++++++++++++ .../flow/domain/vo/InvCountDiscrepancyVo.java | 116 ++++++++++++++ .../klp/flow/domain/vo/InvCountPlanVo.java | 112 ++++++++++++++ .../domain/vo/InvCountPlanWarehouseVo.java | 141 ++++++++++++++++++ .../mapper/InvCountDiscrepancyMapper.java | 15 ++ .../klp/flow/mapper/InvCountPlanMapper.java | 15 ++ .../mapper/InvCountPlanWarehouseMapper.java | 15 ++ .../service/IInvCountDiscrepancyService.java | 49 ++++++ .../flow/service/IInvCountPlanService.java | 49 ++++++ .../IInvCountPlanWarehouseService.java | 49 ++++++ .../impl/InvCountDiscrepancyServiceImpl.java | 121 +++++++++++++++ .../service/impl/InvCountPlanServiceImpl.java | 120 +++++++++++++++ .../InvCountPlanWarehouseServiceImpl.java | 124 +++++++++++++++ .../mapper/flow/InvCountDiscrepancyMapper.xml | 31 ++++ .../mapper/flow/InvCountPlanMapper.xml | 30 ++++ .../flow/InvCountPlanWarehouseMapper.xml | 34 +++++ 24 files changed, 1905 insertions(+) create mode 100644 klp-flow/src/main/java/com/klp/flow/controller/InvCountDiscrepancyController.java create mode 100644 klp-flow/src/main/java/com/klp/flow/controller/InvCountPlanController.java create mode 100644 klp-flow/src/main/java/com/klp/flow/controller/InvCountPlanWarehouseController.java create mode 100644 klp-flow/src/main/java/com/klp/flow/domain/InvCountDiscrepancy.java create mode 100644 klp-flow/src/main/java/com/klp/flow/domain/InvCountPlan.java create mode 100644 klp-flow/src/main/java/com/klp/flow/domain/InvCountPlanWarehouse.java create mode 100644 klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountDiscrepancyBo.java create mode 100644 klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountPlanBo.java create mode 100644 klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountPlanWarehouseBo.java create mode 100644 klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountDiscrepancyVo.java create mode 100644 klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountPlanVo.java create mode 100644 klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountPlanWarehouseVo.java create mode 100644 klp-flow/src/main/java/com/klp/flow/mapper/InvCountDiscrepancyMapper.java create mode 100644 klp-flow/src/main/java/com/klp/flow/mapper/InvCountPlanMapper.java create mode 100644 klp-flow/src/main/java/com/klp/flow/mapper/InvCountPlanWarehouseMapper.java create mode 100644 klp-flow/src/main/java/com/klp/flow/service/IInvCountDiscrepancyService.java create mode 100644 klp-flow/src/main/java/com/klp/flow/service/IInvCountPlanService.java create mode 100644 klp-flow/src/main/java/com/klp/flow/service/IInvCountPlanWarehouseService.java create mode 100644 klp-flow/src/main/java/com/klp/flow/service/impl/InvCountDiscrepancyServiceImpl.java create mode 100644 klp-flow/src/main/java/com/klp/flow/service/impl/InvCountPlanServiceImpl.java create mode 100644 klp-flow/src/main/java/com/klp/flow/service/impl/InvCountPlanWarehouseServiceImpl.java create mode 100644 klp-flow/src/main/resources/mapper/flow/InvCountDiscrepancyMapper.xml create mode 100644 klp-flow/src/main/resources/mapper/flow/InvCountPlanMapper.xml create mode 100644 klp-flow/src/main/resources/mapper/flow/InvCountPlanWarehouseMapper.xml diff --git a/klp-flow/src/main/java/com/klp/flow/controller/InvCountDiscrepancyController.java b/klp-flow/src/main/java/com/klp/flow/controller/InvCountDiscrepancyController.java new file mode 100644 index 00000000..2f4df45a --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/controller/InvCountDiscrepancyController.java @@ -0,0 +1,99 @@ +package com.klp.flow.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.flow.domain.vo.InvCountDiscrepancyVo; +import com.klp.flow.domain.bo.InvCountDiscrepancyBo; +import com.klp.flow.service.IInvCountDiscrepancyService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 盘库差异记录 + * + * @author klp + * @date 2026-06-22 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/flow/countDiscrepancy") +public class InvCountDiscrepancyController extends BaseController { + + private final IInvCountDiscrepancyService iInvCountDiscrepancyService; + + /** + * 查询盘库差异记录列表 + */ + @GetMapping("/list") + public TableDataInfo list(InvCountDiscrepancyBo bo, PageQuery pageQuery) { + return iInvCountDiscrepancyService.queryPageList(bo, pageQuery); + } + + /** + * 导出盘库差异记录列表 + */ + @Log(title = "盘库差异记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(InvCountDiscrepancyBo bo, HttpServletResponse response) { + List list = iInvCountDiscrepancyService.queryList(bo); + ExcelUtil.exportExcel(list, "盘库差异记录", InvCountDiscrepancyVo.class, response); + } + + /** + * 获取盘库差异记录详细信息 + * + * @param discrepancyId 主键 + */ + @GetMapping("/{discrepancyId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long discrepancyId) { + return R.ok(iInvCountDiscrepancyService.queryById(discrepancyId)); + } + + /** + * 新增盘库差异记录 + */ + @Log(title = "盘库差异记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody InvCountDiscrepancyBo bo) { + return toAjax(iInvCountDiscrepancyService.insertByBo(bo)); + } + + /** + * 修改盘库差异记录 + */ + @Log(title = "盘库差异记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody InvCountDiscrepancyBo bo) { + return toAjax(iInvCountDiscrepancyService.updateByBo(bo)); + } + + /** + * 删除盘库差异记录 + * + * @param discrepancyIds 主键串 + */ + @Log(title = "盘库差异记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{discrepancyIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] discrepancyIds) { + return toAjax(iInvCountDiscrepancyService.deleteWithValidByIds(Arrays.asList(discrepancyIds), true)); + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/controller/InvCountPlanController.java b/klp-flow/src/main/java/com/klp/flow/controller/InvCountPlanController.java new file mode 100644 index 00000000..4dcf558d --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/controller/InvCountPlanController.java @@ -0,0 +1,99 @@ +package com.klp.flow.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.flow.domain.vo.InvCountPlanVo; +import com.klp.flow.domain.bo.InvCountPlanBo; +import com.klp.flow.service.IInvCountPlanService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 盘库计划主 + * + * @author klp + * @date 2026-06-22 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/flow/countPlan") +public class InvCountPlanController extends BaseController { + + private final IInvCountPlanService iInvCountPlanService; + + /** + * 查询盘库计划主列表 + */ + @GetMapping("/list") + public TableDataInfo list(InvCountPlanBo bo, PageQuery pageQuery) { + return iInvCountPlanService.queryPageList(bo, pageQuery); + } + + /** + * 导出盘库计划主列表 + */ + @Log(title = "盘库计划主", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(InvCountPlanBo bo, HttpServletResponse response) { + List list = iInvCountPlanService.queryList(bo); + ExcelUtil.exportExcel(list, "盘库计划主", InvCountPlanVo.class, response); + } + + /** + * 获取盘库计划主详细信息 + * + * @param planId 主键 + */ + @GetMapping("/{planId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long planId) { + return R.ok(iInvCountPlanService.queryById(planId)); + } + + /** + * 新增盘库计划主 + */ + @Log(title = "盘库计划主", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody InvCountPlanBo bo) { + return toAjax(iInvCountPlanService.insertByBo(bo)); + } + + /** + * 修改盘库计划主 + */ + @Log(title = "盘库计划主", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody InvCountPlanBo bo) { + return toAjax(iInvCountPlanService.updateByBo(bo)); + } + + /** + * 删除盘库计划主 + * + * @param planIds 主键串 + */ + @Log(title = "盘库计划主", businessType = BusinessType.DELETE) + @DeleteMapping("/{planIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] planIds) { + return toAjax(iInvCountPlanService.deleteWithValidByIds(Arrays.asList(planIds), true)); + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/controller/InvCountPlanWarehouseController.java b/klp-flow/src/main/java/com/klp/flow/controller/InvCountPlanWarehouseController.java new file mode 100644 index 00000000..96a3469f --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/controller/InvCountPlanWarehouseController.java @@ -0,0 +1,99 @@ +package com.klp.flow.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.flow.domain.vo.InvCountPlanWarehouseVo; +import com.klp.flow.domain.bo.InvCountPlanWarehouseBo; +import com.klp.flow.service.IInvCountPlanWarehouseService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 盘库计划-库区关联 + * + * @author klp + * @date 2026-06-22 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/flow/countPlanWarehouse") +public class InvCountPlanWarehouseController extends BaseController { + + private final IInvCountPlanWarehouseService iInvCountPlanWarehouseService; + + /** + * 查询盘库计划-库区关联列表 + */ + @GetMapping("/list") + public TableDataInfo list(InvCountPlanWarehouseBo bo, PageQuery pageQuery) { + return iInvCountPlanWarehouseService.queryPageList(bo, pageQuery); + } + + /** + * 导出盘库计划-库区关联列表 + */ + @Log(title = "盘库计划-库区关联", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(InvCountPlanWarehouseBo bo, HttpServletResponse response) { + List list = iInvCountPlanWarehouseService.queryList(bo); + ExcelUtil.exportExcel(list, "盘库计划-库区关联", InvCountPlanWarehouseVo.class, response); + } + + /** + * 获取盘库计划-库区关联详细信息 + * + * @param relId 主键 + */ + @GetMapping("/{relId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long relId) { + return R.ok(iInvCountPlanWarehouseService.queryById(relId)); + } + + /** + * 新增盘库计划-库区关联 + */ + @Log(title = "盘库计划-库区关联", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody InvCountPlanWarehouseBo bo) { + return toAjax(iInvCountPlanWarehouseService.insertByBo(bo)); + } + + /** + * 修改盘库计划-库区关联 + */ + @Log(title = "盘库计划-库区关联", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody InvCountPlanWarehouseBo bo) { + return toAjax(iInvCountPlanWarehouseService.updateByBo(bo)); + } + + /** + * 删除盘库计划-库区关联 + * + * @param relIds 主键串 + */ + @Log(title = "盘库计划-库区关联", businessType = BusinessType.DELETE) + @DeleteMapping("/{relIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] relIds) { + return toAjax(iInvCountPlanWarehouseService.deleteWithValidByIds(Arrays.asList(relIds), true)); + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/InvCountDiscrepancy.java b/klp-flow/src/main/java/com/klp/flow/domain/InvCountDiscrepancy.java new file mode 100644 index 00000000..ec93551c --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/InvCountDiscrepancy.java @@ -0,0 +1,91 @@ +package com.klp.flow.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 盘库差异记录对象 inv_count_discrepancy + * + * @author klp + * @date 2026-06-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("inv_count_discrepancy") +public class InvCountDiscrepancy extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键ID + */ + @TableId(value = "discrepancy_id") + private Long discrepancyId; + /** + * 盘库计划明细ID + */ + private Long relId; + /** + * 差异类型:1=盘盈, 2=盘亏, 3=状态不符, 4=重量偏差 + */ + private Integer discrepancyType; + /** + * 钢卷ID + */ + private Long coilId; + /** + * 钢卷号 + */ + private String enterCoilNo; + /** + * 差异详情(JSON:含系统值、实盘值对比) + */ + private String discrepancyDetail; + /** + * 原因分析 + */ + private String reasonAnalysis; + /** + * 处理建议 + */ + private String processSuggestion; + /** + * 处理结果 + */ + private String processResult; + /** + * 处理状态:0=待处理, 1=处理中, 2=已处理 + */ + private Integer processStatus; + /** + * 处理人ID + */ + private Long processUserId; + /** + * 处理人姓名 + */ + private String processUserName; + /** + * 处理时间 + */ + private Date processTime; + /** + * 附件文件名称集合,多文件逗号分隔,前端展示 + */ + private String attachFile; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/InvCountPlan.java b/klp-flow/src/main/java/com/klp/flow/domain/InvCountPlan.java new file mode 100644 index 00000000..af9ad423 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/InvCountPlan.java @@ -0,0 +1,87 @@ +package com.klp.flow.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 盘库计划主对象 inv_count_plan + * + * @author klp + * @date 2026-06-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("inv_count_plan") +public class InvCountPlan extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键ID + */ + @TableId(value = "plan_id") + private Long planId; + /** + * 盘库计划编号(如 PD-20260622-001) + */ + private String planCode; + /** + * 盘库计划名称 + */ + private String planName; + /** + * 盘库日期 + */ + private Date countDate; + /** + * 截止时间 + */ + private Date deadlineTime; + /** + * 盘点人ID + */ + private Long countUserId; + /** + * 盘点人姓名 + */ + private String countUserName; + /** + * 负责人ID + */ + private Long principalUserId; + /** + * 负责人姓名 + */ + private String principalUserName; + /** + * 参与人员ID列表(逗号分隔) + */ + private String participantIds; + /** + * 参与人员姓名列表(逗号分隔) + */ + private String participantNames; + /** + * 计划状态:0=草稿, 1=待审批, 2=执行中, 3=差异处理中, 4=已归档 + */ + private Integer planStatus; + /** + * 附件文件名称集合,多文件逗号分隔,前端展示 + */ + private String attachFile; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/InvCountPlanWarehouse.java b/klp-flow/src/main/java/com/klp/flow/domain/InvCountPlanWarehouse.java new file mode 100644 index 00000000..df24e352 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/InvCountPlanWarehouse.java @@ -0,0 +1,104 @@ +package com.klp.flow.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 盘库计划-库区关联对象 inv_count_plan_warehouse + * + * @author klp + * @date 2026-06-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("inv_count_plan_warehouse") +public class InvCountPlanWarehouse extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键ID + */ + @TableId(value = "rel_id") + private Long relId; + /** + * 盘库计划ID + */ + private Long planId; + /** + * 逻辑库区ID + */ + private Long warehouseId; + /** + * 逻辑库区名称(冗余) + */ + private String warehouseName; + /** + * 实际库区ID + */ + private Long actualWarehouseId; + /** + * 实际库区名称(冗余) + */ + private String actualWarehouseName; + /** + * 系统钢卷数量 + */ + private Long systemCoilCount; + /** + * 系统总重量(kg) + */ + private BigDecimal systemTotalWeight; + /** + * 实际盘点数量 + */ + private Long actualCoilCount; + /** + * 实际盘点总重量(kg) + */ + private BigDecimal actualTotalWeight; + /** + * 是否账实一致(0=不一致, 1=一致, NULL=未盘点) + */ + private Integer isConsistent; + /** + * 出入库记录查询起始时间 + */ + private Date ioStartTime; + /** + * 出入库记录查询截止时间 + */ + private Date ioEndTime; + /** + * 出入库记录快照(JSON) + */ + private String snapshotIoRecord; + /** + * 逻辑库区钢卷明细快照(JSON) + */ + private String snapshotCoilLogic; + /** + * 实际库区钢卷明细快照(JSON) + */ + private String snapshotCoilActual; + /** + * 钢卷数量统计快照(JSON) + */ + private String snapshotCoilStats; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountDiscrepancyBo.java b/klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountDiscrepancyBo.java new file mode 100644 index 00000000..142085a8 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountDiscrepancyBo.java @@ -0,0 +1,98 @@ +package com.klp.flow.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 盘库差异记录业务对象 inv_count_discrepancy + * + * @author klp + * @date 2026-06-22 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class InvCountDiscrepancyBo extends BaseEntity { + + /** + * 主键ID + */ + private Long discrepancyId; + + /** + * 盘库计划明细ID + */ + private Long relId; + + /** + * 差异类型:1=盘盈, 2=盘亏, 3=状态不符, 4=重量偏差 + */ + private Integer discrepancyType; + + /** + * 钢卷ID + */ + private Long coilId; + + /** + * 钢卷号 + */ + private String enterCoilNo; + + /** + * 差异详情(JSON:含系统值、实盘值对比) + */ + private String discrepancyDetail; + + /** + * 原因分析 + */ + private String reasonAnalysis; + + /** + * 处理建议 + */ + private String processSuggestion; + + /** + * 处理结果 + */ + private String processResult; + + /** + * 处理状态:0=待处理, 1=处理中, 2=已处理 + */ + private Integer processStatus; + + /** + * 处理人ID + */ + private Long processUserId; + + /** + * 处理人姓名 + */ + private String processUserName; + + /** + * 处理时间 + */ + private Date processTime; + + /** + * 附件文件名称集合,多文件逗号分隔,前端展示 + */ + private String attachFile; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountPlanBo.java b/klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountPlanBo.java new file mode 100644 index 00000000..ce8bf1a3 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountPlanBo.java @@ -0,0 +1,93 @@ +package com.klp.flow.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 盘库计划主业务对象 inv_count_plan + * + * @author klp + * @date 2026-06-22 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class InvCountPlanBo extends BaseEntity { + + /** + * 主键ID + */ + private Long planId; + + /** + * 盘库计划编号(如 PD-20260622-001) + */ + private String planCode; + + /** + * 盘库计划名称 + */ + private String planName; + + /** + * 盘库日期 + */ + private Date countDate; + + /** + * 截止时间 + */ + private Date deadlineTime; + + /** + * 盘点人ID + */ + private Long countUserId; + + /** + * 盘点人姓名 + */ + private String countUserName; + + /** + * 负责人ID + */ + private Long principalUserId; + + /** + * 负责人姓名 + */ + private String principalUserName; + + /** + * 参与人员ID列表(逗号分隔) + */ + private String participantIds; + + /** + * 参与人员姓名列表(逗号分隔) + */ + private String participantNames; + + /** + * 计划状态:0=草稿, 1=待审批, 2=执行中, 3=差异处理中, 4=已归档 + */ + private Integer planStatus; + + /** + * 附件文件名称集合,多文件逗号分隔,前端展示 + */ + private String attachFile; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountPlanWarehouseBo.java b/klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountPlanWarehouseBo.java new file mode 100644 index 00000000..ac6fbd5d --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/bo/InvCountPlanWarehouseBo.java @@ -0,0 +1,114 @@ +package com.klp.flow.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 盘库计划-库区关联业务对象 inv_count_plan_warehouse + * + * @author klp + * @date 2026-06-22 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class InvCountPlanWarehouseBo extends BaseEntity { + + /** + * 主键ID + */ + private Long relId; + + /** + * 盘库计划ID + */ + private Long planId; + + /** + * 逻辑库区ID + */ + private Long warehouseId; + + /** + * 逻辑库区名称(冗余) + */ + private String warehouseName; + + /** + * 实际库区ID + */ + private Long actualWarehouseId; + + /** + * 实际库区名称(冗余) + */ + private String actualWarehouseName; + + /** + * 系统钢卷数量 + */ + private Long systemCoilCount; + + /** + * 系统总重量(kg) + */ + private BigDecimal systemTotalWeight; + + /** + * 实际盘点数量 + */ + private Long actualCoilCount; + + /** + * 实际盘点总重量(kg) + */ + private BigDecimal actualTotalWeight; + + /** + * 是否账实一致(0=不一致, 1=一致, NULL=未盘点) + */ + private Integer isConsistent; + + /** + * 出入库记录查询起始时间 + */ + private Date ioStartTime; + + /** + * 出入库记录查询截止时间 + */ + private Date ioEndTime; + + /** + * 出入库记录快照(JSON) + */ + private String snapshotIoRecord; + + /** + * 逻辑库区钢卷明细快照(JSON) + */ + private String snapshotCoilLogic; + + /** + * 实际库区钢卷明细快照(JSON) + */ + private String snapshotCoilActual; + + /** + * 钢卷数量统计快照(JSON) + */ + private String snapshotCoilStats; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountDiscrepancyVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountDiscrepancyVo.java new file mode 100644 index 00000000..235a8801 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountDiscrepancyVo.java @@ -0,0 +1,116 @@ +package com.klp.flow.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; + + +/** + * 盘库差异记录视图对象 inv_count_discrepancy + * + * @author klp + * @date 2026-06-22 + */ +@Data +@ExcelIgnoreUnannotated +public class InvCountDiscrepancyVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long discrepancyId; + + /** + * 盘库计划明细ID + */ + @ExcelProperty(value = "盘库计划明细ID") + private Long relId; + + /** + * 差异类型:1=盘盈, 2=盘亏, 3=状态不符, 4=重量偏差 + */ + @ExcelProperty(value = "差异类型:1=盘盈, 2=盘亏, 3=状态不符, 4=重量偏差") + private Integer discrepancyType; + + /** + * 钢卷ID + */ + @ExcelProperty(value = "钢卷ID") + private Long coilId; + + /** + * 钢卷号 + */ + @ExcelProperty(value = "钢卷号") + private String enterCoilNo; + + /** + * 差异详情(JSON:含系统值、实盘值对比) + */ + @ExcelProperty(value = "差异详情", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "J=SON:含系统值、实盘值对比") + private String discrepancyDetail; + + /** + * 原因分析 + */ + @ExcelProperty(value = "原因分析") + private String reasonAnalysis; + + /** + * 处理建议 + */ + @ExcelProperty(value = "处理建议") + private String processSuggestion; + + /** + * 处理结果 + */ + @ExcelProperty(value = "处理结果") + private String processResult; + + /** + * 处理状态:0=待处理, 1=处理中, 2=已处理 + */ + @ExcelProperty(value = "处理状态:0=待处理, 1=处理中, 2=已处理") + private Integer processStatus; + + /** + * 处理人ID + */ + @ExcelProperty(value = "处理人ID") + private Long processUserId; + + /** + * 处理人姓名 + */ + @ExcelProperty(value = "处理人姓名") + private String processUserName; + + /** + * 处理时间 + */ + @ExcelProperty(value = "处理时间") + private Date processTime; + + /** + * 附件文件名称集合,多文件逗号分隔,前端展示 + */ + @ExcelProperty(value = "附件文件名称集合,多文件逗号分隔,前端展示") + private String attachFile; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountPlanVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountPlanVo.java new file mode 100644 index 00000000..e4f417df --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountPlanVo.java @@ -0,0 +1,112 @@ +package com.klp.flow.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; + + +/** + * 盘库计划主视图对象 inv_count_plan + * + * @author klp + * @date 2026-06-22 + */ +@Data +@ExcelIgnoreUnannotated +public class InvCountPlanVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long planId; + + /** + * 盘库计划编号(如 PD-20260622-001) + */ + @ExcelProperty(value = "盘库计划编号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=,P=D-20260622-001") + private String planCode; + + /** + * 盘库计划名称 + */ + @ExcelProperty(value = "盘库计划名称") + private String planName; + + /** + * 盘库日期 + */ + @ExcelProperty(value = "盘库日期") + private Date countDate; + + /** + * 截止时间 + */ + @ExcelProperty(value = "截止时间") + private Date deadlineTime; + + /** + * 盘点人ID + */ + @ExcelProperty(value = "盘点人ID") + private Long countUserId; + + /** + * 盘点人姓名 + */ + @ExcelProperty(value = "盘点人姓名") + private String countUserName; + + /** + * 负责人ID + */ + @ExcelProperty(value = "负责人ID") + private Long principalUserId; + + /** + * 负责人姓名 + */ + @ExcelProperty(value = "负责人姓名") + private String principalUserName; + + /** + * 参与人员ID列表(逗号分隔) + */ + @ExcelProperty(value = "参与人员ID列表", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "逗=号分隔") + private String participantIds; + + /** + * 参与人员姓名列表(逗号分隔) + */ + @ExcelProperty(value = "参与人员姓名列表", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "逗=号分隔") + private String participantNames; + + /** + * 计划状态:0=草稿, 1=待审批, 2=执行中, 3=差异处理中, 4=已归档 + */ + @ExcelProperty(value = "计划状态:0=草稿, 1=待审批, 2=执行中, 3=差异处理中, 4=已归档") + private Integer planStatus; + + /** + * 附件文件名称集合,多文件逗号分隔,前端展示 + */ + @ExcelProperty(value = "附件文件名称集合,多文件逗号分隔,前端展示") + private String attachFile; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountPlanWarehouseVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountPlanWarehouseVo.java new file mode 100644 index 00000000..4c659676 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/InvCountPlanWarehouseVo.java @@ -0,0 +1,141 @@ +package com.klp.flow.domain.vo; + +import java.math.BigDecimal; +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; + + +/** + * 盘库计划-库区关联视图对象 inv_count_plan_warehouse + * + * @author klp + * @date 2026-06-22 + */ +@Data +@ExcelIgnoreUnannotated +public class InvCountPlanWarehouseVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long relId; + + /** + * 盘库计划ID + */ + @ExcelProperty(value = "盘库计划ID") + private Long planId; + + /** + * 逻辑库区ID + */ + @ExcelProperty(value = "逻辑库区ID") + private Long warehouseId; + + /** + * 逻辑库区名称(冗余) + */ + @ExcelProperty(value = "逻辑库区名称", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "冗=余") + private String warehouseName; + + /** + * 实际库区ID + */ + @ExcelProperty(value = "实际库区ID") + private Long actualWarehouseId; + + /** + * 实际库区名称(冗余) + */ + @ExcelProperty(value = "实际库区名称", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "冗=余") + private String actualWarehouseName; + + /** + * 系统钢卷数量 + */ + @ExcelProperty(value = "系统钢卷数量") + private Long systemCoilCount; + + /** + * 系统总重量(kg) + */ + @ExcelProperty(value = "系统总重量(kg)") + private BigDecimal systemTotalWeight; + + /** + * 实际盘点数量 + */ + @ExcelProperty(value = "实际盘点数量") + private Long actualCoilCount; + + /** + * 实际盘点总重量(kg) + */ + @ExcelProperty(value = "实际盘点总重量(kg)") + private BigDecimal actualTotalWeight; + + /** + * 是否账实一致(0=不一致, 1=一致, NULL=未盘点) + */ + @ExcelProperty(value = "是否账实一致", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0==不一致,,1==一致,,N=ULL=未盘点") + private Integer isConsistent; + + /** + * 出入库记录查询起始时间 + */ + @ExcelProperty(value = "出入库记录查询起始时间") + private Date ioStartTime; + + /** + * 出入库记录查询截止时间 + */ + @ExcelProperty(value = "出入库记录查询截止时间") + private Date ioEndTime; + + /** + * 出入库记录快照(JSON) + */ + @ExcelProperty(value = "出入库记录快照", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "J=SON") + private String snapshotIoRecord; + + /** + * 逻辑库区钢卷明细快照(JSON) + */ + @ExcelProperty(value = "逻辑库区钢卷明细快照", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "J=SON") + private String snapshotCoilLogic; + + /** + * 实际库区钢卷明细快照(JSON) + */ + @ExcelProperty(value = "实际库区钢卷明细快照", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "J=SON") + private String snapshotCoilActual; + + /** + * 钢卷数量统计快照(JSON) + */ + @ExcelProperty(value = "钢卷数量统计快照", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "J=SON") + private String snapshotCoilStats; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-flow/src/main/java/com/klp/flow/mapper/InvCountDiscrepancyMapper.java b/klp-flow/src/main/java/com/klp/flow/mapper/InvCountDiscrepancyMapper.java new file mode 100644 index 00000000..8862171b --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/mapper/InvCountDiscrepancyMapper.java @@ -0,0 +1,15 @@ +package com.klp.flow.mapper; + +import com.klp.flow.domain.InvCountDiscrepancy; +import com.klp.flow.domain.vo.InvCountDiscrepancyVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 盘库差异记录Mapper接口 + * + * @author klp + * @date 2026-06-22 + */ +public interface InvCountDiscrepancyMapper extends BaseMapperPlus { + +} diff --git a/klp-flow/src/main/java/com/klp/flow/mapper/InvCountPlanMapper.java b/klp-flow/src/main/java/com/klp/flow/mapper/InvCountPlanMapper.java new file mode 100644 index 00000000..3f09a9f4 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/mapper/InvCountPlanMapper.java @@ -0,0 +1,15 @@ +package com.klp.flow.mapper; + +import com.klp.flow.domain.InvCountPlan; +import com.klp.flow.domain.vo.InvCountPlanVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 盘库计划主Mapper接口 + * + * @author klp + * @date 2026-06-22 + */ +public interface InvCountPlanMapper extends BaseMapperPlus { + +} diff --git a/klp-flow/src/main/java/com/klp/flow/mapper/InvCountPlanWarehouseMapper.java b/klp-flow/src/main/java/com/klp/flow/mapper/InvCountPlanWarehouseMapper.java new file mode 100644 index 00000000..7d0ca77e --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/mapper/InvCountPlanWarehouseMapper.java @@ -0,0 +1,15 @@ +package com.klp.flow.mapper; + +import com.klp.flow.domain.InvCountPlanWarehouse; +import com.klp.flow.domain.vo.InvCountPlanWarehouseVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 盘库计划-库区关联Mapper接口 + * + * @author klp + * @date 2026-06-22 + */ +public interface InvCountPlanWarehouseMapper extends BaseMapperPlus { + +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/IInvCountDiscrepancyService.java b/klp-flow/src/main/java/com/klp/flow/service/IInvCountDiscrepancyService.java new file mode 100644 index 00000000..454fa556 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/IInvCountDiscrepancyService.java @@ -0,0 +1,49 @@ +package com.klp.flow.service; + +import com.klp.flow.domain.InvCountDiscrepancy; +import com.klp.flow.domain.vo.InvCountDiscrepancyVo; +import com.klp.flow.domain.bo.InvCountDiscrepancyBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 盘库差异记录Service接口 + * + * @author klp + * @date 2026-06-22 + */ +public interface IInvCountDiscrepancyService { + + /** + * 查询盘库差异记录 + */ + InvCountDiscrepancyVo queryById(Long discrepancyId); + + /** + * 查询盘库差异记录列表 + */ + TableDataInfo queryPageList(InvCountDiscrepancyBo bo, PageQuery pageQuery); + + /** + * 查询盘库差异记录列表 + */ + List queryList(InvCountDiscrepancyBo bo); + + /** + * 新增盘库差异记录 + */ + Boolean insertByBo(InvCountDiscrepancyBo bo); + + /** + * 修改盘库差异记录 + */ + Boolean updateByBo(InvCountDiscrepancyBo bo); + + /** + * 校验并批量删除盘库差异记录信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/IInvCountPlanService.java b/klp-flow/src/main/java/com/klp/flow/service/IInvCountPlanService.java new file mode 100644 index 00000000..ad0f9bf2 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/IInvCountPlanService.java @@ -0,0 +1,49 @@ +package com.klp.flow.service; + +import com.klp.flow.domain.InvCountPlan; +import com.klp.flow.domain.vo.InvCountPlanVo; +import com.klp.flow.domain.bo.InvCountPlanBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 盘库计划主Service接口 + * + * @author klp + * @date 2026-06-22 + */ +public interface IInvCountPlanService { + + /** + * 查询盘库计划主 + */ + InvCountPlanVo queryById(Long planId); + + /** + * 查询盘库计划主列表 + */ + TableDataInfo queryPageList(InvCountPlanBo bo, PageQuery pageQuery); + + /** + * 查询盘库计划主列表 + */ + List queryList(InvCountPlanBo bo); + + /** + * 新增盘库计划主 + */ + Boolean insertByBo(InvCountPlanBo bo); + + /** + * 修改盘库计划主 + */ + Boolean updateByBo(InvCountPlanBo bo); + + /** + * 校验并批量删除盘库计划主信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/IInvCountPlanWarehouseService.java b/klp-flow/src/main/java/com/klp/flow/service/IInvCountPlanWarehouseService.java new file mode 100644 index 00000000..25dac976 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/IInvCountPlanWarehouseService.java @@ -0,0 +1,49 @@ +package com.klp.flow.service; + +import com.klp.flow.domain.InvCountPlanWarehouse; +import com.klp.flow.domain.vo.InvCountPlanWarehouseVo; +import com.klp.flow.domain.bo.InvCountPlanWarehouseBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 盘库计划-库区关联Service接口 + * + * @author klp + * @date 2026-06-22 + */ +public interface IInvCountPlanWarehouseService { + + /** + * 查询盘库计划-库区关联 + */ + InvCountPlanWarehouseVo queryById(Long relId); + + /** + * 查询盘库计划-库区关联列表 + */ + TableDataInfo queryPageList(InvCountPlanWarehouseBo bo, PageQuery pageQuery); + + /** + * 查询盘库计划-库区关联列表 + */ + List queryList(InvCountPlanWarehouseBo bo); + + /** + * 新增盘库计划-库区关联 + */ + Boolean insertByBo(InvCountPlanWarehouseBo bo); + + /** + * 修改盘库计划-库区关联 + */ + Boolean updateByBo(InvCountPlanWarehouseBo bo); + + /** + * 校验并批量删除盘库计划-库区关联信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/InvCountDiscrepancyServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/InvCountDiscrepancyServiceImpl.java new file mode 100644 index 00000000..6eb68b85 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/InvCountDiscrepancyServiceImpl.java @@ -0,0 +1,121 @@ +package com.klp.flow.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.flow.domain.bo.InvCountDiscrepancyBo; +import com.klp.flow.domain.vo.InvCountDiscrepancyVo; +import com.klp.flow.domain.InvCountDiscrepancy; +import com.klp.flow.mapper.InvCountDiscrepancyMapper; +import com.klp.flow.service.IInvCountDiscrepancyService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 盘库差异记录Service业务层处理 + * + * @author klp + * @date 2026-06-22 + */ +@RequiredArgsConstructor +@Service +public class InvCountDiscrepancyServiceImpl implements IInvCountDiscrepancyService { + + private final InvCountDiscrepancyMapper baseMapper; + + /** + * 查询盘库差异记录 + */ + @Override + public InvCountDiscrepancyVo queryById(Long discrepancyId){ + return baseMapper.selectVoById(discrepancyId); + } + + /** + * 查询盘库差异记录列表 + */ + @Override + public TableDataInfo queryPageList(InvCountDiscrepancyBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询盘库差异记录列表 + */ + @Override + public List queryList(InvCountDiscrepancyBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(InvCountDiscrepancyBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getRelId() != null, InvCountDiscrepancy::getRelId, bo.getRelId()); + lqw.eq(bo.getDiscrepancyType() != null, InvCountDiscrepancy::getDiscrepancyType, bo.getDiscrepancyType()); + lqw.eq(bo.getCoilId() != null, InvCountDiscrepancy::getCoilId, bo.getCoilId()); + lqw.eq(StringUtils.isNotBlank(bo.getEnterCoilNo()), InvCountDiscrepancy::getEnterCoilNo, bo.getEnterCoilNo()); + lqw.eq(StringUtils.isNotBlank(bo.getDiscrepancyDetail()), InvCountDiscrepancy::getDiscrepancyDetail, bo.getDiscrepancyDetail()); + lqw.eq(StringUtils.isNotBlank(bo.getReasonAnalysis()), InvCountDiscrepancy::getReasonAnalysis, bo.getReasonAnalysis()); + lqw.eq(StringUtils.isNotBlank(bo.getProcessSuggestion()), InvCountDiscrepancy::getProcessSuggestion, bo.getProcessSuggestion()); + lqw.eq(StringUtils.isNotBlank(bo.getProcessResult()), InvCountDiscrepancy::getProcessResult, bo.getProcessResult()); + lqw.eq(bo.getProcessStatus() != null, InvCountDiscrepancy::getProcessStatus, bo.getProcessStatus()); + lqw.eq(bo.getProcessUserId() != null, InvCountDiscrepancy::getProcessUserId, bo.getProcessUserId()); + lqw.like(StringUtils.isNotBlank(bo.getProcessUserName()), InvCountDiscrepancy::getProcessUserName, bo.getProcessUserName()); + lqw.eq(bo.getProcessTime() != null, InvCountDiscrepancy::getProcessTime, bo.getProcessTime()); + lqw.eq(StringUtils.isNotBlank(bo.getAttachFile()), InvCountDiscrepancy::getAttachFile, bo.getAttachFile()); + return lqw; + } + + /** + * 新增盘库差异记录 + */ + @Override + public Boolean insertByBo(InvCountDiscrepancyBo bo) { + InvCountDiscrepancy add = BeanUtil.toBean(bo, InvCountDiscrepancy.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setDiscrepancyId(add.getDiscrepancyId()); + } + return flag; + } + + /** + * 修改盘库差异记录 + */ + @Override + public Boolean updateByBo(InvCountDiscrepancyBo bo) { + InvCountDiscrepancy update = BeanUtil.toBean(bo, InvCountDiscrepancy.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(InvCountDiscrepancy entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除盘库差异记录 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/InvCountPlanServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/InvCountPlanServiceImpl.java new file mode 100644 index 00000000..720a4498 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/InvCountPlanServiceImpl.java @@ -0,0 +1,120 @@ +package com.klp.flow.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.flow.domain.bo.InvCountPlanBo; +import com.klp.flow.domain.vo.InvCountPlanVo; +import com.klp.flow.domain.InvCountPlan; +import com.klp.flow.mapper.InvCountPlanMapper; +import com.klp.flow.service.IInvCountPlanService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 盘库计划主Service业务层处理 + * + * @author klp + * @date 2026-06-22 + */ +@RequiredArgsConstructor +@Service +public class InvCountPlanServiceImpl implements IInvCountPlanService { + + private final InvCountPlanMapper baseMapper; + + /** + * 查询盘库计划主 + */ + @Override + public InvCountPlanVo queryById(Long planId){ + return baseMapper.selectVoById(planId); + } + + /** + * 查询盘库计划主列表 + */ + @Override + public TableDataInfo queryPageList(InvCountPlanBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询盘库计划主列表 + */ + @Override + public List queryList(InvCountPlanBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(InvCountPlanBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getPlanCode()), InvCountPlan::getPlanCode, bo.getPlanCode()); + lqw.like(StringUtils.isNotBlank(bo.getPlanName()), InvCountPlan::getPlanName, bo.getPlanName()); + lqw.eq(bo.getCountDate() != null, InvCountPlan::getCountDate, bo.getCountDate()); + lqw.eq(bo.getDeadlineTime() != null, InvCountPlan::getDeadlineTime, bo.getDeadlineTime()); + lqw.eq(bo.getCountUserId() != null, InvCountPlan::getCountUserId, bo.getCountUserId()); + lqw.like(StringUtils.isNotBlank(bo.getCountUserName()), InvCountPlan::getCountUserName, bo.getCountUserName()); + lqw.eq(bo.getPrincipalUserId() != null, InvCountPlan::getPrincipalUserId, bo.getPrincipalUserId()); + lqw.like(StringUtils.isNotBlank(bo.getPrincipalUserName()), InvCountPlan::getPrincipalUserName, bo.getPrincipalUserName()); + lqw.eq(StringUtils.isNotBlank(bo.getParticipantIds()), InvCountPlan::getParticipantIds, bo.getParticipantIds()); + lqw.eq(StringUtils.isNotBlank(bo.getParticipantNames()), InvCountPlan::getParticipantNames, bo.getParticipantNames()); + lqw.eq(bo.getPlanStatus() != null, InvCountPlan::getPlanStatus, bo.getPlanStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAttachFile()), InvCountPlan::getAttachFile, bo.getAttachFile()); + return lqw; + } + + /** + * 新增盘库计划主 + */ + @Override + public Boolean insertByBo(InvCountPlanBo bo) { + InvCountPlan add = BeanUtil.toBean(bo, InvCountPlan.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setPlanId(add.getPlanId()); + } + return flag; + } + + /** + * 修改盘库计划主 + */ + @Override + public Boolean updateByBo(InvCountPlanBo bo) { + InvCountPlan update = BeanUtil.toBean(bo, InvCountPlan.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(InvCountPlan entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除盘库计划主 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/InvCountPlanWarehouseServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/InvCountPlanWarehouseServiceImpl.java new file mode 100644 index 00000000..8ee841f9 --- /dev/null +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/InvCountPlanWarehouseServiceImpl.java @@ -0,0 +1,124 @@ +package com.klp.flow.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.flow.domain.bo.InvCountPlanWarehouseBo; +import com.klp.flow.domain.vo.InvCountPlanWarehouseVo; +import com.klp.flow.domain.InvCountPlanWarehouse; +import com.klp.flow.mapper.InvCountPlanWarehouseMapper; +import com.klp.flow.service.IInvCountPlanWarehouseService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 盘库计划-库区关联Service业务层处理 + * + * @author klp + * @date 2026-06-22 + */ +@RequiredArgsConstructor +@Service +public class InvCountPlanWarehouseServiceImpl implements IInvCountPlanWarehouseService { + + private final InvCountPlanWarehouseMapper baseMapper; + + /** + * 查询盘库计划-库区关联 + */ + @Override + public InvCountPlanWarehouseVo queryById(Long relId){ + return baseMapper.selectVoById(relId); + } + + /** + * 查询盘库计划-库区关联列表 + */ + @Override + public TableDataInfo queryPageList(InvCountPlanWarehouseBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询盘库计划-库区关联列表 + */ + @Override + public List queryList(InvCountPlanWarehouseBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(InvCountPlanWarehouseBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getPlanId() != null, InvCountPlanWarehouse::getPlanId, bo.getPlanId()); + lqw.eq(bo.getWarehouseId() != null, InvCountPlanWarehouse::getWarehouseId, bo.getWarehouseId()); + lqw.like(StringUtils.isNotBlank(bo.getWarehouseName()), InvCountPlanWarehouse::getWarehouseName, bo.getWarehouseName()); + lqw.eq(bo.getActualWarehouseId() != null, InvCountPlanWarehouse::getActualWarehouseId, bo.getActualWarehouseId()); + lqw.like(StringUtils.isNotBlank(bo.getActualWarehouseName()), InvCountPlanWarehouse::getActualWarehouseName, bo.getActualWarehouseName()); + lqw.eq(bo.getSystemCoilCount() != null, InvCountPlanWarehouse::getSystemCoilCount, bo.getSystemCoilCount()); + lqw.eq(bo.getSystemTotalWeight() != null, InvCountPlanWarehouse::getSystemTotalWeight, bo.getSystemTotalWeight()); + lqw.eq(bo.getActualCoilCount() != null, InvCountPlanWarehouse::getActualCoilCount, bo.getActualCoilCount()); + lqw.eq(bo.getActualTotalWeight() != null, InvCountPlanWarehouse::getActualTotalWeight, bo.getActualTotalWeight()); + lqw.eq(bo.getIsConsistent() != null, InvCountPlanWarehouse::getIsConsistent, bo.getIsConsistent()); + lqw.eq(bo.getIoStartTime() != null, InvCountPlanWarehouse::getIoStartTime, bo.getIoStartTime()); + lqw.eq(bo.getIoEndTime() != null, InvCountPlanWarehouse::getIoEndTime, bo.getIoEndTime()); + lqw.eq(StringUtils.isNotBlank(bo.getSnapshotIoRecord()), InvCountPlanWarehouse::getSnapshotIoRecord, bo.getSnapshotIoRecord()); + lqw.eq(StringUtils.isNotBlank(bo.getSnapshotCoilLogic()), InvCountPlanWarehouse::getSnapshotCoilLogic, bo.getSnapshotCoilLogic()); + lqw.eq(StringUtils.isNotBlank(bo.getSnapshotCoilActual()), InvCountPlanWarehouse::getSnapshotCoilActual, bo.getSnapshotCoilActual()); + lqw.eq(StringUtils.isNotBlank(bo.getSnapshotCoilStats()), InvCountPlanWarehouse::getSnapshotCoilStats, bo.getSnapshotCoilStats()); + return lqw; + } + + /** + * 新增盘库计划-库区关联 + */ + @Override + public Boolean insertByBo(InvCountPlanWarehouseBo bo) { + InvCountPlanWarehouse add = BeanUtil.toBean(bo, InvCountPlanWarehouse.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setRelId(add.getRelId()); + } + return flag; + } + + /** + * 修改盘库计划-库区关联 + */ + @Override + public Boolean updateByBo(InvCountPlanWarehouseBo bo) { + InvCountPlanWarehouse update = BeanUtil.toBean(bo, InvCountPlanWarehouse.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(InvCountPlanWarehouse entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除盘库计划-库区关联 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-flow/src/main/resources/mapper/flow/InvCountDiscrepancyMapper.xml b/klp-flow/src/main/resources/mapper/flow/InvCountDiscrepancyMapper.xml new file mode 100644 index 00000000..11100f9c --- /dev/null +++ b/klp-flow/src/main/resources/mapper/flow/InvCountDiscrepancyMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-flow/src/main/resources/mapper/flow/InvCountPlanMapper.xml b/klp-flow/src/main/resources/mapper/flow/InvCountPlanMapper.xml new file mode 100644 index 00000000..24c0f25d --- /dev/null +++ b/klp-flow/src/main/resources/mapper/flow/InvCountPlanMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-flow/src/main/resources/mapper/flow/InvCountPlanWarehouseMapper.xml b/klp-flow/src/main/resources/mapper/flow/InvCountPlanWarehouseMapper.xml new file mode 100644 index 00000000..c8d06fa0 --- /dev/null +++ b/klp-flow/src/main/resources/mapper/flow/InvCountPlanWarehouseMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +