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. 358
      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. 4
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appsubsetversion/AppSubsetVersionFeign.java
  16. 2
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java
  17. 19
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordFeign.java
  18. 15
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java
  19. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java
  20. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyFeign.java
  21. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlecompanyreduction/LoanSettleCompanyReduction.java
  22. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java
  23. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java
  24. 64
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskPaymentVoucher.java
  25. 52
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskVoucher.java
  26. 549
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml
  27. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehService.java
  28. 30
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java
  29. 212
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java
  30. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyRest.java
  31. 373
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java
  32. 9
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java
  33. 203
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java
  34. 13
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleenterlibrary/ScmVehicleEnterlibraryFeign.java
  35. 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; private String callOutOrgName;
@ApiModelProperty("调车类型key") @ApiModelProperty("调车类型key")
@JsonProperty("typeKey") @JsonProperty("typeKey")
private String shuntingTypeKey; private String accadjTypeKey;
@ApiModelProperty("调车类型") @ApiModelProperty("调车类型")
@JsonProperty("type") @JsonProperty("type")
private String shuntingTypeValue; private String accadjTypeValue;
private List<AppCompanyAdjustList> records = new ArrayList<>(); 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; private BigDecimal paymentCharges;
@ApiModelProperty("是否推送回款返利,0不推送,1推送") @ApiModelProperty("是否推送回款返利,0不推送,1推送")
private Integer isPushHkfl; 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 private String purchaseSystemSid; // 采购系统sid
@ApiModelProperty("采购系统名称") @ApiModelProperty("采购系统名称")
private String purchaseSystemName; // 采购系统名称 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; private String busRemarks;
@ApiModelProperty("是否推送回款返利,0不推送,1推送") @ApiModelProperty("是否推送回款返利,0不推送,1推送")
private Integer isPushHkfl; 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 @ResponseBody
ResultBean update(@RequestBody FinPaymentrecordUpdateDto dto); ResultBean update(@RequestBody FinPaymentrecordUpdateDto dto);
@ApiOperation("批量办理")
@PostMapping("/batchUpdate")
@ResponseBody
ResultBean batchUpdate(@RequestBody FinPaymentrecordUpdateDto dto);
@ApiOperation("作废") @ApiOperation("作废")
@PostMapping("/updateState") @PostMapping("/updateState")
@ResponseBody @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.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
import java.util.Map;
/** /**
* Project: anrui-fin(财务) <br/> * Project: anrui-fin(财务) <br/>
@ -76,6 +72,11 @@ public class FinPaymentrecordFeignFallback implements FinPaymentrecordFeign {
return null; return null;
} }
@Override
public ResultBean batchUpdate(FinPaymentrecordUpdateDto dto) {
return null;
}
@Override @Override
public ResultBean updateState(String[] sids) { public ResultBean updateState(String[] sids) {
return null; 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; private String payBank;
@ApiModelProperty("付款账号") @ApiModelProperty("付款账号")
private String payBankAccount; 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; private String payWayKey;
@ApiModelProperty("付款方式Value") @ApiModelProperty("付款方式Value")
private String payWayValue; 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); int updateStateBySid(@Param("sid")String sid, @Param("state") int i);
List<String> selectApplySidBySid(List<String> sids); 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.payCode,
fp.busRemarks, fp.busRemarks,
fp.payWayKey, fp.payWayKey,
fp.payWayValue fp.payWayValue,
fp.batchNumber
FROM fin_paymentrecord fp FROM fin_paymentrecord fp
LEFT JOIN anrui_portal.sys_organization so ON fp.createOrgSid = so.sid LEFT JOIN anrui_portal.sys_organization so ON fp.createOrgSid = so.sid
<where> <where>
@ -65,4 +66,11 @@
#{item} #{item}
</foreach> </foreach>
</select> </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> </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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/** /**
* Project: anrui-fin(财务) <br/> * Project: anrui-fin(财务) <br/>
* File: FinPaymentrecordFeignFallback.java <br/> * File: FinPaymentrecordFeignFallback.java <br/>
@ -87,6 +84,11 @@ public class FinPaymentrecordRest implements FinPaymentrecordFeign {
return finPaymentrecordService.updateAll(dto); return finPaymentrecordService.updateAll(dto);
} }
@Override
public ResultBean batchUpdate(FinPaymentrecordUpdateDto dto) {
return finPaymentrecordService.batchUpdate(dto);
}
@Override @Override
public ResultBean updateState(String[] sids) { public ResultBean updateState(String[] sids) {
return finPaymentrecordService.updateState(sids); return finPaymentrecordService.updateState(sids);

358
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.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder; 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.finpaymentrecord.*;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill; 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.finmanufacturerbank.FinManufacturerBankService;
import com.yxt.anrui.fin.biz.finpaymentapply.FinPaymentapplyService; import com.yxt.anrui.fin.biz.finpaymentapply.FinPaymentapplyService;
import com.yxt.anrui.fin.biz.finpaymentapplydetails.FinPaymentapplyDetailsService; import com.yxt.anrui.fin.biz.finpaymentapplydetails.FinPaymentapplyDetailsService;
import com.yxt.anrui.fin.biz.finpaymentapplyvehicle.FinPaymentapplyVehicleService; import com.yxt.anrui.fin.biz.finpaymentapplyvehicle.FinPaymentapplyVehicleService;
import com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRService; import com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRService;
import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService; 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.FlowableFeign;
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization; 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.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo;
import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyFeign; import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyFeign;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApplyFeign; 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.ScmCollectionRebateDto;
import com.yxt.anrui.scm.api.scmcollectionrebate.ScmCollectionRebateFeign; import com.yxt.anrui.scm.api.scmcollectionrebate.ScmCollectionRebateFeign;
import com.yxt.anrui.scm.api.scmcollectionrebateveh.ScmCollectionRebateVehDto; import com.yxt.anrui.scm.api.scmcollectionrebateveh.ScmCollectionRebateVehDto;
@ -106,6 +110,7 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -185,6 +190,8 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
private FinManufacturerBankService finManufacturerBankService; private FinManufacturerBankService finManufacturerBankService;
@Autowired @Autowired
private LoanSettleApplyFeign loanSettleApplyFeign; private LoanSettleApplyFeign loanSettleApplyFeign;
@Autowired
private VoucherService voucherService;
public PagerVo<FinPaymentrecordVo> listPageVo(PagerQuery<FinPaymentrecordQuery> pq) { public PagerVo<FinPaymentrecordVo> listPageVo(PagerQuery<FinPaymentrecordQuery> pq) {
FinPaymentrecordQuery query = pq.getParams(); FinPaymentrecordQuery query = pq.getParams();
@ -203,6 +210,9 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
if (StringUtils.isNotBlank(pageQuery.getCostTitleKey())) { if (StringUtils.isNotBlank(pageQuery.getCostTitleKey())) {
qw.eq("fp.costTitleKey", 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')"). 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')" 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定金厂家采购车款:车辆功能厂家销售/回款通路
"外采订金:005定金 "外采订金:005定金
外采车款:002外采"*/ 外采车款:002外采"*/
if (!"厂家采购".equals(finPaymentrecord.getCostTypeValue()) && !"厂家车款".equals(finPaymentrecord.getCostTypeValue())) { // if (!"厂家采购".equals(finPaymentrecord.getCostTypeValue()) && !"厂家车款".equals(finPaymentrecord.getCostTypeValue())) {
apPayBill.setF_PAEZ_AssistantKey(finPaymentrecord.getCostTypeKey()); // 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"); apPayBill.setF_PAEZ_AssistantType("payCostType");
} else { }
if ("009".equals(finPaymentrecord.getCostTypeKey())){ if (StringUtils.isNotBlank(finPaymentrecord.getPayChannel())) {
apPayBill.setF_PAEZ_AssistantKey("001"); apPayBill.setF_PAEZ_AssistantKey(finPaymentrecord.getPayChannel());
}else {
apPayBill.setF_PAEZ_AssistantKey(finPaymentrecord.getCostTypeKey());
}
apPayBill.setF_PAEZ_AssistantType("payChannel"); apPayBill.setF_PAEZ_AssistantType("payChannel");
} }
List<ApPayBill.FPAYBILLENTRY> FPAYBILLENTRYs = new ArrayList<>(); List<ApPayBill.FPAYBILLENTRY> FPAYBILLENTRYs = new ArrayList<>();
if (finPaymentrecord.getCost() != null if (finPaymentrecord.getCost() != null
&& finPaymentrecord.getCost().compareTo(BigDecimal.ZERO) > 0) { && 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;
}
/** /**
* 作废 * 作废
* *
@ -990,7 +1328,7 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
finPaymentrecordSourceLCVos.sort(comparing(FinPaymentrecordSourceLCVo::getSpsj)); finPaymentrecordSourceLCVos.sort(comparing(FinPaymentrecordSourceLCVo::getSpsj));
dataMap.put("lcList", finPaymentrecordSourceLCVos); dataMap.put("lcList", finPaymentrecordSourceLCVos);
} }
dataMap.put("payCode", String.valueOf (finPaymentrecord.getId())); dataMap.put("payCode", String.valueOf(finPaymentrecord.getId()));
dataMap.put("createTime", DateUtil.format(finPaymentrecord.getCreateTime(), "yyyy-MM-dd")); dataMap.put("createTime", DateUtil.format(finPaymentrecord.getCreateTime(), "yyyy-MM-dd"));
dataMap.put("createByName", createByName); dataMap.put("createByName", createByName);
dataMap.put("createByDeptName", deptName); dataMap.put("createByDeptName", deptName);
@ -1022,7 +1360,7 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
} else if (finPaymentapply != null) { } else if (finPaymentapply != null) {
dataMap.put("remarks", finPaymentapply.getCostTypeValue() + "," + finPaymentrecord.getCostTitleValue() + "," + finPaymentapply.getRemarks()); dataMap.put("remarks", finPaymentapply.getCostTypeValue() + "," + finPaymentrecord.getCostTitleValue() + "," + finPaymentapply.getRemarks());
FinPaymentapplyDetails finPaymentapplyDetails = finPaymentapplyDetailsService.fetchBySid(finPaymentrecord.getBusSid()); FinPaymentapplyDetails finPaymentapplyDetails = finPaymentapplyDetailsService.fetchBySid(finPaymentrecord.getBusSid());
if ("1".equals(finPaymentapply.getIsVeh())){ if ("1".equals(finPaymentapply.getIsVeh())) {
List<FinPaymentapplyVehicleVo> vehicleList = finPaymentapplyVehicleService.getVehicleList(finPaymentapply.getSid()); List<FinPaymentapplyVehicleVo> vehicleList = finPaymentapplyVehicleService.getVehicleList(finPaymentapply.getSid());
String payRemark = ""; String payRemark = "";
for (FinPaymentapplyVehicleVo finPaymentapplyVehicleVo : vehicleList) { for (FinPaymentapplyVehicleVo finPaymentapplyVehicleVo : vehicleList) {

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())); dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges()));
resultDetails.add(dto0); resultDetails.add(dto0);
} }
if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) != 0) { // if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方 // Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方
dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免"); // dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免");
dto2.setSubjectNo("6002.01.17"); // dto2.setSubjectNo("6002.01.17");
dto2.setDimensionDept(voucherDetail.getDeptCode()); // dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setCredit(String.valueOf(voucherDetail.getNoRelief())); // dto2.setCredit(String.valueOf(voucherDetail.getNoRelief()));
resultDetails.add(dto2); // resultDetails.add(dto2);
} // }
if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) != 0) { // if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方 // Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方
dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免"); // dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免");
dto3.setSubjectNo("1201.01.00"); // dto3.setSubjectNo("1201.01.00");
dto3.setDimensionDept(voucherDetail.getDeptCode()); // dto3.setDimensionDept(voucherDetail.getDeptCode());
dto3.setDimensionCustom(voucherDetail.getCustomerCode()); // dto3.setDimensionCustom(voucherDetail.getCustomerCode());
dto3.setCredit(String.valueOf(voucherDetail.getRelief())); // dto3.setCredit(String.valueOf(voucherDetail.getRelief()));
resultDetails.add(dto3); // resultDetails.add(dto3);
} // }
if (voucherDetail.getSubtrahend().compareTo(BigDecimal.ZERO) != 0) { if (voucherDetail.getSubtrahend().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方 Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方
dto4.setSummary(voucherDetail.getBankName() + "个贷保证金抵结清款"); dto4.setSummary(voucherDetail.getBankName() + "个贷保证金抵结清款");
@ -1729,23 +1729,23 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges())); dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges()));
resultDetails.add(dto0); resultDetails.add(dto0);
} }
if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) != 0) { // if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方 // Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方
dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免"); // dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免");
dto2.setSubjectNo("6002.01.17"); // dto2.setSubjectNo("6002.01.17");
dto2.setDimensionDept(voucherDetail.getDeptCode()); // dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setCredit(String.valueOf(voucherDetail.getNoRelief())); // dto2.setCredit(String.valueOf(voucherDetail.getNoRelief()));
resultDetails.add(dto2); // resultDetails.add(dto2);
} // }
if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) != 0) { // if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方 // Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方
dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免"); // dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免");
dto3.setSubjectNo("1201.01.00"); // dto3.setSubjectNo("1201.01.00");
dto3.setDimensionDept(voucherDetail.getDeptCode()); // dto3.setDimensionDept(voucherDetail.getDeptCode());
dto3.setDimensionCustom(voucherDetail.getCustomerCode()); // dto3.setDimensionCustom(voucherDetail.getCustomerCode());
dto3.setCredit(String.valueOf(voucherDetail.getRelief())); // dto3.setCredit(String.valueOf(voucherDetail.getRelief()));
resultDetails.add(dto3); // resultDetails.add(dto3);
} // }
if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) { if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方 Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方
dto4.setSummary(voucherDetail.getBankName() + "结清"); dto4.setSummary(voucherDetail.getBankName() + "结清");

4
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appsubsetversion/AppSubsetVersionFeign.java

@ -38,7 +38,7 @@ public interface AppSubsetVersionFeign {
@ResponseBody @ResponseBody
@PostMapping("/save") @PostMapping("/save")
public ResultBean save(AppSubsetVersionDto appSubsetVersionDto); public ResultBean save(AppSubsetVersionDto appSubsetVersionDto);
@ApiOperation(value = "更新主框架的子应用") @ApiOperation(value = "更新主框架的子应用")
@ResponseBody @ResponseBody
@PostMapping("/update") @PostMapping("/update")
@ -62,6 +62,6 @@ public interface AppSubsetVersionFeign {
@ApiOperation("查询插件最新模块信息") @ApiOperation("查询插件最新模块信息")
@GetMapping("/getLastRiskByAppSid") @GetMapping("/getLastRiskByAppSid")
ResultBean<AppSubVersionVo> getLastRiskByAppSid(@RequestParam("appSid") String appSid, @RequestParam("moduleAction")String moduleAction); ResultBean<AppSubVersionVo> getLastRiskByAppSid(@RequestParam("appSid") String appSid, @RequestParam("moduleAction") String moduleAction);
} }

2
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java

@ -296,6 +296,6 @@ public interface SysUserFeign {
@ApiOperation(value = "根据部门sid和角色名查询用户") @ApiOperation(value = "根据部门sid和角色名查询用户")
@PostMapping(value = "/selectByDeptSidAndRoleName") @PostMapping(value = "/selectByDeptSidAndRoleName")
ResultBean<List<DeptUserVo>> selectByDeptSidAndRoleName(@RequestParam("deptSid") String deptSid, ResultBean<List<DeptUserVo>> selectByDeptSidAndRoleName(@RequestParam("deptSid") String deptSid,
@RequestParam("roleNames") List<String> roleNames); @RequestParam("roleNames") List<String> roleNames);
} }

19
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.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; 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 = "逾期催收记录") @Api(tags = "逾期催收记录")
@FeignClient( @FeignClient(
contextId = "anrui-riskcenter-LoanBeCollectionRecord", contextId = "anrui-riskcenter-LoanBeCollectionRecord",
@ -65,12 +50,12 @@ public interface LoanBeCollectionRecordFeign {
@PostMapping("/save") @PostMapping("/save")
@ResponseBody @ResponseBody
public ResultBean save(@RequestBody LoanBeCollectionRecordDto dto); public ResultBean save(@RequestBody LoanBeCollectionRecordDto dto);
@ApiOperation("根据sid删除记录") @ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids") @DeleteMapping("/delBySids")
@ResponseBody @ResponseBody
public ResultBean delBySids(@RequestBody String[] sids); public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录") @ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}") @GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody @ResponseBody

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; 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.loanbepadsincereapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo; import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.CustomerRecordDelegateQuery; import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
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.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; 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.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -149,6 +146,12 @@ public interface LoanBePadsincereApplyFeign {
@ResponseBody @ResponseBody
public ResultBean pushAdvancesVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid); 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("垫还明细列表列表导出") @ApiOperation("垫还明细列表列表导出")
@PostMapping("/dkListPageExport") @PostMapping("/dkListPageExport")
@ResponseBody @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.loanbepadsincereapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo; 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.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -146,6 +147,11 @@ public class LoanBePadsincereApplyFeignFallback implements LoanBePadsincereApply
return null; return null;
} }
@Override
public ResultBean<RskVoucher> pushAdvancesReturnVoucher(String sid, String paySid) {
return null;
}
@Override @Override
public void dkListPageExport(DkRecordQuery query) { 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; package com.yxt.anrui.riskcenter.api.loansettleapply;
import com.yxt.anrui.riskcenter.api.loansettleapply.flowable.*; 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.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -110,5 +111,12 @@ public interface LoanSettleApplyFeign {
@RequestParam("shouxufei") String shouxufei @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; private BigDecimal profit;
@ApiModelProperty("公司未到期利息减免") @ApiModelProperty("公司未到期利息减免")
private BigDecimal notDuePriceRelief; private BigDecimal notDuePriceRelief;
@ApiModelProperty("减免依据") @ApiModelProperty("减免依据(资方未到期利息减免)")
private BigDecimal reliefBasis; 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; 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.loantransferpaymentapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -68,6 +68,12 @@ public interface LoanTransferPaymentApplyFeign {
@ResponseBody @ResponseBody
public ResultBean pushPaymentVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid); 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("提交") @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; 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.loantransferpaymentapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -55,6 +54,11 @@ public class LoanTransferPaymentApplyFeignFallback implements LoanTransferPaymen
return null; return null;
} }
@Override
public ResultBean<RskVoucher> pushPaymentVoucherReturnVoucher(String sid, String paySid) {
return null;
}
@Override @Override
public ResultBean submitRecordApplication(SubmitTransferDto dto) { public ResultBean submitRecordApplication(SubmitTransferDto dto) {
return null; 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;
}
}

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

@ -16,65 +16,26 @@
a1.bankName, a1.bankName,
a1.bankContractNo, a1.bankContractNo,
a1.dueMoney AS bankMonthRep, a1.dueMoney AS bankMonthRep,
a1.dueDate AS firstBeDate, MIN(a1.dueDate) AS firstBeDate, -- 改为取最早逾期日期
COUNT(a1.sid) AS beOverduePeriod, COUNT(a1.sid) AS beOverduePeriod,
( SUM(a1.yq_total) +
SUM(a1.yq_total) + IFNULL( COALESCE(lbpv_sum.bankBeInter_sum, 0) +
(SELECT COALESCE(lfd_sum.fund_sum, 0) AS beOverdueMoney,
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( ROUND(
( (SUM(a1.yq_total) + COALESCE(lbpv_sum.bankBeInter_sum, 0) + COALESCE(lfd_sum.fund_sum, 0)) /
SUM(a1.yq_total) + IFNULL( MAX(a1.qjyh), -- 保证聚合正确性
(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 1
) AS beOverdueMoneyAndPeriod, ) AS beOverdueMoneyAndPeriod,
SUM(a1.yd_dkje) AS advMoney, SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney, SUM(a1.yd_zjzyf) AS fundPossCostMoney,
a1.riskStaffUserSid, MAX(a1.riskStaffUserSid) AS riskStaffUserSid, -- 保证聚合正确性
a1.riskStaffUserName, MAX(a1.riskStaffUserName) AS riskStaffUserName,
a1.reaRepaymentName AS repaymentName, MAX(a1.reaRepaymentName) AS repaymentName,
a1.createTime, MAX(a1.createTime) AS createTime,
a1.orgSidPath, a1.orgSidPath,
a1.lockCarState MAX(a1.lockCarState) AS lockCarState -- 保证聚合正确性
FROM FROM (
(SELECT SELECT
lrpd.sid, lrpd.sid,
lrpd.busVinSid, lrpd.busVinSid,
lrpd.useOrgName, lrpd.useOrgName,
@ -87,63 +48,67 @@
lrpd.bankContractNo, lrpd.bankContractNo,
lrpd.dueMoney, lrpd.dueMoney,
lrpd.dueDate, lrpd.dueDate,
( COALESCE(lrs.mainMidRepay, 0) + COALESCE(lrs.otherMidRepay, 0) AS qjyh,
IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0) lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0) AS yq_total,
) 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.paymentMoney AS yd_dkje, lrpd.paymentMoney AS yd_dkje,
lrpd.fund AS yd_zjzyf, lrpd.fund AS yd_zjzyf,
lrpd.orgSidPath, lrpd.orgSidPath,
lrpd.createBySid,
bv.riskStaffUserSid, bv.riskStaffUserSid,
bv.riskStaffUserName, bv.riskStaffUserName,
bv.reaRepaymentName, bv.reaRepaymentName,
lr.createTime, lbcr.createTime,
(SELECT CASE lbcv.lockCarState
CASE WHEN 0 THEN '未控制'
lbcv.lockCarState WHEN 1 THEN '控制成功'
WHEN 0 WHEN 2 THEN '控制失败'
THEN '未控制' WHEN 3 THEN '已解控'
WHEN 1
THEN '控制成功'
WHEN 2
THEN '控制失败'
WHEN 3
THEN '已解控'
END AS lockCarState END AS lockCarState
FROM FROM loan_repayment_plan_details lrpd
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
LEFT JOIN loan_repayment_history lrh LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid 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 LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv
ON lrpd.busVinSid = bv.sid ON lrpd.busVinSid = bv.sid
LEFT JOIN loan_repayment_schedule lrs LEFT JOIN (
ON lrpd.scheduleSid = lrs.sid SELECT
LEFT JOIN
(SELECT
saleVehSid, saleVehSid,
createTime MAX(createTime) AS createTime -- 取最新记录
FROM FROM loan_be_collection_record
loan_be_collection_record GROUP BY saleVehSid
ORDER BY createTime DESC) lr ) lbcr ON lrpd.busVinSid = lbcr.saleVehSid
ON lrpd.busVinSid = lr.saleVehSid LEFT JOIN (
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE() 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 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> <where>
${ew.sqlSegment} ${ew.sqlSegment}
</where> </where>
@ -160,134 +125,113 @@
<select id="initVehListByBorrSid" <select id="initVehListByBorrSid"
resultType="com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordVehInit"> resultType="com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordVehInit">
SELECT SELECT
RIGHT (a1.vinNo, 8) AS vinNo, RIGHT(a1.vinNo, 8) AS vinNo,
a1.customer AS custName, MAX(a1.customer) AS custName, -- 使用聚合函数确保分组正确
a1.mobile AS custPhone, MAX(a1.mobile) AS custPhone,
a1.loanContractNo, a1.loanContractNo,
a1.bankContractNo, MAX(a1.bankContractNo) AS bankContractNo,
a1.bankName, MAX(a1.bankName) AS bankName,
a1.borrowerName AS loanName, MAX(a1.borrowerName) AS loanName,
a1.vehMark AS carNum, MAX(a1.vehMark) AS carNum,
a1.dueDate AS firstBeDate, MIN(a1.dueDate) AS firstBeDate, -- 根据业务需求确定合适的聚合函数
COUNT(a1.sid) AS beOverduePeriod, COUNT(a1.sid) AS beOverduePeriod,
( 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,
SUM(a1.yq_total) + IFNULL( ROUND(
(SELECT (SUM(a1.yq_total) + IFNULL(MAX(a1.bankBeInter_sum), 0) + IFNULL(MAX(a1.fund_sum), 0)) / MAX(a1.qjyh),
SUM(lbpv.bankBeInter) 1
FROM ) AS beOverdueMoneyAndPeriod,
loan_be_padsincere_veh lbpv a1.busVinSid AS saleVehSid,
WHERE lbpv.saleVehSid = a1.busVinSid), MAX(a1.salesOrderSid) AS salesOrderSid,
0 MAX(a1.lockCarState) AS lockCarState
) + IFNULL( FROM (
(SELECT SELECT
SUM(fund) lrpd.sid,
FROM lrpd.busVinSid,
loan_fund_day lrpd.loanContractNo,
WHERE busSid IN lrpd.bankContractNo,
(SELECT lrpd.vinNo,
lrpd.sid lrpd.bankName,
FROM lrpd.borrowerName,
loan_repayment_plan_details lrpd lrpd.dueDate,
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE())), lrpd.vehMark,
0 lrpd.dueMoney,
) (IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0)) AS qjyh,
) AS beOverdueMoney, (lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))) AS yq_total,
ROUND(( lbpv_agg.bankBeInter_sum,
SUM(a1.yq_total) + IFNULL( lfd_agg.fund_sum,
(SELECT lrpd.customer,
SUM(lbpv.bankBeInter) ct.mobile,
FROM lrpd.borrowerSid,
loan_be_padsincere_veh lbpv lrpd.salesOrderSid,
WHERE lbpv.saleVehSid = a1.busVinSid), lbcv_agg.lockCarState
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,
a1.busVinSid AS saleVehSid,
a1.salesOrderSid,
a1.lockCarState
FROM FROM
(SELECT loan_repayment_plan_details lrpd
lrpd.sid, LEFT JOIN loan_repayment_history lrh
lrpd.busVinSid, ON lrh.planDetailSid = lrpd.sid
lrpd.loanContractNo, LEFT JOIN loan_repayment_schedule lrs
lrpd.bankContractNo, ON lrpd.scheduleSid = lrs.sid
lrpd.vinNo, LEFT JOIN anrui_crm.crm_customer_temp ct
lrpd.bankName, ON lrpd.customerSid = ct.sid
lrpd.borrowerName, LEFT JOIN (
lrpd.dueDate, SELECT
lrpd.vehMark, saleVehSid,
lrpd.dueMoney, CASE lockCarState
(IFNULL(lrs.mainMidRepay,0) + IFNULL(lrs.otherMidRepay,0)) AS qjyh, WHEN 0 THEN '未控制'
( WHEN 1 THEN '控制成功'
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0)) WHEN 2 THEN '控制失败'
) AS yq_total, WHEN 3 THEN '已解控'
( END AS lockCarState
lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0)) FROM (
) / lrpd.dueMoney AS yq_hsqs, SELECT
lrpd.customer, lbcv.saleVehSid,
ct.mobile, lbcv.lockCarState,
lr.createTime, ROW_NUMBER() OVER (
lrpd.borrowerSid, PARTITION BY lbcv.saleVehSid
lrpd.salesOrderSid, ORDER BY lbca.createTime DESC
(SELECT ) AS rn
CASE FROM loan_be_collection_veh lbcv
lbcv.lockCarState LEFT JOIN loan_be_collection_apply lbca
WHEN 0 ON lbca.sid = lbcv.mainSid
THEN '未控制' WHERE
WHEN 1 lbca.collMeasure LIKE '%远程控制%'
THEN '控制成功' AND lbca.nodeState = '已办结'
WHEN 2 ) t WHERE rn = 1
THEN '控制失败' ) lbcv_agg
WHEN 3 ON lbcv_agg.saleVehSid = lrpd.busVinSid
THEN '已解控' LEFT JOIN (
END AS lockCarState SELECT
FROM saleVehSid,
loan_be_collection_veh lbcv SUM(bankBeInter) AS bankBeInter_sum
LEFT JOIN loan_be_collection_apply lbca FROM loan_be_padsincere_veh
ON lbca.sid = lbcv.mainSid GROUP BY saleVehSid
WHERE lbca.collMeasure LIKE '%远程控制%' ) lbpv_agg
AND lbca.nodeState = '已办结' ON lbpv_agg.saleVehSid = lrpd.busVinSid
AND lbcv.saleVehSid = lrpd.busVinSid LEFT JOIN (
ORDER BY lbca.createTime DESC SELECT
LIMIT 1) AS lockCarState lrpd_sub.busVinSid,
FROM SUM(lfd.fund) AS fund_sum
loan_repayment_plan_details lrpd FROM loan_fund_day lfd
LEFT JOIN loan_repayment_history lrh JOIN loan_repayment_plan_details lrpd_sub
ON lrh.planDetailSid = lrpd.sid ON lfd.busSid = lrpd_sub.sid
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv WHERE
ON lrpd.busVinSid = bv.sid lrpd_sub.dueDate &lt; CURDATE()
LEFT JOIN loan_repayment_schedule lrs GROUP BY
ON lrpd.scheduleSid = lrs.sid lrpd_sub.busVinSid
LEFT JOIN ) lfd_agg
(SELECT ON lfd_agg.busVinSid = lrpd.busVinSid
saleVehSid, WHERE
createTime lrpd.dueDate &lt; CURDATE()
FROM GROUP BY
loan_be_collection_record lrpd.sid
ORDER BY createTime DESC HAVING
LIMIT 1) lr (lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))) > 0
ON lrpd.busVinSid = lr.saleVehSid ) a1
LEFT JOIN anrui_crm.crm_customer_temp ct WHERE
ON lrpd.customerSid = ct.sid a1.borrowerSid = #{borrowerSid}
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE() GROUP BY
GROUP BY lrpd.sid a1.loanContractNo,
HAVING (yq_total > 0)) a1 a1.vinNo,
WHERE a1.borrowerSid = #{borrowerSid} a1.busVinSid
GROUP BY a1.loanContractNo,
a1.vinNo,
a1.busVinSid
</select> </select>
<select id="initReaRepayment" resultType="com.yxt.anrui.riskcenter.api.loanbeoverdueveh.ReaRepaymentVo"> <select id="initReaRepayment" resultType="com.yxt.anrui.riskcenter.api.loanbeoverdueveh.ReaRepaymentVo">
@ -303,7 +247,7 @@
ON ld.busVinSid = bv.sid ON ld.busVinSid = bv.sid
WHERE ld.busVinSid = #{saleVehSid} WHERE ld.busVinSid = #{saleVehSid}
</select> </select>
<select id="excelList" resultType="com.yxt.anrui.riskcenter.api.loanbeoverdueveh.LoanBeOverdueVehExcelVo"> <select id="excelList" resultType="com.yxt.anrui.riskcenter.api.loanbeoverdueveh.LoanBeOverdueVehExcelVo">
SELECT SELECT
@row_number := @row_number + 1 AS rankNo, @row_number := @row_number + 1 AS rankNo,
@ -317,65 +261,26 @@
a1.bankName, a1.bankName,
a1.bankContractNo, a1.bankContractNo,
a1.dueMoney AS bankMonthRep, a1.dueMoney AS bankMonthRep,
a1.dueDate AS firstBeDate, MIN(a1.dueDate) AS firstBeDate, -- 改为取最早逾期日期
COUNT(a1.sid) AS beOverduePeriod, COUNT(a1.sid) AS beOverduePeriod,
( SUM(a1.yq_total) +
SUM(a1.yq_total) + IFNULL( COALESCE(lbpv_sum.bankBeInter_sum, 0) +
(SELECT COALESCE(lfd_sum.fund_sum, 0) AS beOverdueMoney,
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( ROUND(
( (SUM(a1.yq_total) + COALESCE(lbpv_sum.bankBeInter_sum, 0) + COALESCE(lfd_sum.fund_sum, 0)) /
SUM(a1.yq_total) + IFNULL( MAX(a1.qjyh), -- 保证聚合正确性
(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 1
) AS beOverdueMoneyAndPeriod, ) AS beOverdueMoneyAndPeriod,
SUM(a1.yd_dkje) AS advMoney, SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney, SUM(a1.yd_zjzyf) AS fundPossCostMoney,
a1.riskStaffUserSid, MAX(a1.riskStaffUserSid) AS riskStaffUserSid, -- 保证聚合正确性
a1.riskStaffUserName, MAX(a1.riskStaffUserName) AS riskStaffUserName,
a1.reaRepaymentName AS repaymentName, MAX(a1.reaRepaymentName) AS repaymentName,
a1.createTime, MAX(a1.createTime) AS createTime,
a1.orgSidPath, a1.orgSidPath,
a1.lockCarState MAX(a1.lockCarState) AS lockCarState -- 保证聚合正确性
FROM FROM (
(SELECT SELECT
lrpd.sid, lrpd.sid,
lrpd.busVinSid, lrpd.busVinSid,
lrpd.useOrgName, lrpd.useOrgName,
@ -388,63 +293,67 @@
lrpd.bankContractNo, lrpd.bankContractNo,
lrpd.dueMoney, lrpd.dueMoney,
lrpd.dueDate, lrpd.dueDate,
( COALESCE(lrs.mainMidRepay, 0) + COALESCE(lrs.otherMidRepay, 0) AS qjyh,
IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0) lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0) AS yq_total,
) 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.paymentMoney AS yd_dkje, lrpd.paymentMoney AS yd_dkje,
lrpd.fund AS yd_zjzyf, lrpd.fund AS yd_zjzyf,
lrpd.orgSidPath, lrpd.orgSidPath,
lrpd.createBySid,
bv.riskStaffUserSid, bv.riskStaffUserSid,
bv.riskStaffUserName, bv.riskStaffUserName,
bv.reaRepaymentName, bv.reaRepaymentName,
lr.createTime, lbcr.createTime,
(SELECT CASE lbcv.lockCarState
CASE WHEN 0 THEN '未控制'
lbcv.lockCarState WHEN 1 THEN '控制成功'
WHEN 0 WHEN 2 THEN '控制失败'
THEN '未控制' WHEN 3 THEN '已解控'
WHEN 1
THEN '控制成功'
WHEN 2
THEN '控制失败'
WHEN 3
THEN '已解控'
END AS lockCarState END AS lockCarState
FROM FROM loan_repayment_plan_details lrpd
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
LEFT JOIN loan_repayment_history lrh LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid 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 LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv
ON lrpd.busVinSid = bv.sid ON lrpd.busVinSid = bv.sid
LEFT JOIN loan_repayment_schedule lrs LEFT JOIN (
ON lrpd.scheduleSid = lrs.sid SELECT
LEFT JOIN
(SELECT
saleVehSid, saleVehSid,
createTime MAX(createTime) AS createTime -- 取最新记录
FROM FROM loan_be_collection_record
loan_be_collection_record GROUP BY saleVehSid
ORDER BY createTime DESC) lr ) lbcr ON lrpd.busVinSid = lbcr.saleVehSid
ON lrpd.busVinSid = lr.saleVehSid LEFT JOIN (
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE() 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 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 SELECT
@row_number := 0 @row_number := 0
) AS t ) 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; private SysUserFeign sysUserFeign;
@Autowired @Autowired
private LoanBeOverdueVehMapper loanBeOverdueVehMapper; private LoanBeOverdueVehMapper loanBeOverdueVehMapper;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
public PagerVo<LoanBeOverdueVehVo> listPageVo(PagerQuery<LoanBeOverdueVehQuery> pq) { public PagerVo<LoanBeOverdueVehVo> listPageVo(PagerQuery<LoanBeOverdueVehQuery> pq) {
LoanBeOverdueVehQuery query = pq.getParams(); 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; package com.yxt.anrui.riskcenter.biz.loanbepadsincereapply;
import cn.hutool.core.bean.BeanUtil; 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.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.*; import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.*; import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVeh;
import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo; import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentExcelInfo; import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.export.TransferedPaymentExportVo;
import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; 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.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; 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.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; 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 java.util.List;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** /**
* Project: anrui-riskcenter(垫款申请) <br/> * Project: anrui-riskcenter(垫款申请) <br/>
* File: LoanBePadsincereApplyFeignFallback.java <br/> * File: LoanBePadsincereApplyFeignFallback.java <br/>
@ -223,6 +206,11 @@ public class LoanBePadsincereApplyRest implements LoanBePadsincereApplyFeign {
return loanBePadsincereApplyService.pushAdvancesVoucher(sid,paySid); return loanBePadsincereApplyService.pushAdvancesVoucher(sid,paySid);
} }
@Override
public ResultBean<RskVoucher> pushAdvancesReturnVoucher(String sid, String paySid) {
return loanBePadsincereApplyService.pushAdvancesReturnVoucher(sid,paySid);
}
@Override @Override
public void dkListPageExport(DkRecordQuery query) { 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.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; 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.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank; import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBankFeign; 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.FinPaymentrecord;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign; 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.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.voucher.PaymentVoucher; 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.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.FlowProcessMapQuery;
import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; 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.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; 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.flow.PCHistTaskListAndCommentList;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; 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.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.MonthlyAccrualSourceLCVo; 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.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApply; import com.yxt.anrui.riskcenter.api.loanvoucher.RskPaymentVoucher;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentRecordVo; import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import com.yxt.anrui.riskcenter.biz.loanbepadsincereveh.LoanBePadsincereVehService; import com.yxt.anrui.riskcenter.biz.loanbepadsincereveh.LoanBePadsincereVehService;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentschedule.LoanRepaymentScheduleService; import com.yxt.anrui.riskcenter.biz.loanrepaymentschedule.LoanRepaymentScheduleService;
import com.yxt.common.base.config.component.DocPdfComponent; import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.config.component.FileUploadComponent; 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.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.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.Message;
import com.yxt.messagecenter.api.message.MessageFeign; import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo; 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.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign; import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import org.apache.commons.lang3.StringUtils; 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.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
@ -123,7 +118,6 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
@ -191,7 +185,8 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign; private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired @Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign; private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private DictCommonFeign dictCommonFeign;
public PagerVo<LoanBePadsincereApplyVo> listPageVo(PagerQuery<LoanBePadsincereApplyQuery> pq) { public PagerVo<LoanBePadsincereApplyVo> listPageVo(PagerQuery<LoanBePadsincereApplyQuery> pq) {
LoanBePadsincereApplyQuery query = pq.getParams(); LoanBePadsincereApplyQuery query = pq.getParams();
@ -987,6 +982,7 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
finPaymentrecordDto.setPurchaseSystemSid(""); finPaymentrecordDto.setPurchaseSystemSid("");
finPaymentrecordDto.setPurchaseSystemName(""); finPaymentrecordDto.setPurchaseSystemName("");
finPaymentrecordDto.setBusRemarks(loanBePadsincereApply.getPaymentRemarks()); finPaymentrecordDto.setBusRemarks(loanBePadsincereApply.getPaymentRemarks());
finPaymentrecordDto.setFinDataType(1);
String sid = finPaymentrecordFeign.save(finPaymentrecordDto).getData(); String sid = finPaymentrecordFeign.save(finPaymentrecordDto).getData();
loanBePadsincereVehService.updatePaySid(sid,loanBePadsincereVehDetailsVo.getSid()); loanBePadsincereVehService.updatePaySid(sid,loanBePadsincereVehDetailsVo.getSid());
} }
@ -1507,4 +1503,184 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
List<DkRecordExportVo> recordVos = baseMapper.dkListPageExport(qw); List<DkRecordExportVo> recordVos = baseMapper.dkListPageExport(qw);
return recordVos; 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.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loansettleapply.*; import com.yxt.anrui.riskcenter.api.loansettleapply.*;
import com.yxt.anrui.riskcenter.api.loansettleapply.flowable.*; 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.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; 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) { public ResultBean pushBankVoucher(String sid, String accountNumber, String payTypeCode, String shouxufei) {
return loanSettleApplyService.pushBankVoucher(sid, accountNumber, payTypeCode,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.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder; 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.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; 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.enums.BillTypeEnum;
import com.yxt.anrui.base.common.utils.Rule; import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo; import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.buscenter.api.busdeposit.BusDeposit; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitious; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.*; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderSourceLCVo;
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.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo; import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; 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.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; 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.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed; import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedFeign; 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.FinUncollectedReceivablesDetailedJR;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRFeign; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; 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.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo; import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; 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.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysparameter.SysParameterFeign; import com.yxt.anrui.portal.api.sysparameter.SysParameterFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; 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.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo; 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.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory; import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; 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.LoanSettleCompanyReduction;
import com.yxt.anrui.riskcenter.api.loansettlecompanyreduction.LoanSettleCompanyReductionVo; import com.yxt.anrui.riskcenter.api.loansettlecompanyreduction.LoanSettleCompanyReductionVo;
import com.yxt.anrui.riskcenter.api.loansettlevehicle.LoanSettleVehicleDto; 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.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail; import com.yxt.anrui.riskcenter.api.loanvoucher.RskPaymentVoucher;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher;
import com.yxt.anrui.riskcenter.biz.loanpushfundhistory.LoanPushFundHistoryService; import com.yxt.anrui.riskcenter.biz.loanpushfundhistory.LoanPushFundHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; 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.DocPdfComponent;
import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService; 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.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.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; 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.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList; import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign; import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -119,7 +105,6 @@ import org.springframework.stereotype.Service;
import java.io.*; import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.net.URLEncoder; import java.net.URLEncoder;
@ -970,14 +955,9 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
int check = 0;// 0不推抵顶保证金凭证 1推送 int check = 0;// 0不推抵顶保证金凭证 1推送
//结清合计 + 贷款保证金结转金额 //结清合计 + 贷款保证金结转金额
BigDecimal add = amountTo.add(depositJZ); BigDecimal add = amountTo.add(depositJZ);
// BigDecimal actualDeposit = BigDecimal.ZERO;
List<LoanSettleVoucherVo> settleVoucherVos = new ArrayList<>(); List<LoanSettleVoucherVo> settleVoucherVos = new ArrayList<>();
if (add.compareTo(BigDecimal.ZERO) > 0) { if (add.compareTo(BigDecimal.ZERO) > 0) {
//结转剩余保证金 //结转剩余保证金
// BigDecimal decimal = carryForward(loanSettleApply);
// if (null != decimal) {
// actualDeposit = decimal;
// }
settleVoucherVos = carryForward2(loanSettleApply); settleVoucherVos = carryForward2(loanSettleApply);
check = 1; check = 1;
} }
@ -990,7 +970,6 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
//设置认款月还为已转付 //设置认款月还为已转付
updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid()); updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid());
//推送财务凭证 //推送财务凭证
// pushSettleVoucher(loanSettleApply, check, actualDeposit);
pushSettleVoucher2(loanSettleApply, check, settleVoucherVos); pushSettleVoucher2(loanSettleApply, check, settleVoucherVos);
} }
baseMapper.updateById(loanSettleApply); baseMapper.updateById(loanSettleApply);
@ -2269,6 +2248,15 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
BigDecimal zfJQK = BigDecimal.ZERO;//资方结清款 BigDecimal zfJQK = BigDecimal.ZERO;//资方结清款
int topping = 0; int topping = 0;
BigDecimal bbjDDMoney = BigDecimal.ZERO; //资方保证金抵顶 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) {
if (null != reduction.getFundPenalty()) { if (null != reduction.getFundPenalty()) {
fund = reduction.getFundPenalty(); fund = reduction.getFundPenalty();
@ -2276,6 +2264,12 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (null != reduction.getDepositPenalty()) { if (null != reduction.getDepositPenalty()) {
bzjJM = 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) {
if (null != companyCost.getLoanDeposit()) { if (null != companyCost.getLoanDeposit()) {
@ -2284,6 +2278,13 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (null != companyCost.getDeductionAmount()) { if (null != companyCost.getDeductionAmount()) {
bzjKF = 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) {
if (null != bankCost.getBankSettlePrice()) { if (null != bankCost.getBankSettlePrice()) {
@ -2293,6 +2294,12 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (null != bankCost.getLoanDeposit()) { if (null != bankCost.getLoanDeposit()) {
bbjDDMoney = 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); sybzj = bzjMoney.subtract(bzjKF).add(bzjJM);
bzjKFCw = bzjKF.subtract(bzjJM); bzjKFCw = bzjKF.subtract(bzjJM);
@ -2497,6 +2504,37 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
voucherDetail.setDebit(amountAll.toString()); voucherDetail.setDebit(amountAll.toString());
resultDetails.add(voucherDetail); 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); newVoucher.setResultDetails(resultDetails);
if (!fundHistoryList.isEmpty()) { if (!fundHistoryList.isEmpty()) {
loanPushFundHistoryService.saveLists(fundHistoryList); loanPushFundHistoryService.saveLists(fundHistoryList);
@ -2514,6 +2552,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
BigDecimal bankSettlePrice = bankCost.getBankSettlePrice(); BigDecimal bankSettlePrice = bankCost.getBankSettlePrice();
if (bankSettlePrice.compareTo(BigDecimal.ZERO) > 0) { if (bankSettlePrice.compareTo(BigDecimal.ZERO) > 0) {
FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto(); FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto();
finPaymentrecordDto.setFinDataType(1);
finPaymentrecordDto.setApplySid(""); finPaymentrecordDto.setApplySid("");
finPaymentrecordDto.setPayCompanySid(""); finPaymentrecordDto.setPayCompanySid("");
finPaymentrecordDto.setPayType(1); finPaymentrecordDto.setPayType(1);
@ -3596,13 +3635,8 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
} }
loanSettleApply.setState(1); loanSettleApply.setState(1);
baseMapper.updateById(loanSettleApply); baseMapper.updateById(loanSettleApply);
// BigDecimal actualDeposit = BigDecimal.ZERO;
//结转剩余保证金 //结转剩余保证金
List<LoanSettleVoucherVo> settleVoucherVos = carryForward2(loanSettleApply); List<LoanSettleVoucherVo> settleVoucherVos = carryForward2(loanSettleApply);
// BigDecimal decimal = carryForward(loanSettleApply);
// if (null != decimal) {
// actualDeposit = decimal;
// }
//更新车辆表结清状态 //更新车辆表结清状态
baseMapper.updateBus(loanSettleApply.getBusVinSid(), "1"); baseMapper.updateBus(loanSettleApply.getBusVinSid(), "1");
//推送资方结清款到出纳代付款列表 //推送资方结清款到出纳代付款列表
@ -3610,7 +3644,6 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
//设置认款月还为已转付 //设置认款月还为已转付
updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid()); updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid());
//推送财务凭证 //推送财务凭证
// pushSettleVoucher(loanSettleApply, 1, actualDeposit);
pushSettleVoucher2(loanSettleApply, 1, settleVoucherVos); pushSettleVoucher2(loanSettleApply, 1, settleVoucherVos);
return rb.success(); return rb.success();
} }
@ -4004,8 +4037,10 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
BigDecimal kuanxiang = BigDecimal.ZERO; //差额 BigDecimal kuanxiang = BigDecimal.ZERO; //差额
BigDecimal companyAmount = BigDecimal.ZERO; //公司收 BigDecimal companyAmount = BigDecimal.ZERO; //公司收
BigDecimal subtrahend = BigDecimal.ZERO; //资方收 BigDecimal subtrahend = BigDecimal.ZERO; //资方收
BigDecimal qtfyjm = BigDecimal.ZERO; //其他费用减免
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(sid); LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(sid);
LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(sid); LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(sid);
LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(sid);
if (null != bankCost) { if (null != bankCost) {
if (receivablesName.equals("名义价")) { if (receivablesName.equals("名义价")) {
if (null != bankCost.getBankNominalPrice()) { 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); PlanNoReturnMoney p = baseMapper.selectNoReturnMoneyByType(planDetailsSid, receivablesName);
if (null != p) { if (null != p) {
BigDecimal money = new BigDecimal(p.getMoney()); BigDecimal money = new BigDecimal(p.getMoney());
@ -4059,6 +4100,9 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
} else { } else {
balance = companyAmount.subtract(subtrahend); balance = companyAmount.subtract(subtrahend);
} }
if (receivablesName.equals("其他费用")) {
balance = balance.subtract(qtfyjm);
}
kuanxiang = amount.subtract(balance); kuanxiang = amount.subtract(balance);
vo.setBusSid(sid); vo.setBusSid(sid);
vo.setAmount(amount); vo.setAmount(amount);
@ -4073,31 +4117,26 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
LoanSettleApply apply = fetchBySid(sid); LoanSettleApply apply = fetchBySid(sid);
LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(sid); LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(sid);
// LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(sid);
LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(sid); LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(sid);
if (null != apply) { if (null != apply) {
BigDecimal amountAll = BigDecimal.ZERO;//推送资方结清款总数 BigDecimal amountAll = BigDecimal.ZERO;//推送资方结清款总数
BigDecimal zfJQK = BigDecimal.ZERO;//资方结清款 BigDecimal zfJQK = BigDecimal.ZERO;//资方结清款
BigDecimal bankRelief = BigDecimal.ZERO;//资方结清未到期利息减免 // BigDecimal bankRelief = BigDecimal.ZERO;//资方结清未到期利息减免
BigDecimal companyRelief = BigDecimal.ZERO;//公司结清未到期利息减免 // BigDecimal companyRelief = BigDecimal.ZERO;//公司结清未到期利息减免
BigDecimal noRelief = BigDecimal.ZERO;//结清未到期利息不减免 // BigDecimal noRelief = BigDecimal.ZERO;//结清未到期利息不减免
int topping = 0; int topping = 0;
BigDecimal bbjDDMoney = BigDecimal.ZERO; //资方保证金抵顶 BigDecimal bbjDDMoney = BigDecimal.ZERO; //资方保证金抵顶
BigDecimal sub = BigDecimal.ZERO; //资方保证金差额 BigDecimal sub = BigDecimal.ZERO; //资方保证金差额
BigDecimal shouxufeiCW = new BigDecimal(shouxufei); BigDecimal shouxufeiCW = new BigDecimal(shouxufei);
// // 资方未到期金额 // if (null != reduction) {
// BigDecimal zfwdq = BigDecimal.ZERO; // if (null != reduction.getNotDuePriceRelief()) {
// // 公司未到期金额 // companyRelief = reduction.getNotDuePriceRelief();
// BigDecimal gswdq = BigDecimal.ZERO; // }
if (null != reduction) { // if (null != reduction.getReliefBasis()) {
if (null != reduction.getNotDuePriceRelief()) { // bankRelief = reduction.getReliefBasis();
companyRelief = reduction.getNotDuePriceRelief(); // }
} // noRelief = bankRelief.subtract(companyRelief);
if (null != reduction.getReliefBasis()) { // }
bankRelief = reduction.getReliefBasis();
}
noRelief = bankRelief.subtract(companyRelief);
}
if (null != bankCost) { if (null != bankCost) {
if (null != bankCost.getBankSettlePrice()) { if (null != bankCost.getBankSettlePrice()) {
zfJQK = bankCost.getBankSettlePrice(); zfJQK = bankCost.getBankSettlePrice();
@ -4106,20 +4145,10 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (null != bankCost.getLoanDeposit()) { if (null != bankCost.getLoanDeposit()) {
bbjDDMoney = 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); 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) { if (zfJQK.compareTo(BigDecimal.ZERO) > 0) {
PaymentVoucher paymentVoucher = new PaymentVoucher(); PaymentVoucher paymentVoucher = new PaymentVoucher();
paymentVoucher.setBankAccount(accountNumber); paymentVoucher.setBankAccount(accountNumber);
@ -4198,8 +4227,8 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
voucherDetail.setAmount(amountAll); voucherDetail.setAmount(amountAll);
voucherDetail.setSubtrahend(bbjDDMoney); voucherDetail.setSubtrahend(bbjDDMoney);
voucherDetail.setBalance(sub.add(shouxufeiCW)); voucherDetail.setBalance(sub.add(shouxufeiCW));
voucherDetail.setRelief(companyRelief); // voucherDetail.setRelief(companyRelief);
voucherDetail.setNoRelief(noRelief); // voucherDetail.setNoRelief(noRelief);
voucherDetail.setPaymentCharges(shouxufeiCW); voucherDetail.setPaymentCharges(shouxufeiCW);
voucherDetails.add(voucherDetail); voucherDetails.add(voucherDetail);
} }
@ -4210,4 +4239,214 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
return rb.success(); 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 cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; 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.*;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.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.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -69,6 +67,11 @@ public class LoanTransferPaymentApplyRest implements LoanTransferPaymentApplyFei
return loanTransferPaymentApplyService.pushPaymentVoucher(sid,paySid); return loanTransferPaymentApplyService.pushPaymentVoucher(sid,paySid);
} }
@Override
public ResultBean<RskVoucher> pushPaymentVoucherReturnVoucher(String sid, String paySid) {
return loanTransferPaymentApplyService.pushPaymentVoucherReturnVoucher(sid,paySid);
}
@Override @Override
public ResultBean submitRecordApplication(SubmitTransferDto dto) { public ResultBean submitRecordApplication(SubmitTransferDto dto) {
return loanTransferPaymentApplyService.submitRecordApplication(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.bean.BeanUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.math.Money;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; 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.PaymentVoucher;
import com.yxt.anrui.fin.api.kingdee.voucher.SceneCodeEnum; import com.yxt.anrui.fin.api.kingdee.voucher.SceneCodeEnum;
import com.yxt.anrui.flowable.api.flow.FlowableFeign; 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.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; 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.flow.PCHistTaskListAndCommentList;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; 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.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo; 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.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; 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.loanmonthlyaccrualapply.MonthlyAccrualSourceLCVo;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.*; import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.*;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.flow.*; import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.flow.*;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; 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.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; 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.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList; import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign; import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -107,6 +102,8 @@ import static java.util.Comparator.comparing;
@Service @Service
public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTransferPaymentApplyMapper, LoanTransferPaymentApply> { public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTransferPaymentApplyMapper, LoanTransferPaymentApply> {
@Autowired
private DictCommonFeign dictCommonFeign;
@Autowired @Autowired
private MessageListFeign messageListFeign; private MessageListFeign messageListFeign;
@Autowired @Autowired
@ -664,28 +661,6 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
repaymentHistory.setPaymentState("已转付"); repaymentHistory.setPaymentState("已转付");
repaymentHistory.setTransferDate(new DateTime()); repaymentHistory.setTransferDate(new DateTime());
loanRepaymentHistoryService.updateById(repaymentHistory); 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 (payFormKey.equals("01")) {
if (StringUtils.isNotBlank(applyRecord.getBankContractNo())) { if (StringUtils.isNotBlank(applyRecord.getBankContractNo())) {
@ -735,6 +710,7 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
if (!map.isEmpty()) { if (!map.isEmpty()) {
for (Map.Entry<String, BigDecimal> entry : map.entrySet()) { for (Map.Entry<String, BigDecimal> entry : map.entrySet()) {
FinPaymentrecordDto payDto = new FinPaymentrecordDto(); FinPaymentrecordDto payDto = new FinPaymentrecordDto();
payDto.setFinDataType(1);
payDto.setBusSid(apply.getSid()); payDto.setBusSid(apply.getSid());
payDto.setCreateBySid(apply.getCreateBySid()); payDto.setCreateBySid(apply.getCreateBySid());
payDto.setCost(entry.getValue().toString()); 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()); return rb.success().setData(resultBean.getData());
} else { } else {
@ -877,7 +837,6 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
} else { } else {
voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER1.getCode()); voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER1.getCode());
} }
// String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails);
if (StringUtils.isNotBlank(planDetails.getBankName())) { if (StringUtils.isNotBlank(planDetails.getBankName())) {
voucherDetail.setBankName(planDetails.getBankName()); voucherDetail.setBankName(planDetails.getBankName());
} }
@ -949,7 +908,6 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
} }
voucherDetail.setAmount(money); voucherDetail.setAmount(money);
voucherDetails.add(voucherDetail); voucherDetails.add(voucherDetail);
} }
} }
} }
@ -1476,4 +1434,151 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
} }
return rb.success().setData(finalPath); 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.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*; 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 = "入库单") @Api(tags = "入库单")
@FeignClient( @FeignClient(
contextId = "scm-ScmVehicleEnterlibrary", 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; private String procInsId;
@ApiModelProperty("调入分公司名称") @ApiModelProperty("调入分公司名称")
@JsonProperty("company2") @JsonProperty("company2")
private String buyerOrgName; private String callInOrgName;
@ApiModelProperty("调出分公司名称") @ApiModelProperty("调出分公司名称")
@JsonProperty("company") @JsonProperty("company")
private String sellerOrgName; private String callOutOrgName;
@ApiModelProperty("调车类型key") @ApiModelProperty("调车类型key")
@JsonProperty("typeKey") @JsonProperty("typeKey")
private String shuntingTypeKey; private String accadjTypeKey;
@ApiModelProperty("调车类型") @ApiModelProperty("调车类型")
@JsonProperty("type") @JsonProperty("type")
private String shuntingTypeValue; private String accadjTypeValue;
private List<CompanyAdjustList> records = new ArrayList<>(); private List<CompanyAdjustList> records = new ArrayList<>();
} }

Loading…
Cancel
Save