銷售訂單export 選中
This commit is contained in:
parent
3d167f3688
commit
1683a83944
@ -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<SaleOrder> pageResult = saleOrderService.query(pageIndex, getExportSize(), vo);
|
||||
// List<SaleOrder> datas = pageResult.getDatas();
|
||||
PageResult<SaleOrder> pageResult = saleOrderService.query(pageIndex, getExportSize(), vo);
|
||||
QuerySaleOrderVo orderVo = QuerySaleOrderVoConverter.convert(vo);
|
||||
PageResult<SaleOrder> pageResult = saleOrderService.queryExport(pageIndex, getExportSize(), orderVo, vo.getOrderIds());
|
||||
|
||||
List<SaleOrder> datas = pageResult.getDatas();
|
||||
List<QuerySaleOrderBo> results = null;
|
||||
@ -181,7 +173,7 @@ public class SaleOrderController extends DefaultBaseController {
|
||||
List<String> orderIds = results.stream().map(QuerySaleOrderBo::getId).collect(Collectors.toList());
|
||||
List<SaleOrderDetail> orderDetailList = saleOrderDetailService.selectList(orderIds);
|
||||
|
||||
// 根据orderId分组
|
||||
// 根据orderId分组(基础版)
|
||||
Map<String, List<SaleOrderDetail>> OrderIdDetailMap = orderDetailList.stream()
|
||||
.collect(Collectors.groupingBy(SaleOrderDetail::getOrderId));
|
||||
|
||||
@ -189,9 +181,7 @@ public class SaleOrderController extends DefaultBaseController {
|
||||
for (QuerySaleOrderBo result : results) {
|
||||
List<SaleOrderDetail> 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<String> productNames = new ArrayList<>();
|
||||
for (SaleOrderDetail orderDetail : orderDetails) {
|
||||
Product product= productService.findById(orderDetail.getProductId());
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -123,12 +123,14 @@ public class SaleOrderServiceImpl extends BaseMpServiceImpl<SaleOrderMapper, Sal
|
||||
return PageResultUtil.convert(new PageInfo<>(datas));
|
||||
}
|
||||
|
||||
public List<SaleOrder> query(QuerySaleOrderVo vo, List<String> orderIds) {
|
||||
List<SaleOrder> list=getBaseMapper().query(vo, orderIds);
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SaleOrder> query(QuerySaleOrderVo vo) {
|
||||
|
||||
List<SaleOrder> list=getBaseMapper().query(vo);
|
||||
|
||||
|
||||
List<SaleOrder> list=getBaseMapper().query(vo, null);
|
||||
return list;
|
||||
}
|
||||
|
||||
@ -584,7 +586,18 @@ public class SaleOrderServiceImpl extends BaseMpServiceImpl<SaleOrderMapper, Sal
|
||||
return data;
|
||||
}
|
||||
|
||||
private void create(SaleOrder order, CreateSaleOrderVo vo) {
|
||||
@Override
|
||||
public PageResult<SaleOrder> queryExport(int pageIndex, int pageSize, QuerySaleOrderVo vo, List<String> orderIds) {
|
||||
Assert.greaterThanZero(pageIndex);
|
||||
Assert.greaterThanZero(pageSize);
|
||||
|
||||
PageHelperUtil.startPage(pageIndex, pageSize);
|
||||
List<SaleOrder> datas = this.query(vo, orderIds);
|
||||
|
||||
return PageResultUtil.convert(new PageInfo<>(datas));
|
||||
}
|
||||
|
||||
private void create(SaleOrder order, CreateSaleOrderVo vo) {
|
||||
|
||||
|
||||
// StoreCenter sc = storeCenterService.findById(vo.getScId());
|
||||
|
@ -45,7 +45,7 @@ public interface SaleOrderMapper extends BaseMapper<SaleOrder> {
|
||||
@DataPermissions(type = SysDataPermissionDataPermissionType.ORDER, value = {
|
||||
@DataPermission(template = "order", alias = "o")
|
||||
})
|
||||
List<SaleOrder> query(@Param("vo") QuerySaleOrderVo vo);
|
||||
List<SaleOrder> query(@Param("vo") QuerySaleOrderVo vo, @Param("orderIds") List<String> orderIds);
|
||||
|
||||
/**
|
||||
* 根据ID查询
|
||||
|
@ -166,4 +166,6 @@ public interface SaleOrderService extends BaseMpService<SaleOrder> {
|
||||
* @return
|
||||
*/
|
||||
SaleProductDto getSaleById(String id);
|
||||
|
||||
PageResult<SaleOrder> queryExport(int pageIndex, int exportSize, QuerySaleOrderVo orderVo, List<String> orderIds);
|
||||
}
|
||||
|
@ -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<String> 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;
|
||||
}
|
@ -265,6 +265,13 @@
|
||||
]]>
|
||||
</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>
|
||||
ORDER BY o.create_time DESC
|
||||
</select>
|
||||
|
Loading…
x
Reference in New Issue
Block a user