From e1cc0fda34516908e3a0187d27ec828b327873a3 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Sat, 18 Apr 2026 11:11:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(crm):=20=E6=B7=BB=E5=8A=A0=E6=AF=8F?= =?UTF-8?q?=E6=97=A5=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 ApsPlanDetailBo 中新增 planSheetIds 字段用于批量查询 - 实现 IApsPlanDetailService 的 queryListByPlanSheetIds 方法 - 添加 CrmOrderService 的 queryByIds 批量查询接口 - 在 CrmOrderController 中新增 /daily 接口查询当日订单 - 集成 APS 排产计划数据获取当日关联的 CRM 订单 - 添加 klp-aps 模块依赖支持跨模块数据查询 --- .../klp/aps/domain/bo/ApsPlanDetailBo.java | 6 +++ .../aps/service/IApsPlanDetailService.java | 5 ++ .../impl/ApsPlanDetailServiceImpl.java | 13 +++++ klp-crm/pom.xml | 6 ++- .../crm/controller/CrmOrderController.java | 52 +++++++++++++++++++ .../com/klp/crm/service/ICrmOrderService.java | 5 ++ .../crm/service/impl/CrmOrderServiceImpl.java | 13 +++++ 7 files changed, 99 insertions(+), 1 deletion(-) diff --git a/klp-aps/src/main/java/com/klp/aps/domain/bo/ApsPlanDetailBo.java b/klp-aps/src/main/java/com/klp/aps/domain/bo/ApsPlanDetailBo.java index 2a5e634a..53f882cb 100644 --- a/klp-aps/src/main/java/com/klp/aps/domain/bo/ApsPlanDetailBo.java +++ b/klp-aps/src/main/java/com/klp/aps/domain/bo/ApsPlanDetailBo.java @@ -7,6 +7,7 @@ import javax.validation.constraints.*; import java.math.BigDecimal; import java.util.Date; +import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; @@ -31,6 +32,11 @@ public class ApsPlanDetailBo extends BaseEntity { */ private Long planSheetId; + /** + * 关联排产单ID列表(用于批量查询) + */ + private List planSheetIds; + /** * 内容序号 */ diff --git a/klp-aps/src/main/java/com/klp/aps/service/IApsPlanDetailService.java b/klp-aps/src/main/java/com/klp/aps/service/IApsPlanDetailService.java index eca63cdd..07dfd9b9 100644 --- a/klp-aps/src/main/java/com/klp/aps/service/IApsPlanDetailService.java +++ b/klp-aps/src/main/java/com/klp/aps/service/IApsPlanDetailService.java @@ -31,6 +31,11 @@ public interface IApsPlanDetailService { */ List queryList(ApsPlanDetailBo bo); + /** + * 根据排产单ID列表查询明细 + */ + List queryListByPlanSheetIds(List planSheetIds); + /** * 新增排产单明细 */ diff --git a/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanDetailServiceImpl.java b/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanDetailServiceImpl.java index 16fe3858..1bb3fecc 100644 --- a/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanDetailServiceImpl.java +++ b/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanDetailServiceImpl.java @@ -105,6 +105,19 @@ public class ApsPlanDetailServiceImpl implements IApsPlanDetailService { return baseMapper.selectVoList(lqw); } + /** + * 根据排产单ID列表查询明细 + */ + @Override + public List queryListByPlanSheetIds(List planSheetIds) { + if (planSheetIds == null || planSheetIds.isEmpty()) { + return new java.util.ArrayList<>(); + } + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.in(ApsPlanDetail::getPlanSheetId, planSheetIds); + return baseMapper.selectVoList(lqw); + } + private LambdaQueryWrapper buildQueryWrapper(ApsPlanDetailBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); diff --git a/klp-crm/pom.xml b/klp-crm/pom.xml index 18c99afe..3a6896ea 100644 --- a/klp-crm/pom.xml +++ b/klp-crm/pom.xml @@ -12,7 +12,7 @@ 8 UTF-8 - + org.projectlombok lombok @@ -43,5 +43,9 @@ com.klp klp-wms + + com.klp + klp-aps + diff --git a/klp-crm/src/main/java/com/klp/crm/controller/CrmOrderController.java b/klp-crm/src/main/java/com/klp/crm/controller/CrmOrderController.java index 7c799c5f..36574dd5 100644 --- a/klp-crm/src/main/java/com/klp/crm/controller/CrmOrderController.java +++ b/klp-crm/src/main/java/com/klp/crm/controller/CrmOrderController.java @@ -1,12 +1,17 @@ package com.klp.crm.controller; +import java.util.ArrayList; import java.util.List; import java.util.Arrays; +import java.util.Date; +import com.klp.aps.domain.bo.ApsPlanDetailBo; +import com.klp.aps.domain.bo.ApsPlanSheetBo; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.*; import org.springframework.web.bind.annotation.*; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.annotation.Validated; import com.klp.common.annotation.RepeatSubmit; import com.klp.common.annotation.Log; @@ -21,6 +26,10 @@ import com.klp.crm.domain.vo.CrmOrderVo; import com.klp.crm.domain.bo.CrmOrderBo; import com.klp.crm.service.ICrmOrderService; import com.klp.common.core.page.TableDataInfo; +import com.klp.aps.domain.vo.ApsPlanSheetVo; +import com.klp.aps.domain.vo.ApsPlanDetailVo; +import com.klp.aps.service.IApsPlanSheetService; +import com.klp.aps.service.IApsPlanDetailService; /** * 正式订单主 @@ -35,6 +44,8 @@ import com.klp.common.core.page.TableDataInfo; public class CrmOrderController extends BaseController { private final ICrmOrderService iCrmOrderService; + private final IApsPlanSheetService iApsPlanSheetService; + private final IApsPlanDetailService iApsPlanDetailService; /** * 查询正式订单主列表 @@ -96,4 +107,45 @@ public class CrmOrderController extends BaseController { @PathVariable String[] orderIds) { return toAjax(iCrmOrderService.deleteWithValidByIds(Arrays.asList(orderIds), true)); } + + /** + * 查询每日订单(根据排产计划获取今天的订单) + * + * @param planDate 排产日期,默认今天 + */ + @GetMapping("/daily") + public R> getDailyOrders( + @RequestParam(value = "planDate", required = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") Date planDate) { + if (planDate == null) { + planDate = new Date(); + } + ApsPlanSheetBo bo = new ApsPlanSheetBo(); + bo.setPlanDate(planDate); + List planSheetList = iApsPlanSheetService.queryList(bo); + if (planSheetList == null || planSheetList.isEmpty()) { + return R.ok(new ArrayList<>()); + } + List planSheetIds = new ArrayList<>(); + for (ApsPlanSheetVo sheet : planSheetList) { + planSheetIds.add(sheet.getPlanSheetId()); + } + ApsPlanDetailBo detailBo = new ApsPlanDetailBo(); + detailBo.setPlanSheetIds(planSheetIds); + List detailList = iApsPlanDetailService.queryListByPlanSheetIds(planSheetIds); + if (detailList == null || detailList.isEmpty()) { + return R.ok(new ArrayList<>()); + } + List orderIds = new ArrayList<>(); + for (ApsPlanDetailVo detail : detailList) { + if (detail.getOrderId() != null) { + orderIds.add(detail.getOrderId()); + } + } + if (orderIds.isEmpty()) { + return R.ok(new ArrayList<>()); + } + List orders = iCrmOrderService.queryByIds(orderIds); + return R.ok(orders); + } } diff --git a/klp-crm/src/main/java/com/klp/crm/service/ICrmOrderService.java b/klp-crm/src/main/java/com/klp/crm/service/ICrmOrderService.java index da7f397e..c9f1bbbd 100644 --- a/klp-crm/src/main/java/com/klp/crm/service/ICrmOrderService.java +++ b/klp-crm/src/main/java/com/klp/crm/service/ICrmOrderService.java @@ -22,6 +22,11 @@ public interface ICrmOrderService { */ CrmOrderVo queryById(String orderId); + /** + * 根据ID列表查询正式订单 + */ + List queryByIds(List orderIds); + /** * 查询正式订单主列表 */ diff --git a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java index 3e176b46..4fbe6278 100644 --- a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java +++ b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java @@ -53,6 +53,19 @@ public class CrmOrderServiceImpl implements ICrmOrderService { return baseMapper.selectVoById(orderId); } + /** + * 根据ID列表查询正式订单 + */ + @Override + public List queryByIds(List orderIds) { + if (orderIds == null || orderIds.isEmpty()) { + return new ArrayList<>(); + } + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.in(CrmOrder::getOrderId, orderIds); + return baseMapper.selectVoList(lqw); + } + /** * 查询正式订单主列表 */