Browse Source

Merge remote-tracking branch 'origin/master'

master
God 1 year ago
parent
commit
0b1374b022
  1. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java
  2. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java
  3. 85
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  4. 91
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java
  5. 30
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNotice.java
  6. 35
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDetailsVo.java
  7. 38
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDto.java
  8. 53
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeign.java
  9. 12
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeignFallback.java
  10. 16
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeListVo.java
  11. 25
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeQuery.java
  12. 24
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeVo.java
  13. 21
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticesQuery.java
  14. 21
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticessQuery.java
  15. 16
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/UrlQuery.java
  16. 2
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/syssourcemenu/SysSourceMenu.java
  17. 8
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenu/SysMenuMapper.java
  18. 22
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenu/SysMenuMapper.xml
  19. 15
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenu/SysMenuService.java
  20. 25
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.java
  21. 26
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.xml
  22. 63
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeRest.java
  23. 174
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeService.java
  24. 17
      anrui-riskcenter-ui/src/api/secondarysales/secondarysales.js
  25. 351
      anrui-riskcenter-ui/src/views/secondarysales/relation/generatecontract.vue
  26. 30
      anrui-riskcenter-ui/src/views/secondarysales/secondarysales.vue
  27. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java
  28. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java
  29. 29
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java
  30. 22
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java
  31. 11
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java
  32. 20
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java
  33. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java
  34. 166
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java
  35. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.java
  36. 27
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.xml
  37. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java
  38. 18
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java
  39. 13
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml
  40. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java
  41. 24
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java
  42. 30
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java
  43. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java
  44. 54
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  45. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
  46. 270
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java
  47. 4
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheck.vue
  48. 4
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue
  49. 4
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatewithholding/bicyclerebatewithholding.vue
  50. 4
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagement.vue
  51. 5
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementByVehicle.vue
  52. 4
      anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanfenpei/collectionrebateallot.vue
  53. 4
      anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanfenpei/relation/collectionrebateallotSelectVehicle.vue
  54. 4
      anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagement.vue
  55. 6
      anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatechecked.vue
  56. 4
      anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobechecked.vue
  57. 4
      anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/collectionrebatewithholding.vue
  58. 6
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatecheck/specialrebatecheck.vue
  59. 4
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatecheck/specialrebatetobechecked.vue
  60. 4
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatedistribution/specialrebatedistribution.vue
  61. 4
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatedistribution/specialrebatetobeallocated.vue
  62. 4
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagement.vue
  63. 4
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatewithholding/specialrebatewithholding.vue
  64. 1
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesAppVos.java
  65. 14
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesService.java
  66. 28
      doc/databases/portal_tables.sql

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

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

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

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

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

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

91
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java

@ -447,7 +447,7 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
boolean adminContains = false;
String service = (String) formVariables.get("service");
String ydfOrgPath = (String) formVariables.get("ydfOrgPath");
if ("公司间调车".equals(service) && "Activity_0695qh4".equals(bv.getTaskDefKey())){
if ("公司间调车".equals(service) && "Activity_0695qh4".equals(bv.getTaskDefKey())) {
if (StringUtils.isBlank(nextUserSid)) {
bv.setOrgSidPath(ydfOrgPath);
ResultBean<String> stringResultBean = getNextNodeUserSidsOfSubmit(bv);
@ -528,59 +528,62 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
bv.setNextNodeUserSids("");
return handleProsess(bv, false);
}
//获取该流程所有要走的环节节点
List<FlowElement> flowElements = calApprovePath(bv.getModelId(),
bv.getFormVariables());
for (int i = 0; i < flowElements.size(); i++) {
FlowElement flowElement = flowElements.get(i);
String id = flowElement.getId();
if (taskDefKey.equals(id) && i + 1 < flowElements.size()) {
//获取下下一环节
FlowElement flowElement1 = flowElements.get(i + 1);
List<SysUserVo> sysUserVoLists2 = new ArrayList<>();
if (i + 2 < flowElements.size()) {
//获取下下下一环节用户
FlowElement flowElement2 = flowElements.get(i + 2);
if (flowElement2 instanceof UserTask) {
UserTask userTask = (UserTask) flowElement2;
if (!DelegationState.PENDING.equals(task.getDelegationState())) {
//获取该流程所有要走的环节节点
List<FlowElement> flowElements = calApprovePath(bv.getModelId(),
bv.getFormVariables());
for (int i = 0; i < flowElements.size(); i++) {
FlowElement flowElement = flowElements.get(i);
String id = flowElement.getId();
if (taskDefKey.equals(id) && i + 1 < flowElements.size()) {
//获取下下一环节
FlowElement flowElement1 = flowElements.get(i + 1);
List<SysUserVo> sysUserVoLists2 = new ArrayList<>();
if (i + 2 < flowElements.size()) {
//获取下下下一环节用户
FlowElement flowElement2 = flowElements.get(i + 2);
if (flowElement2 instanceof UserTask) {
UserTask userTask = (UserTask) flowElement2;
List<String> candidateGroups = userTask.getCandidateGroups();
UserssQuery userssQuery = new UserssQuery();
userssQuery.setCandidateGroups(candidateGroups);
userssQuery.setOrgSidPath(orgPath);
sysUserVoLists2 = sysUserFeign.getUsersByRoles(userssQuery).getData();
if (sysUserVoLists2 == null) {
sysUserVoLists2 = new ArrayList<>();
}
}
}
if (flowElement1 instanceof UserTask) {
UserTask userTask = (UserTask) flowElement1;
List<String> candidateGroups = userTask.getCandidateGroups();
List<SysUserVo> sysUserVoLists = new ArrayList<>();
UserssQuery userssQuery = new UserssQuery();
userssQuery.setCandidateGroups(candidateGroups);
userssQuery.setOrgSidPath(orgPath);
sysUserVoLists2 = sysUserFeign.getUsersByRoles(userssQuery).getData();
if (sysUserVoLists2 == null) {
sysUserVoLists2 = new ArrayList<>();
sysUserVoLists = sysUserFeign.getUsersByRoles(userssQuery).getData();
if (sysUserVoLists == null) {
sysUserVoLists = new ArrayList<>();
}
//当前环节运营部总经理 刘丽艳 点击同意 下一环节 事业部副总经理 (nextUserSid) 和事业部总经理(sysUserVoLists.get(0).getSid())
//判断查询回来的用户的集合size是1 并且用户的sid和下一环节的用户的sid相同。
if (sysUserVoLists.size() == 1 && sysUserVoLists.get(0).getSid().equals(nextUserSid)) {
contains = true;
break;
}
//如果下下一环节无用户,下下下一环节用户与下一环节用户相同且只有一个,则下一环节用户自动审批。
if (sysUserVoLists.size() == 0 && sysUserVoLists2.size() == 1 && sysUserVoLists2.get(0).getSid().equals(nextUserSid)) {
contains = true;
break;
}
}
}
if (flowElement1 instanceof UserTask) {
UserTask userTask = (UserTask) flowElement1;
List<String> candidateGroups = userTask.getCandidateGroups();
List<SysUserVo> sysUserVoLists = new ArrayList<>();
UserssQuery userssQuery = new UserssQuery();
userssQuery.setCandidateGroups(candidateGroups);
userssQuery.setOrgSidPath(orgPath);
sysUserVoLists = sysUserFeign.getUsersByRoles(userssQuery).getData();
if (sysUserVoLists == null) {
sysUserVoLists = new ArrayList<>();
}
//当前环节运营部总经理 刘丽艳 点击同意 下一环节 事业部副总经理 (nextUserSid) 和事业部总经理(sysUserVoLists.get(0).getSid())
//判断查询回来的用户的集合size是1 并且用户的sid和下一环节的用户的sid相同。
if (sysUserVoLists.size() == 1 && sysUserVoLists.get(0).getSid().equals(nextUserSid)) {
contains = true;
break;
}
//如果下下一环节无用户,下下下一环节用户与下一环节用户相同且只有一个,则下一环节用户自动审批。
if (sysUserVoLists.size() == 0 && sysUserVoLists2.size() == 1 && sysUserVoLists2.get(0).getSid().equals(nextUserSid)) {
contains = true;
break;
}
if (contains) {
break;
}
}
if (contains) {
break;
}
}
if (contains) {
bv.setUserSid(nextUserSid);
bv.setTaskId(vo.getTaskId());

30
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNotice.java

@ -0,0 +1,30 @@
package com.yxt.anrui.portal.api.sysnotice;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/30
**/
@Data
public class SysNotice extends BaseEntity {
private static final long serialVersionUID = 8324297245354558865L;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("有效期至")
private String validityDate;
@ApiModelProperty("类别")
private String type;
@ApiModelProperty("类别key")
private String typeKey;
@ApiModelProperty("是否置顶")
private String topping;
@ApiModelProperty("内容")
private String content;
@ApiModelProperty("附件")
private String files;
}

35
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDetailsVo.java

@ -0,0 +1,35 @@
package com.yxt.anrui.portal.api.sysnotice;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/31
**/
@Data
public class SysNoticeDetailsVo {
private String sid;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("有效期至")
private String validityDate;
@ApiModelProperty("类别")
private String type;
@ApiModelProperty("类别key")
private String typeKey;
@ApiModelProperty("是否置顶")
private String topping;
@ApiModelProperty("内容")
private String content;
@ApiModelProperty("附件")
private List<UrlQuery> filesList = new ArrayList<>();
private String createTime;
}

38
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeDto.java

@ -0,0 +1,38 @@
package com.yxt.anrui.portal.api.sysnotice;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/31
**/
@Data
public class SysNoticeDto implements Dto {
private static final long serialVersionUID = 8074080443156103663L;
private String sid;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("有效期至")
private String validityDate;
@ApiModelProperty("类别")
private String type;
@ApiModelProperty("类别key")
private String typeKey;
@ApiModelProperty("是否置顶")
private String topping;
@ApiModelProperty("内容")
private String content;
@ApiModelProperty("附件")
private List<UrlQuery> filesList = new ArrayList<>();
private String createTime;
}

53
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeign.java

@ -0,0 +1,53 @@
package com.yxt.anrui.portal.api.sysnotice;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/30
**/
@Api(tags = "通知公告")
@FeignClient(
contextId = "anrui-portal-SysNotice",
name = "anrui-portal",
path = "v1/SysNotice",
fallback = SysNoticeFeignFallback.class)
public interface SysNoticeFeign {
@ApiOperation("分页列表")
@PostMapping("/listPage")
ResultBean<PagerVo<SysNoticeVo>> listPage(@RequestBody PagerQuery<SysNoticeQuery> pagerQuery);
@ApiOperation("新增修改保存")
@PostMapping("/saveOrUpdate")
ResultBean saveOrUpdate(@RequestBody SysNoticeDto dto);
@ApiOperation("初始化")
@GetMapping("/getDetails")
ResultBean<SysNoticeDetailsVo> getDetails(@RequestParam("sid") String sid);
@ApiOperation("开启关闭:1是开启,2是关闭")
@PostMapping("/setState")
ResultBean setState(@RequestBody SysNoticesQuery query);
@ApiOperation("置顶是,取消置顶否")
@PostMapping("/setTopping")
ResultBean setTopping(@RequestBody SysNoticessQuery query);
@ApiOperation("首页通知公告")
@GetMapping("/getLists")
ResultBean<List<SysNoticeListVo>> getLists();
@ApiOperation("删除/批量删除")
@DeleteMapping("/delBySids")
ResultBean delBySids(@RequestBody String[] sids);
}

12
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.portal.api.sysnotice;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/30
**/
@Component
public class SysNoticeFeignFallback {
}

16
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeListVo.java

@ -0,0 +1,16 @@
package com.yxt.anrui.portal.api.sysnotice;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/31
**/
@Data
public class SysNoticeListVo {
private String sid;
private String title;
private String createTime;
}

25
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.portal.api.sysnotice;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/30
**/
@Data
public class SysNoticeQuery implements Query {
private static final long serialVersionUID = -2087301472856056824L;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("发布时间开始")
private String createDateStart;
@ApiModelProperty("发布时间结束")
private String createDateEnd;
@ApiModelProperty("是否置顶")
private String topping;
@ApiModelProperty("开启1,关闭2")
private String state;
}

24
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticeVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.portal.api.sysnotice;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/30
**/
@Data
public class SysNoticeVo {
private String sid;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("发布时间")
private String createDate;
@ApiModelProperty("有效期至")
private String validityDate;
@ApiModelProperty("状态")
private String stateValue;
@ApiModelProperty("是否置顶")
private String topping;
}

21
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticesQuery.java

@ -0,0 +1,21 @@
package com.yxt.anrui.portal.api.sysnotice;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/31
**/
@Data
public class SysNoticesQuery {
@ApiModelProperty("sids")
private List<String> sidsList = new ArrayList<>();
@ApiModelProperty("1开启、2关闭")
private String state;
}

21
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/SysNoticessQuery.java

@ -0,0 +1,21 @@
package com.yxt.anrui.portal.api.sysnotice;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/31
**/
@Data
public class SysNoticessQuery {
@ApiModelProperty("sids")
private List<String> sidsList = new ArrayList<>();
@ApiModelProperty("置顶是、取消置顶否")
private String topping;
}

16
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysnotice/UrlQuery.java

@ -0,0 +1,16 @@
package com.yxt.anrui.portal.api.sysnotice;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/31
**/
@Data
public class UrlQuery {
private String url;
}

2
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/syssourcemenu/SysSourceMenu.java

@ -10,7 +10,7 @@ import lombok.Data;
* Project: anrui_portal(门户建设) <br/>
* File: SysMenuRole.java <br/>
* Class: com.yxt.anrui.portal.api.sysmenurole.SysMenuRole <br/>
* Description: 菜单与资源关联表. <br/>
* Description: 菜单与资源关联表.-考虑作废 <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>

8
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenu/SysMenuMapper.java

@ -74,4 +74,12 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
int selectBySourceSid(@Param("isEnable") int isEnable, @Param("sourceSid") String sourceSid);
List<SysMenu> selectByMenuUrl(String menuUrl);
/**
* 查询该资源下一级菜单列表
*
* @param sourceSid 资源sid
* @return
*/
List<SysMenuTreeVo> fetchRootMenuBySourceSid(@Param("sourceSid") String sourceSid);
}

22
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenu/SysMenuMapper.xml

@ -63,4 +63,26 @@
<select id="selectByMenuUrl" resultType="com.yxt.anrui.portal.api.sysmenu.SysMenu">
select * from sys_menu where menuUrl = #{menuUrl}
</select>
<!--将该资源下的所有一级菜单列表-->
<select id="fetchRootMenuBySourceSid" resultType="com.yxt.anrui.portal.api.sysmenu.SysMenuTreeVo">
SELECT menu.NAME AS NAME,
menu.sid AS sid,
menu.sid AS sid,
source.sid AS sourceSid,
menu.sortNo AS sortNo,
menu.pSid AS pSid,
source.sourceName AS sourceName,
menu.sid AS menuRootSid,
menu.menuUrl AS menuUrl,
menu.iconUrl AS iconUrl,
menu.pageName AS pageName,
menu.pageUrlRedirect AS pageUrlRedirect,
menu.pageUrl AS pageUrl,
menu.remarks,
menu.isEnable
FROM sys_menu menu
LEFT JOIN sys_source source ON menu.sourceSid = source.sid
WHERE source.sid = #{sourceSid} AND menu.psid='0' and menu.isDelete!=1
ORDER BY menu.sortNo ASC
</select>
</mapper>

15
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenu/SysMenuService.java

@ -133,8 +133,9 @@ public class SysMenuService extends MybatisBaseService<SysMenuMapper, SysMenu> {
//查询所有的资源列表
List<SysMenuTreeVo> sysSourceVos = sysSourceService.listMenuTreeVo();
for (SysMenuTreeVo s : sysSourceVos) {
//根据资源sid查询该资源下的所有单位
List<SysMenuTreeVo> sysMenuVoList = sysSourceMenuService.fetchRootMenuBySourceSid(s.getSourceSid());
//根据资源sid查询该资源下的所有一级菜单
//List<SysMenuTreeVo> sysMenuVoList = sysSourceMenuService.fetchRootMenuBySourceSid(s.getSourceSid());
List<SysMenuTreeVo> sysMenuVoList = sysMenuService.fetchRootMenuBySourceSid(s.getSourceSid());
s.setChildren(sysMenuVoList);
s.setIsSource("1");
//判断该资源下的菜单是否有可用的状态
@ -413,4 +414,14 @@ public class SysMenuService extends MybatisBaseService<SysMenuMapper, SysMenu> {
public List<SysMenu> selectByMenuUrl(String menuUrl) {
return baseMapper.selectByMenuUrl(menuUrl);
}
/**
* 根据资源sid查询该资源下的一级菜单列表yxt_mtl 2024-01-31
*
* @param sid 资源sid
* @return
*/
public List<SysMenuTreeVo> fetchRootMenuBySourceSid(String sid) {
return baseMapper.fetchRootMenuBySourceSid(sid);
}
}

25
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.java

@ -0,0 +1,25 @@
package com.yxt.anrui.portal.biz.sysnotice;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.portal.api.sysnotice.SysNotice;
import com.yxt.anrui.portal.api.sysnotice.SysNoticeListVo;
import com.yxt.anrui.portal.api.sysnotice.SysNoticeVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/30
**/
@Mapper
public interface SysNoticeMapper extends BaseMapper<SysNotice> {
IPage<SysNoticeVo> selectPageVo(IPage<SysNotice> page, @Param(Constants.WRAPPER) QueryWrapper<SysNotice> qw);
List<SysNoticeListVo> getLists();
}

26
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeMapper.xml

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.portal.biz.sysnotice.SysNoticeMapper">
<select id="selectPageVo" resultType="com.yxt.anrui.portal.api.sysnotice.SysNoticeVo">
select sn.sid,sn.title,
DATE_FORMAT(sn.createTime, '%Y-%m-%d') as createDate,
sn.validityDate,
case state
when 1
then '开启'
when 2 then '关闭' end as stateValue,
sn.topping
from sys_notice sn
<where>
${ew.sqlSegment}
</where>
</select>
<select id="getLists" resultType="com.yxt.anrui.portal.api.sysnotice.SysNoticeListVo">
select sid, title, DATE_FORMAT(createTime, '%Y-%m-%d') as createTime
from sys_notice
where state = 1 and (validityDate is null or validityDate = '' or validityDate>NOW())
order by topping desc, createTime desc
limit 4
</select>
</mapper>

63
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeRest.java

@ -0,0 +1,63 @@
package com.yxt.anrui.portal.biz.sysnotice;
import com.yxt.anrui.portal.api.sysnotice.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/30
**/
@Api(tags = "通知公告")
@RestController
@RequestMapping("v1/SysNotice")
public class SysNoticeRest implements SysNoticeFeign {
@Autowired
private SysNoticeService sysNoticeService;
@Override
public ResultBean<PagerVo<SysNoticeVo>> listPage(PagerQuery<SysNoticeQuery> pagerQuery) {
ResultBean<PagerVo<SysNoticeVo>> rb = ResultBean.fireFail();
PagerVo<SysNoticeVo> pv = sysNoticeService.listPageVo(pagerQuery);
return rb.success().setData(pv);
}
@Override
public ResultBean saveOrUpdate(SysNoticeDto dto) {
return sysNoticeService.saveOrUpdateNotice(dto);
}
@Override
public ResultBean<SysNoticeDetailsVo> getDetails(String sid) {
return sysNoticeService.getDetails(sid);
}
@Override
public ResultBean setState(SysNoticesQuery query) {
return sysNoticeService.setState(query);
}
@Override
public ResultBean setTopping(SysNoticessQuery query) {
return sysNoticeService.setTopping(query);
}
@Override
public ResultBean<List<SysNoticeListVo>> getLists() {
return sysNoticeService.getLists();
}
@Override
public ResultBean delBySids(String[] sids) {
return sysNoticeService.delAllBySids(sids);
}
}

174
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysnotice/SysNoticeService.java

@ -0,0 +1,174 @@
package com.yxt.anrui.portal.biz.sysnotice;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.sysnotice.*;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/30
**/
@Service
public class SysNoticeService extends MybatisBaseService<SysNoticeMapper, SysNotice> {
@Autowired
private FileUploadComponent fileUploadComponent;
public PagerVo<SysNoticeVo> listPageVo(PagerQuery<SysNoticeQuery> pagerQuery) {
SysNoticeQuery query = pagerQuery.getParams();
QueryWrapper<SysNotice> qw = new QueryWrapper<>();
if (query != null) {
qw.eq("1", 1);
//标题
if (StringUtils.isNotBlank(query.getTitle())) {
qw.like("sn.title", query.getTitle());
}
qw.apply(StringUtils.isNotBlank(query.getCreateDateStart()), "date_format (sn.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateDateStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateDateEnd()), "date_format (sn.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateDateEnd() + "','%Y-%m-%d')"
);
if (StringUtils.isNotBlank(query.getTopping())) {
qw.like("sn.topping", query.getTopping());
}
if (StringUtils.isNotBlank(query.getState())) {
qw.eq("sn.state", query.getState());
}
qw.orderByDesc("sn.createTime");
}
IPage<SysNotice> page = PagerUtil.queryToPage(pagerQuery);
IPage<SysNoticeVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SysNoticeVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean saveOrUpdateNotice(SysNoticeDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {
SysNotice sysNotice = new SysNotice();
BeanUtil.copyProperties(dto, sysNotice, "sid");
List<UrlQuery> filss = dto.getFilesList();
filss.removeAll(Collections.singleton(null));
if (!filss.isEmpty()) {
List<String> filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList());
filesList.removeAll(Collections.singleton(null));
if (!filesList.isEmpty()) {
String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
sysNotice.setFiles(files);
}
}
baseMapper.insert(sysNotice);
} else {
SysNotice sysNotice = fetchBySid(sid);
if (sysNotice == null) {
return rb.setMsg("该通知公告不存在");
}
BeanUtil.copyProperties(dto, sysNotice, "sid");
List<UrlQuery> filss = dto.getFilesList();
filss.removeAll(Collections.singleton(null));
if (!filss.isEmpty()) {
List<String> filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList());
filesList.removeAll(Collections.singleton(null));
if (!filesList.isEmpty()) {
String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
sysNotice.setFiles(files);
}
} else {
sysNotice.setFiles("");
}
baseMapper.updateById(sysNotice);
}
return rb.success();
}
public ResultBean<SysNoticeDetailsVo> getDetails(String sid) {
ResultBean<SysNoticeDetailsVo> rb = ResultBean.fireFail();
SysNoticeDetailsVo sysNoticeDetailsVo = new SysNoticeDetailsVo();
SysNotice sysNotice = fetchBySid(sid);
if (sysNotice == null) {
return rb.setMsg("该通知公告不存在");
}
BeanUtil.copyProperties(sysNotice, sysNoticeDetailsVo);
sysNoticeDetailsVo.setCreateTime(DateUtil.format(sysNotice.getCreateTime(), "yyyy-MM-dd"));
String filesss = sysNotice.getFiles();
List<UrlQuery> lists = new ArrayList<>();
if (StringUtils.isNotBlank(filesss)) {
List<String> fileList = Arrays.asList(filesss.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
for (int i = 0; i < fileList.size(); i++) {
UrlQuery urlQuery = new UrlQuery();
urlQuery.setUrl(fileList.get(i));
lists.add(urlQuery);
}
sysNoticeDetailsVo.setFilesList(lists);
}
return rb.success().setData(sysNoticeDetailsVo);
}
public ResultBean setState(SysNoticesQuery query) {
ResultBean rb = ResultBean.fireFail();
List<String> sidsList = query.getSidsList();
sidsList.removeAll(Collections.singleton(null));
if (sidsList.isEmpty()) {
return rb.setMsg("请选择数据");
}
String state = query.getState();
for (String sid : sidsList) {
SysNotice sysNotice = fetchBySid(sid);
if (sysNotice == null) {
return rb.setMsg("操作的数据中包含不存在的数据,请刷新后操作");
}
sysNotice.setState(Integer.valueOf(state).intValue());
baseMapper.updateById(sysNotice);
}
return rb.success();
}
public ResultBean<List<SysNoticeListVo>> getLists() {
ResultBean<List<SysNoticeListVo>> rb = ResultBean.fireFail();
List<SysNoticeListVo> list = baseMapper.getLists();
list.removeAll(Collections.singleton(null));
return rb.success().setData(list);
}
public ResultBean delAllBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
delBySids(sids);
return rb.success().setMsg("删除成功");
}
public ResultBean setTopping(SysNoticessQuery query) {
ResultBean rb = ResultBean.fireFail();
List<String> sidsList = query.getSidsList();
sidsList.removeAll(Collections.singleton(null));
if (sidsList.isEmpty()) {
return rb.setMsg("请选择数据");
}
String topping = query.getTopping();
for (String sid : sidsList) {
SysNotice sysNotice = fetchBySid(sid);
if (sysNotice == null) {
return rb.setMsg("操作的数据中包含不存在的数据,请刷新后操作");
}
sysNotice.setTopping(topping);
baseMapper.updateById(sysNotice);
}
return rb.success();
}
}

17
anrui-riskcenter-ui/src/api/secondarysales/secondarysales.js

@ -26,6 +26,23 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 生成合同--初始化
getDetails: function(data) {
return request({
url: '/riskcenter/v1/LoanSecondarySalesCustomer/getDetails',
method: 'get',
params: data
})
},
// 生成合同--保存合同
save: function(data) {
return request({
url: '/riskcenter/v1/LoanSecondarySalesCustomer/saveOrUpdate',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
fetchBySid: function(data) {
return request({
url: '/riskcenter/v1/LoanSecondarySalesApply/details',

351
anrui-riskcenter-ui/src/views/secondarysales/relation/generatecontract.vue

@ -0,0 +1,351 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">生成</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">销售部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.createDept }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">销售日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.saleDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">销售价格</div>
<el-form-item><span class="addinputInfo">{{ formobj.salePrice }}</span></el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>客户信息<span style="color: red;margin-left: 10px">若客户信息不存在请先点击新增客户按钮完善客户信息</span></div>
<el-button type="primary" size="mini" @click="addCustomer">新增客户</el-button>
</div>
<el-row>
<el-col :span="8">
<div class="span-sty">新车主名称</div>
<el-form-item>
<el-select v-model="formobj.customerName" class="addinputInfo" filterable clearable placeholder="" @change="changeCustomer">
<el-option v-for="item in customer_list" :key="item.newCustomerSid" :label="item.vinOwner" :value="item.vinOwner"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">客户类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerType }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.mobile }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">证件类型</div>
<el-form-item>
<el-select class="addinputInfo" v-model="formobj.certificateTypeKey" filterable clearable placeholder="" @change="certificateTypeChange">
<el-option v-for="item in certificateType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">证件号码</div>
<el-form-item><el-input class="addinputInfo" style="width: 40%;" v-model="formobj.IDNumber" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">证件有效期</div>
<el-form-item><el-date-picker class="addinputInfo" v-model="formobj.endDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">证件地址</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.certificateAddress" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
<div class="title">二次销售车辆列表</div>
<el-table :key="tableKey" :data="formobj.loanSecondarySalesVehVoList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="vinNo" label="车架号" align="center" min-width="100" />
<el-table-column prop="vehMark" label="车牌号" align="center" min-width="100"/>
<el-table-column prop="vehType" label="车辆类型" align="center" min-width="120"/>
<el-table-column prop="modelName" label="车型" align="center" min-width="130"/>
</el-table>
</el-form>
</div>
</div>
<el-dialog :visible.sync="dialogVisible" width="70%">
<el-form :model="formobj" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>客户名称</span>
</el-col>
<el-col :span="8">
<el-form-item><el-input class="addinputw" v-model="formobj.customerName" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>客户类型</span>
</el-col>
<el-col :span="8">
<el-form-item>
<el-select v-model="formobj.customerTypeKey" filterable clearable placeholder="" @change="customerTypeChange">
<el-option v-for="item in customerType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>联系电话</span>
</el-col>
<el-col :span="8">
<el-form-item><el-input class="addinputw" v-model="formobj.mobile" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>证件类型</span>
</el-col>
<el-col :span="8">
<el-form-item>
<el-select v-model="formobj.certificateTypeKey" filterable clearable placeholder="" @change="certificateTypeChange">
<el-option v-for="item in certificateType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>证件号码</span>
</el-col>
<el-col :span="8">
<el-form-item><el-input class="addinputw" v-model="formobj.IDNumber" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>证件有效期</span>
</el-col>
<el-col :span="8">
<el-form-item><el-date-picker class="addinputw" v-model="formobj.endDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>证件地址</span>
</el-col>
<el-col :span="20">
<el-form-item><el-input class="addinputw" v-model="formobj.certificateAddress" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
</el-form>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="reject"> </el-button>
<el-button type="info " size="mini" @click="dialogVisible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/secondarysales/secondarysales'
import { pickCustomer, typeValues } from '@/api/Common/dictcommons'
export default {
data() {
return {
viewTitle: '',
viewState: 1,
submitdisabled: false,
dialogVisible: false,
tableKey: 0,
index: 0,
customer_list: [],
customerType_list: [],
certificateType_list: [],
formobj: {
mainSid: '',
createDept: '',
saleDate: '',
salePrice: '',
customerSid: '',
customerName: '',
customerType: '',
customerTypeKey: '',
mobile: '',
certificateTypeKey: '',
certificateType: '',
IDNumber: '',
endDate: '',
certificateAddress: '',
loanSecondarySalesVehVoList: [],
},
rules: {}
}
},
methods: {
init() {
typeValues({ type: 'certificateType' }).then((resp) => {
if (resp.success) {
this.certificateType_list = resp.data
}
})
typeValues({ type: 'customerType' }).then((resp) => {
if (resp.success) {
this.customerType_list = resp.data
}
})
pickCustomer({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.customer_list = res.data
}
})
},
showEdit(sid) {
this.viewTitle = '交回车辆二次销售合同信息补充'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init()
req.getDetails({ sid: sid }).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
addCustomer() {
this.dialogVisible = true
this.formobj.customerName = ''
this.formobj.customerSid = ''
this.formobj.customerType = ''
this.formobj.customerTypeKey = ''
this.formobj.mobile = ''
this.formobj.endDate = ''
this.formobj.IDNumber = ''
this.formobj.certificateType = ''
this.formobj.certificateTypeKey = ''
this.formobj.certificateAddress = ''
},
reject() {
this.dialogVisible = false
},
changeCustomer(value) {
const choosetItem = this.customer_list.filter((item) => item.vinOwner === value)
if (choosetItem.length > 0 && choosetItem !== null) {
this.formobj.customerSid = choosetItem[0].newCustomerSid
this.formobj.customerType = choosetItem[0].customerType
this.formobj.customerTypeKey = choosetItem[0].customerTypeKey
this.formobj.mobile = choosetItem[0].phoneNum
this.formobj.endDate = choosetItem[0].endDate
this.formobj.IDNumber = choosetItem[0].idNumber
this.formobj.certificateType = choosetItem[0].certificateType
this.formobj.certificateTypeKey = choosetItem[0].certificateTypeKey
this.formobj.certificateAddress = ''
} else {
this.formobj.customerSid = ''
this.formobj.customerType = ''
this.formobj.customerTypeKey = ''
this.formobj.mobile = ''
this.formobj.endDate = ''
this.formobj.IDNumber = ''
this.formobj.certificateType = ''
this.formobj.certificateTypeKey = ''
this.formobj.certificateAddress = ''
}
},
customerTypeChange(value) {
const choose = this.customerType_list.filter((item) => item.dictKey === value)
if (choose.length > 0 && choose !== null) {
this.formobj.customerType = choose[0].dictValue
} else {
this.formobj.customerType = ''
}
},
certificateTypeChange(value) {
const choose = this.certificateType_list.filter((item) => item.dictKey === value)
if (choose.length > 0 && choose !== null) {
this.formobj.certificateType = choose[0].dictValue
} else {
this.formobj.certificateType = ''
}
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.save(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
submit() {
// this.$refs['form_obj'].validate((valid) => {
// if (valid) {
// this.submitdisabled = true
// req.saveOrUpdate(this.formobj).then((res) => {
// if (res.success) {
// this.$message({ showClose: true, type: 'success', message: '' })
// this.handleReturn('true')
// } else {
// this.submitdisabled = false
// }
// }).catch(() => {
// this.submitdisabled = false
// })
// }
// })
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
mainSid: '',
createDept: '',
saleDate: '',
salePrice: '',
customerSid: '',
customerName: '',
customerType: '',
customerTypeKey: '',
mobile: '',
certificateTypeKey: '',
certificateType: '',
IDNumber: '',
endDate: '',
certificateAddress: '',
loanSecondarySalesVehVoList: [],
}
this.submitdisabled = false
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 100px !important;
}
.addinputInfo {
margin-left: 90px !important;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

30
anrui-riskcenter-ui/src/views/secondarysales/secondarysales.vue

@ -168,6 +168,8 @@
<secondarysalesAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<!--详情-->
<secondarysalesInfo v-show="viewState == 4" ref="divInfo" @doback="resetState" />
<!--生成合同补充合同信息-->
<generatecontract v-show="viewState == 5" ref="divContract" @doback="resetState" @reloadlist="getList"/>
<!-- 流程审批记录 -->
<el-dialog title="" :visible.sync="centerDialogVisible" width="78%" height="1%" :before-close="closeIt" center>
<iframe frameborder="0" id="iframe" style="width:100%;" scrolling="no" :src="this.centerDialogVisible === true ? url :''"></iframe>
@ -219,6 +221,7 @@ import req from '@/api/secondarysales/secondarysales'
import { getStorage } from '@/utils/auth'
import secondarysalesAdd from './secondarysalesAdd'
import secondarysalesInfo from './secondarysalesInfo'
import generatecontract from './relation/generatecontract'
export default {
name: 'SecondarySales',
@ -227,7 +230,8 @@ export default {
pageye,
ButtonBar,
secondarysalesAdd,
secondarysalesInfo
secondarysalesInfo,
generatecontract
},
data() {
return {
@ -243,6 +247,13 @@ export default {
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'primary',
size: 'small',
icon: '',
btnKey: 'toCreate',
btnLabel: '生成合同'
},
{
type: 'danger',
size: 'small',
@ -264,6 +275,7 @@ export default {
tableKey: 0,
list: [],
sids: [], // SIDs
multipleSelection: [],
FormLoading: false,
listLoading: false,
//
@ -361,6 +373,9 @@ export default {
case 'toAdd':
this.toAdd()
break
case 'toCreate':
this.toCreate()
break
case 'doDel':
this.doDel()
break
@ -374,6 +389,7 @@ export default {
// sid
handleSelectionChange(row) {
const aa = []
this.multipleSelection = row
row.forEach(element => {
aa.push(element.sid)
})
@ -442,6 +458,18 @@ export default {
this.carList.params.vehMark = ''
this.getCarList()
},
toCreate() {
if (this.sids.length === 1) {
if (this.multipleSelection[0].nodeState === '已办结') {
this.viewState = 5
this.$refs['divContract'].showEdit(this.sids[0])
} else {
this.$message({ showClose: true, type: 'error', message: '请选择状态为已办结的记录进行操作' })
}
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行操作' })
}
},
toEdit(row) {
this.viewState = 3
this.$refs['divAdd'].showEdit(row)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheck.vue

@ -123,7 +123,7 @@ import req from '@/api/bikerebate/bicyclerebatecheck'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons'
import { brandDown, getOrgSidByPath } from '@/api/cheliang/dictcommons'
import bicyclerebatecheckAdd from './bicyclerebatecheckAdd'
import bicyclerebatecheckInfo from './bicyclerebatecheckInfo'
import {getStorage} from "@/utils/auth";
@ -224,7 +224,7 @@ export default {
this.url = '/#/flow/flowRecordForBusiness?data=' + encodeURI((JSON.stringify(params)))
},
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

4
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue

@ -274,7 +274,7 @@ import Pagination from '@/components/pagination'
import ButtonBar from '@/components/ButtonBar'
import bicyclerebatecheck from './bicyclerebatecheck'
import bicyclerebatecheckAdd from './bicyclerebatecheckAdd'
import { brandDown, getPathSidByUserSid, typeValues } from '@/api/cheliang/dictcommons'
import { brandDown, getOrgSidByPath, typeValues } from '@/api/cheliang/dictcommons'
export default {
name: 'bicyclerebatetobechecked',
@ -389,7 +389,7 @@ export default {
this.rebateType_list = res.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

4
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatewithholding/bicyclerebatewithholding.vue

@ -96,7 +96,7 @@ import req from '@/api/bikerebate/bicyclerebatewithholding'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons'
import { brandDown, getOrgSidByPath } from '@/api/cheliang/dictcommons'
import bicyclerebatewithholdingAdd from './bicyclerebatewithholdingAdd'
import bicyclerebatewithholdingInfo from './bicyclerebatewithholdingInfo'
import { getStorage } from '@/utils/auth'
@ -202,7 +202,7 @@ export default {
this.url = '/#/flow/flowRecordForBusiness?data=' + encodeURI((JSON.stringify(params)))
},
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

4
anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagement.vue

@ -189,7 +189,7 @@ import req from '@/api/bikerebate/bicyclerebatemanagement'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { getPathSidByUserSid, typeValues, brandDown } from '@/api/cheliang/dictcommons'
import { getOrgSidByPath, typeValues, brandDown } from '@/api/cheliang/dictcommons'
import bicyclerebatemanagementAdd from './bicyclerebatemanagementAdd'
import bicyclerebatemanagementEdit from './bicyclerebatemanagementEdit'
import bicyclerebatemanagementInfo from './bicyclerebatemanagementInfo'
@ -295,7 +295,7 @@ export default {
this.rebateType_list = res.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

5
anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementByVehicle.vue

@ -109,7 +109,7 @@
<script>
import Pagination from '@/components/pagination'
import req from '@/api/bikerebate/bicyclerebatemanagement'
import { typeValues, brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons.js'
import { typeValues, brandDown, getOrgSidByPath } from '@/api/cheliang/dictcommons.js'
export default {
name: 'xuanzecheliang',
@ -176,8 +176,7 @@ export default {
this.getList()
},
getPathSid() {
const userSid = window.sessionStorage.getItem('userSid')
getPathSidByUserSid({ userSid: userSid }).then((res) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.useOrg = res.data
}

4
anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanfenpei/collectionrebateallot.vue

@ -110,7 +110,7 @@ import req from '@/api/manufacturerrebates/collectionrebateallot'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons'
import { brandDown, getOrgSidByPath } from '@/api/cheliang/dictcommons'
import collectionrebateallotByVehicleAdd from './collectionrebateallotByVehicleAdd'
import collectionrebateallotInfo from './collectionrebateallotInfo'
@ -168,7 +168,7 @@ export default {
},
methods: {
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: resp.data }).then((res) => {

4
anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanfenpei/relation/collectionrebateallotSelectVehicle.vue

@ -94,7 +94,7 @@
<script>
import Pagination from '@/components/pagination'
import req from '@/api/manufacturerrebates/collectionrebateallot'
import { brandDown, fetchByUseOrgSid, getPathSidByUserSid, typeValues } from '@/api/cheliang/dictcommons.js'
import { brandDown, fetchByUseOrgSid, getOrgSidByPath, typeValues } from '@/api/cheliang/dictcommons.js'
export default {
name: 'xianchechaxun',
@ -144,7 +144,7 @@ export default {
this.carColor_list = resp.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((res) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
brandDown({ useOrg: res.data }).then((resp) => {
if (resp.success) {

4
anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagement.vue

@ -132,7 +132,7 @@ import req from '@/api/manufacturerrebates/collectionrebatemanagement'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { getPathSidByUserSid, typeValues } from '@/api/cheliang/dictcommons'
import { getOrgSidByPath, typeValues } from '@/api/cheliang/dictcommons'
import collectionrebatemanagementAdd from './collectionrebatemanagementAdd'
import collectionrebatemanagementInfo from './collectionrebatemanagementInfo'
@ -199,7 +199,7 @@ export default {
this.collectionType_list = res.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
this.getList()

6
anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatechecked.vue

@ -118,10 +118,10 @@ import req from '@/api/manufacturerrebates/collectionrebatecheck'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons'
import { brandDown, getOrgSidByPath } from '@/api/cheliang/dictcommons'
import collectionrebatecheckedAdd from './collectionrebatecheckedAdd'
import collectionrebatecheckedInfo from './collectionrebatecheckedInfo'
import {getStorage} from "@/utils/auth";
import {getStorage} from '@/utils/auth'
export default {
name: 'huikuanfanlihedui',
@ -219,7 +219,7 @@ export default {
this.url = '/#/flow/flowRecordForBusiness?data=' + encodeURI((JSON.stringify(params)))
},
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

4
anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobechecked.vue

@ -146,7 +146,7 @@ import collectionrebatechecked from './collectionrebatechecked'
import collectionrebatecheckedAdd from './collectionrebatecheckedAdd'
import collectionrebatetobecheckedAdd from './collectionrebatetobecheckedAdd'
import collectionrebatetobecheckedInfo from './collectionrebatetobecheckedInfo'
import { getPathSidByUserSid, typeValues } from '@/api/cheliang/dictcommons'
import { getOrgSidByPath, typeValues } from '@/api/cheliang/dictcommons'
export default {
name: 'huikuanfanlidaihedui',
@ -232,7 +232,7 @@ export default {
this.collectionType_list = res.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
this.getList()

4
anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/collectionrebatewithholding.vue

@ -109,7 +109,7 @@ import req from '@/api/manufacturerrebates/collectionrebatewithholding'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons'
import { brandDown, getOrgSidByPath } from '@/api/cheliang/dictcommons'
import collectionrebatewithholdingAdd from './collectionrebatewithholdingAdd'
import collectionrebatewithholdingInfo from './collectionrebatewithholdingInfo'
import { getStorage } from '@/utils/auth'
@ -217,7 +217,7 @@ export default {
this.url = '/#/flow/flowRecordForBusiness?data=' + encodeURI((JSON.stringify(params)))
},
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

6
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatecheck/specialrebatecheck.vue

@ -123,10 +123,10 @@ import req from '@/api/specialrebate/specialrebatecheck'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons'
import { brandDown, getOrgSidByPath } from '@/api/cheliang/dictcommons'
import specialrebatecheckAdd from './specialrebatecheckAdd'
import specialrebatecheckInfo from './specialrebatecheckInfo'
import {getStorage} from "@/utils/auth";
import {getStorage} from '@/utils/auth'
export default {
name: 'specialrebatecheck',
@ -220,7 +220,7 @@ export default {
this.url = '/#/flow/flowRecordForBusiness?data=' + encodeURI((JSON.stringify(params)))
},
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

4
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatecheck/specialrebatetobechecked.vue

@ -246,7 +246,7 @@ import Pagination from '@/components/pagination'
import ButtonBar from '@/components/ButtonBar'
import specialrebatecheck from './specialrebatecheck'
import specialrebatecheckAdd from './specialrebatecheckAdd'
import { brandDown, getPathSidByUserSid, typeValues } from '@/api/cheliang/dictcommons'
import { brandDown, getOrgSidByPath, typeValues } from '@/api/cheliang/dictcommons'
export default {
name: 'specialrebatetobechecked',
@ -368,7 +368,7 @@ export default {
this.rebateType_list = res.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

4
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatedistribution/specialrebatedistribution.vue

@ -108,7 +108,7 @@ import req from '@/api/specialrebate/specialrebatedistribution'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons'
import { brandDown, getOrgSidByPath } from '@/api/cheliang/dictcommons'
import specialrebatedistributionAdd from './specialrebatedistributionAdd'
import specialrebatedistributionInfo from './specialrebatedistributionInfo'
import { getStorage } from '@/utils/auth'
@ -205,7 +205,7 @@ export default {
this.url = '/#/flow/flowRecordForBusiness?data=' + encodeURI((JSON.stringify(params)))
},
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

4
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatedistribution/specialrebatetobeallocated.vue

@ -116,7 +116,7 @@ import specialrebatedistribution from './specialrebatedistribution'
import specialrebatetobeallocatedAdd from './specialrebatetobeallocatedAdd'
import specialrebatedistributionAdd from './specialrebatedistributionAdd'
import specialrebatetobeallocatedByDisNum from './specialrebatetobeallocatedByDisNum'
import { brandDown, getPathSidByUserSid, typeValues } from '@/api/cheliang/dictcommons'
import { brandDown, getOrgSidByPath, typeValues } from '@/api/cheliang/dictcommons'
export default {
name: 'specialrebatetobeallocated',
@ -193,7 +193,7 @@ export default {
this.rebateType_list = res.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

4
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagement.vue

@ -150,7 +150,7 @@ import req from '@/api/specialrebate/specialrebatemanagement'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { getPathSidByUserSid, typeValues, brandDown } from '@/api/cheliang/dictcommons'
import { getOrgSidByPath, typeValues, brandDown } from '@/api/cheliang/dictcommons'
import specialrebatemanagementAdd from './specialrebatemanagementAdd'
import specialrebatemanagementInfo from './specialrebatemanagementInfo'
@ -245,7 +245,7 @@ export default {
this.rebateType_list = res.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

4
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatewithholding/specialrebatewithholding.vue

@ -99,7 +99,7 @@ import req from '@/api/specialrebate/specialrebatewithholding'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons'
import { brandDown, getOrgSidByPath } from '@/api/cheliang/dictcommons'
import specialrebatewithholdingAdd from './specialrebatewithholdingAdd'
import specialrebatewithholdingInfo from './specialrebatewithholdingInfo'
import { getStorage } from '@/utils/auth'
@ -207,7 +207,7 @@ export default {
this.url = '/#/flow/flowRecordForBusiness?data=' + encodeURI((JSON.stringify(params)))
},
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {

1
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/secondarysales/SecondarySalesAppVos.java

@ -90,6 +90,7 @@ public class SecondarySalesAppVos {
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty(value = "流程实例id")
@JsonProperty("procInsId")
private String procInstId;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;

14
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/secondarysales/SecondarySalesService.java

@ -133,7 +133,7 @@ public class SecondarySalesService {
if (secondarySalesCostAppVo != null) {
String bankSettleCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getBankSettleCost())) {
bankSettleCostAssumeDetails = bankSettleCostAssumeDetails + secondarySalesCostAppVo.getBankSettleCost() + "/";
bankSettleCostAssumeDetails = bankSettleCostAssumeDetails + secondarySalesCostAppVo.getBankSettleCost() + "";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getBankSettleCostAssume())) {
bankSettleCostAssumeDetails = bankSettleCostAssumeDetails + secondarySalesCostAppVo.getBankSettleCostAssume() + "承担";
@ -142,7 +142,7 @@ public class SecondarySalesService {
//车辆违章
String vehicleViolationCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getVehicleViolationCost())) {
vehicleViolationCostAssumeDetails = vehicleViolationCostAssumeDetails + secondarySalesCostAppVo.getVehicleViolationCost() + "/";
vehicleViolationCostAssumeDetails = vehicleViolationCostAssumeDetails + secondarySalesCostAppVo.getVehicleViolationCost() + "";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getVehicleViolationCostAssume())) {
vehicleViolationCostAssumeDetails = vehicleViolationCostAssumeDetails + secondarySalesCostAppVo.getVehicleViolationCostAssume() + "承担";
@ -151,7 +151,7 @@ public class SecondarySalesService {
//年检费
String inspectYearCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getInspectYearCost())) {
inspectYearCostAssumeDetails = inspectYearCostAssumeDetails + secondarySalesCostAppVo.getInspectYearCost() + "/";
inspectYearCostAssumeDetails = inspectYearCostAssumeDetails + secondarySalesCostAppVo.getInspectYearCost() + "";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getInspectYearCostAssume())) {
inspectYearCostAssumeDetails = inspectYearCostAssumeDetails + secondarySalesCostAppVo.getInspectYearCostAssume() + "承担";
@ -160,7 +160,7 @@ public class SecondarySalesService {
//保险费
String insureCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getInsureCost())) {
insureCostAssumeDetails = insureCostAssumeDetails + secondarySalesCostAppVo.getInsureCost() + "/";
insureCostAssumeDetails = insureCostAssumeDetails + secondarySalesCostAppVo.getInsureCost() + "";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getInsureCostAssume())) {
insureCostAssumeDetails = insureCostAssumeDetails + secondarySalesCostAppVo.getInsureCostAssume() + "承担";
@ -169,7 +169,7 @@ public class SecondarySalesService {
//过户费
String ownershipCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getOwnershipCost())) {
ownershipCostAssumeDetails = ownershipCostAssumeDetails + secondarySalesCostAppVo.getOwnershipCost() + "/";
ownershipCostAssumeDetails = ownershipCostAssumeDetails + secondarySalesCostAppVo.getOwnershipCost() + "";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getOwnershipCostAssume())) {
ownershipCostAssumeDetails = ownershipCostAssumeDetails + secondarySalesCostAppVo.getOwnershipCostAssume() + "承担";
@ -178,7 +178,7 @@ public class SecondarySalesService {
//停车费
String stopCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getStopCost())) {
stopCostAssumeDetails = stopCostAssumeDetails + secondarySalesCostAppVo.getStopCost() + "/";
stopCostAssumeDetails = stopCostAssumeDetails + secondarySalesCostAppVo.getStopCost() + "";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getStopCostAssume())) {
stopCostAssumeDetails = stopCostAssumeDetails + secondarySalesCostAppVo.getStopCostAssume() + "承担";
@ -187,7 +187,7 @@ public class SecondarySalesService {
//其他费用
String otherCostAssumeDetails = "";
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getOtherCost())) {
otherCostAssumeDetails = otherCostAssumeDetails + secondarySalesCostAppVo.getOtherCost() + "/";
otherCostAssumeDetails = otherCostAssumeDetails + secondarySalesCostAppVo.getOtherCost() + "";
}
if (StringUtils.isNotBlank(secondarySalesCostAppVo.getOtherCostAssume())) {
otherCostAssumeDetails = otherCostAssumeDetails + secondarySalesCostAppVo.getOtherCostAssume() + "承担";

28
doc/databases/portal_tables.sql

@ -819,3 +819,31 @@ CREATE TABLE `sys_report_parameter`
AUTO_INCREMENT = 18
DEFAULT CHARSET = utf8 COMMENT ='统计参数表';
DROP TABLE IF EXISTS `sys_notice`;
CREATE TABLE `sys_notice`
(
`id` int(11) NOT NULL AUTO_INCREMENT,
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(11) NOT NULL DEFAULT '0' COMMENT '记录版本,锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
`modifyTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录最后修改时间',
`isEnable` int(11) NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用',
`state` int(11) DEFAULT '1' COMMENT '状态',
`isDelete` int(11) DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注信息',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建者',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '更新者',
`title` text DEFAULT NULL COMMENT '标题',
`validityDate` varchar(500) DEFAULT NULL COMMENT '有效期至',
`type` varchar(500) DEFAULT NULL COMMENT '类别',
`typeKey` varchar(500) DEFAULT NULL COMMENT '类别Key',
`topping` varchar(500) DEFAULT NULL COMMENT '是否置顶',
`content` text DEFAULT NULL COMMENT '内容',
`files` text DEFAULT NULL COMMENT '附件',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 18
DEFAULT CHARSET = utf8 COMMENT ='通知公告';

Loading…
Cancel
Save