Browse Source

凭证接口

master
fanzongzhe 1 year ago
parent
commit
593d15f412
  1. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java
  2. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java
  3. 85
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  4. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java
  5. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java
  6. 29
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java
  7. 22
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java
  8. 11
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java
  9. 20
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java
  10. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java
  11. 166
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java
  12. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.java
  13. 27
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.xml
  14. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java
  15. 18
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java
  16. 13
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml
  17. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java
  18. 24
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java
  19. 30
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java
  20. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java
  21. 54
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  22. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
  23. 270
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java

@ -46,5 +46,7 @@ public class PaymentVoucher {
public BigDecimal amount;
@ApiModelProperty("备注")
public String remarks;
@ApiModelProperty("借贷方类型")
public String type;
}
}

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java

@ -526,6 +526,10 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
Future future2 = pool.submit(() -> {
loanTransferPaymentApplyFeign.pushPaymentVoucher(finPaymentrecord.getBusSid(), finPaymentrecord.getSid());
});
} else if ("007".equals(costTypeKey)) {
Future future1 = pool.submit(() -> {
loanBePadsincereApplyFeign.pushAdvancesVoucher(finPaymentrecord.getBusSid(), finPaymentrecord.getSid());
});
}
} catch (Exception e) {
e.printStackTrace();

85
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java

@ -550,33 +550,36 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
List<PaymentVoucher.PaymentVoucherDetail> voucherDetails = voucher.getVoucherDetails();
if (!voucherDetails.isEmpty()) {
for (PaymentVoucher.PaymentVoucherDetail voucherDetail : voucherDetails) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode())) {
dto1.setSummary(voucherDetail.getBankName() + "垫付" + voucherDetail.getCustomerName() + "月还款");
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData();
if (null != dictCommonVo) {
dto1.setSubjectNo(dictCommonVo.getDictValue());
if (voucherDetail.getType().equals("借方")) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode())) {
dto1.setSummary(voucherDetail.getBankName() + "垫付" + voucherDetail.getCustomerName() + "月还款");
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData();
if (null != dictCommonVo) {
dto1.setSubjectNo(dictCommonVo.getDictValue());
}
} else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode())) {
dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金");
dto1.setSubjectNo("1201.02.03");
}
} else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode())) {
dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金");
dto1.setSubjectNo("1201.02.03");
}
if (voucher.getPayTypeCode().equals("02")) {
dto2.setSubjectNo("1002.01.00");
} else if (voucher.getPayTypeCode().equals("01")) {
dto2.setSubjectNo("1002.02.01");
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
} else if (voucherDetail.getType().equals("贷方")) {
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
if (voucher.getPayTypeCode().equals("02")) {
dto2.setSubjectNo("1002.01.00");
} else if (voucher.getPayTypeCode().equals("01")) {
dto2.setSubjectNo("1002.02.01");
}
String date = sdf.format(voucherDetail.getDataTime());
String[] split = date.split("-");
dto2.setSummary(split[1] + "月垫付月还款");
dto2.setBankAccount(voucher.getBankAccount());
dto2.setCredit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto2);
}
String date = sdf.format(voucherDetail.getDataTime());
String[] split = date.split("-");
dto2.setSummary(split[1] + "月垫付月还款");
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto2.setBankAccount(voucher.getBankAccount());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
dto2.setCredit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
resultDetails.add(dto2);
}
newVoucher.setResultDetails(resultDetails);
}
@ -643,8 +646,6 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = voucher.getVoucherDetails();
if (!voucherDetails.isEmpty()) {
for (GeneralVoucher.GeneralVoucherDetail voucherDetail : voucherDetails) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
String format = sdf.format(voucherDetail.getDataTime());
String[] split = format.split("-");
String month = split[1];
@ -654,18 +655,24 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
} else {
m = String.valueOf(Integer.parseInt(month) - 1);
}
dto1.setSummary("计提" + m + "逾期利息");
dto2.setSummary("计提" + m + "逾期利息");
dto1.setSubjectNo("1201.02.02");
dto2.setSubjectNo("2191.05.00");
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto2.setDimensionDept(voucherDetail.getDeptCode());
// dto2.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
dto2.setCredit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
resultDetails.add(dto2);
if (voucherDetail.getSceneCode().equals("借方")) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
dto1.setSummary("计提" + m + "逾期利息");
dto1.setSubjectNo("1201.02.02");
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
}
if (voucherDetail.getSceneCode().equals("贷方")) {
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto2.setSummary("计提" + m + "逾期利息");
dto2.setSubjectNo("2191.05.00");
dto2.setDimensionDept(voucherDetail.getDeptCode());
// dto2.setDimensionCustom(voucherDetail.getCustomerCode());
dto2.setCredit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto2);
}
}
newVoucher.setResultDetails(resultDetails);
}

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java

@ -138,4 +138,10 @@ public interface LoanBePadsincereApplyFeign {
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody LoanBePadsincereDelegateQuery loanBePadsincereDelegateQuery);
@ApiOperation("推送财务垫款付款凭证")
@PostMapping("/pushAdvancesVoucher")
@ResponseBody
public ResultBean pushAdvancesVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid);
}

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java

@ -136,4 +136,9 @@ public class LoanBePadsincereApplyFeignFallback implements LoanBePadsincereApply
return null;
}
@Override
public ResultBean pushAdvancesVoucher(String sid, String paySid) {
return null;
}
}

29
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java

@ -0,0 +1,29 @@
package com.yxt.anrui.riskcenter.api.loanpushfundhistory;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "推送资金占用费记录表", description = "推送资金占用费记录表")
@TableName("loan_push_fund_history")
@Data
public class LoanPushFundHistory extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("资金占用费")
private BigDecimal fund;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("使用组织名称")
private String useOrgName;
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
}

22
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java

@ -0,0 +1,22 @@
package com.yxt.anrui.riskcenter.api.loanpushfundhistory;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
/**
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "推送资金占用费记录表")
@FeignClient(
contextId = "anrui-riskcenter-LoanPushFundHistory",
name = "anrui-riskcenter",
path = "v1/loanpushfundhistory",
fallback = LoanPushFundHistoryFeignFallback.class)
public interface LoanPushFundHistoryFeign {
}

11
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java

@ -0,0 +1,11 @@
package com.yxt.anrui.riskcenter.api.loanpushfundhistory;
import org.springframework.stereotype.Component;
@Component
public class LoanPushFundHistoryFeignFallback implements LoanPushFundHistoryFeign {
}

20
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java

@ -0,0 +1,20 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentplandetails;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/1/5 15:59
*/
@Data
public class LoanPlanDetailsVoForFundVoucher {
private String busVinSid;
private String useOrgName;
private BigDecimal duePushMoney;
private String useOrgSid;
private BigDecimal fund;
private BigDecimal reveivableMoney;
}

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java

@ -211,4 +211,9 @@ public class LoanBePadsincereApplyRest implements LoanBePadsincereApplyFeign {
public ResultBean delegate(LoanBePadsincereDelegateQuery loanBePadsincereDelegateQuery) {
return loanBePadsincereApplyService.delegate(loanBePadsincereDelegateQuery);
}
@Override
public ResultBean pushAdvancesVoucher(String sid, String paySid) {
return loanBePadsincereApplyService.pushAdvancesVoucher(sid,paySid);
}
}

166
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java

@ -31,14 +31,26 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBankFeign;
import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapply;
import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapplyDto;
import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapplyFeign;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.voucher.PaymentVoucher;
import com.yxt.anrui.fin.api.kingdee.voucher.SceneCodeEnum;
import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
@ -57,12 +69,17 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVeh;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDto;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import com.yxt.anrui.riskcenter.biz.loanbepadsincereveh.LoanBePadsincereVehService;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
@ -144,6 +161,17 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
private FlowFeign flowFeign;
@Autowired
private FinPaymentrecordFeign finPaymentrecordFeign;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private FinManufacturerBankFeign finManufacturerBankFeign;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
public PagerVo<LoanBePadsincereApplyVo> listPageVo(PagerQuery<LoanBePadsincereApplyQuery> pq) {
LoanBePadsincereApplyQuery query = pq.getParams();
@ -936,7 +964,7 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
finPaymentrecordDto.setPurchaseSystemName("");
finPaymentrecordDto.setBusRemarks(loanBePadsincereApply.getPaymentRemarks());
String sid = finPaymentrecordFeign.save(finPaymentrecordDto).getData();
loanBePadsincereVehService.updatePaySid(sid,loanBePadsincereApply.getSid());
loanBePadsincereVehService.updatePaySid(sid, loanBePadsincereApply.getSid());
}
} else {
//极光推送
@ -960,15 +988,15 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
}
}
private static List<LoanBePadsincereVehDetailsVo> mergeListByBankCon(List<LoanBePadsincereVehDetailsVo> loanBePadsincereVehDetailsVoList){
private static List<LoanBePadsincereVehDetailsVo> mergeListByBankCon(List<LoanBePadsincereVehDetailsVo> loanBePadsincereVehDetailsVoList) {
Map<String, LoanBePadsincereVehDetailsVo> voHashMap = new HashMap<>();
for (LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo : loanBePadsincereVehDetailsVoList) {
String bankCon = loanBePadsincereVehDetailsVo.getBankContractNo();
if (voHashMap.containsKey(bankCon)){
if (voHashMap.containsKey(bankCon)) {
LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo1 = voHashMap.get(bankCon);
loanBePadsincereVehDetailsVo1.setPadMoney(String.valueOf(Double.parseDouble(loanBePadsincereVehDetailsVo1.getPadMoney()) + Double.parseDouble(loanBePadsincereVehDetailsVo.getPadMoney())));
}else {
voHashMap.put(bankCon,loanBePadsincereVehDetailsVo);
} else {
voHashMap.put(bankCon, loanBePadsincereVehDetailsVo);
}
}
return new ArrayList<>(voHashMap.values());
@ -1069,4 +1097,132 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
}
return rb.success();
}
public ResultBean pushAdvancesVoucher(String sid, String paySid) {
ResultBean rb = ResultBean.fireFail();
List<LoanBePadsincereVeh> records = loanBePadsincereVehService.selByMainSidAndPaySid(sid, paySid);
if (!records.isEmpty()) {
PaymentVoucher paymentVoucher = new PaymentVoucher();
List<PaymentVoucher.PaymentVoucherDetail> voucherDetails = new ArrayList<>();
LoanBePadsincereVeh l = records.get(0);
if (null != l) {
String accountNumber = l.getBankCollectionNum();
paymentVoucher.setBankAccount(l.getBankCollectionNum());
String mainSid = l.getMainSid();
LoanBePadsincereApply loanBePadsincereApply = fetchBySid(mainSid);
FinManufacturerBank manufacturerBank = finManufacturerBankFeign.selOneByBankNo(accountNumber, loanBePadsincereApply.getUseOrgSid()).getData();
if (null != manufacturerBank) {
paymentVoucher.setPayTypeCode(manufacturerBank.getDueBankKey());
}
String useOrgSid = loanBePadsincereApply.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
paymentVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
}
PaymentVoucher.PaymentVoucherDetail voucherDetail1 = new PaymentVoucher.PaymentVoucherDetail();
voucherDetail1.setType("贷方");
List<BigDecimal> result = new ArrayList<>();
records.stream().forEach(r -> {
result.add(new BigDecimal(r.getPadMoney()));
});
BigDecimal b = result.stream()
// 使用reduce()聚合函数,实现累加器
.reduce(BigDecimal.ZERO, BigDecimal::add);
voucherDetail1.setAmount(b);
voucherDetail1.setDataTime(new DateTime());
voucherDetails.add(voucherDetail1);
for (LoanBePadsincereVeh v : records) {
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.selOneByBankNoAndBusVinSid(v.getBankContractNo(), v.getSaleVehSid());
if (null != planDetails) {
String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails);
String deptSid = planDetails.getDeptSid();
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
String customerNumber = "";
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
}
}
if (StringUtils.isNotBlank(v.getBankBeMoney())) {
BigDecimal beMoney = new BigDecimal(v.getBankBeMoney());
if (beMoney.compareTo(BigDecimal.ZERO) > 0) {
PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
if (StringUtils.isNotBlank(customerNumber)) {
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(beMoney);
voucherDetails.add(voucherDetail);
}
}
if (StringUtils.isNotBlank(v.getBankBeInter())) {
BigDecimal beInter = new BigDecimal(v.getBankBeInter());
if (beInter.compareTo(BigDecimal.ZERO) > 0) {
PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
if (StringUtils.isNotBlank(customerNumber)) {
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(beInter);
voucherDetails.add(voucherDetail);
}
}
}
}
paymentVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveAdvancesVoucher(paymentVoucher);
}
return rb.success();
}
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.java

@ -70,4 +70,6 @@ public interface LoanBePadsincereVehMapper extends BaseMapper<LoanBePadsincereVe
@Update("update loan_be_padsincere_veh set paySid = #{paySid} where mainSid = #{mainSid}")
void updatePaySid(@Param("paySid") String paySid,@Param("mainSid") String mainSid);
List<LoanBePadsincereVeh> selByMainSidAndPaySid(@Param("sid") String sid,@Param("paySid") String paySid);
}

27
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.xml

@ -1,13 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanbepadsincereveh.LoanBePadsincereVehMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehVo">
SELECT * FROM loan_be_padsincere_veh <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehVo">
SELECT * FROM loan_be_padsincere_veh <where> ${ew.sqlSegment} </where>
</select>
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehVo">
SELECT * FROM loan_be_padsincere_veh
<where>${ew.sqlSegment}</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehVo">
SELECT * FROM loan_be_padsincere_veh
<where>${ew.sqlSegment}</where>
</select>
<select id="selByMainSidAndPaySid"
resultType="com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVeh">
SELECT *
FROM loan_be_padsincere_veh
where mainSid = #{sid}
and paySid = #{paySid}
</select>
</mapper>

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java

@ -106,4 +106,8 @@ public class LoanBePadsincereVehService extends MybatisBaseService<LoanBePadsinc
public void updatePaySid(String paySid, String mainSid) {
baseMapper.updatePaySid(paySid,mainSid);
}
public List<LoanBePadsincereVeh> selByMainSidAndPaySid(String sid, String paySid) {
return baseMapper.selByMainSidAndPaySid(sid,paySid);
}
}

18
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java

@ -0,0 +1,18 @@
package com.yxt.anrui.riskcenter.biz.loanpushfundhistory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface LoanPushFundHistoryMapper extends BaseMapper<LoanPushFundHistory> {
int saveLists(@Param("list") List<LoanPushFundHistory> list);
}

13
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanpushfundhistory.LoanPushFundHistoryMapper">
<insert id="saveLists" parameterType="java.util.List">
insert into loan_push_fund_history(sid,busVinSid,useOrgSid,useOrgName,fund)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.sid},#{item.busVinSid},#{item.useOrgSid},#{item.useOrgName},#{item.fund})
</foreach>
</insert>
</mapper>

16
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java

@ -0,0 +1,16 @@
package com.yxt.anrui.riskcenter.biz.loanpushfundhistory;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryFeign;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecordFeign;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "推送资金占用费记录表")
@RestController
@RequestMapping("v1/loanpushfundhistory")
public class LoanPushFundHistoryRest implements LoanPushFundHistoryFeign {
}

24
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java

@ -0,0 +1,24 @@
package com.yxt.anrui.riskcenter.biz.loanpushfundhistory;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @author: fzz
* @date: 2023/7/6
**/
@Service
public class LoanPushFundHistoryService extends MybatisBaseService<LoanPushFundHistoryMapper, LoanPushFundHistory> {
public int saveLists(List<LoanPushFundHistory> list) {
return baseMapper.saveLists(list);
}
}

30
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java

@ -785,21 +785,21 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
}
}
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new org.apache.tomcat.util.threads.ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy());
//推送财务当月逾期转累欠凭证
Future future = pool.submit(() -> {
pushLateVoucher(pushUseOrgSid);
});
} catch (Exception e) {
e.printStackTrace();
log.error("推送数据失败=========================" + e.getMessage());
return rb.setMsg("推送数据失败");
}
// try {
// ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
// .setNameFormat("demo-pool-%d").build();
// ExecutorService pool = new org.apache.tomcat.util.threads.ThreadPoolExecutor(1, 10,
// 1000, TimeUnit.MILLISECONDS,
// new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy());
// //推送财务当月逾期转累欠凭证
// Future future = pool.submit(() -> {
// pushLateVoucher(pushUseOrgSid);
// });
// } catch (Exception e) {
// e.printStackTrace();
// log.error("推送数据失败=========================" + e.getMessage());
// return rb.setMsg("推送数据失败");
// }
} else {
return rb.setMsg("暂无可更新的还款记录");
}

15
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java

@ -1,16 +1,9 @@
package com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.DifferenceVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.HistoryOverDueVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.*;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.AppRepaymentPlanVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.ScanRepaymentVo;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -70,4 +63,12 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper<LoanRepayment
LoanRepaymentPlanMoneyVo selVehSidAndPeriod(@Param("busVinSid") String busVinSid,@Param("period") String period);
void updateVehSidAndPeriod(@Param("busVinSid") String busVinSid,@Param("period") String period,@Param("paymentMoney") String paymentMoney,@Param("paymentInterest") String paymentInterest);
List<String> selUseOrgSidListForFundVoucher();
List<LoanPlanDetailsVoForFundVoucher> getFundForVoucher(@Param("u") String u);
List<String> selUseOrgSidListForLateVoucher();
LoanRepaymentPlanDetails selOneByBankNoAndBusVinSid(@Param("bankContractNo") String bankContractNo,@Param("saleVehSid") String saleVehSid);
}

54
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml

@ -562,4 +562,58 @@
WHERE lrpd.busVinSid = #{busVinSid}
AND lrpd.period = #{period}
</select>
<select id="selUseOrgSidListForFundVoucher" resultType="java.lang.String">
SELECT p.useOrgSid
FROM
anrui_fin.fin_uncollected_receivables_detailed_jr AS j
LEFT JOIN loan_repayment_plan_details AS p ON j.busSid = p.sid
WHERE
j.payCostTitleKey = '006'
GROUP BY p.useOrgSid
</select>
<select id="getFundForVoucher"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher">
SELECT c.*,
(c.reveivableMoney - c.fund) as duePushMoney
FROM
(SELECT b.* FROM
(SELECT a.*,
IFNULL(
(SELECT SUM(fund) FROM loan_push_fund_history as ph WHERE ph.busVinSid = a.busVinSid)
,0) as fund
FROM
(SELECT
p.busVinSid,
p.useOrgSid,
p.useOrgName,
SUM(j.reveivableMoney) as reveivableMoney
FROM
anrui_fin.fin_uncollected_receivables_detailed_jr AS j
LEFT JOIN loan_repayment_plan_details AS p ON j.busSid = p.sid
WHERE
j.payCostTitleKey = '006'
GROUP BY p.busVinSid
) as a ) as b
WHERE b.reveivableMoney - b.fund > 0
AND b.useOrgSid = #{u}
) c
</select>
<select id="selUseOrgSidListForLateVoucher" resultType="java.lang.String">
SELECT
p.useOrgSid
FROM loan_repayment_history as h LEFT JOIN loan_repayment_plan_details as p
ON h.planDetailSid = p.sid GROUP BY p.useOrgSid
</select>
<select id="selOneByBankNoAndBusVinSid"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails">
SELECT
*
FROM
loan_repayment_plan_details
WHERE
bankContractNo = #{bankContractNo}
AND busVinSid = #{saleVehSid}
LIMIT 1
</select>
</mapper>

16
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java

@ -192,4 +192,20 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
public void updateVehSidAndPeriod(String busVinSid, String period, String paymentMoney, String paymentInterest) {
baseMapper.updateVehSidAndPeriod(busVinSid, period, paymentMoney, paymentInterest);
}
public List<String> selUseOrgSidListForFundVoucher() {
return baseMapper.selUseOrgSidListForFundVoucher();
}
public List<LoanPlanDetailsVoForFundVoucher> getFundForVoucher(String u) {
return baseMapper.getFundForVoucher(u);
}
public List<String> selUseOrgSidListForLateVoucher() {
return baseMapper.selUseOrgSidListForLateVoucher();
}
public LoanRepaymentPlanDetails selOneByBankNoAndBusVinSid(String bankContractNo, String saleVehSid) {
return baseMapper.selOneByBankNoAndBusVinSid(bankContractNo,saleVehSid);
}
}

270
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java

@ -0,0 +1,270 @@
package com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.math.Money;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.riskcenter.api.loanfundday.LoanFundDay;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.utils.CollectorsUtil;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForLateVoucher;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.biz.loanfundday.LoanFundDayService;
import com.yxt.anrui.riskcenter.biz.loanpushfundhistory.LoanPushFundHistoryService;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* @description:
* @author: fzz
* @date: 2024/1/30
**/
@Component
public class ScheduledRepaymentPlanDetailsService {
@Autowired
private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private LoanPushFundHistoryService loanPushFundHistoryService;
/**
* 次月1日23点推送上月尚未转累欠的记录
*/
@Scheduled(cron = "0 0 23 1 * ?")
public void pushLateVoucher() {
List<String> useOrgSidList = loanRepaymentPlanDetailsService.selUseOrgSidListForLateVoucher();
useOrgSidList.removeAll(Collections.singleton(null));
if (!useOrgSidList.isEmpty()) {
for (String u : useOrgSidList) {
List<LoanPlanDetailsVoForLateVoucher> records = loanRepaymentPlanDetailsService.selListForLateVoucher(u);
List<String> planSids = new ArrayList<>();
if (!records.isEmpty()) {
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
for (LoanPlanDetailsVoForLateVoucher planDetails : records) {
if (null != planDetails) {
planSids.add(planDetails.getPlanSid());
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
if (StringUtils.isNotBlank(planDetails.getUseOrgSid())) {
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
}
if (StringUtils.isNotBlank(planDetails.getDeptSid())) {
String deptSid = planDetails.getDeptSid();
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
}
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
voucherDetail.setCustomerCode(customerNumber);
}
}
if (StringUtils.isNotBlank(planDetails.getOutstandingMoney())) {
voucherDetail.setAmount(new BigDecimal(planDetails.getOutstandingMoney()));
}
voucherDetails.add(voucherDetail);
}
}
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveLateVoucher(generalVoucher);
}
if (!planSids.isEmpty()) {
int i = loanRepaymentPlanDetailsService.updateOweState(planSids);
}
}
}
}
/**
* 月初1号计提上个月资金占用费
* 1号1点
*/
@Scheduled(cron = "0 0 1 1 * ?")
public void pushFundVoucher() {
List<String> useOrgSidList = loanRepaymentPlanDetailsService.selUseOrgSidListForFundVoucher();
useOrgSidList.removeAll(Collections.singleton(null));
if (!useOrgSidList.isEmpty()) {
for (String u : useOrgSidList) {
List<LoanPlanDetailsVoForFundVoucher> fundVouchers = loanRepaymentPlanDetailsService.getFundForVoucher(u);
List<LoanPushFundHistory> fundHistoryList = new ArrayList<>();
if (!fundVouchers.isEmpty()) {
BigDecimal result = fundVouchers.stream()
// 将LoanPlanDetailsVoForFundVoucher对象的duePushMoney取出来map为Bigdecimal
.map(LoanPlanDetailsVoForFundVoucher::getDuePushMoney)
// 使用reduce()聚合函数,实现累加器
.reduce(BigDecimal.ZERO, BigDecimal::add);
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(u).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail1.setSceneCode("贷方");
voucherDetail1.setDataTime(new DateTime());
voucherDetail1.setAmount(result);
List<SysOrganizationVo> deptVo = sysOrganizationFeign.selectChildrenListBySid(u).getData();
if (!deptVo.isEmpty()) {
deptVo.stream().forEach(d -> {
if (d.getName().equals("金融服务部")) {
voucherDetail1.setDeptCode(d.getOrgCode());
}
});
}
voucherDetails.add(voucherDetail1);
for (LoanPlanDetailsVoForFundVoucher v : fundVouchers) {
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(v.getBusVinSid()).getData();
if (null != busSalesOrderVehicle) {
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData();
String deptSid = salesOrder.getOrgSid();
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("借方");
voucherDetail.setDataTime(new DateTime());
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
voucherDetail.setCustomerCode(customerNumber);
}
}
voucherDetail.setAmount(v.getDuePushMoney());
voucherDetails.add(voucherDetail);
}
LoanPushFundHistory loanPushFundHistory = new LoanPushFundHistory();
BeanUtil.copyProperties(v, loanPushFundHistory, "id", "sid", "fund");
if (null != v.getDuePushMoney()) {
loanPushFundHistory.setFund(v.getDuePushMoney());
}
fundHistoryList.add(loanPushFundHistory);
}
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveFundVoucher(generalVoucher);
// 生成推送资金占用费历史记录
if (!fundHistoryList.isEmpty()) {
loanPushFundHistoryService.saveLists(fundHistoryList);
}
}
}
}
}
}
Loading…
Cancel
Save