From 657e4b5c532b594ef960504479c72c286453d646 Mon Sep 17 00:00:00 2001 From: XinanXf <123456> Date: Fri, 13 Jun 2025 11:24:54 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B3=BC=E8=A8=82=E5=96=AEexport=20?= =?UTF-8?q?=20=E9=81=B8=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/PurchaseOrderController.java | 21 ++--- .../QueryPurchaseOrderVoConverter.java | 26 ++++++ .../purchase/PurchaseOrderServiceImpl.java | 18 +++- .../sc/mappers/PurchaseOrderMapper.java | 2 +- .../purchase/PurchaseOrderService.java | 3 + .../purchase/QueryPurchaseExportOrderVo.java | 86 +++++++++++++++++++ .../mappers/purchase/PurchaseOrderMapper.xml | 7 ++ 7 files changed, 147 insertions(+), 16 deletions(-) create mode 100644 xingyun-sc/src/main/java/com/lframework/xingyun/sc/convert/QueryPurchaseOrderVoConverter.java create mode 100644 xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/purchase/QueryPurchaseExportOrderVo.java diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/controller/purchase/PurchaseOrderController.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/controller/purchase/PurchaseOrderController.java index a15d5d1..1b76311 100644 --- a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/controller/purchase/PurchaseOrderController.java +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/controller/purchase/PurchaseOrderController.java @@ -19,6 +19,7 @@ import com.lframework.xingyun.sc.bo.purchase.PurchaseOrderWithReceiveBo; import com.lframework.xingyun.sc.bo.purchase.PurchaseProductBo; import com.lframework.xingyun.sc.bo.purchase.QueryPurchaseOrderBo; import com.lframework.xingyun.sc.bo.purchase.QueryPurchaseOrderWithReceiveBo; +import com.lframework.xingyun.sc.convert.QueryPurchaseOrderVoConverter; import com.lframework.xingyun.sc.dto.purchase.PurchaseOrderFullDto; import com.lframework.xingyun.sc.dto.purchase.PurchaseOrderWithReceiveDto; import com.lframework.xingyun.sc.dto.purchase.PurchaseProductDto; @@ -31,15 +32,7 @@ import com.lframework.xingyun.sc.excel.purchase.PurchaseOrderPayTypeImportListen import com.lframework.xingyun.sc.excel.purchase.PurchaseOrderPayTypeImportModel; import com.lframework.xingyun.sc.service.purchase.PurchaseOrderService; import com.lframework.xingyun.sc.service.sale.SaleOrderService; -import com.lframework.xingyun.sc.vo.purchase.ApprovePassPurchaseOrderVo; -import com.lframework.xingyun.sc.vo.purchase.ApproveRefusePurchaseOrderVo; -import com.lframework.xingyun.sc.vo.purchase.BatchApprovePassPurchaseOrderVo; -import com.lframework.xingyun.sc.vo.purchase.BatchApproveRefusePurchaseOrderVo; -import com.lframework.xingyun.sc.vo.purchase.CreatePurchaseOrderVo; -import com.lframework.xingyun.sc.vo.purchase.QueryPurchaseOrderVo; -import com.lframework.xingyun.sc.vo.purchase.QueryPurchaseOrderWithReceiveVo; -import com.lframework.xingyun.sc.vo.purchase.QueryPurchaseProductVo; -import com.lframework.xingyun.sc.vo.purchase.UpdatePurchaseOrderVo; +import com.lframework.xingyun.sc.vo.purchase.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -131,19 +124,19 @@ public class PurchaseOrderController extends DefaultBaseController { @ApiOperation("导出") @HasPermission({"purchase:order:export"}) @PostMapping("/export") - public void export(@Valid QueryPurchaseOrderVo vo) { + public void export(@Valid QueryPurchaseExportOrderVo vo) { ExcelMultipartWriterSheetBuilder builder = ExcelUtil.multipartExportXls("采购单信息", - PurchaseOrderExportModel.class); + PurchaseOrderExportModel.class); try { int pageIndex = 1; while (true) { - PageResult pageResult = purchaseOrderService.query(pageIndex, - getExportSize(), vo); + QueryPurchaseOrderVo convert = QueryPurchaseOrderVoConverter.convert(vo); + PageResult pageResult = purchaseOrderService.queryExport(pageIndex, getExportSize(), convert, vo.getOrderIds()); List datas = pageResult.getDatas(); List models = datas.stream().map(PurchaseOrderExportModel::new) - .collect(Collectors.toList()); + .collect(Collectors.toList()); builder.doWrite(models); if (!pageResult.isHasNext()) { diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/convert/QueryPurchaseOrderVoConverter.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/convert/QueryPurchaseOrderVoConverter.java new file mode 100644 index 0000000..0d830f0 --- /dev/null +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/convert/QueryPurchaseOrderVoConverter.java @@ -0,0 +1,26 @@ +package com.lframework.xingyun.sc.convert; + +import com.lframework.xingyun.sc.vo.purchase.QueryPurchaseExportOrderVo; +import com.lframework.xingyun.sc.vo.purchase.QueryPurchaseOrderVo; + +public class QueryPurchaseOrderVoConverter { + + public static QueryPurchaseOrderVo convert(QueryPurchaseExportOrderVo exportVo) { + if (exportVo == null) { + return null; + } + QueryPurchaseOrderVo vo = new QueryPurchaseOrderVo(); + vo.setCode(exportVo.getCode()); + vo.setSupplierId(exportVo.getSupplierId()); + vo.setScId(exportVo.getScId()); + vo.setCreateBy(exportVo.getCreateBy()); + vo.setCreateStartTime(exportVo.getCreateStartTime()); + vo.setCreateEndTime(exportVo.getCreateEndTime()); + vo.setApproveBy(exportVo.getApproveBy()); + vo.setApproveStartTime(exportVo.getApproveStartTime()); + vo.setApproveEndTime(exportVo.getApproveEndTime()); + vo.setStatus(exportVo.getStatus()); + vo.setPurchaserId(exportVo.getPurchaserId()); + return vo; + } +} \ No newline at end of file diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/impl/purchase/PurchaseOrderServiceImpl.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/impl/purchase/PurchaseOrderServiceImpl.java index 9f599f1..ee15542 100644 --- a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/impl/purchase/PurchaseOrderServiceImpl.java +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/impl/purchase/PurchaseOrderServiceImpl.java @@ -109,10 +109,26 @@ public class PurchaseOrderServiceImpl extends BaseMpServiceImpl(datas)); } + @Override + public PageResult queryExport(int pageIndex, int pageSize, QueryPurchaseOrderVo vo, List orderIds) { + + Assert.greaterThanZero(pageIndex); + Assert.greaterThanZero(pageSize); + + PageHelperUtil.startPage(pageIndex, pageSize); + List datas = this.query(vo, orderIds); + + return PageResultUtil.convert(new PageInfo<>(datas)); + } + + public List query(QueryPurchaseOrderVo vo, List orderIds) { + return getBaseMapper().query(vo, orderIds); + } + @Override public List query(QueryPurchaseOrderVo vo) { - return getBaseMapper().query(vo); + return getBaseMapper().query(vo, null); } @Override diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/mappers/PurchaseOrderMapper.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/mappers/PurchaseOrderMapper.java index c199e30..9f04313 100644 --- a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/mappers/PurchaseOrderMapper.java +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/mappers/PurchaseOrderMapper.java @@ -46,7 +46,7 @@ public interface PurchaseOrderMapper extends BaseMapper { @DataPermissions(type = SysDataPermissionDataPermissionType.ORDER, value = { @DataPermission(template = "order", alias = "o") }) - List query(@Param("vo") QueryPurchaseOrderVo vo); + List query(@Param("vo") QueryPurchaseOrderVo vo, @Param("orderIds") List orderIds); /** * 根据ID查询 diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/service/purchase/PurchaseOrderService.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/service/purchase/PurchaseOrderService.java index a465699..f55981c 100644 --- a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/service/purchase/PurchaseOrderService.java +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/service/purchase/PurchaseOrderService.java @@ -30,6 +30,9 @@ public interface PurchaseOrderService extends BaseMpService { */ PageResult query(Integer pageIndex, Integer pageSize, QueryPurchaseOrderVo vo); + PageResult queryExport(int pageIndex, int exportSize, QueryPurchaseOrderVo convert, List orderIds); + + /** * 查询列表 * diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/purchase/QueryPurchaseExportOrderVo.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/purchase/QueryPurchaseExportOrderVo.java new file mode 100644 index 0000000..f06cfcb --- /dev/null +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/purchase/QueryPurchaseExportOrderVo.java @@ -0,0 +1,86 @@ +package com.lframework.xingyun.sc.vo.purchase; + +import com.lframework.starter.web.components.validation.IsEnum; +import com.lframework.starter.web.vo.SortPageVo; +import com.lframework.xingyun.sc.enums.PurchaseOrderStatus; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalDateTime; +import java.util.List; + +import lombok.Data; + +@Data +public class QueryPurchaseExportOrderVo extends SortPageVo { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("订单Id列表") + private List orderIds; + + /** + * 单号 + */ + @ApiModelProperty("单号") + private String code; + + /** + * 供应商ID + */ + @ApiModelProperty("供应商ID") + private String supplierId; + + /** + * 仓库ID + */ + @ApiModelProperty("仓库ID") + private String scId; + + /** + * 操作人ID + */ + @ApiModelProperty("操作人ID") + private String createBy; + + /** + * 操作起始时间 + */ + @ApiModelProperty("操作起始时间") + private LocalDateTime createStartTime; + + /** + * 操作截止时间 + */ + @ApiModelProperty("操作截止时间") + private LocalDateTime createEndTime; + + /** + * 审核人ID + */ + @ApiModelProperty("审核人ID") + private String approveBy; + + /** + * 审核起始时间 + */ + @ApiModelProperty("审核起始时间") + private LocalDateTime approveStartTime; + + /** + * 审核截止时间 + */ + @ApiModelProperty("审核截止时间") + private LocalDateTime approveEndTime; + + /** + * 状态 + */ + @ApiModelProperty("状态") + @IsEnum(message = "状态格式不正确!", enumClass = PurchaseOrderStatus.class) + private Integer status; + + /** + * 采购员ID + */ + @ApiModelProperty("采购员ID") + private String purchaserId; +} diff --git a/xingyun-sc/src/main/resources/mappers/purchase/PurchaseOrderMapper.xml b/xingyun-sc/src/main/resources/mappers/purchase/PurchaseOrderMapper.xml index 67b5b31..26051ac 100644 --- a/xingyun-sc/src/main/resources/mappers/purchase/PurchaseOrderMapper.xml +++ b/xingyun-sc/src/main/resources/mappers/purchase/PurchaseOrderMapper.xml @@ -213,6 +213,13 @@ ]]> + + + AND o.id IN + + #{id} + + ORDER BY o.create_time DESC