Преглед на файлове

对账非发起方,列表页面全部中,去掉已保存、已撤回的数据
结算时,修改对账单的已付款金额字段

xucaiqin преди 2 години
родител
ревизия
16a42a90c4

+ 1 - 3
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpSettlementOfflineController.java

@@ -1,12 +1,11 @@
 package com.sckw.payment.controller;
 
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.payment.model.vo.req.OfflinePaymentReq;
 import com.sckw.payment.model.constant.SettlementOrderTypeEnum;
+import com.sckw.payment.model.vo.req.OfflinePaymentReq;
 import com.sckw.payment.model.vo.req.SettlementOfflinePayReq;
 import com.sckw.payment.model.vo.req.SettlementOfflineReq;
 import com.sckw.payment.service.KwpSettlementOfflineService;
-import io.seata.spring.annotation.GlobalTransactional;
 import jakarta.annotation.Resource;
 import jakarta.validation.Valid;
 import org.springframework.web.bind.annotation.*;
@@ -64,7 +63,6 @@ public class KwpSettlementOfflineController {
      * @param payReq
      * @return
      */
-    @GlobalTransactional(name = "default_tx_group", rollbackFor = Exception.class)
     @PostMapping(name = "销售收款-收款确认-线下付款", path = "confirmTradeCollection")
     public HttpResult confirmTradeCollection(@Valid @RequestBody SettlementOfflinePayReq payReq) {
         payReq.setOrderType(SettlementOrderTypeEnum.TRADE.getStatus());

+ 1 - 4
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpSettlementWalletController.java

@@ -2,13 +2,11 @@ package com.sckw.payment.controller;
 
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.payment.model.constant.SettlementOrderTypeEnum;
-import com.sckw.payment.model.constant.SettlementPayTypeEnum;
 import com.sckw.payment.model.constant.SettlementWalletPayTypeEnum;
 import com.sckw.payment.model.vo.req.OfflinePaymentReq;
 import com.sckw.payment.model.vo.req.SettlementWalletReq;
 import com.sckw.payment.model.vo.req.WalletPayReq;
 import com.sckw.payment.service.KwpSettlementWalletService;
-import io.seata.spring.annotation.GlobalTransactional;
 import jakarta.annotation.Resource;
 import jakarta.validation.Valid;
 import jakarta.validation.constraints.NotBlank;
@@ -97,8 +95,7 @@ public class KwpSettlementWalletController {
     /**
      * 采购-货到付款
      */
-    @PostMapping(name = "销售-付款确认-(新增电子钱包记录-采购货到付款)", path = "confirmReceive")
-    @GlobalTransactional(name = "default_tx_group", rollbackFor = Exception.class)
+    @PostMapping(name = "采购-付款确认-(新增电子钱包记录-采购货到付款)", path = "confirmReceive")
     public HttpResult confirmTradePayment(@RequestBody @Valid WalletPayReq payReq) {
         return HttpResult.ok(kwpSettlementWalletService.confirmTradePayment(payReq));
     }

+ 1 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpLedgerLogisticsMapper.java

@@ -23,6 +23,7 @@ public interface KwpLedgerLogisticsMapper extends BaseMapper<KwpLedgerLogistics>
 
     /**
      * 托运方
+     * 2023.8.22 需要过滤已保存、以撤回两个状态
      *
      * @param logisticsReq
      * @return

+ 10 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpLedgerTradeMapper.java

@@ -10,6 +10,7 @@ import com.sckw.payment.model.vo.res.LedgerCountSumVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -23,6 +24,13 @@ public interface KwpLedgerTradeMapper extends BaseMapper<KwpLedgerTrade> {
 
     List<LedgerSellDto> sellList(@Param("tradeReq") TradeReq tradeReq);
 
+    /**
+     * 采购方数据需要过滤已保存、已撤回状态的数据
+     *
+     * @param tradeReq
+     * @return
+     */
+
     List<LedgerPurchaseDto> purchaseList(@Param("tradeReq") TradeReq tradeReq);
 
     Map<String, Long> countOrder(@Param("tradeReq") TradeReq tradeReq);
@@ -34,4 +42,6 @@ public interface KwpLedgerTradeMapper extends BaseMapper<KwpLedgerTrade> {
     List<LedgerPurchaseDto> selectPurchaseIds(@Param("ids") List<Long> ids);
 
     LedgerCountSumVo countSum(@Param("tradeReq") TradeReq tradeReq);
+
+    void updatePrice(@Param("id") Long id, @Param("totalPrice") BigDecimal totalPrice);
 }

+ 11 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/OrderDto.java

@@ -1,10 +1,12 @@
 package com.sckw.payment.model.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.util.Date;
 
 @Data
 public class OrderDto {
@@ -29,6 +31,13 @@ public class OrderDto {
     private LocalDate endTime;
     private Long procureEntId;
     private String goodsName;
+    private String goodsType;
+    private String unit;
+    private String unitLabel;
+    private String goodsTypeLabel;
+    private BigDecimal goodsAmount;
+    private BigDecimal taxRate;
+    private String taxRateLabel;
     private String unloadName;
     private BigDecimal unitPrice;
     private BigDecimal amount;
@@ -45,7 +54,8 @@ public class OrderDto {
     private String goodsSpec;
     private String loadName;
     private String supplyFirmName;
-    private String createTime;
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
     private String procureFirmName;
     private String loadDetailAddressInfo;
     private Long contractId;

+ 21 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java

@@ -28,6 +28,7 @@ import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import io.seata.spring.annotation.GlobalTransactional;
+import jakarta.annotation.Resource;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -53,8 +54,9 @@ public class KwpLedgerTradeService extends AbsLedger {
     private final KwpLedgerTradeMapper tradeMapper;
     private final KwpLedgerTradeTrackService tradeTrackService;
     private final KwpLedgerTradeOrderService tradeOrderService;
-    private final KwpSettlementTradeService settlementTradeService;
     private final KwpLedgerTradeUnitService tradeUnitService;
+    @Resource
+    private KwpSettlementTradeService settlementTradeService;
     @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
     @DubboReference(version = "1.0.0", group = "design", check = false)
@@ -666,6 +668,14 @@ public class KwpLedgerTradeService extends AbsLedger {
             orderDto.setGoodsId(goodsInfo.getGoodsId());
             orderDto.setGoodsSpec(goodsInfo.getSpec());
             orderDto.setGoodsName(goodsInfo.getName());
+            orderDto.setGoodsType(goodsInfo.getGoodsType());
+            orderDto.setGoodsTypeLabel(goodsInfo.getGoodsTypeLabel());
+            orderDto.setUnit(goodsInfo.getUnit());
+            orderDto.setUnitLabel(goodsInfo.getUnitLabel());
+            orderDto.setUnitPrice(goodsInfo.getUnitPrice());
+            orderDto.setGoodsAmount(goodsInfo.getGoodsAmount());
+            orderDto.setTaxRate(goodsInfo.getTaxRate());
+            orderDto.setTaxRateLabel(goodsInfo.getTaxRateLabel());
         }
         List<AddressInfoDetail> addressInfo = orderDetailRes.getAddressInfo();
         if (!CollectionUtils.isEmpty(addressInfo)) {
@@ -751,4 +761,14 @@ public class KwpLedgerTradeService extends AbsLedger {
         List<KwpLedgerTrade> kwpLedgerTrades = tradeMapper.selectBatchIds(longs);
         return kwpLedgerTrades.stream().filter(a -> !Objects.equals(a.getStatus(), LedgerEnum.SUCCESS.getStatus())).map(KwpLedgerTrade::getTLedgerNo).distinct().toList();
     }
+
+    /**
+     * 更新对账单已收款金额字段 累加更新
+     *
+     * @param id         对账单id
+     * @param totalPrice 已收款金额
+     */
+    public void updateActualPrice(Long id, BigDecimal totalPrice) {
+        tradeMapper.updatePrice(id, totalPrice);
+    }
 }

+ 8 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementOfflineService.java

@@ -1,5 +1,6 @@
 package com.sckw.payment.service;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.common.enums.NumberConstant;
@@ -27,6 +28,7 @@ import com.sckw.redis.config.RedisLockUtil;
 import com.sckw.redis.constant.RedisConstant;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -55,6 +57,8 @@ public class KwpSettlementOfflineService {
     private final KwpSettlementTradeService settlementTradeService;
     private final KwpLedgerTradeOrderService tradeOrderService;
     private final KwpSettlementTradeTrackService settlementTradeTrackService;
+    private final KwpLedgerTradeService ledgerTradeService;
+
     @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
     @DubboReference(version = "1.0.0", group = "design", check = false)
@@ -268,7 +272,9 @@ public class KwpSettlementOfflineService {
      * @param payReq
      * @return
      */
+    @GlobalTransactional(name = "default_tx_group", rollbackFor = Exception.class)
     public String confirmTradeCollection(SettlementOfflinePayReq payReq) {
+        log.info("销售收款-收款确认-线下付款:{}", JSONObject.toJSONString(payReq));
         String key = String.format(RedisConstant.SETTLEMENT_KEY, payReq.getId());
         if (redisLockUtil.tryLock(key)) {
             try {
@@ -344,6 +350,8 @@ public class KwpSettlementOfflineService {
                 kwpSettlementOffline.setDelFlag(Global.UN_DELETED);
 
                 settlementOfflineMapper.insert(kwpSettlementOffline);
+                //预付款-更新对账单已付金额
+                ledgerTradeService.updateActualPrice(byId.gettLedgerId(), payReq.getPayPrice());
 
                 //记录表记录数据
                 settlementTradeTrackService.save(KwpSettlementTradeTrack.build(byId.getId(), SettlementTrackEnum.OFFLINE_PAY.getStatus()));

+ 3 - 4
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementTradeService.java

@@ -36,21 +36,20 @@ import java.util.stream.Collectors;
 
 /**
  * 贸易结算
+ *
  * @author xucaiqin
  * @date 2023-07-10 16:38:36
  */
 @Service
 @RequiredArgsConstructor
 public class KwpSettlementTradeService {
+    private final KwpSettlementTradeMapper settlementTradeMapper;
     @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
-
-    private final KwpSettlementTradeMapper settlementTradeMapper;
     private final KwpLedgerTradeUnitService tradeUnitService;
     @Resource
     private KwpSettlementWalletService walletService;
-    @Resource
-    private KwpSettlementOfflineService offlineService;
+
 
     /**
      * 查询结算单详情

+ 35 - 7
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementWalletService.java

@@ -1,5 +1,6 @@
 package com.sckw.payment.service;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.common.enums.NumberConstant;
@@ -32,6 +33,8 @@ import com.sckw.redis.config.RedisLockUtil;
 import com.sckw.redis.constant.RedisConstant;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import io.seata.spring.annotation.GlobalTransactional;
+import jakarta.annotation.Resource;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -70,6 +73,9 @@ public class KwpSettlementWalletService {
     @DubboReference(version = "1.0.0", group = "design", check = false)
     private TradeOrderInfoService tradeOrderInfoService;
     private final KwpSettlementLogisticsTrackMapper kwpSettlementLogisticsTrackMapper;
+    @Resource
+    private  KwpLedgerTradeService ledgerTradeService;
+
 
     /**
      * 物流-电子钱包付款(货到付款)结算记录-列表
@@ -258,12 +264,14 @@ public class KwpSettlementWalletService {
 
 
     /**
-     * 销售-付款确认-货到付款
+     * 采购-付款确认-货到付款
      *
-     * @author Aick Spt
+     * @author xucaiqin
      * @date 2023-07-27 16:13
      */
+    @GlobalTransactional(name = "default_tx_group", rollbackFor = Exception.class)
     public String confirmTradePayment(WalletPayReq walletPayReq) {
+        log.info("采购-付款确认-货到付款:{}", JSONObject.toJSONString(walletPayReq));
         String key = String.format(RedisConstant.SETTLEMENT_KEY, walletPayReq.getId());
         if (redisLockUtil.tryLock(key)) {
             try {
@@ -314,6 +322,7 @@ public class KwpSettlementWalletService {
                 if (subtract.compareTo(new BigDecimal("0.0")) < NumberConstant.ZERO) {
                     throw new BusinessException("付款金额不能大于待付款金额");
                 }
+                /*新增记录*/
                 //新增电子钱包结算记录
                 KwpSettlementWallet kwpSettlementWallet = new KwpSettlementWallet();
                 kwpSettlementWallet.setId(new IdWorker(NumberConstant.ONE).nextId());
@@ -333,7 +342,8 @@ public class KwpSettlementWalletService {
                 kwpSettlementWallet.setUpdateTime(LocalDateTime.now());
                 kwpSettlementWallet.setDelFlag(Global.UN_DELETED);
                 settlementWalletMapper.insert(kwpSettlementWallet);
-
+                //货到付款-更新对账单已付金额
+                ledgerTradeService.updateActualPrice(byId.getLedgerId(), price);
                 //更新交易结算单状态和金额
                 KwpSettlementTrade kwpSettlementTrade = new KwpSettlementTrade();
                 kwpSettlementTrade.setId(byId.getId());
@@ -465,7 +475,9 @@ public class KwpSettlementWalletService {
      * @param id 结算单id
      * @return
      */
+    @GlobalTransactional(name = "default_tx_group", rollbackFor = Exception.class)
     public String confirmTradeCollection(Long id) {
+        log.info("销售预付款确认,结算单id:{}", id);
         String key = String.format(RedisConstant.SETTLEMENT_KEY, id);
 
         if (redisLockUtil.tryLock(key)) {
@@ -477,6 +489,10 @@ public class KwpSettlementWalletService {
                 if (StringUtils.isNotBlank(byId.getTrading()) && !byId.getTrading().startsWith(TradingEnum.PRE_PAY.getValue())) {
                     throw new BusinessException("只支持预付款交易方式进行预付款确认操作");
                 }
+                List<KwpLedgerTradeOrder> kwpLedgerTradeOrders = tradeOrderService.queryList(byId.getLedgerId());
+                if (CollectionUtils.isEmpty(kwpLedgerTradeOrders)) {
+                    throw new BusinessException("未找到关联的贸易订单");
+                }
                 //更新交易结算单状态和金额
                 KwpSettlementTrade kwpSettlementTrade = new KwpSettlementTrade();
                 kwpSettlementTrade.setId(byId.getId());
@@ -485,6 +501,8 @@ public class KwpSettlementWalletService {
                 kwpSettlementTrade.setUpdateBy(LoginUserHolder.getUserId());
                 kwpSettlementTrade.setUpdateTime(LocalDateTime.now());
                 kwpSettlementTradeService.updateById(kwpSettlementTrade);
+                //预付款-更新对账单已付金额
+                ledgerTradeService.updateActualPrice(byId.gettLedgerId(), byId.getTotalPrice());
                 //新增电子钱包结算记录
                 KwpSettlementWallet kwpSettlementWallet = new KwpSettlementWallet();
                 kwpSettlementWallet.setId(new IdWorker(1).nextId());
@@ -505,8 +523,16 @@ public class KwpSettlementWalletService {
                 kwpSettlementWallet.setDelFlag(Global.UN_DELETED);
                 settlementWalletMapper.insert(kwpSettlementWallet);
                 settlementTradeTrackService.save(KwpSettlementTradeTrack.build(byId.getId(), SettlementTrackEnum.PRE_PAY.getStatus()));
+                //dubbo更新销售订单状态为-已结算
+                for (KwpLedgerTradeOrder kwpLedgerTradeOrder : kwpLedgerTradeOrders) {
+                    UpdateOrderStatusParam updateOrderStatusParam = new UpdateOrderStatusParam();
+                    updateOrderStatusParam.setTOrderId(kwpLedgerTradeOrder.getTOrderId());
+                    updateOrderStatusParam.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_7.getValue()));
+                    updateOrderStatusParam.setUpdateBy(LoginUserHolder.getUserId());
+                    updateOrderStatusParam.setUpdateByName(LoginUserHolder.getUserName());
+                    tradeOrderInfoService.updateOrderStatus(updateOrderStatusParam);
+                }
                 //todo-xcq 调用中台接口
-                //todo-xcq 调用订单接口,更新订单状态
                 return "确认回款成功";
             } finally {
                 redisLockUtil.unlock(key);
@@ -603,6 +629,7 @@ public class KwpSettlementWalletService {
 //        return data.get(NumberConstant.ZERO);
 //        return BigDecimal.valueOf(data.get(NumberConstant.ZERO).getMoney() / 100.0);
     }
+
     private BigDecimal getWalletBalance(List<LedgerUnitDto> listById, String trading) {
         Long uid = null;
         Long filter = null;
@@ -631,11 +658,12 @@ public class KwpSettlementWalletService {
 
     /**
      * 查询结算记录
-     * @param id 结算单id
-     * @param status 订单类型 1-物流 2-贸易
+     *
+     * @param id      结算单id
+     * @param status  订单类型 1-物流 2-贸易
      * @param payType 支付方式 1-预付款、2-货到付款
      */
-    public List<SettlementWalletDto> queryList(Long id, int status,Integer payType) {
+    public List<SettlementWalletDto> queryList(Long id, int status, Integer payType) {
         SettlementWalletReq settlementWalletReq = new SettlementWalletReq();
         settlementWalletReq.setPayType(payType);
         settlementWalletReq.setOrderType(status);

+ 1 - 10
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpWalletRelationService.java

@@ -1,16 +1,13 @@
 package com.sckw.payment.service;
 
-import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.payment.dao.KwpWalletRelationMapper;
 import com.sckw.payment.model.KwpWalletRelation;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.Objects;
-import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * @author xucaiqin
@@ -21,7 +18,6 @@ import java.util.concurrent.ConcurrentHashMap;
 public class KwpWalletRelationService {
     @Resource
     private KwpWalletRelationMapper relationMapper;
-    private final ConcurrentHashMap<Long, String> map = new ConcurrentHashMap<>(12);
 
     /**
      * 根据企业id查询中台用户
@@ -33,16 +29,11 @@ public class KwpWalletRelationService {
         if (Objects.isNull(entId)) {
             return null;
         }
-        String uid = map.get(entId);
-        if (StringUtils.isNotBlank(uid)) {
-            log.debug("从缓存中加载企业用户关系:{}", JSONObject.toJSONString(map));
-            return uid;
-        }
+
         KwpWalletRelation kwpWalletRelation = relationMapper.selectOne(new LambdaQueryWrapper<KwpWalletRelation>().eq(KwpWalletRelation::getEntId, entId).eq(KwpWalletRelation::getDelFlag, 0).last("limit 1"));
         if (Objects.isNull(kwpWalletRelation)) {
             return null;
         }
-        map.put(entId, kwpWalletRelation.getUid());
         return kwpWalletRelation.getUid();
     }
 

+ 10 - 5
sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerLogisticsMapper.xml

@@ -94,9 +94,14 @@
         <where>
             kll.del_flag = 0
               and kllu2.top_ent_id = #{logisticsReq.entId,jdbcType=BIGINT}
-            <if test="logisticsReq.status != null">
-                and kll.status = #{logisticsReq.status}
-            </if>
+            <choose>
+                <when test="logisticsReq.status != null">
+                    and kll.status = #{logisticsReq.status}
+                </when>
+                <otherwise>
+                    and kll.status not in (1, 6)
+                </otherwise>
+            </choose>
             <if test="logisticsReq.trading != null">
                 and kll.trading = #{logisticsReq.trading,jdbcType=INTEGER}
             </if>
@@ -197,8 +202,8 @@
         <where>
             kll.del_flag = 0
             and kllu2.top_ent_id = #{logisticsReq.entId,jdbcType=BIGINT}
-            <if test="logisticsReq.status != null">
-                and kll.status = #{logisticsReq.status}
+            <if test="logisticsReq.unitType != null and logisticsReq.unitType == 2">
+                and kll.status not in (1, 6)
             </if>
             <if test="logisticsReq.trading != null">
                 and kll.trading = #{logisticsReq.trading,jdbcType=INTEGER}

+ 15 - 5
sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerTradeMapper.xml

@@ -159,9 +159,14 @@
         <where>
             klt.del_flag = 0
               and kltu2.top_ent_id = #{tradeReq.entId,jdbcType=BIGINT}
-            <if test="tradeReq.status != null">
-                and klt.status = #{tradeReq.status}
-            </if>
+            <choose>
+                <when test="tradeReq.status != null">
+                    and klt.status = #{tradeReq.status}
+                </when>
+                <otherwise>
+                    and klt.status not in (1, 6)
+                </otherwise>
+            </choose>
             <if test="tradeReq.trading != null">
                 and klt.trading = #{tradeReq.trading,jdbcType=INTEGER}
             </if>
@@ -241,8 +246,8 @@
         <where>
             klt.del_flag = 0
               and kltu2.top_ent_id = #{tradeReq.entId,jdbcType=BIGINT}
-            <if test="tradeReq.status != null">
-                and klt.status = #{tradeReq.status}
+            <if test="tradeReq.unitType != null and tradeReq.unitType == 2">
+                and klt.status not in (1,6)
             </if>
             <if test="tradeReq.trading != null">
                 and klt.trading = #{tradeReq.trading,jdbcType=INTEGER}
@@ -369,4 +374,9 @@
               and klt.id = #{id,jdbcType=BIGINT}
         </where>
     </select>
+    <update id="updatePrice">
+        update kwp_settlement_trade
+        set actual_price = IFNULL(actual_price,0) + #{totalPrice,jdbcType=DECIMAL}
+        where id = #{id,jdbcType=BIGINT}
+    </update>
 </mapper>