platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
@@ -1,9 +1,12 @@
package com.by4cloud.platformx.business.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.by4cloud.platformx.business.dto.PaymentConfirmAddDTO;
@@ -13,16 +16,17 @@
import com.by4cloud.platformx.business.mapper.HistoryOverdueMapper;
import com.by4cloud.platformx.business.mapper.PaymentConfirmMapper;
import com.by4cloud.platformx.business.service.BusinessCustomerService;
import com.by4cloud.platformx.business.service.ContractPaymentScheduleService;
import com.by4cloud.platformx.business.service.ContractService;
import com.by4cloud.platformx.business.service.PaymentConfirmService;
import com.by4cloud.platformx.common.core.util.R;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * 收款确认
@@ -39,6 +43,10 @@
   private final ContractPaymentScheduleMapper contractPaymentScheduleMapper;
   private final CurrentOverdueMapper currentOverdueMapper;
   private final HistoryOverdueMapper historyOverdueMapper;
   @Value("${bip.url}")
   private String url;
   @Override
   public R add(PaymentConfirmAddDTO addDTO) {
@@ -92,6 +100,7 @@
            entity.setConfirmTime(new Date());
            baseMapper.insert(entity);
         }
         //更新付款阶段付款
         List<ContractPaymentSchedule> scheduleList = contractPaymentScheduleMapper.selectList(Wrappers.<ContractPaymentSchedule>lambdaQuery()
               .eq(ContractPaymentSchedule::getContractId,contract.getId()).ne(ContractPaymentSchedule::getPaymentStatus,2)
               .orderByAsc(ContractPaymentSchedule::getCreateTime));
@@ -145,6 +154,17 @@
               }
            }
         }
         //更新合同已付款
         BigDecimal paid = new BigDecimal("0");
         if (ObjUtil.isNotNull(contract.getPaidAmount())){
            paid = contract.getPaidAmount();
         }
         paid = paid.add(addDTO.getTransationAmount());
         contract.setPaidAmount(paid);
         if (paid.compareTo(contract.getAmount())>0){
            contract.setPaidAmount(contract.getAmount());
         }
         contractService.updateById(contract);
      }
      //转出
      if (StrUtil.equals(addDTO.getInOrOut(),"2")){
@@ -169,6 +189,35 @@
         entity.setConfirmTime(new Date());
         baseMapper.insert(entity);
      }
      // 查询所有付款阶段是否都付款完成
      List<ContractPaymentSchedule> scheduleList = contractPaymentScheduleMapper.selectList(Wrappers.<ContractPaymentSchedule>lambdaQuery().eq(ContractPaymentSchedule::getContractId,contract.getId()));
      if (ArrayUtil.isNotEmpty(scheduleList.toArray())){
         if (scheduleList.stream().allMatch(item -> Objects.equals(item.getPaymentStatus(), 2))){
            contract.setContractStatus(3);
            contractService.updateById(contract);
         };
      }
      return R.ok();
   }
   @Override
   public R syncPaymentRecepit() {
      JSONObject params = new JSONObject();
      params.put("pageIndex", 1);
      params.put("pageSize", 999);
      params.put("open_billDate_begin", DateUtil.offsetDay(new Date(),-1) + " 00:00:00");
      params.put("open_billDate_begin", DateUtil.today() + " 00:00:00");
      //单据状态已审批
      params.put("verifyState", new String[]{"2"});
      //往来对象客户
      params.put("objectType", new String[]{"1"});
      //单位
//      JSONObject simpleMap = new JSONObject();
//      simpleMap.put("financeOrg.code", bipCode);
//      params.put("simple", simpleMap);
      HttpUtil.post(url+"/yonbip/EFI/collection/list",params.toJSONString());
      return null;
   }
}