Browse Source

修改结清申请推送财务凭证

master
fanzongzhe 8 months ago
parent
commit
a1ff1615be
  1. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/CollectionVoucher.java
  2. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java
  3. 1
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/SceneCodeEnum.java
  4. 19
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  5. 140
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  6. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseBankCostVo.java
  7. 9
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchasecost/LoanRepurchaseCost.java
  8. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyMapper.java
  9. 38
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyMapper.xml
  10. 49
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java
  11. 81
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java

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

@ -23,6 +23,8 @@ public class CollectionVoucher {
public String payTypeCode;
@ApiModelProperty("银行账号")
public String bankAccount;
@ApiModelProperty("付款方")
public String payerName;
@ApiModelProperty("凭证明细")
public List<CollectionVoucher.CollectionVoucherDetail> voucherDetails;

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

@ -48,6 +48,10 @@ public class PaymentVoucher {
public BigDecimal balance;
@ApiModelProperty("减数适用于结清时计算差额")
public BigDecimal subtrahend;
@ApiModelProperty("结清时未到期利息减免")
public BigDecimal relief;
@ApiModelProperty("结清时未到期利息不减免")
public BigDecimal noRelief;
@ApiModelProperty("备注")
public String remarks;
@ApiModelProperty("借贷方类型")

1
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/SceneCodeEnum.java

@ -12,6 +12,7 @@ public enum SceneCodeEnum {
BUCKLE_VOUCHER2("月还划扣凭证", "划扣申请通过-逾期未垫款", "02"),
BUCKLE_VOUCHER3("月还划扣凭证", "划扣申请通过-逾期已垫款(中车类)", "03"),
INDIRECT_VOUCHER1("间还月还收款凭证", "间还出纳确认后-未逾期", "04"),
INDIRECT_VOUCHER3("间还月还收款凭证", "出纳收款确认后-未到期的月还", "14"),
INDIRECT_VOUCHER2("间还月还收款凭证", "间还出纳确认后-已逾期/资方逾期利息", "05"),
TRANSFER_VOUCHER1("间还月还代付款凭证", "出纳代付款-正常或逾期未垫款", "06"),
TRANSFER_VOUCHER2("间还月还代付款凭证", "出纳代付款-已垫款(中车类)", "07"),

19
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -134,6 +134,9 @@ import java.io.InputStream;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.Predicate;
@ -3828,8 +3831,10 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdfTimes = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String collectionDate = confirmation.getCollectionDate();
String payerName = confirmation.getPayerName(); //付款方
//-------收款凭证组装---------
CollectionVoucher collectionVoucher = new CollectionVoucher();
collectionVoucher.setPayerName(payerName);
//收款方式key
collectionVoucher.setPayTypeCode(confirmation.getCollectionTypeKey());
//收款银行账号
@ -4562,7 +4567,19 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (planDetails.getOweState() == 0) {
voucherDetail.setSceneCode(SceneCodeEnum.INDIRECT_VOUCHER2.getCode());
} else if (planDetails.getOweState() == 1) {
voucherDetail.setSceneCode(SceneCodeEnum.INDIRECT_VOUCHER1.getCode());
//获取收款日期的当月最后一天
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(collectionDate, formatter);
LocalDate date = localDate.withDayOfMonth(localDate.lengthOfMonth());
Date dueDate = planDetails.getDueDate(); //应还日期
// Date -> LocalDate
LocalDate localDueDate = dueDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
boolean after = localDueDate.isAfter(date);
if (after) {
voucherDetail.setSceneCode(SceneCodeEnum.INDIRECT_VOUCHER3.getCode());
} else {
voucherDetail.setSceneCode(SceneCodeEnum.INDIRECT_VOUCHER1.getCode());
}
}
}
try {

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

@ -508,14 +508,9 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
Voucher newVoucher = new Voucher();
String payType = "";
String remarks1 = "";
String remarks2 = "";
String remarks3 = "";
String remarks4 = "";
StringBuffer sb = new StringBuffer();
Set<String> setString = new HashSet<>();
BigDecimal amountAll = new BigDecimal(0);
BigDecimal decimal = BigDecimal.ZERO;
String payerName = voucher.getPayerName();
int check = 0;
Date date = null;
List<Voucher.VoucherResultDetailDto> resultDetails = new ArrayList<>();
@ -548,11 +543,6 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
date = voucherDetail.getDataTime();
amountAll = amountAll.add(voucherDetail.getAmount());
if (payCostTitleValue.equals("月还") || payCostTitleValue.equals("资方逾期利息")) {
if (payCostTitleValue.equals("月还")) {
setString.add("月还");
} else if (payCostTitleValue.equals("资方逾期利息")) {
setString.add("逾期利息");
}
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
if (voucherDetail.getSceneCode().equals(SceneCodeEnum.INDIRECT_VOUCHER1.getCode())) {
//未逾期
@ -562,6 +552,9 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
//已逾期
dto2.setSummary("收" + voucherDetail.getCustomerName() + "累欠");
dto2.setSubjectNo("1201.02.03");
} else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.INDIRECT_VOUCHER3.getCode())){
dto2.setSummary("收" + voucherDetail.getCustomerName() + "月还");
dto2.setSubjectNo("1201.01.00");
}
dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setDimensionCustom(voucherDetail.getCustomerCode());
@ -569,7 +562,6 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
resultDetails.add(dto2);
decimal = decimal.add(voucherDetail.getAmount());
} else if (payCostTitleValue.equals("资金占用费")) {
setString.add("累欠");
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
if (voucherDetail.getSceneCode().equals(SceneCodeEnum.FUND_VOUCHER1.getCode())) {
dto2.setSummary("收逾期利息(" + sdf.format(voucherDetail.getDataTime()) + ")");
@ -581,7 +573,6 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
resultDetails.add(dto2);
decimal = decimal.add(voucherDetail.getAmount());
} else if (payCostTitleValue.equals("结清时资方逾期利息")) {
setString.add("结清款");
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto2.setSummary("收资方逾期利息");
dto2.setSubjectNo("1201.02.03");
@ -591,7 +582,6 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
resultDetails.add(dto2);
decimal = decimal.add(voucherDetail.getAmount());
} else if (payCostTitleValue.equals("名义价")) {
setString.add("结清款");
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto2.setSummary("结清名义价款");
dto2.setSubjectNo(bankCode);
@ -610,7 +600,6 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
}
decimal = decimal.add(voucherDetail.getSubtrahend());
} else if (payCostTitleValue.equals("合同违约金")) {
setString.add("结清款");
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto2.setSummary("还其他费用-合同违约金");
dto2.setSubjectNo(bankCode);
@ -629,7 +618,6 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
}
decimal = decimal.add(voucherDetail.getSubtrahend());
} else if (payCostTitleValue.equals("其他费用")) {
setString.add("结清款");
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto2.setSummary("还其他费用-资方其他费用");
dto2.setSubjectNo(bankCode);
@ -670,47 +658,17 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
}
if (check == 0) {
if (!setString.isEmpty()) {
for (String s : setString) {
if (s.equals("月还")) {
remarks1 = "月还";
} else if (s.equals("累欠")) {
remarks2 = "累欠";
} else if (s.equals("逾期利息")) {
remarks3 = "逾期利息";
} else if (s.equals("结清款")) {
remarks4 = "结清款";
}
}
}
if (StringUtils.isNotBlank(remarks1)) {
sb.append(remarks1).append("、");
}
if (StringUtils.isNotBlank(remarks2)) {
sb.append(remarks2).append("、");
}
if (StringUtils.isNotBlank(remarks3)) {
sb.append(remarks3).append("、");
}
if (StringUtils.isNotBlank(remarks4)) {
sb.append(remarks4).append("、");
}
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
if (StringUtils.isNotBlank(voucher.getBankAccount())) {
dto1.setBankAccount(voucher.getBankAccount());
}
dto1.setSubjectNo(payType);
if (sb.length() > 0) {
sb.delete(sb.length() - 1, sb.length());
dto1.setSummary("收" + sb + "(" + sdf.format(date) + ")");
}
dto1.setSummary("收款-" + payerName + "(" + sdf.format(date) + ")");
dto1.setDebit(String.valueOf(amountAll));
resultDetails.add(0, dto1);
}
newVoucher.setResultDetails(resultDetails);
}
System.out.println("借方 --" + amountAll);
System.out.println("贷方 --" + decimal);
log.info("FinKingDeeFeignRest-saveVoucher:{}", JSONObject.toJSONString(newVoucher));
return voucherService.saveVoucher(newVoucher);
}
@ -845,47 +803,81 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
}
if (voucherDetail.getSceneCode().equals(SceneCodeEnum.settle_VOUCHER1.getCode())) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //贷方
dto1.setSummary(voucherDetail.getBankName() + "结清");
dto2.setSummary(voucherDetail.getBankName() + "个贷保证金抵结清款");
dto3.setSummary(voucherDetail.getBankName() + "结清");
dto1.setSubjectNo(bankCode);
dto2.setSubjectNo("1009.01.00");
if (voucher.getPayTypeCode().equals("02")) {
dto3.setSubjectNo("1002.01.00");
} else if (voucher.getPayTypeCode().equals("01")) {
dto3.setSubjectNo("1002.02.01");
}
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setDimensionCustom(voucherDetail.getCustomerCode());
dto3.setBankAccount(voucher.getBankAccount());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
dto2.setCredit(String.valueOf(voucherDetail.getSubtrahend()));
dto3.setCredit(String.valueOf(voucherDetail.getBalance()));
resultDetails.add(dto1);
resultDetails.add(dto2);
resultDetails.add(dto3);
if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) > 0) {
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方
dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免");
dto2.setSubjectNo("6002.01.17");
dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setDebit(String.valueOf(voucherDetail.getNoRelief()));
resultDetails.add(dto2);
}
if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) > 0) {
Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方
dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免");
dto3.setSubjectNo("1201.01.00");
dto3.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto3.setDebit(String.valueOf(voucherDetail.getRelief()));
resultDetails.add(dto3);
}
Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方
dto4.setSummary(voucherDetail.getBankName() + "个贷保证金抵结清款");
dto4.setSubjectNo("1009.01.00");
dto4.setDimensionDept(voucherDetail.getDeptCode());
dto4.setDimensionCustom(voucherDetail.getCustomerCode());
dto4.setCredit(String.valueOf(voucherDetail.getSubtrahend()));
resultDetails.add(dto4);
Voucher.VoucherResultDetailDto dto5 = new Voucher.VoucherResultDetailDto(); //贷方
dto5.setSummary(voucherDetail.getBankName() + "结清");
if (voucher.getPayTypeCode().equals("02")) {
dto5.setSubjectNo("1002.01.00");
} else if (voucher.getPayTypeCode().equals("01")) {
dto5.setSubjectNo("1002.02.01");
}
dto5.setBankAccount(voucher.getBankAccount());
dto5.setCredit(String.valueOf(voucherDetail.getBalance()));
resultDetails.add(dto5);
} else {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto1.setSummary(voucherDetail.getBankName() + "结清");
dto2.setSummary(voucherDetail.getBankName() + "结清");
dto1.setSubjectNo(bankCode);
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());
dto2.setBankAccount(voucher.getBankAccount());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
dto2.setCredit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
resultDetails.add(dto2);
if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) > 0) {
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方
dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免");
dto2.setSubjectNo("6002.01.17");
dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setDebit(String.valueOf(voucherDetail.getNoRelief()));
resultDetails.add(dto2);
}
if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) > 0) {
Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方
dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免");
dto3.setSubjectNo("1201.01.00");
dto3.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto3.setDebit(String.valueOf(voucherDetail.getRelief()));
resultDetails.add(dto3);
}
Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方
dto4.setSummary(voucherDetail.getBankName() + "结清");
if (voucher.getPayTypeCode().equals("02")) {
dto4.setSubjectNo("1002.01.00");
} else if (voucher.getPayTypeCode().equals("01")) {
dto4.setSubjectNo("1002.02.01");
}
dto4.setBankAccount(voucher.getBankAccount());
dto4.setCredit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto4);
}
}
newVoucher.setResultDetails(resultDetails);

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseBankCostVo.java

@ -32,5 +32,13 @@ public class LoanRepurchaseBankCostVo {
private String otherReceivableRemarks;
@ApiModelProperty("资方结清金额")
private String bankSettlePrice;
@ApiModelProperty("是否勾选减免,1勾选,0不勾选")
private boolean topping;
@ApiModelProperty("贷款保证金")
private String loanDeposit;
@ApiModelProperty("资方收款账号")
private String bankAccount;
@ApiModelProperty("资方收款账户")
private String accountName;
private List<LoanRepurchaseApplyFile> bankfiles = new ArrayList<>(); //资方结清费用附件
}

9
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchasecost/LoanRepurchaseCost.java

@ -37,5 +37,12 @@ public class LoanRepurchaseCost extends BaseEntity {
private String otherReceivableRemarks;
@ApiModelProperty("资方结清金额")
private BigDecimal bankSettlePrice;
@ApiModelProperty("贷款保证金")
private BigDecimal loanDeposit;
@ApiModelProperty("资方收款账户")
private String accountName;
@ApiModelProperty("资方收款账号")
private String bankAccount;
@ApiModelProperty("是否抵顶(1是,0否)")
private int topping;
}

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyMapper.java

@ -8,6 +8,7 @@ import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyVo;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApply;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyVo;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyPlanRecord;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -20,7 +21,7 @@ import java.util.Map;
public interface LoanMonthlyAccrualApplyMapper extends BaseMapper<LoanMonthlyAccrualApply> {
List<LoanMonthlyAccrualApply> selByNewDate(@Param(Constants.WRAPPER) QueryWrapper<LoanMonthlyAccrualApply> qw);
List<LoanRepaymentPlanDetails> selRepaymentDetailsByDueDate(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentPlanDetails> queryWrapper);
List<LoanMonthlyPlanRecord> selRepaymentDetailsByDueDate(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentPlanDetails> queryWrapper);
int selectNum(String bill);

38
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyMapper.xml

@ -50,11 +50,43 @@
</where>
</select>
<select id="selRepaymentDetailsByDueDate"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails">
resultType="com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyPlanRecord">
SELECT
*
FROM loan_repayment_plan_details as p
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle as v ON p.busVinSid = v.sid
FROM
(
SELECT
p.orgSidPath,
p.sid recordSid,
p.loanContractNo,
p.customer,
p.vinNo,
p.bankName,
p.bankContractNo,
p.borrowerName,
p.period,
date_format ( p.dueDate, '%Y-%m-%d' ) dueDate,
p.dueMoney,
p.dept salesDept,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT
SUM(
IFNULL( h.actualMoney, 0 ))
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS money
FROM
loan_repayment_plan_details p
) a
<where>
${ew.sqlSegment}
</where>

49
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java

@ -127,6 +127,7 @@ public class LoanMonthlyAccrualApplyService extends MybatisBaseService<LoanMonth
private MessageListFeign messageListFeign;
@Autowired
private LoanRepaymentScheduleService loanRepaymentScheduleService;
public ResultBean<LoanMonthlyAccrualApplyInit> accrualInit(String orgPath) {
ResultBean<LoanMonthlyAccrualApplyInit> rb = ResultBean.fireFail();
String orgSidPath = orgPath;
@ -157,48 +158,16 @@ public class LoanMonthlyAccrualApplyService extends MybatisBaseService<LoanMonth
List<LoanMonthlyPlanRecord> records = new ArrayList<>();
QueryWrapper<LoanRepaymentPlanDetails> queryWrapper = new QueryWrapper<>();
//=======================
queryWrapper.like("p.orgSidPath", orgSidPath);
queryWrapper.apply(StringUtils.isNotEmpty(head), "date_format (p.dueDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(last), "date_format (p.dueDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')"
queryWrapper.like("a.orgSidPath", orgSidPath);
queryWrapper.apply(StringUtils.isNotEmpty(head), "date_format (a.dueDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(last), "date_format (a.dueDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')"
);
queryWrapper.ne("v.settleState",1);
List<LoanRepaymentPlanDetails> planDetailsList = baseMapper.selRepaymentDetailsByDueDate(queryWrapper);
if (!planDetailsList.isEmpty()) {
for (LoanRepaymentPlanDetails details : planDetailsList) {
LoanMonthlyPlanRecord record = new LoanMonthlyPlanRecord();
record.setRecordSid(details.getSid());
if (StringUtils.isNotBlank(details.getLoanContractNo())) {
record.setLoanContractNo(details.getLoanContractNo());
}
if (StringUtils.isNotBlank(details.getCustomer())) {
record.setCustomer(details.getCustomer());
}
if (StringUtils.isNotBlank(details.getVinNo())) {
record.setVinNo(details.getVinNo());
}
if (StringUtils.isNotBlank(details.getBankName())) {
record.setBankName(details.getBankName());
}
if (StringUtils.isNotBlank(details.getBankContractNo())) {
record.setBankContractNo(details.getBankContractNo());
}
if (StringUtils.isNotBlank(details.getBorrowerName())) {
record.setBorrowerName(details.getBorrowerName());
}
if (StringUtils.isNotBlank(details.getPeriod())) {
record.setPeriod(details.getPeriod());
}
record.setDueDate(DateUtil.formatDate(details.getDueDate()));
if (null != details.getDueMoney()) {
record.setDueMoney(String.valueOf(details.getDueMoney()));
}
if (StringUtils.isNotBlank(details.getDept())) {
record.setSalesDept(details.getDept());
}
records.add(record);
}
queryWrapper.apply("a.money > 0");
records = baseMapper.selRepaymentDetailsByDueDate(queryWrapper);
records.removeAll(Collections.singleton(null));
if (!records.isEmpty()) {
vo.setRecords(records);
}
vo.setRecords(records);
return rb.success().setData(vo);
}

81
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java

@ -1442,6 +1442,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
String userSid = loanSettleApply.getCreateBySid();
String busVinSid = loanSettleApply.getBusVinSid();
List<LoanRepaymentHistory> histories = new ArrayList<>();//还款记录
List<LoanRepaymentPlanDetails> updatePsList = new ArrayList<>();//还款计划明细集合
List<FinSelectedReceivablesDetailed> selectList = new ArrayList<>();
LoanRepaymentPlanDetails planDetails = baseMapper.selectByBusVinSidAndDesc(loanSettleApply.getBusVinSid());
String scheduleSid = planDetails.getScheduleSid();
@ -1450,6 +1451,8 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
planDetails = baseMapper.selectMainPeriodByBusVinSid(loanSettleApply.getBusVinSid());
}
String planDetailsSid = planDetails.getSid();
//公司未到期利息减免费用
BigDecimal dueMoneyJM = BigDecimal.ZERO;
//资金占用费减免费用
BigDecimal fundJM = BigDecimal.ZERO;
//其他费用减免费用
@ -1467,6 +1470,58 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (null != reduction.getOtherCost()) {
otherJM = reduction.getOtherCost();
}
if (null != reduction.getNotDuePriceRelief()) {
dueMoneyJM = reduction.getNotDuePriceRelief();
}
}
//公司未到期利息减免费用
if (dueMoneyJM.compareTo(BigDecimal.ZERO) > 0) {
List<PlanNoReturnMoney> p = baseMapper.selPlansNoReturnMoneyByBusVinSidDesc(busVinSid);
p.removeAll(Collections.singleton(null));
if (!p.isEmpty() && p.size() > 0) {
for (PlanNoReturnMoney m : p) {
if (dueMoneyJM.compareTo(BigDecimal.ZERO) > 0) {
BigDecimal money = new BigDecimal(m.getMoney());
BigDecimal mm = BigDecimal.ZERO;
String sid = m.getSid();
String mSid = m.getMSid();
LoanRepaymentHistory history = new LoanRepaymentHistory();
history.setCreateBySid(userSid);
history.setDataTime(new Date());
history.setUpdateState("1");
history.setUpdateTime(new Date());
history.setActualDate(new Date());
history.setBuckleKey("003");
history.setBuckle("审核通过");
history.setReturnWayKey("05");
history.setReturnWay("结清减免");
history.setPayState(0);
history.setPlanDetailSid(sid);
history.setScheduleSid(mSid);
if (dueMoneyJM.compareTo(money) >= 0) {
mm = money;
history.setActualMoney(money);
histories.add(history);
dueMoneyJM = dueMoneyJM.subtract(money);
} else {
mm = dueMoneyJM;
history.setActualMoney(dueMoneyJM);
histories.add(history);
dueMoneyJM = BigDecimal.ZERO;
}
LoanRepaymentPlanDetails details = loanRepaymentPlanDetailsService.fetchBySid(sid);
if (null != details) {
if (null != details.getPaymentMoney()) {
BigDecimal paymentMoney = details.getPaymentMoney();
if (paymentMoney.compareTo(BigDecimal.ZERO) > 0) {
details.setPaymentMoney(paymentMoney.subtract(mm));
updatePsList.add(details);
}
}
}
}
}
}
}
//资金占用费
List<PlanNoReturnMoney> p = baseMapper.selNoReturnJrMoneyByBusVinSidAndKeyDesc(busVinSid, "006");
@ -1546,10 +1601,17 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
selectList.add(fin);
}
}
if (histories.size() > 0 && !histories.isEmpty()) {
loanRepaymentHistoryService.saveList(histories);
}
selectList.removeAll(Collections.singleton(null));
if (selectList.size() > 0 && !selectList.isEmpty()) {
ResultBean resultBean = finSelectedReceivablesDetailedFeign.saveAll(selectList);
}
updatePsList.removeAll(Collections.singleton(null));
if (!updatePsList.isEmpty() && updatePsList.size() > 0) {
loanRepaymentPlanDetailsService.updateList(updatePsList);
}
}
//--------推送财务结清凭证------------------
@ -3190,11 +3252,25 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
ResultBean rb = ResultBean.fireFail();
LoanSettleApply apply = fetchBySid(sid);
LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(sid);
LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(sid);
if (null != apply) {
BigDecimal amountAll = BigDecimal.ZERO;//推送资方结清款总数
BigDecimal zfJQK = BigDecimal.ZERO;//资方结清款
BigDecimal bankRelief = BigDecimal.ZERO;//资方结清未到期利息减免
BigDecimal companyRelief = BigDecimal.ZERO;//公司结清未到期利息减免
BigDecimal noRelief = BigDecimal.ZERO;//结清未到期利息不减免
int topping = 0;
BigDecimal bbjDDMoney = BigDecimal.ZERO; //资方保证金抵顶
BigDecimal sub = BigDecimal.ZERO; //资方保证金差额
if (null != reduction) {
if (null != reduction.getNotDuePriceRelief()) {
companyRelief = reduction.getNotDuePriceRelief();
}
if (null != reduction.getReliefBasis()) {
bankRelief = reduction.getReliefBasis();
}
noRelief = bankRelief.subtract(companyRelief);
}
if (null != bankCost) {
if (null != bankCost.getBankSettlePrice()) {
zfJQK = bankCost.getBankSettlePrice();
@ -3205,6 +3281,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
}
}
sub = zfJQK.subtract(bbjDDMoney);
amountAll = noRelief.add(companyRelief).add(bbjDDMoney).add(sub);
if (zfJQK.compareTo(BigDecimal.ZERO) > 0) {
PaymentVoucher paymentVoucher = new PaymentVoucher();
paymentVoucher.setBankAccount(accountNumber);
@ -3276,9 +3353,11 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
voucherDetail.setCustomerCode(customerNumber);
}
}
voucherDetail.setAmount(zfJQK);
voucherDetail.setAmount(amountAll);
voucherDetail.setSubtrahend(bbjDDMoney);
voucherDetail.setBalance(sub);
voucherDetail.setRelief(companyRelief);
voucherDetail.setNoRelief(noRelief);
voucherDetails.add(voucherDetail);
}
paymentVoucher.setVoucherDetails(voucherDetails);

Loading…
Cancel
Save