yzc 2 lat temu
rodzic
commit
3f5d7f044d

+ 11 - 4
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchasePayRecordDetailServiceImpl.java

@@ -1,5 +1,7 @@
 package com.fjhx.purchase.service.purchase.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -18,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -42,7 +45,7 @@ public class PurchasePayRecordDetailServiceImpl extends ServiceImpl<PurchasePayR
     public Page<PurchasePayRecordDetailVo> getPage(PurchasePayRecordDetailSelectDto dto) {
         IWrapper<PurchasePayRecordDetail> wrapper = getWrapper();
         wrapper.eq(PurchasePayRecordDetail::getPurchaseId, dto.getPurchaseId());
-        wrapper.orderByDesc("ppr", PurchasePayRecordDetail::getId);
+        wrapper.orderByDesc("pprd", PurchasePayRecordDetail::getId);
         Page<PurchasePayRecordDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         UserUtil.assignmentNickName(page.getRecords(), PurchasePayRecordDetailVo::getCreateUser, PurchasePayRecordDetailVo::setPayUserName);
         return page;
@@ -55,16 +58,20 @@ public class PurchasePayRecordDetailServiceImpl extends ServiceImpl<PurchasePayR
         //修改付款状态未未付款
         Purchase purchase = purchaseService.getById(dto.getPurchaseId());
         purchase.setPayStatus(0);
+        String victoriatouristJson = purchase.getVictoriatouristJson();
+        JSONObject json = ObjectUtil.isEmpty(victoriatouristJson) ? new JSONObject() : JSONObject.parseObject(victoriatouristJson);
+        json.put("paidAmount", BigDecimal.ZERO);
+        purchase.setVictoriatouristJson(json.toJSONString());
         purchaseService.updateById(purchase);
-        //清空付款记录
-        this.remove(q -> q.eq(PurchasePayRecordDetail::getPurchaseId, dto.getPurchaseId()));
 
-        //清空记录信息
+        //清空付款记录记录信息
         List<PurchasePayRecordDetail> list = this.list(q -> q.eq(PurchasePayRecordDetail::getPurchaseId, dto.getPurchaseId()));
         if (ObjectUtils.isNotEmpty(list)) {
             List<Long> purchasePayRecordIds = list.stream().map(PurchasePayRecordDetail::getPurchasePayRecordId).collect(Collectors.toList());
             purchasePayRecordService.removeBatchByIds(purchasePayRecordIds);
         }
+        //清空付款明细信息
+        this.remove(q -> q.eq(PurchasePayRecordDetail::getPurchaseId, dto.getPurchaseId()));
     }
 
 }

+ 6 - 2
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchasePayRecordServiceImpl.java

@@ -15,6 +15,7 @@ import com.fjhx.purchase.service.purchase.PurchaseService;
 import com.obs.services.internal.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -39,6 +40,7 @@ public class PurchasePayRecordServiceImpl extends ServiceImpl<PurchasePayRecordM
     private PurchasePayRecordDetailService purchasePayRecordDetailService;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void add(PurchasePayRecordDto purchasePayRecordDto) {
         //保存付款记录
         this.save(purchasePayRecordDto);
@@ -59,9 +61,11 @@ public class PurchasePayRecordServiceImpl extends ServiceImpl<PurchasePayRecordM
             //检查付款金额+已付款金额是否大于采购金额
             Purchase purchase = purchaseMap.get(payRecord.getPurchaseId());
             List<PurchasePayRecordDetail> oldPurchasePayRecords = PayRecordMap.get(payRecord.getPurchaseId());
-
             //求和已付款
-            BigDecimal paidAmount = oldPurchasePayRecords.stream().map(PurchasePayRecordDetail::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal paidAmount = BigDecimal.ZERO;
+            if(ObjectUtil.isNotEmpty(oldPurchasePayRecords)){
+                paidAmount = oldPurchasePayRecords.stream().map(PurchasePayRecordDetail::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            }
             BigDecimal add = paidAmount.add(payRecord.getAmount());
 
             if (purchase.getAmount().compareTo(add) < 0) {

+ 9 - 9
hx-purchase/src/main/resources/mapper/purchase/PurchasePayRecordDetailMapper.xml

@@ -3,15 +3,15 @@
 <mapper namespace="com.fjhx.purchase.mapper.purchase.PurchasePayRecordDetailMapper">
     <select id="getPage" resultType="com.fjhx.purchase.entity.purchase.vo.PurchasePayRecordDetailVo">
         select
-            ppr.id,
-            ppr.purchase_id,
-            ppr.amount,
-            ppr.pay_date,
-            ppr.create_user,
-            ppr.create_time,
-            ppr.update_user,
-            ppr.update_time
-        from purchase_pay_record ppr
+            pprd.id,
+            pprd.purchase_id,
+            pprd.amount,
+            pprd.pay_date,
+            pprd.create_user,
+            pprd.create_time,
+            pprd.update_user,
+            pprd.update_time
+        from purchase_pay_record_detail pprd
             ${ew.customSqlSegment}
     </select>