Răsfoiți Sursa

处理支付货款金额

caozj 1 an în urmă
părinte
comite
d7529ecc26

+ 6 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/po/Pay.java

@@ -146,4 +146,10 @@ public class Pay extends BasePo {
     @TableField(exist = false)
     private Integer count;
 
+    /**
+     * 金额
+     */
+    @TableField(exist = false)
+    private BigDecimal money;
+
 }

+ 2 - 1
hx-purchase/src/main/java/com/fjhx/purchase/mapper/pay/PayDetailMapper.java

@@ -3,6 +3,7 @@ package com.fjhx.purchase.mapper.pay;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.pay.po.Pay;
 import com.fjhx.purchase.entity.pay.po.PayDetail;
 import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
@@ -37,6 +38,6 @@ public interface PayDetailMapper extends BaseMapper<PayDetail> {
 
     List<PayDetail> getPayMoneyCountByPurchaseId(@Param("ew") QueryWrapper<Object> queryWrapper);
 
-    BigDecimal getSumMoney(@Param("purchaseIds") List<Long> purchaseIds);
+    List<Pay> getSumMoney(@Param("purchaseIds") List<Long> purchaseIds);
 
 }

+ 2 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/pay/PayDetailService.java

@@ -3,6 +3,7 @@ package com.fjhx.purchase.service.pay;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.purchase.entity.pay.dto.PayDetailDto;
 import com.fjhx.purchase.entity.pay.dto.PayDetailSelectDto;
+import com.fjhx.purchase.entity.pay.po.Pay;
 import com.fjhx.purchase.entity.pay.po.PayDetail;
 import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
 import com.ruoyi.common.core.service.BaseService;
@@ -57,5 +58,5 @@ public interface PayDetailService extends BaseService<PayDetail> {
 
     Map<Long, BigDecimal> getPayMoneyCountByPurchaseId(List<Long> purchaseIdList);
 
-    BigDecimal getSumMoney(List<Long> purchaseIds);
+    List<Pay> getSumMoney(List<Long> purchaseIds);
 }

+ 2 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/pay/impl/PayDetailServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.purchase.entity.pay.dto.PayDetailDto;
 import com.fjhx.purchase.entity.pay.dto.PayDetailSelectDto;
 import com.fjhx.purchase.entity.pay.enums.PayStatusEnum1;
+import com.fjhx.purchase.entity.pay.po.Pay;
 import com.fjhx.purchase.entity.pay.po.PayDetail;
 import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
 import com.fjhx.purchase.mapper.pay.PayDetailMapper;
@@ -95,7 +96,7 @@ public class PayDetailServiceImpl extends ServiceImpl<PayDetailMapper, PayDetail
      * @return
      */
     @Override
-    public BigDecimal getSumMoney(List<Long> purchaseIds) {
+    public List<Pay> getSumMoney(List<Long> purchaseIds) {
         return baseMapper.getSumMoney(purchaseIds);
     }
 

+ 4 - 2
hx-purchase/src/main/resources/mapper/pay/PayDetailMapper.xml

@@ -39,9 +39,11 @@
             ${ew.customSqlSegment}
     </select>
 
-    <select id="getSumMoney" resultType="java.math.BigDecimal">
+    <select id="getSumMoney" resultType="com.fjhx.purchase.entity.pay.po.Pay">
         SELECT
-            IFNULL(SUM(t1.money),0) AS money
+            t1.money,
+            t2.rate,
+            t2.currency
         FROM
             pay_detail t1
         LEFT JOIN pay t2 ON t1.pay_id = t2.id

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/sale/vo/SaleQuotationVo.java

@@ -55,6 +55,11 @@ public class SaleQuotationVo extends SaleQuotation {
     private String buyCorporationName;
 
     /**
+     * 客户标签
+     */
+    private String customerTag;
+
+    /**
      * 卖方公司名称
      */
     private String sellCorporationName;

+ 34 - 3
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -44,6 +44,7 @@ import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
+import com.fjhx.purchase.entity.pay.po.Pay;
 import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
@@ -1560,18 +1561,48 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
             v.setAccountPaid(BigDecimal.ZERO);
             return;
         }
+        List<Long> purchaseIds = purchaseList.stream().map(EhsdPurchase::getId).collect(Collectors.toList());
         if(MapUtils.isNotEmpty(assignCurrencyRatesMap)){
             for (EhsdPurchase c : purchaseList) {
                 purchaseSumMoney = purchaseSumMoney.add(c.getAmount().multiply(assignCurrencyRatesMap.getOrDefault(c.getCurrency(),BigDecimal.ONE)));
             }
+            /**
+             * 处理支付款金额
+             */
+            List<Pay> payList = payDetailService.getSumMoney(purchaseIds);
+            if (CollectionUtils.isNotEmpty(payList)) {
+                BigDecimal payAmount = payList.stream().map(pay -> {
+                    //获取汇率
+                    BigDecimal rate = assignCurrencyRatesMap.getOrDefault(pay.getCurrency(),BigDecimal.ONE);
+                    // 获取认领金额
+                    BigDecimal money = pay.getAmount();
+                    // 返回兑人民币后金额
+                    return rate.multiply(money);
+                }).reduce(BigDecimal.ZERO, BigDecimal::add);
+                v.setAccountPaid(payAmount);
+            }
         }else{
             for (EhsdPurchase c : purchaseList) {
                 purchaseSumMoney = purchaseSumMoney.add(c.getAmount().multiply(c.getRate()));
             }
+            v.setSumPurchaseContractMoney(purchaseSumMoney);
+            /**
+             * 处理支付款金额
+             */
+            List<Pay> payList = payDetailService.getSumMoney(purchaseIds);
+            if (CollectionUtils.isNotEmpty(payList)) {
+                BigDecimal payAmount = payList.stream().map(pay -> {
+                    //获取汇率
+                    BigDecimal rate = pay.getRate()==null?BigDecimal.ONE:pay.getRate();
+                    // 获取认领金额
+                    BigDecimal money = pay.getAmount();
+                    // 返回兑人民币后金额
+                    return rate.multiply(money);
+                }).reduce(BigDecimal.ZERO, BigDecimal::add);
+                v.setAccountPaid(payAmount);
+            }
         }
-        v.setSumPurchaseContractMoney(purchaseSumMoney);
-        List<Long> purchaseIds = purchaseList.stream().map(EhsdPurchase::getId).collect(Collectors.toList());
-        v.setAccountPaid(payDetailService.getSumMoney(purchaseIds));
+
     }
 
     /**

+ 1 - 0
hx-sale/src/main/java/com/fjhx/sale/service/sale/impl/SaleQuotationServiceImpl.java

@@ -112,6 +112,7 @@ public class SaleQuotationServiceImpl extends ServiceImpl<SaleQuotationMapper, S
         // 赋值买方公司名称(客户)
         customerService.attributeAssign(saleQuotationVoList, SaleQuotationVo::getBuyCorporationId, (item, customer) -> {
             item.setBuyCorporationName(customer.getName());
+            item.setCustomerTag(customer.getTag());
         });
         // 赋值卖方公司名称
         corporationService.attributeAssign(saleQuotationVoList, SaleQuotationVo::getSellCorporationId, (item, corporation) -> {

+ 4 - 4
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -286,10 +286,10 @@
     <update id="updateContract" parameterType="com.fjhx.sale.entity.contract.po.Contract">
         update contract
         <set>
-            <if test="id != null and id != '' ">id = #{id},</if>
-            <if test="status != null and status != ''">status = #{status},</if>
-            <if test="isChange != null and isChange != ''">is_change = #{isChange},</if>
-            <if test="isShow != null and isShow != ''">is_show = #{isShow},</if>
+            <if test="id != null">id = #{id},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="isChange != null">is_change = #{isChange},</if>
+            <if test="isShow != null">is_show = #{isShow},</if>
             <if test="approvedDate != null">approved_date = DATE_FORMAT(NOW(),'%Y-%m-%d %H:%m:%s'),</if>
             update_time = sysdate()
         </set>

+ 3 - 3
hx-sale/src/main/resources/mapper/sample/SampleMapper.xml

@@ -53,9 +53,9 @@
     <update id="updateSample" parameterType="com.fjhx.sale.entity.sample.po.Sample">
         update sample
         <set>
-            <if test="id != null and id != '' ">id = #{id},</if>
-            <if test="status != null and status != ''">status = #{status},</if>
-            <if test="isShow != null and isShow != ''">is_show = #{isShow},</if>
+            <if test="id != null">id = #{id},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="isShow != null">is_show = #{isShow},</if>
             <if test="approvedDate != null">approved_date = DATE_FORMAT(NOW(),'%Y-%m-%d %H:%m:%s'),</if>
             update_time = sysdate()
         </set>