Commit 0626c669 authored by zhangfeng's avatar zhangfeng

feat(wealth): 优化

parent d83ca425
......@@ -88,6 +88,7 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import cn.iocoder.yudao.module.system.framework.ue.UeProperties;
import cn.iocoder.yudao.module.wealth.dal.dataobject.receipt.ReceiptDO;
import cn.iocoder.yudao.module.wealth.dal.dataobject.receivable.ReceivableDO;
import cn.iocoder.yudao.module.wealth.dal.mysql.receivable.ReceivableMapper;
import cn.iocoder.yudao.module.wealth.service.receipt.ReceiptService;
import cn.iocoder.yudao.module.wealth.service.receivable.ReceivableService;
import cn.iocoder.yudao.module.wealth.vo.receivable.ReceivableBackVO;
......@@ -168,6 +169,7 @@ public class OrderQueryServiceImpl implements OrderQueryService {
private final CustomerContactsService customerContactsService;
private final OrderExceptionService orderExceptionService;
private final ReceivableMapper receivableMapper;
private UeProperties ueProperties;
......@@ -3866,6 +3868,9 @@ public class OrderQueryServiceImpl implements OrderQueryService {
if (query.getIsPaoCargo() != null && query.getIsPaoCargo() == 1) {
orderType.add(3);
}
if (CollectionUtil.isNotEmpty(query.getDestCityIds()) && CollectionUtil.isEmpty(query.getDestWarehouseIds())) {
query.setDestWarehouseIds(receivableMapper.getDestWarehouseIdListByDestCity(query.getDestCityIds()));
}
query.setOrderType(orderType);
log.warn(I18nMessage.getLang().toString());
List<OrderBackPageVO> records = orderMapper.containerOrderSummaryList(query);
......
......@@ -7633,6 +7633,7 @@
LEFT JOIN ecw_make_bill_of_lading bl on bl.order_id = o.order_id and bl.deleted = 0
LEFT JOIN ecw_customer norc on norc.id = nor.customer_id
LEFT JOIN ecw_customer neeo on neeo.id = nee.customer_id
LEFT JOIN ecw_order_objective ob on ob.order_id = o.order_id and ob.deleted = 0
WHERE o.`container_number` = #{query.containerNumber}
<include refid="containerOrderSummaryQuery"/>
</select>
......
......@@ -103,4 +103,6 @@ public interface ReceiptItemMapper extends AbstractMapper<ReceiptItemDO> {
List<CurrencyAmount> countTotalWriteOffAmount();
List<ReceivableIncomeBelong> selectAllWriteOffItemByOrders(@Param("orderIds") Set<Long> orderIds);
BigDecimal getWriteOffAmountReceivableId(Long id);
}
......@@ -77,7 +77,6 @@ import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_NOT_EXISTS;
import static cn.iocoder.yudao.module.wealth.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.module.wealth.enums.ReceiptItemStatusEnum.*;
/**
* 收款单 Service 实现类
......@@ -698,7 +697,7 @@ public class ReceiptServiceImpl extends AbstractService<ReceiptMapper, ReceiptDO
return sR;
}
List<ReceiptItemDO> list = listItemList.stream().filter(i -> i.getReceiptId() == ReceiptId).collect(Collectors.toList());
List<ReceiptItemDO> list = listItemList.stream().filter(i -> i.getReceiptId() == ReceiptId && (i.getStatus() == 1 || i.getStatus() == 3)).collect(Collectors.toList());
if (CollectionUtil.isEmpty(list)) return sR;
//根据币种分组求和
......
......@@ -96,7 +96,7 @@ public interface ReceiptItemService extends IService<ReceiptItemDO> {
*
* @param financeReceiptItemVo
*/
ReceiptApprovalDO createFinanceReceiptItemWriteOff(FinanceReceiptItemVo financeReceiptItemVo);
void createFinanceReceiptItemWriteOff(FinanceReceiptItemVo financeReceiptItemVo);
/**
* 发起收款明细反核销
......
......@@ -353,16 +353,15 @@ public class ReceivableServiceImpl extends AbstractService<ReceivableMapper, Rec
receivableBackVO.setWriteOffAmount(BigDecimal.ZERO);
}
receivableBackVO.setNotWriteOffAmount(receivableBackVO.getActualAmount().subtract(receivableBackVO.getWriteOffAmount()));
if (receivableBackVO.getExchangeRate() != null) {
receivableBackVO.setWriteOffAmountUsd(receivableBackVO.getWriteOffAmount().multiply(receivableBackVO.getExchangeRate()));
receivableBackVO.setNotWriteOffAmountUsd(receivableBackVO.getNotWriteOffAmount().multiply(receivableBackVO.getExchangeRate()));
} else {
receivableBackVO.setWriteOffAmountUsd(BigDecimal.ZERO);
receivableBackVO.setNotWriteOffAmountUsd(BigDecimal.ZERO);
BigDecimal baseWriteOffAmount = receiptItemMapper.getWriteOffAmountReceivableId(receivableBackVO.getId());
if (baseWriteOffAmount == null) {
baseWriteOffAmount = BigDecimal.ZERO;
}
receivableBackVO.setWriteOffAmountUsd(baseWriteOffAmount);
if (receivableBackVO.getBaseAmount() == null) {
receivableBackVO.setBaseAmount(BigDecimal.ZERO);
}
receivableBackVO.setNotWriteOffAmountUsd(receivableBackVO.getBaseAmount().subtract(baseWriteOffAmount));
// 核销比例 = 已核销金额 / 实际金额,保留两位小数字符串
if (receivableBackVO.getWriteOffAmount().compareTo(BigDecimal.ZERO) <= 0 || receivableBackVO.getActualAmount().compareTo(BigDecimal.ZERO) <= 0) {
receivableBackVO.setWriteOffProportion("0.00%");
......@@ -978,7 +977,6 @@ public class ReceivableServiceImpl extends AbstractService<ReceivableMapper, Rec
}
// 判断属于哪种费用 0运费,1 清关费,2 额外费用
Integer feeType = this.getFeeType(boxReceivable.getFeeType());
// TODO 折扣金额计算的成交单价和原价暂时不知道哪拿,先只取优惠金额
BigDecimal discount = boxReceivable.getDiscountTotal() == null ? BigDecimal.ZERO : boxReceivable.getDiscountTotal();
BigDecimal notWrittenOff = Objects.equals(boxReceivable.getWriteOffAmount(), BigDecimal.ZERO) ? currencyAmount.getAmount() : currencyAmount.getAmount().subtract(boxReceivable.getWriteOffAmount());
......
......@@ -10,6 +10,8 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@Builder
@ApiModel("管理后台 - 批量收款信息创建 Request VO")
......@@ -53,6 +55,10 @@ public class ReceiptItemBatchCreateReqVO {
@ExcelProperty("汇率")
private String settleRate;
@ApiModelProperty(value = "汇率比值")
@ExcelIgnore
private BigDecimal settleRateRatio;
@ApiModelProperty(value = "水单号")
@ExcelProperty("水单号")
private String waterNo;
......
......@@ -18,4 +18,6 @@ public class ReceiptItemCreateReqVO extends ReceiptItemBaseVO {
private List<ReceivableWriteOffReqVO> receivableWriteOffList;
@ApiModelProperty(value = "订单号")
private String orderNo;
@ApiModelProperty(value = "批量导入原始汇率")
private String batchRate;
}
......@@ -289,13 +289,13 @@ public class ReceiptItemController {
List<ReceiptItemBatchCreateReqVO> list = Arrays.asList(
ReceiptItemBatchCreateReqVO.builder()
.orderNo("订单号/提单号给其一")
.payer("发货人/收货人")
.payer("填\"发货人\"或\"收货人\"")
.payDate("格式:2024-01-01 11:22:33")
.payAccount("8110901012501586556")
.payAmount("99.99")
.payCurrency("$")
.settleCurrency("")
.settleRate("0.877193")
.payCurrency("RMB")
.settleCurrency("USD")
.settleRate("7.17:1")
.waterNo("非必填")
.submitter("提交人")
.remark("非必填")
......
......@@ -121,4 +121,12 @@
AND eri.status = 1 AND eri.deleted = 0
GROUP BY erwor.receivable_id, erwor.income_belong
</select>
<select id="getWriteOffAmountReceivableId" resultType="java.math.BigDecimal">
SELECT
SUM(erwor.write_off_amount)
FROM ecw_receivable_write_off_record erwor
LEFT JOIN ecw_receipt_item eri ON erwor.receipt_item_id = eri.id
WHERE erwor.receivable_id = #{id}
AND eri.status = 1 AND eri.deleted = 0
</select>
</mapper>
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