diff --git a/klp-wms/src/main/java/com/klp/controller/WmsCoilPackingDetailController.java b/klp-wms/src/main/java/com/klp/controller/WmsCoilPackingDetailController.java new file mode 100644 index 00000000..80af83f2 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/controller/WmsCoilPackingDetailController.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.WmsCoilPackingDetailVo; +import com.klp.domain.bo.WmsCoilPackingDetailBo; +import com.klp.service.IWmsCoilPackingDetailService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 钢卷打包明细(存储每个钢卷的库区/重量信息) + * + * @author klp + * @date 2026-03-23 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/wms/coilPackingDetail") +public class WmsCoilPackingDetailController extends BaseController { + + private final IWmsCoilPackingDetailService iWmsCoilPackingDetailService; + + /** + * 查询钢卷打包明细(存储每个钢卷的库区/重量信息)列表 + */ + @GetMapping("/list") + public TableDataInfo list(WmsCoilPackingDetailBo bo, PageQuery pageQuery) { + return iWmsCoilPackingDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出钢卷打包明细(存储每个钢卷的库区/重量信息)列表 + */ + @Log(title = "钢卷打包明细(存储每个钢卷的库区/重量信息)", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsCoilPackingDetailBo bo, HttpServletResponse response) { + List list = iWmsCoilPackingDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "钢卷打包明细(存储每个钢卷的库区/重量信息)", WmsCoilPackingDetailVo.class, response); + } + + /** + * 获取钢卷打包明细(存储每个钢卷的库区/重量信息)详细信息 + * + * @param detailId 主键 + */ + @GetMapping("/{detailId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long detailId) { + return R.ok(iWmsCoilPackingDetailService.queryById(detailId)); + } + + /** + * 新增钢卷打包明细(存储每个钢卷的库区/重量信息) + */ + @Log(title = "钢卷打包明细(存储每个钢卷的库区/重量信息)", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsCoilPackingDetailBo bo) { + return toAjax(iWmsCoilPackingDetailService.insertByBo(bo)); + } + + /** + * 修改钢卷打包明细(存储每个钢卷的库区/重量信息) + */ + @Log(title = "钢卷打包明细(存储每个钢卷的库区/重量信息)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsCoilPackingDetailBo bo) { + return toAjax(iWmsCoilPackingDetailService.updateByBo(bo)); + } + + /** + * 删除钢卷打包明细(存储每个钢卷的库区/重量信息) + * + * @param detailIds 主键串 + */ + @Log(title = "钢卷打包明细(存储每个钢卷的库区/重量信息)", businessType = BusinessType.DELETE) + @DeleteMapping("/{detailIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] detailIds) { + return toAjax(iWmsCoilPackingDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true)); + } +} diff --git a/klp-wms/src/main/java/com/klp/controller/WmsCoilPackingRecordController.java b/klp-wms/src/main/java/com/klp/controller/WmsCoilPackingRecordController.java new file mode 100644 index 00000000..1c55e6f8 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/controller/WmsCoilPackingRecordController.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.WmsCoilPackingRecordVo; +import com.klp.domain.bo.WmsCoilPackingRecordBo; +import com.klp.service.IWmsCoilPackingRecordService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 钢卷打包记录主(打包待发区专用) + * + * @author klp + * @date 2026-03-23 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/wms/coilPackingRecord") +public class WmsCoilPackingRecordController extends BaseController { + + private final IWmsCoilPackingRecordService iWmsCoilPackingRecordService; + + /** + * 查询钢卷打包记录主(打包待发区专用)列表 + */ + @GetMapping("/list") + public TableDataInfo list(WmsCoilPackingRecordBo bo, PageQuery pageQuery) { + return iWmsCoilPackingRecordService.queryPageList(bo, pageQuery); + } + + /** + * 导出钢卷打包记录主(打包待发区专用)列表 + */ + @Log(title = "钢卷打包记录主(打包待发区专用)", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsCoilPackingRecordBo bo, HttpServletResponse response) { + List list = iWmsCoilPackingRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "钢卷打包记录主(打包待发区专用)", WmsCoilPackingRecordVo.class, response); + } + + /** + * 获取钢卷打包记录主(打包待发区专用)详细信息 + * + * @param packingId 主键 + */ + @GetMapping("/{packingId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long packingId) { + return R.ok(iWmsCoilPackingRecordService.queryById(packingId)); + } + + /** + * 新增钢卷打包记录主(打包待发区专用) + */ + @Log(title = "钢卷打包记录主(打包待发区专用)", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsCoilPackingRecordBo bo) { + return toAjax(iWmsCoilPackingRecordService.insertByBo(bo)); + } + + /** + * 修改钢卷打包记录主(打包待发区专用) + */ + @Log(title = "钢卷打包记录主(打包待发区专用)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsCoilPackingRecordBo bo) { + return toAjax(iWmsCoilPackingRecordService.updateByBo(bo)); + } + + /** + * 删除钢卷打包记录主(打包待发区专用) + * + * @param packingIds 主键串 + */ + @Log(title = "钢卷打包记录主(打包待发区专用)", businessType = BusinessType.DELETE) + @DeleteMapping("/{packingIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] packingIds) { + return toAjax(iWmsCoilPackingRecordService.deleteWithValidByIds(Arrays.asList(packingIds), true)); + } +} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsCoilPackingDetail.java b/klp-wms/src/main/java/com/klp/domain/WmsCoilPackingDetail.java new file mode 100644 index 00000000..eb5ff323 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/WmsCoilPackingDetail.java @@ -0,0 +1,62 @@ +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_coil_packing_detail + * + * @author klp + * @date 2026-03-23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_coil_packing_detail") +public class WmsCoilPackingDetail extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 明细主键ID + */ + @TableId(value = "detail_id") + private Long detailId; + /** + * 关联打包主表ID + */ + private Long packingId; + /** + * 关联钢卷ID(wms_material_coil.coil_id) + */ + private Long coilId; + /** + * 该钢卷打包前的库区ID + */ + private Long fromWarehouseId; + /** + * 该钢卷打包后的库区ID(打包待发区) + */ + private Long toWarehouseId; + /** + * 该钢卷的毛重 + */ + private BigDecimal coilGrossWeight; + /** + * 该钢卷的净重 + */ + private BigDecimal coilNetWeight; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 该钢卷的打包备注(如:库区A-钢卷1001) + */ + private String remark; + +} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsCoilPackingRecord.java b/klp-wms/src/main/java/com/klp/domain/WmsCoilPackingRecord.java new file mode 100644 index 00000000..b95ca8bc --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/WmsCoilPackingRecord.java @@ -0,0 +1,80 @@ +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; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 钢卷打包记录主(打包待发区专用)对象 wms_coil_packing_record + * + * @author klp + * @date 2026-03-23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_coil_packing_record") +public class WmsCoilPackingRecord extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 打包记录主键ID + */ + @TableId(value = "packing_id") + private Long packingId; + /** + * 打包单号(自定义规则:年份后两位+月份+当日打包序号,如25100001) + */ + private String packingNo; + /** + * 打包钢卷数量(累计卷数,自动计算) + */ + private Long coilCount; + /** + * 打包总毛重(累计重量) + */ + private BigDecimal totalGrossWeight; + /** + * 打包总净重(累计重量) + */ + private BigDecimal totalNetWeight; + /** + * 销售人员姓名(冗余存储,避免关联查询) + */ + private String saleName; + /** + * 打包批次号(如第一批/第二批,或自定义编码:251001-01) + */ + private String batchNo; + /** + * 打包状态(0=待打包,1=已打包完成,2=已取消) + */ + private Integer packingStatus; + /** + * 打包完成时间 + */ + private Date packingTime; + /** + * 打包操作人 + */ + private String packingBy; + /** + * 库区操作备注(如移入打包待发区原因) + */ + private String warehouseRemark; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 整体打包备注 + */ + private String remark; + +} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsCoilPackingDetailBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsCoilPackingDetailBo.java new file mode 100644 index 00000000..e9f32939 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsCoilPackingDetailBo.java @@ -0,0 +1,62 @@ +package com.klp.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.math.BigDecimal; + +/** + * 钢卷打包明细(存储每个钢卷的库区/重量信息)业务对象 wms_coil_packing_detail + * + * @author klp + * @date 2026-03-23 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class WmsCoilPackingDetailBo extends BaseEntity { + + /** + * 明细主键ID + */ + private Long detailId; + + /** + * 关联打包主表ID + */ + private Long packingId; + + /** + * 关联钢卷ID(wms_material_coil.coil_id) + */ + private Long coilId; + + /** + * 该钢卷打包前的库区ID + */ + private Long fromWarehouseId; + + /** + * 该钢卷打包后的库区ID(打包待发区) + */ + private Long toWarehouseId; + + /** + * 该钢卷的毛重 + */ + private BigDecimal coilGrossWeight; + + /** + * 该钢卷的净重 + */ + private BigDecimal coilNetWeight; + + /** + * 该钢卷的打包备注(如:库区A-钢卷1001) + */ + private String remark; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsCoilPackingRecordBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsCoilPackingRecordBo.java new file mode 100644 index 00000000..2623fe36 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsCoilPackingRecordBo.java @@ -0,0 +1,84 @@ +package com.klp.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; + +/** + * 钢卷打包记录主(打包待发区专用)业务对象 wms_coil_packing_record + * + * @author klp + * @date 2026-03-23 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class WmsCoilPackingRecordBo extends BaseEntity { + + /** + * 打包记录主键ID + */ + private Long packingId; + + /** + * 打包单号(自定义规则:年份后两位+月份+当日打包序号,如25100001) + */ + private String packingNo; + + /** + * 打包钢卷数量(累计卷数,自动计算) + */ + private Long coilCount; + + /** + * 打包总毛重(累计重量) + */ + private BigDecimal totalGrossWeight; + + /** + * 打包总净重(累计重量) + */ + private BigDecimal totalNetWeight; + + /** + * 销售人员姓名(冗余存储,避免关联查询) + */ + private String saleName; + + /** + * 打包批次号(如第一批/第二批,或自定义编码:251001-01) + */ + private String batchNo; + + /** + * 打包状态(0=待打包,1=已打包完成,2=已取消) + */ + private Integer packingStatus; + + /** + * 打包完成时间 + */ + private Date packingTime; + + /** + * 打包操作人 + */ + private String packingBy; + + /** + * 库区操作备注(如移入打包待发区原因) + */ + private String warehouseRemark; + + /** + * 整体打包备注 + */ + private String remark; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingDetailVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingDetailVo.java new file mode 100644 index 00000000..9467cb83 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingDetailVo.java @@ -0,0 +1,75 @@ +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_coil_packing_detail + * + * @author klp + * @date 2026-03-23 + */ +@Data +@ExcelIgnoreUnannotated +public class WmsCoilPackingDetailVo { + + private static final long serialVersionUID = 1L; + + /** + * 明细主键ID + */ + @ExcelProperty(value = "明细主键ID") + private Long detailId; + + /** + * 关联打包主表ID + */ + @ExcelProperty(value = "关联打包主表ID") + private Long packingId; + + /** + * 关联钢卷ID(wms_material_coil.coil_id) + */ + @ExcelProperty(value = "关联钢卷ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "w=ms_material_coil.coil_id") + private Long coilId; + + /** + * 该钢卷打包前的库区ID + */ + @ExcelProperty(value = "该钢卷打包前的库区ID") + private Long fromWarehouseId; + + /** + * 该钢卷打包后的库区ID(打包待发区) + */ + @ExcelProperty(value = "该钢卷打包后的库区ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "打=包待发区") + private Long toWarehouseId; + + /** + * 该钢卷的毛重 + */ + @ExcelProperty(value = "该钢卷的毛重") + private BigDecimal coilGrossWeight; + + /** + * 该钢卷的净重 + */ + @ExcelProperty(value = "该钢卷的净重") + private BigDecimal coilNetWeight; + + /** + * 该钢卷的打包备注(如:库区A-钢卷1001) + */ + @ExcelProperty(value = "该钢卷的打包备注", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=:库区A-钢卷1001") + private String remark; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingRecordVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingRecordVo.java new file mode 100644 index 00000000..3a99e833 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingRecordVo.java @@ -0,0 +1,106 @@ +package com.klp.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; + + +/** + * 钢卷打包记录主(打包待发区专用)视图对象 wms_coil_packing_record + * + * @author klp + * @date 2026-03-23 + */ +@Data +@ExcelIgnoreUnannotated +public class WmsCoilPackingRecordVo { + + private static final long serialVersionUID = 1L; + + /** + * 打包记录主键ID + */ + @ExcelProperty(value = "打包记录主键ID") + private Long packingId; + + /** + * 打包单号(自定义规则:年份后两位+月份+当日打包序号,如25100001) + */ + @ExcelProperty(value = "打包单号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "自=定义规则:年份后两位+月份+当日打包序号,如25100001") + private String packingNo; + + /** + * 打包钢卷数量(累计卷数,自动计算) + */ + @ExcelProperty(value = "打包钢卷数量", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "累=计卷数,自动计算") + private Long coilCount; + + /** + * 打包总毛重(累计重量) + */ + @ExcelProperty(value = "打包总毛重", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "累=计重量") + private BigDecimal totalGrossWeight; + + /** + * 打包总净重(累计重量) + */ + @ExcelProperty(value = "打包总净重", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "累=计重量") + private BigDecimal totalNetWeight; + + /** + * 销售人员姓名(冗余存储,避免关联查询) + */ + @ExcelProperty(value = "销售人员姓名", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "冗=余存储,避免关联查询") + private String saleName; + + /** + * 打包批次号(如第一批/第二批,或自定义编码:251001-01) + */ + @ExcelProperty(value = "打包批次号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=第一批/第二批,或自定义编码:251001-01") + private String batchNo; + + /** + * 打包状态(0=待打包,1=已打包完成,2=已取消) + */ + @ExcelProperty(value = "打包状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0==待打包,1=已打包完成,2=已取消") + private Integer packingStatus; + + /** + * 打包完成时间 + */ + @ExcelProperty(value = "打包完成时间") + private Date packingTime; + + /** + * 打包操作人 + */ + @ExcelProperty(value = "打包操作人") + private String packingBy; + + /** + * 库区操作备注(如移入打包待发区原因) + */ + @ExcelProperty(value = "库区操作备注", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=移入打包待发区原因") + private String warehouseRemark; + + /** + * 整体打包备注 + */ + @ExcelProperty(value = "整体打包备注") + private String remark; + + +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsCoilPackingDetailMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsCoilPackingDetailMapper.java new file mode 100644 index 00000000..801cb1af --- /dev/null +++ b/klp-wms/src/main/java/com/klp/mapper/WmsCoilPackingDetailMapper.java @@ -0,0 +1,15 @@ +package com.klp.mapper; + +import com.klp.domain.WmsCoilPackingDetail; +import com.klp.domain.vo.WmsCoilPackingDetailVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 钢卷打包明细(存储每个钢卷的库区/重量信息)Mapper接口 + * + * @author klp + * @date 2026-03-23 + */ +public interface WmsCoilPackingDetailMapper extends BaseMapperPlus { + +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsCoilPackingRecordMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsCoilPackingRecordMapper.java new file mode 100644 index 00000000..51bfb922 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/mapper/WmsCoilPackingRecordMapper.java @@ -0,0 +1,15 @@ +package com.klp.mapper; + +import com.klp.domain.WmsCoilPackingRecord; +import com.klp.domain.vo.WmsCoilPackingRecordVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 钢卷打包记录主(打包待发区专用)Mapper接口 + * + * @author klp + * @date 2026-03-23 + */ +public interface WmsCoilPackingRecordMapper extends BaseMapperPlus { + +} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsCoilPackingDetailService.java b/klp-wms/src/main/java/com/klp/service/IWmsCoilPackingDetailService.java new file mode 100644 index 00000000..e08bbd93 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/IWmsCoilPackingDetailService.java @@ -0,0 +1,49 @@ +package com.klp.service; + +import com.klp.domain.WmsCoilPackingDetail; +import com.klp.domain.vo.WmsCoilPackingDetailVo; +import com.klp.domain.bo.WmsCoilPackingDetailBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 钢卷打包明细(存储每个钢卷的库区/重量信息)Service接口 + * + * @author klp + * @date 2026-03-23 + */ +public interface IWmsCoilPackingDetailService { + + /** + * 查询钢卷打包明细(存储每个钢卷的库区/重量信息) + */ + WmsCoilPackingDetailVo queryById(Long detailId); + + /** + * 查询钢卷打包明细(存储每个钢卷的库区/重量信息)列表 + */ + TableDataInfo queryPageList(WmsCoilPackingDetailBo bo, PageQuery pageQuery); + + /** + * 查询钢卷打包明细(存储每个钢卷的库区/重量信息)列表 + */ + List queryList(WmsCoilPackingDetailBo bo); + + /** + * 新增钢卷打包明细(存储每个钢卷的库区/重量信息) + */ + Boolean insertByBo(WmsCoilPackingDetailBo bo); + + /** + * 修改钢卷打包明细(存储每个钢卷的库区/重量信息) + */ + Boolean updateByBo(WmsCoilPackingDetailBo bo); + + /** + * 校验并批量删除钢卷打包明细(存储每个钢卷的库区/重量信息)信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsCoilPackingRecordService.java b/klp-wms/src/main/java/com/klp/service/IWmsCoilPackingRecordService.java new file mode 100644 index 00000000..2f332852 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/IWmsCoilPackingRecordService.java @@ -0,0 +1,49 @@ +package com.klp.service; + +import com.klp.domain.WmsCoilPackingRecord; +import com.klp.domain.vo.WmsCoilPackingRecordVo; +import com.klp.domain.bo.WmsCoilPackingRecordBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 钢卷打包记录主(打包待发区专用)Service接口 + * + * @author klp + * @date 2026-03-23 + */ +public interface IWmsCoilPackingRecordService { + + /** + * 查询钢卷打包记录主(打包待发区专用) + */ + WmsCoilPackingRecordVo queryById(Long packingId); + + /** + * 查询钢卷打包记录主(打包待发区专用)列表 + */ + TableDataInfo queryPageList(WmsCoilPackingRecordBo bo, PageQuery pageQuery); + + /** + * 查询钢卷打包记录主(打包待发区专用)列表 + */ + List queryList(WmsCoilPackingRecordBo bo); + + /** + * 新增钢卷打包记录主(打包待发区专用) + */ + Boolean insertByBo(WmsCoilPackingRecordBo bo); + + /** + * 修改钢卷打包记录主(打包待发区专用) + */ + Boolean updateByBo(WmsCoilPackingRecordBo bo); + + /** + * 校验并批量删除钢卷打包记录主(打包待发区专用)信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingDetailServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingDetailServiceImpl.java new file mode 100644 index 00000000..f90aebfc --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingDetailServiceImpl.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 lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.domain.bo.WmsCoilPackingDetailBo; +import com.klp.domain.vo.WmsCoilPackingDetailVo; +import com.klp.domain.WmsCoilPackingDetail; +import com.klp.mapper.WmsCoilPackingDetailMapper; +import com.klp.service.IWmsCoilPackingDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 钢卷打包明细(存储每个钢卷的库区/重量信息)Service业务层处理 + * + * @author klp + * @date 2026-03-23 + */ +@RequiredArgsConstructor +@Service +public class WmsCoilPackingDetailServiceImpl implements IWmsCoilPackingDetailService { + + private final WmsCoilPackingDetailMapper baseMapper; + + /** + * 查询钢卷打包明细(存储每个钢卷的库区/重量信息) + */ + @Override + public WmsCoilPackingDetailVo queryById(Long detailId){ + return baseMapper.selectVoById(detailId); + } + + /** + * 查询钢卷打包明细(存储每个钢卷的库区/重量信息)列表 + */ + @Override + public TableDataInfo queryPageList(WmsCoilPackingDetailBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询钢卷打包明细(存储每个钢卷的库区/重量信息)列表 + */ + @Override + public List queryList(WmsCoilPackingDetailBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsCoilPackingDetailBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getPackingId() != null, WmsCoilPackingDetail::getPackingId, bo.getPackingId()); + lqw.eq(bo.getCoilId() != null, WmsCoilPackingDetail::getCoilId, bo.getCoilId()); + lqw.eq(bo.getFromWarehouseId() != null, WmsCoilPackingDetail::getFromWarehouseId, bo.getFromWarehouseId()); + lqw.eq(bo.getToWarehouseId() != null, WmsCoilPackingDetail::getToWarehouseId, bo.getToWarehouseId()); + lqw.eq(bo.getCoilGrossWeight() != null, WmsCoilPackingDetail::getCoilGrossWeight, bo.getCoilGrossWeight()); + lqw.eq(bo.getCoilNetWeight() != null, WmsCoilPackingDetail::getCoilNetWeight, bo.getCoilNetWeight()); + return lqw; + } + + /** + * 新增钢卷打包明细(存储每个钢卷的库区/重量信息) + */ + @Override + public Boolean insertByBo(WmsCoilPackingDetailBo bo) { + WmsCoilPackingDetail add = BeanUtil.toBean(bo, WmsCoilPackingDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setDetailId(add.getDetailId()); + } + return flag; + } + + /** + * 修改钢卷打包明细(存储每个钢卷的库区/重量信息) + */ + @Override + public Boolean updateByBo(WmsCoilPackingDetailBo bo) { + WmsCoilPackingDetail update = BeanUtil.toBean(bo, WmsCoilPackingDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsCoilPackingDetail 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/WmsCoilPackingRecordServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingRecordServiceImpl.java new file mode 100644 index 00000000..7c0b62c8 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingRecordServiceImpl.java @@ -0,0 +1,118 @@ +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.WmsCoilPackingRecordBo; +import com.klp.domain.vo.WmsCoilPackingRecordVo; +import com.klp.domain.WmsCoilPackingRecord; +import com.klp.mapper.WmsCoilPackingRecordMapper; +import com.klp.service.IWmsCoilPackingRecordService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 钢卷打包记录主(打包待发区专用)Service业务层处理 + * + * @author klp + * @date 2026-03-23 + */ +@RequiredArgsConstructor +@Service +public class WmsCoilPackingRecordServiceImpl implements IWmsCoilPackingRecordService { + + private final WmsCoilPackingRecordMapper baseMapper; + + /** + * 查询钢卷打包记录主(打包待发区专用) + */ + @Override + public WmsCoilPackingRecordVo queryById(Long packingId){ + return baseMapper.selectVoById(packingId); + } + + /** + * 查询钢卷打包记录主(打包待发区专用)列表 + */ + @Override + public TableDataInfo queryPageList(WmsCoilPackingRecordBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询钢卷打包记录主(打包待发区专用)列表 + */ + @Override + public List queryList(WmsCoilPackingRecordBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsCoilPackingRecordBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getPackingNo()), WmsCoilPackingRecord::getPackingNo, bo.getPackingNo()); + lqw.eq(bo.getCoilCount() != null, WmsCoilPackingRecord::getCoilCount, bo.getCoilCount()); + lqw.eq(bo.getTotalGrossWeight() != null, WmsCoilPackingRecord::getTotalGrossWeight, bo.getTotalGrossWeight()); + lqw.eq(bo.getTotalNetWeight() != null, WmsCoilPackingRecord::getTotalNetWeight, bo.getTotalNetWeight()); + lqw.like(StringUtils.isNotBlank(bo.getSaleName()), WmsCoilPackingRecord::getSaleName, bo.getSaleName()); + lqw.eq(StringUtils.isNotBlank(bo.getBatchNo()), WmsCoilPackingRecord::getBatchNo, bo.getBatchNo()); + lqw.eq(bo.getPackingStatus() != null, WmsCoilPackingRecord::getPackingStatus, bo.getPackingStatus()); + lqw.eq(bo.getPackingTime() != null, WmsCoilPackingRecord::getPackingTime, bo.getPackingTime()); + lqw.eq(StringUtils.isNotBlank(bo.getPackingBy()), WmsCoilPackingRecord::getPackingBy, bo.getPackingBy()); + lqw.eq(StringUtils.isNotBlank(bo.getWarehouseRemark()), WmsCoilPackingRecord::getWarehouseRemark, bo.getWarehouseRemark()); + return lqw; + } + + /** + * 新增钢卷打包记录主(打包待发区专用) + */ + @Override + public Boolean insertByBo(WmsCoilPackingRecordBo bo) { + WmsCoilPackingRecord add = BeanUtil.toBean(bo, WmsCoilPackingRecord.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setPackingId(add.getPackingId()); + } + return flag; + } + + /** + * 修改钢卷打包记录主(打包待发区专用) + */ + @Override + public Boolean updateByBo(WmsCoilPackingRecordBo bo) { + WmsCoilPackingRecord update = BeanUtil.toBean(bo, WmsCoilPackingRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsCoilPackingRecord 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/WmsCoilPackingDetailMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsCoilPackingDetailMapper.xml new file mode 100644 index 00000000..9af17f3e --- /dev/null +++ b/klp-wms/src/main/resources/mapper/klp/WmsCoilPackingDetailMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-wms/src/main/resources/mapper/klp/WmsCoilPackingRecordMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsCoilPackingRecordMapper.xml new file mode 100644 index 00000000..224f15a2 --- /dev/null +++ b/klp-wms/src/main/resources/mapper/klp/WmsCoilPackingRecordMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +