采購訂單export 選中

This commit is contained in:
XinanXf 2025-06-13 11:24:54 +08:00
parent 1683a83944
commit 657e4b5c53
7 changed files with 147 additions and 16 deletions

View File

@ -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.PurchaseProductBo;
import com.lframework.xingyun.sc.bo.purchase.QueryPurchaseOrderBo; import com.lframework.xingyun.sc.bo.purchase.QueryPurchaseOrderBo;
import com.lframework.xingyun.sc.bo.purchase.QueryPurchaseOrderWithReceiveBo; 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.PurchaseOrderFullDto;
import com.lframework.xingyun.sc.dto.purchase.PurchaseOrderWithReceiveDto; import com.lframework.xingyun.sc.dto.purchase.PurchaseOrderWithReceiveDto;
import com.lframework.xingyun.sc.dto.purchase.PurchaseProductDto; 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.excel.purchase.PurchaseOrderPayTypeImportModel;
import com.lframework.xingyun.sc.service.purchase.PurchaseOrderService; import com.lframework.xingyun.sc.service.purchase.PurchaseOrderService;
import com.lframework.xingyun.sc.service.sale.SaleOrderService; import com.lframework.xingyun.sc.service.sale.SaleOrderService;
import com.lframework.xingyun.sc.vo.purchase.ApprovePassPurchaseOrderVo; import com.lframework.xingyun.sc.vo.purchase.*;
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 io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
@ -131,19 +124,19 @@ public class PurchaseOrderController extends DefaultBaseController {
@ApiOperation("导出") @ApiOperation("导出")
@HasPermission({"purchase:order:export"}) @HasPermission({"purchase:order:export"})
@PostMapping("/export") @PostMapping("/export")
public void export(@Valid QueryPurchaseOrderVo vo) { public void export(@Valid QueryPurchaseExportOrderVo vo) {
ExcelMultipartWriterSheetBuilder builder = ExcelUtil.multipartExportXls("采购单信息", ExcelMultipartWriterSheetBuilder builder = ExcelUtil.multipartExportXls("采购单信息",
PurchaseOrderExportModel.class); PurchaseOrderExportModel.class);
try { try {
int pageIndex = 1; int pageIndex = 1;
while (true) { while (true) {
PageResult<PurchaseOrder> pageResult = purchaseOrderService.query(pageIndex, QueryPurchaseOrderVo convert = QueryPurchaseOrderVoConverter.convert(vo);
getExportSize(), vo); PageResult<PurchaseOrder> pageResult = purchaseOrderService.queryExport(pageIndex, getExportSize(), convert, vo.getOrderIds());
List<PurchaseOrder> datas = pageResult.getDatas(); List<PurchaseOrder> datas = pageResult.getDatas();
List<PurchaseOrderExportModel> models = datas.stream().map(PurchaseOrderExportModel::new) List<PurchaseOrderExportModel> models = datas.stream().map(PurchaseOrderExportModel::new)
.collect(Collectors.toList()); .collect(Collectors.toList());
builder.doWrite(models); builder.doWrite(models);
if (!pageResult.isHasNext()) { if (!pageResult.isHasNext()) {

View File

@ -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;
}
}

View File

@ -109,10 +109,26 @@ public class PurchaseOrderServiceImpl extends BaseMpServiceImpl<PurchaseOrderMap
return PageResultUtil.convert(new PageInfo<>(datas)); return PageResultUtil.convert(new PageInfo<>(datas));
} }
@Override
public PageResult<PurchaseOrder> queryExport(int pageIndex, int pageSize, QueryPurchaseOrderVo vo, List<String> orderIds) {
Assert.greaterThanZero(pageIndex);
Assert.greaterThanZero(pageSize);
PageHelperUtil.startPage(pageIndex, pageSize);
List<PurchaseOrder> datas = this.query(vo, orderIds);
return PageResultUtil.convert(new PageInfo<>(datas));
}
public List<PurchaseOrder> query(QueryPurchaseOrderVo vo, List<String> orderIds) {
return getBaseMapper().query(vo, orderIds);
}
@Override @Override
public List<PurchaseOrder> query(QueryPurchaseOrderVo vo) { public List<PurchaseOrder> query(QueryPurchaseOrderVo vo) {
return getBaseMapper().query(vo); return getBaseMapper().query(vo, null);
} }
@Override @Override

View File

@ -46,7 +46,7 @@ public interface PurchaseOrderMapper extends BaseMapper<PurchaseOrder> {
@DataPermissions(type = SysDataPermissionDataPermissionType.ORDER, value = { @DataPermissions(type = SysDataPermissionDataPermissionType.ORDER, value = {
@DataPermission(template = "order", alias = "o") @DataPermission(template = "order", alias = "o")
}) })
List<PurchaseOrder> query(@Param("vo") QueryPurchaseOrderVo vo); List<PurchaseOrder> query(@Param("vo") QueryPurchaseOrderVo vo, @Param("orderIds") List<String> orderIds);
/** /**
* 根据ID查询 * 根据ID查询

View File

@ -30,6 +30,9 @@ public interface PurchaseOrderService extends BaseMpService<PurchaseOrder> {
*/ */
PageResult<PurchaseOrder> query(Integer pageIndex, Integer pageSize, QueryPurchaseOrderVo vo); PageResult<PurchaseOrder> query(Integer pageIndex, Integer pageSize, QueryPurchaseOrderVo vo);
PageResult<PurchaseOrder> queryExport(int pageIndex, int exportSize, QueryPurchaseOrderVo convert, List<String> orderIds);
/** /**
* 查询列表 * 查询列表
* *

View File

@ -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<String> 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;
}

View File

@ -213,6 +213,13 @@
]]> ]]>
</if> </if>
</if> </if>
<if test="orderIds != null and !orderIds.isEmpty()">
AND o.id IN
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where> </where>
ORDER BY o.create_time DESC ORDER BY o.create_time DESC
</select> </select>