Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
yunuo970428 1 month ago
parent
commit
32b2f2e6b0
  1. 4
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/AppCompanyAdjustVo.java
  2. 9
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecord.java
  3. 8
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDetailsVo.java
  4. 8
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java
  5. 6
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeign.java
  6. 9
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeignFallback.java
  7. 3
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordQuery.java
  8. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordVo.java
  9. 52
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/GetSerialNum.java
  10. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordMapper.java
  11. 10
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordMapper.xml
  12. 8
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordRest.java
  13. 352
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java
  14. 68
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  15. 15
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordFeign.java
  16. 15
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java
  17. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java
  18. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyFeign.java
  19. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlecompanyreduction/LoanSettleCompanyReduction.java
  20. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java
  21. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java
  22. 64
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskPaymentVoucher.java
  23. 52
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskVoucher.java
  24. 491
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml
  25. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehService.java
  26. 30
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java
  27. 212
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java
  28. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyRest.java
  29. 373
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java
  30. 9
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java
  31. 203
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java
  32. 13
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleenterlibrary/ScmVehicleEnterlibraryFeign.java
  33. 8
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/companyAdjust/CompanyAdjustVo.java

4
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/AppCompanyAdjustVo.java

@ -26,10 +26,10 @@ public class AppCompanyAdjustVo implements Vo {
private String callOutOrgName;
@ApiModelProperty("调车类型key")
@JsonProperty("typeKey")
private String shuntingTypeKey;
private String accadjTypeKey;
@ApiModelProperty("调车类型")
@JsonProperty("type")
private String shuntingTypeValue;
private String accadjTypeValue;
private List<AppCompanyAdjustList> records = new ArrayList<>();
}

9
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecord.java

@ -119,4 +119,13 @@ public class FinPaymentrecord extends BaseEntity {
private BigDecimal paymentCharges;
@ApiModelProperty("是否推送回款返利,0不推送,1推送")
private Integer isPushHkfl;
@ApiModelProperty("推送财务数据类型(0付款单,1凭证)")
private Integer finDataType;
@ApiModelProperty("应付类别分类(dictTypeCode)")
private String payCostType;
@ApiModelProperty("款项类别key(dictKey对应财务应付类别编码)")
private String payChannel;
@ApiModelProperty("批量处理编码")
private String batchNumber;
}

8
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDetailsVo.java

@ -85,4 +85,12 @@ public class FinPaymentrecordDetailsVo implements Vo {
private String purchaseSystemSid; // 采购系统sid
@ApiModelProperty("采购系统名称")
private String purchaseSystemName; // 采购系统名称
@ApiModelProperty("推送财务数据类型(0付款单,1凭证)")
private Integer finDataType;
@ApiModelProperty("应付类别分类(dictTypeCode)")
private String payCostType;
@ApiModelProperty("款项类别key(dictKey对应财务应付类别编码)")
private String payChannel;
@ApiModelProperty("批量处理编码")
private String batchNumber;
}

8
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java

@ -105,4 +105,12 @@ public class FinPaymentrecordDto implements Dto {
private String busRemarks;
@ApiModelProperty("是否推送回款返利,0不推送,1推送")
private Integer isPushHkfl;
@ApiModelProperty("推送财务数据类型(0付款单,1凭证)")
private Integer finDataType;
@ApiModelProperty("应付类别分类(dictTypeCode)")
private String payCostType;
@ApiModelProperty("款项类别key(dictKey对应财务应付类别编码)")
private String payChannel;
@ApiModelProperty("批量处理编码")
private String batchNumber;
}

6
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeign.java

@ -79,6 +79,12 @@ public interface FinPaymentrecordFeign {
@ResponseBody
ResultBean update(@RequestBody FinPaymentrecordUpdateDto dto);
@ApiOperation("批量办理")
@PostMapping("/batchUpdate")
@ResponseBody
ResultBean batchUpdate(@RequestBody FinPaymentrecordUpdateDto dto);
@ApiOperation("作废")
@PostMapping("/updateState")
@ResponseBody

9
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeignFallback.java

@ -29,10 +29,6 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-fin(财务) <br/>
@ -76,6 +72,11 @@ public class FinPaymentrecordFeignFallback implements FinPaymentrecordFeign {
return null;
}
@Override
public ResultBean batchUpdate(FinPaymentrecordUpdateDto dto) {
return null;
}
@Override
public ResultBean updateState(String[] sids) {
return null;

3
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordQuery.java

@ -78,5 +78,6 @@ public class FinPaymentrecordQuery implements Query {
private String payBank;
@ApiModelProperty("付款账号")
private String payBankAccount;
@ApiModelProperty("批量处理编码")
private String batchNumber;
}

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordVo.java

@ -95,4 +95,6 @@ public class FinPaymentrecordVo implements Vo {
private String payWayKey;
@ApiModelProperty("付款方式Value")
private String payWayValue;
@ApiModelProperty("批量处理编码")
private String batchNumber;
}

52
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/GetSerialNum.java

@ -0,0 +1,52 @@
package com.yxt.anrui.fin.api.finpaymentrecord;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.locks.ReentrantLock;
public class GetSerialNum {
// /**记录已有流水单*/
// public static int num = 0;
private static ReentrantLock lock = new ReentrantLock();
public static String getNum(int num) {
String unique = "";
//上锁
lock.lock();
try {
//------------------流水号业务逻辑----------------
//5位流水号
if (num == 0) {
//当天第一份流水单号
unique = new SimpleDateFormat("yyMMdd").format(new Date()) + "0001";
} else {
//当天最后的订单流水号累加1
String nums = String.valueOf(num + 1);
//设定具体流水为两位数,单数则补齐前面的0
StringBuilder sb = new StringBuilder(nums);
for (int i = nums.length(); i < 4; i++) {
sb.insert(0, "0");
}
unique = new SimpleDateFormat("yyMMdd").format(new Date()) + sb.toString();
}
//已有流水单+1
num++;
//----------------------------------
} catch (Exception e) {
e.printStackTrace();
} finally {
//释放锁
lock.unlock();
}
return unique;
}
}

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordMapper.java

@ -68,4 +68,6 @@ public interface FinPaymentrecordMapper extends BaseMapper<FinPaymentrecord> {
int updateStateBySid(@Param("sid")String sid, @Param("state") int i);
List<String> selectApplySidBySid(List<String> sids);
String selectBatchNum(@Param("s") String s);
}

10
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordMapper.xml

@ -27,7 +27,8 @@
fp.payCode,
fp.busRemarks,
fp.payWayKey,
fp.payWayValue
fp.payWayValue,
fp.batchNumber
FROM fin_paymentrecord fp
LEFT JOIN anrui_portal.sys_organization so ON fp.createOrgSid = so.sid
<where>
@ -65,4 +66,11 @@
#{item}
</foreach>
</select>
<select id="selectBatchNum" resultType="java.lang.String">
select RIGHT (batchNumber, 4)
from fin_paymentrecord
where batchNumber LIKE concat(#{s}, '%')
order by id desc
limit 1
</select>
</mapper>

8
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordRest.java

@ -34,9 +34,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-fin(财务) <br/>
* File: FinPaymentrecordFeignFallback.java <br/>
@ -87,6 +84,11 @@ public class FinPaymentrecordRest implements FinPaymentrecordFeign {
return finPaymentrecordService.updateAll(dto);
}
@Override
public ResultBean batchUpdate(FinPaymentrecordUpdateDto dto) {
return finPaymentrecordService.batchUpdate(dto);
}
@Override
public ResultBean updateState(String[] sids) {
return finPaymentrecordService.updateState(sids);

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

@ -27,6 +27,7 @@ package com.yxt.anrui.fin.biz.finpaymentrecord;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
@ -55,12 +56,14 @@ import com.yxt.anrui.fin.api.finpaymentapplyvehicle.FinPaymentapplyVehicleVo;
import com.yxt.anrui.fin.api.finpaymentrecord.*;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.api.kingdee.voucher.Voucher;
import com.yxt.anrui.fin.biz.finmanufacturerbank.FinManufacturerBankService;
import com.yxt.anrui.fin.biz.finpaymentapply.FinPaymentapplyService;
import com.yxt.anrui.fin.biz.finpaymentapplydetails.FinPaymentapplyDetailsService;
import com.yxt.anrui.fin.biz.finpaymentapplyvehicle.FinPaymentapplyVehicleService;
import com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRService;
import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService;
import com.yxt.anrui.fin.biz.kingdee.voucher.VoucherService;
import com.yxt.anrui.portal.api.flow.FlowableFeign;
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization;
@ -79,6 +82,7 @@ import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDe
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo;
import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyFeign;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApplyFeign;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.anrui.scm.api.scmcollectionrebate.ScmCollectionRebateDto;
import com.yxt.anrui.scm.api.scmcollectionrebate.ScmCollectionRebateFeign;
import com.yxt.anrui.scm.api.scmcollectionrebateveh.ScmCollectionRebateVehDto;
@ -106,6 +110,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@ -185,6 +190,8 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
private FinManufacturerBankService finManufacturerBankService;
@Autowired
private LoanSettleApplyFeign loanSettleApplyFeign;
@Autowired
private VoucherService voucherService;
public PagerVo<FinPaymentrecordVo> listPageVo(PagerQuery<FinPaymentrecordQuery> pq) {
FinPaymentrecordQuery query = pq.getParams();
@ -203,6 +210,9 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
if (StringUtils.isNotBlank(pageQuery.getCostTitleKey())) {
qw.eq("fp.costTitleKey", pageQuery.getCostTitleKey());
}
if (StringUtils.isNotBlank(pageQuery.getBatchNumber())) {
qw.like("fp.batchNumber", pageQuery.getBatchNumber());
}
//申请日期
qw.apply(StringUtils.isNotBlank(pageQuery.getCreateStartDate()), "date_format (fp.createTime,'%Y-%m-%d') >= date_format('" + pageQuery.getCreateStartDate() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(pageQuery.getCreateEndDate()), "date_format (fp.createTime,'%Y-%m-%d') <= date_format('" + pageQuery.getCreateEndDate() + "','%Y-%m-%d')"
@ -657,17 +667,26 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
厂家采购订金:005定金厂家采购车款:车辆功能厂家销售/回款通路
"外采订金:005定金
外采车款:002外采"*/
if (!"厂家采购".equals(finPaymentrecord.getCostTypeValue()) && !"厂家车款".equals(finPaymentrecord.getCostTypeValue())) {
apPayBill.setF_PAEZ_AssistantKey(finPaymentrecord.getCostTypeKey());
// if (!"厂家采购".equals(finPaymentrecord.getCostTypeValue()) && !"厂家车款".equals(finPaymentrecord.getCostTypeValue())) {
// apPayBill.setF_PAEZ_AssistantKey(finPaymentrecord.getCostTypeKey());
// apPayBill.setF_PAEZ_AssistantType("payCostType");
// } else {
// if ("009".equals(finPaymentrecord.getCostTypeKey())){
// apPayBill.setF_PAEZ_AssistantKey("001");
// }else {
// apPayBill.setF_PAEZ_AssistantKey(finPaymentrecord.getCostTypeKey());
// }
// apPayBill.setF_PAEZ_AssistantType("payChannel");
// }
if (StringUtils.isNotBlank(finPaymentrecord.getPayCostType())) {
apPayBill.setF_PAEZ_AssistantKey(finPaymentrecord.getPayCostType());
apPayBill.setF_PAEZ_AssistantType("payCostType");
} else {
if ("009".equals(finPaymentrecord.getCostTypeKey())){
apPayBill.setF_PAEZ_AssistantKey("001");
}else {
apPayBill.setF_PAEZ_AssistantKey(finPaymentrecord.getCostTypeKey());
}
if (StringUtils.isNotBlank(finPaymentrecord.getPayChannel())) {
apPayBill.setF_PAEZ_AssistantKey(finPaymentrecord.getPayChannel());
apPayBill.setF_PAEZ_AssistantType("payChannel");
}
List<ApPayBill.FPAYBILLENTRY> FPAYBILLENTRYs = new ArrayList<>();
if (finPaymentrecord.getCost() != null
&& finPaymentrecord.getCost().compareTo(BigDecimal.ZERO) > 0) {
@ -719,6 +738,325 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
}
public String selectBatchNum(String s) {
return baseMapper.selectBatchNum(s);
}
public ResultBean batchUpdate(FinPaymentrecordUpdateDto dto) {
ResultBean rb = ResultBean.fireFail();
List<String> sids = dto.getSids();
//判断选择的sids的付款申请的收款单位是否一致
List<String> applySids = baseMapper.selectApplySids(sids);
if (applySids.size() > 1) {
applySids = applySids.stream().distinct().collect(Collectors.toList());
if (applySids.size() > 1) {
return rb.setMsg("批量处理的数据中存在收款账号不一致");
}
}
if (applySids.contains("")) {
return rb.setMsg("处理的数据包含收款账号不存在的数据");
}
//判断是否包含已作废的
List<String> sidState = baseMapper.selectApplySidBySid(sids);
if (sidState.size() > 1) {
if (sidState.contains(3)) {
return rb.setMsg("处理的数据包含已作废的记录");
}
if (sidState.contains(2)) {
return rb.setMsg("处理的数据中包含已通过的记录");
}
}
//生成批量处理编号
String batchNumTemp = selectBatchNum(new SimpleDateFormat("yyMMdd").format(new Date()));
if (StringUtils.isBlank(batchNumTemp)) {
batchNumTemp = "0";
}
int intValue = Integer.valueOf(batchNumTemp).intValue();
String batchNum = GetSerialNum.getNum(intValue);
List<ApPayBill> apPayBills = new ArrayList<>();
List<Voucher> vouchers = new ArrayList<>();
for (int i = 0; i < sids.size(); i++) {
FinPaymentrecord finPaymentrecord = fetchBySid(sids.get(i));
int finDataType = 0; //(0付款单,1凭证)
if (null != finPaymentrecord.getFinDataType()) {
if (finPaymentrecord.getFinDataType().intValue() == 1) {
finDataType = 1;
}
} else {
finDataType = 1;
}
finPaymentrecord.setBatchNumber(batchNum);
//到回款返利申请
if (finPaymentrecord.getIsPushHkfl() == 1) {
ScmCollectionRebateDto scmCollectionRebateDto = new ScmCollectionRebateDto();
List<ScmCollectionRebateVehDto> scmCollectionRebateVehDtos = new ArrayList<>();
FinPaymentapply finPaymentapply = finPaymentapplyService.fetchBySid(finPaymentrecord.getApplySid());
FinPaymentapplyDetails finPaymentapplyDetails = finPaymentapplyDetailsService.fetchBySid(finPaymentrecord.getBusSid());
List<FinPaymentapplyVehicleVo> vehicleList = finPaymentapplyVehicleService.getVehicleList(finPaymentapply.getSid());
scmCollectionRebateDto.setPurchaseSystemSid(finPaymentrecord.getPurchaseSystemSid());
scmCollectionRebateDto.setPurchaseSystemName(finPaymentrecord.getPurchaseSystemName());
scmCollectionRebateDto.setCostTitleKey(finPaymentrecord.getCostTitleKey());
scmCollectionRebateDto.setCostTitleValue(finPaymentrecord.getCostTitleValue());
scmCollectionRebateDto.setBrandSid(finPaymentapply.getCarBrandSid());
scmCollectionRebateDto.setBrandName(finPaymentapply.getCarBrandName());
scmCollectionRebateDto.setCollectionTypeKey(dto.getPayWayKey());
scmCollectionRebateDto.setCollectionTypeValue(dto.getPayWayValue());
scmCollectionRebateDto.setManufaSaleChannel("");
scmCollectionRebateDto.setManufaSaleChannelValue(finPaymentapplyDetails.getActualPay());
scmCollectionRebateDto.setCollectionMoney(new BigDecimal(dto.getCost()));
scmCollectionRebateDto.setCollectionDate(DateUtil.formatDate(dto.getPayDate()));
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(finPaymentrecord.getCreateOrgSid()).getData();
scmCollectionRebateDto.setCreateOrgSid(finPaymentrecord.getCreateOrgSid());
scmCollectionRebateDto.setCreateOrgName(sysOrganizationVo.getName());
scmCollectionRebateDto.setUseOrgSid(finPaymentrecord.getUseOrgSid());
scmCollectionRebateDto.setUseOrgName(sysOrganizationVo.getName());
scmCollectionRebateDto.setOrgPath(finPaymentapply.getOrgSidPath());
scmCollectionRebateDto.setCreateBySid(finPaymentrecord.getCreateBySid());
if (vehicleList != null && vehicleList.size() > 0) {
for (FinPaymentapplyVehicleVo finPaymentapplyVehicleVo : vehicleList) {
ScmCollectionRebateVehDto scmCollectionRebateVehDto = new ScmCollectionRebateVehDto();
BaseVehicleSelectVo baseVehicleSelectVo = baseVehicleFeign.details(finPaymentapplyVehicleVo.getVehiSid()).getData();
scmCollectionRebateVehDto.setCarModelSid(finPaymentapplyVehicleVo.getModelSid());
scmCollectionRebateVehDto.setCarModelName(finPaymentapplyVehicleVo.getModelName());
scmCollectionRebateVehDto.setPriceDate(DateUtil.format(baseVehicleSelectVo.getPriceDate(), "yyyy-MM-dd"));
if (baseVehicleSelectVo.getSalesDate() != null) {
scmCollectionRebateVehDto.setSalesDate(DateUtil.format(baseVehicleSelectVo.getSalesDate(), "yyyy-MM-dd"));
}
scmCollectionRebateVehDto.setVehSid(finPaymentapplyVehicleVo.getVehiSid());
scmCollectionRebateVehDto.setVinNo(finPaymentapplyVehicleVo.getVinNo());
scmCollectionRebateVehDto.setCostPrice(finPaymentapplyVehicleVo.getMoney());
scmCollectionRebateVehDtos.add(scmCollectionRebateVehDto);
}
}
scmCollectionRebateDto.setScmCollectionRebateVehs(scmCollectionRebateVehDtos);
scmCollectionRebateDto.setIsEnable(1);
scmCollectionRebateFeign.save(scmCollectionRebateDto);
}
//更新还款计划表垫款金额和逾期利息
if ("007".equals(finPaymentrecord.getCostTypeKey())) {
List<LoanBePadsincereVehDetailsVo> loanBePadsincereVehDetailsVos = loanBePadsincereVehFeign.selByBankCont(finPaymentrecord.getApplySid(), finPaymentrecord.getBusSid()).getData();
for (LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo : loanBePadsincereVehDetailsVos) {
LoanRepaymentPlanMoneyVo loanRepaymentPlanMoneyVo = loanRepaymentPlanDetailsFeign.selVehSidAndPeriod(loanBePadsincereVehDetailsVo.getBusVinSid(), loanBePadsincereVehDetailsVo.getPeriod(), loanBePadsincereVehDetailsVo.getBankContractNo()).getData();
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(loanRepaymentPlanMoneyVo.getSid()).getData();
String paymentMoney = loanRepaymentPlanMoneyVo.getPaymentMoney().add(new BigDecimal(loanBePadsincereVehDetailsVo.getPadMoney())).toString();
String paymentInterest = loanRepaymentPlanMoneyVo.getPaymentInterest().add(new BigDecimal(loanBePadsincereVehDetailsVo.getBankBeInter())).toString();
loanRepaymentPlanDetailsFeign.updateSidAndPeriod(loanRepaymentPlanMoneyVo.getSid(), loanBePadsincereVehDetailsVo.getPeriod(), paymentMoney, paymentInterest);
//推送金融应收
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(finPaymentrecord.getCreateBySid());
SysUserVo userVo = sysUserFeign.fetchBySid(finPaymentrecord.getCreateBySid()).getData();
jr.setCreateByName(userVo.getName());
jr.setBusSid(planDetails.getSid());
jr.setApplySid(finPaymentrecord.getApplySid());
jr.setCurrentReceivableMoney(new BigDecimal(paymentInterest));
jr.setReveivableMoney(new BigDecimal(paymentInterest));
jr.setPayCostTitleKey("005");
jr.setPayCostTitleValue("资方逾期利息");
jr.setOrgSidPath(planDetails.getOrgSidPath());
jr.setUseOrgName(planDetails.getUseOrgName());
jr.setUseOrgSid(planDetails.getUseOrgSid());
jr.setStaffDeptName(planDetails.getDept());
jr.setStaffName(planDetails.getStaffName());
jr.setStaffDeptSid(planDetails.getDeptSid());
jr.setStaffUserSid(planDetails.getSalesUserSid());
finUncollectedReceivablesDetailedJRService.insert(jr);
}
}
FinPaymentrecord finPaymentrecordOne = null;
if (new BigDecimal(dto.getCost()).compareTo(finPaymentrecord.getAccountsReceive()) < 0) {//实收金额小于应收金额
finPaymentrecordOne = new FinPaymentrecord();
BeanUtil.copyProperties(finPaymentrecord, finPaymentrecordOne, "sid");
finPaymentrecordOne.setAccountsReceive(finPaymentrecord.getAccountsReceive().subtract(new BigDecimal(dto.getCost())));
finPaymentrecordOne.setCost(finPaymentrecordOne.getAccountsReceive());
}
BeanUtil.copyProperties(dto, finPaymentrecord, "sid");
List<String> payFiles = dto.getPayFiles();
if (payFiles.size() > 0) {
String payFile = payFiles.stream().map(v -> v.replace(fileUploadComponent.getUrlPrefix(), "")).collect(Collectors.joining(","));
finPaymentrecord.setPayFile(payFile);
}
baseMapper.updateById(finPaymentrecord);
//更新付款申请中的状态
FinPaymentapply finPaymentapply = finPaymentapplyService.fetchBySid(finPaymentrecord.getApplySid());
if (finPaymentapply != null) {
finPaymentapplyService.updateStateBySid(finPaymentrecord.getApplySid(), 2);
baseMapper.updateStateBySid(finPaymentrecord.getSid(), 2);
} else {
baseMapper.updateStateBySid(finPaymentrecord.getSid(), 2);
//更新厂家认款状态
BaseManufUpdateDto baseManufUpdateDto = new BaseManufUpdateDto();
baseManufUpdateDto.setSid(finPaymentrecord.getBusSid());
baseManufUpdateDto.setState("1");
ResultBean resultBean = baseManufactorSubscriptionFeign.updatePaymentState(baseManufUpdateDto);
}
if (finPaymentrecordOne != null) {
baseMapper.insert(finPaymentrecordOne);
}
//推送金蝶付款单
if (finDataType == 0) {
try {
ApPayBill apb = createApPayBill(finPaymentrecord);
apPayBills.add(apb);
} catch (Exception e) {
log.error(e.getMessage());
}
}
String costTypeKey = finPaymentrecord.getCostTypeKey();
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
int finalI = i;
if ("005".equals(costTypeKey)) {
Future future6 = pool.submit(() -> {
List<String> recipientSidList = new ArrayList<>();
BusVehicleApplyDetailsVo busVehicleApplyDetailsVo = busVehicleApplyFeign.fetchSid(finPaymentrecord.getApplySid()).getData();
String createBySid = busVehicleApplyDetailsVo.getCreateBySid();
recipientSidList.add(createBySid);
PushMessageQuery pushMessageQuery = new PushMessageQuery();
pushMessageQuery.setReceivedSids(recipientSidList);
pushMessageQuery.setModuleName("财务管理");
pushMessageQuery.setMsgContent("您的付款申请已确认通过");
pushMessageQuery.setApp_type("2");
pushMessageQuery.setModuleSid("98ff0724-5df4-4fc7-ab6d-3996e7706acd");
pushMessageQuery.setMsgTitle("付款确认通知");
pushMessageQuery.setBusinessSid(sids.get(finalI));
// 消息推送
messageFeign.pushNoUriMessage(pushMessageQuery);
});
} else if ("002".equals(costTypeKey)) {
Future future6 = pool.submit(() -> {
List<String> recipientSidList = new ArrayList<>();
BaseOutsourcingApplicationDetailsVo baseOutsourcingApplicationDetailsVo = baseOutsourcingApplicationFeign.fetchBySid(finPaymentrecord.getApplySid()).getData();
String createBySid = baseOutsourcingApplicationDetailsVo.getCreateBySid();
recipientSidList.add(createBySid);
PushMessageQuery pushMessageQuery = new PushMessageQuery();
pushMessageQuery.setReceivedSids(recipientSidList);
pushMessageQuery.setModuleName("财务管理");
pushMessageQuery.setMsgContent("您的付款申请已确认通过");
pushMessageQuery.setApp_type("2");
pushMessageQuery.setModuleSid("98ff0724-5df4-4fc7-ab6d-3996e7706acd");
pushMessageQuery.setMsgTitle("付款确认通知");
pushMessageQuery.setBusinessSid(sids.get(finalI));
// 消息推送
messageFeign.pushNoUriMessage(pushMessageQuery);
});
} else if ("006".equals(costTypeKey)) {
//推送转付记录
Future future1 = pool.submit(() -> {
loanTransferPaymentApplyFeign.pushPaymentRecord(finPaymentrecord.getBusSid(), finPaymentrecord.getSid());
});
Future future2 = pool.submit(() -> {
RskVoucher voucher = loanTransferPaymentApplyFeign.pushPaymentVoucherReturnVoucher(finPaymentrecord.getBusSid(), finPaymentrecord.getSid()).getData();
if (null != voucher) {
Voucher v = new Voucher();
BeanUtil.copyProperties(voucher, v);
vouchers.add(v);
}
});
} else if ("007".equals(costTypeKey)) {
Future future1 = pool.submit(() -> {
RskVoucher voucher = loanBePadsincereApplyFeign.pushAdvancesReturnVoucher(finPaymentrecord.getApplySid(), finPaymentrecord.getSid()).getData();
if (null != voucher) {
Voucher v = new Voucher();
BeanUtil.copyProperties(voucher, v);
vouchers.add(v);
}
});
} else if ("008".equals(costTypeKey) || "资方结清款".equals(finPaymentrecord.getCostTypeValue())) {
if (StringUtils.isNotBlank(finPaymentrecord.getPayBankAccount())) {
String shouxufei = "0";
if (null != finPaymentrecord.getPaymentCharges()) {
shouxufei = finPaymentrecord.getPaymentCharges().toString();
}
String accountNumber = finPaymentrecord.getPayBankAccount();
String payTypeCode = "";
FinManufacturerBank manufacturerBank = finManufacturerBankService.selOneByBankNo(accountNumber, finPaymentrecord.getUseOrgSid()).getData();
if (null != manufacturerBank) {
payTypeCode = manufacturerBank.getDueBankKey();
}
RskVoucher voucher = loanSettleApplyFeign.pushBankReturnVoucher(finPaymentrecord.getBusSid(), accountNumber, payTypeCode, shouxufei).getData();
if (null != voucher) {
Voucher v = new Voucher();
BeanUtil.copyProperties(voucher, v);
vouchers.add(v);
}
}
}
} 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 ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future = pool.submit(() -> {
if (!apPayBills.isEmpty()) {
ApPayBill apPayBill = buildBatchApPayBill(apPayBills);
ResultBean resultBean1 = apPayBillService.draftApPayBill(apPayBill);
}
if (!vouchers.isEmpty()) {
Voucher voucher = buildBatchVoucher(vouchers);
log.info("FinKingDeeFeignRest-saveVoucher:{}", JSONObject.toJSONString(voucher));
voucherService.saveVoucher(voucher);
}
});
} catch (Exception e) {
e.printStackTrace();
log.error("推送数据失败=========================" + e.getMessage());
return rb.setMsg("推送数据失败");
}
return rb.success();
}
private Voucher pushPaymentVoucherReturnVoucher(String busSid, String sid) {
return null;
}
public ApPayBill buildBatchApPayBill(List<ApPayBill> list) {
ApPayBill apPayBill = new ApPayBill();
List<ApPayBill.FPAYBILLENTRY> FPAYBILLENTRY = new ArrayList<>();
ApPayBill payBill = list.get(0);
BeanUtil.copyProperties(payBill, apPayBill);
for (ApPayBill bill : list) {
List<ApPayBill.FPAYBILLENTRY> fpaybillentry = bill.getFPAYBILLENTRY();
if (!fpaybillentry.isEmpty()) {
for (ApPayBill.FPAYBILLENTRY f : fpaybillentry) {
FPAYBILLENTRY.add(f);
}
}
}
apPayBill.setFPAYBILLENTRY(FPAYBILLENTRY);
return apPayBill;
}
public Voucher buildBatchVoucher(List<Voucher> list) {
Voucher newVoucher = new Voucher();
List<Voucher.VoucherResultDetailDto> resultDetails = new ArrayList<>();
Voucher voucher = list.get(0);
BeanUtil.copyProperties(voucher, newVoucher);
for (Voucher v : list) {
List<Voucher.VoucherResultDetailDto> result = v.getResultDetails();
if (!result.isEmpty()) {
for (Voucher.VoucherResultDetailDto r : result) {
resultDetails.add(r);
}
}
}
newVoucher.setResultDetails(resultDetails);
return newVoucher;
}
/**
* 作废
*

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

@ -1670,23 +1670,23 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges()));
resultDetails.add(dto0);
}
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.setCredit(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());
dto3.setDimensionCustom(voucherDetail.getCustomerCode());
dto3.setCredit(String.valueOf(voucherDetail.getRelief()));
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.setCredit(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());
// dto3.setDimensionCustom(voucherDetail.getCustomerCode());
// dto3.setCredit(String.valueOf(voucherDetail.getRelief()));
// resultDetails.add(dto3);
// }
if (voucherDetail.getSubtrahend().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方
dto4.setSummary(voucherDetail.getBankName() + "个贷保证金抵结清款");
@ -1729,23 +1729,23 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges()));
resultDetails.add(dto0);
}
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.setCredit(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());
dto3.setDimensionCustom(voucherDetail.getCustomerCode());
dto3.setCredit(String.valueOf(voucherDetail.getRelief()));
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.setCredit(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());
// dto3.setDimensionCustom(voucherDetail.getCustomerCode());
// dto3.setCredit(String.valueOf(voucherDetail.getRelief()));
// resultDetails.add(dto3);
// }
if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方
dto4.setSummary(voucherDetail.getBankName() + "结清");

15
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordFeign.java

@ -33,21 +33,6 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-riskcenter(逾期催收记录) <br/>
* File: LoanBeCollectionRecordFeign.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordFeign <br/>
* Description: 逾期催收记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-12-11 13:45:40 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "逾期催收记录")
@FeignClient(
contextId = "anrui-riskcenter-LoanBeCollectionRecord",

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

@ -25,17 +25,14 @@
*********************************************************/
package com.yxt.anrui.riskcenter.api.loanbepadsincereapply;
import com.yxt.anrui.buscenter.api.busvalcustfiling.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.CustomerRecordDelegateQuery;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentExcelInfo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.TransferPaymentQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
@ -149,6 +146,12 @@ public interface LoanBePadsincereApplyFeign {
@ResponseBody
public ResultBean pushAdvancesVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid);
@ApiOperation("推送财务垫款付款凭证")
@PostMapping("/pushAdvancesReturnVoucher")
@ResponseBody
public ResultBean<RskVoucher> pushAdvancesReturnVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid);
@ApiOperation("垫还明细列表列表导出")
@PostMapping("/dkListPageExport")
@ResponseBody

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

@ -27,6 +27,7 @@ package com.yxt.anrui.riskcenter.api.loanbepadsincereapply;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -146,6 +147,11 @@ public class LoanBePadsincereApplyFeignFallback implements LoanBePadsincereApply
return null;
}
@Override
public ResultBean<RskVoucher> pushAdvancesReturnVoucher(String sid, String paySid) {
return null;
}
@Override
public void dkListPageExport(DkRecordQuery query) {

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyFeign.java

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.api.loansettleapply;
import com.yxt.anrui.riskcenter.api.loansettleapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -110,5 +111,12 @@ public interface LoanSettleApplyFeign {
@RequestParam("shouxufei") String shouxufei
);
@ApiOperation(value = "推送资方结清款凭证")
@PostMapping(value = "/pushBankVoucher")
ResultBean<RskVoucher> pushBankReturnVoucher(@RequestParam("sid") String sid,
@RequestParam("accountNumber") String accountNumber,
@RequestParam("payTypeCode") String payTypeCode,
@RequestParam("shouxufei") String shouxufei
);
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlecompanyreduction/LoanSettleCompanyReduction.java

@ -28,7 +28,7 @@ public class LoanSettleCompanyReduction extends BaseEntity {
private BigDecimal profit;
@ApiModelProperty("公司未到期利息减免")
private BigDecimal notDuePriceRelief;
@ApiModelProperty("减免依据")
@ApiModelProperty("减免依据(资方未到期利息减免)")
private BigDecimal reliefBasis;
}

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java

@ -1,7 +1,7 @@
package com.yxt.anrui.riskcenter.api.loantransferpaymentapply;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -68,6 +68,12 @@ public interface LoanTransferPaymentApplyFeign {
@ResponseBody
public ResultBean pushPaymentVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid);
@ApiOperation("推送财务代付款凭证")
@PostMapping("/pushPaymentVoucherReturnVoucher")
@ResponseBody
public ResultBean<RskVoucher> pushPaymentVoucherReturnVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid);
//---------------------------流程---------------------------------------
@ApiOperation("提交")

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java

@ -1,9 +1,8 @@
package com.yxt.anrui.riskcenter.api.loantransferpaymentapply;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -55,6 +54,11 @@ public class LoanTransferPaymentApplyFeignFallback implements LoanTransferPaymen
return null;
}
@Override
public ResultBean<RskVoucher> pushPaymentVoucherReturnVoucher(String sid, String paySid) {
return null;
}
@Override
public ResultBean submitRecordApplication(SubmitTransferDto dto) {
return null;

64
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskPaymentVoucher.java

@ -0,0 +1,64 @@
package com.yxt.anrui.riskcenter.api.loanvoucher;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @author Fan
* @description
* @date 2023/12/19 11:18
*/
@Data
@ApiModel(value = "一般凭证 数据传输对象", description = "一般凭证 数据传输对象")
public class RskPaymentVoucher {
@ApiModelProperty("分公司编码")
public String useOrgCode;
@ApiModelProperty("收款方式编码")
public String payTypeCode;
@ApiModelProperty("银行账号")
public String bankAccount;
@ApiModelProperty("凭证明细")
public List<RskPaymentVoucher.PaymentVoucherDetail> voucherDetails;
@Data
public static class PaymentVoucherDetail {
@ApiModelProperty("场景编码")
public String sceneCode;
@ApiModelProperty("资方简称")
public String bankName;
@ApiModelProperty("数据日期")
public Date dataTime;
@ApiModelProperty("部门编码")
public String deptCode;
@ApiModelProperty("部门名称")
public String deptName;
@ApiModelProperty("客户编码")
public String customerCode;
@ApiModelProperty("客户名称")
public String customerName;
@ApiModelProperty("金额")
public BigDecimal amount;
@ApiModelProperty("差额适用于结清时计算差额")
public BigDecimal balance;
@ApiModelProperty("减数适用于结清时计算差额")
public BigDecimal subtrahend;
@ApiModelProperty("结清时未到期利息减免")
public BigDecimal relief;
@ApiModelProperty("结清时未到期利息不减免")
public BigDecimal noRelief;
@ApiModelProperty("付款时手续费")
public BigDecimal paymentCharges;
@ApiModelProperty("备注")
public String remarks;
@ApiModelProperty("借贷方类型")
public String type;
@ApiModelProperty("核算维度银行")
public String bank;
}
}

52
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskVoucher.java

@ -0,0 +1,52 @@
package com.yxt.anrui.riskcenter.api.loanvoucher;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/9/12 18:13
*/
@Data
public class RskVoucher {
@ApiModelProperty("账簿")
public String accountBook;
@ApiModelProperty("业务日期")
public String bussDate;
@ApiModelProperty("凭证字")
public String voucherWord;
@ApiModelProperty("凭证号")
public String voucherNo;
@ApiModelProperty("收款明细")
public List<RskVoucher.VoucherResultDetailDto> resultDetails;
@Data
public static class VoucherResultDetailDto implements Dto {
@ApiModelProperty("摘要")
public String summary;
@ApiModelProperty("科目编码")
public String subjectNo;
@ApiModelProperty("核算维度部门")
public String dimensionDept;
@ApiModelProperty("核算维度客户")
public String dimensionCustom;
@ApiModelProperty("核算维度银行账号")
public String bankAccount;
@ApiModelProperty("核算维度厂商(供应商)")
public String manufacturer;
@ApiModelProperty("核算维度物料")
public String material;
@ApiModelProperty("核算维度银行")
public String bank;
@ApiModelProperty("借方金额")
public String debit;
@ApiModelProperty("贷方金额")
public String credit;
}
}

491
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml

@ -16,65 +16,26 @@
a1.bankName,
a1.bankContractNo,
a1.dueMoney AS bankMonthRep,
a1.dueDate AS firstBeDate,
MIN(a1.dueDate) AS firstBeDate, -- 改为取最早逾期日期
COUNT(a1.sid) AS beOverduePeriod,
(
SUM(a1.yq_total) + IFNULL(
(SELECT
SUM(lbpv.bankBeInter)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
) AS beOverdueMoney,
SUM(a1.yq_total) +
COALESCE(lbpv_sum.bankBeInter_sum, 0) +
COALESCE(lfd_sum.fund_sum, 0) AS beOverdueMoney,
ROUND(
(
SUM(a1.yq_total) + IFNULL(
(SELECT
SUM(lbpv.bankBeInter)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
) / a1.qjyh,
(SUM(a1.yq_total) + COALESCE(lbpv_sum.bankBeInter_sum, 0) + COALESCE(lfd_sum.fund_sum, 0)) /
MAX(a1.qjyh), -- 保证聚合正确性
1
) AS beOverdueMoneyAndPeriod,
SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney,
a1.riskStaffUserSid,
a1.riskStaffUserName,
a1.reaRepaymentName AS repaymentName,
a1.createTime,
MAX(a1.riskStaffUserSid) AS riskStaffUserSid, -- 保证聚合正确性
MAX(a1.riskStaffUserName) AS riskStaffUserName,
MAX(a1.reaRepaymentName) AS repaymentName,
MAX(a1.createTime) AS createTime,
a1.orgSidPath,
a1.lockCarState
FROM
(SELECT
MAX(a1.lockCarState) AS lockCarState -- 保证聚合正确性
FROM (
SELECT
lrpd.sid,
lrpd.busVinSid,
lrpd.useOrgName,
@ -87,63 +48,67 @@
lrpd.bankContractNo,
lrpd.dueMoney,
lrpd.dueDate,
(
IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0)
) AS qjyh,
(
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total,
(
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
) / lrpd.dueMoney AS yq_hsqs,
COALESCE(lrs.mainMidRepay, 0) + COALESCE(lrs.otherMidRepay, 0) AS qjyh,
lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0) AS yq_total,
lrpd.paymentMoney AS yd_dkje,
lrpd.fund AS yd_zjzyf,
lrpd.orgSidPath,
lrpd.createBySid,
bv.riskStaffUserSid,
bv.riskStaffUserName,
bv.reaRepaymentName,
lr.createTime,
(SELECT
CASE
lbcv.lockCarState
WHEN 0
THEN '未控制'
WHEN 1
THEN '控制成功'
WHEN 2
THEN '控制失败'
WHEN 3
THEN '已解控'
lbcr.createTime,
CASE lbcv.lockCarState
WHEN 0 THEN '未控制'
WHEN 1 THEN '控制成功'
WHEN 2 THEN '控制失败'
WHEN 3 THEN '已解控'
END AS lockCarState
FROM
loan_be_collection_veh lbcv
LEFT JOIN loan_be_collection_apply lbca
ON lbca.sid = lbcv.mainSid
WHERE lbca.collMeasure LIKE '%远程控制%'
AND lbca.nodeState = '已办结'
AND lbcv.saleVehSid = lrpd.busVinSid
ORDER BY lbca.createTime DESC
LIMIT 1) AS lockCarState
FROM
loan_repayment_plan_details lrpd
FROM loan_repayment_plan_details lrpd
LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid
INNER JOIN loan_repayment_schedule lrs
ON lrpd.scheduleSid = lrs.sid
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN loan_repayment_schedule lrs
ON lrpd.scheduleSid = lrs.sid
LEFT JOIN
(SELECT
LEFT JOIN (
SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC) lr
ON lrpd.busVinSid = lr.saleVehSid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
MAX(createTime) AS createTime -- 取最新记录
FROM loan_be_collection_record
GROUP BY saleVehSid
) lbcr ON lrpd.busVinSid = lbcr.saleVehSid
LEFT JOIN (
SELECT
lbcv.saleVehSid,
lbcv.lockCarState,
ROW_NUMBER() OVER (PARTITION BY lbcv.saleVehSid ORDER BY lbca.createTime DESC) AS rn
FROM loan_be_collection_veh lbcv
JOIN loan_be_collection_apply lbca
ON lbca.sid = lbcv.mainSid
WHERE lbca.collMeasure LIKE '%远程控制%'
AND lbca.nodeState = '已办结'
) lbcv ON lbcv.saleVehSid = lrpd.busVinSid AND lbcv.rn = 1
WHERE lrpd.dueDate &lt; CURDATE() -- 移除DATE_FORMAT函数
GROUP BY lrpd.sid
HAVING (yq_total > 0)) a1
HAVING (lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0)) > 0
) a1
LEFT JOIN (
SELECT
saleVehSid,
SUM(bankBeInter) AS bankBeInter_sum
FROM loan_be_padsincere_veh
GROUP BY saleVehSid
) lbpv_sum ON lbpv_sum.saleVehSid = a1.busVinSid
LEFT JOIN (
SELECT
lrpd.busVinSid,
SUM(lfd.fund) AS fund_sum
FROM loan_fund_day lfd
JOIN loan_repayment_plan_details lrpd
ON lrpd.sid = lfd.busSid
WHERE lrpd.dueDate &lt; CURDATE()
GROUP BY lrpd.busVinSid
) lfd_sum ON lfd_sum.busVinSid = a1.busVinSid
<where>
${ew.sqlSegment}
</where>
@ -161,64 +126,25 @@
resultType="com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordVehInit">
SELECT
RIGHT(a1.vinNo, 8) AS vinNo,
a1.customer AS custName,
a1.mobile AS custPhone,
MAX(a1.customer) AS custName, -- 使用聚合函数确保分组正确
MAX(a1.mobile) AS custPhone,
a1.loanContractNo,
a1.bankContractNo,
a1.bankName,
a1.borrowerName AS loanName,
a1.vehMark AS carNum,
a1.dueDate AS firstBeDate,
MAX(a1.bankContractNo) AS bankContractNo,
MAX(a1.bankName) AS bankName,
MAX(a1.borrowerName) AS loanName,
MAX(a1.vehMark) AS carNum,
MIN(a1.dueDate) AS firstBeDate, -- 根据业务需求确定合适的聚合函数
COUNT(a1.sid) AS beOverduePeriod,
(
SUM(a1.yq_total) + IFNULL(
(SELECT
SUM(lbpv.bankBeInter)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
) AS beOverdueMoney,
ROUND((
SUM(a1.yq_total) + IFNULL(
(SELECT
SUM(lbpv.bankBeInter)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
) / a1.qjyh, 1) AS beOverdueMoneyAndPeriod,
CAST(SUM(a1.yq_total) AS DECIMAL(10,2)) + CAST(IFNULL(MAX(a1.bankBeInter_sum), 0) AS DECIMAL(10,2)) + CAST(IFNULL(MAX(a1.fund_sum), 0) AS DECIMAL(10,2)) AS beOverdueMoney,
ROUND(
(SUM(a1.yq_total) + IFNULL(MAX(a1.bankBeInter_sum), 0) + IFNULL(MAX(a1.fund_sum), 0)) / MAX(a1.qjyh),
1
) AS beOverdueMoneyAndPeriod,
a1.busVinSid AS saleVehSid,
a1.salesOrderSid,
a1.lockCarState
FROM
(SELECT
MAX(a1.salesOrderSid) AS salesOrderSid,
MAX(a1.lockCarState) AS lockCarState
FROM (
SELECT
lrpd.sid,
lrpd.busVinSid,
lrpd.loanContractNo,
@ -230,62 +156,80 @@
lrpd.vehMark,
lrpd.dueMoney,
(IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0)) AS qjyh,
(
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total,
(
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
) / lrpd.dueMoney AS yq_hsqs,
(lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))) AS yq_total,
lbpv_agg.bankBeInter_sum,
lfd_agg.fund_sum,
lrpd.customer,
ct.mobile,
lr.createTime,
lrpd.borrowerSid,
lrpd.salesOrderSid,
(SELECT
CASE
lbcv.lockCarState
WHEN 0
THEN '未控制'
WHEN 1
THEN '控制成功'
WHEN 2
THEN '控制失败'
WHEN 3
THEN '已解控'
END AS lockCarState
FROM
loan_be_collection_veh lbcv
LEFT JOIN loan_be_collection_apply lbca
ON lbca.sid = lbcv.mainSid
WHERE lbca.collMeasure LIKE '%远程控制%'
AND lbca.nodeState = '已办结'
AND lbcv.saleVehSid = lrpd.busVinSid
ORDER BY lbca.createTime DESC
LIMIT 1) AS lockCarState
lbcv_agg.lockCarState
FROM
loan_repayment_plan_details lrpd
LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN loan_repayment_schedule lrs
ON lrpd.scheduleSid = lrs.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.crm_customer_temp ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
GROUP BY lrpd.sid
HAVING (yq_total > 0)) a1
WHERE a1.borrowerSid = #{borrowerSid}
GROUP BY a1.loanContractNo,
LEFT JOIN (
SELECT
saleVehSid,
CASE lockCarState
WHEN 0 THEN '未控制'
WHEN 1 THEN '控制成功'
WHEN 2 THEN '控制失败'
WHEN 3 THEN '已解控'
END AS lockCarState
FROM (
SELECT
lbcv.saleVehSid,
lbcv.lockCarState,
ROW_NUMBER() OVER (
PARTITION BY lbcv.saleVehSid
ORDER BY lbca.createTime DESC
) AS rn
FROM loan_be_collection_veh lbcv
LEFT JOIN loan_be_collection_apply lbca
ON lbca.sid = lbcv.mainSid
WHERE
lbca.collMeasure LIKE '%远程控制%'
AND lbca.nodeState = '已办结'
) t WHERE rn = 1
) lbcv_agg
ON lbcv_agg.saleVehSid = lrpd.busVinSid
LEFT JOIN (
SELECT
saleVehSid,
SUM(bankBeInter) AS bankBeInter_sum
FROM loan_be_padsincere_veh
GROUP BY saleVehSid
) lbpv_agg
ON lbpv_agg.saleVehSid = lrpd.busVinSid
LEFT JOIN (
SELECT
lrpd_sub.busVinSid,
SUM(lfd.fund) AS fund_sum
FROM loan_fund_day lfd
JOIN loan_repayment_plan_details lrpd_sub
ON lfd.busSid = lrpd_sub.sid
WHERE
lrpd_sub.dueDate &lt; CURDATE()
GROUP BY
lrpd_sub.busVinSid
) lfd_agg
ON lfd_agg.busVinSid = lrpd.busVinSid
WHERE
lrpd.dueDate &lt; CURDATE()
GROUP BY
lrpd.sid
HAVING
(lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))) > 0
) a1
WHERE
a1.borrowerSid = #{borrowerSid}
GROUP BY
a1.loanContractNo,
a1.vinNo,
a1.busVinSid
</select>
@ -317,65 +261,26 @@
a1.bankName,
a1.bankContractNo,
a1.dueMoney AS bankMonthRep,
a1.dueDate AS firstBeDate,
MIN(a1.dueDate) AS firstBeDate, -- 改为取最早逾期日期
COUNT(a1.sid) AS beOverduePeriod,
(
SUM(a1.yq_total) + IFNULL(
(SELECT
SUM(lbpv.bankBeInter)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
) AS beOverdueMoney,
SUM(a1.yq_total) +
COALESCE(lbpv_sum.bankBeInter_sum, 0) +
COALESCE(lfd_sum.fund_sum, 0) AS beOverdueMoney,
ROUND(
(
SUM(a1.yq_total) + IFNULL(
(SELECT
SUM(lbpv.bankBeInter)
FROM
loan_be_padsincere_veh lbpv
WHERE lbpv.saleVehSid = a1.busVinSid),
0
) + IFNULL(
(SELECT
SUM(fund)
FROM
loan_fund_day
WHERE busSid IN
(SELECT
lrpd.sid
FROM
loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())),
0
)
) / a1.qjyh,
(SUM(a1.yq_total) + COALESCE(lbpv_sum.bankBeInter_sum, 0) + COALESCE(lfd_sum.fund_sum, 0)) /
MAX(a1.qjyh), -- 保证聚合正确性
1
) AS beOverdueMoneyAndPeriod,
SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney,
a1.riskStaffUserSid,
a1.riskStaffUserName,
a1.reaRepaymentName AS repaymentName,
a1.createTime,
MAX(a1.riskStaffUserSid) AS riskStaffUserSid, -- 保证聚合正确性
MAX(a1.riskStaffUserName) AS riskStaffUserName,
MAX(a1.reaRepaymentName) AS repaymentName,
MAX(a1.createTime) AS createTime,
a1.orgSidPath,
a1.lockCarState
FROM
(SELECT
MAX(a1.lockCarState) AS lockCarState -- 保证聚合正确性
FROM (
SELECT
lrpd.sid,
lrpd.busVinSid,
lrpd.useOrgName,
@ -388,63 +293,67 @@
lrpd.bankContractNo,
lrpd.dueMoney,
lrpd.dueDate,
(
IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0)
) AS qjyh,
(
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total,
(
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))
) / lrpd.dueMoney AS yq_hsqs,
COALESCE(lrs.mainMidRepay, 0) + COALESCE(lrs.otherMidRepay, 0) AS qjyh,
lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0) AS yq_total,
lrpd.paymentMoney AS yd_dkje,
lrpd.fund AS yd_zjzyf,
lrpd.orgSidPath,
lrpd.createBySid,
bv.riskStaffUserSid,
bv.riskStaffUserName,
bv.reaRepaymentName,
lr.createTime,
(SELECT
CASE
lbcv.lockCarState
WHEN 0
THEN '未控制'
WHEN 1
THEN '控制成功'
WHEN 2
THEN '控制失败'
WHEN 3
THEN '已解控'
lbcr.createTime,
CASE lbcv.lockCarState
WHEN 0 THEN '未控制'
WHEN 1 THEN '控制成功'
WHEN 2 THEN '控制失败'
WHEN 3 THEN '已解控'
END AS lockCarState
FROM
loan_be_collection_veh lbcv
LEFT JOIN loan_be_collection_apply lbca
ON lbca.sid = lbcv.mainSid
WHERE lbca.collMeasure LIKE '%远程控制%'
AND lbca.nodeState = '已办结'
AND lbcv.saleVehSid = lrpd.busVinSid
ORDER BY lbca.createTime DESC
LIMIT 1) AS lockCarState
FROM
loan_repayment_plan_details lrpd
FROM loan_repayment_plan_details lrpd
LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid
INNER JOIN loan_repayment_schedule lrs
ON lrpd.scheduleSid = lrs.sid
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN loan_repayment_schedule lrs
ON lrpd.scheduleSid = lrs.sid
LEFT JOIN
(SELECT
LEFT JOIN (
SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC) lr
ON lrpd.busVinSid = lr.saleVehSid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
MAX(createTime) AS createTime -- 取最新记录
FROM loan_be_collection_record
GROUP BY saleVehSid
) lbcr ON lrpd.busVinSid = lbcr.saleVehSid
LEFT JOIN (
SELECT
lbcv.saleVehSid,
lbcv.lockCarState,
ROW_NUMBER() OVER (PARTITION BY lbcv.saleVehSid ORDER BY lbca.createTime DESC) AS rn
FROM loan_be_collection_veh lbcv
JOIN loan_be_collection_apply lbca
ON lbca.sid = lbcv.mainSid
WHERE lbca.collMeasure LIKE '%远程控制%'
AND lbca.nodeState = '已办结'
) lbcv ON lbcv.saleVehSid = lrpd.busVinSid AND lbcv.rn = 1
WHERE lrpd.dueDate &lt; CURDATE() -- 移除DATE_FORMAT函数
GROUP BY lrpd.sid
HAVING (yq_total > 0)) a1,(
HAVING (lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0)) > 0
) a1
LEFT JOIN (
SELECT
saleVehSid,
SUM(bankBeInter) AS bankBeInter_sum
FROM loan_be_padsincere_veh
GROUP BY saleVehSid
) lbpv_sum ON lbpv_sum.saleVehSid = a1.busVinSid
LEFT JOIN (
SELECT
lrpd.busVinSid,
SUM(lfd.fund) AS fund_sum
FROM loan_fund_day lfd
JOIN loan_repayment_plan_details lrpd
ON lrpd.sid = lfd.busSid
WHERE lrpd.dueDate &lt; CURDATE()
GROUP BY lrpd.busVinSid
) lfd_sum ON lfd_sum.busVinSid = a1.busVinSid,(
SELECT
@row_number := 0
) AS t

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehService.java

@ -26,8 +26,6 @@ public class LoanBeOverdueVehService {
private SysUserFeign sysUserFeign;
@Autowired
private LoanBeOverdueVehMapper loanBeOverdueVehMapper;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
public PagerVo<LoanBeOverdueVehVo> listPageVo(PagerQuery<LoanBeOverdueVehQuery> pq) {
LoanBeOverdueVehQuery query = pq.getParams();

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

@ -26,48 +26,31 @@
package com.yxt.anrui.riskcenter.biz.loanbepadsincereapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceExportVo;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificate;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
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.loanrepaymenthistory.RepaymentExcelInfo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.export.TransferedPaymentExportVo;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Project: anrui-riskcenter(垫款申请) <br/>
* File: LoanBePadsincereApplyFeignFallback.java <br/>
@ -223,6 +206,11 @@ public class LoanBePadsincereApplyRest implements LoanBePadsincereApplyFeign {
return loanBePadsincereApplyService.pushAdvancesVoucher(sid,paySid);
}
@Override
public ResultBean<RskVoucher> pushAdvancesReturnVoucher(String sid, String paySid) {
return loanBePadsincereApplyService.pushAdvancesReturnVoucher(sid,paySid);
}
@Override
public void dkListPageExport(DkRecordQuery query) {
//得到所有要导出的数据

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

@ -29,6 +29,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
@ -42,9 +43,6 @@ 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.FinPaymentrecord;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
@ -52,6 +50,7 @@ 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.fin.api.kingdee.voucher.Voucher;
import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
@ -62,6 +61,8 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
@ -77,24 +78,24 @@ 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.loanmonthlyaccrualapply.MonthlyAccrualSourceLCVo;
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.LoanRepaymentSchedule;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApply;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentRecordVo;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskPaymentVoucher;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.anrui.riskcenter.biz.loanbepadsincereveh.LoanBePadsincereVehService;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentschedule.LoanRepaymentScheduleService;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.ConstantUtils;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.WordConvertUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.Message;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
@ -102,12 +103,6 @@ import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
@ -123,7 +118,6 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
@ -191,7 +185,8 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private DictCommonFeign dictCommonFeign;
public PagerVo<LoanBePadsincereApplyVo> listPageVo(PagerQuery<LoanBePadsincereApplyQuery> pq) {
LoanBePadsincereApplyQuery query = pq.getParams();
@ -987,6 +982,7 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
finPaymentrecordDto.setPurchaseSystemSid("");
finPaymentrecordDto.setPurchaseSystemName("");
finPaymentrecordDto.setBusRemarks(loanBePadsincereApply.getPaymentRemarks());
finPaymentrecordDto.setFinDataType(1);
String sid = finPaymentrecordFeign.save(finPaymentrecordDto).getData();
loanBePadsincereVehService.updatePaySid(sid,loanBePadsincereVehDetailsVo.getSid());
}
@ -1507,4 +1503,184 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
List<DkRecordExportVo> recordVos = baseMapper.dkListPageExport(qw);
return recordVos;
}
public ResultBean<RskVoucher> pushAdvancesReturnVoucher(String sid, String paySid) {
ResultBean rb = ResultBean.fireFail();
List<LoanBePadsincereVeh> records = loanBePadsincereVehService.selByMainSidAndPaySid(sid, paySid);
FinPaymentrecord paymentrecord = finPaymentrecordFeign.fetchBySid(paySid).getData();
if (!records.isEmpty()) {
RskPaymentVoucher paymentVoucher = new RskPaymentVoucher();
List<RskPaymentVoucher.PaymentVoucherDetail> voucherDetails = new ArrayList<>();
LoanBePadsincereVeh l = records.get(0);
if (null != l) {
String accountNumber = paymentrecord.getPayBankAccount();
paymentVoucher.setBankAccount(paymentrecord.getPayBankAccount());
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());
}
}
RskPaymentVoucher.PaymentVoucherDetail voucherDetail1 = new RskPaymentVoucher.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 = planDetails.getBankName();
String orgCode = "";
LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(planDetails.getScheduleSid());
if (null != schedule) {
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) {
orgCode = schedule.getCwDeptNo();
}
}
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) {
RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
voucherDetail.setDeptCode(orgCode);
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) {
RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
voucherDetail.setDeptCode(orgCode);
if (StringUtils.isNotBlank(customerNumber)) {
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(beInter);
voucherDetails.add(voucherDetail);
}
}
}
}
paymentVoucher.setVoucherDetails(voucherDetails);
RskVoucher rskVoucher = returnAdvancesVoucher(paymentVoucher);
return rb.success().setData(rskVoucher);
}
return rb.success();
}
public RskVoucher returnAdvancesVoucher(RskPaymentVoucher voucher) {
ResultBean rb = ResultBean.fireFail();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
RskVoucher newVoucher = new RskVoucher();
List<RskVoucher.VoucherResultDetailDto> resultDetails = new ArrayList<>();
if (com.yxt.common.base.utils.StringUtils.isNotBlank(voucher.getUseOrgCode())) {
newVoucher.setAccountBook(voucher.getUseOrgCode());
newVoucher.setVoucherNo(voucher.getUseOrgCode());
}
List<RskPaymentVoucher.PaymentVoucherDetail> voucherDetails = voucher.getVoucherDetails();
if (!voucherDetails.isEmpty()) {
for (RskPaymentVoucher.PaymentVoucherDetail voucherDetail : voucherDetails) {
if (voucherDetail.getType().equals("借方")) {
RskVoucher.VoucherResultDetailDto dto1 = new RskVoucher.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");
}
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
} else if (voucherDetail.getType().equals("贷方")) {
RskVoucher.VoucherResultDetailDto dto2 = new RskVoucher.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);
}
}
newVoucher.setResultDetails(resultDetails);
}
return newVoucher;
}
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyRest.java

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loansettleapply.*;
import com.yxt.anrui.riskcenter.api.loansettleapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -128,4 +129,9 @@ public class LoanSettleApplyRest implements LoanSettleApplyFeign {
public ResultBean pushBankVoucher(String sid, String accountNumber, String payTypeCode, String shouxufei) {
return loanSettleApplyService.pushBankVoucher(sid, accountNumber, payTypeCode,shouxufei);
}
@Override
public ResultBean<RskVoucher> pushBankReturnVoucher(String sid, String accountNumber, String payTypeCode, String shouxufei) {
return loanSettleApplyService.pushBankReturnVoucher(sid, accountNumber, payTypeCode,shouxufei);
}
}

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

@ -3,37 +3,26 @@ package com.yxt.anrui.riskcenter.biz.loansettleapply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.base.api.commoncontract.CommonContract;
import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.buscenter.api.busdeposit.BusDeposit;
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitious;
import com.yxt.anrui.buscenter.api.bussalesorder.*;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDiscountListVo;
import com.yxt.anrui.buscenter.api.bussalesorder.flowable.BusSalesOrderDelegateQuery;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderSourceLCVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesorderdeposit.BusSalesOrderDeposit;
import com.yxt.anrui.buscenter.api.bussalesorderinsurance.BusSalesOrderInsuranceDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.buscenter.api.bussalesordersubmit.BusSalesOrderSubmit;
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.finpaymentrecord.FinPaymentrecord;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedFeign;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
@ -54,16 +43,13 @@ import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysparameter.SysParameterFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
@ -79,10 +65,9 @@ import com.yxt.anrui.riskcenter.api.loansettlecompanycost.LoanSettleCompanyCostV
import com.yxt.anrui.riskcenter.api.loansettlecompanyreduction.LoanSettleCompanyReduction;
import com.yxt.anrui.riskcenter.api.loansettlecompanyreduction.LoanSettleCompanyReductionVo;
import com.yxt.anrui.riskcenter.api.loansettlevehicle.LoanSettleVehicleDto;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskPaymentVoucher;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.anrui.riskcenter.biz.loanpushfundhistory.LoanPushFundHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
@ -100,8 +85,10 @@ import com.yxt.anrui.riskcenter.biz.loansolutionsdetail.LoanSolutionsDetailServi
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.*;
import com.yxt.common.base.utils.Base64;
import com.yxt.common.base.utils.ConstantUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.WordConvertUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -111,7 +98,6 @@ import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
@ -119,7 +105,6 @@ import org.springframework.stereotype.Service;
import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
@ -970,14 +955,9 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
int check = 0;// 0不推抵顶保证金凭证 1推送
//结清合计 + 贷款保证金结转金额
BigDecimal add = amountTo.add(depositJZ);
// BigDecimal actualDeposit = BigDecimal.ZERO;
List<LoanSettleVoucherVo> settleVoucherVos = new ArrayList<>();
if (add.compareTo(BigDecimal.ZERO) > 0) {
//结转剩余保证金
// BigDecimal decimal = carryForward(loanSettleApply);
// if (null != decimal) {
// actualDeposit = decimal;
// }
settleVoucherVos = carryForward2(loanSettleApply);
check = 1;
}
@ -990,7 +970,6 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
//设置认款月还为已转付
updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid());
//推送财务凭证
// pushSettleVoucher(loanSettleApply, check, actualDeposit);
pushSettleVoucher2(loanSettleApply, check, settleVoucherVos);
}
baseMapper.updateById(loanSettleApply);
@ -2269,6 +2248,15 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
BigDecimal zfJQK = BigDecimal.ZERO;//资方结清款
int topping = 0;
BigDecimal bbjDDMoney = BigDecimal.ZERO; //资方保证金抵顶
BigDecimal wdqlxjm = BigDecimal.ZERO; //未到期利息减免
BigDecimal gsdqwdqyh = BigDecimal.ZERO; //公司当期未到期月还
BigDecimal gswdqje = BigDecimal.ZERO; //公司未到期金额
BigDecimal gswdqlxjm = BigDecimal.ZERO; //公司未到期利息减免
BigDecimal zfdqwdqyh = BigDecimal.ZERO; //资方当期未到期月还
BigDecimal zfwdqje = BigDecimal.ZERO; //资方未到期金额
BigDecimal zfwdqlxjm = BigDecimal.ZERO; //资方未到期利息减免
if (null != reduction) {
if (null != reduction.getFundPenalty()) {
fund = reduction.getFundPenalty();
@ -2276,6 +2264,12 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (null != reduction.getDepositPenalty()) {
bzjJM = reduction.getDepositPenalty();
}
if (null != reduction.getNotDuePriceRelief()) {
gswdqlxjm = reduction.getNotDuePriceRelief();
}
if (null != reduction.getReliefBasis()) {
zfwdqlxjm = reduction.getReliefBasis();
}
}
if (null != companyCost) {
if (null != companyCost.getLoanDeposit()) {
@ -2284,6 +2278,13 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (null != companyCost.getDeductionAmount()) {
bzjKF = companyCost.getDeductionAmount();
}
if (null != companyCost.getCompanyCurrentNotPrice()) {
gsdqwdqyh = companyCost.getCompanyCurrentNotPrice();
}
if (null != companyCost.getBankNotPrice()) {
gswdqje = companyCost.getBankNotPrice();
}
}
if (null != bankCost) {
if (null != bankCost.getBankSettlePrice()) {
@ -2293,6 +2294,12 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (null != bankCost.getLoanDeposit()) {
bbjDDMoney = bankCost.getLoanDeposit();
}
if (null != bankCost.getCurrentNotDuePrice()) {
zfdqwdqyh = bankCost.getCurrentNotDuePrice();
}
if (null != bankCost.getNotDuePrice()) {
zfwdqje = bankCost.getNotDuePrice();
}
}
sybzj = bzjMoney.subtract(bzjKF).add(bzjJM);
bzjKFCw = bzjKF.subtract(bzjJM);
@ -2497,6 +2504,37 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
voucherDetail.setDebit(amountAll.toString());
resultDetails.add(voucherDetail);
}
BigDecimal yhcesrCompany = gsdqwdqyh.add(gswdqje).subtract(gswdqlxjm); //月还差额计收入 公司部分
BigDecimal yhcesrBank = zfdqwdqyh.add(zfwdqje).subtract(zfwdqlxjm); //月还差额计收入 资方部分
BigDecimal yhcejsr = yhcesrCompany.subtract(yhcesrBank);//月还差额记收入
BigDecimal yhjmjf = yhcejsr.add(gswdqlxjm);
if (yhjmjf.compareTo(BigDecimal.ZERO) > 0) {
Voucher.VoucherResultDetailDto voucherDetail = new Voucher.VoucherResultDetailDto();
voucherDetail.setSummary(planDetails.getBankName() + "结清");
voucherDetail.setSubjectNo(bankCode);
voucherDetail.setDimensionDept(deptCode);
voucherDetail.setDimensionCustom(customerNumber);
voucherDetail.setDebit(yhjmjf.toString());
resultDetails.add(voucherDetail);
}
if (gswdqlxjm.compareTo(BigDecimal.ZERO) > 0) {
Voucher.VoucherResultDetailDto voucherDetail = new Voucher.VoucherResultDetailDto();
voucherDetail.setSummary(planDetails.getBankName() + "结清未到期利息减免");
voucherDetail.setSubjectNo("1201.01.00");
voucherDetail.setDimensionDept(deptCode);
voucherDetail.setDimensionCustom(customerNumber);
voucherDetail.setCredit(gswdqlxjm.toString());
resultDetails.add(voucherDetail);
}
if (yhcejsr.compareTo(BigDecimal.ZERO) > 0) {
Voucher.VoucherResultDetailDto voucherDetail = new Voucher.VoucherResultDetailDto();
voucherDetail.setSummary(planDetails.getBorrowerName() + "结清收入");
voucherDetail.setSubjectNo("6002.01.17");
voucherDetail.setDimensionDept(deptCode);
voucherDetail.setCredit(yhcejsr.toString());
resultDetails.add(voucherDetail);
}
newVoucher.setResultDetails(resultDetails);
if (!fundHistoryList.isEmpty()) {
loanPushFundHistoryService.saveLists(fundHistoryList);
@ -2514,6 +2552,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
BigDecimal bankSettlePrice = bankCost.getBankSettlePrice();
if (bankSettlePrice.compareTo(BigDecimal.ZERO) > 0) {
FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto();
finPaymentrecordDto.setFinDataType(1);
finPaymentrecordDto.setApplySid("");
finPaymentrecordDto.setPayCompanySid("");
finPaymentrecordDto.setPayType(1);
@ -3596,13 +3635,8 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
}
loanSettleApply.setState(1);
baseMapper.updateById(loanSettleApply);
// BigDecimal actualDeposit = BigDecimal.ZERO;
//结转剩余保证金
List<LoanSettleVoucherVo> settleVoucherVos = carryForward2(loanSettleApply);
// BigDecimal decimal = carryForward(loanSettleApply);
// if (null != decimal) {
// actualDeposit = decimal;
// }
//更新车辆表结清状态
baseMapper.updateBus(loanSettleApply.getBusVinSid(), "1");
//推送资方结清款到出纳代付款列表
@ -3610,7 +3644,6 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
//设置认款月还为已转付
updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid());
//推送财务凭证
// pushSettleVoucher(loanSettleApply, 1, actualDeposit);
pushSettleVoucher2(loanSettleApply, 1, settleVoucherVos);
return rb.success();
}
@ -4004,8 +4037,10 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
BigDecimal kuanxiang = BigDecimal.ZERO; //差额
BigDecimal companyAmount = BigDecimal.ZERO; //公司收
BigDecimal subtrahend = BigDecimal.ZERO; //资方收
BigDecimal qtfyjm = BigDecimal.ZERO; //其他费用减免
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(sid);
LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(sid);
LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(sid);
if (null != bankCost) {
if (receivablesName.equals("名义价")) {
if (null != bankCost.getBankNominalPrice()) {
@ -4050,6 +4085,12 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
}
}
}
if (null != reduction) {
if (null != reduction.getOtherCost()) {
qtfyjm = reduction.getOtherCost();
}
}
PlanNoReturnMoney p = baseMapper.selectNoReturnMoneyByType(planDetailsSid, receivablesName);
if (null != p) {
BigDecimal money = new BigDecimal(p.getMoney());
@ -4059,6 +4100,9 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
} else {
balance = companyAmount.subtract(subtrahend);
}
if (receivablesName.equals("其他费用")) {
balance = balance.subtract(qtfyjm);
}
kuanxiang = amount.subtract(balance);
vo.setBusSid(sid);
vo.setAmount(amount);
@ -4073,31 +4117,26 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
ResultBean rb = ResultBean.fireFail();
LoanSettleApply apply = fetchBySid(sid);
LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(sid);
// LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.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;//结清未到期利息不减免
// BigDecimal bankRelief = BigDecimal.ZERO;//资方结清未到期利息减免
// BigDecimal companyRelief = BigDecimal.ZERO;//公司结清未到期利息减免
// BigDecimal noRelief = BigDecimal.ZERO;//结清未到期利息不减免
int topping = 0;
BigDecimal bbjDDMoney = BigDecimal.ZERO; //资方保证金抵顶
BigDecimal sub = BigDecimal.ZERO; //资方保证金差额
BigDecimal shouxufeiCW = new BigDecimal(shouxufei);
// // 资方未到期金额
// BigDecimal zfwdq = BigDecimal.ZERO;
// // 公司未到期金额
// BigDecimal gswdq = 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 != 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();
@ -4106,20 +4145,10 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (null != bankCost.getLoanDeposit()) {
bbjDDMoney = bankCost.getLoanDeposit();
}
// if (null != bankCost.getNotDuePrice()) {
// zfwdq = bankCost.getNotDuePrice();
// }
}
// if (null != companyCost) {
// if (null != companyCost.getBankNotPrice()) {
// gswdq = companyCost.getBankNotPrice();
// }
// }
// if (companyRelief.compareTo(BigDecimal.ZERO) == 0 && bankRelief.compareTo(BigDecimal.ZERO) == 0) {
// noRelief = gswdq.subtract(zfwdq);
// }
sub = zfJQK.subtract(bbjDDMoney);
amountAll = noRelief.add(companyRelief).add(bbjDDMoney).add(sub);
// amountAll = noRelief.add(companyRelief).add(bbjDDMoney).add(sub);
amountAll = bbjDDMoney.add(sub);
if (zfJQK.compareTo(BigDecimal.ZERO) > 0) {
PaymentVoucher paymentVoucher = new PaymentVoucher();
paymentVoucher.setBankAccount(accountNumber);
@ -4198,8 +4227,8 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
voucherDetail.setAmount(amountAll);
voucherDetail.setSubtrahend(bbjDDMoney);
voucherDetail.setBalance(sub.add(shouxufeiCW));
voucherDetail.setRelief(companyRelief);
voucherDetail.setNoRelief(noRelief);
// voucherDetail.setRelief(companyRelief);
// voucherDetail.setNoRelief(noRelief);
voucherDetail.setPaymentCharges(shouxufeiCW);
voucherDetails.add(voucherDetail);
}
@ -4210,4 +4239,214 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
return rb.success();
}
public ResultBean<RskVoucher> pushBankReturnVoucher(String sid, String accountNumber, String payTypeCode, String shouxufei) {
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;//资方结清款
int topping = 0;
BigDecimal bbjDDMoney = BigDecimal.ZERO; //资方保证金抵顶
BigDecimal sub = BigDecimal.ZERO; //资方保证金差额
BigDecimal shouxufeiCW = new BigDecimal(shouxufei);
if (null != bankCost) {
if (null != bankCost.getBankSettlePrice()) {
zfJQK = bankCost.getBankSettlePrice();
}
topping = bankCost.getTopping();
if (null != bankCost.getLoanDeposit()) {
bbjDDMoney = bankCost.getLoanDeposit();
}
}
sub = zfJQK.subtract(bbjDDMoney);
amountAll = bbjDDMoney.add(sub);
if (zfJQK.compareTo(BigDecimal.ZERO) > 0) {
RskPaymentVoucher paymentVoucher = new RskPaymentVoucher();
paymentVoucher.setBankAccount(accountNumber);
paymentVoucher.setPayTypeCode(payTypeCode);
List<RskPaymentVoucher.PaymentVoucherDetail> voucherDetails = new ArrayList<>();
LoanRepaymentPlanDetails planDetails = baseMapper.selectByBusVinSidAndDesc(apply.getBusVinSid());
String scheduleSid = planDetails.getScheduleSid();
LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(scheduleSid);
if (schedule.getIsOtherPolicy().equals("1") && schedule.getSameBank().equals("0")) {
planDetails = baseMapper.selectMainPeriodByBusVinSid(apply.getBusVinSid());
}
if (null != planDetails) {
RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.PaymentVoucherDetail();
if (topping == 1) {
if (bbjDDMoney.compareTo(BigDecimal.ZERO) > 0) {
voucherDetail.setSceneCode(SceneCodeEnum.settle_VOUCHER1.getCode());
} else {
voucherDetail.setSceneCode(SceneCodeEnum.settle_VOUCHER2.getCode());
}
} else {
voucherDetail.setSceneCode(SceneCodeEnum.settle_VOUCHER2.getCode());
}
if (StringUtils.isNotBlank(planDetails.getBankName())) {
voucherDetail.setBankName(planDetails.getBankName());
}
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
paymentVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) {
voucherDetail.setDeptCode(schedule.getCwDeptNo());
}
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);
}
}
voucherDetail.setAmount(amountAll);
voucherDetail.setSubtrahend(bbjDDMoney);
voucherDetail.setBalance(sub.add(shouxufeiCW));
voucherDetail.setPaymentCharges(shouxufeiCW);
voucherDetails.add(voucherDetail);
}
paymentVoucher.setVoucherDetails(voucherDetails);
RskVoucher rskVoucher = returnSettleBankVoucher(paymentVoucher);
return rb.success().setData(rskVoucher);
}
}
return rb.success();
}
public RskVoucher returnSettleBankVoucher(RskPaymentVoucher voucher) {
RskVoucher newVoucher = new RskVoucher();
List<RskVoucher.VoucherResultDetailDto> resultDetails = new ArrayList<>();
if (com.yxt.common.base.utils.StringUtils.isNotBlank(voucher.getUseOrgCode())) {
newVoucher.setAccountBook(voucher.getUseOrgCode());
newVoucher.setVoucherNo(voucher.getUseOrgCode());
}
List<RskPaymentVoucher.PaymentVoucherDetail> voucherDetails = voucher.getVoucherDetails();
if (!voucherDetails.isEmpty()) {
for (RskPaymentVoucher.PaymentVoucherDetail voucherDetail : voucherDetails) {
String bankCode = "";
//正常
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData();
if (null != dictCommonVo) {
bankCode = dictCommonVo.getDictValue();
}
if (voucherDetail.getSceneCode().equals(SceneCodeEnum.settle_VOUCHER1.getCode())) {
if (voucherDetail.getAmount().compareTo(BigDecimal.ZERO) != 0) {
RskVoucher.VoucherResultDetailDto dto1 = new RskVoucher.VoucherResultDetailDto(); //借方
dto1.setSummary(voucherDetail.getBankName() + "结清");
dto1.setSubjectNo(bankCode);
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
}
if (voucherDetail.getPaymentCharges().compareTo(BigDecimal.ZERO) != 0) {
RskVoucher.VoucherResultDetailDto dto0 = new RskVoucher.VoucherResultDetailDto(); //借方
dto0.setSummary("付款手续费");
dto0.setSubjectNo("6603.03.00");
dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges()));
resultDetails.add(dto0);
}
if (voucherDetail.getSubtrahend().compareTo(BigDecimal.ZERO) != 0) {
RskVoucher.VoucherResultDetailDto dto4 = new RskVoucher.VoucherResultDetailDto(); //贷方
dto4.setSummary(voucherDetail.getBankName() + "个贷保证金抵结清款");
dto4.setSubjectNo("1009.01.00");
dto4.setDimensionDept(voucherDetail.getDeptCode());
dto4.setDimensionCustom(voucherDetail.getCustomerCode());
dto4.setBank("342");
dto4.setCredit(String.valueOf(voucherDetail.getSubtrahend()));
resultDetails.add(dto4);
}
if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) {
RskVoucher.VoucherResultDetailDto dto5 = new RskVoucher.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 {
if (voucherDetail.getAmount().compareTo(BigDecimal.ZERO) != 0) {
RskVoucher.VoucherResultDetailDto dto1 = new RskVoucher.VoucherResultDetailDto(); //借方
dto1.setSummary(voucherDetail.getBankName() + "结清");
dto1.setSubjectNo(bankCode);
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
}
if (voucherDetail.getPaymentCharges().compareTo(BigDecimal.ZERO) != 0) {
RskVoucher.VoucherResultDetailDto dto0 = new RskVoucher.VoucherResultDetailDto(); //借方
dto0.setSummary("付款手续费");
dto0.setSubjectNo("6603.03.00");
dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges()));
resultDetails.add(dto0);
}
if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) {
RskVoucher.VoucherResultDetailDto dto4 = new RskVoucher.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.getBalance()));
resultDetails.add(dto4);
}
}
}
newVoucher.setResultDetails(resultDetails);
}
return newVoucher;
}
}

9
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java

@ -3,11 +3,9 @@ package com.yxt.anrui.riskcenter.biz.loantransferpaymentapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.*;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.*;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -69,6 +67,11 @@ public class LoanTransferPaymentApplyRest implements LoanTransferPaymentApplyFei
return loanTransferPaymentApplyService.pushPaymentVoucher(sid,paySid);
}
@Override
public ResultBean<RskVoucher> pushPaymentVoucherReturnVoucher(String sid, String paySid) {
return loanTransferPaymentApplyService.pushPaymentVoucherReturnVoucher(sid,paySid);
}
@Override
public ResultBean submitRecordApplication(SubmitTransferDto dto) {
return loanTransferPaymentApplyService.submitRecordApplication(dto);

203
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java

@ -3,7 +3,6 @@ package com.yxt.anrui.riskcenter.biz.loantransferpaymentapply;
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.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -27,7 +26,6 @@ import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR;
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.fin.api.kingdee.voucher.PaymentVoucher;
import com.yxt.anrui.fin.api.kingdee.voucher.SceneCodeEnum;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
@ -39,6 +37,8 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
@ -47,21 +47,17 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply;
import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.AppAccrualRecordVo;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.AppMonthAccrualDetailsVo;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApply;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.MonthlyAccrualSourceLCVo;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.*;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.flow.*;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskPaymentVoucher;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
@ -82,7 +78,6 @@ import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -107,6 +102,8 @@ import static java.util.Comparator.comparing;
@Service
public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTransferPaymentApplyMapper, LoanTransferPaymentApply> {
@Autowired
private DictCommonFeign dictCommonFeign;
@Autowired
private MessageListFeign messageListFeign;
@Autowired
@ -664,28 +661,6 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
repaymentHistory.setPaymentState("已转付");
repaymentHistory.setTransferDate(new DateTime());
loanRepaymentHistoryService.updateById(repaymentHistory);
// //推送转付还款记录
// LoanRepaymentHistory transfer = new LoanRepaymentHistory();
// transfer.setScheduleSid(repaymentHistory.getScheduleSid());
// transfer.setPlanDetailSid(repaymentHistory.getPlanDetailSid());
// transfer.setReturnWay("转付");
// transfer.setReturnWayKey("03");
// transfer.setActualDate(new Date());
// transfer.setDataTime(new DateTime());
// transfer.setBuckleKey("001");
// transfer.setBuckle("未申请");
// transfer.setUpdateState("1");
// transfer.setUpdateTime(new DateTime());
// BigDecimal money = new BigDecimal(0);
// if (null != applyRecord.getTransferPrincipal()) {
// money = applyRecord.getTransferPrincipal();
// }
// if (null != applyRecord.getDefaultInterest()) {
// money = applyRecord.getDefaultInterest().add(money);
// }
// String amount = String.valueOf(money);
// transfer.setActualMoney(new BigDecimal("-" + amount));
// loanRepaymentHistoryService.insert(transfer);
}
if (payFormKey.equals("01")) {
if (StringUtils.isNotBlank(applyRecord.getBankContractNo())) {
@ -735,6 +710,7 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
if (!map.isEmpty()) {
for (Map.Entry<String, BigDecimal> entry : map.entrySet()) {
FinPaymentrecordDto payDto = new FinPaymentrecordDto();
payDto.setFinDataType(1);
payDto.setBusSid(apply.getSid());
payDto.setCreateBySid(apply.getCreateBySid());
payDto.setCost(entry.getValue().toString());
@ -795,22 +771,6 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
}
}
}
// 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(() -> {
// pushPaymentVoucher(businessSid);
// });
// } catch (Exception e) {
// e.printStackTrace();
// log.error("推送数据失败=========================" + e.getMessage());
// return rb.setMsg("推送数据失败");
// }
}
return rb.success().setData(resultBean.getData());
} else {
@ -877,7 +837,6 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
} else {
voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER1.getCode());
}
// String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails);
if (StringUtils.isNotBlank(planDetails.getBankName())) {
voucherDetail.setBankName(planDetails.getBankName());
}
@ -949,7 +908,6 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
}
voucherDetail.setAmount(money);
voucherDetails.add(voucherDetail);
}
}
}
@ -1476,4 +1434,151 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
}
return rb.success().setData(finalPath);
}
public ResultBean<RskVoucher> pushPaymentVoucherReturnVoucher(String sid, String paySid) {
ResultBean rb = ResultBean.fireFail();
List<LoanTransferPaymentRecord> records = loanTransferPaymentRecordService.selByMainSidAndPaySid(sid, paySid);
FinPaymentrecord paymentrecord = finPaymentrecordFeign.fetchBySid(paySid).getData();
if (!records.isEmpty()) {
RskPaymentVoucher paymentVoucher = new RskPaymentVoucher();
List<RskPaymentVoucher.PaymentVoucherDetail> voucherDetails = new ArrayList<>();
for (LoanTransferPaymentRecord v : records) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v.getRepaymentHistorySid());
if (null != repaymentHistory) {
String planDetailSid = repaymentHistory.getPlanDetailSid();
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(planDetailSid);
if (null != planDetails) {
RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.PaymentVoucherDetail();
List<FinUncollectedReceivablesDetailedJR> jrList = baseMapper.selFinJrList(planDetails.getSid());
if (null != jrList) {
if (jrList.size() > 0) {
voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER2.getCode());
} else {
voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER1.getCode());
}
} else {
voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER1.getCode());
}
if (StringUtils.isNotBlank(planDetails.getBankName())) {
voucherDetail.setBankName(planDetails.getBankName());
}
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
paymentVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
if (StringUtils.isNotBlank(paymentrecord.getPayBankAccount())) {
String accountNumber = paymentrecord.getPayBankAccount();
paymentVoucher.setBankAccount(paymentrecord.getPayBankAccount());
FinManufacturerBank manufacturerBank = finManufacturerBankFeign.selOneByBankNo(accountNumber, useOrgSid).getData();
if (null != manufacturerBank) {
paymentVoucher.setPayTypeCode(manufacturerBank.getDueBankKey());
}
}
LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(planDetails.getScheduleSid());
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) {
voucherDetail.setDeptCode(schedule.getCwDeptNo());
}
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);
}
}
BigDecimal money = new BigDecimal(0);
if (null != v.getTransferPrincipal()) {
money = v.getTransferPrincipal();
}
if (null != v.getDefaultInterest()) {
money = v.getDefaultInterest().add(money);
}
voucherDetail.setAmount(money);
voucherDetails.add(voucherDetail);
}
}
}
paymentVoucher.setVoucherDetails(voucherDetails);
RskVoucher rskVoucher = returnPaymentVoucher(paymentVoucher);
return rb.success().setData(rskVoucher);
}
return rb.success();
}
public RskVoucher returnPaymentVoucher(RskPaymentVoucher voucher) {
RskVoucher newVoucher = new RskVoucher();
List<RskVoucher.VoucherResultDetailDto> resultDetails = new ArrayList<>();
if (com.yxt.common.base.utils.StringUtils.isNotBlank(voucher.getUseOrgCode())) {
newVoucher.setAccountBook(voucher.getUseOrgCode());
newVoucher.setVoucherNo(voucher.getUseOrgCode());
}
List<RskPaymentVoucher.PaymentVoucherDetail> voucherDetails = voucher.getVoucherDetails();
if (!voucherDetails.isEmpty()) {
for (RskPaymentVoucher.PaymentVoucherDetail voucherDetail : voucherDetails) {
RskVoucher.VoucherResultDetailDto dto1 = new RskVoucher.VoucherResultDetailDto(); //借方
RskVoucher.VoucherResultDetailDto dto2 = new RskVoucher.VoucherResultDetailDto(); //贷方
dto1.setSummary("代付客户" + voucherDetail.getBankName() + "月还款");
dto2.setSummary("代付客户" + voucherDetail.getBankName() + "月还款");
if (voucherDetail.getSceneCode().equals(SceneCodeEnum.TRANSFER_VOUCHER1.getCode())) {
//正常
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData();
if (null != dictCommonVo) {
dto1.setSubjectNo(dictCommonVo.getDictValue());
}
} else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.TRANSFER_VOUCHER2.getCode())) {
//已垫款
dto1.setSubjectNo("1133.10.20");
}
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);
}
newVoucher.setResultDetails(resultDetails);
}
return newVoucher;
}
}

13
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleenterlibrary/ScmVehicleEnterlibraryFeign.java

@ -35,19 +35,6 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
/**
* Project: scm(scm) <br/>
* File: ScmVehicleEnterlibraryFeign.java <br/>
* Class: scm.api.scmvehicleenterlibrary.ScmVehicleEnterlibraryFeign <br/>
* Description: 入库单. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-06-06 09:53:39 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "入库单")
@FeignClient(
contextId = "scm-ScmVehicleEnterlibrary",

8
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/companyAdjust/CompanyAdjustVo.java

@ -20,16 +20,16 @@ public class CompanyAdjustVo implements Vo {
private String procInsId;
@ApiModelProperty("调入分公司名称")
@JsonProperty("company2")
private String buyerOrgName;
private String callInOrgName;
@ApiModelProperty("调出分公司名称")
@JsonProperty("company")
private String sellerOrgName;
private String callOutOrgName;
@ApiModelProperty("调车类型key")
@JsonProperty("typeKey")
private String shuntingTypeKey;
private String accadjTypeKey;
@ApiModelProperty("调车类型")
@JsonProperty("type")
private String shuntingTypeValue;
private String accadjTypeValue;
private List<CompanyAdjustList> records = new ArrayList<>();
}

Loading…
Cancel
Save