diff --git a/klp-wms/src/main/java/com/klp/controller/WmsProductBomController.java b/klp-wms/src/main/java/com/klp/controller/WmsProductBomController.java deleted file mode 100644 index edf51e4d..00000000 --- a/klp-wms/src/main/java/com/klp/controller/WmsProductBomController.java +++ /dev/null @@ -1,100 +0,0 @@ -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 cn.dev33.satoken.annotation.SaCheckPermission; -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.WmsProductBomVo; -import com.klp.domain.bo.WmsProductBomBo; -import com.klp.service.IWmsProductBomService; -import com.klp.common.core.page.TableDataInfo; - -/** - * 产品BOM(产品-原材料清单) - * - * @author Joshi - * @date 2025-07-18 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/wms/productBom") -public class WmsProductBomController extends BaseController { - - private final IWmsProductBomService iWmsProductBomService; - - /** - * 查询产品BOM(产品-原材料清单)列表 - */ - @GetMapping("/list") - public TableDataInfo list(WmsProductBomBo bo, PageQuery pageQuery) { - return iWmsProductBomService.queryPageList(bo, pageQuery); - } - - /** - * 导出产品BOM(产品-原材料清单)列表 - */ - @Log(title = "产品BOM(产品-原材料清单)", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(WmsProductBomBo bo, HttpServletResponse response) { - List list = iWmsProductBomService.queryList(bo); - ExcelUtil.exportExcel(list, "产品BOM(产品-原材料清单)", WmsProductBomVo.class, response); - } - - /** - * 获取产品BOM(产品-原材料清单)详细信息 - * - * @param bomId 主键 - */ - @GetMapping("/{bomId}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long bomId) { - return R.ok(iWmsProductBomService.queryById(bomId)); - } - - /** - * 新增产品BOM(产品-原材料清单) - */ - @Log(title = "产品BOM(产品-原材料清单)", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsProductBomBo bo) { - return toAjax(iWmsProductBomService.insertByBo(bo)); - } - - /** - * 修改产品BOM(产品-原材料清单) - */ - @Log(title = "产品BOM(产品-原材料清单)", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WmsProductBomBo bo) { - return toAjax(iWmsProductBomService.updateByBo(bo)); - } - - /** - * 删除产品BOM(产品-原材料清单) - * - * @param bomIds 主键串 - */ - @Log(title = "产品BOM(产品-原材料清单)", businessType = BusinessType.DELETE) - @DeleteMapping("/{bomIds}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] bomIds) { - return toAjax(iWmsProductBomService.deleteWithValidByIds(Arrays.asList(bomIds), true)); - } -} diff --git a/klp-wms/src/main/java/com/klp/controller/WmsPurchasePlanController.java b/klp-wms/src/main/java/com/klp/controller/WmsPurchasePlanController.java deleted file mode 100644 index 8e8c1e42..00000000 --- a/klp-wms/src/main/java/com/klp/controller/WmsPurchasePlanController.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.klp.controller; - -import java.util.List; -import java.util.Arrays; -import java.util.Map; - -import com.klp.domain.vo.RecognizeTextVo; -import com.klp.service.ITesseractOcrService; -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.WmsPurchasePlanVo; -import com.klp.domain.bo.WmsPurchasePlanBo; -import com.klp.service.IWmsPurchasePlanService; -import com.klp.common.core.page.TableDataInfo; - -/** - * 采购计划主 - * - * @author Joshi - * @date 2025-07-18 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/wms/purchasePlan") -public class WmsPurchasePlanController extends BaseController { - - private final IWmsPurchasePlanService iWmsPurchasePlanService; - private final ITesseractOcrService iTesseractOcrService; - - /** - * 新增采购计划(含明细) - */ - @PostMapping("/addWithDetails") - public R addPurchasePlan(@RequestBody WmsPurchasePlanVo planVo) { - return toAjax(iWmsPurchasePlanService.insertWithDetails(planVo)); - } -// /** -// * 根据订单ID生成推荐采购计划(只返回,不落库) -// */ -// @GetMapping("/recommend/{orderId}") -// public R recommendPurchasePlan(@PathVariable Long orderId) { -// WmsPurchasePlanVo planVo = iWmsPurchasePlanService.recommendPurchasePlanByOrder(orderId); -// return R.ok(planVo); -// } - - /** - * 识别图片中的文字 - * @param request 图片地址 - * @return 识别出的文字 - */ - @PostMapping("/recognizeText") - public R recognize(@RequestBody Map request) { - String imgUrl = request.get("imgUrl"); - String text = iTesseractOcrService.recognizeText(imgUrl); - return R.ok(new RecognizeTextVo(text)); - } - - /** - * 识别PDF文件中的文字 - * @param request PDF文件地址 - * @return 识别出的文字 - */ - @PostMapping("/recognizePdfText") - public R recognizePdf(@RequestBody Map request) { - String pdfUrl = request.get("pdfUrl"); - String text = iTesseractOcrService.recognizePdfText(pdfUrl); - return R.ok(new RecognizeTextVo(text)); - } - - /** - * 查询采购计划主列表 - */ - @GetMapping("/list") - public TableDataInfo list(WmsPurchasePlanBo bo, PageQuery pageQuery) { - return iWmsPurchasePlanService.queryPageList(bo, pageQuery); - } - - /** - * 导出采购计划主列表 - */ - @Log(title = "采购计划主", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(WmsPurchasePlanBo bo, HttpServletResponse response) { - List list = iWmsPurchasePlanService.queryList(bo); - ExcelUtil.exportExcel(list, "采购计划主", WmsPurchasePlanVo.class, response); - } - - /** - * 获取采购计划主详细信息 - * - * @param planId 主键 - */ - @GetMapping("/{planId}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long planId) { - return R.ok(iWmsPurchasePlanService.queryById(planId)); - } - - /** - * 新增采购计划主 - */ - @Log(title = "采购计划主", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsPurchasePlanBo bo) { - return toAjax(iWmsPurchasePlanService.insertByBo(bo)); - } - - /** - * 修改采购计划主 - */ - @Log(title = "采购计划主", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WmsPurchasePlanBo bo) { - return toAjax(iWmsPurchasePlanService.updateByBo(bo)); - } - - /** - * 删除采购计划主 - * - * @param planIds 主键串 - */ - @Log(title = "采购计划主", businessType = BusinessType.DELETE) - @DeleteMapping("/{planIds}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] planIds) { - return toAjax(iWmsPurchasePlanService.deleteWithValidByIds(Arrays.asList(planIds), true)); - } -} diff --git a/klp-wms/src/main/java/com/klp/controller/WmsPurchasePlanDetailController.java b/klp-wms/src/main/java/com/klp/controller/WmsPurchasePlanDetailController.java deleted file mode 100644 index c6d62cc8..00000000 --- a/klp-wms/src/main/java/com/klp/controller/WmsPurchasePlanDetailController.java +++ /dev/null @@ -1,100 +0,0 @@ -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 cn.dev33.satoken.annotation.SaCheckPermission; -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.WmsPurchasePlanDetailVo; -import com.klp.domain.bo.WmsPurchasePlanDetailBo; -import com.klp.service.IWmsPurchasePlanDetailService; -import com.klp.common.core.page.TableDataInfo; - -/** - * 采购计划明细 - * - * @author Joshi - * @date 2025-07-18 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/wms/purchasePlanDetail") -public class WmsPurchasePlanDetailController extends BaseController { - - private final IWmsPurchasePlanDetailService iWmsPurchasePlanDetailService; - - /** - * 查询采购计划明细列表 - */ - @GetMapping("/list") - public TableDataInfo list(WmsPurchasePlanDetailBo bo, PageQuery pageQuery) { - return iWmsPurchasePlanDetailService.queryPageList(bo, pageQuery); - } - - /** - * 导出采购计划明细列表 - */ - @Log(title = "采购计划明细", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(WmsPurchasePlanDetailBo bo, HttpServletResponse response) { - List list = iWmsPurchasePlanDetailService.queryList(bo); - ExcelUtil.exportExcel(list, "采购计划明细", WmsPurchasePlanDetailVo.class, response); - } - - /** - * 获取采购计划明细详细信息 - * - * @param detailId 主键 - */ - @GetMapping("/{detailId}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long detailId) { - return R.ok(iWmsPurchasePlanDetailService.queryById(detailId)); - } - - /** - * 新增采购计划明细 - */ - @Log(title = "采购计划明细", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsPurchasePlanDetailBo bo) { - return toAjax(iWmsPurchasePlanDetailService.insertByBo(bo)); - } - - /** - * 修改采购计划明细 - */ - @Log(title = "采购计划明细", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WmsPurchasePlanDetailBo bo) { - return toAjax(iWmsPurchasePlanDetailService.updateByBo(bo)); - } - - /** - * 删除采购计划明细 - * - * @param detailIds 主键串 - */ - @Log(title = "采购计划明细", businessType = BusinessType.DELETE) - @DeleteMapping("/{detailIds}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] detailIds) { - return toAjax(iWmsPurchasePlanDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true)); - } -} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsProductBom.java b/klp-wms/src/main/java/com/klp/domain/WmsProductBom.java deleted file mode 100644 index 934cad48..00000000 --- a/klp-wms/src/main/java/com/klp/domain/WmsProductBom.java +++ /dev/null @@ -1,49 +0,0 @@ -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; - -/** - * 产品BOM(产品-原材料清单)对象 wms_product_bom - * - * @author Joshi - * @date 2025-07-18 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("wms_product_bom") -public class WmsProductBom extends BaseEntity { - - private static final long serialVersionUID=1L; - - /** - * BOM主键ID - */ - @TableId(value = "bom_id") - private Long bomId; - /** - * 产品ID - */ - private Long productId; - /** - * 原材料ID - */ - private Long rawMaterialId; - /** - * 每个产品所需原材料数量 - */ - private BigDecimal quantity; - /** - * 单位 - */ - private String unit; - /** - * 备注 - */ - private String remark; - -} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsPurchasePlan.java b/klp-wms/src/main/java/com/klp/domain/WmsPurchasePlan.java deleted file mode 100644 index 60af3f17..00000000 --- a/klp-wms/src/main/java/com/klp/domain/WmsPurchasePlan.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.klp.domain; - -import com.baomidou.mybatisplus.annotation.*; -import com.klp.common.core.domain.BaseEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; - - -/** - * 采购计划主对象 wms_purchase_plan - * - * @author Joshi - * @date 2025-07-18 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("wms_purchase_plan") -public class WmsPurchasePlan extends BaseEntity { - - private static final long serialVersionUID=1L; - - /** - * 采购计划ID - */ - @TableId(value = "plan_id") - private Long planId; - /** - * 采购计划编号 - */ - private String planCode; - /** - * 负责人 - */ - private String owner; - /** - * 关联订单ID - */ - private Long orderId; - /** - * 状态(0=新建,1=待审核,2=已审核,3=已完成,4=已取消) - */ - private Integer status; - /** - * 附件信息 - */ - private String attachmentInfo; - /** - * 备注 - */ - private String remark; - /** - * 删除标志(0=正常,1=已删除) - */ - @TableLogic - private Integer delFlag; - -} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsPurchasePlanDetail.java b/klp-wms/src/main/java/com/klp/domain/WmsPurchasePlanDetail.java deleted file mode 100644 index 98c98299..00000000 --- a/klp-wms/src/main/java/com/klp/domain/WmsPurchasePlanDetail.java +++ /dev/null @@ -1,81 +0,0 @@ -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_purchase_plan_detail - * - * @author Joshi - * @date 2025-07-18 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("wms_purchase_plan_detail") -public class WmsPurchasePlanDetail extends BaseEntity { - - private static final long serialVersionUID=1L; - - /** - * 明细ID - */ - @TableId(value = "detail_id") - private Long detailId; - /** - * 采购计划ID - */ - private Long planId; - /** - * 原材料ID - */ - private Long rawMaterialId; - /** - * 负责人 - */ - private String owner; - /** - * 计划采购数量 - */ - private BigDecimal quantity; - /** - * 单位 - */ - private String unit; - /** - * 附件 - */ - private String annex; - /** - * 状态( 0=新建,1=在途,2=到货,3=待审核,4=采购完成) - */ - private Integer status; - /** - * 备注 - */ - private String remark; - /** - * 删除标志(0=正常,1=已删除) - */ - @TableLogic - private Integer delFlag; - - /** - * 供应商ID - */ - private Long supplierId; - - /** - * 合同ID - */ - private Long contractId; - - /** - * 详情编号 - */ - private String detailCode; - -} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsProductBomBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsProductBomBo.java deleted file mode 100644 index a2e8fb23..00000000 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsProductBomBo.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.klp.domain.bo; - -import com.klp.common.core.domain.BaseEntity; -import com.klp.common.core.validate.AddGroup; -import com.klp.common.core.validate.EditGroup; -import lombok.Data; -import lombok.EqualsAndHashCode; -import javax.validation.constraints.*; - -import java.math.BigDecimal; - -/** - * 产品BOM(产品-原材料清单)业务对象 wms_product_bom - * - * @author Joshi - * @date 2025-07-18 - */ - -@Data -@EqualsAndHashCode(callSuper = true) -public class WmsProductBomBo extends BaseEntity { - - /** - * BOM主键ID - */ - private Long bomId; - - /** - * 产品ID - */ - @NotNull(message = "产品ID不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long productId; - - /** - * 原材料ID - */ - @NotNull(message = "原材料ID不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long rawMaterialId; - - /** - * 每个产品所需原材料数量 - */ - @NotNull(message = "每个产品所需原材料数量不能为空", groups = { AddGroup.class, EditGroup.class }) - private BigDecimal quantity; - - /** - * 单位 - */ - @NotBlank(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class }) - private String unit; - - /** - * 备注 - */ - private String remark; - - -} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsPurchasePlanBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsPurchasePlanBo.java deleted file mode 100644 index 07fce051..00000000 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsPurchasePlanBo.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.klp.domain.bo; - -import com.klp.common.core.domain.BaseEntity; -import com.klp.common.core.validate.AddGroup; -import com.klp.common.core.validate.EditGroup; -import lombok.Data; -import lombok.EqualsAndHashCode; -import javax.validation.constraints.*; - - -/** - * 采购计划主业务对象 wms_purchase_plan - * - * @author Joshi - * @date 2025-07-18 - */ - -@Data -@EqualsAndHashCode(callSuper = true) -public class WmsPurchasePlanBo extends BaseEntity { - - /** - * 采购计划ID - */ - private Long planId; - - /** - * 采购计划编号 - */ - private String planCode; - - /** - * 负责人 - */ - private String owner; - - /** - * 关联订单ID - */ - private Long orderId; - - /** - * 状态(0=新建,1=待审核,2=已审核,3=已完成,4=已取消) - */ - private Integer status; - - /** - * 附件信息 - */ - private String attachmentInfo; - - /** - * 备注 - */ - private String remark; - - -} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsPurchasePlanDetailBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsPurchasePlanDetailBo.java deleted file mode 100644 index 37e3c605..00000000 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsPurchasePlanDetailBo.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.klp.domain.bo; - -import com.klp.common.core.domain.BaseEntity; -import com.klp.common.core.validate.AddGroup; -import com.klp.common.core.validate.EditGroup; -import lombok.Data; -import lombok.EqualsAndHashCode; -import javax.validation.constraints.*; - -import java.math.BigDecimal; - -/** - * 采购计划明细业务对象 wms_purchase_plan_detail - * - * @author Joshi - * @date 2025-07-18 - */ - -@Data -@EqualsAndHashCode(callSuper = true) -public class WmsPurchasePlanDetailBo extends BaseEntity { - - /** - * 明细ID - */ - private Long detailId; - - /** - * 采购计划ID - */ - private Long planId; - - /** - * 原材料ID - */ - private Long rawMaterialId; - - /** - * 负责人 - */ - private String owner; - - /** - * 计划采购数量 - */ - private BigDecimal quantity; - - /** - * 单位 - */ - private String unit; - - /** - * 附件 - */ - private String annex; - - /** - * 状态( 0=新建,1=在途,2=到货,3=待审核,4=采购完成) - */ - private Integer status; - - /** - * 备注 - */ - private String remark; - - /** - * 供应商ID - */ - private Long supplierId; - - /** - * 合同ID - */ - private Long contractId; - - /** - * 详情编号 - */ - private String detailCode; - - -} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsProductBomVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsProductBomVo.java deleted file mode 100644 index 45086a0f..00000000 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsProductBomVo.java +++ /dev/null @@ -1,77 +0,0 @@ -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; - - -/** - * 产品BOM(产品-原材料清单)视图对象 wms_product_bom - * - * @author Joshi - * @date 2025-07-18 - */ -@Data -@ExcelIgnoreUnannotated -public class WmsProductBomVo { - - private static final long serialVersionUID = 1L; - - /** - * BOM主键ID - */ - @ExcelProperty(value = "BOM主键ID") - private Long bomId; - - /** - * 产品ID - */ - @ExcelProperty(value = "产品ID") - private Long productId; - - /** - * 原材料ID - */ - @ExcelProperty(value = "原材料ID") - private Long rawMaterialId; - - /** - * 每个产品所需原材料数量 - */ - @ExcelProperty(value = "每个产品所需原材料数量") - private BigDecimal quantity; - - /** - * 单位 - */ - @ExcelProperty(value = "单位") - private String unit; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - /** - * 产品名称 - */ - private String productName; - /** - * 产品编码 - */ - private String productCode; - /** - * 原材料名称 - */ - private String rawMaterialName; - /** - * 原材料编码 - */ - private String rawMaterialCode; - - -} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsPurchasePlanDetailVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsPurchasePlanDetailVo.java deleted file mode 100644 index 185db049..00000000 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsPurchasePlanDetailVo.java +++ /dev/null @@ -1,119 +0,0 @@ -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_purchase_plan_detail - * - * @author Joshi - * @date 2025-07-18 - */ -@Data -@ExcelIgnoreUnannotated -public class WmsPurchasePlanDetailVo { - - private static final long serialVersionUID = 1L; - - /** - * 明细ID - */ - @ExcelProperty(value = "明细ID") - private Long detailId; - - /** - * 采购计划ID - */ - @ExcelProperty(value = "采购计划ID") - private Long planId; - - /** - * 原材料ID - */ - @ExcelProperty(value = "原材料ID") - private Long rawMaterialId; - - /** - * 负责人 - */ - @ExcelProperty(value = "负责人") - private String owner; - - /** - * 计划采购数量 - */ - @ExcelProperty(value = "计划采购数量") - private BigDecimal quantity; - - /** - * 单位 - */ - @ExcelProperty(value = "单位") - private String unit; - - /** - * 附件 - */ - @ExcelProperty(value = "附件") - private String annex; - - /** - * 状态( 0=新建,1=在途,2=到货,3=待审核,4=采购完成) - */ - @ExcelProperty(value = "状态") - private Integer status; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - @ExcelProperty(value = "原材料名称") - private String rawMaterialName; - @ExcelProperty(value = "原材料编码") - private String rawMaterialCode; - - /** - * 需求量 - */ - private BigDecimal demand; - /** - * 库存量 - */ - private BigDecimal inventory; - /** - * 在途量 - */ - private BigDecimal onTheWay; - - /** - * 供应商ID - */ - private Long supplierId; - - /** - * 合同ID - */ - private Long contractId; - - /** - * 供应商名称 - */ - private String supplierName; - - /** - * 合同编号 - */ - private String contractNo; - - /** - * 详情编号 - */ - private String detailCode; -} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsPurchasePlanVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsPurchasePlanVo.java deleted file mode 100644 index e4031da8..00000000 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsPurchasePlanVo.java +++ /dev/null @@ -1,72 +0,0 @@ -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_purchase_plan - * - * @author Joshi - * @date 2025-07-18 - */ -@Data -@ExcelIgnoreUnannotated -public class WmsPurchasePlanVo { - - private static final long serialVersionUID = 1L; - - /** - * 采购计划ID - */ - @ExcelProperty(value = "采购计划ID") - private Long planId; - - /** - * 采购计划编号 - */ - @ExcelProperty(value = "采购计划编号") - private String planCode; - - /** - * 负责人 - */ - @ExcelProperty(value = "负责人") - private String owner; - - /** - * 关联订单ID - */ - @ExcelProperty(value = "关联订单ID") - private Long orderId; - - /** - * 状态(0=新建,1=待审核,2=已审核,3=已完成,4=已取消) - */ - @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "0==新建,1=待审核,2=已审核,3=已完成,4=已取消") - private Integer status; - - /** - * 附件信息 - */ - @ExcelProperty(value = "附件信息") - private String attachmentInfo; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - /** - * 采购计划明细列表 - */ - private List detailList; - -} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsProductBomMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsProductBomMapper.java deleted file mode 100644 index f1331635..00000000 --- a/klp-wms/src/main/java/com/klp/mapper/WmsProductBomMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.klp.mapper; - -import com.klp.domain.WmsProductBom; -import com.klp.domain.vo.WmsProductBomVo; -import com.klp.common.core.mapper.BaseMapperPlus; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 产品BOM(产品-原材料清单)Mapper接口 - * - * @author Joshi - * @date 2025-07-18 - */ -public interface WmsProductBomMapper extends BaseMapperPlus { - - List listByProductId(Long productId); - - /** - * 分页联查产品和原材料名称编码,支持Wrapper动态条件,返回Page - */ - Page selectVoPagePlus(Page page, @Param("ew") Wrapper wrapper); -} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsPurchasePlanDetailMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsPurchasePlanDetailMapper.java deleted file mode 100644 index 4fd8a1a6..00000000 --- a/klp-wms/src/main/java/com/klp/mapper/WmsPurchasePlanDetailMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.klp.mapper; - -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.klp.domain.WmsPurchasePlanDetail; -import com.klp.domain.vo.WmsPurchasePlanDetailVo; -import com.klp.common.core.mapper.BaseMapperPlus; -import org.apache.ibatis.annotations.Param; - -import java.math.BigDecimal; - -/** - * 采购计划明细Mapper接口 - * - * @author Joshi - * @date 2025-07-18 - */ -public interface WmsPurchasePlanDetailMapper extends BaseMapperPlus { - - Page selectVoPagePlus(Page page, @Param("ew") Wrapper wrapper); - - /** - * 查在途的原材料 - */ - BigDecimal getByRawMaterialIdAndOnTheWay(Long rawMaterialId); -} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsPurchasePlanMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsPurchasePlanMapper.java deleted file mode 100644 index 98207699..00000000 --- a/klp-wms/src/main/java/com/klp/mapper/WmsPurchasePlanMapper.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.klp.mapper; - -import com.klp.domain.WmsPurchasePlan; -import com.klp.domain.vo.WmsPurchasePlanVo; -import com.klp.common.core.mapper.BaseMapperPlus; - -/** - * 采购计划主Mapper接口 - * - * @author Joshi - * @date 2025-07-18 - */ -public interface WmsPurchasePlanMapper extends BaseMapperPlus { - -} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsProductBomService.java b/klp-wms/src/main/java/com/klp/service/IWmsProductBomService.java deleted file mode 100644 index 0b0f06d1..00000000 --- a/klp-wms/src/main/java/com/klp/service/IWmsProductBomService.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.klp.service; - -import com.klp.domain.WmsProductBom; -import com.klp.domain.vo.WmsProductBomVo; -import com.klp.domain.bo.WmsProductBomBo; -import com.klp.common.core.page.TableDataInfo; -import com.klp.common.core.domain.PageQuery; - -import java.util.Collection; -import java.util.List; - -/** - * 产品BOM(产品-原材料清单)Service接口 - * - * @author Joshi - * @date 2025-07-18 - */ -public interface IWmsProductBomService { - - /** - * 查询产品BOM(产品-原材料清单) - */ - WmsProductBomVo queryById(Long bomId); - - /** - * 查询产品BOM(产品-原材料清单)列表 - */ - TableDataInfo queryPageList(WmsProductBomBo bo, PageQuery pageQuery); - - /** - * 查询产品BOM(产品-原材料清单)列表 - */ - List queryList(WmsProductBomBo bo); - - /** - * 新增产品BOM(产品-原材料清单) - */ - Boolean insertByBo(WmsProductBomBo bo); - - /** - * 修改产品BOM(产品-原材料清单) - */ - Boolean updateByBo(WmsProductBomBo bo); - - /** - * 校验并批量删除产品BOM(产品-原材料清单)信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - - /** - * 根据产品ID查询产品BOM(产品-原材料清单)列表 - */ - List listByProductId(Long productId); -} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsPurchasePlanDetailService.java b/klp-wms/src/main/java/com/klp/service/IWmsPurchasePlanDetailService.java deleted file mode 100644 index bfcea61e..00000000 --- a/klp-wms/src/main/java/com/klp/service/IWmsPurchasePlanDetailService.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.klp.service; - -import com.klp.domain.WmsPurchasePlanDetail; -import com.klp.domain.vo.WmsPurchasePlanDetailVo; -import com.klp.domain.bo.WmsPurchasePlanDetailBo; -import com.klp.common.core.page.TableDataInfo; -import com.klp.common.core.domain.PageQuery; - -import java.util.Collection; -import java.util.List; - -/** - * 采购计划明细Service接口 - * - * @author Joshi - * @date 2025-07-18 - */ -public interface IWmsPurchasePlanDetailService { - - /** - * 查询采购计划明细 - */ - WmsPurchasePlanDetailVo queryById(Long detailId); - - /** - * 查询采购计划明细列表 - */ - TableDataInfo queryPageList(WmsPurchasePlanDetailBo bo, PageQuery pageQuery); - - /** - * 查询采购计划明细列表 - */ - List queryList(WmsPurchasePlanDetailBo bo); - - /** - * 新增采购计划明细 - */ - Boolean insertByBo(WmsPurchasePlanDetailBo bo); - - /** - * 修改采购计划明细 - */ - Boolean updateByBo(WmsPurchasePlanDetailBo bo); - - /** - * 校验并批量删除采购计划明细信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsPurchasePlanService.java b/klp-wms/src/main/java/com/klp/service/IWmsPurchasePlanService.java deleted file mode 100644 index d9fd40e9..00000000 --- a/klp-wms/src/main/java/com/klp/service/IWmsPurchasePlanService.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.klp.service; - -import com.klp.domain.WmsPurchasePlan; -import com.klp.domain.vo.WmsPurchasePlanVo; -import com.klp.domain.bo.WmsPurchasePlanBo; -import com.klp.common.core.page.TableDataInfo; -import com.klp.common.core.domain.PageQuery; - -import java.util.Collection; -import java.util.List; - -/** - * 采购计划主Service接口 - * - * @author Joshi - * @date 2025-07-18 - */ -public interface IWmsPurchasePlanService { - - /** - * 新增采购计划(含明细) - */ - Boolean insertWithDetails(WmsPurchasePlanVo planVo); - -// /** -// * 根据订单ID生成推荐采购计划(只返回,不落库) -// */ -// WmsPurchasePlanVo recommendPurchasePlanByOrder(Long orderId); - - /** - * 查询采购计划主 - */ - WmsPurchasePlanVo queryById(Long planId); - - /** - * 查询采购计划主列表 - */ - TableDataInfo queryPageList(WmsPurchasePlanBo bo, PageQuery pageQuery); - - /** - * 查询采购计划主列表 - */ - List queryList(WmsPurchasePlanBo bo); - - /** - * 新增采购计划主 - */ - Boolean insertByBo(WmsPurchasePlanBo bo); - - /** - * 修改采购计划主 - */ - Boolean updateByBo(WmsPurchasePlanBo bo); - - /** - * 校验并批量删除采购计划主信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - -} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 09978257..59b5b984 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -32,7 +32,6 @@ import com.klp.service.IWmsGenerateRecordService; import com.klp.service.IWmsWarehouseService; import com.klp.service.IWmsActualWarehouseService; import com.klp.service.IWmsRawMaterialService; -import com.klp.service.IWmsProductBomService; import com.klp.service.IWmsBomItemService; import com.klp.domain.vo.WmsActualWarehouseVo; import com.fasterxml.jackson.databind.ObjectMapper; @@ -63,7 +62,6 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { private final IWmsWarehouseService warehouseService; private final IWmsActualWarehouseService actualWarehouseService; private final IWmsRawMaterialService rawMaterialService; - private final IWmsProductBomService productBomService; private final IWmsBomItemService bomItemService; /** diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsProductBomServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsProductBomServiceImpl.java deleted file mode 100644 index c7cc9441..00000000 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsProductBomServiceImpl.java +++ /dev/null @@ -1,128 +0,0 @@ -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.WmsProductBomBo; -import com.klp.domain.vo.WmsProductBomVo; -import com.klp.domain.WmsProductBom; -import com.klp.mapper.WmsProductBomMapper; -import com.klp.service.IWmsProductBomService; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; - -import java.util.List; -import java.util.Map; -import java.util.Collection; - -/** - * 产品BOM(产品-原材料清单)Service业务层处理 - * - * @author Joshi - * @date 2025-07-18 - */ -@RequiredArgsConstructor -@Service -public class WmsProductBomServiceImpl implements IWmsProductBomService { - - private final WmsProductBomMapper baseMapper; - - /** - * 查询产品BOM(产品-原材料清单) - */ - @Override - public WmsProductBomVo queryById(Long bomId){ - return baseMapper.selectVoById(bomId); - } - - /** - * 查询产品BOM(产品-原材料清单)列表 - */ - @Override - public TableDataInfo queryPageList(WmsProductBomBo bo, PageQuery pageQuery) { - QueryWrapper qw = buildQueryWrapperPlus(bo); - Page result = baseMapper.selectVoPagePlus(pageQuery.build(), qw); - return TableDataInfo.build(result); - } - - /** - * 查询产品BOM(产品-原材料清单)列表 - */ - @Override - public List queryList(WmsProductBomBo bo) { - LambdaQueryWrapper qw = buildQueryWrapper(bo); - return baseMapper.selectVoList(qw); - } - private LambdaQueryWrapper buildQueryWrapper(WmsProductBomBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(bo.getProductId() != null, WmsProductBom::getProductId, bo.getProductId()); - lqw.eq(bo.getRawMaterialId() != null, WmsProductBom::getRawMaterialId, bo.getRawMaterialId()); - lqw.eq(bo.getQuantity() != null, WmsProductBom::getQuantity, bo.getQuantity()); - lqw.eq(StringUtils.isNotBlank(bo.getUnit()), WmsProductBom::getUnit, bo.getUnit()); - return lqw; - } - - private QueryWrapper buildQueryWrapperPlus(WmsProductBomBo bo) { - Map params = bo.getParams(); - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("b.del_flag", 0); // 手动添加逻辑删除条件 - qw.eq(bo.getProductId() != null, "b.product_id", bo.getProductId()); - qw.eq(bo.getRawMaterialId() != null, "b.raw_material_id", bo.getRawMaterialId()); - qw.eq(bo.getQuantity() != null, "b.quantity", bo.getQuantity()); - qw.eq(StringUtils.isNotBlank(bo.getUnit()), "b.unit", bo.getUnit()); - return qw; - } - - /** - * 新增产品BOM(产品-原材料清单) - */ - @Override - public Boolean insertByBo(WmsProductBomBo bo) { - WmsProductBom add = BeanUtil.toBean(bo, WmsProductBom.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setBomId(add.getBomId()); - } - return flag; - } - - /** - * 修改产品BOM(产品-原材料清单) - */ - @Override - public Boolean updateByBo(WmsProductBomBo bo) { - WmsProductBom update = BeanUtil.toBean(bo, WmsProductBom.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(WmsProductBom entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除产品BOM(产品-原材料清单) - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } - - @Override - public List listByProductId(Long productId) { - return baseMapper.listByProductId(productId); - } -} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanDetailServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanDetailServiceImpl.java deleted file mode 100644 index cbb7e864..00000000 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanDetailServiceImpl.java +++ /dev/null @@ -1,128 +0,0 @@ -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.conditions.query.QueryWrapper; -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.WmsPurchasePlanDetailBo; -import com.klp.domain.vo.WmsPurchasePlanDetailVo; -import com.klp.domain.WmsPurchasePlanDetail; -import com.klp.mapper.WmsPurchasePlanDetailMapper; -import com.klp.service.IWmsPurchasePlanDetailService; - -import java.util.List; -import java.util.Map; -import java.util.Collection; - -/** - * 采购计划明细Service业务层处理 - * - * @author Joshi - * @date 2025-07-18 - */ -@RequiredArgsConstructor -@Service -public class WmsPurchasePlanDetailServiceImpl implements IWmsPurchasePlanDetailService { - - private final WmsPurchasePlanDetailMapper baseMapper; - - /** - * 查询采购计划明细 - */ - @Override - public WmsPurchasePlanDetailVo queryById(Long detailId){ - return baseMapper.selectVoById(detailId); - } - - /** - * 查询采购计划明细列表 - */ - @Override - public TableDataInfo queryPageList(WmsPurchasePlanDetailBo bo, PageQuery pageQuery) { - QueryWrapper qw = buildQueryWrapperPlus(bo); - Page result = baseMapper.selectVoPagePlus(pageQuery.build(), qw); - return TableDataInfo.build(result); - } - - /** - * 查询采购计划明细列表 - */ - @Override - public List queryList(WmsPurchasePlanDetailBo bo) { - LambdaQueryWrapper qw = buildQueryWrapper(bo); - return baseMapper.selectVoList(qw); - } - private LambdaQueryWrapper buildQueryWrapper(WmsPurchasePlanDetailBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(bo.getPlanId() != null, WmsPurchasePlanDetail::getPlanId, bo.getPlanId()); - lqw.eq(bo.getRawMaterialId() != null, WmsPurchasePlanDetail::getRawMaterialId, bo.getRawMaterialId()); - lqw.eq(StringUtils.isNotBlank(bo.getOwner()), WmsPurchasePlanDetail::getOwner, bo.getOwner()); - lqw.eq(bo.getQuantity() != null, WmsPurchasePlanDetail::getQuantity, bo.getQuantity()); - lqw.eq(StringUtils.isNotBlank(bo.getUnit()), WmsPurchasePlanDetail::getUnit, bo.getUnit()); - lqw.like(StringUtils.isNotBlank(bo.getDetailCode()), WmsPurchasePlanDetail::getDetailCode, bo.getDetailCode()); - return lqw; - } - - private QueryWrapper buildQueryWrapperPlus(WmsPurchasePlanDetailBo bo) { - Map params = bo.getParams(); - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("wpd.del_flag", 0); // 手动添加逻辑删除条件 - qw.eq(bo.getPlanId() != null, "wpd.plan_id", bo.getPlanId()); - qw.eq(bo.getRawMaterialId() != null, "wpd.raw_material_id", bo.getRawMaterialId()); - qw.eq(StringUtils.isNotBlank(bo.getOwner()), "wpd.owner", bo.getOwner()); - qw.eq(bo.getQuantity() != null, "wpd.quantity", bo.getQuantity()); - qw.eq(StringUtils.isNotBlank(bo.getUnit()), "wpd.unit", bo.getUnit()); - qw.like(StringUtils.isNotBlank(bo.getDetailCode()), "wpd.detail_code", bo.getDetailCode()); - return qw; - } - - /** - * 新增采购计划明细 - */ - @Override - public Boolean insertByBo(WmsPurchasePlanDetailBo bo) { - - WmsPurchasePlanDetail add = BeanUtil.toBean(bo, WmsPurchasePlanDetail.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setDetailId(add.getDetailId()); - } - return flag; - } - - /** - * 修改采购计划明细 - */ - @Override - public Boolean updateByBo(WmsPurchasePlanDetailBo bo) { - WmsPurchasePlanDetail update = BeanUtil.toBean(bo, WmsPurchasePlanDetail.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(WmsPurchasePlanDetail 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/WmsPurchasePlanServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanServiceImpl.java deleted file mode 100644 index fab0c026..00000000 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanServiceImpl.java +++ /dev/null @@ -1,208 +0,0 @@ -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.WmsProductBom; -import com.klp.domain.WmsPurchasePlanDetail; -import com.klp.domain.WmsRawMaterial; -import com.klp.domain.vo.WmsOrderDetailVo; -import com.klp.domain.vo.WmsPurchasePlanDetailVo; -import com.klp.mapper.WmsPurchasePlanDetailMapper; -import com.klp.mapper.WmsRawMaterialMapper; -import com.klp.service.*; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; -import com.klp.domain.bo.WmsPurchasePlanBo; -import com.klp.domain.vo.WmsPurchasePlanVo; -import com.klp.domain.WmsPurchasePlan; -import com.klp.mapper.WmsPurchasePlanMapper; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.math.BigDecimal; -import java.util.*; - -/** - * 采购计划主Service业务层处理 - * - * @author Joshi - * @date 2025-07-18 - */ -@RequiredArgsConstructor -@Service -public class WmsPurchasePlanServiceImpl implements IWmsPurchasePlanService { - - private final WmsPurchasePlanMapper baseMapper; - - private final IWmsOrderDetailService wmsOrderDetailService; - - private final IWmsProductBomService wmsProductBomService; - - private final IWmsStockService wmsStockService; - - @Resource - private WmsPurchasePlanDetailMapper wmsPurchasePlanDetailMapper; - - @Resource - private WmsRawMaterialMapper wmsRawMaterialMapper; - - @Transactional - @Override - public Boolean insertWithDetails(WmsPurchasePlanVo planVo) { - // 1. 保存主表 - WmsPurchasePlan plan = new WmsPurchasePlan(); - BeanUtils.copyProperties(planVo, plan); - int flag = 0; - flag += baseMapper.insert(plan); - - // 2. 保存明细表 - for (WmsPurchasePlanDetailVo detailVo : planVo.getDetailList()) { - WmsPurchasePlanDetail detail = new WmsPurchasePlanDetail(); - BeanUtils.copyProperties(detailVo, detail); - detail.setPlanId(plan.getPlanId()); // 关联主表ID - flag += wmsPurchasePlanDetailMapper.insert(detail); - } - return flag > 0; - } - -// @Override -// public WmsPurchasePlanVo recommendPurchasePlanByOrder(Long orderId) { -// // 1. 查询订单明细 -// List orderDetails = wmsOrderDetailService.queryListByOrderId(orderId); -// // 2. 汇总原材料需求 -// Map materialMap = new HashMap<>(); -// for (WmsOrderDetailVo detail : orderDetails) { -// List bomList = wmsProductBomService.listByProductId(detail.getProductId()); -// for (WmsProductBom bom : bomList) { -// BigDecimal needQty = bom.getQuantity().multiply(detail.getQuantity()); -// WmsPurchasePlanDetailVo vo = -// materialMap.getOrDefault(bom.getRawMaterialId(), new WmsPurchasePlanDetailVo()); -// vo.setRawMaterialId(bom.getRawMaterialId()); -// vo.setQuantity(vo.getQuantity() == null ? needQty : vo.getQuantity().add(needQty)); -// vo.setUnit(bom.getUnit()); -// // 挂载原材料名称编号 -// WmsRawMaterial wmsRawMaterial = wmsRawMaterialMapper.selectById(bom.getRawMaterialId()); -// vo.setRawMaterialName(wmsRawMaterial.getRawMaterialName()); -// vo.setRawMaterialCode(wmsRawMaterial.getRawMaterialCode()); -// materialMap.put(bom.getRawMaterialId(), vo); -// } -// } -// // 3. 查询库存并计算推荐采购量 -// for (WmsPurchasePlanDetailVo vo : materialMap.values()) { -// // 需求量 -// vo.setDemand(vo.getQuantity()); -// BigDecimal stockQty = wmsStockService.getStockByItemId(vo.getRawMaterialId()); -// // 库存量 -// if(stockQty == null){ -// stockQty = BigDecimal.ZERO; -// } -// vo.setInventory(stockQty); -// // 在途量 -// BigDecimal onTheWayQty = BigDecimal.ZERO; -// BigDecimal byRawMaterialIdAndOnTheWay = -// wmsPurchasePlanDetailMapper.getByRawMaterialIdAndOnTheWay(vo.getRawMaterialId()); -// if (byRawMaterialIdAndOnTheWay != null) { -// onTheWayQty = byRawMaterialIdAndOnTheWay; -// } -// vo.setOnTheWay(onTheWayQty); -// // 计算推荐采购量 -// BigDecimal recommendQty = vo.getQuantity().subtract(onTheWayQty).subtract(stockQty); -// vo.setQuantity(recommendQty.compareTo(BigDecimal.ZERO) > 0 ? recommendQty : BigDecimal.ZERO); -// } -// // 4. 组装主VO -// WmsPurchasePlanVo planVo = new WmsPurchasePlanVo(); -// planVo.setPlanCode("推荐计划-" + orderId); -// planVo.setOrderId(orderId); -// planVo.setOwner("系统推荐"); -// planVo.setRemark("仅供参考,实际采购请确认"); -// planVo.setDetailList(new ArrayList<>(materialMap.values())); -// return planVo; -// } - - /** - * 查询采购计划主 - */ - @Override - public WmsPurchasePlanVo queryById(Long planId){ - return baseMapper.selectVoById(planId); - } - - /** - * 查询采购计划主列表 - */ - @Override - public TableDataInfo queryPageList(WmsPurchasePlanBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询采购计划主列表 - */ - @Override - public List queryList(WmsPurchasePlanBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(WmsPurchasePlanBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getPlanCode()), WmsPurchasePlan::getPlanCode, bo.getPlanCode()); - lqw.eq(StringUtils.isNotBlank(bo.getOwner()), WmsPurchasePlan::getOwner, bo.getOwner()); - lqw.eq(bo.getOrderId() != null, WmsPurchasePlan::getOrderId, bo.getOrderId()); - lqw.eq(bo.getStatus() != null, WmsPurchasePlan::getStatus, bo.getStatus()); - return lqw; - } - - /** - * 新增采购计划主 - */ - @Override - public Boolean insertByBo(WmsPurchasePlanBo bo) { - WmsPurchasePlan add = BeanUtil.toBean(bo, WmsPurchasePlan.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setPlanId(add.getPlanId()); - } - return flag; - } - - /** - * 修改采购计划主 - */ - @Override - public Boolean updateByBo(WmsPurchasePlanBo bo) { - WmsPurchasePlan update = BeanUtil.toBean(bo, WmsPurchasePlan.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(WmsPurchasePlan entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除采购计划主 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - // 逻辑删除采购明细 - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.in(WmsPurchasePlanDetail::getPlanId, ids); - wmsPurchasePlanDetailMapper.delete(lqw); - // 逻辑删除采购计划主表 - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsRawMaterialServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsRawMaterialServiceImpl.java index 806d7a45..40cbe061 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsRawMaterialServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsRawMaterialServiceImpl.java @@ -15,15 +15,9 @@ import com.klp.domain.WmsRawMaterial; import com.klp.mapper.WmsRawMaterialMapper; import com.klp.service.IWmsRawMaterialService; import com.klp.service.IWmsStockService; -import com.klp.service.IWmsPurchasePlanDetailService; import com.klp.service.IWmsOrderDetailService; -import com.klp.service.IWmsProductBomService; import com.klp.service.IWmsOrderService; -import com.klp.domain.bo.WmsPurchasePlanDetailBo; import com.klp.domain.bo.WmsOrderDetailBo; -import com.klp.domain.bo.WmsProductBomBo; -import com.klp.domain.vo.WmsPurchasePlanDetailVo; -import com.klp.domain.vo.WmsProductBomVo; import com.klp.domain.vo.WmsOrderDetailVo; import com.klp.domain.vo.WmsOrderVo; import com.klp.service.IWmsBomService; @@ -50,10 +44,7 @@ import java.util.Arrays; public class WmsRawMaterialServiceImpl implements IWmsRawMaterialService { private final WmsRawMaterialMapper baseMapper; - private final IWmsStockService stockService; - private final IWmsPurchasePlanDetailService purchasePlanDetailService; private final IWmsOrderDetailService orderDetailService; - private final IWmsProductBomService productBomService; private final IWmsOrderService orderService; private final IWmsBomService wmsBomService; private final IWmsBomItemService wmsBomItemService; @@ -133,57 +124,57 @@ public class WmsRawMaterialServiceImpl implements IWmsRawMaterialService { // } // } - /** - * 获取在途量 - */ - private BigDecimal getOnTheWayQuantity(Long rawMaterialId) { - WmsPurchasePlanDetailBo bo = new WmsPurchasePlanDetailBo(); - bo.setRawMaterialId(rawMaterialId); - List list = purchasePlanDetailService.queryList(bo); - return list.stream() - .filter(item -> item.getStatus() != null && item.getStatus() == 1) // 在途状态 - .map(WmsPurchasePlanDetailVo::getQuantity) - .filter(qty -> qty != null) - .reduce(BigDecimal.ZERO, BigDecimal::add); - } - - /** - * 获取需求量 - */ - private BigDecimal getDemandQuantity(Long rawMaterialId) { - // 先查询包含该原材料的BOM - WmsProductBomBo bomBo = new WmsProductBomBo(); - bomBo.setRawMaterialId(rawMaterialId); - List bomList = productBomService.queryList(bomBo); - if (bomList.isEmpty()) { - return BigDecimal.ZERO; - } - // 查询这些产品的订单明细 - BigDecimal totalDemand = BigDecimal.ZERO; - for (WmsProductBomVo bom : bomList) { - WmsOrderDetailBo orderDetailBo = new WmsOrderDetailBo(); - orderDetailBo.setProductId(bom.getProductId()); - List orderDetails = orderDetailService.queryList(orderDetailBo); - // 逐个查询订单状态,过滤出有效订单的明细 - BigDecimal productDemand = BigDecimal.ZERO; - for (WmsOrderDetailVo detail : orderDetails) { - // 查询订单主表状态 - WmsOrderVo order = orderService.queryById(detail.getOrderId()); - if (order != null && order.getOrderStatus() != null && order.getOrderStatus() < 2) { - // 新建、生产中状态,累加数量 - if (detail.getQuantity() != null) { - productDemand = productDemand.add(detail.getQuantity()); - } - } - } - // 需求量 = 产品需求量 × BOM用量 - if (bom.getQuantity() != null) { - totalDemand = totalDemand.add(productDemand.multiply(bom.getQuantity())); - } - } - - return totalDemand; - } +// /** +// * 获取在途量 +// */ +// private BigDecimal getOnTheWayQuantity(Long rawMaterialId) { +// WmsPurchasePlanDetailBo bo = new WmsPurchasePlanDetailBo(); +// bo.setRawMaterialId(rawMaterialId); +// List list = purchasePlanDetailService.queryList(bo); +// return list.stream() +// .filter(item -> item.getStatus() != null && item.getStatus() == 1) // 在途状态 +// .map(WmsPurchasePlanDetailVo::getQuantity) +// .filter(qty -> qty != null) +// .reduce(BigDecimal.ZERO, BigDecimal::add); +// } +// +// /** +// * 获取需求量 +// */ +// private BigDecimal getDemandQuantity(Long rawMaterialId) { +// // 先查询包含该原材料的BOM +// WmsProductBomBo bomBo = new WmsProductBomBo(); +// bomBo.setRawMaterialId(rawMaterialId); +// List bomList = productBomService.queryList(bomBo); +// if (bomList.isEmpty()) { +// return BigDecimal.ZERO; +// } +// // 查询这些产品的订单明细 +// BigDecimal totalDemand = BigDecimal.ZERO; +// for (WmsProductBomVo bom : bomList) { +// WmsOrderDetailBo orderDetailBo = new WmsOrderDetailBo(); +// orderDetailBo.setProductId(bom.getProductId()); +// List orderDetails = orderDetailService.queryList(orderDetailBo); +// // 逐个查询订单状态,过滤出有效订单的明细 +// BigDecimal productDemand = BigDecimal.ZERO; +// for (WmsOrderDetailVo detail : orderDetails) { +// // 查询订单主表状态 +// WmsOrderVo order = orderService.queryById(detail.getOrderId()); +// if (order != null && order.getOrderStatus() != null && order.getOrderStatus() < 2) { +// // 新建、生产中状态,累加数量 +// if (detail.getQuantity() != null) { +// productDemand = productDemand.add(detail.getQuantity()); +// } +// } +// } +// // 需求量 = 产品需求量 × BOM用量 +// if (bom.getQuantity() != null) { +// totalDemand = totalDemand.add(productDemand.multiply(bom.getQuantity())); +// } +// } +// +// return totalDemand; +// } private LambdaQueryWrapper buildQueryWrapper(WmsRawMaterialBo bo) { Map params = bo.getParams(); diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsSalesScriptGeneratorServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsSalesScriptGeneratorServiceImpl.java index 6bf76cc3..71d46ef9 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsSalesScriptGeneratorServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsSalesScriptGeneratorServiceImpl.java @@ -5,10 +5,8 @@ import com.klp.common.utils.StringUtils; import com.klp.domain.bo.WmsSalesScriptGeneratorBo; import com.klp.domain.vo.WmsProductSalesScriptVo; import com.klp.domain.vo.WmsProductVo; -import com.klp.domain.WmsProductBom; import com.klp.service.IWmsSalesScriptGeneratorService; import com.klp.service.IWmsProductService; -import com.klp.service.IWmsProductBomService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; @@ -36,7 +34,6 @@ import java.util.regex.Pattern; public class WmsSalesScriptGeneratorServiceImpl implements IWmsSalesScriptGeneratorService { private final IWmsProductService iWmsProductService; - private final IWmsProductBomService iWmsProductBomService; @Qualifier("salesScriptRestTemplate") private final RestTemplate restTemplate; @@ -65,11 +62,9 @@ public class WmsSalesScriptGeneratorServiceImpl implements IWmsSalesScriptGenera throw new RuntimeException("产品不存在"); } - // 获取BOM信息 - List bomList = iWmsProductBomService.listByProductId(bo.getProductId()); // 生成话术 - String aiResponse = callAiApi(product, bomList, bo); + String aiResponse = callAiApi(product, bo); //打印这个aiResponse System.out.println("AI Response: " + aiResponse); List> scripts = parseAiResponse(aiResponse); @@ -189,8 +184,8 @@ public class WmsSalesScriptGeneratorServiceImpl implements IWmsSalesScriptGenera /** * 调用AI API */ - private String callAiApi(WmsProductVo product, List bomList, WmsSalesScriptGeneratorBo bo) { - String prompt = buildPrompt(product, bomList, bo); + private String callAiApi(WmsProductVo product, WmsSalesScriptGeneratorBo bo) { + String prompt = buildPrompt(product, bo); Map requestBody = new HashMap<>(); requestBody.put("model", deepseekConfig.getModelName()); @@ -239,7 +234,7 @@ public class WmsSalesScriptGeneratorServiceImpl implements IWmsSalesScriptGenera /** * 构建提示词 */ - private String buildPrompt(WmsProductVo product, List bomList, WmsSalesScriptGeneratorBo bo) { + private String buildPrompt(WmsProductVo product, WmsSalesScriptGeneratorBo bo) { StringBuilder prompt = new StringBuilder(); prompt.append("请根据以下产品信息和BOM清单,生成") .append(bo.getScriptCount()) @@ -264,14 +259,14 @@ public class WmsSalesScriptGeneratorServiceImpl implements IWmsSalesScriptGenera prompt.append("备注:").append(product.getRemark()).append("\n"); } // BOM信息 - if (Boolean.TRUE.equals(bo.getIncludeBomInfo()) && bomList != null && !bomList.isEmpty()) { - prompt.append("\n【BOM清单】\n"); - for (WmsProductBom bom : bomList) { - prompt.append("- ").append(bom.getRawMaterialId()) - .append(": ").append(bom.getQuantity()) - .append(" ").append(bom.getUnit()).append("\n"); - } - } +// if (Boolean.TRUE.equals(bo.getIncludeBomInfo()) && bomList != null && !bomList.isEmpty()) { +// prompt.append("\n【BOM清单】\n"); +// for (WmsProductBom bom : bomList) { +// prompt.append("- ").append(bom.getRawMaterialId()) +// .append(": ").append(bom.getQuantity()) +// .append(" ").append(bom.getUnit()).append("\n"); +// } +// } // 生成要求 prompt.append("\n【话术生成要求】\n"); prompt.append("1. 每条话术必须包含产品的主要特性和优势\n"); diff --git a/klp-wms/src/main/resources/mapper/wms/WmsCoilPendingActionMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsCoilPendingActionMapper.xml similarity index 94% rename from klp-wms/src/main/resources/mapper/wms/WmsCoilPendingActionMapper.xml rename to klp-wms/src/main/resources/mapper/klp/WmsCoilPendingActionMapper.xml index e1fc1c34..c885ccbe 100644 --- a/klp-wms/src/main/resources/mapper/wms/WmsCoilPendingActionMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsCoilPendingActionMapper.xml @@ -1,7 +1,7 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> diff --git a/klp-wms/src/main/resources/mapper/klp/WmsProductBomMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsProductBomMapper.xml deleted file mode 100644 index f7271456..00000000 --- a/klp-wms/src/main/resources/mapper/klp/WmsProductBomMapper.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/klp-wms/src/main/resources/mapper/klp/WmsPurchasePlanDetailMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsPurchasePlanDetailMapper.xml deleted file mode 100644 index 6549c175..00000000 --- a/klp-wms/src/main/resources/mapper/klp/WmsPurchasePlanDetailMapper.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/klp-wms/src/main/resources/mapper/klp/WmsPurchasePlanMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsPurchasePlanMapper.xml deleted file mode 100644 index 42dd775f..00000000 --- a/klp-wms/src/main/resources/mapper/klp/WmsPurchasePlanMapper.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -