Commit d063674b by 杨浩

供应商结算价

parent d97ee663
...@@ -6,9 +6,12 @@ import cn.hutool.core.util.StrUtil; ...@@ -6,9 +6,12 @@ import cn.hutool.core.util.StrUtil;
import cn.iocoder.foodnexus.framework.common.util.CommonUtil; import cn.iocoder.foodnexus.framework.common.util.CommonUtil;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List; import java.util.List;
import java.util.function.Function; import java.util.function.Function;
import static cn.iocoder.foodnexus.framework.common.exception.util.ServiceExceptionUtil.exception;
/** /**
* 数字的工具类,补全 {@link cn.hutool.core.util.NumberUtil} 的功能 * 数字的工具类,补全 {@link cn.hutool.core.util.NumberUtil} 的功能
* *
...@@ -102,4 +105,27 @@ public class NumberUtils { ...@@ -102,4 +105,27 @@ public class NumberUtils {
} }
return result; return result;
} }
// 计算下浮后价格的方法 - 仅对最终结果进行四舍五入
public static Integer calculateFloatingPrice(Integer marketPrice, BigDecimal floatingRate) {
// 检查市场价是否为null或负数
if (marketPrice == null) {
return null;
}
// 如果下浮率为null,默认为0%
BigDecimal rate = (floatingRate == null) ? BigDecimal.ZERO : floatingRate;
// 计算下浮后价格:市场价 × (1 - 下浮率 ÷ 100)
BigDecimal marketPriceBig = new BigDecimal(marketPrice);
// 计算比例时保持高精度,不进行四舍五入
BigDecimal multiplier = BigDecimal.ONE.subtract(rate.divide(new BigDecimal(100), 10, RoundingMode.HALF_UP));
// 计算中间结果时保持高精度
BigDecimal intermediateResult = marketPriceBig.multiply(multiplier);
// 仅在转换为最终结果时进行四舍五入,确保是整数
BigDecimal finalResult = intermediateResult.setScale(0, RoundingMode.HALF_UP);
// 转换为整数并赋值
return finalResult.intValue();
}
} }
...@@ -4,6 +4,7 @@ import cn.iocoder.foodnexus.module.erp.api.vo.supplier.SupplierAddReqVO; ...@@ -4,6 +4,7 @@ import cn.iocoder.foodnexus.module.erp.api.vo.supplier.SupplierAddReqVO;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -26,4 +27,6 @@ public interface ErpSupplierApi { ...@@ -26,4 +27,6 @@ public interface ErpSupplierApi {
Map<Long, String> queryNameMapByIds(Collection<Long> list); Map<Long, String> queryNameMapByIds(Collection<Long> list);
String queryNameById(Long supplierId); String queryNameById(Long supplierId);
BigDecimal querySettlementFloatingRate(Long supplierId);
} }
...@@ -157,4 +157,7 @@ public class SupplierAddReqVO { ...@@ -157,4 +157,7 @@ public class SupplierAddReqVO {
*/ */
private String files; private String files;
@NotNull(message = "供应商结算下浮率不能为空")
private BigDecimal settlementFloatingRate;
} }
...@@ -69,4 +69,10 @@ public class SupplierMonthOrderDetailsExportVO { ...@@ -69,4 +69,10 @@ public class SupplierMonthOrderDetailsExportVO {
@ExcelProperty("退款金额(元)") @ExcelProperty("退款金额(元)")
private BigDecimal returnsTotalYuan; private BigDecimal returnsTotalYuan;
@Schema(description = "供应商结算金额(分)")
private Integer settlementPrice;
@ExcelProperty("供应商结算金额(元)")
private BigDecimal settlementPriceYuan;
} }
...@@ -34,6 +34,9 @@ public class SupplierMonthOrderDetailsRespVO extends ErpPurchaseOrderRespVO { ...@@ -34,6 +34,9 @@ public class SupplierMonthOrderDetailsRespVO extends ErpPurchaseOrderRespVO {
@Schema(description = "应对账总金额(分)") @Schema(description = "应对账总金额(分)")
private Integer payablePrice; private Integer payablePrice;
@Schema(description = "供应商结算金额(分)")
private Integer settlementPrice;
@Schema(description = "签收金额") @Schema(description = "签收金额")
private Integer signedTotal; private Integer signedTotal;
......
...@@ -43,6 +43,13 @@ public class SupplierMonthOrderExportVO { ...@@ -43,6 +43,13 @@ public class SupplierMonthOrderExportVO {
@ExcelProperty("应对账总金额(元)") @ExcelProperty("应对账总金额(元)")
private BigDecimal payablePriceYuan; private BigDecimal payablePriceYuan;
@Schema(description = "供应商结算金额(分)")
private Integer settlementPrice;
@ExcelProperty("供应商结算金额(元)")
private BigDecimal settlementPriceYuan;
@Schema(description = "状态(是否对账)") @Schema(description = "状态(是否对账)")
private Boolean status; private Boolean status;
......
...@@ -3,6 +3,8 @@ package cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order; ...@@ -3,6 +3,8 @@ package cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* @author : yanghao * @author : yanghao
* create at: 2025/10/11 10:33 * create at: 2025/10/11 10:33
...@@ -29,6 +31,14 @@ public class SupplierMonthOrderRespVO { ...@@ -29,6 +31,14 @@ public class SupplierMonthOrderRespVO {
@Schema(description = "应对账总金额(分)") @Schema(description = "应对账总金额(分)")
private Integer payablePrice; private Integer payablePrice;
@Schema(description = "供应商结算金额(分)")
private Integer settlementPrice;
/**
* 供应商结算下浮率(%)
*/
private BigDecimal settlementFloatingRate;
@Schema(description = "状态(是否对账)") @Schema(description = "状态(是否对账)")
private Boolean status; private Boolean status;
......
...@@ -138,4 +138,7 @@ public class ErpSupplierRespVO { ...@@ -138,4 +138,7 @@ public class ErpSupplierRespVO {
* 关联部门id * 关联部门id
*/ */
private Long systemDeptId; private Long systemDeptId;
@Schema(description = "供应商结算下浮率(%)")
private BigDecimal settlementFloatingRate;
} }
...@@ -110,4 +110,8 @@ public class ErpSupplierSaveReqVO { ...@@ -110,4 +110,8 @@ public class ErpSupplierSaveReqVO {
private Long systemDeptId; private Long systemDeptId;
@Schema(description = "供应商结算下浮率(%)")
@NotNull(message = "供应商结算下浮率不能为空")
private BigDecimal settlementFloatingRate;
} }
\ No newline at end of file
...@@ -182,4 +182,9 @@ public class ErpSupplierDO extends BaseDO { ...@@ -182,4 +182,9 @@ public class ErpSupplierDO extends BaseDO {
*/ */
private Integer auditScore; private Integer auditScore;
/**
* 供应商结算下浮率(%)
*/
private BigDecimal settlementFloatingRate;
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package cn.iocoder.foodnexus.module.erp.dal.mysql.purchase; ...@@ -2,6 +2,7 @@ package cn.iocoder.foodnexus.module.erp.dal.mysql.purchase;
import cn.iocoder.foodnexus.framework.common.pojo.PageResult; import cn.iocoder.foodnexus.framework.common.pojo.PageResult;
import cn.iocoder.foodnexus.framework.common.util.CommonUtil; import cn.iocoder.foodnexus.framework.common.util.CommonUtil;
import cn.iocoder.foodnexus.framework.common.util.number.NumberUtils;
import cn.iocoder.foodnexus.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.foodnexus.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.foodnexus.framework.mybatis.core.query.MPJLambdaWrapperX; import cn.iocoder.foodnexus.framework.mybatis.core.query.MPJLambdaWrapperX;
import cn.iocoder.foodnexus.module.erp.api.enums.ErpDeliveryStatus; import cn.iocoder.foodnexus.module.erp.api.enums.ErpDeliveryStatus;
...@@ -163,7 +164,7 @@ public interface ErpPurchaseOrderMapper extends BaseMapperX<ErpPurchaseOrderDO> ...@@ -163,7 +164,7 @@ public interface ErpPurchaseOrderMapper extends BaseMapperX<ErpPurchaseOrderDO>
default PageResult<SupplierMonthOrderRespVO> pageMonth(SupplierMonthOrderPageReqVO pageReqVO, Long supplierId) { default PageResult<SupplierMonthOrderRespVO> pageMonth(SupplierMonthOrderPageReqVO pageReqVO, Long supplierId) {
MPJQueryWrapper<ErpPurchaseOrderDO> wrapper = new MPJQueryWrapper<>(); MPJQueryWrapper<ErpPurchaseOrderDO> wrapper = new MPJQueryWrapper<>();
wrapper.select("t.supplier_id"); wrapper.select("t.supplier_id, es.settlement_floating_rate");
wrapper.select("es.name as 'supplier_name'"); wrapper.select("es.name as 'supplier_name'");
wrapper.select("DATE_FORMAT( t.create_time, '%Y-%m' ) AS 'month'"); wrapper.select("DATE_FORMAT( t.create_time, '%Y-%m' ) AS 'month'");
wrapper.select("count( t.id ) AS 'orderCount'"); wrapper.select("count( t.id ) AS 'orderCount'");
...@@ -185,8 +186,10 @@ public interface ErpPurchaseOrderMapper extends BaseMapperX<ErpPurchaseOrderDO> ...@@ -185,8 +186,10 @@ public interface ErpPurchaseOrderMapper extends BaseMapperX<ErpPurchaseOrderDO>
wrapper.orderByDesc("t.id"); wrapper.orderByDesc("t.id");
wrapper.groupBy("DATE_FORMAT( t.create_time, '%Y-%m' ), t.supplier_id"); wrapper.groupBy("DATE_FORMAT( t.create_time, '%Y-%m' ), t.supplier_id");
PageResult<SupplierMonthOrderRespVO> supplierMonthOrderRespVOPageResult = this.selectJoinPage(pageReqVO, SupplierMonthOrderRespVO.class, wrapper); PageResult<SupplierMonthOrderRespVO> supplierMonthOrderRespVOPageResult = this.selectJoinPage(pageReqVO, SupplierMonthOrderRespVO.class, wrapper);
supplierMonthOrderRespVOPageResult.getList().forEach(item -> { supplierMonthOrderRespVOPageResult.getList().forEach(item -> {
item.setPayablePrice(this.queryMonthPayablePrice(item.getSupplierId(), item.getMonth())); item.setPayablePrice(this.queryMonthPayablePrice(item.getSupplierId(), item.getMonth()));
item.setSettlementPrice(NumberUtils.calculateFloatingPrice(item.getPayablePrice(), item.getSettlementFloatingRate()));
}); });
return supplierMonthOrderRespVOPageResult; return supplierMonthOrderRespVOPageResult;
} }
......
...@@ -33,6 +33,7 @@ import org.springframework.stereotype.Service; ...@@ -33,6 +33,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
...@@ -243,4 +244,9 @@ public class ErpSupplierServiceImpl implements ErpSupplierService, ErpSupplierAp ...@@ -243,4 +244,9 @@ public class ErpSupplierServiceImpl implements ErpSupplierService, ErpSupplierAp
public String queryNameById(Long supplierId) { public String queryNameById(Long supplierId) {
return Optional.ofNullable(supplierMapper.selectById(supplierId)).map(ErpSupplierDO::getName).orElse(""); return Optional.ofNullable(supplierMapper.selectById(supplierId)).map(ErpSupplierDO::getName).orElse("");
} }
@Override
public BigDecimal querySettlementFloatingRate(Long supplierId) {
return Optional.ofNullable(supplierMapper.selectById(supplierId)).map(ErpSupplierDO::getSettlementFloatingRate).orElse(BigDecimal.ZERO);
}
} }
...@@ -6,6 +6,7 @@ import cn.iocoder.foodnexus.framework.common.pojo.PageParam; ...@@ -6,6 +6,7 @@ import cn.iocoder.foodnexus.framework.common.pojo.PageParam;
import cn.iocoder.foodnexus.framework.common.pojo.PageResult; import cn.iocoder.foodnexus.framework.common.pojo.PageResult;
import cn.iocoder.foodnexus.framework.common.util.CommonUtil; import cn.iocoder.foodnexus.framework.common.util.CommonUtil;
import cn.iocoder.foodnexus.framework.common.util.number.MoneyUtils; import cn.iocoder.foodnexus.framework.common.util.number.MoneyUtils;
import cn.iocoder.foodnexus.framework.common.util.number.NumberUtils;
import cn.iocoder.foodnexus.framework.common.util.object.BeanUtils; import cn.iocoder.foodnexus.framework.common.util.object.BeanUtils;
import cn.iocoder.foodnexus.framework.excel.core.util.ExcelUtils; import cn.iocoder.foodnexus.framework.excel.core.util.ExcelUtils;
import cn.iocoder.foodnexus.module.erp.api.enums.ErpDeliveryStatus; import cn.iocoder.foodnexus.module.erp.api.enums.ErpDeliveryStatus;
...@@ -57,6 +58,9 @@ public class OperaSupplierPurchaseOrderController { ...@@ -57,6 +58,9 @@ public class OperaSupplierPurchaseOrderController {
@Autowired @Autowired
private CustomerOrderService customerOrderService; private CustomerOrderService customerOrderService;
@Autowired
private ErpSupplierApi supplierApi;
@GetMapping("/page-month") @GetMapping("/page-month")
@Operation(summary = "分页获取月度账单") @Operation(summary = "分页获取月度账单")
public CommonResult<PageResult<SupplierMonthOrderRespVO>> pageMonth(SupplierMonthOrderPageReqVO pageReqVO) { public CommonResult<PageResult<SupplierMonthOrderRespVO>> pageMonth(SupplierMonthOrderPageReqVO pageReqVO) {
...@@ -93,6 +97,7 @@ public class OperaSupplierPurchaseOrderController { ...@@ -93,6 +97,7 @@ public class OperaSupplierPurchaseOrderController {
BeanUtils.toBean(list, SupplierMonthOrderExportVO.class, item -> { BeanUtils.toBean(list, SupplierMonthOrderExportVO.class, item -> {
item.setOrderPriceYuan(MoneyUtils.fenToYuan(item.getOrderPrice())); item.setOrderPriceYuan(MoneyUtils.fenToYuan(item.getOrderPrice()));
item.setPayablePriceYuan(MoneyUtils.fenToYuan(item.getPayablePrice())); item.setPayablePriceYuan(MoneyUtils.fenToYuan(item.getPayablePrice()));
item.setSettlementPriceYuan(MoneyUtils.fenToYuan(item.getSettlementPrice()));
item.setStatusStr(CommonUtil.isNotEmpty(item.getStatus()) && item.getStatus() ? "已对账" : "未对账"); item.setStatusStr(CommonUtil.isNotEmpty(item.getStatus()) && item.getStatus() ? "已对账" : "未对账");
})); }));
} }
...@@ -122,6 +127,7 @@ public class OperaSupplierPurchaseOrderController { ...@@ -122,6 +127,7 @@ public class OperaSupplierPurchaseOrderController {
item.setPayablePriceYuan(MoneyUtils.fenToYuan(item.getPayablePrice())); item.setPayablePriceYuan(MoneyUtils.fenToYuan(item.getPayablePrice()));
item.setSignedTotalYuan(MoneyUtils.fenToYuan(item.getSignedTotal())); item.setSignedTotalYuan(MoneyUtils.fenToYuan(item.getSignedTotal()));
item.setReturnsTotalYuan(MoneyUtils.fenToYuan(item.getReturnsTotal())); item.setReturnsTotalYuan(MoneyUtils.fenToYuan(item.getReturnsTotal()));
item.setSettlementPriceYuan(MoneyUtils.fenToYuan(item.getSettlementPrice()));
})); }));
} }
...@@ -134,6 +140,7 @@ public class OperaSupplierPurchaseOrderController { ...@@ -134,6 +140,7 @@ public class OperaSupplierPurchaseOrderController {
purchaseOrder.setSignedTotal(customerOrderItemDOS.stream().mapToInt(CustomerOrderItemDO::getSignedTotal).sum()); purchaseOrder.setSignedTotal(customerOrderItemDOS.stream().mapToInt(CustomerOrderItemDO::getSignedTotal).sum());
purchaseOrder.setReturnsTotal(customerOrderItemDOS.stream().mapToInt(CustomerOrderItemDO::getReturnsTotal).sum()); purchaseOrder.setReturnsTotal(customerOrderItemDOS.stream().mapToInt(CustomerOrderItemDO::getReturnsTotal).sum());
purchaseOrder.setPayablePrice(CommonUtil.getEls(purchaseOrder.getSignedTotal(), 0) - CommonUtil.getEls(purchaseOrder.getReturnsTotal(), 0)); purchaseOrder.setPayablePrice(CommonUtil.getEls(purchaseOrder.getSignedTotal(), 0) - CommonUtil.getEls(purchaseOrder.getReturnsTotal(), 0));
purchaseOrder.setSettlementPrice(NumberUtils.calculateFloatingPrice(purchaseOrder.getPayablePrice(), supplierApi.querySettlementFloatingRate(purchaseOrder.getSupplierId())));
purchaseOrder.setSupplierName(customerOrderItemDOS.get(0).getSupplierName()); purchaseOrder.setSupplierName(customerOrderItemDOS.get(0).getSupplierName());
StringBuilder productNames = new StringBuilder(); StringBuilder productNames = new StringBuilder();
......
...@@ -7,6 +7,7 @@ import cn.iocoder.foodnexus.framework.common.pojo.PageParam; ...@@ -7,6 +7,7 @@ import cn.iocoder.foodnexus.framework.common.pojo.PageParam;
import cn.iocoder.foodnexus.framework.common.pojo.PageResult; import cn.iocoder.foodnexus.framework.common.pojo.PageResult;
import cn.iocoder.foodnexus.framework.common.util.CommonUtil; import cn.iocoder.foodnexus.framework.common.util.CommonUtil;
import cn.iocoder.foodnexus.framework.common.util.number.MoneyUtils; import cn.iocoder.foodnexus.framework.common.util.number.MoneyUtils;
import cn.iocoder.foodnexus.framework.common.util.number.NumberUtils;
import cn.iocoder.foodnexus.framework.common.util.object.BeanUtils; import cn.iocoder.foodnexus.framework.common.util.object.BeanUtils;
import cn.iocoder.foodnexus.framework.excel.core.util.ExcelUtils; import cn.iocoder.foodnexus.framework.excel.core.util.ExcelUtils;
import cn.iocoder.foodnexus.module.erp.api.enums.ErpDeliveryStatus; import cn.iocoder.foodnexus.module.erp.api.enums.ErpDeliveryStatus;
...@@ -30,6 +31,7 @@ import org.springframework.validation.annotation.Validated; ...@@ -30,6 +31,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -82,7 +84,7 @@ public class SupplierPurchaseOrderController { ...@@ -82,7 +84,7 @@ public class SupplierPurchaseOrderController {
orderPageReqVo.setDeliveryStatusList(CommonUtil.asList(ErpDeliveryStatus.ARRIVAL.getStatus(), ErpDeliveryStatus.RECONCILIATION.getStatus())); orderPageReqVo.setDeliveryStatusList(CommonUtil.asList(ErpDeliveryStatus.ARRIVAL.getStatus(), ErpDeliveryStatus.RECONCILIATION.getStatus()));
orderPageReqVo.setOrderStatusList(CommonUtil.asList(CustomerOrderStatus.SIGN_RECEIPT.getKey(), CustomerOrderStatus.FINISH.getKey(), CustomerOrderStatus.RETURN.getKey())); orderPageReqVo.setOrderStatusList(CommonUtil.asList(CustomerOrderStatus.SIGN_RECEIPT.getKey(), CustomerOrderStatus.FINISH.getKey(), CustomerOrderStatus.RETURN.getKey()));
PageResult<ErpPurchaseOrderDO> pageResult = purchaseOrderService.getPurchaseOrderPage(orderPageReqVo); PageResult<ErpPurchaseOrderDO> pageResult = purchaseOrderService.getPurchaseOrderPage(orderPageReqVo);
return success(BeanUtils.toBean(pageResult, SupplierMonthOrderDetailsRespVO.class, this::transform)); return success(BeanUtils.toBean(pageResult, SupplierMonthOrderDetailsRespVO.class, item -> this.transform(item, supplierApi.querySettlementFloatingRate(orderPageReqVo.getSupplierId()))));
} }
@PostMapping("reconciliation") @PostMapping("reconciliation")
...@@ -101,7 +103,7 @@ public class SupplierPurchaseOrderController { ...@@ -101,7 +103,7 @@ public class SupplierPurchaseOrderController {
return success(Boolean.TRUE); return success(Boolean.TRUE);
} }
private void transform(SupplierMonthOrderDetailsRespVO purchaseOrder) { private void transform(SupplierMonthOrderDetailsRespVO purchaseOrder, BigDecimal supplierSettlementRate) {
CustomerOrderDO customerOrder = customerOrderService.getCustomerOrder(purchaseOrder.getCustomerOrderId()); CustomerOrderDO customerOrder = customerOrderService.getCustomerOrder(purchaseOrder.getCustomerOrderId());
List<CustomerOrderItemDO> customerOrderItemDOS = customerOrderItemService.queryByOrderId(purchaseOrder.getCustomerOrderId(), purchaseOrder.getSupplierId()); List<CustomerOrderItemDO> customerOrderItemDOS = customerOrderItemService.queryByOrderId(purchaseOrder.getCustomerOrderId(), purchaseOrder.getSupplierId());
purchaseOrder.setDeliveryMode(customerOrder.getDeliveryMode()); purchaseOrder.setDeliveryMode(customerOrder.getDeliveryMode());
...@@ -110,6 +112,7 @@ public class SupplierPurchaseOrderController { ...@@ -110,6 +112,7 @@ public class SupplierPurchaseOrderController {
purchaseOrder.setSignedTotal(customerOrderItemDOS.stream().mapToInt(CustomerOrderItemDO::getSignedTotal).sum()); purchaseOrder.setSignedTotal(customerOrderItemDOS.stream().mapToInt(CustomerOrderItemDO::getSignedTotal).sum());
purchaseOrder.setReturnsTotal(customerOrderItemDOS.stream().mapToInt(CustomerOrderItemDO::getReturnsTotal).sum()); purchaseOrder.setReturnsTotal(customerOrderItemDOS.stream().mapToInt(CustomerOrderItemDO::getReturnsTotal).sum());
purchaseOrder.setPayablePrice(CommonUtil.getEls(purchaseOrder.getSignedTotal(), 0) - CommonUtil.getEls(purchaseOrder.getReturnsTotal(), 0)); purchaseOrder.setPayablePrice(CommonUtil.getEls(purchaseOrder.getSignedTotal(), 0) - CommonUtil.getEls(purchaseOrder.getReturnsTotal(), 0));
purchaseOrder.setSettlementPrice(NumberUtils.calculateFloatingPrice(purchaseOrder.getPayablePrice(), supplierSettlementRate));
purchaseOrder.setSupplierName(customerOrderItemDOS.get(0).getSupplierName()); purchaseOrder.setSupplierName(customerOrderItemDOS.get(0).getSupplierName());
StringBuilder productNames = new StringBuilder(); StringBuilder productNames = new StringBuilder();
...@@ -133,6 +136,7 @@ public class SupplierPurchaseOrderController { ...@@ -133,6 +136,7 @@ public class SupplierPurchaseOrderController {
BeanUtils.toBean(list, SupplierMonthOrderExportVO.class, item -> { BeanUtils.toBean(list, SupplierMonthOrderExportVO.class, item -> {
item.setOrderPriceYuan(MoneyUtils.fenToYuan(item.getOrderPrice())); item.setOrderPriceYuan(MoneyUtils.fenToYuan(item.getOrderPrice()));
item.setPayablePriceYuan(MoneyUtils.fenToYuan(item.getPayablePrice())); item.setPayablePriceYuan(MoneyUtils.fenToYuan(item.getPayablePrice()));
item.setSettlementPriceYuan(MoneyUtils.fenToYuan(item.getSettlementPrice()));
item.setStatusStr(CommonUtil.isNotEmpty(item.getStatus()) && item.getStatus() ? "已对账" : "未对账"); item.setStatusStr(CommonUtil.isNotEmpty(item.getStatus()) && item.getStatus() ? "已对账" : "未对账");
})); }));
} }
...@@ -153,7 +157,8 @@ public class SupplierPurchaseOrderController { ...@@ -153,7 +157,8 @@ public class SupplierPurchaseOrderController {
orderPageReqVo.setDeliveryStatusList(CommonUtil.asList(ErpDeliveryStatus.ARRIVAL.getStatus(), ErpDeliveryStatus.RECONCILIATION.getStatus())); orderPageReqVo.setDeliveryStatusList(CommonUtil.asList(ErpDeliveryStatus.ARRIVAL.getStatus(), ErpDeliveryStatus.RECONCILIATION.getStatus()));
orderPageReqVo.setOrderStatusList(CommonUtil.asList(CustomerOrderStatus.SIGN_RECEIPT.getKey(), CustomerOrderStatus.FINISH.getKey(), CustomerOrderStatus.RETURN.getKey())); orderPageReqVo.setOrderStatusList(CommonUtil.asList(CustomerOrderStatus.SIGN_RECEIPT.getKey(), CustomerOrderStatus.FINISH.getKey(), CustomerOrderStatus.RETURN.getKey()));
PageResult<ErpPurchaseOrderDO> pageResult = purchaseOrderService.getPurchaseOrderPage(orderPageReqVo); PageResult<ErpPurchaseOrderDO> pageResult = purchaseOrderService.getPurchaseOrderPage(orderPageReqVo);
List<SupplierMonthOrderDetailsRespVO> list = BeanUtils.toBean(pageResult, SupplierMonthOrderDetailsRespVO.class, this::transform).getList(); List<SupplierMonthOrderDetailsRespVO> list = BeanUtils.toBean(pageResult, SupplierMonthOrderDetailsRespVO.class, item ->
this.transform(item, supplierApi.querySettlementFloatingRate(orderPageReqVo.getSupplierId()))).getList();
// 导出 Excel // 导出 Excel
ExcelUtils.write(response, "月度账单明细.xls", "数据", SupplierMonthOrderDetailsExportVO.class, ExcelUtils.write(response, "月度账单明细.xls", "数据", SupplierMonthOrderDetailsExportVO.class,
BeanUtils.toBean(list, SupplierMonthOrderDetailsExportVO.class, item -> { BeanUtils.toBean(list, SupplierMonthOrderDetailsExportVO.class, item -> {
...@@ -161,6 +166,7 @@ public class SupplierPurchaseOrderController { ...@@ -161,6 +166,7 @@ public class SupplierPurchaseOrderController {
item.setPayablePriceYuan(MoneyUtils.fenToYuan(item.getPayablePrice())); item.setPayablePriceYuan(MoneyUtils.fenToYuan(item.getPayablePrice()));
item.setSignedTotalYuan(MoneyUtils.fenToYuan(item.getSignedTotal())); item.setSignedTotalYuan(MoneyUtils.fenToYuan(item.getSignedTotal()));
item.setReturnsTotalYuan(MoneyUtils.fenToYuan(item.getReturnsTotal())); item.setReturnsTotalYuan(MoneyUtils.fenToYuan(item.getReturnsTotal()));
item.setSettlementPriceYuan(MoneyUtils.fenToYuan(item.getSettlementPrice()));
})); }));
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment