Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 2 years ago
parent
commit
0f453d401c
  1. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicle.java
  2. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleDto.java
  3. 21
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleQuery.java
  4. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleSelectVo.java
  5. 6
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java
  6. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehmodelconfig/BaseVehmodelConfigVos.java
  7. 40
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderQuery.java
  8. 46
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
  9. 117
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java
  10. 368
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  11. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java
  12. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehmodelconfig/BaseVehmodelConfigMapper.xml
  13. 29
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyService.java
  14. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderRest.java
  15. 56
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderService.java
  16. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java
  17. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java
  18. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.java
  19. 149
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml
  20. 68
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredService.java
  21. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.java
  22. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml
  23. 7
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java
  24. 68
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  25. 6
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finfundscarriedforwardveh/FinFundsCarriedForwardVeh.java
  26. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectReceivablesDetailedWCKCLRKVo.java
  27. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailed.java
  28. 43
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  29. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyMapper.java
  30. 21
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyMapper.xml
  31. 178
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyService.java
  32. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardveh/FinFundsCarriedForwardVehMapper.java
  33. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardveh/FinFundsCarriedForwardVehMapper.xml
  34. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardveh/FinFundsCarriedForwardVehService.java
  35. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java
  36. 454
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml
  37. 12
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java
  38. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.java
  39. 98
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.xml
  40. 11
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java
  41. 60
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/OtherReceivableBillService.java
  42. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/data_model.json
  43. 6
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowRest.java
  44. 9
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appsubsetversion/AppSubsetVersionFeign.java
  45. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appsubsetversion/AppSubsetVersionFeignFallback.java
  46. 13
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/appsubsetversion/AppSubsetVersionRest.java
  47. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinotherPolicy/LoanFinOtherPolicyFeign.java
  48. 18
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinotherPolicy/OtherPolicyVo.java
  49. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyFeign.java
  50. 18
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/PolicyVo.java
  51. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpreloancreditapply/LoanPreloanCreditApply.java
  52. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpreloancreditapply/LoanPreloanCreditApplyDetailsVo.java
  53. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpreloancreditapply/LoanPreloanCreditApplyDto.java
  54. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpreloancreditapply/LoanPreloanCreditApplyQuery.java
  55. 18
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpreloancreditapply/LoanPreloanCreditApplyVo.java
  56. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutions.java
  57. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeign.java
  58. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeignFallback.java
  59. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/app/SolutionsDto.java
  60. 1
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplate.java
  61. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateDetailsVo.java
  62. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateDto.java
  63. 10
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateQuery.java
  64. 156
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateSolutionsDto.java
  65. 146
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateSolutionsVo.java
  66. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateVo.java
  67. 10
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplateinstall/LoanTemplateInstallVo.java
  68. 23
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplatetrailer/LoanTemplateTrailerVo.java
  69. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyMapper.java
  70. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyMapper.xml
  71. 8
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyRest.java
  72. 21
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyService.java
  73. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyMapper.java
  74. 9
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyMapper.xml
  75. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyRest.java
  76. 8
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyService.java
  77. 33
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpreloancreditapply/LoanPreloanCreditApplyService.java
  78. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsMapper.java
  79. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsMapper.xml
  80. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsRest.java
  81. 535
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java
  82. 8
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.xml
  83. 55
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java
  84. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java
  85. 5
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java
  86. 34
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CarModelVo.java
  87. 12
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java
  88. 19
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewDetailsQuery.java
  89. 55
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewDetailsVo.java
  90. 51
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewFeign.java
  91. 42
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewFeignFallback.java
  92. 19
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewQuery.java
  93. 37
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewVo.java
  94. 15
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/IdentityDetailsVo.java
  95. 26
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/ShareholderDetailsVo.java
  96. 7
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java
  97. 4
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java
  98. 5
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java
  99. 25
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java
  100. 51
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/creditreview/CreditReviewRest.java

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicle.java

@ -183,4 +183,6 @@ public class BaseVehicle extends BaseEntity {
private String vehMark;
@ApiModelProperty(value = "公司入库日期")
private String orgPriceDate;
@ApiModelProperty(value = "组织全路径")
private String orgSidPath;
}

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleDto.java

@ -25,6 +25,8 @@ import javax.validation.constraints.NotBlank;
@Data
public class BaseVehicleDto implements Dto {
@ApiModelProperty(value = "创建人sid")
private String createBySid;
@ApiModelProperty(value = "车辆型号")
private String vehMark;
@ApiModelProperty("物料sid(陕汽必须的字段)")
@ -161,4 +163,7 @@ public class BaseVehicleDto implements Dto {
@ApiModelProperty("调出分公司sid")
private String callOutOrgSid; // 调出分公司sid
@ApiModelProperty(value = "组织全路径")
private String orgSidPath;
}

21
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleQuery.java

@ -24,8 +24,14 @@ import lombok.Data;
public class BaseVehicleQuery implements Query {
private static final long serialVersionUID = -2859517555985858222L;
@ApiModelProperty(value = "创建人sid")
private String userSid;
@ApiModelProperty(value = "分公司sid")
private String orgSid;
@ApiModelProperty(value = "分公司名称")
private String orgName;
@ApiModelProperty(value = "采购系统")
private String purchaseSystemName;
@ApiModelProperty(value = "创建组织sid")
private String createOrgSid;
@ApiModelProperty(value = "组织全路径")
@ -63,7 +69,22 @@ public class BaseVehicleQuery implements Query {
private String solidStartDate;
@ApiModelProperty(value = "排产订单编号")
private String orderingNo;
@ApiModelProperty(value = "厂家库龄")
private String libraryAge;
@ApiModelProperty(value = "公司库龄")
private String orgLibraryAge;
@ApiModelProperty(value = "买断库龄")
private String settlementLibraryAge;
@ApiModelProperty(value = "其他配置1")
private String otherConfigOne;
@ApiModelProperty(value = "其他配置2")
private String otherConfigTwo;
@ApiModelProperty(value = "其他配置3")
private String otherConfigThree;
private String menuUrl;
private String menuSid;
/***************车型查询**********************/

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleSelectVo.java

@ -156,4 +156,6 @@ public class BaseVehicleSelectVo implements Vo {
private String orgCode;
@ApiModelProperty(value = "公司入库日期")
private String orgPriceDate;
@ApiModelProperty(value = "组织全路径")
private String orgSidPath;
}

6
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java

@ -43,6 +43,10 @@ public class BaseVehicleStateEnum {
YWJS_STATE_1("601", "业务完成"),
YWJS_STATE_2("602", "业务终止"),
FIN_STATE_JQ("1", "交清"),
FIN_STATE_WJQ("0", "未交清"),
;
private String stateKey;
@ -65,6 +69,8 @@ public class BaseVehicleStateEnum {
JC_PASS("4", "交车审核通过"),
BUS_STOP("5", "业务终止"),
DDBA_SAVEVIN("6", "录入车架号"),
FIN_RQ("7", "认款完成"),
FIN_WRQ("8", "认款未完成"),
;

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehmodelconfig/BaseVehmodelConfigVos.java

@ -44,4 +44,6 @@ public class BaseVehmodelConfigVos implements Vo {
private String modelConfigSid;
@ApiModelProperty("更多配置")
private String otherConfig;
private String modelName;
}

40
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderQuery.java

@ -50,34 +50,36 @@ public class BusVehicleOrderQuery implements Query {
@ApiModelProperty("userSid")
private String userSid;
@ApiModelProperty("业务员sid")
private String staffSid;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("订单编号")
private String orderNo;
@ApiModelProperty("订单类型key")
private String orderTypeKey;
@ApiModelProperty("当前组织机构sid")
private String orgPath;
@ApiModelProperty("排产申请编号")
private String applicationCode;
@ApiModelProperty("订单状态")
private String orderStatus;
@ApiModelProperty("开始日期")
private String startDate;
@ApiModelProperty("结束日期")
private String endDate;
@ApiModelProperty("车型")
@ApiModelProperty("订单开始日期")
private String orderStartDate;
@ApiModelProperty("订单结束日期")
private String orderEndDate;
@ApiModelProperty("车型小名")
private String modelName;
@ApiModelProperty("排产申请编号")
private String applicationCode;
@ApiModelProperty("当前组织机构sid")
private String orgPath;
@ApiModelProperty("预计上线开始日期")
private String yjsxStartDate;
@ApiModelProperty("预计上线结束日期")
private String yjsxEndDate;
@ApiModelProperty("上线开始日期")
private String sxStartDate;
@ApiModelProperty("上线结束日期")
private String sxEndDate;
@ApiModelProperty("下线开始日期")
private String xxStartDate;
@ApiModelProperty("下线结束日期")
private String xxEndDate;
}

46
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml

@ -12,8 +12,27 @@
</select>
<!--分页列表-->
<select id="pagerList" resultType="com.yxt.anrui.base.api.basevehicle.BaseVehicleVo">
SELECT distinct
so.orgSidPath,
SELECT DISTINCT
CASE
WHEN bv.manPurOrderTypeValue = "外采"
THEN 0
WHEN bv.solidDate IS NOT NULL
THEN DATEDIFF(bv.priceDate, bv.solidDate)
WHEN bv.solidDate IS NULL
THEN DATEDIFF(bv.priceDate, NOW())
END AS libraryAge,
CASE
WHEN bv.salesDate IS NOT NULL
THEN DATEDIFF(bv.departureDate, bv.salesDate)
WHEN bv.salesDate IS NULL
THEN DATEDIFF(bv.departureDate, NOW())
END AS orgLibraryAge,
CASE
WHEN bv.salesDate IS NOT NULL
THEN DATEDIFF(bv.solidDate, bv.salesDate)
WHEN bv.salesDate IS NULL
THEN DATEDIFF(bv.solidDate, NOW())
END AS settlementLibraryAge,
bv.sid,
bv.modelSid,
bv.engineNo,
@ -100,16 +119,23 @@
bvcf.carModel,
bvm.modelName AS modelNameQuan,
bvm.`brandName` AS vehModelBrandName,
(select bbc.guidedPrice from base_vehmodel_config bbc where bbc.modelSid = bv.modelSid
and bbc.useOrgSid =bv.useOrgSid
AND bmc.sid=bbc.configurationItemsSid ) as guidedPrice
(SELECT
bbc.guidedPrice
FROM
base_vehmodel_config bbc
WHERE bbc.modelSid = bv.modelSid
AND bbc.useOrgSid = bv.useOrgSid
AND bmc.sid = bbc.configurationItemsSid) AS guidedPrice
FROM
base_vehicle bv
LEFT JOIN base_vehicle_model bvm ON bv.`modelSid` = bvm.`sid`
LEFT JOIN base_model_config bmc ON bv.`modelConfigSid` = bmc.`sid`
LEFT JOIN base_vehicle_certificate bvcf ON bv.`sid` = bvcf.`vehicleSid`
LEFT JOIN base_vehmodel_config bvc ON bvm.`sid` = bvc.`modelSid`
LEFT JOIN anrui_portal.sys_organization so ON bv.createOrgSid = so.sid
LEFT JOIN base_vehicle_model bvm
ON bv.`modelSid` = bvm.`sid`
LEFT JOIN base_model_config bmc
ON bv.`modelConfigSid` = bmc.`sid`
LEFT JOIN base_vehicle_certificate bvcf
ON bv.`sid` = bvcf.`vehicleSid`
LEFT JOIN base_vehmodel_config bvc
ON bvm.`sid` = bvc.`modelSid`
<where>
${ew.sqlSegment}
</where>

117
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java

@ -45,6 +45,7 @@ import com.yxt.anrui.base.biz.busvehicleinquiry.BusVehicleInquiryService;
import com.yxt.anrui.base.common.enums.CertificState;
import com.yxt.anrui.base.common.enums.ManPurOrderType;
import com.yxt.anrui.base.common.enums.OperVehicleState;
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationVo;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect;
@ -145,123 +146,13 @@ public class BaseVehicleRest implements BaseVehicleFeign {
@Autowired
private ScmWarehouseFeign scmWarehouseFeign;
@Autowired
private BaseTrailerService baseTrailerService;
@Autowired
private BaseVehinstallService baseVehinstallService;
@Autowired
private BaseTrailerModelService baseTrailerModelService;
@Autowired
private BaseVehinstallmodelService baseVehinstallmodelService;
@Autowired
private BasePurchaseSystemService basePurchaseSystemService;
@Override
public ResultBean<PagerVo<BaseVehicleVo>> pagerList(@RequestBody PagerQuery<BaseVehicleQuery> pagerQuery) {
ResultBean<PagerVo<BaseVehicleVo>> rb = ResultBean.fireFail();
IPage<BaseVehicleVo> page = baseVehicleService.pagerList(pagerQuery);
List<BaseVehicleVo> records = page.getRecords();
for (BaseVehicleVo record : records) {
String manPurOrderTypeValue = record.getManPurOrderTypeValue();
if (("外采").equals(manPurOrderTypeValue)) {
record.setLibraryAge(Long.parseLong("0"));
} else {
//厂家库龄
if (record.getPriceDate() != null) {
//厂家入库日期
Date priceDate = record.getPriceDate();
//买断日期
Date solidDate = record.getSolidDate();
if (solidDate != null) {
int i = priceDate.compareTo(solidDate);
long betweenDay = DateUtil.between(priceDate, solidDate, DateUnit.DAY);
record.setLibraryAge(betweenDay * i * -1);
} else {
String today = DateUtil.today();
DateTime currentDate = DateUtil.parse(today);
int i = priceDate.compareTo(currentDate);
long betweenDay = DateUtil.between(priceDate, currentDate, DateUnit.DAY);
record.setLibraryAge(betweenDay * i * -1);
}
}
}
//公司库龄
if (record.getDepartureDate() != null) {
//发车日期
Date departureDate = record.getDepartureDate();
//销售日期
Date salesDate = record.getSalesDate();
if (salesDate != null) {
int i = departureDate.compareTo(salesDate);
long betweenDay = DateUtil.between(departureDate, salesDate, DateUnit.DAY);
record.setOrgLibraryAge(betweenDay * i * -1);
} else {
String today = DateUtil.today();
DateTime currentDate = DateUtil.parse(today);
int i = departureDate.compareTo(currentDate);
long betweenDay = DateUtil.between(departureDate, currentDate, DateUnit.DAY);
record.setOrgLibraryAge(betweenDay * i * -1);
}
}
//买断库龄
if (record.getSolidDate() != null) {
//买断日期
Date solidDate = record.getSolidDate();
//销售日期
Date salesDate = record.getSalesDate();
if (salesDate != null) {
int i = solidDate.compareTo(salesDate);
long betweenDay = DateUtil.between(solidDate, salesDate, DateUnit.DAY);
record.setSettlementLibraryAge(betweenDay * i * -1);
} else {
String today = DateUtil.today();
DateTime currentDate = DateUtil.parse(today);
int i = solidDate.compareTo(currentDate);
long betweenDay = DateUtil.between(solidDate, currentDate, DateUnit.DAY);
record.setSettlementLibraryAge(betweenDay * i * -1);
}
}
String vinNo = record.getVinNo();
if (StringUtils.isNotBlank(vinNo)) {
record.setLastVinNo(vinNo.substring(vinNo.length() - 8));
}
String modelSid = record.getModelSid();
String modelConfigSid = record.getModelConfigSid();
String createOrgSid = record.getCreateOrgSid();
BaseVehmodelVo data = baseVehmodelConfigService.selectOne(modelSid, modelConfigSid, createOrgSid).getData();
record.setManufactorSettlementPrice(data.getManufactorSettlementPrice());
String sid = record.getSid();
BaseTrailerDetailsVo baseTrailerDetailsVo = baseTrailerService.fetchByVehSid(sid);
BaseVehinstallDetailsVo baseVehinstallDetailsVo = baseVehinstallService.fetchByVinNoAndOrgSid(vinNo, createOrgSid);
if (baseTrailerDetailsVo != null) {
BaseTrailerModel baseTrailerModel = baseTrailerModelService.fetchBySid(baseTrailerDetailsVo.getTrailerModelSid());
String appearanceSizeLong = baseTrailerModel.getAppearanceSizeLong();
String appearanceSizeWide = baseTrailerModel.getAppearanceSizeWide();
String appearanceSizeHigh = baseTrailerModel.getAppearanceSizeHigh();
String appearanceSizeTotalHigh = baseTrailerModel.getAppearanceSizeTotalHigh();
String trailerTypeValue = baseTrailerModel.getTrailerTypeValue();
StringBuilder trailerModel = new StringBuilder();
trailerModel.append(trailerTypeValue).append("(").append("长").append(appearanceSizeLong).append("mm,").append("宽").append(appearanceSizeWide).append("mm,").append("高").append(appearanceSizeHigh).append("mm,").append("总高").append(appearanceSizeTotalHigh).append("mm").append(")");
record.setSzOrGCSid(baseTrailerDetailsVo.getSid());
record.setSzOrGC("挂车");
record.setTrailerOrInstall(trailerModel.toString());
record.setTrailerOrInstallDealPrice(baseTrailerModel.getSaleGuidancePrice());
} else if (baseVehinstallDetailsVo != null) {
BaseVehinstallmodel baseVehinstallmodel = baseVehinstallmodelService.fetchBySid(baseVehinstallDetailsVo.getMainSid());
String wk_long = baseVehinstallmodel.getWk_long();
String wk_wide = baseVehinstallmodel.getWk_wide();
String wk_high = baseVehinstallmodel.getWk_high();
String installName = baseVehinstallmodel.getInstallNameValue();
StringBuilder vehinstallmodel = new StringBuilder();
vehinstallmodel.append(installName).append("(").append("长").append(wk_long).append("mm,").append("宽").append(wk_wide).append("mm,").append("高").append(wk_high).append("mm").append(")");
record.setSzOrGCSid(baseVehinstallDetailsVo.getSid());
record.setSzOrGC("上装");
record.setTrailerOrInstall(vehinstallmodel.toString());
record.setTrailerOrInstallDealPrice(baseVehinstallDetailsVo.getGuidePrice());
}
}
PagerVo<BaseVehicleVo> pv = new PagerVo<>();
PagerVo<BaseVehicleVo> pv1 = PagerUtil.pageToVo(page, pv);
return rb.success().setData(pv1);
ResultBean rb = ResultBean.fireFail();
PagerVo<BaseVehicleVo> pv = baseVehicleService.listPageVo(pagerQuery);
return rb.success().setData(pv);
}
@Override

368
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java

@ -16,6 +16,7 @@ import com.yxt.anrui.base.api.basepurchasesystem.BasePurchSystemVo;
import com.yxt.anrui.base.api.basetrailer.BaseTrailerDetailsVo;
import com.yxt.anrui.base.api.basetrailer.TrailerVo;
import com.yxt.anrui.base.api.basetrailer.TraliveredVo;
import com.yxt.anrui.base.api.basetrailermodel.BaseTrailerModel;
import com.yxt.anrui.base.api.basevehicle.*;
import com.yxt.anrui.base.api.basevehicle.app.AppBaseVehicleOrderVo;
import com.yxt.anrui.base.api.basevehicle.app.GetVinQuery;
@ -24,17 +25,21 @@ import com.yxt.anrui.base.api.basevehicle.app.InputVinListVo;
import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificate;
import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificateVo;
import com.yxt.anrui.base.api.basevehinstall.BaseVehinstall;
import com.yxt.anrui.base.api.basevehinstall.BaseVehinstallDetailsVo;
import com.yxt.anrui.base.api.basevehinstallmodel.BaseVehinstallmodel;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelVo;
import com.yxt.anrui.base.api.commonappendix.CommonAppendix;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo;
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum;
import com.yxt.anrui.base.biz.basemodelconfig.BaseModelConfigService;
import com.yxt.anrui.base.biz.basetrailer.BaseTrailerService;
import com.yxt.anrui.base.biz.basetrailermodel.BaseTrailerModelService;
import com.yxt.anrui.base.biz.basevehicleappendix.BaseVehicleAppendixService;
import com.yxt.anrui.base.biz.basevehiclecertificate.BaseVehicleCertificateService;
import com.yxt.anrui.base.biz.basevehiclemodelappendix.BaseVehicleModelAppendixService;
import com.yxt.anrui.base.biz.basevehicletempstate.BaseVehicleTempstateService;
import com.yxt.anrui.base.biz.basevehinstall.BaseVehinstallService;
import com.yxt.anrui.base.biz.basevehinstallmodel.BaseVehinstallmodelService;
import com.yxt.anrui.base.biz.basevehmodelconfig.BaseVehmodelConfigService;
import com.yxt.anrui.base.biz.commonappendix.CommonAppendixService;
import com.yxt.anrui.base.common.enums.CertificState;
@ -44,6 +49,7 @@ import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVe
import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVehicleApplyFeign;
import com.yxt.anrui.buscenter.api.busmaindeposit.pc.PcBusMainDepositFeign;
import com.yxt.anrui.buscenter.api.busmaindeposit.pc.PcBusMainDepositVehicleQuery;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo;
@ -51,14 +57,19 @@ import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempDto;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplication;
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationQuery;
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationVo;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleDetailsVo;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleFeign;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleVo;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubVersionVo;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.scm.api.scmcollectionrebateveh.ScmCollectionRebateVehDetailsVo;
@ -144,18 +155,10 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
private FinUncollectedReceivablesDetailedFeign finUncollectedReceivablesDetailedFeign;
@Autowired
private BusArrearsCarryVehicleApplyFeign busArrearsCarryVehicleApplyFeign;
/**
* 车辆信息分页列表
*
* @param pagerQuery 查询条件
* @return
*/
public IPage<BaseVehicleVo> pagerList(PagerQuery<BaseVehicleQuery> pagerQuery) {
IPage<BaseVehicleQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<BaseVehicleVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pagerList(page, qw);
}
@Autowired
private BaseTrailerModelService baseTrailerModelService;
@Autowired
private BaseVehinstallmodelService baseVehinstallmodelService;
public IPage<BaseVehicleVo> pagerListByOrgSidPath(PagerQuery<BaseVehicleQuery> pq) {
IPage<BaseVehicleQuery> page = PagerUtil.queryToPage(pq);
@ -763,7 +766,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
* @param pagerQuery
* @return
*/
public IPage<AppCurrentCarModelByPageListVo> getAppCurrentCarByPageList(PagerQuery<AppCurrentCarByPageListQuery> pagerQuery) {
public IPage<AppCurrentCarModelByPageListVo> getAppCurrentCarByPageList
(PagerQuery<AppCurrentCarByPageListQuery> pagerQuery) {
IPage<AppCurrentCarByPageListQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<AppCurrentCarModelByPageListVo> qw = CurrentCarQueryWrapper(pagerQuery.getParams());
IPage<AppCurrentCarModelByPageListVo> iPage = baseMapper.getAppCurrentCarByPageList(page, qw);
@ -793,7 +797,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
* @param pagerQuery 查询条件
* @return
*/
private QueryWrapper<AppCurrentCarModelByPageListVo> CurrentCarQueryWrapper(AppCurrentCarByPageListQuery pagerQuery) {
private QueryWrapper<AppCurrentCarModelByPageListVo> CurrentCarQueryWrapper(AppCurrentCarByPageListQuery
pagerQuery) {
QueryWrapper<AppCurrentCarModelByPageListVo> qw = new QueryWrapper<>();
if (pagerQuery != null) {
qw.eq("bv.vehicleState", "0002");
@ -992,7 +997,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
* @param configSid
* @return
*/
public AppCurrentCarDetailConfigVo getAppCurrentCarDetailConfigVo(String modelSid, String configSid, String userSid, String useOrgSid, String orgPath) {
public AppCurrentCarDetailConfigVo getAppCurrentCarDetailConfigVo(String modelSid, String configSid, String
userSid, String useOrgSid, String orgPath) {
String useOrg = "";
if (StringUtils.isNotBlank(useOrgSid)) {
useOrg = useOrgSid;
@ -1293,7 +1299,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
* @param configSid
* @return
*/
public List<AppVinsDetailsVo> getVins(String modelSid, String configSid, String userSid, String orgPath, String name) {
public List<AppVinsDetailsVo> getVins(String modelSid, String configSid, String userSid, String orgPath, String
name) {
if (StringUtils.isBlank(orgPath)) {
orgPath = sysStaffOrgFeign.getPathSidByUserSid(userSid).getData();
} else {
@ -1339,7 +1346,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
* @param pagerQuery
* @return
*/
public IPage<BaseExistingCarListPageVo> selExistingCarPageList(PagerQuery<BaseExistingCarPageQuery> pagerQuery) {
public IPage<BaseExistingCarListPageVo> selExistingCarPageList
(PagerQuery<BaseExistingCarPageQuery> pagerQuery) {
String userSid = pagerQuery.getParams().getUserSid();
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
if (data != null) {
@ -2244,7 +2252,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
return rb.success().setData(orderVoList);
}
public ResultBean<List<AppBaseVehicleOrderVo>> selectAppListOne(String modelSid, String configSid, String orgSid, List<String> list) {
public ResultBean<List<AppBaseVehicleOrderVo>> selectAppListOne(String modelSid, String configSid, String
orgSid, List<String> list) {
ResultBean<List<AppBaseVehicleOrderVo>> rb = ResultBean.fireFail();
List<AppBaseVehicleOrderVo> orderVoList = new ArrayList<>();
orderVoList = baseMapper.selectAppListOne(modelSid, configSid, orgSid, VehicleState.LockEnum.LOCK.getCode(), list);
@ -2306,7 +2315,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
return rb.success().setData(list);
}
public ResultBean<List<AppScmInventoryRecordsVo>> selectInventoryRecords(AppScmInventoryRecordsQuery appScmInventoryRecordsQuery) {
public ResultBean<List<AppScmInventoryRecordsVo>> selectInventoryRecords(AppScmInventoryRecordsQuery
appScmInventoryRecordsQuery) {
ResultBean rb = ResultBean.fireFail();
// String userOrgSid = sysStaffOrgFeign.getPathSidByUserSid(userSid).getData();
String orgPath = appScmInventoryRecordsQuery.getOrgPath();
@ -2317,7 +2327,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
return rb.success().setData(list);
}
public ResultBean<List<AppScmInventoryRecordsVo>> selectPatrolinspections(AppScmInventoryRecordsQuery appScmInventoryRecordsQuery) {
public ResultBean<List<AppScmInventoryRecordsVo>> selectPatrolinspections(AppScmInventoryRecordsQuery
appScmInventoryRecordsQuery) {
ResultBean rb = ResultBean.fireFail();
// String userOrgSid = sysStaffOrgFeign.getPathSidByUserSid(userSid).getData();
//条件:本分公司、非删除、库存或采购退库中或调入或调出中
@ -2473,7 +2484,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
return rb.success().setData(vo);
}
public IPage<AppScmWarehouseVinVo> getPcVinByWarehouseSid(PagerQuery<VinByWarehouseQuery> pagerQuery, List<String> vinList) {
public IPage<AppScmWarehouseVinVo> getPcVinByWarehouseSid
(PagerQuery<VinByWarehouseQuery> pagerQuery, List<String> vinList) {
IPage<VinByWarehouseQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<AppScmWarehouseVinVo> qw = new QueryWrapper();
VinByWarehouseQuery params = pagerQuery.getParams();
@ -3188,14 +3200,16 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
return baseMapper.vehicleRebatePageList(page, qw);
}
public PagerVo<BaseSpecialRebateDisGetVehVo> specialRebateDisGetVeh(PagerQuery<BaseSpecialRebateDisGetVehQuery> pq) {
public PagerVo<BaseSpecialRebateDisGetVehVo> specialRebateDisGetVeh
(PagerQuery<BaseSpecialRebateDisGetVehQuery> pq) {
IPage<BaseSpecialRebateDisGetVehVo> page = specialRebateDisGetVehPageList(pq);
PagerVo<BaseSpecialRebateDisGetVehVo> pv = new PagerVo<>();
PagerVo<BaseSpecialRebateDisGetVehVo> pv1 = PagerUtil.pageToVo(page, pv);
return pv1;
}
private IPage<BaseSpecialRebateDisGetVehVo> specialRebateDisGetVehPageList(PagerQuery<BaseSpecialRebateDisGetVehQuery> pq) {
private IPage<BaseSpecialRebateDisGetVehVo> specialRebateDisGetVehPageList
(PagerQuery<BaseSpecialRebateDisGetVehQuery> pq) {
IPage<BaseSpecialRebateDisGetVehVo> page = PagerUtil.queryToPage(pq);
QueryWrapper<BaseVehicle> qw = new QueryWrapper<>();
BaseSpecialRebateDisGetVehQuery params = pq.getParams();
@ -3495,7 +3509,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
baseMapper.updateConAndCostPrice(witPinMoney, vinNo, callInOrgSid);
}
public PagerVo<BaseDiscountpackageGetVehVo> baseDisCountPackageGetVeh(PagerQuery<BaseDiscountpackageGetVehQuery> pq) {
public PagerVo<BaseDiscountpackageGetVehVo> baseDisCountPackageGetVeh
(PagerQuery<BaseDiscountpackageGetVehQuery> pq) {
IPage<BaseVehicle> page = PagerUtil.queryToPage(pq);
BaseDiscountpackageGetVehQuery params = pq.getParams();
QueryWrapper<BaseVehicle> qw = new QueryWrapper<>();
@ -3966,4 +3981,309 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
}
return baseMapper.vehicleQKKPPageList(page, qw);
}
public PagerVo<BaseVehicleVo> listPageVo(PagerQuery<BaseVehicleQuery> pq) {
BaseVehicleQuery pagerQuery = pq.getParams();
QueryWrapper<BaseVehicleVo> qw = new QueryWrapper<>();
//========================================数据授权开始
if (StringUtils.isNotBlank(pagerQuery.getMenuUrl()) || StringUtils.isNotBlank(pagerQuery.getMenuSid())) {
//=======================
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(pagerQuery.getOrgSidPath());
privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl());
privilegeQuery.setMenuSid(pagerQuery.getMenuSid());
privilegeQuery.setUserSid(pagerQuery.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = pagerQuery.getOrgSidPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("bv.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("bv.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("bv.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("bv.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("bv.createBySid", pagerQuery.getUserSid());
} else {
PagerVo<BaseVehicleVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<BaseVehicleVo> p = new PagerVo<>();
return p;
}
}
qw.eq("bv.isDelete", "0");
if (StringUtils.isNotBlank(pagerQuery.getOrgName())){
qw.like("bv.createOrgName",pagerQuery.getOrgName());
}
if (StringUtils.isNotBlank(pagerQuery.getPurchaseSystemName())){
qw.like("bv.purchaseSystemName",pagerQuery.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(pagerQuery.getOrgSid())) {
qw.eq("bv.createOrgSid", pagerQuery.getOrgSid());
}
if (StringUtils.isNotBlank(pagerQuery.getVinNo())) {//车架号
qw.like("bv.vinNo", pagerQuery.getVinNo());
}
if (StringUtils.isNotBlank(pagerQuery.getModelName())) {//车型名称
qw.like("bv.modelName", pagerQuery.getModelName());
}
if (StringUtils.isNotBlank(pagerQuery.getLocation())) {//存放地点
qw.like("bv.location", pagerQuery.getLocation());
}
if (StringUtils.isNotBlank(pagerQuery.getVehicleState())) {//库存状态
qw.eq("bv.vehicleState", pagerQuery.getVehicleState());
}
if (StringUtils.isNotBlank(pagerQuery.getCertificateStateValue())) {//合格证状态value
qw.eq("bvcf.certificateStateValue", pagerQuery.getCertificateStateValue());
}
if (StringUtils.isNotBlank(pagerQuery.getInsideCode())) {//内部编码
qw.like("bv.insideCode", pagerQuery.getInsideCode());
}
if (StringUtils.isNotBlank(pagerQuery.getManPurOrderTypeKey())) {//采购类型
qw.eq("bv.manPurOrderTypeKey", pagerQuery.getManPurOrderTypeKey());
}
if (StringUtils.isNotBlank(pagerQuery.getPriceDate())) {//厂家入库日期
qw.eq("bv.priceDate", pagerQuery.getPriceDate());
}
if (StringUtils.isNotBlank(pagerQuery.getSettlementStatus())) {//买断状态
qw.eq("bv.settlementStatus", pagerQuery.getSettlementStatus());
}
//车型字段
if (StringUtils.isNotBlank(pagerQuery.getCarBrand())) {//品牌
qw.eq("bvm.carBrand", pagerQuery.getCarBrand());
}
if (StringUtils.isNotBlank(pagerQuery.getVehicleType())) {//功能
qw.eq("bvm.vehicleType", pagerQuery.getVehicleType());
}
if (StringUtils.isNotBlank(pagerQuery.getProductLine())) {//系列
qw.eq("bvm.productLine", pagerQuery.getProductLine());
}
if (StringUtils.isNotBlank(pagerQuery.getDriveForm())) {//驱动
qw.eq("bvm.driveForm", pagerQuery.getDriveForm());
}
if (StringUtils.isNotBlank(pagerQuery.getPower())) {//马力
qw.eq("bvm.power", pagerQuery.getPower());
}
if (StringUtils.isNotBlank(pagerQuery.getVehicleVersion())) {//版本
qw.eq("bvm.vehicleVersion", pagerQuery.getVehicleVersion());
}
if (StringUtils.isNotBlank(pagerQuery.getFuelType())) {//燃料
qw.eq("bvm.fuelType", pagerQuery.getFuelType());
}
if (StringUtils.isNotBlank(pagerQuery.getVehicleTypeCode())) {//车型编码
qw.like("bvm.vehicleTypeCode", pagerQuery.getVehicleTypeCode());
}
if (StringUtils.isNotBlank(pagerQuery.getTranCaseTypeKey())) {//变速箱类型
qw.eq("bvm.tranCaseTypeKey", pagerQuery.getTranCaseTypeKey());
}
if (StringUtils.isNotBlank(pagerQuery.getGearboxType())) {//变速箱
qw.eq("bvm.gearboxType", pagerQuery.getGearboxType());
}
if (StringUtils.isNotBlank(pagerQuery.getEmissionStandard())) {//排放标准
qw.eq("bvm.emissionStandard", pagerQuery.getEmissionStandard());
}
if (StringUtils.isNotBlank(pagerQuery.getEngineType())) {//发动机型号
qw.eq("bvm.engineType", pagerQuery.getEngineType());
}
if (StringUtils.isNotBlank(pagerQuery.getMarketSegments())) {//细分市场
qw.eq("bvm.marketSegments", pagerQuery.getMarketSegments());
}
if (StringUtils.isNotBlank(pagerQuery.getSpecifications())) {//规格型号
qw.like("bvm.specifications", pagerQuery.getSpecifications());
}
//车型配置字段
if (StringUtils.isNotBlank(pagerQuery.getCarColorKey())) {//颜色
qw.eq("bmc.carColorKey", pagerQuery.getCarColorKey());
}
if (StringUtils.isNotBlank(pagerQuery.getSlowMachineKey())) {//缓速器
qw.eq("bmc.slowMachineKey", pagerQuery.getSlowMachineKey());
}
if (StringUtils.isNotBlank(pagerQuery.getRearViewMirrorKey())) {//后视镜
qw.eq("bmc.rearViewMirrorKey", pagerQuery.getRearViewMirrorKey());
}
if (StringUtils.isNotBlank(pagerQuery.getSpecificationKey())) {//驾驶室
qw.eq("bmc.specificationKey", pagerQuery.getSpecificationKey());
}
if (StringUtils.isNotBlank(pagerQuery.getRearAxleKey())) {//后桥
qw.eq("bmc.rearAxleKey", pagerQuery.getRearAxleKey());
}
if (StringUtils.isNotBlank(pagerQuery.getRearAxleRatioKey())) {//速比
qw.eq("bmc.rearAxleRatioKey", pagerQuery.getRearAxleRatioKey());
}
if (StringUtils.isNotBlank(pagerQuery.getAirConditionerKey())) {//空调
qw.eq("bmc.airConditionerKey", pagerQuery.getAirConditionerKey());
}
if (StringUtils.isNotBlank(pagerQuery.getHubMaterialKey())) {//轮毂材质
qw.eq("bmc.hubMaterialKey", pagerQuery.getHubMaterialKey());
}
if (StringUtils.isNotBlank(pagerQuery.getBaffleModelKey())) {//导流罩
qw.eq("bmc.baffleModelKey", pagerQuery.getBaffleModelKey());
}
if (StringUtils.isNotBlank(pagerQuery.getSuspensionKey())) {//悬架
qw.eq("bmc.suspensionKey", pagerQuery.getSuspensionKey());
}
if (StringUtils.isNotBlank(pagerQuery.getSeatKey())) {//座椅
qw.eq("bmc.seatKey", pagerQuery.getSeatKey());
}
if (StringUtils.isNotBlank(pagerQuery.getTireCoverKey())) {//护轮罩
qw.eq("bmc.tireCoverKey", pagerQuery.getTireCoverKey());
}
if (StringUtils.isNotBlank(pagerQuery.getSaddleKey())) {//鞍座
qw.eq("bmc.saddleKey", pagerQuery.getSaddleKey());
}
if (StringUtils.isNotBlank(pagerQuery.getWheelbaseKey())) {//轴距
qw.eq("bmc.wheelbaseKey", pagerQuery.getWheelbaseKey());
}
if (StringUtils.isNotBlank(pagerQuery.getBumperKey())) {//保险杠
qw.eq("bmc.bumperKey", pagerQuery.getBumperKey());
}
if (StringUtils.isNotBlank(pagerQuery.getConfiguringBaoKey())) {//配置包
qw.eq("bmc.configuringBaoKey", pagerQuery.getConfiguringBaoKey());
}
if (StringUtils.isNotBlank(pagerQuery.getIndependentSourcesKey())) {//独立热源
qw.eq("bmc.independentSourcesKey", pagerQuery.getIndependentSourcesKey());
}
if (StringUtils.isNotBlank(pagerQuery.getFuelTankKey())) {//燃料箱
qw.eq("bmc.fuelTankKey", pagerQuery.getFuelTankKey());
}
if (StringUtils.isNotBlank(pagerQuery.getMultimediaKey())) {//多媒体
qw.eq("bmc.multimediaKey", pagerQuery.getMultimediaKey());
}
if (StringUtils.isNotBlank(pagerQuery.getConfigName())) {//常用配置名称
qw.eq("bmc.configName", pagerQuery.getConfigName());
}
if (StringUtils.isNotBlank(pagerQuery.getOtherConfigOne()) || StringUtils.isNotBlank(pagerQuery.getOtherConfigTwo()) || StringUtils.isNotBlank(pagerQuery.getOtherConfigThree())){
qw.and(wrapper -> wrapper.like("bmc.otherConfig", pagerQuery.getOtherConfigOne()).like("bmc.otherConfig", pagerQuery.getOtherConfigTwo()).like("bmc.otherConfig",pagerQuery.getOtherConfigThree()));
}
qw.orderByDesc("bv.createOrgSid");
qw.orderByDesc("bv.priceDate");
if (StringUtils.isNotBlank(pagerQuery.getLibraryAge())){
qw.having("libraryAge = {0}",pagerQuery.getLibraryAge());
}
if (StringUtils.isNotBlank(pagerQuery.getOrgLibraryAge())){
qw.having("orgLibraryAge = {0}",pagerQuery.getOrgLibraryAge());
}
if (StringUtils.isNotBlank(pagerQuery.getSettlementLibraryAge())){
qw.having("settlementLibraryAge = {0}",pagerQuery.getSettlementLibraryAge());
}
IPage<BaseVehicleQuery> page = PagerUtil.queryToPage(pq);
IPage<BaseVehicleVo> pagging = baseMapper.pagerList(page, qw);
List<BaseVehicleVo> records = pagging.getRecords();
for (BaseVehicleVo record : records) {
/* String manPurOrderTypeValue = record.getManPurOrderTypeValue();
if (("外采").equals(manPurOrderTypeValue)) {
record.setLibraryAge(Long.parseLong("0"));
} else {
//厂家库龄
if (record.getPriceDate() != null) {
//厂家入库日期
Date priceDate = record.getPriceDate();
//买断日期
Date solidDate = record.getSolidDate();
if (solidDate != null) {
int i = priceDate.compareTo(solidDate);
long betweenDay = DateUtil.between(priceDate, solidDate, DateUnit.DAY);
record.setLibraryAge(betweenDay * i * -1);
} else {
String today = DateUtil.today();
DateTime currentDate = DateUtil.parse(today);
int i = priceDate.compareTo(currentDate);
long betweenDay = DateUtil.between(priceDate, currentDate, DateUnit.DAY);
record.setLibraryAge(betweenDay * i * -1);
}
}
}*/
//公司库龄
/*if (record.getDepartureDate() != null) {
//发车日期
Date departureDate = record.getDepartureDate();
//销售日期
Date salesDate = record.getSalesDate();
if (salesDate != null) {
int i = departureDate.compareTo(salesDate);
long betweenDay = DateUtil.between(departureDate, salesDate, DateUnit.DAY);
record.setOrgLibraryAge(betweenDay * i * -1);
} else {
String today = DateUtil.today();
DateTime currentDate = DateUtil.parse(today);
int i = departureDate.compareTo(currentDate);
long betweenDay = DateUtil.between(departureDate, currentDate, DateUnit.DAY);
record.setOrgLibraryAge(betweenDay * i * -1);
}
}*/
//买断库龄
/*if (record.getSolidDate() != null) {
//买断日期
Date solidDate = record.getSolidDate();
//销售日期
Date salesDate = record.getSalesDate();
if (salesDate != null) {
int i = solidDate.compareTo(salesDate);
long betweenDay = DateUtil.between(solidDate, salesDate, DateUnit.DAY);
record.setSettlementLibraryAge(betweenDay * i * -1);
} else {
String today = DateUtil.today();
DateTime currentDate = DateUtil.parse(today);
int i = solidDate.compareTo(currentDate);
long betweenDay = DateUtil.between(solidDate, currentDate, DateUnit.DAY);
record.setSettlementLibraryAge(betweenDay * i * -1);
}
}*/
String vinNo = record.getVinNo();
if (StringUtils.isNotBlank(vinNo)) {
record.setLastVinNo(vinNo.substring(vinNo.length() - 8));
}
String modelSid = record.getModelSid();
String modelConfigSid = record.getModelConfigSid();
String createOrgSid = record.getCreateOrgSid();
BaseVehmodelVo data = baseVehmodelConfigService.selectOne(modelSid, modelConfigSid, createOrgSid).getData();
record.setManufactorSettlementPrice(data.getManufactorSettlementPrice());
String sid = record.getSid();
BaseTrailerDetailsVo baseTrailerDetailsVo = baseTrailerService.fetchByVehSid(sid);
BaseVehinstallDetailsVo baseVehinstallDetailsVo = baseVehinstallService.fetchByVinNoAndOrgSid(vinNo, createOrgSid);
if (baseTrailerDetailsVo != null) {
BaseTrailerModel baseTrailerModel = baseTrailerModelService.fetchBySid(baseTrailerDetailsVo.getTrailerModelSid());
String appearanceSizeLong = baseTrailerModel.getAppearanceSizeLong();
String appearanceSizeWide = baseTrailerModel.getAppearanceSizeWide();
String appearanceSizeHigh = baseTrailerModel.getAppearanceSizeHigh();
String appearanceSizeTotalHigh = baseTrailerModel.getAppearanceSizeTotalHigh();
String trailerTypeValue = baseTrailerModel.getTrailerTypeValue();
StringBuilder trailerModel = new StringBuilder();
trailerModel.append(trailerTypeValue).append("(").append("长").append(appearanceSizeLong).append("mm,").append("宽").append(appearanceSizeWide).append("mm,").append("高").append(appearanceSizeHigh).append("mm,").append("总高").append(appearanceSizeTotalHigh).append("mm").append(")");
record.setSzOrGCSid(baseTrailerDetailsVo.getSid());
record.setSzOrGC("挂车");
record.setTrailerOrInstall(trailerModel.toString());
record.setTrailerOrInstallDealPrice(baseTrailerModel.getSaleGuidancePrice());
} else if (baseVehinstallDetailsVo != null) {
BaseVehinstallmodel baseVehinstallmodel = baseVehinstallmodelService.fetchBySid(baseVehinstallDetailsVo.getMainSid());
String wk_long = baseVehinstallmodel.getWk_long();
String wk_wide = baseVehinstallmodel.getWk_wide();
String wk_high = baseVehinstallmodel.getWk_high();
String installName = baseVehinstallmodel.getInstallNameValue();
StringBuilder vehinstallmodel = new StringBuilder();
vehinstallmodel.append(installName).append("(").append("长").append(wk_long).append("mm,").append("宽").append(wk_wide).append("mm,").append("高").append(wk_high).append("mm").append(")");
record.setSzOrGCSid(baseVehinstallDetailsVo.getSid());
record.setSzOrGC("上装");
record.setTrailerOrInstall(vehinstallmodel.toString());
record.setTrailerOrInstallDealPrice(baseVehinstallDetailsVo.getGuidePrice());
}
}
PagerVo<BaseVehicleVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
}

7
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java

@ -55,9 +55,14 @@ public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleState
//销售订单录入车架号
baseVehicleState.setVinNo(dto.getVinNo());
baseVehicleState.setVinSid(dto.getVinSid());
} else if (BaseVehicleStateEnum.OperateTypeEnum.FIN_RQ.getTypeKey().equals(operateType)) {
//认款办理确认以及结转审核通过的更新款项状态为1 已交清,否则为0
baseVehicleState.setFinState(BaseVehicleStateEnum.BusStateEnum.FIN_STATE_JQ.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.FIN_WRQ.getTypeKey().equals(operateType)){
//认款办理确认以及结转审核通过的更新款项状态为1 已交清,否则为0
baseVehicleState.setFinState(BaseVehicleStateEnum.BusStateEnum.FIN_STATE_WJQ.getStateKey());
}
//认款办理确认以及结转审核通过的更新款项状态为1,否则为0
baseMapper.updateById(baseVehicleState);
});

3
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehmodelconfig/BaseVehmodelConfigMapper.xml

@ -322,7 +322,8 @@
bvm.carBrand brandSid,
bvm.vehicleType as vehicleTypeKey,
bvc.sid modelConfigSid,
bmc.otherConfig
bmc.otherConfig,
bvm.modelName
FROM
base_vehmodel_config bvc
LEFT JOIN base_vehicle_model bvm

29
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyService.java

@ -484,8 +484,8 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
}
orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
}
AtomicReference<BusVehicleApply> busVehicleApply = new AtomicReference<>(fetchBySid(dto.getSid()));
int r = submitBusinessData(dto, busVehicleApply.get());
BusVehicleApply busVehicleApply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, busVehicleApply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
@ -503,6 +503,7 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
}
String businessSid = resultBean.getData();
busVehicleApply = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
@ -522,6 +523,9 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(dto.getCreateBySid());
//厂家采购工作名称:采购系统+采购原因+采购类型
String orderNames =busVehicleApply.getOrgDeptName()+busVehicleApply.getSchedulingType()+busVehicleApply.getApplyType();
variables.put("orderNames", orderNames);
bv.setFormVariables(variables);
if (r == 1) {
//流程定义id
@ -532,6 +536,7 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
busVehicleApply = fetchBySid(businessSid);
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
@ -539,9 +544,9 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
BusVehicleApply finalBusVehicleApply = busVehicleApply;
Future future1 = pool.submit(() -> {
//极光推送
busVehicleApply.set(fetchBySid(businessSid));
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
@ -549,7 +554,7 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("厂家采购申请");
messageFlowableQuery.setMsgContent(busVehicleApply.get().getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgContent(finalBusVehicleApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("厂家采购");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
@ -566,8 +571,8 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(busVehicleApply.get().getTaskId());
bv.setTaskDefKey(busVehicleApply.get().getNodeId());
bv.setTaskId(busVehicleApply.getTaskId());
bv.setTaskDefKey(busVehicleApply.getNodeId());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
@ -631,6 +636,9 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
variables.put("money", busVehicleApply.getCurrentAmount().intValue() > 0);
//判断是否是储备订单,若是,则isTrue网关参数为true=============添加
variables.put("isTrue", DictCommonEnum.schedulingType.CB_SCHEDULINGTYPE.getCode().equals(busVehicleApply.getSchedulingTypeKey()));
//厂家采购工作名称:采购系统+采购原因+采购类型
String orderNames =busVehicleApply.getOrgDeptName()+busVehicleApply.getSchedulingType()+busVehicleApply.getApplyType();
variables.put("orderNames", orderNames);
bv.setFormVariables(variables);
bv.setOrgSidPath(busVehicleApply.getOrgSidPath());
bv.setModelId(busVehicleApply.getProcDefId());
@ -744,6 +752,9 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
variables.put("money", busVehicleApply.getCurrentAmount().intValue() > 0);
//判断是否是储备订单,若是,则isTrue网关参数为true=============添加
variables.put("isTrue", DictCommonEnum.schedulingType.CB_SCHEDULINGTYPE.getCode().equals(busVehicleApply.getSchedulingTypeKey()));
//厂家采购工作名称:采购系统+采购原因+采购类型
String orderNames =busVehicleApply.getOrgDeptName()+busVehicleApply.getSchedulingType()+busVehicleApply.getApplyType();
variables.put("orderNames", orderNames);
bv.setFormVariables(variables);
bv.setModelId(busVehicleApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
@ -769,6 +780,9 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
variables.put("money", busVehicleApply.getCurrentAmount().intValue() > 0);
//判断是否是储备订单,若是,则isTrue网关参数为true=============添加
variables.put("isTrue", DictCommonEnum.schedulingType.CB_SCHEDULINGTYPE.getCode().equals(busVehicleApply.getSchedulingTypeKey()));
//厂家采购工作名称:采购系统+采购原因+采购类型
String orderNames =busVehicleApply.getOrgDeptName()+busVehicleApply.getSchedulingType()+busVehicleApply.getApplyType();
variables.put("orderNames", orderNames);
bv.setFormVariables(variables);
bv.setModelId(busVehicleApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
@ -809,6 +823,9 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
variables.put("money", busVehicleApply.getCurrentAmount().intValue() > 0);
//判断是否是储备订单,若是,则isTrue网关参数为true=============添加
variables.put("isTrue", DictCommonEnum.schedulingType.CB_SCHEDULINGTYPE.getCode().equals(busVehicleApply.getSchedulingTypeKey()));
//厂家采购工作名称:采购系统+采购原因+采购类型
String orderNames =busVehicleApply.getOrgDeptName()+busVehicleApply.getSchedulingType()+busVehicleApply.getApplyType();
variables.put("orderNames", orderNames);
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {

3
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderRest.java

@ -68,8 +68,7 @@ public class BusVehicleOrderRest implements BusVehicleOrderFeign {
private BusVehicleOrderService busVehicleOrderService;
@Autowired
private BusVehicleApplyService busVehicleApplyService;
@Autowired
private BusVehicleApplyDetailService busVehicleApplyDetailService;
@Override
public ResultBean<PagerVo<VehicleOrderListVo>> listPage(PagerQuery<BusVehicleOrderQuery> pq) {
ResultBean rb = ResultBean.fireFail();

56
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderService.java

@ -132,11 +132,11 @@ public class BusVehicleOrderService extends MybatisBaseService<BusVehicleOrderMa
if (StringUtils.isNotBlank(query.getModelName())) {
qw.like("bvad.vehicleName", query.getModelName());
}
if (StringUtils.isNotBlank(query.getStartDate())) {
qw.gt("bva.applicationDate", query.getStartDate());
if (StringUtils.isNotBlank(query.getOrderStartDate())) {
qw.gt("bva.applicationDate", query.getOrderStartDate());
}
if (StringUtils.isNotBlank(query.getEndDate())) {
qw.lt("bva.applicationDate", query.getEndDate());
if (StringUtils.isNotBlank(query.getOrderEndDate())) {
qw.lt("bva.applicationDate", query.getOrderEndDate());
}
if (StringUtils.isNotBlank(query.getApplicationCode())) {
qw.like("bva.applicationCode", query.getApplicationCode());
@ -154,7 +154,53 @@ public class BusVehicleOrderService extends MybatisBaseService<BusVehicleOrderMa
String orgSid = sysStaffOrgFeign.getPathSidByUserSid(query.getUserSid()).getData();
query.setUseOrgSid(orgSid);
}
QueryWrapper<BusVehicleOrder> qw = createQueryWrapper(query);
QueryWrapper<BusVehicleOrder> qw = new QueryWrapper<>();
qw.eq("bvo.useOrgSid", query.getUseOrgSid());
if (StringUtils.isNotBlank(query.getOrderNo())) {
qw.like("bvo.orderNo", query.getOrderNo());
}
if (StringUtils.isNotBlank(query.getOrderTypeKey())) {
qw.like("bvo.orderTypeKey", query.getOrderTypeKey());
}
if (StringUtils.isNotBlank(query.getApplicationCode())) {
qw.like("bva.applicationCode", query.getApplicationCode());
}
if (StringUtils.isNotBlank(query.getOrderStatus())) {
qw.like("bvo.orderStatus", query.getOrderStatus());
}
if (StringUtils.isNotBlank(query.getModelName())) {
qw.like("bvad.vehicleName", query.getModelName());
}
String orderStartDate = query.getOrderStartDate();
String orderEndDate = query.getOrderEndDate();
qw.apply(StringUtils.isNotBlank(orderStartDate), "date_format (bvo.orderDate,'%Y-%m-%d') >= date_format('" + orderStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(orderEndDate), "date_format (bvo.orderDate,'%Y-%m-%d') <= date_format('" + orderEndDate + "','%Y-%m-%d')"
);
String yjsxStartDate = query.getYjsxStartDate();
String yjsxEndDate = query.getYjsxEndDate();
if (StringUtils.isNotBlank(yjsxStartDate) && StringUtils.isNotBlank(yjsxEndDate)){
qw.ne("bvo.expectLaunchDate","");
}
qw.apply(StringUtils.isNotBlank(yjsxStartDate), "date_format (bvo.expectLaunchDate,'%Y-%m-%d') >= date_format('" + yjsxStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(yjsxEndDate), "date_format (bvo.expectLaunchDate,'%Y-%m-%d') <= date_format('" + yjsxEndDate + "','%Y-%m-%d')"
);
String sxStartDate = query.getSxStartDate();
String sxEndDate = query.getSxEndDate();
if (StringUtils.isNotBlank(sxStartDate) && StringUtils.isNotBlank(sxEndDate)){
qw.ne("bvo.launchDate","");
}
qw.apply(StringUtils.isNotBlank(sxStartDate), "date_format (bvo.launchDate,'%Y-%m-%d') >= date_format('" + sxStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(sxEndDate), "date_format (bvo.launchDate,'%Y-%m-%d') <= date_format('" + sxEndDate + "','%Y-%m-%d')"
);
String xxStartDate = query.getXxStartDate();
String xxEndDate = query.getXxEndDate();
if (StringUtils.isNotBlank(xxStartDate) && StringUtils.isNotBlank(xxEndDate)){
qw.ne("bvo.offlineDate","");
}
qw.apply(StringUtils.isNotBlank(xxStartDate), "date_format (bvo.offlineDate,'%Y-%m-%d') >= date_format('" + xxStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(xxEndDate), "date_format (bvo.offlineDate,'%Y-%m-%d') <= date_format('" + xxEndDate + "','%Y-%m-%d')"
);
qw.orderByDesc("bvo.subscriptionDate");
IPage<BusVehicleOrder> page = PagerUtil.queryToPage(pq);
IPage<VehicleOrderListVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<VehicleOrderListVo> p = PagerUtil.pageToVo(pagging, null);

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java

@ -173,6 +173,12 @@ public interface BusSalesOrderFeign {
@ResponseBody
public ResultBean rePublishSaleOrder(@PathVariable("saleOrderSid") String saleOrderSid) throws InvocationTargetException, IllegalAccessException;
@ApiOperation("重新发起")
@GetMapping("/rePublishSaleOrder")
@ResponseBody
public ResultBean rePublishSaleOrder(@RequestParam("saleOrderSid")String saleOrderSid,@RequestParam(value = "customerSid",required = false)String customerSid,@RequestParam(value = "customerName",required = false)String customerName,@RequestParam(value = "customerMobile",required = false)String customerMobile) throws InvocationTargetException, IllegalAccessException;
/**
* 新增保存销售订单信息
*

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java

@ -156,6 +156,11 @@ public class BusSalesOrderFeignFallback implements BusSalesOrderFeign {
return null;
}
@Override
public ResultBean rePublishSaleOrder(String saleOrderSid, String customerSid, String customerName, String customerMobile) {
return null;
}
@Override
public ResultBean saveBillInfo(AppBusSalesOrderAllDto dto) {
return null;

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.java

@ -96,4 +96,8 @@ public interface BusDeliveredMapper extends BaseMapper<BusDelivered> {
BusDelivered getState(@Param("contractNo") String contractNo, @Param("vinSid") String vinSid);
BusDelivered selectByBusVinSid(String busVinSid);
List<String> selectByState();
IPage<BusDeliveredVo> selectListsVos(IPage<BusDelivered> page, @Param(Constants.WRAPPER)QueryWrapper<BusDelivered> qw);
}

149
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml

@ -3,29 +3,29 @@
<mapper namespace="com.yxt.anrui.buscenter.biz.busdelivered.BusDeliveredMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<!-- <select id="selectPageVo" resultType="com.yxt.anrui.buscenter.api.busdelivered.BusDeliveredVo">
SELECT bd.sid,
bd.contractNo,
bd.name,
bd.vinNo,
bd.subscription,
bd.subscriptionKey,
bd.paymentMethodKey,
bd.paymentMethod,
bd.modelName,
bd.price,
bd.mobile,
bd.idNo,
bd.address,
bd.price,
bd.distributorName,
bd.distributorPrice,
bd.distributorNameTwo,
bd.distributorPriceTwo,
bd.singleCarDiscountPrice
FROM bus_delivered bd
${ew.customSqlSegment}
</select>-->
<!-- <select id="selectPageVo" resultType="com.yxt.anrui.buscenter.api.busdelivered.BusDeliveredVo">
SELECT bd.sid,
bd.contractNo,
bd.name,
bd.vinNo,
bd.subscription,
bd.subscriptionKey,
bd.paymentMethodKey,
bd.paymentMethod,
bd.modelName,
bd.price,
bd.mobile,
bd.idNo,
bd.address,
bd.price,
bd.distributorName,
bd.distributorPrice,
bd.distributorNameTwo,
bd.distributorPriceTwo,
bd.singleCarDiscountPrice
FROM bus_delivered bd
${ew.customSqlSegment}
</select>-->
<select id="selectListAllVo" resultType="com.yxt.anrui.buscenter.api.busdelivered.BusDeliveredVo">
SELECT *
@ -39,8 +39,8 @@
resultType="com.yxt.anrui.buscenter.api.busdelivered.AppBusDeliveredPageVo">
SELECT bd.*
FROM bus_delivered bd
left join bus_sales_order bo on bo.contractNo = bd.contractNo
left join bus_sales_order_vehicle bv on bo.sid = bv.salesOrderSid
left join bus_sales_order bo on bo.contractNo = bd.contractNo
left join bus_sales_order_vehicle bv on bo.sid = bv.salesOrderSid
<where>
${ew.sqlSegment}
<if test="name != null and name != ''">
@ -51,18 +51,21 @@
, #{name}
, '%')
</if>
and (select count(*) from bus_sales_order_vehicle bbv left join bus_sales_order bo on bo.sid = bbv.salesOrderSid where length(bbv.linkSid)>0 and bo.contractNo = bd.contractNo)>0
and (select count (*) from bus_sales_order_vehicle bbv left join bus_sales_order bo on bo.sid = bbv.salesOrderSid where length(bbv.linkSid)
>0
and bo.contractNo = bd.contractNo)
>0
</where>
group by bd.contractNo
</select>
<select id="selVinListVo" resultType="com.yxt.anrui.buscenter.api.busdelivered.AppVinListVo">
SELECT RIGHT(bv.linkNo, 8) as vin,bd.busVinSid,bd.subscription as businessState,bv.linkSid as vinSid
SELECT RIGHT(bv.linkNo, 8) as vin, bd.busVinSid, bd.subscription as businessState, bv.linkSid as vinSid
FROM bus_delivered bd
left join bus_sales_order_vehicle bv on bv.sid = bd.busVinSid
left join bus_sales_order_vehicle bv on bv.sid = bd.busVinSid
<where>
${ew.sqlSegment}
and length(bv.linkSid)>0
and length(bv.linkSid) > 0
</where>
</select>
@ -82,7 +85,9 @@
</update>
<update id="updateStateByContractNo">
update bus_delivered set state = #{state} where contractNo = #{contractNo} and busVinSid in
update bus_delivered
set state = #{state} where contractNo = #{contractNo}
and busVinSid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
@ -90,39 +95,75 @@
<select id="selectListsVo" resultType="com.yxt.anrui.buscenter.api.busdelivered.BusDeliveredVo">
SELECT bd.sid,
bd.contractNo,
bd.name,
bd.busVinSid,
<!-- bd.vinNo,-->
bd.subscription,
<!--bd.subscriptionKey,
bd.paymentMethodKey,-->
bd.paymentMethod,<!--,
bd.modelName,
bd.price,
bd.mobile,
bd.idNo,
bd.address,
bd.price,
bd.distributorName,
bd.distributorPrice,
bd.distributorNameTwo,
bd.distributorPriceTwo,
bd.singleCarDiscountPrice-->
RIGHT(bv.linkNo, 8) as vinNo,bd.busVinSid,bv.linkSid as vinSid
bd.contractNo,
bd.name,
bd.busVinSid,
bd.subscription,
bd.paymentMethod,
RIGHT(bv.linkNo, 8) as vinNo,
bd.busVinSid,
bv.linkSid as vinSid
FROM bus_delivered bd
left join bus_sales_order_vehicle bv on bv.sid = bd.busVinSid
<where>
${ew.sqlSegment}
and length(bv.linkSid) > 0
</where>
</select>
<select id="selectListsVo" resultType="com.yxt.anrui.buscenter.api.busdelivered.BusDeliveredVo">
SELECT bd.sid,
bd.contractNo,
bd.name,
bd.busVinSid,
bd.subscription,
bd.paymentMethod,
RIGHT(bv.linkNo, 8) as vinNo,
bd.busVinSid,
bv.linkSid as vinSid
FROM bus_delivered bd
left join bus_sales_order_vehicle bv on bv.sid = bd.busVinSid
left join bus_sales_order_vehicle bv on bv.sid = bd.busVinSid
<where>
${ew.sqlSegment}
and length(bv.linkSid)>0
and length(bv.linkSid) > 0
</where>
</select>
<select id="getState" resultType="com.yxt.anrui.buscenter.api.busdelivered.BusDelivered">
select * from bus_delivered where contractNo = #{contractNo} and busVinSid = #{vinSid}
select *
from bus_delivered
where contractNo = #{contractNo}
and busVinSid = #{vinSid}
</select>
<select id="selectByBusVinSid" resultType="com.yxt.anrui.buscenter.api.busdelivered.BusDelivered">
select * from bus_delivered where busVinSid = #{busVinSid}
select *
from bus_delivered
where busVinSid = #{busVinSid}
</select>
<select id="selectByState" resultType="java.lang.String">
select busSid
from anrui_base.base_vehicle_state
where busState = '401'
and finState = '1'
</select>
<select id="selectListsVos" resultType="com.yxt.anrui.buscenter.api.busdelivered.BusDeliveredVo">
SELECT bv.sid,
bo.contractNo,
bo.customerName name,
bv.sid busVinSid,
'正常交款' as subscription,
bo.payType paymentMethod,
RIGHT(bv.linkNo, 8) as vinNo,
bv.linkSid as vinSid
FROM bus_sales_order_vehicle bv
left join bus_sales_order bo on bo.sid = bv.salesOrderSid
left join anrui_base.base_vehicle bbv on bbv.sid = bv.linkSid
<where>
${ew.sqlSegment}
and length(bv.linkSid) > 0 and bbv.vehicleStateValue != '出库'
</where>
</select>
</mapper>

68
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredService.java

@ -160,6 +160,47 @@ public class BusDeliveredService extends MybatisBaseService<BusDeliveredMapper,
return p;
}
/**
* 待出库车辆分页列表
*
* @param pq 查询条件
* @return 待出库车辆分页列表的数据
*/
public PagerVo<BusDeliveredVo> listPageVos(PagerQuery<BusDeliveredQuery> pq) {
BusDeliveredQuery query = pq.getParams();
QueryWrapper<BusDelivered> qw = new QueryWrapper<>();
if (query != null) {
//合同编号
if (StringUtils.isNotBlank(query.getContractNo())) {
qw.like("bd.contractNo", query.getContractNo());
}
//客户名称
if (StringUtils.isNotBlank(query.getName())) {
qw.like("bd.name", query.getName());
}
//车架号
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("bv.linkNo", query.getVinNo());
}
//车架号集合
if (query.getVinSid().size() > 0) {
qw.notIn("bv.linkSid", query.getVinSid());
}
//待出库:1,出库申请:0
qw.eq("bd.state", 1);
if (StringUtils.isNotBlank(query.getUserSid())) {
qw.eq("bd.createBySid", query.getUserSid());
}
}
//查询所有待出库的车辆busVinSid
List<String> busVinSidList = baseMapper.selectByState();
//查询销售订单中申请人是当前登录人且已办结的,linkSid有值,且在车辆台账中不为出库的。
IPage<BusDelivered> page = PagerUtil.queryToPage(pq);
IPage<BusDeliveredVo> pagging = baseMapper.selectListsVos(page, qw);
PagerVo<BusDeliveredVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(BusDeliveredDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
@ -547,33 +588,6 @@ public class BusDeliveredService extends MybatisBaseService<BusDeliveredMapper,
}
/* AppDeliveredDetailsVo vo = new AppDeliveredDetailsVo();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
BusDelivered busDelivered = fetchBySid(query.getSid());
String vin = busDelivered.getVinNo();
BaseVehicle baseVehicle = baseVehicleFeign.selectByVinNoAndOrgSid(vin, busDelivered.getUseOrgSid()).getData();
if (baseVehicle != null) {
vo.setModelSid(baseVehicle.getModelSid());
vo.setConfigSid(baseVehicle.getModelConfigSid());
}
vo.setContractId(busDelivered.getContractNo());
vo.setModel(busDelivered.getModelName());
vo.setMobile(busDelivered.getMobile());
vo.setDate(simpleDateFormat.format(new Date()));
vo.setUserSid(query.getUserSid());
vo.setName(busDelivered.getName());
List<String> list = query.getList();
List<AppCarListVo> appCarListVos = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
AppCarListVo appCarListVo = baseMapper.getDeliveredPice(list.get(i));
appCarListVos.add(appCarListVo);
}
vo.setCarList(appCarListVos);
vo.setTerminalKey("0");
vo.setTerminalValue("否");*/
if (codeMsg) {
String msgs = String.join(",", nameList);
return rb.success().setData(appDeliveredDetailsVo).setCode("20005").setMsg(msgs + "优惠套餐数量已超出,赠送数量已重置为0");

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.java

@ -218,4 +218,6 @@ public interface BusSalesOrderMapper extends BaseMapper<BusSalesOrder> {
BusSalesOrderDetailsVo selNewComSaleByVehSid(String vehSid);
BusSalesOrder selectByContractNos(String contractNo);
String selectBySid(String sid);
}

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml

@ -552,4 +552,8 @@
from bus_sales_order
where contractNo = #{contractNo}
</select>
<select id="selectBySid" resultType="java.lang.String">
select cc.sid from bus_sales_order bo left join anrui_base.common_contract cc on cc.contractNo = bo.contractNo
</select>
</mapper>

7
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java

@ -219,7 +219,12 @@ public class BusSalesOrderRest implements BusSalesOrderFeign {
@Override
public ResultBean<String> rePublishSaleOrder(String saleOrderSid) throws InvocationTargetException, IllegalAccessException {
return busSalesOrderService.rePublishSaleOrder(saleOrderSid);
return busSalesOrderService.rePublishSaleOrder(saleOrderSid,"","","");
}
@Override
public ResultBean rePublishSaleOrder(String saleOrderSid, String customerSid, String customerName, String customerMobile) throws InvocationTargetException, IllegalAccessException {
return busSalesOrderService.rePublishSaleOrder(saleOrderSid,customerSid,customerName,customerMobile);
}

68
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -4825,23 +4825,6 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
} catch (Exception e) {
e.printStackTrace();
}
/* //==============================
//如果创建人与部门主管一样,则自动到下一环节。
if (busSalesOrder.get().getCreateBySid().equals(nextNodeUserSids_)) {
busSalesOrderOne = fetchBySid(businessSid);
bv = new BusinessVariables();
bv.setModelId(busSalesOrderOne.getProcDefId());
bv.setInstanceId(busSalesOrderOne.getProcInstId());
bv.setTaskId(busSalesOrderOne.getTaskId());
bv.setUserSid(busSalesOrderOne.getCreateBySid());
bv.setBusinessSid(busSalesOrderOne.getSid());
bv.setTaskDefKey(busSalesOrderOne.getNodeId());
Map<String, Object> variabless = getOrderMap(busSalesOrderOne);
bv.setFormVariables(variabless);
bv.setOrgSidPath(busSalesOrderOne.getOrgSidPath());
bv.setComment("因与申请人相同,系统自动处理,需以下一级审批人审批意见为准!");
return complete(bv);
}*/
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
@ -5206,6 +5189,34 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
//推送车款
createCarFin(vo, busSalesOrder);
}
//==============================修改车辆的持久状态组装数据
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<BusSalesOrderVehicle> vehicleList = busSalesOrderVehicleService.selectListByOrderSid(bv.getBusinessSid());
vehicleList.removeAll(Collections.singleton(null));
if (!vehicleList.isEmpty()) {
vehicleList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.DDBA_PASS.getTypeKey());
if (StringUtils.isNotBlank(v.getLinkSid())) {
baseVehicleStateDto.setVinSid(v.getLinkSid());
baseVehicleStateDto.setVinNo(v.getLinkNo());
}
baseVehicleStateDto.setBusSid(v.getSid());
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
//-----------------推送车款款项结束
//推送采购渠道待选择
BusPurchaseChannelDto busPurchaseChannelDto = new BusPurchaseChannelDto();
@ -5252,6 +5263,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
String num = priceInfo.getNumber();
//单台成交价
String transactionPrice = priceInfo.getSingleFinalPrice();
String contractSid = baseMapper.selectBySid(busSalesOrder.getSid());
//单台成交价与单台订金相等
if (new BigDecimal(singleFinalPrice).compareTo(new BigDecimal(deposit)) != 0) {//推送车款
String money = new BigDecimal(singleFinalPrice).subtract(new BigDecimal(deposit)).subtract(new BigDecimal(solutionsDetailsVo.getFactoryDiscount())).add(new BigDecimal(solutionsDetailsVo.getServiceAmount())).toString();
@ -5259,6 +5271,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
for (int i = 0; i < vinList.size(); i++) {
UnCollectionDto unCollectionDto = new UnCollectionDto();
unCollectionDto.setContractNo(busSalesOrder.getContractNo());
unCollectionDto.setContractSid(contractSid);
//客户名称
unCollectionDto.setCustomerName(vo.getName());
//客户sid
@ -5299,6 +5312,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
String num = priceInfo.getNumber();
//单台成交价
String transactionPrice = priceInfo.getSingleFinalPrice();
String contractSid = baseMapper.selectBySid(busSalesOrder.getSid());
//单台成交价与单台订金相等
if (new BigDecimal(singleFinalPrice).compareTo(new BigDecimal(deposit)) != 0) {//推送车款
String money = new BigDecimal(solutionsDetailsVo.getRealTotal()).subtract(new BigDecimal(deposit)).toString();
@ -5306,6 +5320,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
for (int i = 0; i < vinList.size(); i++) {
UnCollectionDto unCollectionDto = new UnCollectionDto();
//合同编号
unCollectionDto.setContractSid(contractSid);
unCollectionDto.setContractNo(busSalesOrder.getContractNo());
//客户名称
unCollectionDto.setCustomerName(vo.getName());
@ -5347,6 +5362,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
String num = priceInfo.getNumber();
//单台成交价
String transactionPrice = priceInfo.getSingleFinalPrice();
String contractSid = baseMapper.selectBySid(busSalesOrder.getSid());
//单台成交价与单台订金相等
if (new BigDecimal(singleFinalPrice).compareTo(new BigDecimal(deposit)) != 0) {//推送车款
String money = new BigDecimal(singleFinalPrice).subtract(new BigDecimal(deposit)).toString();
@ -5354,6 +5370,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
for (int i = 0; i < vinList.size(); i++) {
UnCollectionDto unCollectionDto = new UnCollectionDto();
//合同编号
unCollectionDto.setContractSid(contractSid);
unCollectionDto.setContractNo(busSalesOrder.getContractNo());
//客户名称
unCollectionDto.setCustomerName(vo.getName());
@ -6542,7 +6559,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
}
public ResultBean rePublishSaleOrder(String saleOrderSid) throws InvocationTargetException, IllegalAccessException {
public ResultBean rePublishSaleOrder(String saleOrderSid, String customerSid, String customerName, String customerMobile) throws InvocationTargetException, IllegalAccessException {
ResultBean rb = ResultBean.fireFail();
String newSalesOrderSid = "";
boolean saleOrderSave = false;
@ -6567,6 +6584,16 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
newSalesOrder.setContractNo(null);
newSalesOrder.setCreateTime(createTime);
newSalesOrder.setModifyTime(modifyTime);
if(StringUtils.isNotBlank(customerSid)){
newSalesOrder.setCustomerSid(customerSid);
newSalesOrder.setCustomerName(customerName);
newSalesOrder.setMobile(customerMobile);
ResultBean<CrmCustomerTempVo> crmCustomerTempVoResultBean = crmCustomerTempFeign.fetchSid(customerSid);
if(crmCustomerTempVoResultBean.getData() != null){
newSalesOrder.setCustomerClass(crmCustomerTempVoResultBean.getData().getCustomerClass());
newSalesOrder.setCustomerClassKey(crmCustomerTempVoResultBean.getData().getCustomerClassKey());
}
}
saleOrderSave = this.save(newSalesOrder);
}
//根据销售订单sid 复制销售订单-订金信息
@ -6828,7 +6855,10 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
BusArrearsCarryVehicleApply busArrearsCarryVehicleApply = busArrearsCarryVehicleApplyService.fetchBySid(baseVehicleTempstate.getBusSid());
//根据合同和车辆查询该合同下是否还存在未提车的数据
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleService.selectByNoAndVinSid(busArrearsCarryVehicleApply.getContractNo(), baseVehicleTempstate.getVehSid());
stringList.add(busSalesOrderVehicle.getSid());
if(busSalesOrderVehicle != null){
stringList.add(busSalesOrderVehicle.getSid());
}
}
stringList.removeAll(Collections.singleton(null));
if (!stringList.isEmpty()) {

6
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finfundscarriedforwardveh/FinFundsCarriedForwardVeh.java

@ -31,6 +31,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* Project: anrui-fin(款项结转申请) <br/>
* File: FinFundsCarriedForwardVeh.java <br/>
@ -67,8 +69,8 @@ public class FinFundsCarriedForwardVeh extends BaseEntity {
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("剩余金额")
private String balance; // 剩余金额
private BigDecimal balance; // 剩余金额
@ApiModelProperty("本次使用金额")
private String thisUseMoney; // 本次使用金额
private BigDecimal thisUseMoney; // 本次使用金额
}

4
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectReceivablesDetailedWCKCLRKVo.java

@ -45,4 +45,8 @@ public class FinSelectReceivablesDetailedWCKCLRKVo implements Vo {
private String reveivableMoney;
@ApiModelProperty("款项状态")
private String state;
@ApiModelProperty("采购系统sid")
private String purchaseSystemSid;
@ApiModelProperty("采购系统名称")
private String purchaseSystemName;
}

4
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailed.java

@ -100,4 +100,8 @@ public class FinSelectedReceivablesDetailed extends BaseEntity {
private String kxState;
private String selectSid;
@ApiModelProperty("采购系统sid")
private String purchaseSystemSid;
@ApiModelProperty("采购系统名称")
private String purchaseSystemName;
}

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

@ -30,9 +30,13 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateDto;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateEnum;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateFeign;
import com.yxt.anrui.base.api.commonappendix.*;
import com.yxt.anrui.base.api.commoncontract.CommonContract;
@ -89,6 +93,7 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -98,6 +103,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
@ -158,6 +164,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
private FinKingDeeService finKingDeeService;
@Autowired
private FinFundsCarriedForwardVehService finFundsCarriedForwardVehService;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign;
private QueryWrapper<FinCollectionConfirmation> createQueryWrapper(FinCollectionConfirmationQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -190,7 +198,6 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (StringUtils.isNotBlank(query.getAuditState())) {
qw.eq("auditState", query.getAuditState());
}
// qw.ne("auditState", 0);
}
}
qw.orderByDesc("id");
@ -460,6 +467,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
BeanUtil.copyProperties(v, finSelectedReceivablesDetailed, "sid");
finSelectedReceivablesDetailed.setCollSid(finalSid);
finSelectedReceivablesDetailed.setUseOrgSid(finalUseOrgSid);
finSelectedReceivablesDetailed.setPurchaseSystemSid(finCollectionConfirmation.getPurchaseSystemSid());
finSelectedReceivablesDetailed.setPurchaseSystemName(finCollectionConfirmation.getPurchaseSystemName());
//设置审核状态为待审核(1待审核/2已驳回/3已审核)
finSelectedReceivablesDetailed.setAuditState(1);
finSelectedReceivablesDetailed.setCreateBySid(dto.getUserSid());
@ -506,6 +515,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
BeanUtil.copyProperties(v, finSelectedReceivablesDetailed, "sid");
finSelectedReceivablesDetailed.setCollSid(finalSid);
finSelectedReceivablesDetailed.setUseOrgSid(finCollectionConfirmation.getUseOrgSid());
finSelectedReceivablesDetailed.setPurchaseSystemSid(finCollectionConfirmation.getPurchaseSystemSid());
finSelectedReceivablesDetailed.setPurchaseSystemName(finCollectionConfirmation.getPurchaseSystemName());
//设置审核状态为待审核(1待审核/2已驳回/3已审核)
finSelectedReceivablesDetailed.setAuditState(1);
finSelectedReceivablesDetailed.setCreateBySid(dto.getUserSid());
@ -963,6 +974,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
for (AppFinSelectedReceivablesDetailedDto paymentDetail : finSelectedReceivablesDetailedDtos) {
FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = new FinSelectedReceivablesDetailed();
finSelectedReceivablesDetailed.setCurrentReceivableMoney(paymentDetail.getReceivable());
finSelectedReceivablesDetailed.setPurchaseSystemSid(finCollectionConfirmation.getPurchaseSystemSid());
finSelectedReceivablesDetailed.setPurchaseSystemName(finCollectionConfirmation.getPurchaseSystemName());
finSelectedReceivablesDetailed.setVIN(paymentDetail.getVin());
finSelectedReceivablesDetailed.setSubscriptionMoney(paymentDetail.getConfirmMoney());
finSelectedReceivablesDetailed.setContractNo(paymentDetail.getContractId());
@ -1777,6 +1790,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
log.info("收款单推送:" + resultBean2.getMsg());
}
//===========================================
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
//查询该申请下的所有待审核的款项明细
BigDecimal subscriptionMoneyAll = new BigDecimal("0");
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, 1);
@ -1880,7 +1894,13 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
leftAll = leftAll.add(singleFinalPrice);
rightAll = rightAll.add(bigDecimalVinAll);
}
//根据busVinSid查询待出库中是否存在该数据
if (leftAll.compareTo(rightAll) <= 0) {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.FIN_RQ.getTypeKey());
baseVehicleStateDto.setBusSid(finUncollectedReceivablesDetailed.getBusVinSid());
dtoList.add(baseVehicleStateDto);
}
//根据busVinSid查询待出库中是否存在该数据
ResultBean<BusDelivered> busDeliveredResultBean = busDeliveredFeign.selectByBusVinSid(finUncollectedReceivablesDetailed.getBusVinSid());
if (busDeliveredResultBean.getData() == null) {
if (leftAll.compareTo(rightAll) <= 0) {//推送待出库
@ -1928,6 +1948,21 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
//查询该申请已认款金额总数
subscriptionMoneyAll = finSelectedReceivablesDetailedVos.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
}
//==============================修改车辆的持久状态组装数据
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
if (!dtoList.isEmpty()) {
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
//查询该申请所有的款项明细
finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, 3);
//与收款金额作比较:更新认款状态 1未认款/2部分认款/3已认款
@ -2785,9 +2820,9 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
qw.and(wrapper -> wrapper.like("fcc.billNo", query.getName()).or().like("fcc.staffDeptName", query.getName()).or().like("fcc.staffName", query.getName()).or().like("fcc.payerName", query.getName()).or().like("bd.draweeMobile", query.getName()));
}
qw.groupBy("fsrd.sid");
if (StringUtils.isNotBlank(query.getCollectionSmallMoney()) && StringUtils.isNotBlank(query.getCollectionBigMoney())){
if (StringUtils.isNotBlank(query.getCollectionSmallMoney()) && StringUtils.isNotBlank(query.getCollectionBigMoney())) {
qw.having("balance > 0").having("balance >= {0}", query.getCollectionSmallMoney()).having("balance <= {0}", query.getCollectionBigMoney());
}else {
} else {
qw.having("balance > 0");
}
IPage<FinCollectionConfirmation> page = PagerUtil.queryToPage(pq);

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyMapper.java

@ -76,4 +76,6 @@ public interface FinFundsCarriedForwardApplyMapper extends BaseMapper<FinFundsCa
@Update("update fin_funds_carried_forward_apply set nodeState = #{nodeState} where sid = #{sid}")
void updateNodeStateBySid(@Param("nodeState") String nodeState,@Param("sid") String sid);
String selectByBusSid(String busSid);
}

21
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyMapper.xml

@ -66,4 +66,25 @@
</if>
WHERE sid = #{sid}
</update>
<select id="selectByBusSid" resultType="java.lang.String">
select ifnull(sum(dbalance), 0) as subscriptionMoney
from (SELECT d.sid,
d.receivablesSid,
d.`collSid`,
d.auditState,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0) +
COALESCE(ffa.`useMoney`, 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
left join fin_uncollected_receivables_detailed ff on ff.sid = d.receivablesSid
LEFT JOIN (SELECT fa.sid, ff.busSid, ff.thisUseMoney as useMoney
FROM fin_funds_carried_forward_apply fa
LEFT JOIN fin_funds_carried_forward_veh ff ON ff.mainSid = fa.sid
WHERE fa.nodeState = '终止') ffa on ffa.busSid = d.sid
WHERE d.auditState = 3
and ff.busVinSid = #{busVinSid}
GROUP BY d.`sid`) d
</select>
</mapper>

178
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyService.java

@ -30,8 +30,12 @@ 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.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateDto;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateEnum;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixDto;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo;
@ -52,10 +56,17 @@ import com.yxt.anrui.fin.api.finfundscarriedforwardveh.FinFundsCarriedForwardVeh
import com.yxt.anrui.fin.api.finfundscarriedforwardveh.FinFundsCarriedForwardVehDto;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable;
import com.yxt.anrui.fin.biz.fincollectionconfirmation.FinCollectionConfirmationService;
import com.yxt.anrui.fin.biz.finfundscarriedforwardveh.FinFundsCarriedForwardVehService;
import com.yxt.anrui.fin.biz.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedService;
import com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedService;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.fin.biz.kingdee.bdcustomer.BdCustomerService;
import com.yxt.anrui.fin.biz.kingdee.otherreceivablebill.OtherReceivableBillService;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
@ -85,11 +96,13 @@ import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
@ -117,7 +130,9 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
private FinKingDeeService finKingDeeService;
@Autowired
private BdCustomerService bdCustomerService;
@Autowired
private BaseVehicleFeign baseVehicleFeign;
@Autowired
@ -142,6 +157,10 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
private OtherReceivableBillService otherReceivableBillService;
@Autowired
private com.yxt.anrui.portal.api.flow.FlowableFeign flowableFeignPro;
@Autowired
private FinUncollectedReceivablesDetailedService finUncollectedReceivablesDetailedService;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign;
public PagerVo<FinFundsCarriedForwardApplyVo> listPageVo(PagerQuery<FinFundsCarriedForwardApplyQuery> pq) {
FinFundsCarriedForwardApplyQuery query = pq.getParams();
@ -201,6 +220,7 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
qw.and(wrapper -> wrapper.like("fa.applyDeptName", query.getName()).or().like("fa.createByName", query.getName()));
}
qw.groupBy("fa.sid");
qw.orderByDesc("fa.createTime");
IPage<FinFundsCarriedForwardApply> page = PagerUtil.queryToPage(pq);
IPage<FinFundsCarriedForwardApplyVo> pagging = baseMapper.selectPageVo(page, qw, query.getJzSmallMoney(), query.getJzBigMoney());
for (FinFundsCarriedForwardApplyVo record : pagging.getRecords()) {
@ -354,11 +374,13 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
finFundsCarriedForwardApplyDetailsVo.setPublishInfo(sysOrganizationVo.getName() + "-" + sysUserVo.getName());
finFundsCarriedForwardApplyDetailsVo.setCreateByDate(DateUtil.formatDate(new Date()));
FinCollectionConfirmation finCollectionConfirmation = null;
FinFundsCarriedForwardApply finFundsCarriedForwardApply = null;
for (String busSid : busSids) {
FinFundsCarriedForwardVehDetailsVo finFundsCarriedForwardVehDetailsVo = new FinFundsCarriedForwardVehDetailsVo();
finFundsCarriedForwardVehDetailsVo.setBusSid(busSid);
FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = finSelectedReceivablesDetailedService.fetchYeBySid(busSid);
finCollectionConfirmation = finCollectionConfirmationService.fetchBySid(finSelectedReceivablesDetailed.getCollSid());
finFundsCarriedForwardApply = fetchBySid(finSelectedReceivablesDetailed.getCollSid());
finFundsCarriedForwardVehDetailsVo.setBusBillNo(finSelectedReceivablesDetailed.getContractNo());
finFundsCarriedForwardVehDetailsVo.setCustomerSid(finSelectedReceivablesDetailed.getCustomerSid());
finFundsCarriedForwardVehDetailsVo.setCustomerName(finSelectedReceivablesDetailed.getCustomerName());
@ -366,11 +388,18 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
finFundsCarriedForwardVehDetailsVo.setBalance(finSelectedReceivablesDetailed.getBalance());
finFundsCarriedForwardVehDetailsVos.add(finFundsCarriedForwardVehDetailsVo);
}
finFundsCarriedForwardApplyDetailsVo.setSaleDeptSid(finCollectionConfirmation.getStaffDeptSid());
finFundsCarriedForwardApplyDetailsVo.setSaleDeptName(finCollectionConfirmation.getStaffDeptName());
SysUserVo sysUserVo1 = sysUserFeign.fetchBySid(finCollectionConfirmation.getStaffUserSid()).getData();
SysUserVo sysUserVo1 = null;
if (finCollectionConfirmation != null){
finFundsCarriedForwardApplyDetailsVo.setSaleDeptSid(finCollectionConfirmation.getStaffDeptSid());
finFundsCarriedForwardApplyDetailsVo.setSaleDeptName(finCollectionConfirmation.getStaffDeptName());
sysUserVo1 = sysUserFeign.fetchBySid(finCollectionConfirmation.getStaffUserSid()).getData();
}else {
finFundsCarriedForwardApplyDetailsVo.setSaleDeptSid(finFundsCarriedForwardApply.getSaleDeptSid());
finFundsCarriedForwardApplyDetailsVo.setSaleDeptName(finFundsCarriedForwardApply.getSaleDeptName());
sysUserVo1 = sysUserFeign.fetchBySid(finFundsCarriedForwardApply.getCreateBySid()).getData();
}
finFundsCarriedForwardApplyDetailsVo.setStaffSid(sysUserVo1.getStaffSid());
finFundsCarriedForwardApplyDetailsVo.setStaffName(finCollectionConfirmation.getStaffName());
finFundsCarriedForwardApplyDetailsVo.setStaffName(sysUserVo1.getName());
finFundsCarriedForwardApplyDetailsVo.setSource(finFundsCarriedForwardApplyInitQuery.getSource());
finFundsCarriedForwardApplyDetailsVo.setFinFundsCarriedForwardVehDetailsVos(finFundsCarriedForwardVehDetailsVos);
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(finFundsCarriedForwardApplyInitQuery.getOrgSidPath()).getData();
@ -451,6 +480,11 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
finSelectedReceivablesDetailed.setUseOrgSid(dto.getUseOrgSid());
finSelectedReceivablesDetailed.setSubscribedOf(yxysFinFundsCarriedForwardYXYSKXVo.getSubscribedOf());
finSelectedReceivablesDetailed.setCollSid(finFundsCarriedForwardApply.getSid());
finSelectedReceivablesDetailed.setKxState("01");
String receivablesSid = yxysFinFundsCarriedForwardYXYSKXVo.getReceivablesSid();
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(receivablesSid);
finSelectedReceivablesDetailed.setPurchaseSystemSid(finUncollectedReceivablesDetailed.getPurchaseSystemSid());
finSelectedReceivablesDetailed.setPurchaseSystemName(finUncollectedReceivablesDetailed.getPurchaseSystemName());
if ("已办结".equals(finFundsCarriedForwardApply.getNodeState())) {
finSelectedReceivablesDetailed.setAuditState(3);
}
@ -574,8 +608,8 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
dto.setIsOneSale(true);
String sid = saveOrUpdateAll(dto).getData();
finFundsCarriedForwardApply = fetchBySid(sid);
String pdfPath = createPdf(sid, finFundsCarriedForwardApply.getCreateByName()).getData();
baseMapper.updatePathBySid(pdfPath, sid);
//String pdfPath = createPdf(sid, finFundsCarriedForwardApply.getCreateByName()).getData();
//baseMapper.updatePathBySid(pdfPath, sid);
tsqtysd(sid);
return rb.success();
}
@ -606,6 +640,16 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
SysUserVo sysUserVo = sysUserFeign.fetchBySid(finFundsCarriedForwardApply.getCreateBySid()).getData();
if (sysUserVo.getStaffSid().equals(finFundsCarriedForwardApply.getStaffSid())) {
variables.put("isAdj", true);
List<String> orgPathList = Arrays.asList(finFundsCarriedForwardApply.getOrgSidPath().split("/"));
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData();
if (sysOrganization == null) {
return rb.setMsg("当前所在的组织机构不存在");
}
if (StringUtils.isBlank(sysOrganization.getManagerSid())) {
bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
}else {
bv.setNextNodeUserSids(sysOrganization.getManagerSid());
}
} else {
variables.put("isAdj", false);
SysUserVo userVo = sysUserFeign.selectByStaffsid(finFundsCarriedForwardApply.getStaffSid()).getData();
@ -681,7 +725,9 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
zc.setConNo(finFundsCarriedForwardVehDetailsVo.getBusBillNo());
zc.setName(finFundsCarriedForwardVehDetailsVo.getCustomerName());
zc.setVinNo(finFundsCarriedForwardVehDetailsVo.getVinNo());
zc.setDcje(Integer.valueOf(finFundsCarriedForwardVehDetailsVo.getThisUseMoney()));
String thisUseMoney = finFundsCarriedForwardVehDetailsVo.getThisUseMoney();
int index = thisUseMoney.indexOf(".");
zc.setDcje(Integer.parseInt(thisUseMoney.substring(0, index)));
zcList.add(zc);
}
for (AppFinFundsCarriedForwardYXYSKXVo yxysFinFundsCarriedForwardYXYSKXVo : yxysFinFundsCarriedForwardYXYSKXVos) {
@ -782,19 +828,43 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
* */
private String getCustNoCW(String busSid) {
String custNo = "";
BdCustomer bdCustomer = new BdCustomer();
FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = finSelectedReceivablesDetailedService.fetchBySid(busSid);
if ("1".equals(finSelectedReceivablesDetailed.getPayTypeKey())) {//全款
custNo = finSelectedReceivablesDetailed.getContractNo();
//判断金蝶中是否存在该客户
Boolean custaBoolean = finKingDeeService.customerExistState(custNo).getData();
if (!custaBoolean) {//不存在则创建全款客户
bdCustomer.setFNumber(custNo);
bdCustomer.setFName(finSelectedReceivablesDetailed.getCustomerName() + custNo);
//bdCustomer.setTOrgIds();
}
} else {//贷款
if (finSelectedReceivablesDetailed.getVIN().length() > 3) {
BaseVehicle baseVehicle = baseVehicleFeign.selectByVinNoAndOrgSid(finSelectedReceivablesDetailed.getVIN(), finSelectedReceivablesDetailed.getUseOrgSid()).getData();
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.selectByNoAndVinSid(finSelectedReceivablesDetailed.getContractNo(), baseVehicle.getSid()).getData();
custNo = busSalesOrderVehicle.getTemporaryNo();
//判断金蝶中是否存在该客户
Boolean custaBoolean = finKingDeeService.customerExistState(custNo).getData();
if (!custaBoolean) {//不存在则创建贷款客户
bdCustomer.setFNumber(custNo);
bdCustomer.setFName(finSelectedReceivablesDetailed.getCustomerName() + finSelectedReceivablesDetailed.getVIN().substring(finSelectedReceivablesDetailed.getVIN().length() - 8));
//bdCustomer.setTOrgIds();
bdCustomer.setFShortName(finSelectedReceivablesDetailed.getCustomerName() + custNo);
}
} else {
//没有车架号,拼接合同号和临时编号
custNo = finSelectedReceivablesDetailed.getContractNo() + finSelectedReceivablesDetailed.getVIN();
//判断金蝶中是否存在该客户
Boolean custaBoolean = finKingDeeService.customerExistState(custNo).getData();
if (!custaBoolean) {//不存在则创建临时类客户
bdCustomer.setFNumber(custNo);
bdCustomer.setFName(finSelectedReceivablesDetailed.getCustomerName() + custNo);
//bdCustomer.setTOrgIds();
}
}
}
bdCustomerService.draftBdCustomer(bdCustomer);
return custNo;
}
@ -1086,10 +1156,6 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
FinFundsCarriedForwardApply finFundsCarriedForwardApply = fetchBySid(businessSid);
//销售部门信息
SysOrganizationVo sysOrganizationVo1 = sysOrganizationFeign.fetchBySid(finFundsCarriedForwardApply.getSaleDeptSid()).getData();
//分公司信息
SysOrganizationVo sysOrganizationVo2 = sysOrganizationFeign.fetchBySid(finFundsCarriedForwardApply.getUseOrgSid()).getData();
FinFundsCarriedForwardApplyDetailsVo data = fetchDetailsVoBySid(businessSid).getData();
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
@ -1105,6 +1171,18 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
}
bv.setFormVariables(variables);
bv.setOrgSidPath(finFundsCarriedForwardApply.getOrgSidPath());
if ("Activity_1kve61q".equals(bv.getTaskDefKey())){
List<String> orgPathList = Arrays.asList(finFundsCarriedForwardApply.getOrgSidPath().split("/"));
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData();
if (sysOrganization == null) {
return rb.setMsg("当前所在的组织机构不存在");
}
if (StringUtils.isBlank(sysOrganization.getManagerSid())) {
bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
}else {
bv.setNextNodeUserSids(sysOrganization.getManagerSid());
}
}
if (bv.getTaskId().equals(finFundsCarriedForwardApply.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
@ -1113,8 +1191,8 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
String pdfPath = createPdf(finFundsCarriedForwardApply.getSid(), finFundsCarriedForwardApply.getCreateByName()).getData();
baseMapper.updatePathBySid(pdfPath, businessSid);
//String pdfPath = createPdf(finFundsCarriedForwardApply.getSid(), finFundsCarriedForwardApply.getCreateByName()).getData();
//baseMapper.updatePathBySid(pdfPath, businessSid);
List<AppFinFundsCarriedForwardYXYSKXVo> yxysFinFundsCarriedForwardYXYSKXVos = data.getYxysFinFundsCarriedForwardYXYSKXVos();
for (AppFinFundsCarriedForwardYXYSKXVo appFinFundsCarriedForwardYXYSKXVo : yxysFinFundsCarriedForwardYXYSKXVos) {
finSelectedReceivablesDetailedService.updateAuditStateBySid(3, appFinFundsCarriedForwardYXYSKXVo.getSid());
@ -1345,4 +1423,76 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
System.out.println(customerNoPrefix.length() > 30 ? customerNoPrefix.substring(0, 30) : customerNoPrefix);
return customerNoPrefix.length() > 30 ? customerNoPrefix.substring(0, 30) : customerNoPrefix;
}
public void jzComplete(String sid) {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
FinFundsCarriedForwardApply finFundsCarriedForwardApply = fetchBySid(sid);
//查询结转的款项
List<FinFundsCarriedForwardVeh> finFundsCarriedForwardVehList = finFundsCarriedForwardVehService.selectByCollSid(sid);
finFundsCarriedForwardVehList.removeAll(Collections.singleton(null));
if (!finFundsCarriedForwardVehList.isEmpty()) {
for (FinFundsCarriedForwardVeh v : finFundsCarriedForwardVehList) {
String busSid = v.getBusSid();
FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = finSelectedReceivablesDetailedService.fetchBySid(busSid);
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
//结转金额
//查询该车的所有认款,是否都已认完
String subscribute = baseMapper.selectByBusSid(finUncollectedReceivablesDetailed.getBusVinSid());
String receiableMoney = finUncollectedReceivablesDetailedService.selectByBusVinSid(finUncollectedReceivablesDetailed.getBusVinSid());
if (new BigDecimal(subscribute).compareTo(new BigDecimal(receiableMoney)) <= 0) {
//已认款完成
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.FIN_RQ.getTypeKey());
baseVehicleStateDto.setBusSid(finUncollectedReceivablesDetailed.getBusVinSid());
dtoList.add(baseVehicleStateDto);
} else {
//认款未完成
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.FIN_WRQ.getTypeKey());
baseVehicleStateDto.setBusSid(finUncollectedReceivablesDetailed.getBusVinSid());
dtoList.add(baseVehicleStateDto);
}
}
}
List<FinSelectedReceivablesDetailed> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.selectByOneCollSid(sid);
finSelectedReceivablesDetailedVos.removeAll(Collections.singleton(null));
if(!finSelectedReceivablesDetailedVos.isEmpty()){
for(FinSelectedReceivablesDetailed v : finSelectedReceivablesDetailedVos){
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(v.getReceivablesSid());
//查询该车的所有认款,是否都已认完
String subscribute = baseMapper.selectByBusSid(finUncollectedReceivablesDetailed.getBusVinSid());
String receiableMoney = finUncollectedReceivablesDetailedService.selectByBusVinSid(finUncollectedReceivablesDetailed.getBusVinSid());
if (new BigDecimal(subscribute).compareTo(new BigDecimal(receiableMoney)) <= 0) {
//已认款完成
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.FIN_RQ.getTypeKey());
baseVehicleStateDto.setBusSid(finUncollectedReceivablesDetailed.getBusVinSid());
dtoList.add(baseVehicleStateDto);
} else {
//认款未完成
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.FIN_WRQ.getTypeKey());
baseVehicleStateDto.setBusSid(finUncollectedReceivablesDetailed.getBusVinSid());
dtoList.add(baseVehicleStateDto);
}
}
}
//==============================修改车辆的持久状态组装数据
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
if (!dtoList.isEmpty()) {
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardveh/FinFundsCarriedForwardVehMapper.java

@ -79,4 +79,6 @@ public interface FinFundsCarriedForwardVehMapper extends BaseMapper<FinFundsCarr
String selectByBusSid(List<String> sidsList);
List<FinCustNameAndPhone> fetchNameAndPhoneByBusSid(String busSid);
List<FinFundsCarriedForwardVeh> selectByCollSid(String sid);
}

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardveh/FinFundsCarriedForwardVehMapper.xml

@ -62,4 +62,8 @@
ON fcc.`busSid` = bd.`billSid`
WHERE ffv.`busSid` = #{busSid}
</select>
<select id="selectByCollSid" resultType="com.yxt.anrui.fin.api.finfundscarriedforwardveh.FinFundsCarriedForwardVeh">
select * from fin_funds_carried_forward_veh where mainSid = #{sid}
</select>
</mapper>

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardveh/FinFundsCarriedForwardVehService.java

@ -166,4 +166,8 @@ public class FinFundsCarriedForwardVehService extends MybatisBaseService<FinFund
public List<FinCustNameAndPhone> fetchNameAndPhoneByBusSid(String busSid) {
return baseMapper.fetchNameAndPhoneByBusSid(busSid);
}
public List<FinFundsCarriedForwardVeh> selectByCollSid(String sid) {
return baseMapper.selectByCollSid(sid);
}
}

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java

@ -135,7 +135,6 @@ public interface FinSelectedReceivablesDetailedMapper extends BaseMapper<FinSele
@Select("select * from fin_selected_receivables_detailed where contractNo = #{contractNo}")
List<FinSelectedReceivablesDetailed> fetchByContractNo(String contractNo);
@Select("select * from fin_selected_receivables_detailed where receivablesSid = #{receivablesSid} and auditState = 3")
List<FinSelectedReceivablesDetailed> fetchByReceivablesSid(String receivablesSid);
String selectByVinSid(String busVinSid);
@ -163,4 +162,6 @@ public interface FinSelectedReceivablesDetailedMapper extends BaseMapper<FinSele
IPage<FinSelectReceivablesDetailedVo> selectPageLists(IPage<FinSelectedReceivablesPaymentDetailsQuery> page, @Param(Constants.WRAPPER) QueryWrapper<AppFinUncollectedReceivablesDetailedVo> qw, @Param("name") String name);
FinSelectedReceivablesDetailed fetchYeBySid(String busSid);
List<FinSelectedReceivablesDetailed> selectByOneCollSid(String sid);
}

454
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml

@ -25,51 +25,57 @@
<select id="getPaymentDetailsList"
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.AppFinUncollectedReceivablesDetailedVo">
SELECT distinct furd.sid,
furd.contractNo AS contractId,
furd.receivablesName AS projectName,
furd.customerPhone AS mobile,
furd.customerName AS `name`,
furd.customerSid,
furd.useOrgSid,
cast((furd.`reveivableMoney` - COALESCE(df.dbalance, 0)) AS DECIMAL (10, 2) ) AS receivable,
furd.contractSid,
if(bv.linkNo is null or LENGTH(trim(bv.linkNo)) &lt; 1,
if(furd.payTypeKey = 2, RIGHT(bv.temporaryNo, 2), bv.temporaryNo),
RIGHT(bv.linkNo, 8)) as vin,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
0 as subscribedOf,
furd.sid as receivablesSid,
CURRENT_DATE() as confirmDate,
furd.purchaseSystemSid
furd.contractNo AS contractId,
furd.receivablesName AS projectName,
furd.customerPhone AS mobile,
furd.customerName AS `name`,
furd.customerSid,
furd.useOrgSid,
cast((furd.`reveivableMoney` - COALESCE(df.dbalance, 0)) AS DECIMAL(10, 2)) AS receivable,
furd.contractSid,
if(bv.linkNo is null or LENGTH(trim(bv.linkNo)) &lt; 1,
if(furd.payTypeKey = 2, RIGHT(bv.temporaryNo, 2), bv.temporaryNo),
RIGHT(bv.linkNo, 8)) as vin,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
0 as subscribedOf,
furd.sid as receivablesSid,
CURRENT_DATE() as confirmDate,
furd.purchaseSystemSid
FROM fin_uncollected_receivables_detailed furd
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = furd.busVinSid
LEFT JOIN (
SELECT d.sid,
d.receivablesSid,
d.`collSid`,
cast((sum(d.`subscriptionMoney`) - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL (10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
where d.auditState = 1
or d.auditState = 3
GROUP BY d.`receivablesSid`
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = furd.busVinSid
LEFT JOIN (select sum(dbalance) as dbalance, d.receivablesSid
from (SELECT d.sid,
d.receivablesSid,
d.`collSid`,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0) +
COALESCE(ffa.`useMoney`, 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
LEFT JOIN (SELECT fa.sid, ff.busSid, ff.thisUseMoney as useMoney
FROM fin_funds_carried_forward_apply fa
LEFT JOIN fin_funds_carried_forward_veh ff ON ff.mainSid = fa.sid
WHERE fa.nodeState = '终止') ffa on ffa.busSid = d.sid
WHERE (d.auditState = 1 OR d.auditState = 3)
GROUP BY d.`sid`) d
group by d.receivablesSid
) df ON df.receivablesSid = furd.`sid`
<where>
${ew.sqlSegment}
<if test="name != null and name != ''">
and concat(IFNULL(furd.customerName
, '')
, ifnull(furd.contractNo
, '')
, ifnull(bv.linkNo
, '')) LIKE concat('%'
, #{name}
, '%')
, '')
, ifnull(furd.contractNo
, '')
, ifnull(bv.linkNo
, '')) LIKE concat('%'
, #{name}
, '%')
</if>
and length(furd.busVinSid)
>0
>0
</where>
having receivable>0
order by furd.contractNo desc
@ -78,32 +84,32 @@
<select id="getPaymentList"
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.AppFinUncollectedReceivablesDetailedVo">
SELECT sid,
contractNo AS contractId,
receivablesName AS projectName,
customerPhone AS mobile,
customerName AS `name`,
currentReceivableMoney AS receivable,
contractSid,
VIN AS vin,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
furd.customerSid,
furd.useOrgSid,
furd.reveivableMoney
contractNo AS contractId,
receivablesName AS projectName,
customerPhone AS mobile,
customerName AS `name`,
currentReceivableMoney AS receivable,
contractSid,
VIN AS vin,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
furd.customerSid,
furd.useOrgSid,
furd.reveivableMoney
FROM fin_uncollected_receivables_detailed furd
<where>
${ew.sqlSegment}
<if test="name != null and name != ''">
and concat(IFNULL(furd.customerName
, '')
, ifnull(furd.contractNo
, '')) LIKE concat('%'
, #{name}
, '%')
, '')
, ifnull(furd.contractNo
, '')) LIKE concat('%'
, #{name}
, '%')
</if>
and length(furd.busVinSid)
>0
>0
</where>
order by furd.contractNo desc
</select>
@ -155,7 +161,7 @@
resultType="com.yxt.anrui.fin.api.fincollectionconfirmation.app.AppBusArrearsCarryMoneyVo">
SELECT fsrd.subscriptionMoney
FROM fin_selected_receivables_detailed fsrd
LEFT JOIN fin_collection_confirmation fcc ON fcc.sid = fsrd.collSid
LEFT JOIN fin_collection_confirmation fcc ON fcc.sid = fsrd.collSid
WHERE fcc.paymentState = 1
</select>
@ -169,12 +175,25 @@
<select id="selectListByVin"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo">
select fd.*
from fin_selected_receivables_detailed fd
left join fin_uncollected_receivables_detailed fud on fud.sid = fd.receivablesSid
where fd.contractNo = #{contractNo}
and fud.busVinSid = #{busVinSid}
and fd.auditState = #{state}
select ifnull(sum(dbalance), 0) as subscriptionMoney
from (SELECT d.sid,
d.receivablesSid,
d.`collSid`,
d.auditState,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0) +
COALESCE(ffa.`useMoney`, 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
left join fin_uncollected_receivables_detailed ff on ff.sid = d.receivablesSid
LEFT JOIN (SELECT fa.sid, ff.busSid, ff.thisUseMoney as useMoney
FROM fin_funds_carried_forward_apply fa
LEFT JOIN fin_funds_carried_forward_veh ff ON ff.mainSid = fa.sid
WHERE fa.nodeState = '终止') ffa on ffa.busSid = d.sid
WHERE d.auditState = #{state}
and ff.busVinSid = #{busVinSid}
and d.contractNo = #{contractNo}
GROUP BY d.`sid`) d
</select>
<select id="getList"
@ -283,12 +302,24 @@
</select>
<select id="selectByVinSid" resultType="java.lang.String">
select cast((sum(fd.`subscriptionMoney`) - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
from fin_selected_receivables_detailed fd
left join fin_uncollected_receivables_detailed ff on ff.sid = fd.receivablesSid
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = fd.`sid`
where ff.busVinSid = #{busVinSid}
and fd.auditState = 3
select ifnull(sum(dbalance), 0) as subscriptionMoney
from (SELECT d.sid,
d.receivablesSid,
d.`collSid`,
d.auditState,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0) +
COALESCE(ffa.`useMoney`, 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
left join fin_uncollected_receivables_detailed ff on ff.sid = d.receivablesSid
LEFT JOIN (SELECT fa.sid, ff.busSid, ff.thisUseMoney as useMoney
FROM fin_funds_carried_forward_apply fa
LEFT JOIN fin_funds_carried_forward_veh ff ON ff.mainSid = fa.sid
WHERE fa.nodeState = '终止') ffa on ffa.busSid = d.sid
WHERE d.auditState = 3
and ff.busVinSid = #{busVinSid}
GROUP BY d.`sid`) d
</select>
<update id="updateAuditStateBySid">
@ -303,7 +334,8 @@
FROM fin_selected_receivables_detailed
WHERE receivablesSid = #{ysSid}
AND auditState = 3
ORDER BY createTime DESC LIMIT 1
ORDER BY createTime DESC
LIMIT 1
</select>
<select id="selectUnSelectList" resultType="java.lang.String">
@ -318,98 +350,98 @@
<select id="selectPageList"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectReceivablesDetailedVo">
select fd.sid,
fd.receivablesSid,
fd.contractNo,
fd.customerSid,
fd.customerName,
fd.customerPhone,
fd.receivablesName,
fd.currentReceivableMoney,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
fd.subscriptionMoney,
fd.useOrgSid,
fd.subscriptionDate
fd.receivablesSid,
fd.contractNo,
fd.customerSid,
fd.customerName,
fd.customerPhone,
fd.receivablesName,
fd.currentReceivableMoney,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
fd.subscriptionMoney,
fd.useOrgSid,
fd.subscriptionDate
from fin_selected_receivables_detailed fd
left join fin_uncollected_receivables_detailed furd on furd.sid = fd.receivablesSid
left join fin_uncollected_receivables_detailed furd on furd.sid = fd.receivablesSid
<where>
${ew.sqlSegment}
and fd.receivablesName != '订金'
and fd.auditState = 3
and fd.receivablesName != '订金'
and fd.auditState = 3
<if test="name != null and name != ''">
and concat(IFNULL(fd.customerName
, '')
, ifnull(fd.contractNo
, '')) LIKE concat('%'
, #{name}
, '%')
, '')
, ifnull(fd.contractNo
, '')) LIKE concat('%'
, #{name}
, '%')
</if>
</where>
</select>
<select id="noOutVehRecPageList"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectReceivablesDetailedWCKCLRKVo">
SELECT
ferd.sid,
fcc.createBySid AS createBySid,
fcc.`useOrgSid`,
fcc.`staffDeptName`,
fcc.staffUserSid AS staffSid,
fcc.`staffName`,
ferd.`contractNo`,
ferd.`payType`,
ferd.`customerName`,
ferd.`customerPhone`,
ferd.`VIN` AS vinNo,
ferd.`receivablesName`,
ferd.`auditDate`,
ferd.`subscriptionMoney`,
(
ferd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS reveivableMoney,
ferd.kxState AS state
FROM
fin_selected_receivables_detailed ferd
LEFT JOIN fin_collection_confirmation fcc
ON ferd.`collSid` = fcc.`sid`
LEFT JOIN anrui_base.`base_vehicle` bv
ON RIGHT(ferd.`VIN`, 8) = RIGHT(bv.`vinNo`, 8)
AND fcc.`useOrgSid` = bv.`createOrgSid`
LEFT JOIN `fin_funds_carried_forward_veh` ffc
ON ffc.`busSid` = ferd.`sid`
SELECT ferd.sid,
fcc.createBySid AS createBySid,
fcc.`useOrgSid`,
fcc.`staffDeptName`,
fcc.staffUserSid AS staffSid,
fcc.`staffName`,
ferd.`contractNo`,
ferd.`payType`,
ferd.`customerName`,
ferd.`customerPhone`,
ferd.`VIN` AS vinNo,
ferd.`receivablesName`,
ferd.`auditDate`,
ferd.`subscriptionMoney`,
ferd.purchaseSystemSid,
ferd.purchaseSystemName,
(
ferd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS reveivableMoney,
ferd.kxState AS state
FROM fin_selected_receivables_detailed ferd
LEFT JOIN fin_collection_confirmation fcc
ON ferd.`collSid` = fcc.`sid`
LEFT JOIN anrui_base.`base_vehicle` bv
ON RIGHT(ferd.`VIN`, 8) = RIGHT(bv.`vinNo`, 8)
AND fcc.`useOrgSid` = bv.`createOrgSid`
LEFT JOIN `fin_funds_carried_forward_veh` ffc
ON ffc.`busSid` = ferd.`sid`
<where>
${ew.SqlSegment}
</where>
UNION
SELECT
ferd.sid,
ffcfa.createBySid AS createBySid,
ffcfa.useOrgSid,
ffcfa.saleDeptName AS staffDeptName,
ffcfa.staffSid,
ffcfa.`staffName`,
ferd.`contractNo`,
ferd.`payType`,
ferd.`customerName`,
ferd.`customerPhone`,
ferd.`VIN` AS vinNo,
ferd.`receivablesName`,
ferd.`auditDate`,
ferd.`subscriptionMoney`,
(
ferd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS reveivableMoney,
ferd.kxState AS state
FROM
fin_selected_receivables_detailed ferd
LEFT JOIN fin_funds_carried_forward_apply ffcfa
ON ferd.`collSid` = ffcfa.`sid`
LEFT JOIN anrui_base.`base_vehicle` bv
ON RIGHT(ferd.`VIN`, 8) = RIGHT(bv.`vinNo`, 8)
AND ffcfa.`useOrgSid` = bv.`createOrgSid`
LEFT JOIN `fin_funds_carried_forward_veh` ffc
ON ffc.`busSid` = ferd.`sid`
SELECT ferd.sid,
ffcfa.createBySid AS createBySid,
ffcfa.useOrgSid,
ffcfa.saleDeptName AS staffDeptName,
ffcfa.staffSid,
ffcfa.`staffName`,
ferd.`contractNo`,
ferd.`payType`,
ferd.`customerName`,
ferd.`customerPhone`,
ferd.`VIN` AS vinNo,
ferd.`receivablesName`,
ferd.`auditDate`,
ferd.`subscriptionMoney`,
ferd.purchaseSystemSid,
ferd.purchaseSystemName,
(
ferd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS reveivableMoney,
ferd.kxState AS state
FROM fin_selected_receivables_detailed ferd
LEFT JOIN fin_funds_carried_forward_apply ffcfa
ON ferd.`collSid` = ffcfa.`sid`
LEFT JOIN anrui_base.`base_vehicle` bv
ON RIGHT(ferd.`VIN`, 8) = RIGHT(bv.`vinNo`, 8)
AND ffcfa.`useOrgSid` = bv.`createOrgSid`
LEFT JOIN `fin_funds_carried_forward_veh` ffc
ON ffc.`busSid` = ferd.`sid`
<where>
${ew.sqlSegment}
</where>
@ -426,55 +458,61 @@
<select id="selectPageLists"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectReceivablesDetailedVo">
select distinct fd.sid,
fd.receivablesSid,
fd.contractNo,
fd.customerSid,
fd.customerName,
fd.customerPhone,
fd.receivablesName,
fd.currentReceivableMoney,
cast((furd.`reveivableMoney` - COALESCE(df.dbalance, 0)) AS DECIMAL(10, 2)) AS dbalance,
if(fd.currentReceivableMoney &lt;= 0, 0,
if(cast((fd.currentReceivableMoney - fd.subscriptionMoney) AS DECIMAL(10, 2)) &lt;= 0, 0,
cast((fd.currentReceivableMoney - fd.subscriptionMoney) AS DECIMAL(10, 2)))) as reveivableMoney,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
fd.subscriptionMoney,
fd.useOrgSid,
fd.subscriptionDate,
if(bv.linkNo is null or LENGTH(trim(bv.linkNo)) &lt; 1,
if(furd.payTypeKey = 2, RIGHT(bv.temporaryNo, 2), bv.temporaryNo),
RIGHT(bv.linkNo, 8)) as VIN,
CURRENT_DATE() as confirmDate,
1 as subscribedOf
fd.receivablesSid,
fd.contractNo,
fd.customerSid,
fd.customerName,
fd.customerPhone,
fd.receivablesName,
fd.currentReceivableMoney,
cast((furd.`reveivableMoney` - COALESCE(df.dbalance, 0)) AS DECIMAL(10, 2)) AS dbalance,
if(fd.currentReceivableMoney &lt;= 0, 0,
if(cast((fd.currentReceivableMoney - fd.subscriptionMoney) AS DECIMAL(10, 2)) &lt;= 0, 0,
cast((fd.currentReceivableMoney - fd.subscriptionMoney) AS DECIMAL(10, 2)))) as reveivableMoney,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
fd.subscriptionMoney,
fd.useOrgSid,
fd.subscriptionDate,
if(bv.linkNo is null or LENGTH(trim(bv.linkNo)) &lt; 1,
if(furd.payTypeKey = 2, RIGHT(bv.temporaryNo, 2), bv.temporaryNo),
RIGHT(bv.linkNo, 8)) as VIN,
CURRENT_DATE() as confirmDate,
1 as subscribedOf
from fin_selected_receivables_detailed fd
left join fin_uncollected_receivables_detailed furd on furd.sid = fd.receivablesSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = furd.busVinSid
LEFT JOIN (
SELECT d.sid,
d.receivablesSid,
d.`collSid`,
cast((sum(d.`subscriptionMoney`) - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
where d.auditState = 1
or d.auditState = 3
GROUP BY d.`receivablesSid`
left join fin_uncollected_receivables_detailed furd on furd.sid = fd.receivablesSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = furd.busVinSid
LEFT JOIN (select sum(dbalance) as dbalance, d.receivablesSid
from (SELECT d.sid,
d.receivablesSid,
d.`collSid`,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0) +
COALESCE(ffa.`useMoney`, 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
LEFT JOIN (SELECT fa.sid, ff.busSid, ff.thisUseMoney as useMoney
FROM fin_funds_carried_forward_apply fa
LEFT JOIN fin_funds_carried_forward_veh ff ON ff.mainSid = fa.sid
WHERE fa.nodeState = '终止') ffa on ffa.busSid = d.sid
WHERE (d.auditState = 1 OR d.auditState = 3)
GROUP BY d.`sid`) d
group by d.receivablesSid
) df ON df.receivablesSid = furd.`sid`
<where>
${ew.sqlSegment}
and fd.receivablesName != '订金'
and fd.auditState = 3
and fd.receivablesName != '订金'
and fd.auditState = 3
<if test="name != null and name != ''">
and concat(IFNULL(fd.customerName
, '')
, ifnull(fd.contractNo
, '')
, ifnull(bv.linkNo
, '')) LIKE concat('%'
, #{name}
, '%')
, '')
, ifnull(fd.contractNo
, '')
, ifnull(bv.linkNo
, '')) LIKE concat('%'
, #{name}
, '%')
</if>
</where>
having dbalance &lt;= 0
@ -496,12 +534,40 @@
fsrd.`VIN`,
fsrd.collSid,
(
fsrd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS balance
fsrd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS balance
FROM fin_selected_receivables_detailed fsrd
LEFT JOIN `fin_funds_carried_forward_veh` ffc
ON ffc.`busSid` = fsrd.`sid`
LEFT JOIN `fin_funds_carried_forward_veh` ffc
ON ffc.`busSid` = fsrd.`sid`
WHERE fsrd.`sid` = #{busSid}
GROUP BY fsrd.sid
</select>
<select id="fetchByReceivablesSid"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed">
select ifnull(sum(dbalance), 0) as subscriptionMoney, d.receivablesSid
from (SELECT d.sid,
d.receivablesSid,
d.`collSid`,
d.auditState,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0) +
COALESCE(ffa.`useMoney`, 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
LEFT JOIN (SELECT fa.sid, ff.busSid, ff.thisUseMoney as useMoney
FROM fin_funds_carried_forward_apply fa
LEFT JOIN fin_funds_carried_forward_veh ff ON ff.mainSid = fa.sid
WHERE fa.nodeState = '终止') ffa on ffa.busSid = d.sid
WHERE d.auditState = 3
GROUP BY d.`sid`) d
WHERE d.receivablesSid = #{receivablesSid}
</select>
<select id="selectByOneCollSid"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed">
select *
from fin_selected_receivables_detailed
where collSid = #{sid}
</select>
</mapper>

12
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java

@ -600,12 +600,20 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
PagerVo<FinSelectReceivablesDetailedWCKCLRKVo> p = new PagerVo<>();
return p;
}
qw.having("reveivableMoney > 0");
IPage<FinSelectedReceivablesDetailed> page = PagerUtil.queryToPage(pagerQuery);
IPage<FinSelectReceivablesDetailedWCKCLRKVo> pagging = baseMapper.noOutVehRecPageList(page, qw);
for (FinSelectReceivablesDetailedWCKCLRKVo record : pagging.getRecords()) {
String useOrgSid = record.getUseOrgSid();
String useOrgName = sysOrganizationFeign.fetchBySid(useOrgSid).getData().getName();
record.setUseOrgName(useOrgName);
if ("01".equals(record.getState())){
record.setState("正常");
}else if ("02".equals(record.getState())){
record.setState("退车");
}else if ("03".equals(record.getState())){
record.setState("作废");
}
}
PagerVo<FinSelectReceivablesDetailedWCKCLRKVo> p = PagerUtil.pageToVo(pagging, null);
return p;
@ -626,4 +634,8 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
public FinSelectedReceivablesDetailed fetchYeBySid(String busSid) {
return baseMapper.fetchYeBySid(busSid);
}
public List<FinSelectedReceivablesDetailed> selectByOneCollSid(String sid) {
return baseMapper.selectByOneCollSid(sid);
}
}

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.java

@ -102,4 +102,6 @@ public interface FinUncollectedReceivablesDetailedMapper extends BaseMapper<FinU
List<String> selectByCreateBySidOne(String userSid);
List<String> selectSidBybusVinSidAndConNo(@Param("busVinSid") String busVinSid, @Param("contractNo") String contractNo);
String selectByBusVinSid(String busVinSid);
}

98
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.xml

@ -7,12 +7,11 @@
<select id="selectPageVo"
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedVo">
SELECT
*
SELECT *
from fin_uncollected_receivables_detailed
<where>
${ew.sqlSegment}
ORDER BY createTime DESC ,id
ORDER BY createTime DESC, id
</where>
</select>
@ -53,38 +52,45 @@
</where>
order by id asc-->
SELECT distinct furd.sid,
furd.contractNo AS contractNo,
furd.receivablesName AS receivablesName,
furd.customerPhone AS customerPhone,
furd.customerName AS `customerName`,
furd.customerSid,
furd.useOrgSid,
cast((furd.`reveivableMoney` - COALESCE(df.dbalance, 0)) AS DECIMAL (10, 2) ) AS currentReceivableMoney,
furd.reveivableMoney,
furd.contractSid,
if(bv.linkNo is null or LENGTH(trim(bv.linkNo)) &lt; 1,
if(furd.payTypeKey = 2, RIGHT(bv.temporaryNo, 2), bv.temporaryNo),
RIGHT(bv.linkNo, 8)) as VIN,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
0 as subscribedOf,
furd.sid as receivablesSid
furd.contractNo AS contractNo,
furd.receivablesName AS receivablesName,
furd.customerPhone AS customerPhone,
furd.customerName AS `customerName`,
furd.customerSid,
furd.useOrgSid,
cast((furd.`reveivableMoney` - COALESCE(df.dbalance, 0)) AS DECIMAL(10, 2)) AS currentReceivableMoney,
furd.reveivableMoney,
furd.contractSid,
if(bv.linkNo is null or LENGTH(trim(bv.linkNo)) &lt; 1,
if(furd.payTypeKey = 2, RIGHT(bv.temporaryNo, 2), bv.temporaryNo),
RIGHT(bv.linkNo, 8)) as VIN,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
0 as subscribedOf,
furd.sid as receivablesSid
FROM fin_uncollected_receivables_detailed furd
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = furd.busVinSid
LEFT JOIN (
SELECT d.sid,
d.receivablesSid,
d.`collSid`,
cast((sum(d.`subscriptionMoney`) - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL (10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
where (d.auditState = 1 or d.auditState = 3)
GROUP BY d.`receivablesSid`
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = furd.busVinSid
LEFT JOIN (select sum(dbalance) as dbalance, d.receivablesSid
from (SELECT d.sid,
d.receivablesSid,
d.`collSid`,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0) +
COALESCE(ffa.`useMoney`, 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
LEFT JOIN (SELECT fa.sid, ff.busSid, ff.thisUseMoney as useMoney
FROM fin_funds_carried_forward_apply fa
LEFT JOIN fin_funds_carried_forward_veh ff ON ff.mainSid = fa.sid
WHERE fa.nodeState = '终止') ffa on ffa.busSid = d.sid
WHERE (d.auditState = 1 OR d.auditState = 3)
GROUP BY d.`sid`) d
group by d.receivablesSid
) df ON df.receivablesSid = furd.`sid`
<where>
${ew.sqlSegment}
and length(furd.busVinSid)>0
and length(furd.busVinSid) > 0
</where>
having currentReceivableMoney>0
order by furd.contractNo desc
@ -93,13 +99,13 @@
<select id="getCustomerBillList"
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.AppCustomerBillSummaryDetailsVo">
SELECT contractSid,
contractNo AS contractId,
customerSid,
customerName,
customerClassKey AS customerKey,
customerImage,
receivablesName,
currentReceivableMoney AS receivable
contractNo AS contractId,
customerSid,
customerName,
customerClassKey AS customerKey,
customerImage,
receivablesName,
currentReceivableMoney AS receivable
FROM fin_uncollected_receivables_detailed furd
<where>
${ew.sqlSegment}
@ -108,10 +114,10 @@
<select id="getCustomerBill2List"
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.AppCustomerBillSummaryVo">
SELECT sid AS paymentSid,
paymentTypeValue AS payType,
receivablesName,
currentReceivableMoney AS receivable
SELECT sid AS paymentSid,
paymentTypeValue AS payType,
receivablesName,
currentReceivableMoney AS receivable
FROM fin_uncollected_receivables_detailed furd
<where>
${ew.sqlSegment}
@ -155,7 +161,8 @@
ON fs.collSid = fc.sid
where fu.sid = #{detailedSid}
AND fs.auditState = 3
ORDER BY fc.confirmDate DESC limit 1
ORDER BY fc.confirmDate DESC
limit 1
</select>
<select id="receivedSelect" resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.ReceiveSeleteVo">
@ -199,12 +206,13 @@
and (fun1.receivablesName = '首付款及费用' or fun1.receivablesName = '车款')
</select>
<select id="selectSidBybusVinSidAndConNo" resultType="java.lang.String">
SELECT sid
FROM fin_uncollected_receivables_detailed
WHERE busVinSid = #{busVinSid}
and contractNo = #{contractNo}
</select>
<select id="selectByBusVinSid" resultType="java.lang.String">
select sum(reveivableMoney) from fin_uncollected_receivables_detailed where busVinSid = #{busVinSid}
</select>
</mapper>

11
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java

@ -471,7 +471,12 @@ public class FinUncollectedReceivablesDetailedService extends MybatisBaseService
record.setSubscriptionMoney(String.valueOf(sum));
BigDecimal reveivableMoney = new BigDecimal(record.getReveivableMoney());
BigDecimal noSubscriptionMoney = reveivableMoney.subtract(sum);
record.setNoSubscriptionMoney(String.valueOf(noSubscriptionMoney));
if(noSubscriptionMoney.compareTo(BigDecimal.ZERO)<0){
record.setNoSubscriptionMoney(String.valueOf(new BigDecimal("0")));
}else{
record.setNoSubscriptionMoney(String.valueOf(noSubscriptionMoney));
}
String busVinSid = record.getBusVinSid();
BusSalesOrderVehicle data = busSalesOrderVehicleFeign.fetchBySalesOrderVehiclerSid(busVinSid).getData();
if (null != data) {
@ -972,4 +977,8 @@ public class FinUncollectedReceivablesDetailedService extends MybatisBaseService
List<String> stringList = baseMapper.selectByCreateBySidOne(userSid);
return rb.success().setData(stringList);
}
public String selectByBusVinSid(String busVinSid) {
return baseMapper.selectByBusVinSid(busVinSid);
}
}

60
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/OtherReceivableBillService.java

@ -19,44 +19,56 @@ public class OtherReceivableBillService extends FinKingDeeService {
/**
* 生成的其他应收单的数据推送到金蝶的平台中
*
* @param otherReceivable
* @return
*/
public ResultBean otherReceivableBillService(OtherReceivable otherReceivable) {
ResultBean rb=ResultBean.fireFail();
ResultBean rb = ResultBean.fireFail();
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
Map<String, String> map_fEntityModel_ = new HashMap<>();
//物料的数组集合
//单据编号
if(otherReceivable.getBillNo()==null){
if (otherReceivable.getBillNo() == null) {
return rb.setMsg("单据编号不能为空");
}
map_fEntityModel_.put("FBillNo",otherReceivable.getBillNo());
map_fEntityModel_.put("FBillNo", otherReceivable.getBillNo());
//业务日期
if(otherReceivable.getBussDate()==null){
if (otherReceivable.getBussDate() == null) {
return rb.setMsg("业务日期不能为空");
}
map_fEntityModel_.put("FDATE",otherReceivable.getBussDate());
map_fEntityModel_.put("FDATE", otherReceivable.getBussDate());
//客户
if(otherReceivable.getCommUnit()==null){
if (otherReceivable.getCommUnit() == null) {
return rb.setMsg("客户编码不能为空");
}
map_fEntityModel_.put("FCONTACTUNIT",otherReceivable.getCommUnit());
map_fEntityModel_.put("FCONTACTUNIT", otherReceivable.getCommUnit());
//收款组织
if(otherReceivable.getCollectionOrg()==null){
if (otherReceivable.getCollectionOrg() == null) {
return rb.setMsg("收款组织不能为空");
}
map_fEntityModel_.put("FPAYORGID",otherReceivable.getCollectionOrg());
map_fEntityModel_.put("FSETTLEORGID",otherReceivable.getCollectionOrg());
List<OtherReceivable.CollectionDetailDto> collectionDetails = otherReceivable.getCollectionDetails()==null?new ArrayList<>(): otherReceivable.getCollectionDetails();
map_fEntityModel_.put("FPAYORGID", otherReceivable.getCollectionOrg());
map_fEntityModel_.put("FSETTLEORGID", otherReceivable.getCollectionOrg());
List<OtherReceivable.CollectionDetailDto> collectionDetails = otherReceivable.getCollectionDetails() == null ? new ArrayList<>() : otherReceivable.getCollectionDetails();
//准备 物料列表的数据
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForReceivableBill(collectionDetails);
if(!vehicleListMap.getSuccess()){
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForReceivableBill(collectionDetails);
if (!vehicleListMap.getSuccess()) {
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData = OtherReceivableBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData());
String kingDeeData = OtherReceivableBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_, vehicleListMap.getData());
try {
return accessKingDeeInterface(KingDeeBillId.AR_OTHERRECEIVABLE.getID(),kingDeeData, KingDeeBillUrl.DRAFT_URL.getURL());
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.AR_OTHERRECEIVABLE.getID(), kingDeeData, KingDeeBillUrl.DRAFT_URL.getURL());
if(!resultBean1.getSuccess()){
log.info("其他应收单保存失败!");
return rb.setMsg("其他应收单保存失败!");
}
log.info("其他应收单保存成功!");
ResultBean<String> resultBean2 = accessKingDeeInterface(KingDeeBillId.AR_OTHERRECEIVABLE.getID(), kingDeeData, KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean2.getSuccess()){
log.info("其他应收单提交失败!");
return rb.setMsg("其他应收单提交失败!");
}
log.info("其他应收单提交成功!");
} catch (Exception e) {
e.printStackTrace();
}
@ -64,19 +76,19 @@ public class OtherReceivableBillService extends FinKingDeeService {
}
public ResultBean<List<Map<String, String>>> createVehicleListsForReceivableBill(List<OtherReceivable.CollectionDetailDto> collectionDetails) {
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail();
List<Map<String,String>> collectionDetailMap=new ArrayList<>();
for(int i = 0; i< collectionDetails.size(); i++){
ResultBean<List<Map<String, String>>> rb = ResultBean.fireFail();
List<Map<String, String>> collectionDetailMap = new ArrayList<>();
for (int i = 0; i < collectionDetails.size(); i++) {
OtherReceivable.CollectionDetailDto c = collectionDetails.get(i);
Map<String,String> m=new HashMap<>();
if(StringUtils.isBlank(c.getDearDept())){
Map<String, String> m = new HashMap<>();
if (StringUtils.isBlank(c.getDearDept())) {
return rb.setMsg("承担部门不能为空");
}
if(StringUtils.isBlank(c.getExTaxMoney())){
if (StringUtils.isBlank(c.getExTaxMoney())) {
return rb.setMsg("不含税金额不能为空");
}
m.put("FCOSTDEPARTMENTID",c.getDearDept());
m.put("FNOTAXAMOUNTFOR",c.getExTaxMoney());
m.put("FCOSTDEPARTMENTID", c.getDearDept());
m.put("FNOTAXAMOUNTFOR", c.getExTaxMoney());
collectionDetailMap.add(m);
}
return rb.success().setData(collectionDetailMap);

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/data_model.json

@ -5,7 +5,7 @@
},
"FBillNo": "@KD_FBillNo",
"FDATE": "@KD_FDATE",
"FENDDATE_H": "1900-01-01",
"FENDDATE_H": "@KD_FDATE",
"FISINIT": "false",
"FCONTACTUNITTYPE": "BD_Customer",
"FCONTACTUNIT": {

6
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowRest.java

@ -59,8 +59,10 @@ public class FlowRest implements FlowFeign {
formVariables.put("createrOrgPath", orgPath);
formVariables.put("businessSid", bv.getBusinessSid());
//获取下一环节待办人
ResultBean<String> userResultBean = flowService.getNextNodeUser(bv);
bv.setNextNodeUserSids(userResultBean.getData());
if(StringUtils.isBlank(bv.getNextNodeUserSids())){
ResultBean<String> userResultBean = flowService.getNextNodeUser(bv);
bv.setNextNodeUserSids(userResultBean.getData());
}
//启动流程实例
ResultBean<UpdateFlowFieldVo> startResultBean = flowService.businessStartProcessInstanceById(bv);
return startResultBean;

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

@ -4,10 +4,7 @@ import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -63,4 +60,8 @@ public interface AppSubsetVersionFeign {
@GetMapping("/getLastByAppSid")
ResultBean<AppSubVersionVo> selectLast();
@ApiOperation("查询插件最新模块信息")
@GetMapping("/getLastRiskByAppSid")
ResultBean<AppSubVersionVo> getLastRiskByAppSid(@RequestParam("appSid") String appSid, @RequestParam("moduleAction")String moduleAction);
}

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appsubsetversion/AppSubsetVersionFeignFallback.java

@ -53,4 +53,9 @@ public class AppSubsetVersionFeignFallback implements AppSubsetVersionFeign {
public ResultBean<AppSubVersionVo> selectLast() {
return null;
}
@Override
public ResultBean<AppSubVersionVo> getLastRiskByAppSid(String appSid,String moduleAction) {
return null;
}
}

13
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/appsubsetversion/AppSubsetVersionRest.java

@ -253,4 +253,17 @@ public class AppSubsetVersionRest implements AppSubsetVersionFeign {
vo.setModuleAction("com.anrui.android.plugin.autoservice.common.CarlModelConfigDetailActivity");
return rb.success().setData(vo);
}
@Override
public ResultBean<AppSubVersionVo> getLastRiskByAppSid(String appSid,String moduleAction) {
ResultBean<AppSubVersionVo> rb = ResultBean.fireFail();
AppSubVersionVo vo = new AppSubVersionVo();
ResultBean<AppSubsetVersionVo> resultBean = getLastByAppSid(appSid);
AppSubsetVersionVo appSubsetVersionVo = resultBean.getData();
BeanUtil.copyProperties(appSubsetVersionVo, vo);
vo.setModuleVersion(appSubsetVersionVo.getVersionCode());
vo.setPath(fileUploadComponent.getUrlPrefix() + appSubsetVersionVo.getUpdateUrl());
vo.setModuleAction(moduleAction);
return rb.success().setData(vo);
}
}

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinotherPolicy/LoanFinOtherPolicyFeign.java

@ -7,6 +7,8 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @description: 其他融产品
* @author: dimengzhe
@ -23,4 +25,8 @@ public interface LoanFinOtherPolicyFeign {
@GetMapping("details")
@ApiOperation("详情")
ResultBean<LoanFinOtherPolicyVos> details(@RequestParam("sid") String sid);
@GetMapping("selectList")
@ApiOperation("获取产品政策下其他融,或分公司下其他融")
ResultBean<List<OtherPolicyVo>> selectList(@RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid, @RequestParam("sid") String sid);
}

18
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinotherPolicy/OtherPolicyVo.java

@ -0,0 +1,18 @@
package com.yxt.anrui.riskcenter.api.loanfinotherPolicy;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/25
**/
@Data
public class OtherPolicyVo implements Vo {
private static final long serialVersionUID = 699706797731138466L;
private String sid;
private String name;
}

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyFeign.java

@ -8,6 +8,8 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -52,4 +54,8 @@ public interface LoanFinPolicyFeign {
@ApiOperation("app金融产品常规详情")
@GetMapping("getProductInfo")
ResultBean<AppPolicyDetailsVo> getProductInfo(@RequestParam("sid") String sid);
@ApiOperation("已备案的产品政策(分公司,有效期内)")
@GetMapping("selectList")
ResultBean<List<PolicyVo>> selectList(@RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid,@RequestParam("isPack") String isPack);
}

18
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/PolicyVo.java

@ -0,0 +1,18 @@
package com.yxt.anrui.riskcenter.api.loanfinpolicy;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/25
**/
@Data
public class PolicyVo implements Vo {
private static final long serialVersionUID = -2134939652790330324L;
private String name;
private String sid;
}

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpreloancreditapply/LoanPreloanCreditApply.java

@ -75,6 +75,8 @@ public class LoanPreloanCreditApply extends BaseEntity {
private String useOrgName; // 分公司名称
@ApiModelProperty("组织全路径")
private String orgSidPath; // 组织全路径
@ApiModelProperty("公司风控结果key")
private String gsfkjgKey;
@ApiModelProperty("公司风控结果")
private String gsfkjg;
@ApiModelProperty("公司审核日期")
@ -83,6 +85,8 @@ public class LoanPreloanCreditApply extends BaseEntity {
private String gsshRemarks;
@ApiModelProperty("资方余额")
private String capitalBalance;
@ApiModelProperty("资方风控结果key")
private String zffkjgKey;
@ApiModelProperty("资方风控结果")
private String zffkjg;
@ApiModelProperty("资方审核日期")

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpreloancreditapply/LoanPreloanCreditApplyDetailsVo.java

@ -86,6 +86,8 @@ public class LoanPreloanCreditApplyDetailsVo implements Vo {
private String useOrgName; // 分公司名称
@ApiModelProperty("组织全路径")
private String orgSidPath; // 组织全路径
@ApiModelProperty("公司风控结果key")
private String gsfkjgKey;
@ApiModelProperty("公司风控结果")
private String gsfkjg;
@ApiModelProperty("公司审核日期")
@ -94,6 +96,8 @@ public class LoanPreloanCreditApplyDetailsVo implements Vo {
private String gsshRemarks;
@ApiModelProperty("资方余额")
private String capitalBalance;
@ApiModelProperty("资方风控结果key")
private String zffkjgKey;
@ApiModelProperty("资方风控结果")
private String zffkjg;
@ApiModelProperty("资方审核日期")

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpreloancreditapply/LoanPreloanCreditApplyDto.java

@ -81,6 +81,8 @@ public class LoanPreloanCreditApplyDto implements Dto {
private String useOrgName; // 分公司名称
@ApiModelProperty("组织全路径")
private String orgSidPath; // 组织全路径
@ApiModelProperty("公司风控结果key")
private String gsfkjgKey;
@ApiModelProperty("公司风控结果")
private String gsfkjg;
@ApiModelProperty("公司审核日期")
@ -89,6 +91,8 @@ public class LoanPreloanCreditApplyDto implements Dto {
private String gsshRemarks;
@ApiModelProperty("资方余额")
private String capitalBalance;
@ApiModelProperty("资方风控结果key")
private String zffkjgKey;
@ApiModelProperty("资方风控结果")
private String zffkjg;
@ApiModelProperty("资方审核日期")

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpreloancreditapply/LoanPreloanCreditApplyQuery.java

@ -67,6 +67,8 @@ public class LoanPreloanCreditApplyQuery implements Query {
private String menuSid;
@ApiModelProperty("移动端查询条件")
private String name;
@ApiModelProperty("审核状态(1提交,0审核)")
@ApiModelProperty("PC审核状态(1提交,0审核)")
private String state;
@ApiModelProperty("移动审核状态(1未审核 2已审核)")
private String type;
}

18
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpreloancreditapply/LoanPreloanCreditApplyVo.java

@ -40,6 +40,8 @@ public class LoanPreloanCreditApplyVo implements Vo {
private String sid;
@ApiModelProperty("申请人+部门")
private String publishInfo;
@ApiModelProperty("审核状态")
private String state;
@ApiModelProperty("分公司名称")
@ -53,14 +55,22 @@ public class LoanPreloanCreditApplyVo implements Vo {
private Date createTime;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("客户类型key")
private String custTypeKey;
@ApiModelProperty("客户类型value")
private String custTypeValue;
@ApiModelProperty("客户(企业)名称")
private String khqyName;
@ApiModelProperty("资方名称")
private String capitalName;
@ApiModelProperty("身份证号码")
private String idCard;
@ApiModelProperty("手机号码")
private String phone;
@ApiModelProperty("公司审核日期")
private String gsshDate;
@ApiModelProperty("公司风控结果key")
private String gsfkjgKey;
@ApiModelProperty("公司风控结果")
private String gsfkjg;
@ApiModelProperty("资方风控结果")
@ -71,4 +81,12 @@ public class LoanPreloanCreditApplyVo implements Vo {
private Boolean isEdit;
@ApiModelProperty("是否可以删除")
private Boolean isDelete;
@ApiModelProperty("是否可以申诉")
private Boolean isHandle;
@ApiModelProperty("是否显示修改审核后显示")
private Boolean showUpdateBtn;
@ApiModelProperty("是否显示删除 审核后不显示")
private Boolean showDeleteBtn;
@ApiModelProperty("是否显示申诉 审核后显示")
private Boolean showHandleBtn;
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutions.java

@ -88,6 +88,8 @@ public class LoanSolutions extends BaseEntity {
@ApiModelProperty("是否勾选其它融")
private int otherPolicyState;
@ApiModelProperty("是否是销售订单关联的")
private int saleOrderState;

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeign.java

@ -47,6 +47,10 @@ public interface LoanSolutionsFeign {
@GetMapping("/selectDetailsss")
ResultBean<SolutionsDetailsVo> selectDetailsss(@RequestParam("businessSid") String businessSid);
@ApiOperation("查询金融定制方案的消贷方案")
@GetMapping("/selectDetailByApplySid")
ResultBean<SolutionsDetailsVo> selectDetailByApplySid(@RequestParam("businessSid") String businessSid);
@ApiOperation("删除该销售订单的金融方案")
@DeleteMapping("/deleteByOrderSid")
ResultBean deleteByOrderSid(@RequestParam("sid") String sid);

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeignFallback.java

@ -42,6 +42,11 @@ public class LoanSolutionsFeignFallback implements LoanSolutionsFeign {
return null;
}
@Override
public ResultBean<SolutionsDetailsVo> selectDetailByApplySid(String businessSid) {
return null;
}
@Override
public ResultBean deleteByOrderSid(String sid) {
return null;

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/app/SolutionsDto.java

@ -17,7 +17,7 @@ public class SolutionsDto implements Dto {
//金融方案主表
@ApiModelProperty("销售订单sid")
@ApiModelProperty("关联sid")
private String saleOrderSid;
@ApiModelProperty("类型:01自营非担保,02外部金融")
private String type;

1
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplate.java

@ -37,6 +37,7 @@ public class LoanTemplate extends BaseEntity {
private BigDecimal vehPrice;
@ApiModelProperty("合格证公告型号")
private String vehNoticeModel;
private String vehNoticeModelSid;
@ApiModelProperty("备案日期")
private String filingDate;
@ApiModelProperty("申请部门sid")

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateDetailsVo.java

@ -22,7 +22,7 @@ public class LoanTemplateDetailsVo implements Vo {
private String userSid;
@ApiModelProperty("组织全路径sid")
private String orgPath;
private String useOrgSid;
@ApiModelProperty("模板名称")
private String templateName;
@ApiModelProperty("方案key")
@ -53,4 +53,6 @@ public class LoanTemplateDetailsVo implements Vo {
private LoanTemplateInstallVo loanTemplateInstall;
@ApiModelProperty("挂车信息")
private LoanTemplateTrailerVo loanTemplateTrailer;
@ApiModelProperty("消贷金融方案")
private LoanTemplateSolutionsVo loanTemplateSolutions;
}

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateDto.java

@ -43,6 +43,8 @@ public class LoanTemplateDto implements Dto {
private BigDecimal vehPrice;
@ApiModelProperty("合格证公告型号")
private String vehNoticeModel;
@ApiModelProperty("合格证公告型号sid")
private String vehNoticeModelSid;
@ApiModelProperty("是否包含上装")
private boolean install;
@ -53,4 +55,6 @@ public class LoanTemplateDto implements Dto {
private LoanTemplateInstallDto loanTemplateInstall;
@ApiModelProperty("挂车")
private LoanTemplateTrailerDto loanTemplateTrailer;
@ApiModelProperty("消贷方案")
private LoanTemplateSolutionsDto loanTemplateSolutions;
}

10
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateQuery.java

@ -25,11 +25,17 @@ public class LoanTemplateQuery implements Query {
@ApiModelProperty("车型名称")
private String vehModel;
//资方产品方案
//其他融产品名称
@ApiModelProperty("资方产品政策")
private String policyName;
@ApiModelProperty("其他融产品名称")
private String otherPolicyName;
@ApiModelProperty("申请日期开始时间")
private String filingDateStart;
@ApiModelProperty("申请日期结束时间")
private String filingDateEnd;
private String userSid;
private String orgPath;
}

156
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateSolutionsDto.java

@ -0,0 +1,156 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/24
**/
@Data
public class LoanTemplateSolutionsDto implements Dto {
private static final long serialVersionUID = 979005532924747162L;
@ApiModelProperty("是否打包:1是0否")
private String isPack;
@ApiModelProperty("产品政策名称")
private String policyName;
@ApiModelProperty("主车发票价")
private String mainVehicleAmount;
@ApiModelProperty("融资票据")
private String accessoriesAmount;
@ApiModelProperty("挂车金额")
private String trailerAmount;
@ApiModelProperty("购置税")
private String purchaseTax;
@ApiModelProperty("保险金额")
private String premium;
@ApiModelProperty("融资项目总额")
private String loanTotal;
@ApiModelProperty("是否有融资票据")
private boolean accessoriesAmountCb;
@ApiModelProperty("是否有挂车")
private boolean trailerAmountCb;
@ApiModelProperty("是否有购置税")
private boolean purchaseTaxCb;
@ApiModelProperty("是否有保险")
private boolean premiumCb;
@ApiModelProperty("首付款比例")
private String downPayRatio;
@ApiModelProperty("首付金额")
@NotBlank(message = "首付金额不能为空")
private String downPayAmount;
@ApiModelProperty("贷款金额")
private String loanAmount;
@ApiModelProperty("贷款期数")
@NotBlank(message = "产品期数不能为空")
private String loanPeriod;
@ApiModelProperty("贷款保证金比例")
private String bondRatio;
@ApiModelProperty("贷款保证金金额")
@NotBlank(message = "贷款保证金不能为空")
private String bondAmount;
@ApiModelProperty("厂家贴息")
@NotBlank(message = "厂家贴息不能为空")
private String factoryDiscount;
@ApiModelProperty("厂家贴息用途")
private String factoryDiscountUse;
@ApiModelProperty("年利率")
private String policyYearRatio;
@ApiModelProperty("月还金额")
@NotBlank(message = "月还金额不能为空")
private String loanPayMoney;
@ApiModelProperty("利息总额")
private String loanInterest;
@ApiModelProperty("是否勾选其它融")
private boolean otherPolicyState;
@ApiModelProperty("其它融名称")
private String otherPolicyName;
@ApiModelProperty("其它融贷款金额")
private String otherPolicyAmount;
@ApiModelProperty("其它融期数")
private String otherPolicyPeriod;
@ApiModelProperty("其它融月还")
private String otherPolicyMonthlyRepay;
@ApiModelProperty("其它融利息总额")
private String otherPolicyInterest;
@ApiModelProperty("其它融年利率")
private String otherPolicyYearRatio;
@ApiModelProperty("'融资首付")
private String loanDownPay;
@ApiModelProperty("实际首付比例")
private String downPayAmountsRatio;
@ApiModelProperty("总贷款金额")
private String loanAmountTotal;
@ApiModelProperty("期数")
private String period;
@ApiModelProperty("月还金额")
private String monthlyRepay;
@ApiModelProperty("利息总额")
private String interest;
@ApiModelProperty("预计首期还款日")
private String returnTime;
@ApiModelProperty("融资首付")
private String downPayAmounts;
@ApiModelProperty("贷款保证金")
private String bondAmounts;
@ApiModelProperty("保险保证金")
private String depositPremium;
@ApiModelProperty("落户保证金")
private String depositSettle;
@ApiModelProperty("服务费")
@NotBlank(message = "服务费不能为空")
private String serviceAmount;
@ApiModelProperty("代收意外险")
private String proxyAccidentPremium;
@ApiModelProperty("上牌费")
private String registerAmount;
@ApiModelProperty("运管费")
private String operationAmount;
@ApiModelProperty("补车价")
private String vehOtherPrice;
@ApiModelProperty("其它费用")
private String otherAmount;
@ApiModelProperty("其它费用说明")
private String otherAmountRemark;
@ApiModelProperty("办理方式选择")
private String dealWay;
@ApiModelProperty("办理方式选择key")
private String dealWayKey;
@ApiModelProperty("代收首年保险费")
private String proxyPremium;
@ApiModelProperty("代收购置费")
private String proxyPurchasetax;
@ApiModelProperty("抵顶首年保险费")
private String offsetPremium;
@ApiModelProperty("抵顶购置税")
private String offsetPurchasetax;
@ApiModelProperty("抵顶费用合计")
private String offsetTotal;
@ApiModelProperty("应收合计")
private String receivableTotal;
@ApiModelProperty("实收合计")
private String realTotal;
@ApiModelProperty("车辆总价")
private String vehTotalPrice;
@ApiModelProperty("名义留购价")
private String nominalPrice;
}

146
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateSolutionsVo.java

@ -0,0 +1,146 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/24
**/
@Data
public class LoanTemplateSolutionsVo implements Vo {
private static final long serialVersionUID = -6903592540403850848L;
@ApiModelProperty("关联表sid")
private String salesOrderSid;
//金融方案主表
private String isPack;
@ApiModelProperty("产品政策名称")
private String policyName;
@ApiModelProperty("融资项目总额")
private String loanTotal;
@ApiModelProperty("主车发票价")
private String mainVehicleAmount;
@ApiModelProperty("融资票据")
private String accessoriesAmount;
@ApiModelProperty("挂车金额")
private String trailerAmount;
@ApiModelProperty("购置税")
private String purchaseTax;
@ApiModelProperty("保险金额")
private String premium;
@ApiModelProperty("首付款比例")
private String downPayRatio;
@ApiModelProperty("首付金额")
private String downPayAmount;
@ApiModelProperty("贷款金额")
private String loanAmount;
@ApiModelProperty("贷款期数")
private String loanPeriod;
@ApiModelProperty("保证金比例")
private String bondRatio;
@ApiModelProperty("保证金金额")
private String bondAmount;
@ApiModelProperty("厂家贴息")
private String factoryDiscount;
@ApiModelProperty("厂家贴息用途")
private String factoryDiscountUse;
@ApiModelProperty("年利率")
private String policyYearRatio;
@ApiModelProperty("贷款月还")
private String loanPayMoney;
@ApiModelProperty("贷款利息")
private String loanInterest;
@ApiModelProperty("是否有融资票据")
private boolean accessoriesAmountCb;
@ApiModelProperty("是否有挂车")
private boolean trailerAmountCb;
@ApiModelProperty("是否有购置税")
private boolean purchaseTaxCb;
@ApiModelProperty("是否有保险")
private boolean premiumCb;
@ApiModelProperty("是否勾选其它融")
private boolean otherPolicyState;
//===========================其他融
@ApiModelProperty("其它融名称")
private String otherPolicyName;
@ApiModelProperty("其它融金额")
private String otherPolicyAmount;
@ApiModelProperty("其它融期数")
private String otherPolicyPeriod;
@ApiModelProperty("其它融月还")
private String otherPolicyMonthlyRepay;
@ApiModelProperty("其它融利息总额")
private String otherPolicyInterest;
@ApiModelProperty("其它融年利率")
private String otherPolicyYearRatio;
@ApiModelProperty("'融资首付")
private String loanDownPay;
@ApiModelProperty("总贷款金额")
private String loanAmountTotal;
@ApiModelProperty("期数")
private String period;
@ApiModelProperty("月还金额")
private String monthlyRepay;
@ApiModelProperty("利息总额")
private String interest;
@ApiModelProperty("预计首期还款日")
private String returnTime;
//=====================金融方案费用明细
@ApiModelProperty("融资首付")
private String downPayAmounts;
@ApiModelProperty("贷款保证金")
private String bondAmounts;
@ApiModelProperty("保险保证金")
private String depositPremium;
@ApiModelProperty("落户保证金")
private String depositSettle;
@ApiModelProperty("服务费")
private String serviceAmount;
@ApiModelProperty("代收意外险")
private String proxyAccidentPremium;
@ApiModelProperty("上牌费")
private String registerAmount;
@ApiModelProperty("运管费")
private String operationAmount;
@ApiModelProperty("补车价")
private String vehOtherPrice;
@ApiModelProperty("其它费用")
private String otherAmount;
@ApiModelProperty("其它费用说明")
private String otherAmountRemark;
@ApiModelProperty("办理方式选择")
private String dealWay;
@ApiModelProperty("办理方式选择key")
private String dealWayKey;
@ApiModelProperty("代收首年保险费")
private String proxyPremium;
@ApiModelProperty("代收购置费")
private String proxyPurchasetax;
@ApiModelProperty("抵顶首年保险费")
private String offsetPremium;
@ApiModelProperty("抵顶购置税")
private String offsetPurchasetax;
@ApiModelProperty("抵顶费用合计")
private String offsetTotal;
@ApiModelProperty("应收合计")
private String receivableTotal;
@ApiModelProperty("实收合计")
private String realTotal;
@ApiModelProperty("车辆总价")
private String vehTotalPrice;
@ApiModelProperty("名义留购价")
private String nominalPrice;
@ApiModelProperty("实际首付比例")
private String downPayAmountsRatio;
}

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateVo.java

@ -38,7 +38,9 @@ public class LoanTemplateVo implements Vo {
@ApiModelProperty("配置sid")
private String vehModelConfigSid;
//资方产品方案
//其他融产品名称
@ApiModelProperty("资方产品政策")
private String policyName;
@ApiModelProperty("其他融产品名称")
private String otherPolicyName;
}

10
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplateinstall/LoanTemplateInstallVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loantemplateinstall;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -20,17 +21,26 @@ public class LoanTemplateInstallVo implements Vo {
@ApiModelProperty("供应商")
private String refitFactory;
@ApiModelProperty("外廓尺寸_长")
@JsonIgnore
private String wk_long;
@ApiModelProperty("外廓尺寸_宽")
@JsonIgnore
private String wk_wide;
@ApiModelProperty("外廓尺寸_高")
@JsonIgnore
private String wk_high;
@ApiModelProperty("外廓尺寸")
private String wkSize;
@ApiModelProperty("板材材质")
private String plateMaterialValue;
@ApiModelProperty("板材厚度边")
@JsonIgnore
private String plateThicknessEdge;
@ApiModelProperty("板材厚度底")
@JsonIgnore
private String plateThicknessBottom;
@ApiModelProperty("板材厚度")
private String plateThickness;
@ApiModelProperty("颜色")
private String colorValue;
@ApiModelProperty("更多配置")

23
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplatetrailer/LoanTemplateTrailerVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loantemplatetrailer;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -16,7 +17,11 @@ import java.util.List;
public class LoanTemplateTrailerVo implements Vo {
private static final long serialVersionUID = 2835874033331566270L;
//车型名称
@ApiModelProperty("车型名称")
private String modelTrailerName;
@ApiModelProperty("挂车类型")
@JsonIgnore
private String trailerTypeValue;
@ApiModelProperty("车辆品牌")
private String brandName;
@ -28,11 +33,27 @@ public class LoanTemplateTrailerVo implements Vo {
@ApiModelProperty("内部尺寸")
private String insideSize;
@ApiModelProperty("内部尺寸长")
@JsonIgnore
private String insideSizeLong;
@ApiModelProperty("内部尺寸宽")
@JsonIgnore
private String insideSizeWide;
@ApiModelProperty("内部尺寸高")
@JsonIgnore
private String insideSizeHigh;
@ApiModelProperty("外观尺寸长")
@JsonIgnore
private String appearanceSizeLong;
@ApiModelProperty("外观尺寸宽")
@JsonIgnore
private String appearanceSizeWide;
@ApiModelProperty("外观尺寸高")
@JsonIgnore
private String appearanceSizeHigh;
@ApiModelProperty("外观尺寸总高")
@JsonIgnore
private String appearanceSizeTotalHigh;
@ApiModelProperty("箱体颜色")
private String boxColor;
@ApiModelProperty("融资价格")

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyMapper.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.AppOtherPolicyVo;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicyVos;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.OtherPolicyVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -24,4 +25,8 @@ public interface LoanFinOtherPolicyMapper extends BaseMapper<LoanFinOtherPolicy>
LoanFinOtherPolicyVos details(String sid);
AppOtherPolicyVo selectByMainSids(String sid);
List<OtherPolicyVo> selectListOne(String sid);
List<OtherPolicyVo> selectListTwo(String useOrgSid);
}

10
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyMapper.xml

@ -34,4 +34,14 @@
from loan_fin_otherpolicy
where mainPolicySid = #{sid}
</select>
<select id="selectListOne" resultType="com.yxt.anrui.riskcenter.api.loanfinotherPolicy.OtherPolicyVo">
select lfo.sid,lfo.otherPolicyName as name from loan_fin_otherpolicy lfo where lfo.mainPolicySid = #{sid}
</select>
<select id="selectListTwo" resultType="com.yxt.anrui.riskcenter.api.loanfinotherPolicy.OtherPolicyVo">
select lfo.sid,lfo.otherPolicyName as name from loan_fin_otherpolicy lfo where lfo.useOrgSid = #{sid}
and lfo.filingState = 2
and lfo.validDateTo > now()
</select>
</mapper>

8
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyRest.java

@ -2,12 +2,15 @@ package com.yxt.anrui.riskcenter.biz.loanfinotherPolicy;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicyFeign;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicyVos;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.OtherPolicyVo;
import com.yxt.common.core.result.ResultBean;
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
@ -25,4 +28,9 @@ public class LoanFinOtherPolicyRest implements LoanFinOtherPolicyFeign {
public ResultBean<LoanFinOtherPolicyVos> details(String sid) {
return loanFinOtherPolicyService.details(sid);
}
@Override
public ResultBean<List<OtherPolicyVo>> selectList(String orgPath, String userSid, String sid) {
return loanFinOtherPolicyService.selectList(orgPath,userSid,sid);
}
}

21
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyService.java

@ -1,12 +1,16 @@
package com.yxt.anrui.riskcenter.biz.loanfinotherPolicy;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.AppOtherPolicyVo;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicyVos;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.OtherPolicyVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
@ -17,6 +21,9 @@ import java.util.List;
@Service
public class LoanFinOtherPolicyService extends MybatisBaseService<LoanFinOtherPolicyMapper, LoanFinOtherPolicy> {
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
/**
* 根据主产品sid查询
*
@ -45,4 +52,18 @@ public class LoanFinOtherPolicyService extends MybatisBaseService<LoanFinOtherPo
public AppOtherPolicyVo selectByMainSids(String sid) {
return baseMapper.selectByMainSids(sid);
}
public ResultBean<List<OtherPolicyVo>> selectList(String orgPath, String userSid, String sid) {
ResultBean<List<OtherPolicyVo>> rb = ResultBean.fireFail();
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
List<OtherPolicyVo> list = baseMapper.selectListOne(sid);
list.removeAll(Collections.singleton(null));
if (list.isEmpty()) {
list = baseMapper.selectListTwo(useOrgSid);
list.removeAll(Collections.singleton(null));
}
return rb.success().setData(list);
}
}

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyMapper.java

@ -4,10 +4,7 @@ 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.loanfinpolicy.AppLoanFinPolicyVo;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.AppPolicyDetailsVo;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicyVos;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -29,4 +26,6 @@ public interface LoanFinPolicyMapper extends BaseMapper<LoanFinPolicy> {
IPage<AppLoanFinPolicyVo> getProductList(IPage<LoanFinPolicy> page, @Param(Constants.WRAPPER) QueryWrapper<LoanFinPolicy> qw, @Param("name") String name);
AppPolicyDetailsVo getProductInfo(String sid);
List<PolicyVo> selectListOne(@Param("useOrgSid") String useOrgSid,@Param("isPack") String isPack);
}

9
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyMapper.xml

@ -86,4 +86,13 @@
from loan_fin_policy lfp
where lfp.sid = #{sid}
</select>
<select id="selectListOne" resultType="com.yxt.anrui.riskcenter.api.loanfinpolicy.PolicyVo">
select lfp.policyName, lfp.sid
from loan_fin_policy lfp
where lfp.filingState = 2
and isPack = #{isPack}
and lfp.useOrgSid = #{useOrgSid}
and lfp.validDateTo > now()
</select>
</mapper>

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyRest.java

@ -9,6 +9,8 @@ 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
@ -65,4 +67,9 @@ public class LoanFinPolicyRest implements LoanFinPolicyFeign {
public ResultBean<AppPolicyDetailsVo> getProductInfo(String sid) {
return loanFinPolicyService.getProductInfo(sid);
}
@Override
public ResultBean<List<PolicyVo>> selectList(String orgPath, String userSid,String isPack) {
return loanFinPolicyService.selectList(orgPath,userSid,isPack);
}
}

8
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyService.java

@ -489,4 +489,12 @@ public class LoanFinPolicyService extends MybatisBaseService<LoanFinPolicyMapper
}
return rb.success().setData(appPolicyDetailsVo);
}
public ResultBean<List<PolicyVo>> selectList(String orgPath, String userSid,String isPack) {
ResultBean<List<PolicyVo>> rb = ResultBean.fireFail();
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
List<PolicyVo> list = baseMapper.selectListOne(useOrgSid,isPack);
list.removeAll(Collections.singleton(null));
return rb.success().setData(list);
}
}

33
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpreloancreditapply/LoanPreloanCreditApplyService.java

@ -136,20 +136,39 @@ public class LoanPreloanCreditApplyService extends MybatisBaseService<LoanPreloa
if (StringUtils.isNotBlank(query.getZffkjg())) {
qw.like("zffkjg", query.getZffkjg());
}
if (StringUtils.isNotBlank(query.getType())) {
if ("1".equals(query.getType())) {
qw.ne("state", 2);
} else {
qw.eq("state", 2);
}
}
if (StringUtils.isNotBlank(query.getName())) {
//TODO
qw.and(wrapper -> wrapper.like("custName", query.getKhqyName()).or().like("qyName", query.getKhqyName()));
}
IPage<LoanPreloanCreditApply> page = PagerUtil.queryToPage(pq);
IPage<LoanPreloanCreditApplyVo> pagging = baseMapper.selectPageVo(page, qw);
for (LoanPreloanCreditApplyVo record : pagging.getRecords()) {
String state = record.getState();
if ("1".equals(state)){
if ("1".equals(state)) {
record.setIsEdit(true);
record.setShowUpdateBtn(true);
record.setIsDelete(true);
}else {
record.setShowDeleteBtn(true);
} else {
record.setIsEdit(false);
record.setShowUpdateBtn(false);
record.setIsDelete(false);
record.setShowDeleteBtn(false);
}
if ("002".equals(record.getGsfkjgKey())){
record.setIsHandle(true);
record.setShowHandleBtn(true);
}else {
record.setShowHandleBtn(false);
record.setIsHandle(false);
}
record.setPublishInfo(record.getApplyDeptName() + "-" + record.getCreateByName());
}
PagerVo<LoanPreloanCreditApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
@ -236,10 +255,10 @@ public class LoanPreloanCreditApplyService extends MybatisBaseService<LoanPreloa
IPage<LoanPreloanCreditApplyVo> pagging = baseMapper.selectPageVo(page, qw);
for (LoanPreloanCreditApplyVo record : pagging.getRecords()) {
String state = record.getState();
if ("0".equals(state)){
if ("0".equals(state)) {
record.setIsEdit(true);
record.setIsDelete(false);
}else {
} else {
record.setIsEdit(false);
record.setIsDelete(false);
}
@ -382,7 +401,7 @@ public class LoanPreloanCreditApplyService extends MybatisBaseService<LoanPreloa
return rb.setMsg("保存失败");
}
String sid = stringResultBean.getData();
baseMapper.updateStateBySid(sid,0);
baseMapper.updateStateBySid(sid, 0);
return rb.success();
}
@ -509,7 +528,7 @@ public class LoanPreloanCreditApplyService extends MybatisBaseService<LoanPreloa
return rb.setMsg("保存失败");
}
String sid = stringResultBean.getData();
baseMapper.updateStateBySid(sid,2);
baseMapper.updateStateBySid(sid, 2);
return rb.success();
}
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsMapper.java

@ -29,6 +29,8 @@ public interface LoanSolutionsMapper extends BaseMapper<LoanSolutions> {
List<LoanSolutions> selectByOrderSid(@Param("saleOrderSid") String saleOrderSid);
LoanSolutions selectByApplySid(String saleOrderSid);
/* IPage<LoanSolutionsVo> selectPageVo(IPage<LoanSolutions> page, @Param(Constants.WRAPPER) Wrapper<LoanSolutions> qw);

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsMapper.xml

@ -65,4 +65,10 @@
from loan_solutions
where salesOrderSid = #{saleOrderSid}
</delete>
<select id="selectByApplySid" resultType="com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions">
select *
from loan_solutions
where salesOrderSid = #{saleOrderSid}
</select>
</mapper>

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsRest.java

@ -53,6 +53,11 @@ public class LoanSolutionsRest implements LoanSolutionsFeign {
return loanSolutionsService.selectDetailsss(businessSid);
}
@Override
public ResultBean<SolutionsDetailsVo> selectDetailByApplySid(String businessSid) {
return loanSolutionsService.selectDetailByApplySid(businessSid);
}
@Override
public ResultBean deleteByOrderSid(String sid) {
return loanSolutionsService.deleteByOrderSid(sid);

535
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java

@ -81,10 +81,10 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
}
//单车主车、挂车、上装成交价
AppOrderPriceInfoVo appOrderPriceInfoVo = appOrderDetailsVo.getPriceInfo();
if(appOrderPriceInfoVo != null){
if (appOrderPriceInfoVo != null) {
solutionsDetailsVo.setFinalPrice(appOrderPriceInfoVo.getTransactionPrice());
solutionsDetailsVo.setGcPrice(appOrderPriceInfoVo.getGcPrice());
if(StringUtils.isNotBlank(appOrderPriceInfoVo.getSzPrice())){
if (StringUtils.isNotBlank(appOrderPriceInfoVo.getSzPrice())) {
solutionsDetailsVo.setSzPrice(appOrderPriceInfoVo.getSzPrice());
}
}
@ -142,14 +142,14 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
return rb.setMsg("请输入保险金额");
} else {
if (StringUtils.isNotBlank(dto.getOffsetPremium())) {
if(new BigDecimal(dto.getOffsetPremium()).compareTo(new BigDecimal(premium))>0){
if (new BigDecimal(dto.getOffsetPremium()).compareTo(new BigDecimal(premium)) > 0) {
return rb.setMsg("抵顶首年保险费不能超过保险费用");
}
}
}
}else{
} else {
if (StringUtils.isNotBlank(dto.getOffsetPremium())) {
if(new BigDecimal(dto.getOffsetPremium()).compareTo(BigDecimal.ZERO)>0){
if (new BigDecimal(dto.getOffsetPremium()).compareTo(BigDecimal.ZERO) > 0) {
return rb.setMsg("抵顶首年保险费不能超过保险费用");
}
}
@ -161,17 +161,17 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
String purchaseTax = dto.getPurchaseTax();
if (StringUtils.isBlank(purchaseTax)) {
return rb.setMsg("请输入购置税");
} else{
} else {
if (StringUtils.isNotBlank(dto.getOffsetPurchasetax())) {
if(new BigDecimal(dto.getOffsetPurchasetax()).compareTo(new BigDecimal(purchaseTax))>0){
if (new BigDecimal(dto.getOffsetPurchasetax()).compareTo(new BigDecimal(purchaseTax)) > 0) {
return rb.setMsg("抵顶购置税不能超过购置税");
}
}
}
}else{
} else {
if (StringUtils.isNotBlank(dto.getOffsetPurchasetax())) {
if(new BigDecimal(dto.getOffsetPurchasetax()).compareTo(BigDecimal.ZERO)>0){
if (new BigDecimal(dto.getOffsetPurchasetax()).compareTo(BigDecimal.ZERO) > 0) {
return rb.setMsg("抵顶购置税不能超过购置税");
}
}
@ -259,7 +259,7 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
}
loanSolutions.setPremiumCb(1);
if (StringUtils.isNotBlank(dto.getOffsetPremium())) {
if(new BigDecimal(dto.getOffsetPremium()).compareTo(new BigDecimal(premium))>0){
if (new BigDecimal(dto.getOffsetPremium()).compareTo(new BigDecimal(premium)) > 0) {
return rb.setMsg("抵顶首年保险费不能超过保险费用");
}
}
@ -279,7 +279,7 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
}
loanSolutions.setPurchaseTaxCb(1);
if (StringUtils.isNotBlank(dto.getOffsetPurchasetax())) {
if(new BigDecimal(dto.getOffsetPurchasetax()).compareTo(new BigDecimal(purchaseTax))>0){
if (new BigDecimal(dto.getOffsetPurchasetax()).compareTo(new BigDecimal(purchaseTax)) > 0) {
return rb.setMsg("抵顶购置税不能超过购置税");
}
}
@ -597,7 +597,7 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
BigDecimal offsetTotal = new BigDecimal(BigInteger.ZERO);
//抵顶首年保险费
String offsetPremium = dto.getOffsetPremium();
if(dto.isPremiumCb()){
if (dto.isPremiumCb()) {
if (StringUtils.isNotBlank(offsetPremium)) {
offsetTotal = offsetTotal.add(new BigDecimal(offsetPremium));
loanSolutionsDetail.setOffsetPremium(new BigDecimal(offsetPremium));
@ -669,6 +669,496 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
return rb.success();
}
@Transactional(rollbackFor = Exception.class)
public ResultBean saveDtos(SolutionsDto dto) {
ResultBean rb = ResultBean.fireFail();
String mainVehicleAmount = dto.getMainVehicleAmount();
if (StringUtils.isBlank(mainVehicleAmount)) {
return rb.setMsg("主车发票价不能为空");
}
//是否勾选融资票据
if (dto.isAccessoriesAmountCb()) {
//融资票据
String accessoriesAmount = dto.getAccessoriesAmount();
if (StringUtils.isBlank(accessoriesAmount)) {
return rb.setMsg("请输入融资票据");
}
}
//是否勾选挂车
if (dto.isTrailerAmountCb()) {
//挂车
String trailerAmount = dto.getTrailerAmount();
if (StringUtils.isBlank(trailerAmount)) {
return rb.setMsg("请输入挂车金额");
}
}
//是否勾选保险
if (dto.isPremiumCb()) {
//保险
String premium = dto.getPremium();
if (StringUtils.isBlank(premium)) {
return rb.setMsg("请输入保险金额");
} else {
if (StringUtils.isNotBlank(dto.getOffsetPremium())) {
if (new BigDecimal(dto.getOffsetPremium()).compareTo(new BigDecimal(premium)) > 0) {
return rb.setMsg("抵顶首年保险费不能超过保险费用");
}
}
}
} else {
if (StringUtils.isNotBlank(dto.getOffsetPremium())) {
if (new BigDecimal(dto.getOffsetPremium()).compareTo(BigDecimal.ZERO) > 0) {
return rb.setMsg("抵顶首年保险费不能超过保险费用");
}
}
}
//是否勾选购置税
if (dto.isPurchaseTaxCb()) {
//购置税
String purchaseTax = dto.getPurchaseTax();
if (StringUtils.isBlank(purchaseTax)) {
return rb.setMsg("请输入购置税");
} else {
if (StringUtils.isNotBlank(dto.getOffsetPurchasetax())) {
if (new BigDecimal(dto.getOffsetPurchasetax()).compareTo(new BigDecimal(purchaseTax)) > 0) {
return rb.setMsg("抵顶购置税不能超过购置税");
}
}
}
} else {
if (StringUtils.isNotBlank(dto.getOffsetPurchasetax())) {
if (new BigDecimal(dto.getOffsetPurchasetax()).compareTo(BigDecimal.ZERO) > 0) {
return rb.setMsg("抵顶购置税不能超过购置税");
}
}
}
//产品期数
String loanPeriod = dto.getLoanPeriod();
if (StringUtils.isBlank(loanPeriod)) {
return rb.setMsg("主方案期数不能为空");
}
//查詢是否有金融方案
LoanSolutions loanSolutions = baseMapper.selectByApplySid(dto.getSaleOrderSid());
if (loanSolutions != null) {
//删除该销售订单的
baseMapper.deleteByOrderSid(dto.getSaleOrderSid());
loanSolutionsOtherpolicyService.deleteByLoanSid(loanSolutions.getSid());
loanSolutionsDetailService.deleteByLoanSid(loanSolutions.getSid());
}
//保存金融方案
loanSolutions = new LoanSolutions();
if (StringUtils.isNotBlank(dto.getSaleOrderSid())) {
loanSolutions.setSalesOrderSid(dto.getSaleOrderSid());
}
if (StringUtils.isNotBlank(dto.getTypeKey())) {
loanSolutions.setType(dto.getType());
loanSolutions.setTypeKey(dto.getTypeKey());
}
//是否打包
String isPack = dto.getIsPack();
if (StringUtils.isNotBlank(isPack)) {
loanSolutions.setIsPack(isPack);
}
//产品政策名称
String policyName = dto.getPolicyName();
if (StringUtils.isNotBlank(policyName)) {
loanSolutions.setPolicyName(policyName);
}
//融资项目总额 = 主车发票价+融资票据+挂车+保险+购置税+车损上浮
BigDecimal loanTotal = new BigDecimal(BigInteger.ZERO);
//主车发票价
loanTotal = loanTotal.add(new BigDecimal(mainVehicleAmount));
loanSolutions.setMainVehicleAmount(new BigDecimal(mainVehicleAmount));
//是否勾选融资票据
if (dto.isAccessoriesAmountCb()) {
//融资票据
String accessoriesAmount = dto.getAccessoriesAmount();
loanTotal = loanTotal.add(new BigDecimal(accessoriesAmount));
loanSolutions.setAccessoriesAmount(new BigDecimal(accessoriesAmount));
loanSolutions.setAccessoriesAmountCb(1);
} else {
loanTotal = loanTotal.add(new BigDecimal(BigInteger.ZERO));
loanSolutions.setAccessoriesAmountCb(0);
}
//是否勾选挂车
if (dto.isTrailerAmountCb()) {
//挂车
String trailerAmount = dto.getTrailerAmount();
loanTotal = loanTotal.add(new BigDecimal(trailerAmount));
loanSolutions.setTrailerAmount(new BigDecimal(trailerAmount));
loanSolutions.setTrailerAmountCb(1);
} else {
loanTotal = loanTotal.add(new BigDecimal(BigInteger.ZERO));
loanSolutions.setTrailerAmountCb(0);
}
//是否勾选保险
if (dto.isPremiumCb()) {
//保险
String premium = dto.getPremium();
loanTotal = loanTotal.add(new BigDecimal(premium));
loanSolutions.setPremium(new BigDecimal(premium));
loanSolutions.setPremiumCb(1);
if (StringUtils.isNotBlank(dto.getOffsetPremium())) {
if (new BigDecimal(dto.getOffsetPremium()).compareTo(new BigDecimal(premium)) > 0) {
return rb.setMsg("抵顶首年保险费不能超过保险费用");
}
}
} else {
loanTotal = loanTotal.add(new BigDecimal(BigInteger.ZERO));
loanSolutions.setPremiumCb(0);
}
//是否勾选购置税
if (dto.isPurchaseTaxCb()) {
//购置税
String purchaseTax = dto.getPurchaseTax();
loanTotal = loanTotal.add(new BigDecimal(purchaseTax));
loanSolutions.setPurchaseTax(new BigDecimal(purchaseTax));
loanSolutions.setPurchaseTaxCb(1);
if (StringUtils.isNotBlank(dto.getOffsetPurchasetax())) {
if (new BigDecimal(dto.getOffsetPurchasetax()).compareTo(new BigDecimal(purchaseTax)) > 0) {
return rb.setMsg("抵顶购置税不能超过购置税");
}
}
} else {
loanTotal = loanTotal.add(new BigDecimal(BigInteger.ZERO));
loanSolutions.setPurchaseTaxCb(0);
}
loanSolutions.setLoanTotal(loanTotal);
//产品贷款金额
BigDecimal loanAmount = new BigDecimal(BigInteger.ZERO);
BigDecimal downPayAmount = new BigDecimal(BigInteger.ZERO);
//首付金额填写、首付款比例计算。首付款比例 = 首付金额/融资总额*100
if (StringUtils.isNotBlank(dto.getDownPayAmount())) {
//首付金额
downPayAmount = downPayAmount.add(new BigDecimal(dto.getDownPayAmount()));
//首付款比例
String downPayRatio = "";
BigDecimal downPayRatio1 = downPayAmount.divide(loanTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);
downPayRatio = downPayRatio1.toString() + "%";
//产品贷款金额 = 融资项目总额-首付金额
loanAmount = loanTotal.subtract(downPayAmount);
loanSolutions.setDownPayAmount(downPayAmount);
loanSolutions.setDownPayRatio(downPayRatio);
} else {
loanAmount = loanTotal;
loanSolutions.setDownPayAmount(BigDecimal.ZERO);
loanSolutions.setDownPayRatio("0");
}
loanSolutions.setLoanAmount(loanAmount);
loanSolutions.setLoanPeriod(loanPeriod);
//贷款保证金填写、贷款保证金比例计算。贷款保证金比例 = 贷款保证金/贷款金额*100
if (StringUtils.isNotBlank(dto.getBondAmount())) {
//贷款保证金
BigDecimal bondAmount = new BigDecimal(dto.getBondAmount());
//贷款保证金比例
String bondRatio = "";
BigDecimal bondRatio1 = bondAmount.divide(loanAmount, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);
bondRatio = bondRatio1.toString() + "%";
loanSolutions.setBondAmount(bondAmount);
loanSolutions.setBondRatio(bondRatio);
} else {
loanSolutions.setBondAmount(BigDecimal.ZERO);
loanSolutions.setBondRatio("0");
}
//厂家贴息
String factoryDiscount = dto.getFactoryDiscount();
if (StringUtils.isNotBlank(factoryDiscount)) {
loanSolutions.setFactoryDiscount(new BigDecimal(factoryDiscount));
} else {
loanSolutions.setFactoryDiscount(new BigDecimal(BigInteger.ZERO));
}
//厂家贴息用途
String factoryDiscountUse = dto.getFactoryDiscountUse();
if (StringUtils.isNotBlank(factoryDiscountUse)) {
loanSolutions.setFactoryDiscountUse(factoryDiscountUse);
}
//年利率
String policyYearRatio = dto.getPolicyYearRatio();
loanSolutions.setPolicyYearRatio(policyYearRatio);
//月还金额
String loanPayMoney = dto.getLoanPayMoney();
BigDecimal monthlyRepay1 = new BigDecimal(BigInteger.ZERO);
if (StringUtils.isNotBlank(loanPayMoney)) {
loanSolutions.setLoanPayMoney(new BigDecimal(loanPayMoney));
monthlyRepay1 = monthlyRepay1.add(new BigDecimal(loanPayMoney));
} else {
loanSolutions.setLoanPayMoney(BigDecimal.ZERO);
}
//利息总额
BigDecimal interest = new BigDecimal(BigInteger.ZERO);
String loanInterest = dto.getLoanInterest();
if (StringUtils.isNotBlank(loanInterest)) {
loanSolutions.setLoanInterest(new BigDecimal(loanInterest));
interest = interest.add(new BigDecimal(loanInterest));
} else {
loanSolutions.setLoanInterest(BigDecimal.ZERO);
}
BigDecimal otherPolicyAmount1 = new BigDecimal(BigInteger.ZERO);
int ii = 0;
//=================================其它融
//勾选其它融
LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = new LoanSolutionsOtherpolicy();
if (dto.isOtherPolicyState()) {
//其它融名称
if (StringUtils.isNotBlank(dto.getOtherPolicyName())) {
loanSolutionsOtherpolicy.setOtherPolicyName(dto.getOtherPolicyName());
}
//贷款金额
String otherPolicyAmount = dto.getOtherPolicyAmount();
if (StringUtils.isNotBlank(otherPolicyAmount)) {
otherPolicyAmount1 = otherPolicyAmount1.add(new BigDecimal(otherPolicyAmount));
}
loanSolutionsOtherpolicy.setOtherPolicyAmount(otherPolicyAmount1);
String otherPolicyPeriod = dto.getOtherPolicyPeriod();
if (StringUtils.isNotBlank(otherPolicyPeriod)) {
loanSolutionsOtherpolicy.setOtherPolicyPeriod(otherPolicyPeriod);
ii = ii + Integer.valueOf(otherPolicyPeriod);
}
//其它融月还
String otherPolicyMonthlyRepay = dto.getOtherPolicyMonthlyRepay();
if (StringUtils.isNotBlank(otherPolicyMonthlyRepay)) {
loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(new BigDecimal(otherPolicyMonthlyRepay));
monthlyRepay1 = monthlyRepay1.add(new BigDecimal(otherPolicyMonthlyRepay));
} else {
loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(BigDecimal.ZERO);
}
//其它融利息总额
String otherPolicyInterest = dto.getOtherPolicyInterest();
if (StringUtils.isNotBlank(otherPolicyInterest)) {
loanSolutionsOtherpolicy.setOtherPolicyInterest(new BigDecimal(otherPolicyInterest));
interest = interest.add(new BigDecimal(otherPolicyInterest));
} else {
loanSolutionsOtherpolicy.setOtherPolicyInterest(BigDecimal.ZERO);
}
//方案汇总==========================================
//融资首付 = 首付金额-其它融贷款金额
BigDecimal loanDownPay = new BigDecimal(BigInteger.ZERO);
loanDownPay = loanDownPay.add(downPayAmount).subtract(otherPolicyAmount1);
loanSolutionsOtherpolicy.setLoanDownPay(loanDownPay);
//总贷款金额 = 主方案贷款金额+其它融贷款金额
BigDecimal loanAmountTotal = new BigDecimal(BigInteger.ZERO);
loanAmountTotal = loanAmountTotal.add(loanAmount).add(otherPolicyAmount1);
loanSolutionsOtherpolicy.setLoanAmountTotal(loanAmountTotal);
//期数 = 其它融期数拼接剩余期数(6/18)
int i = Integer.valueOf(loanPeriod) - Integer.valueOf(otherPolicyPeriod);
String period = otherPolicyPeriod + "/" + i;
loanSolutionsOtherpolicy.setPeriod(period);
//月还金额 = 总月还/贷款月还
String monthlyRepay = "";
if (StringUtils.isNotBlank(dto.getMonthlyRepay())) {
if (loanPeriod.equals(otherPolicyPeriod)) {
monthlyRepay = monthlyRepay1.toString() + "/-";
} else {
monthlyRepay = monthlyRepay1.toString() + "/" + dto.getLoanPayMoney();
}
} else {
monthlyRepay = monthlyRepay1.toString() + "/-";
}
//实际首付比例
String downPayAmountsRatio = "";
BigDecimal downPayAmountsRatio1 = loanDownPay.divide(loanTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);
downPayAmountsRatio = downPayAmountsRatio1.toString() + "%";
loanSolutionsOtherpolicy.setDownPayAmountsRatio(downPayAmountsRatio);
//预计首期还款日
String returnTime = dto.getReturnTime();
loanSolutionsOtherpolicy.setMonthlyRepay(monthlyRepay);
loanSolutionsOtherpolicy.setReturnTime(returnTime);
//利息总额
loanSolutionsOtherpolicy.setInterest(interest);
loanSolutions.setOtherPolicyState(1);
loanSolutionsOtherpolicy.setOtherPolicyYearRatio(dto.getOtherPolicyYearRatio());
} else {
//不勾选其它融
//方案汇总
//融资首付 = 首付金额-其它融贷款金额
BigDecimal loanDownPay = new BigDecimal(BigInteger.ZERO);
loanDownPay = loanDownPay.add(downPayAmount).subtract(otherPolicyAmount1);
loanSolutionsOtherpolicy.setLoanDownPay(loanDownPay);
//总贷款金额 = 主方案贷款金额+其它融贷款金额
BigDecimal loanAmountTotal = new BigDecimal(BigInteger.ZERO);
loanAmountTotal = loanAmountTotal.add(loanAmount).add(otherPolicyAmount1);
loanSolutionsOtherpolicy.setLoanAmountTotal(loanAmountTotal);
//实际首付比例
String downPayAmountsRatio = "";
BigDecimal downPayAmountsRatio1 = loanDownPay.divide(loanTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);
downPayAmountsRatio = downPayAmountsRatio1.toString() + "%";
loanSolutionsOtherpolicy.setDownPayAmountsRatio(downPayAmountsRatio);
//期数 = 其它融期数拼接剩余期数(6/18)
int i = Integer.valueOf(loanPeriod) - ii;
String period = ii + "/" + i;
loanSolutionsOtherpolicy.setPeriod(period);
//月还金额 = 总月还/贷款月还
String monthlyRepay = monthlyRepay1.toString();
//预计首期还款日
String returnTime = dto.getReturnTime();
loanSolutionsOtherpolicy.setMonthlyRepay(monthlyRepay);
loanSolutionsOtherpolicy.setReturnTime(returnTime);
//利息总额
loanSolutionsOtherpolicy.setInterest(interest);
loanSolutions.setOtherPolicyState(0);
}
baseMapper.insert(loanSolutions);
loanSolutionsOtherpolicy.setSolutionsSid(loanSolutions.getSid());
loanSolutionsOtherpolicyService.insert(loanSolutionsOtherpolicy);
//=========================应收明细
LoanSolutionsDetail loanSolutionsDetail = new LoanSolutionsDetail();
//应收合计 = 融资首付+贷款保证金+保险保证金+落户保证金+服务费+代收意外险+补车价+上牌费+运管费+其它费用
BigDecimal receivableTotal = new BigDecimal(BigInteger.ZERO);
//融资首付 = 首付金额-其它融贷款金额
BigDecimal downPayAmounts = new BigDecimal(BigInteger.ZERO);
downPayAmounts = downPayAmounts.add(downPayAmount).subtract(otherPolicyAmount1);
loanSolutionsDetail.setDownPayAmounts(downPayAmounts);
receivableTotal = receivableTotal.add(downPayAmounts);
//贷款保证金
if (StringUtils.isNotBlank(dto.getBondAmount())) {
receivableTotal = receivableTotal.add(new BigDecimal(dto.getBondAmount()));
loanSolutionsDetail.setBondAmounts(new BigDecimal(dto.getBondAmount()));
} else {
loanSolutionsDetail.setBondAmounts(BigDecimal.ZERO);
}
//保险保证金
String depositPremium = dto.getDepositPremium();
if (StringUtils.isNotBlank(depositPremium)) {
receivableTotal = receivableTotal.add(new BigDecimal(depositPremium));
loanSolutionsDetail.setDepositPremium(new BigDecimal(depositPremium));
} else {
loanSolutionsDetail.setDepositPremium(BigDecimal.ZERO);
}
//落户保证金
String depositSettle = dto.getDepositSettle();
if (StringUtils.isNotBlank(depositSettle)) {
receivableTotal = receivableTotal.add(new BigDecimal(depositSettle));
loanSolutionsDetail.setDepositSettle(new BigDecimal(depositSettle));
} else {
loanSolutionsDetail.setDepositSettle(BigDecimal.ZERO);
}
//服务费
String serviceAmount = dto.getServiceAmount();
if (StringUtils.isNotBlank(serviceAmount)) {
receivableTotal = receivableTotal.add(new BigDecimal(serviceAmount));
loanSolutionsDetail.setServiceAmount(new BigDecimal(serviceAmount));
} else {
loanSolutionsDetail.setServiceAmount(BigDecimal.ZERO);
}
//代收意外险
String proxyAccidentPremium = dto.getProxyAccidentPremium();
if (StringUtils.isNotBlank(proxyAccidentPremium)) {
receivableTotal = receivableTotal.add(new BigDecimal(proxyAccidentPremium));
loanSolutionsDetail.setProxyAccidentPremium(new BigDecimal(proxyAccidentPremium));
} else {
loanSolutionsDetail.setProxyAccidentPremium(BigDecimal.ZERO);
}
//上牌费
String registerAmount = dto.getRegisterAmount();
if (StringUtils.isNotBlank(registerAmount)) {
receivableTotal = receivableTotal.add(new BigDecimal(registerAmount));
loanSolutionsDetail.setRegisterAmount(new BigDecimal(registerAmount));
} else {
loanSolutionsDetail.setRegisterAmount(BigDecimal.ZERO);
}
//运管费
String operationAmount = dto.getOperationAmount();
if (StringUtils.isNotBlank(operationAmount)) {
receivableTotal = receivableTotal.add(new BigDecimal(operationAmount));
loanSolutionsDetail.setOperationAmount(new BigDecimal(operationAmount));
} else {
loanSolutionsDetail.setOperationAmount(BigDecimal.ZERO);
}
//补车价
String vehOtherPrice = dto.getVehOtherPrice();
if (StringUtils.isNotBlank(vehOtherPrice)) {
receivableTotal = receivableTotal.add(new BigDecimal(vehOtherPrice));
loanSolutionsDetail.setVehOtherPrice(new BigDecimal(vehOtherPrice));
} else {
loanSolutionsDetail.setVehOtherPrice(BigDecimal.ZERO);
}
//其它费用
String otherAmount = dto.getOtherAmount();
if (StringUtils.isNotBlank(otherAmount)) {
receivableTotal = receivableTotal.add(new BigDecimal(otherAmount));
loanSolutionsDetail.setOtherAmount(new BigDecimal(otherAmount));
} else {
loanSolutionsDetail.setOtherAmount(BigDecimal.ZERO);
}
//其它费用说明
String otherAmountRemark = dto.getOtherAmountRemark();
loanSolutionsDetail.setOtherAmountRemark(otherAmountRemark);
//办理方式选择
String dealWay = dto.getDealWay();
loanSolutionsDetail.setDealWay(dealWay);
String dealWayKey = dto.getDealWayKey();
loanSolutionsDetail.setDealWayKey(dealWayKey);
//代收首年保险费
String proxyPremium = dto.getProxyPremium();
if (StringUtils.isNotBlank(proxyPremium)) {
receivableTotal = receivableTotal.add(new BigDecimal(proxyPremium));
loanSolutionsDetail.setProxyPremium(new BigDecimal(proxyPremium));
} else {
loanSolutionsDetail.setProxyPremium(BigDecimal.ZERO);
}
//代收购置费
String proxyPurchasetax = dto.getProxyPurchasetax();
if (StringUtils.isNotBlank(proxyPurchasetax)) {
receivableTotal = receivableTotal.add(new BigDecimal(proxyPurchasetax));
loanSolutionsDetail.setProxyPurchasetax(new BigDecimal(proxyPurchasetax));
} else {
loanSolutionsDetail.setProxyPurchasetax(BigDecimal.ZERO);
}
//抵顶费用合计 = 抵顶首年保险费+抵顶购置税
BigDecimal offsetTotal = new BigDecimal(BigInteger.ZERO);
//抵顶首年保险费
String offsetPremium = dto.getOffsetPremium();
if (dto.isPremiumCb()) {
if (StringUtils.isNotBlank(offsetPremium)) {
offsetTotal = offsetTotal.add(new BigDecimal(offsetPremium));
loanSolutionsDetail.setOffsetPremium(new BigDecimal(offsetPremium));
} else {
loanSolutionsDetail.setOffsetPremium(BigDecimal.ZERO);
}
}
if (dto.isPurchaseTaxCb()) {
//抵顶购置税
String offsetPurchasetax = dto.getOffsetPurchasetax();
if (StringUtils.isNotBlank(offsetPurchasetax)) {
offsetTotal = offsetTotal.add(new BigDecimal(offsetPurchasetax));
loanSolutionsDetail.setOffsetPurchasetax(new BigDecimal(offsetPurchasetax));
} else {
loanSolutionsDetail.setOffsetPurchasetax(BigDecimal.ZERO);
}
}
//实收合计 = 应收合计-抵顶合计
BigDecimal realTotal = receivableTotal.subtract(offsetTotal);
//车辆总价
String vehTotalPrice = dto.getVehTotalPrice();
//名义留购价
String nominalPrice = dto.getNominalPrice();
loanSolutionsDetail.setRealTotal(realTotal);
loanSolutionsDetail.setReceivableTotal(receivableTotal);
loanSolutionsDetail.setOffsetTotal(offsetTotal);
if (StringUtils.isNotBlank(vehTotalPrice)) {
loanSolutionsDetail.setVehTotalPrice(new BigDecimal(vehTotalPrice));
} else {
loanSolutionsDetail.setVehTotalPrice(BigDecimal.ZERO);
}
if (StringUtils.isNotBlank(nominalPrice)) {
loanSolutionsDetail.setNominalPrice(new BigDecimal(nominalPrice));
} else {
loanSolutionsDetail.setNominalPrice(BigDecimal.ZERO);
}
loanSolutionsDetail.setSolutionsSid(loanSolutions.getSid());
loanSolutionsDetailService.insert(loanSolutionsDetail);
return rb.success();
}
public ResultBean<SolutionsDetailsVo> selectDetailss(String businessSid) {
ResultBean<SolutionsDetailsVo> rb = ResultBean.fireFail();
SolutionsDetailsVo solutionsDetailsVo = new SolutionsDetailsVo();
@ -691,7 +1181,7 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
AppOrderDetailsVo appOrderDetailsVo = resultBean.getData();
//单车主车、挂车、上装成交价
AppOrderPriceInfoVo appOrderPriceInfoVo = appOrderDetailsVo.getPriceInfo();
if(appOrderPriceInfoVo != null){
if (appOrderPriceInfoVo != null) {
solutionsDetailsVo.setFinalPrice(appOrderPriceInfoVo.getTransactionPrice());
solutionsDetailsVo.setGcPrice(appOrderPriceInfoVo.getGcPrice());
solutionsDetailsVo.setSzPrice(appOrderPriceInfoVo.getSzPrice());
@ -747,6 +1237,25 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
}
return rb.success().setMsg("保存失败");
}
public ResultBean<SolutionsDetailsVo> selectDetailByApplySid(String businessSid) {
ResultBean<SolutionsDetailsVo> rb = ResultBean.fireFail();
SolutionsDetailsVo solutionsDetailsVo = new SolutionsDetailsVo();
LoanSolutions loanSolutions = baseMapper.selectBySaleOrderSid(businessSid);
if (loanSolutions == null) {
return rb;
}
BeanUtil.copyProperties(loanSolutions, solutionsDetailsVo);
LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid());
if (loanSolutionsOtherpolicy != null) {
BeanUtil.copyProperties(loanSolutionsOtherpolicy, solutionsDetailsVo);
}
LoanSolutionsDetail loanSolutionsDetail = loanSolutionsDetailService.selectLoanSid(loanSolutions.getSid());
if (loanSolutionsDetail != null) {
BeanUtil.copyProperties(loanSolutionsDetail, solutionsDetailsVo);
}
return rb.success().setData(solutionsDetailsVo);
}
/* @Autowired
private LoanSolutionsTopService loanSolutionsTopService;
@Autowired

8
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.xml

@ -15,8 +15,12 @@
lote.showTypeValue,
lote.vehModel,
lote.vehModelSid,
lote.vehModelConfigSid
lote.vehModelConfigSid,
ls.policyName,
lso.otherPolicyName
from loan_template lote
left join loan_solutions ls on ls.salesOrderSid = lote.sid
left join loan_solutions_otherpolicy lso on lso.solutionsSid = ls.sid
<where>
${ew.sqlSegment}
</where>
@ -45,6 +49,6 @@
select count(*)
from loan_template
where length(nodeState) > 0
and find_in_set(sid, #{list})
and find_in_set(sid, #{list})
</select>
</mapper>

55
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java

@ -23,6 +23,9 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDto;
import com.yxt.anrui.riskcenter.api.loantemplate.*;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.SubmitTemplateDto;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeQuery;
@ -34,6 +37,7 @@ import com.yxt.anrui.riskcenter.api.loantemplateinstall.LoanTemplateInstallVo;
import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailer;
import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailerDto;
import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailerVo;
import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService;
import com.yxt.anrui.riskcenter.biz.loantemplateinstall.LoanTemplateInstallService;
import com.yxt.anrui.riskcenter.biz.loantemplatetrailer.LoanTemplateTrailerService;
import com.yxt.common.base.config.component.FileUploadComponent;
@ -87,6 +91,8 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
private BaseVehinstallmodelFeign baseVehinstallmodelFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private LoanSolutionsService loanSolutionsService;
public PagerVo<LoanTemplateVo> listPageVo(PagerQuery<LoanTemplateQuery> pq) {
@ -95,23 +101,30 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
if (query != null) {
//分公司
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("useOrgName", query.getUseOrgName());
qw.like("lote.useOrgName", query.getUseOrgName());
}
//模板名称
if (StringUtils.isNotBlank(query.getTemplateName())) {
qw.like("templateName", query.getTemplateName());
qw.like("lote.templateName", query.getTemplateName());
}
//使用状态
if (StringUtils.isNotBlank(query.getUseStateKey())) {
qw.eq("useState", query.getUseStateKey());
qw.eq("lote.useState", query.getUseStateKey());
}
//资方产品政策、
if (StringUtils.isNotBlank(query.getPolicyName())) {
qw.like("ls.policyName", query.getPolicyName());
}
//其他融产品名称
if (StringUtils.isNotBlank(query.getOtherPolicyName())) {
qw.like("lso.otherPolicyName", query.getOtherPolicyName());
}
//ToDo:资方产品政策、其他融产品名称
//申请日期开始时间
String applicationDateStart = query.getFilingDateStart();
//申请日期结束时间
String applicationDateEnd = query.getFilingDateEnd();
qw.apply(StringUtils.isNotBlank(applicationDateStart), "date_format (filingDate,'%Y-%m-%d') >= date_format('" + applicationDateStart + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(applicationDateEnd), "date_format (filingDate,'%Y-%m-%d') <= date_format('" + applicationDateEnd + "','%Y-%m-%d')"
qw.apply(StringUtils.isNotBlank(applicationDateStart), "date_format (lote.filingDate,'%Y-%m-%d') >= date_format('" + applicationDateStart + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(applicationDateEnd), "date_format (lote.filingDate,'%Y-%m-%d') <= date_format('" + applicationDateEnd + "','%Y-%m-%d')"
);
}
@ -158,6 +171,13 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
loanTemplate.setFilingDate(DateUtil.today());
sid = loanTemplate.getSid();
saveOrUpdateInstallAndTrailer(sid, dto);
LoanTemplateSolutionsDto loanTemplateSolutionsDto = dto.getLoanTemplateSolutions();
if (loanTemplateSolutionsDto != null) {
SolutionsDto solutionsDto = new SolutionsDto();
BeanUtil.copyProperties(loanTemplateSolutionsDto, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
loanSolutionsService.saveDto(solutionsDto);
}
baseMapper.insert(loanTemplate);
} else {
//修改
@ -167,6 +187,13 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
}
BeanUtil.copyProperties(dto, loanTemplate, "sid");
saveOrUpdateInstallAndTrailer(sid, dto);
LoanTemplateSolutionsDto loanTemplateSolutionsDto = dto.getLoanTemplateSolutions();
if (loanTemplateSolutionsDto != null) {
SolutionsDto solutionsDto = new SolutionsDto();
BeanUtil.copyProperties(loanTemplateSolutionsDto, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
loanSolutionsService.saveDto(solutionsDto);
}
baseMapper.updateById(loanTemplate);
}
return rb.success().setData(sid);
@ -545,9 +572,13 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
String installSid = loanTemplateInstall.getVehInstallModelSid();
ResultBean<BaseVehinstallmodelDetailsVo> installModelDetailsVoResultBean = baseVehinstallmodelFeign.fetchDetailsBySid(installSid);
if (installModelDetailsVoResultBean.getData() != null) {
BaseVehinstallmodelDetailsVo baseVehinstallmodelDetailsVo = installModelDetailsVoResultBean.getData();
LoanTemplateInstallVo loanTemplateInstallVo = new LoanTemplateInstallVo();
BeanUtil.copyProperties(installModelDetailsVoResultBean.getData(), loanTemplateInstallVo, "sid");
BeanUtil.copyProperties(loanTemplateInstall, loanTemplateInstallVo);
String wkSize = "长" + baseVehinstallmodelDetailsVo.getWk_long() + "mm,宽" + baseVehinstallmodelDetailsVo.getWk_wide() + "mm,高" + baseVehinstallmodelDetailsVo.getWk_high()+"mm";
loanTemplateInstallVo.setWkSize(wkSize);
String plateThickness = "底" + baseVehinstallmodelDetailsVo.getPlateThicknessBottom() + "mm,边" + baseVehinstallmodelDetailsVo.getPlateThicknessEdge()+"mm";
loanTemplateDetailsVo.setLoanTemplateInstall(loanTemplateInstallVo);
}
@ -559,6 +590,7 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
String trailerSid = loanTemplateTrailer.getVehTrailerModelSid();
ResultBean<BaseTrailerModelDetailsVo> trailerModelDetailsVoResultBean = baseTrailerModelFeign.fetchDetailsBySid(trailerSid);
if (trailerModelDetailsVoResultBean.getData() != null) {
BaseTrailerModelDetailsVo baseTrailerModelDetailsVo = trailerModelDetailsVoResultBean.getData();
LoanTemplateTrailerVo loanTemplateTrailerVo = new LoanTemplateTrailerVo();
BeanUtil.copyProperties(trailerModelDetailsVoResultBean.getData(), loanTemplateTrailerVo, "sid");
BeanUtil.copyProperties(loanTemplateTrailer, loanTemplateTrailerVo);
@ -569,9 +601,20 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
fileList = fileList.stream().map(v -> fileUploadComponent.getUrlPrefix() + v).collect(Collectors.toList());
loanTemplateTrailerVo.setVehTrailerCertificateFile(fileList);
}
//挂车车型名称:挂车类型(外观尺寸长宽高总高)
String trailerModelName = baseTrailerModelDetailsVo.getTrailerTypeValue() + "(长" + baseTrailerModelDetailsVo.getAppearanceSizeLong() + "mm,宽" + baseTrailerModelDetailsVo.getAppearanceSizeWide() + "mm,高" + baseTrailerModelDetailsVo.getAppearanceSizeHigh() + "mm,总高" + baseTrailerModelDetailsVo.getAppearanceSizeTotalHigh()+"mm";
loanTemplateTrailerVo.setModelTrailerName(trailerModelName);
String insideSize = "长" + baseTrailerModelDetailsVo.getInsideSizeLong() + "mm,宽" + baseTrailerModelDetailsVo.getInsideSizeWide() + "mm,高" + baseTrailerModelDetailsVo.getInsideSizeHigh()+"mm";
loanTemplateTrailerVo.setInsideSize(insideSize);
loanTemplateDetailsVo.setLoanTemplateTrailer(loanTemplateTrailerVo);
}
}
ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsService.selectDetailByApplySid(sid);
if (solutionsDetailsVoResultBean.getData() != null) {
LoanTemplateSolutionsVo loanTemplateSolutionsVo = new LoanTemplateSolutionsVo();
BeanUtil.copyProperties(solutionsDetailsVoResultBean.getData(), loanTemplateSolutionsVo);
loanTemplateDetailsVo.setLoanTemplateSolutions(loanTemplateSolutionsVo);
}
return rb.success().setData(loanTemplateDetailsVo);
}

6
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java

@ -112,6 +112,12 @@ public interface AppBusSalesOrderFeign {
@ResponseBody
public ResultBean rePublishSaleOrder(@PathVariable String saleOrderSid) throws InvocationTargetException, IllegalAccessException;
@ApiOperation("重新发起")
@GetMapping("rePublishSaleOrder")
@ResponseBody
public ResultBean rePublishSaleOrder(@RequestParam("saleOrderSid")String saleOrderSid,@RequestParam(value = "customerSid",required = false)String customerSid,@RequestParam(value = "customerName",required = false)String customerName,@RequestParam(value = "customerMobile",required = false)String customerMobile) throws InvocationTargetException, IllegalAccessException;
/*-----------------------------------------车型信息------------------------------------------*/
@ApiOperation("初始化销售订单车型信息")

5
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java

@ -99,6 +99,11 @@ public class AppBusSalesOrderFeignFallback implements AppBusSalesOrderFeign {
return null;
}
@Override
public ResultBean rePublishSaleOrder(String saleOrderSid, String customerSid, String customerName, String customerMobile) {
return null;
}
@Override
public ResultBean<BusSaleOrderInitModelInfoVo> getInitModelInfo(String saleOrderSid, String customerSid, String userSid) {
return null;

34
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CarModelVo.java

@ -0,0 +1,34 @@
package com.yxt.anrui.terminal.api.base.common;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/25
**/
@Data
public class CarModelVo implements Vo {
private static final long serialVersionUID = 765048085242343954L;
@ApiModelProperty("版本编码")
private Integer moduleVersion;
@ApiModelProperty("apk下载地址")
private String path;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String type;
@ApiModelProperty("插件名称")
private String modulePluginName;
@ApiModelProperty("地址")
private String moduleAction;
private String json;
private String requestCode;
}

12
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java

@ -26,7 +26,7 @@ public interface CommonFeign {
@ApiOperation(value = "App-合格证公告型号")
@ResponseBody
@GetMapping("/publicModel")
ResultBean<List<PublicModelVo>> getPublicModelList(@RequestParam("modelSid") String modelSid,@RequestParam("orgPath")String orgPath);
ResultBean<List<PublicModelVo>> getPublicModelList(@RequestParam("modelSid") String modelSid, @RequestParam("orgPath") String orgPath);
@ApiOperation(value = "获取上装配置")
@ResponseBody
@ -36,10 +36,16 @@ public interface CommonFeign {
@ApiOperation(value = "获取采购系统名称")
@ResponseBody
@GetMapping("/getSystem")
ResultBean<List<SystemVo>> getSystem(@RequestParam("orgPath")String orgPath);
ResultBean<List<SystemVo>> getSystem(@RequestParam("orgPath") String orgPath);
@ApiOperation(value = "获取金融部门主管")
@ResponseBody
@GetMapping("/selectFinance")
ResultBean<List<FinanceVo>> selectFinance(@RequestParam("orgPath")String orgPath,@RequestParam("userSid")String userSid);
ResultBean<List<FinanceVo>> selectFinance(@RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid);
@ApiOperation(value = "车型配置公共")
@ResponseBody
@GetMapping("/carDetails")
ResultBean<CarModelVo> carDetails();
}

19
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewDetailsQuery.java

@ -0,0 +1,19 @@
package com.yxt.anrui.terminal.api.risk.creditreview;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CreditReviewDetailsQuery implements Query {
private String sid;
@ApiModelProperty("客户类型key")
private String customerTypeKey;
@ApiModelProperty("客户类型value")
private String customerTypeValue;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("组织全路径")
private String orgPath;
}

55
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewDetailsVo.java

@ -0,0 +1,55 @@
package com.yxt.anrui.terminal.api.risk.creditreview;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class CreditReviewDetailsVo implements Vo {
private String sid;
@ApiModelProperty("申请人+部门")
private String publishInfo;
@ApiModelProperty("申请日期")
private String createTime;
@ApiModelProperty("客户类型key 1个人2企业")
private String customerTypeKey;
@ApiModelProperty("客户类型value")
private String customerType;
@ApiModelProperty("车型名称")
private String model;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("法人/贷款人姓名")
private String legalPersonName;
@ApiModelProperty("贷款人sid")
private String legalPersonSid;
@ApiModelProperty("法人/贷款人手机号")
private String legalPersonMobile;
@ApiModelProperty("法人/贷款人身份证")
private String legalPersonIdNumber;
@ApiModelProperty("身份证正反面附件")
private List<String> legalPersonIdCardImages;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("企业名称")
private String companyName;
@ApiModelProperty("企业sid")
private String companySid;
@ApiModelProperty("公司要求材料")
private List<String> materialImages;
@ApiModelProperty("资方名称")
private String managementName;
@ApiModelProperty("资方sid")
private String managementSid;
@ApiModelProperty("模板下载地址")
private String downUrl;
@ApiModelProperty("风控要求的其他人员")
private List<ShareholderDetailsVo> shareholderList = new ArrayList<>();
private List<IdentityDetailsVo> identity = new ArrayList<>();
}

51
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewFeign.java

@ -0,0 +1,51 @@
package com.yxt.anrui.terminal.api.risk.creditreview;
import com.yxt.anrui.terminal.api.autoservice.advanceInvoice.AdvanceInvoiceInfoQuery;
import com.yxt.anrui.terminal.api.autoservice.advanceInvoice.AdvanceInvoiceInfoVo;
import com.yxt.anrui.terminal.api.autoservice.advanceInvoice.AdvanceInvoicePageQuery;
import com.yxt.anrui.terminal.api.risk.policyrecordapply.AppFinPolicyApplyInitVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Author
* @Date
* @Description
*/
@Api(tags = "贷前信用审核")
@FeignClient(
contextId = "terminal-CreditReview",
name = "anrui-terminal",
path = "/riskcenter/v1/creditReview",
fallback = CreditReviewFeignFallback.class)
public interface CreditReviewFeign {
@ApiOperation("获取信用审核列表")
@PostMapping("/getCreditReviewList")
@ResponseBody
public ResultBean<PagerVo<CreditReviewVo>> getCreditReviewList(@RequestBody PagerQuery<CreditReviewQuery> pagerQuery);
@ApiOperation("获取贷前信用审核 个人/企业")
@GetMapping("/initCreditReviewInfo")
@ResponseBody
public ResultBean<CreditReviewDetailsVo> initCreditReviewInfo(@SpringQueryMap CreditReviewDetailsQuery query);
@ApiOperation("查询车型信息")
@GetMapping("/selModelByUseOrgSid")
@ResponseBody
public ResultBean<List<IdentityDetailsVo>> selModelByUseOrgSid(@SpringQueryMap CreditReviewDetailsQuery query);
@ApiOperation("查询资方信息")
@GetMapping("/getTRCList")
@ResponseBody
public ResultBean<List<IdentityDetailsVo>> getTRCList(@SpringQueryMap CreditReviewDetailsQuery query);
}

42
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewFeignFallback.java

@ -0,0 +1,42 @@
package com.yxt.anrui.terminal.api.risk.creditreview;
import com.yxt.anrui.terminal.api.risk.policyrecordapply.AppFinPolicyApplyInitVo;
import com.yxt.anrui.terminal.api.risk.policyrecordapply.flow.CompletePolicyDto;
import com.yxt.anrui.terminal.api.risk.policyrecordapply.flow.PolicyFlowableQuery;
import com.yxt.anrui.terminal.api.risk.policyrecordapply.flow.PolicyTaskQuery;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2023/3/21 15:19
* @Description
*/
@Component
public class CreditReviewFeignFallback implements CreditReviewFeign {
@Override
public ResultBean<PagerVo<CreditReviewVo>> getCreditReviewList(PagerQuery<CreditReviewQuery> pagerQuery) {
return null;
}
@Override
public ResultBean<CreditReviewDetailsVo> initCreditReviewInfo(CreditReviewDetailsQuery query) {
return null;
}
@Override
public ResultBean<List<IdentityDetailsVo>> selModelByUseOrgSid(CreditReviewDetailsQuery query) {
return null;
}
@Override
public ResultBean<List<IdentityDetailsVo>> getTRCList(CreditReviewDetailsQuery query) {
return null;
}
}

19
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewQuery.java

@ -0,0 +1,19 @@
package com.yxt.anrui.terminal.api.risk.creditreview;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CreditReviewQuery implements Query {
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("购车人/手机号")
private String names;
@ApiModelProperty("审核状态")
private String type;
private String menuSid;
}

37
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewVo.java

@ -0,0 +1,37 @@
package com.yxt.anrui.terminal.api.risk.creditreview;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CreditReviewVo implements Vo {
private String sid;
@ApiModelProperty("创建日期")
private String createDate;
@ApiModelProperty("购车人")
private String name;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("车型")
private String model;
@ApiModelProperty("资方名称")
private String management;
@ApiModelProperty("审核日期 审核后有值")
private String examineDate;
@ApiModelProperty("公司风控审核结果 审核后有值")
private String companyResults;
@ApiModelProperty("资方风控审核结果 审核后有值")
private String managementResults;
@ApiModelProperty("是否显示删除 审核后不显示")
private Boolean showDeleteBtn;
@ApiModelProperty("是否显示修改审核后显示")
private Boolean showUpdateBtn;
@ApiModelProperty("是否显示申诉 审核后显示")
private Boolean showHandleBtn;
@ApiModelProperty("客户类型")
private String customerKey;
@ApiModelProperty("申诉结果")
private String appealResults;
}

15
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/IdentityDetailsVo.java

@ -0,0 +1,15 @@
package com.yxt.anrui.terminal.api.risk.creditreview;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class IdentityDetailsVo implements Vo {
private String sid;
@ApiModelProperty("人员类型key")
private String dictKey;
@ApiModelProperty("人员类型value")
private String dictValue;
}

26
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/ShareholderDetailsVo.java

@ -0,0 +1,26 @@
package com.yxt.anrui.terminal.api.risk.creditreview;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class ShareholderDetailsVo implements Vo {
@ApiModelProperty("姓名")
private String shareholderName;
@ApiModelProperty("手机号")
private String shareholderMobile;
@ApiModelProperty("身份证号")
private String shareholderIdNumber;
@ApiModelProperty("备注")
private String shareholderRemarks;
@ApiModelProperty("身份key")
private String shareholderTypeKey;
@ApiModelProperty("身份value")
private String shareholderTypeValue;
@ApiModelProperty("身份证正反面")
private List<String> shareholderIdCardImages;
}

7
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java

@ -118,7 +118,12 @@ public class AppBusSalesOrderRest implements AppBusSalesOrderFeign {
@Override
@ApiOperation("重新提交")
public ResultBean rePublishSaleOrder(String saleOrderSid) throws InvocationTargetException, IllegalAccessException {
return appBusSalesOrderService.rePublishSaleOrder(saleOrderSid);
return appBusSalesOrderService.rePublishSaleOrder(saleOrderSid,"","","");
}
@Override
public ResultBean rePublishSaleOrder(String saleOrderSid, String customerSid, String customerName, String customerMobile) throws InvocationTargetException, IllegalAccessException {
return appBusSalesOrderService.rePublishSaleOrder(saleOrderSid,customerSid,customerName,customerMobile);
}
@Override

4
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java

@ -694,9 +694,9 @@ public class AppBusSalesOrderService {
}
public ResultBean<String> rePublishSaleOrder(String saleOrderSid) throws InvocationTargetException, IllegalAccessException {
public ResultBean<String> rePublishSaleOrder(String saleOrderSid,String customerSid, String customerName, String customerMobile) throws InvocationTargetException, IllegalAccessException {
ResultBean rb = ResultBean.fireFail();
ResultBean resultBean = busSalesOrderFeign.rePublishSaleOrder(saleOrderSid);
ResultBean resultBean = busSalesOrderFeign.rePublishSaleOrder(saleOrderSid,customerSid,customerName,customerMobile);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}

5
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java

@ -43,4 +43,9 @@ public class CommonRest implements CommonFeign {
public ResultBean<List<FinanceVo>> selectFinance(String orgPath, String userSid) {
return commonService.selectFinance(orgPath, userSid);
}
@Override
public ResultBean<CarModelVo> carDetails() {
return commonService.carDetails();
}
}

25
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java

@ -2,6 +2,7 @@ package com.yxt.anrui.terminal.biz.base.common;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.base.api.basepurchasesystem.AppBasePurchSystemVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.base.api.basevehinstallmodel.BaseVehinstallmodelFeign;
@ -9,6 +10,8 @@ import com.yxt.anrui.base.api.basevehinstallmodel.VehinstallModelQuery;
import com.yxt.anrui.base.api.basevehinstallmodel.VehinstallModelVo;
import com.yxt.anrui.base.api.basevehmodelannouncementmodel.AnnouncementVo;
import com.yxt.anrui.base.api.basevehmodelannouncementmodel.BaseVehmodelAnnouncementmodelFeign;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubVersionVo;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionFeign;
import com.yxt.anrui.portal.api.sysorganization.SysFinanceVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.terminal.api.base.common.*;
@ -19,9 +22,7 @@ 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.List;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -40,6 +41,8 @@ public class CommonService {
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private AppSubsetVersionFeign appSubsetVersionFeign;
public ResultBean<List<PublicModelVo>> getPublicModelList(String modelSid, String orgPath) {
ResultBean<List<PublicModelVo>> rb = ResultBean.fireFail();
@ -72,4 +75,20 @@ public class CommonService {
List<FinanceVo> list = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), FinanceVo.class)).collect(Collectors.toList());
return rb.success().setData(list);
}
public ResultBean<CarModelVo> carDetails() {
ResultBean<CarModelVo> rb = ResultBean.fireFail();
String appSid = "fec4e243-491a-11ec-94cd-fa163e0cb33c";
String moduleAction = "com.anrui.android.plugin.autoservice.common.CarModelActivity";
ResultBean<AppSubVersionVo> voResultBean = appSubsetVersionFeign.getLastRiskByAppSid(appSid, moduleAction);
AppSubVersionVo appSubVersionVo = voResultBean.getData();
CarModelVo carModelVo = new CarModelVo();
Map<String, Object> map = new HashMap<>();
map.put("canNoCustomer", true);
map.put("selectType", 2);
appSubVersionVo.setJson(JSONObject.toJSONString(map));
BeanUtil.copyProperties(appSubVersionVo, carModelVo);
carModelVo.setRequestCode("1001");
return rb.success().setData(carModelVo);
}
}

51
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/creditreview/CreditReviewRest.java

@ -0,0 +1,51 @@
package com.yxt.anrui.terminal.biz.risk.creditreview;
import com.yxt.anrui.terminal.api.risk.creditreview.*;
import com.yxt.anrui.terminal.api.risk.otherpolicyrecordapply.AppFinOtherPolicyApplyInitVo;
import com.yxt.anrui.terminal.api.risk.otherpolicyrecordapply.OtherPolicyRecordApplyFeign;
import com.yxt.anrui.terminal.api.risk.otherpolicyrecordapply.flow.CompleteOtherPolicyDto;
import com.yxt.anrui.terminal.api.risk.otherpolicyrecordapply.flow.OtherPolicyFlowableQuery;
import com.yxt.anrui.terminal.api.risk.otherpolicyrecordapply.flow.OtherPolicyTaskQuery;
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.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
/**
* @Author
* @Date 2023/3/25 9:39
* @Description
*/
@Api(tags = "贷前信用审核")
@Controller
@RequestMapping("/riskcenter/v1/creditReview")
public class CreditReviewRest implements CreditReviewFeign {
@Autowired
private CreditReviewService creditReviewService;
@Override
public ResultBean<PagerVo<CreditReviewVo>> getCreditReviewList(PagerQuery<CreditReviewQuery> pagerQuery) {
return creditReviewService.getCreditReviewList(pagerQuery);
}
@Override
public ResultBean<CreditReviewDetailsVo> initCreditReviewInfo(CreditReviewDetailsQuery query) {
return creditReviewService.initCreditReviewInfo(query);
}
@Override
public ResultBean<List<IdentityDetailsVo>> selModelByUseOrgSid(CreditReviewDetailsQuery query) {
return creditReviewService.selModelByUseOrgSid(query);
}
@Override
public ResultBean<List<IdentityDetailsVo>> getTRCList(CreditReviewDetailsQuery query) {
return creditReviewService.getTRCList(query);
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save