|
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.fjhx.area.utils.CustomizeAreaUtil;
|
|
|
import com.fjhx.common.constant.SourceConstant;
|
|
|
import com.fjhx.common.enums.CodingRuleEnum;
|
|
@@ -31,6 +32,8 @@ import com.ruoyi.common.core.domain.entity.SysUser;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
+import com.ruoyi.system.domain.SysConfig;
|
|
|
+import com.ruoyi.system.service.ISysConfigService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
@@ -61,6 +64,9 @@ public class ContractFlow extends FlowDelegate {
|
|
|
@Autowired
|
|
|
private ContractShipmentService contractShipmentService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ISysConfigService sysConfigService;
|
|
|
+
|
|
|
@Override
|
|
|
public String getFlowKey() {
|
|
|
return "contract_flow";
|
|
@@ -169,7 +175,27 @@ public class ContractFlow extends FlowDelegate {
|
|
|
contract.setBuyCityId(contract.getCityId());
|
|
|
contract.setBuyCountryId(contract.getCountryId());
|
|
|
contract.setBuyProvinceId(contract.getProvinceId());
|
|
|
- contract.setRate(ExchangeRateUtil.getCnyToCodeRate(contract.getCurrency()));
|
|
|
+
|
|
|
+
|
|
|
+ String currency = contract.getCurrency();
|
|
|
+
|
|
|
+ DynamicDataSourceContextHolder.push(SourceConstant.BASE);
|
|
|
+
|
|
|
+ SysConfig sysConfig = sysConfigService.getOne(Wrappers.<SysConfig>lambdaQuery()
|
|
|
+ .eq(SysConfig::getConfigKey, "currency_rate")
|
|
|
+ );
|
|
|
+
|
|
|
+ if (sysConfig != null) {
|
|
|
+ String configValue = sysConfig.getConfigValue();
|
|
|
+ JSONObject rateMap = JSONObject.parseObject(configValue);
|
|
|
+ contract.setRate(rateMap.getBigDecimal(currency));
|
|
|
+ }
|
|
|
+ DynamicDataSourceContextHolder.poll();
|
|
|
+
|
|
|
+ if (contract.getRate() == null) {
|
|
|
+ contract.setRate(ExchangeRateUtil.getCnyToCodeRate(contract.getCurrency()));
|
|
|
+ }
|
|
|
+
|
|
|
contractService.saveOrUpdate(contract);
|
|
|
|
|
|
// 保存合同产品
|