diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/controller/sale/SaleOrderController.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/controller/sale/SaleOrderController.java index 335c4bb..c50ecc7 100644 --- a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/controller/sale/SaleOrderController.java +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/controller/sale/SaleOrderController.java @@ -21,6 +21,7 @@ import com.lframework.xingyun.sc.bo.sale.QuerySaleOrderBo; import com.lframework.xingyun.sc.bo.sale.QuerySaleOrderWithOutBo; import com.lframework.xingyun.sc.bo.sale.SaleOrderWithOutBo; import com.lframework.xingyun.sc.bo.sale.SaleProductBo; +import com.lframework.xingyun.sc.convert.QuerySaleOrderVoConverter; import com.lframework.xingyun.sc.dto.sale.SaleOrderFullDto; import com.lframework.xingyun.sc.dto.sale.SaleOrderWithOutDto; import com.lframework.xingyun.sc.dto.sale.SaleProductDto; @@ -31,15 +32,7 @@ import com.lframework.xingyun.sc.mappers.SaleOrderDetailMapper; import com.lframework.xingyun.sc.service.sale.SaleOrderDetailService; import com.lframework.xingyun.sc.service.sale.SaleOrderService; import com.lframework.xingyun.sc.util.CalUtils; -import com.lframework.xingyun.sc.vo.sale.ApprovePassSaleOrderVo; -import com.lframework.xingyun.sc.vo.sale.ApproveRefuseSaleOrderVo; -import com.lframework.xingyun.sc.vo.sale.BatchApprovePassSaleOrderVo; -import com.lframework.xingyun.sc.vo.sale.BatchApproveRefuseSaleOrderVo; -import com.lframework.xingyun.sc.vo.sale.CreateSaleOrderVo; -import com.lframework.xingyun.sc.vo.sale.QuerySaleOrderVo; -import com.lframework.xingyun.sc.vo.sale.QuerySaleOrderWithOutVo; -import com.lframework.xingyun.sc.vo.sale.QuerySaleProductVo; -import com.lframework.xingyun.sc.vo.sale.UpdateSaleOrderVo; +import com.lframework.xingyun.sc.vo.sale.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -159,7 +152,7 @@ public class SaleOrderController extends DefaultBaseController { @ApiOperation("导出") @HasPermission({"sale:order:export"}) @PostMapping("/export") - public void export(@Valid QuerySaleOrderVo vo) { + public void export(@Valid QuerySaleOrderExportVo vo) { ExcelMultipartWriterSheetBuilder builder = ExcelUtil.multipartExportXls("销售单信息", SaleOrderExportModel.class); @@ -167,9 +160,8 @@ public class SaleOrderController extends DefaultBaseController { try { int pageIndex = 1; while (true) { -// PageResult pageResult = saleOrderService.query(pageIndex, getExportSize(), vo); -// List datas = pageResult.getDatas(); - PageResult pageResult = saleOrderService.query(pageIndex, getExportSize(), vo); + QuerySaleOrderVo orderVo = QuerySaleOrderVoConverter.convert(vo); + PageResult pageResult = saleOrderService.queryExport(pageIndex, getExportSize(), orderVo, vo.getOrderIds()); List datas = pageResult.getDatas(); List results = null; @@ -181,7 +173,7 @@ public class SaleOrderController extends DefaultBaseController { List orderIds = results.stream().map(QuerySaleOrderBo::getId).collect(Collectors.toList()); List orderDetailList = saleOrderDetailService.selectList(orderIds); - // 根据orderId分组 + // 根据orderId分组(基础版) Map> OrderIdDetailMap = orderDetailList.stream() .collect(Collectors.groupingBy(SaleOrderDetail::getOrderId)); @@ -189,9 +181,7 @@ public class SaleOrderController extends DefaultBaseController { for (QuerySaleOrderBo result : results) { List orderDetails = OrderIdDetailMap.get(result.getId()); // 计算毛利率 = 本单利润/含税总金额* 100% - String grossMargin = CalUtils.CalGrossMargin(result.getThisOrderProfit(),result.getTotalAmount()); - result.setGrossMargin(grossMargin); - + result.setGrossMargin(CalUtils.CalGrossMargin(result.getThisOrderProfit(),result.getTotalAmount()) + "%"); List productNames = new ArrayList<>(); for (SaleOrderDetail orderDetail : orderDetails) { Product product= productService.findById(orderDetail.getProductId()); diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/convert/QuerySaleOrderVoConverter.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/convert/QuerySaleOrderVoConverter.java new file mode 100644 index 0000000..efbd331 --- /dev/null +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/convert/QuerySaleOrderVoConverter.java @@ -0,0 +1,32 @@ +package com.lframework.xingyun.sc.convert; + +import com.lframework.xingyun.sc.vo.sale.QuerySaleOrderExportVo; +import com.lframework.xingyun.sc.vo.sale.QuerySaleOrderVo; + +public class QuerySaleOrderVoConverter { + + public static QuerySaleOrderVo convert(QuerySaleOrderExportVo exportVo) { + if (exportVo == null) { + return null; + } + QuerySaleOrderVo vo = new QuerySaleOrderVo(); + vo.setCode(exportVo.getCode()); + vo.setCustomerId(exportVo.getCustomerId()); + 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.setSalerId(exportVo.getSalerId()); + vo.setIsLease(exportVo.getIsLease()); + vo.setPurchaseStatus(exportVo.getPurchaseStatus()); + vo.setLeaseStartTime(exportVo.getLeaseStartTime()); + vo.setLeaseEndTime(exportVo.getLeaseEndTime()); + + return vo; + } +} + diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/impl/sale/SaleOrderServiceImpl.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/impl/sale/SaleOrderServiceImpl.java index 9cf12db..1e8bb3c 100644 --- a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/impl/sale/SaleOrderServiceImpl.java +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/impl/sale/SaleOrderServiceImpl.java @@ -123,12 +123,14 @@ public class SaleOrderServiceImpl extends BaseMpServiceImpl(datas)); } + public List query(QuerySaleOrderVo vo, List orderIds) { + List list=getBaseMapper().query(vo, orderIds); + return list; + } + @Override public List query(QuerySaleOrderVo vo) { - - List list=getBaseMapper().query(vo); - - + List list=getBaseMapper().query(vo, null); return list; } @@ -584,7 +586,18 @@ public class SaleOrderServiceImpl extends BaseMpServiceImpl queryExport(int pageIndex, int pageSize, QuerySaleOrderVo 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)); + } + + private void create(SaleOrder order, CreateSaleOrderVo vo) { // StoreCenter sc = storeCenterService.findById(vo.getScId()); diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/mappers/SaleOrderMapper.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/mappers/SaleOrderMapper.java index f704dec..538b4b6 100644 --- a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/mappers/SaleOrderMapper.java +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/mappers/SaleOrderMapper.java @@ -45,7 +45,7 @@ public interface SaleOrderMapper extends BaseMapper { @DataPermissions(type = SysDataPermissionDataPermissionType.ORDER, value = { @DataPermission(template = "order", alias = "o") }) - List query(@Param("vo") QuerySaleOrderVo vo); + List query(@Param("vo") QuerySaleOrderVo vo, @Param("orderIds") List orderIds); /** * 根据ID查询 diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/service/sale/SaleOrderService.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/service/sale/SaleOrderService.java index a8ddec4..b8d42fb 100644 --- a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/service/sale/SaleOrderService.java +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/service/sale/SaleOrderService.java @@ -166,4 +166,6 @@ public interface SaleOrderService extends BaseMpService { * @return */ SaleProductDto getSaleById(String id); + + PageResult queryExport(int pageIndex, int exportSize, QuerySaleOrderVo orderVo, List orderIds); } diff --git a/xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/sale/QuerySaleOrderExportVo.java b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/sale/QuerySaleOrderExportVo.java new file mode 100644 index 0000000..860147f --- /dev/null +++ b/xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/sale/QuerySaleOrderExportVo.java @@ -0,0 +1,110 @@ +package com.lframework.xingyun.sc.vo.sale; + +import com.alibaba.excel.annotation.format.DateTimeFormat; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.lframework.starter.common.constants.StringPool; +import com.lframework.starter.web.components.validation.IsEnum; +import com.lframework.xingyun.sc.enums.SaleOrderStatus; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class QuerySaleOrderExportVo { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("订单Id列表") + private List orderIds; + /** + * 单号 + */ + @ApiModelProperty("单号") + private String code; + + /** + * 客户ID + */ + @ApiModelProperty("客户ID") + private String customerId; + + /** + * 仓库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 = SaleOrderStatus.class) + private Integer status; + + /** + * 销售员ID + */ + @ApiModelProperty("销售员ID") + private String salerId; + + + @ApiModelProperty("是否租赁订单") + //@IsEnum(message = "格式不正确!", enumClass = SaleOrderIsLease.class) + private Integer isLease; + + + /** + * 采购状态,0未采购、2完成采购、3部分采购 + */ + //@IsEnum(message = "格式不正确!", enumClass = SaleOrderPurchaseStatus.class) + private Integer purchaseStatus; + + @ApiModelProperty(value = "租赁开始日期") + @DateTimeFormat(StringPool.DATE_PATTERN) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime leaseStartTime; + + + @ApiModelProperty(value = "租赁结束日期") + @DateTimeFormat(StringPool.DATE_PATTERN) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime leaseEndTime; +} diff --git a/xingyun-sc/src/main/resources/mappers/sale/SaleOrderMapper.xml b/xingyun-sc/src/main/resources/mappers/sale/SaleOrderMapper.xml index ac5680a..cca8c3b 100644 --- a/xingyun-sc/src/main/resources/mappers/sale/SaleOrderMapper.xml +++ b/xingyun-sc/src/main/resources/mappers/sale/SaleOrderMapper.xml @@ -265,6 +265,13 @@ ]]> + + + AND o.id IN + + #{id} + + ORDER BY o.create_time DESC