diff --git a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanCoilOperateController.java b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanCoilOperateController.java new file mode 100644 index 00000000..0c48819b --- /dev/null +++ b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanCoilOperateController.java @@ -0,0 +1,107 @@ +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.WmsDeliveryPlanCoilOperateVo; +import com.klp.domain.bo.WmsDeliveryPlanCoilOperateBo; +import com.klp.service.IWmsDeliveryPlanCoilOperateService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 发货计划钢卷操作记录 + * + * @author klp + * @date 2025-12-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/wms/deliveryPlanCoilOperate") +public class WmsDeliveryPlanCoilOperateController extends BaseController { + + private final IWmsDeliveryPlanCoilOperateService iWmsDeliveryPlanCoilOperateService; + + /** + * 查询发货计划钢卷操作记录列表 + */ + @GetMapping("/list") + public TableDataInfo list(WmsDeliveryPlanCoilOperateBo bo, PageQuery pageQuery) { + return iWmsDeliveryPlanCoilOperateService.queryPageList(bo, pageQuery); + } + + /** + * 导出发货计划钢卷操作记录列表 + */ + @Log(title = "发货计划钢卷操作记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsDeliveryPlanCoilOperateBo bo, HttpServletResponse response) { + List list = iWmsDeliveryPlanCoilOperateService.queryList(bo); + ExcelUtil.exportExcel(list, "发货计划钢卷操作记录", WmsDeliveryPlanCoilOperateVo.class, response); + } + + /** + * 获取发货计划钢卷操作记录详细信息 + * + * @param operateId 主键 + */ + @GetMapping("/{operateId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long operateId) { + return R.ok(iWmsDeliveryPlanCoilOperateService.queryById(operateId)); + } + + /** + * 新增发货计划钢卷操作记录 + */ + @Log(title = "发货计划钢卷操作记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsDeliveryPlanCoilOperateBo bo) { + return toAjax(iWmsDeliveryPlanCoilOperateService.insertByBo(bo)); + } + + /** + * 修改发货计划钢卷操作记录 + */ + @Log(title = "发货计划钢卷操作记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsDeliveryPlanCoilOperateBo bo) { + return toAjax(iWmsDeliveryPlanCoilOperateService.updateByBo(bo)); + } + + /** + * 删除发货计划钢卷操作记录 + * + * @param operateIds 主键串 + */ + @Log(title = "发货计划钢卷操作记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{operateIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] operateIds) { + return toAjax(iWmsDeliveryPlanCoilOperateService.deleteWithValidByIds(Arrays.asList(operateIds), true)); + } + + //新增一个接口用来查询钢卷列表信息以及操作内容 参数分别是planId和coilIds(逗号分隔得字符串) get请求 + @GetMapping("/coilOperate") + public R> getCoilOperate(@RequestParam @NotNull(message = "planId不能为空") Long planId, + @RequestParam @NotNull(message = "coilIds不能为空") String coilIds) { + List list = iWmsDeliveryPlanCoilOperateService.getCoilOperate(planId, coilIds); + return R.ok(list); + } +} diff --git a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanDetailController.java b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanDetailController.java new file mode 100644 index 00000000..92c4c9a2 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanDetailController.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.WmsDeliveryPlanDetailVo; +import com.klp.domain.bo.WmsDeliveryPlanDetailBo; +import com.klp.service.IWmsDeliveryPlanDetailService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 发货计划明细 + * + * @author klp + * @date 2025-12-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/wms/deliveryPlanDetail") +public class WmsDeliveryPlanDetailController extends BaseController { + + private final IWmsDeliveryPlanDetailService iWmsDeliveryPlanDetailService; + + /** + * 查询发货计划明细列表 + */ + @GetMapping("/list") + public TableDataInfo list(WmsDeliveryPlanDetailBo bo, PageQuery pageQuery) { + return iWmsDeliveryPlanDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出发货计划明细列表 + */ + @Log(title = "发货计划明细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsDeliveryPlanDetailBo bo, HttpServletResponse response) { + List list = iWmsDeliveryPlanDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "发货计划明细", WmsDeliveryPlanDetailVo.class, response); + } + + /** + * 获取发货计划明细详细信息 + * + * @param detailId 主键 + */ + @GetMapping("/{detailId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long detailId) { + return R.ok(iWmsDeliveryPlanDetailService.queryById(detailId)); + } + + /** + * 新增发货计划明细 + */ + @Log(title = "发货计划明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsDeliveryPlanDetailBo bo) { + return toAjax(iWmsDeliveryPlanDetailService.insertByBo(bo)); + } + + /** + * 修改发货计划明细 + */ + @Log(title = "发货计划明细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsDeliveryPlanDetailBo bo) { + return toAjax(iWmsDeliveryPlanDetailService.updateByBo(bo)); + } + + /** + * 删除发货计划明细 + * + * @param detailIds 主键串 + */ + @Log(title = "发货计划明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{detailIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] detailIds) { + return toAjax(iWmsDeliveryPlanDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true)); + } +} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsDeliveryPlanCoilOperate.java b/klp-wms/src/main/java/com/klp/domain/WmsDeliveryPlanCoilOperate.java new file mode 100644 index 00000000..9f12858f --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/WmsDeliveryPlanCoilOperate.java @@ -0,0 +1,49 @@ +package com.klp.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 发货计划钢卷操作记录对象 wms_delivery_plan_coil_operate + * + * @author klp + * @date 2025-12-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_delivery_plan_coil_operate") +public class WmsDeliveryPlanCoilOperate extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 操作记录唯一ID + */ + @TableId(value = "operate_id") + private Long operateId; + /** + * 关联发货计划表ID(wms_delivery_plan.plan_id) + */ + private Long planId; + /** + * 钢卷ID(单个钢卷,关联钢卷表) + */ + private Long coilId; + /** + * 操作类型 + */ + private String operateType; + /** + * 操作备注 + */ + private String remark; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + +} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsDeliveryPlanDetail.java b/klp-wms/src/main/java/com/klp/domain/WmsDeliveryPlanDetail.java new file mode 100644 index 00000000..cb059717 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/WmsDeliveryPlanDetail.java @@ -0,0 +1,61 @@ +package com.klp.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 发货计划明细对象 wms_delivery_plan_detail + * + * @author klp + * @date 2025-12-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_delivery_plan_detail") +public class WmsDeliveryPlanDetail extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 明细唯一ID + */ + @TableId(value = "detail_id") + private Long detailId; + /** + * 关联发货计划表ID(wms_delivery_plan.plan_id) + */ + private Long planId; + /** + * 订单ID + */ + private Long orderId; + /** + * 订单详情 + */ + private String orderDetail; + /** + * 客户ID + */ + private Long customerId; + /** + * 客户详情 + */ + private String customerDetail; + /** + * 地址 + */ + private String address; + /** + * 明细备注 + */ + private String remark; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + +} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryPlanCoilOperateBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryPlanCoilOperateBo.java new file mode 100644 index 00000000..a385e795 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryPlanCoilOperateBo.java @@ -0,0 +1,46 @@ +package com.klp.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + + +/** + * 发货计划钢卷操作记录业务对象 wms_delivery_plan_coil_operate + * + * @author klp + * @date 2025-12-17 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class WmsDeliveryPlanCoilOperateBo extends BaseEntity { + + /** + * 操作记录唯一ID + */ + private Long operateId; + + /** + * 关联发货计划表ID(wms_delivery_plan.plan_id) + */ + private Long planId; + + /** + * 钢卷ID(单个钢卷,关联钢卷表) + */ + private Long coilId; + + /** + * 操作类型 + */ + private String operateType; + + /** + * 操作备注 + */ + private String remark; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryPlanDetailBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryPlanDetailBo.java new file mode 100644 index 00000000..3aec0d4f --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryPlanDetailBo.java @@ -0,0 +1,61 @@ +package com.klp.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + + +/** + * 发货计划明细业务对象 wms_delivery_plan_detail + * + * @author klp + * @date 2025-12-17 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class WmsDeliveryPlanDetailBo extends BaseEntity { + + /** + * 明细唯一ID + */ + private Long detailId; + + /** + * 关联发货计划表ID(wms_delivery_plan.plan_id) + */ + private Long planId; + + /** + * 订单ID + */ + private Long orderId; + + /** + * 订单详情 + */ + private String orderDetail; + + /** + * 客户ID + */ + private Long customerId; + + /** + * 客户详情 + */ + private String customerDetail; + + /** + * 地址 + */ + private String address; + + /** + * 明细备注 + */ + private String remark; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryPlanCoilOperateVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryPlanCoilOperateVo.java new file mode 100644 index 00000000..393230b7 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryPlanCoilOperateVo.java @@ -0,0 +1,58 @@ +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; + +import java.util.List; + + +/** + * 发货计划钢卷操作记录视图对象 wms_delivery_plan_coil_operate + * + * @author klp + * @date 2025-12-17 + */ +@Data +@ExcelIgnoreUnannotated +public class WmsDeliveryPlanCoilOperateVo { + + private static final long serialVersionUID = 1L; + + /** + * 操作记录唯一ID + */ + @ExcelProperty(value = "操作记录唯一ID") + private Long operateId; + + /** + * 关联发货计划表ID(wms_delivery_plan.plan_id) + */ + @ExcelProperty(value = "关联发货计划表ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "w=ms_delivery_plan.plan_id") + private Long planId; + + /** + * 钢卷ID(单个钢卷,关联钢卷表) + */ + @ExcelProperty(value = "钢卷ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "单=个钢卷,关联钢卷表") + private Long coilId; + + /** + * 操作类型 + */ + @ExcelProperty(value = "操作类型") + private String operateType; + + /** + * 操作备注 + */ + @ExcelProperty(value = "操作备注") + private String remark; + + private WmsMaterialCoilVo coilDetail; + +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryPlanDetailVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryPlanDetailVo.java new file mode 100644 index 00000000..889cc777 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsDeliveryPlanDetailVo.java @@ -0,0 +1,72 @@ +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_delivery_plan_detail + * + * @author klp + * @date 2025-12-17 + */ +@Data +@ExcelIgnoreUnannotated +public class WmsDeliveryPlanDetailVo { + + private static final long serialVersionUID = 1L; + + /** + * 明细唯一ID + */ + @ExcelProperty(value = "明细唯一ID") + private Long detailId; + + /** + * 关联发货计划表ID(wms_delivery_plan.plan_id) + */ + @ExcelProperty(value = "关联发货计划表ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "w=ms_delivery_plan.plan_id") + private Long planId; + + /** + * 订单ID + */ + @ExcelProperty(value = "订单ID") + private Long orderId; + + /** + * 订单详情 + */ + @ExcelProperty(value = "订单详情") + private String orderDetail; + + /** + * 客户ID + */ + @ExcelProperty(value = "客户ID") + private Long customerId; + + /** + * 客户详情 + */ + @ExcelProperty(value = "客户详情") + private String customerDetail; + + /** + * 地址 + */ + @ExcelProperty(value = "地址") + private String address; + + /** + * 明细备注 + */ + @ExcelProperty(value = "明细备注") + private String remark; + + +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryPlanCoilOperateMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryPlanCoilOperateMapper.java new file mode 100644 index 00000000..315ae9b6 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryPlanCoilOperateMapper.java @@ -0,0 +1,29 @@ +package com.klp.mapper; + +import com.klp.domain.WmsDeliveryPlanCoilOperate; +import com.klp.domain.vo.WmsDeliveryPlanCoilOperateVo; +import com.klp.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 发货计划钢卷操作记录Mapper接口 + * + * @author klp + * @date 2025-12-17 + */ +public interface WmsDeliveryPlanCoilOperateMapper extends BaseMapperPlus { + + /** + * 根据计划ID和钢卷ID数组获取每个钢卷的最新操作记录 + * + * @param planId 计划ID + * @param coilIds 钢卷ID数组 + * @return 操作记录列表 + */ + List getCoilOperate( + @Param("planId") Long planId, + @Param("coilIds") String[] coilIds + ); +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryPlanDetailMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryPlanDetailMapper.java new file mode 100644 index 00000000..7fdfbcbb --- /dev/null +++ b/klp-wms/src/main/java/com/klp/mapper/WmsDeliveryPlanDetailMapper.java @@ -0,0 +1,15 @@ +package com.klp.mapper; + +import com.klp.domain.WmsDeliveryPlanDetail; +import com.klp.domain.vo.WmsDeliveryPlanDetailVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 发货计划明细Mapper接口 + * + * @author klp + * @date 2025-12-17 + */ +public interface WmsDeliveryPlanDetailMapper extends BaseMapperPlus { + +} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanCoilOperateService.java b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanCoilOperateService.java new file mode 100644 index 00000000..cdadfc89 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanCoilOperateService.java @@ -0,0 +1,52 @@ +package com.klp.service; + +import com.klp.domain.WmsDeliveryPlanCoilOperate; +import com.klp.domain.vo.WmsDeliveryPlanCoilOperateVo; +import com.klp.domain.bo.WmsDeliveryPlanCoilOperateBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import javax.validation.constraints.NotNull; +import java.util.Collection; +import java.util.List; + +/** + * 发货计划钢卷操作记录Service接口 + * + * @author klp + * @date 2025-12-17 + */ +public interface IWmsDeliveryPlanCoilOperateService { + + /** + * 查询发货计划钢卷操作记录 + */ + WmsDeliveryPlanCoilOperateVo queryById(Long operateId); + + /** + * 查询发货计划钢卷操作记录列表 + */ + TableDataInfo queryPageList(WmsDeliveryPlanCoilOperateBo bo, PageQuery pageQuery); + + /** + * 查询发货计划钢卷操作记录列表 + */ + List queryList(WmsDeliveryPlanCoilOperateBo bo); + + /** + * 新增发货计划钢卷操作记录 + */ + Boolean insertByBo(WmsDeliveryPlanCoilOperateBo bo); + + /** + * 修改发货计划钢卷操作记录 + */ + Boolean updateByBo(WmsDeliveryPlanCoilOperateBo bo); + + /** + * 校验并批量删除发货计划钢卷操作记录信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + List getCoilOperate(Long planId, String coilIds); +} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanDetailService.java b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanDetailService.java new file mode 100644 index 00000000..82f4b8ca --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanDetailService.java @@ -0,0 +1,49 @@ +package com.klp.service; + +import com.klp.domain.WmsDeliveryPlanDetail; +import com.klp.domain.vo.WmsDeliveryPlanDetailVo; +import com.klp.domain.bo.WmsDeliveryPlanDetailBo; +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-12-17 + */ +public interface IWmsDeliveryPlanDetailService { + + /** + * 查询发货计划明细 + */ + WmsDeliveryPlanDetailVo queryById(Long detailId); + + /** + * 查询发货计划明细列表 + */ + TableDataInfo queryPageList(WmsDeliveryPlanDetailBo bo, PageQuery pageQuery); + + /** + * 查询发货计划明细列表 + */ + List queryList(WmsDeliveryPlanDetailBo bo); + + /** + * 新增发货计划明细 + */ + Boolean insertByBo(WmsDeliveryPlanDetailBo bo); + + /** + * 修改发货计划明细 + */ + Boolean updateByBo(WmsDeliveryPlanDetailBo bo); + + /** + * 校验并批量删除发货计划明细信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanCoilOperateServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanCoilOperateServiceImpl.java new file mode 100644 index 00000000..38916d4e --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanCoilOperateServiceImpl.java @@ -0,0 +1,148 @@ +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 com.klp.domain.bo.WmsMaterialCoilBo; +import com.klp.domain.vo.WmsMaterialCoilVo; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.domain.bo.WmsDeliveryPlanCoilOperateBo; +import com.klp.domain.vo.WmsDeliveryPlanCoilOperateVo; +import com.klp.domain.WmsDeliveryPlanCoilOperate; +import com.klp.mapper.WmsDeliveryPlanCoilOperateMapper; +import com.klp.service.IWmsDeliveryPlanCoilOperateService; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 发货计划钢卷操作记录Service业务层处理 + * + * @author klp + * @date 2025-12-17 + */ +@RequiredArgsConstructor +@Service +public class WmsDeliveryPlanCoilOperateServiceImpl implements IWmsDeliveryPlanCoilOperateService { + + private final WmsDeliveryPlanCoilOperateMapper baseMapper; + + private WmsMaterialCoilServiceImpl materialCoilService; + + /** + * 查询发货计划钢卷操作记录 + */ + @Override + public WmsDeliveryPlanCoilOperateVo queryById(Long operateId){ + return baseMapper.selectVoById(operateId); + } + + /** + * 查询发货计划钢卷操作记录列表 + */ + @Override + public TableDataInfo queryPageList(WmsDeliveryPlanCoilOperateBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询发货计划钢卷操作记录列表 + */ + @Override + public List queryList(WmsDeliveryPlanCoilOperateBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsDeliveryPlanCoilOperateBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getPlanId() != null, WmsDeliveryPlanCoilOperate::getPlanId, bo.getPlanId()); + lqw.eq(bo.getCoilId() != null, WmsDeliveryPlanCoilOperate::getCoilId, bo.getCoilId()); + lqw.eq(StringUtils.isNotBlank(bo.getOperateType()), WmsDeliveryPlanCoilOperate::getOperateType, bo.getOperateType()); + return lqw; + } + + /** + * 新增发货计划钢卷操作记录 + */ + @Override + public Boolean insertByBo(WmsDeliveryPlanCoilOperateBo bo) { + WmsDeliveryPlanCoilOperate add = BeanUtil.toBean(bo, WmsDeliveryPlanCoilOperate.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setOperateId(add.getOperateId()); + } + return flag; + } + + /** + * 修改发货计划钢卷操作记录 + */ + @Override + public Boolean updateByBo(WmsDeliveryPlanCoilOperateBo bo) { + WmsDeliveryPlanCoilOperate update = BeanUtil.toBean(bo, WmsDeliveryPlanCoilOperate.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsDeliveryPlanCoilOperate entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除发货计划钢卷操作记录 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } + + @Override + public List getCoilOperate(Long planId, String coilIds) { + // 边界校验:空值/空字符串直接返回空列表 + if (planId == null || coilIds == null || coilIds.trim().isEmpty()) { + return Collections.emptyList(); + } + String[] coilIdArray = coilIds.split(","); + // 过滤空字符串(避免split出""的情况,比如coilIds是",1002,") + coilIdArray = Arrays.stream(coilIdArray) + .filter(StringUtils::isNotBlank) + .toArray(String[]::new); + if (coilIdArray.length == 0) { + return Collections.emptyList(); + } + List coilOperate = baseMapper.getCoilOperate(planId, coilIdArray); + //接着就是根据钢卷ids去查询钢卷list了 用分页查询的list就需要设置分页参数都设置为最大即可 + WmsMaterialCoilBo bo = new WmsMaterialCoilBo(); + bo.setCoilIds(coilIds); + PageQuery pageQuery = new PageQuery(); + pageQuery.setPageNum(1); + pageQuery.setPageSize(Integer.MAX_VALUE); + TableDataInfo tableDataInfo = materialCoilService.queryPageList(bo, pageQuery); + List coilDetails = tableDataInfo.getRows(); + // 将钢卷详细信息设置到操作记录中 + Map coilDetailMap = coilDetails.stream() + .collect(Collectors.toMap(WmsMaterialCoilVo::getCoilId, coil -> coil)); + + for (WmsDeliveryPlanCoilOperateVo operate : coilOperate) { + operate.setCoilDetail(coilDetailMap.get(operate.getCoilId())); + } + + return coilOperate; + } +} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanDetailServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanDetailServiceImpl.java new file mode 100644 index 00000000..a47116bd --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanDetailServiceImpl.java @@ -0,0 +1,114 @@ +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.WmsDeliveryPlanDetailBo; +import com.klp.domain.vo.WmsDeliveryPlanDetailVo; +import com.klp.domain.WmsDeliveryPlanDetail; +import com.klp.mapper.WmsDeliveryPlanDetailMapper; +import com.klp.service.IWmsDeliveryPlanDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 发货计划明细Service业务层处理 + * + * @author klp + * @date 2025-12-17 + */ +@RequiredArgsConstructor +@Service +public class WmsDeliveryPlanDetailServiceImpl implements IWmsDeliveryPlanDetailService { + + private final WmsDeliveryPlanDetailMapper baseMapper; + + /** + * 查询发货计划明细 + */ + @Override + public WmsDeliveryPlanDetailVo queryById(Long detailId){ + return baseMapper.selectVoById(detailId); + } + + /** + * 查询发货计划明细列表 + */ + @Override + public TableDataInfo queryPageList(WmsDeliveryPlanDetailBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询发货计划明细列表 + */ + @Override + public List queryList(WmsDeliveryPlanDetailBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsDeliveryPlanDetailBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getPlanId() != null, WmsDeliveryPlanDetail::getPlanId, bo.getPlanId()); + lqw.eq(bo.getOrderId() != null, WmsDeliveryPlanDetail::getOrderId, bo.getOrderId()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderDetail()), WmsDeliveryPlanDetail::getOrderDetail, bo.getOrderDetail()); + lqw.eq(bo.getCustomerId() != null, WmsDeliveryPlanDetail::getCustomerId, bo.getCustomerId()); + lqw.eq(StringUtils.isNotBlank(bo.getCustomerDetail()), WmsDeliveryPlanDetail::getCustomerDetail, bo.getCustomerDetail()); + lqw.eq(StringUtils.isNotBlank(bo.getAddress()), WmsDeliveryPlanDetail::getAddress, bo.getAddress()); + return lqw; + } + + /** + * 新增发货计划明细 + */ + @Override + public Boolean insertByBo(WmsDeliveryPlanDetailBo bo) { + WmsDeliveryPlanDetail add = BeanUtil.toBean(bo, WmsDeliveryPlanDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setDetailId(add.getDetailId()); + } + return flag; + } + + /** + * 修改发货计划明细 + */ + @Override + public Boolean updateByBo(WmsDeliveryPlanDetailBo bo) { + WmsDeliveryPlanDetail update = BeanUtil.toBean(bo, WmsDeliveryPlanDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsDeliveryPlanDetail 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/WmsDeliveryPlanCoilOperateMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsDeliveryPlanCoilOperateMapper.xml new file mode 100644 index 00000000..decae65c --- /dev/null +++ b/klp-wms/src/main/resources/mapper/klp/WmsDeliveryPlanCoilOperateMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/klp-wms/src/main/resources/mapper/klp/WmsDeliveryPlanDetailMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsDeliveryPlanDetailMapper.xml new file mode 100644 index 00000000..7b9b73f6 --- /dev/null +++ b/klp-wms/src/main/resources/mapper/klp/WmsDeliveryPlanDetailMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + +