caozj преди 1 година
родител
ревизия
53b6e68e57

+ 5 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountRunningWater.java

@@ -95,6 +95,11 @@ public class AccountRunningWater extends BasePo {
     private Integer isClaim;
 
     /**
+     * 汇率
+     */
+    private BigDecimal rate;
+
+    /**
      * 条数
      */
     @TableField(exist = false)

+ 5 - 2
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRunningWaterServiceImpl.java

@@ -24,6 +24,7 @@ import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.corporation.po.Corporation;
 import com.fjhx.common.service.corporation.CorporationService;
 import com.fjhx.common.utils.Assert;
+import com.fjhx.common.utils.ExchangeRateUtil;
 import com.fjhx.item.util.excel.util.ExcelUtil;
 import com.fjhx.socket.service.WebSocketServer;
 import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
@@ -171,7 +172,10 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
     @Override
     @DSTransactional
     public void add(AccountRunningWaterDto dto) {
-
+        if(StringUtils.isEmpty(dto.getCurrency())){
+            throw new ServiceException("币种不能为空");
+        }
+        dto.setRate(ExchangeRateUtil.getCnyToCodeRate(dto.getCurrency()));
         // 修改账户余额表的余额
         AccountRemainder accountRemainder = accountRemainderService.getOne(q -> q
                 .eq(AccountRemainder::getAccountManagementId, dto.getAccountManagementId())
@@ -181,7 +185,6 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         if (ObjectUtil.isEmpty(accountRemainder)) {
             throw new ServiceException("该账户不存在此币种,请前往资金账户添加");
         }
-
         BigDecimal amount = dto.getAmount();
         String status = dto.getStatus();
         BigDecimal remainder = accountRemainder.getRemainder();

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/Contract.java

@@ -134,6 +134,11 @@ public class Contract extends BasePo {
     private String buyContactNumber;
 
     /**
+     * 币种汇率
+     */
+    private BigDecimal rate;
+
+    /**
      * 买方国家表id
      */
     private Long buyCountryId;

+ 6 - 1
hx-sale/src/main/java/com/fjhx/sale/flow/ContractFlow.java

@@ -8,6 +8,7 @@ import com.fjhx.area.utils.CustomizeAreaUtil;
 import com.fjhx.common.enums.CodingRuleEnum;
 import com.fjhx.common.enums.FlowStatusEnum;
 import com.fjhx.common.service.coding.CodingRuleService;
+import com.fjhx.common.utils.ExchangeRateUtil;
 import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.flow.core.FlowDelegate;
 import com.fjhx.sale.entity.contract.dto.ContractDto;
@@ -21,6 +22,7 @@ import com.fjhx.sale.service.contract.ContractService;
 import com.fjhx.sale.service.contract.ContractShipmentService;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -66,7 +68,9 @@ public class ContractFlow extends FlowDelegate {
     @Override
     public Long start(Long flowId, JSONObject submitData) {
         ContractDto contract = submitData.toJavaObject(ContractDto.class);
-
+        if(StringUtils.isEmpty(contract.getCurrency())){
+            throw new ServiceException("币种不能为空");
+        }
         // 保存合同产品
         List<ContractProduct> contractProductList = contract.getContractProductList();
 
@@ -115,6 +119,7 @@ public class ContractFlow extends FlowDelegate {
         contract.setBuyCityId(contract.getCityId());
         contract.setBuyCountryId(contract.getCountryId());
         contract.setBuyProvinceId(contract.getProvinceId());
+        contract.setRate(ExchangeRateUtil.getCnyToCodeRate(contract.getCurrency()));
         contractService.save(contract);
 
         // 保存合同产品

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

@@ -2,8 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.sale.mapper.contract.ContractMapper">
     <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
-        SELECT *
-        FROM (SELECT t1.*,
+        SELECT
+               *
+            FROM
+             (SELECT
+                     t1.*,
+                     IFNULL(t1.amount,0)*IFNULL(t1.rate,0) AS amountCNY,
                      CASE
                          WHEN (t1.amount - t1.sumClaimMoney) &lt;= 0 THEN
                              20
@@ -12,7 +16,7 @@
                          ELSE 10
                          END AS refundStatusNew
               FROM (SELECT t1.*,
-                           (SELECT IFNULL(SUM(money), 0) FROM claim_contract WHERE contract_id = t1.id) AS sumClaimMoney
+                           ( SELECT IFNULL( SUM( IFNULL(money,0)*IFNULL(rate,1) ), 0 ) FROM claim_contract WHERE contract_id = t1.id ) AS sumClaimMoney
                     FROM contract t1) t1) t1
             ${ew.customSqlSegment}
     </select>