PtlAgreementUndwrtRules.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. package com.ydtech.modules.protocol.entity.po;
  2. import com.baomidou.mybatisplus.annotation.IdType;
  3. import com.baomidou.mybatisplus.annotation.TableField;
  4. import com.baomidou.mybatisplus.annotation.TableId;
  5. import com.baomidou.mybatisplus.annotation.TableName;
  6. import com.ydtech.modules.protocol.entity.dto.PtlAgreementUnderwritingRulesSaveDto;
  7. import com.ydtech.modules.protocol.entity.dto.PtlAgreementUndwrtRulesSaveDto;
  8. import lombok.AllArgsConstructor;
  9. import lombok.Data;
  10. import lombok.NoArgsConstructor;
  11. import org.springframework.beans.BeanUtils;
  12. import java.io.Serializable;
  13. import java.util.HashMap;
  14. import java.util.List;
  15. import java.util.Map;
  16. import java.util.stream.Collectors;
  17. /**
  18. * 协议承保规则
  19. *
  20. * @TableName ptl_agreement_undwrt_rules
  21. */
  22. @TableName(value = "ptl_agreement_undwrt_rules", autoResultMap = true)
  23. @Data
  24. @NoArgsConstructor
  25. @AllArgsConstructor
  26. public class PtlAgreementUndwrtRules implements Serializable {
  27. private static final long serialVersionUID = -2096076927159362790L;
  28. /**
  29. * 主键/自增
  30. */
  31. @TableId(value = "id", type = IdType.AUTO)
  32. private String id;
  33. /**
  34. * 协议id
  35. */
  36. @TableField(value = "agreement_id")
  37. private String agreementId;
  38. /**
  39. * 规则类型(0满足拒保 1满足承包)
  40. */
  41. @TableField(value = "rules_type")
  42. private Integer rulesType;
  43. /**
  44. * 业务类型
  45. */
  46. @TableField(value = "product_type")
  47. private String productType;
  48. /**
  49. * 规则描述
  50. */
  51. @TableField(value = "rule_description")
  52. private String ruleDescription;
  53. /**
  54. * 是否有效(0 否 1 是 )
  55. */
  56. @TableField(value = "valid_ind")
  57. private Integer validInd;
  58. /**
  59. * 过户车(0 否 1 是 )
  60. */
  61. @TableField(value = "transfer")
  62. private Integer transfer;
  63. /**
  64. * 新旧车(0 否 1 是 )
  65. */
  66. @TableField(value = "old_and_new")
  67. private Integer oldAndNew;
  68. /**
  69. * 过户车(0 否 1 是 )
  70. */
  71. @TableField(value = "new_energy")
  72. private Integer newEnergy;
  73. /**
  74. * 续保车(0 否 1 是 )
  75. */
  76. @TableField(value = "renewal")
  77. private Integer renewal;
  78. /**
  79. * 车辆大类
  80. */
  81. @TableField(value = "vehicle_category")
  82. private String vehicleCategory;
  83. /**
  84. * 使用性质
  85. */
  86. @TableField(value = "nature_of_use")
  87. private String natureOfUse;
  88. /**
  89. * 客车座位数(最小)
  90. */
  91. @TableField(value = "min_seats")
  92. private Integer minSeats;
  93. /**
  94. * 客车座位数(最大)
  95. */
  96. @TableField(value = "max_seats")
  97. private Integer maxSeats;
  98. /**
  99. * 货车吨位数(最小)
  100. */
  101. @TableField(value = "min_truck_tonnage")
  102. private Double minTruckTonnage;
  103. /**
  104. * 货车吨位数(最大)
  105. */
  106. @TableField(value = "max_truck_tonnage")
  107. private Double maxTruckTonnage;
  108. /**
  109. * 新车购置价(最小)
  110. */
  111. @TableField(value = "min_purchase_price")
  112. private Integer minPurchasePrice;
  113. /**
  114. * 新车购置价(最大)
  115. */
  116. @TableField(value = "max_purchase_price")
  117. private Integer maxPurchasePrice;
  118. /**
  119. * 核定载质量(最小)
  120. */
  121. @TableField(value = "min_approved_load_capacity")
  122. private Double minApprovedLoadCapacity;
  123. /**
  124. * 核定载质量(最大)
  125. */
  126. @TableField(value = "max_approved_load_capacity")
  127. private Double maxApprovedLoadCapacity;
  128. /**
  129. * 交强险保费(最小)
  130. */
  131. @TableField(value = "min_compulsory_insurance_premium")
  132. private Integer minCompulsoryInsurancePremium;
  133. /**
  134. * 交强险保费(最大)
  135. */
  136. @TableField(value = "max_compulsory_insurance_premium")
  137. private Integer maxCompulsoryInsurancePremium;
  138. /**
  139. * 车船税金额(最小)
  140. */
  141. @TableField(value = "min_tax_amount")
  142. private Integer minTaxAmount;
  143. /**
  144. * 车船税金额(最大)
  145. */
  146. @TableField(value = "max_tax_amount")
  147. private Integer maxTaxAmount;
  148. /**
  149. * 三者险保额(最小)
  150. */
  151. @TableField(value = "min_the_three_premium")
  152. private Integer minTheThreePremium;
  153. /**
  154. * 三者险保额(最大)
  155. */
  156. @TableField(value = "max_the_three_premium")
  157. private Integer maxTheThreePremium;
  158. /**
  159. * 随车产品保费(最小)
  160. */
  161. @TableField(value = "min_onboard_products_premium")
  162. private Integer minOnboardProductsPremium;
  163. /**
  164. * 随车产品保费(最大)
  165. */
  166. @TableField(value = "max_onboard_products_premium")
  167. private Integer maxOnboardProductsPremium;
  168. /**
  169. * 商业险折扣(最小)
  170. */
  171. @TableField(value = "min_commercial_insurance_discount")
  172. private Double minCommercialInsuranceDiscount;
  173. /**
  174. * 商业险折扣(最大)
  175. */
  176. @TableField(value = "max_commercial_insurance_discount")
  177. private Double maxCommercialInsuranceDiscount;
  178. /**
  179. * 交强险折扣(最小)
  180. */
  181. @TableField(value = "min_compulsory_insurance_discount")
  182. private Double minCompulsoryInsuranceDiscount;
  183. /**
  184. * 交强险折扣(最大)
  185. */
  186. @TableField(value = "max_compulsory_insurance_discount")
  187. private Double maxCompulsoryInsuranceDiscount;
  188. /**
  189. * 保司评分(最小)
  190. */
  191. @TableField(value = "min_score")
  192. private Double minScore;
  193. /**
  194. * 保司评分(最大)
  195. */
  196. @TableField(value = "max_score")
  197. private Double maxScore;
  198. /**
  199. * 预期赔付率(最小)
  200. */
  201. @TableField(value = "min_loss_ration")
  202. private Double minLossRation;
  203. /**
  204. * 预期赔付率(最大)
  205. */
  206. @TableField(value = "max_loss_ration")
  207. private Double maxLossRation;
  208. /**
  209. * 车牌号
  210. */
  211. @TableField(value = "license_number")
  212. private String licenseNumber;
  213. /**
  214. * 车牌因子是否含暂未上牌
  215. */
  216. @TableField(value = "contain_noLicense")
  217. private String containNoLicense;
  218. /**
  219. * 司机险保额(最小)
  220. */
  221. @TableField(value = "min_driver_amount")
  222. private Integer minDriverAmount;
  223. /**
  224. * 司机险保额(最大)
  225. */
  226. @TableField(value = "max_driver_amount")
  227. private Integer maxDriverAmount;
  228. /**
  229. * 乘客险保额(最小)
  230. */
  231. @TableField(value = "min_passenger_amount")
  232. private Integer minPassengerAmount;
  233. /**
  234. * 乘客险保额(最大)
  235. */
  236. @TableField(value = "max_passenger_amount")
  237. private Integer maxPassengerAmount;
  238. /**
  239. * 司机乘客关联关系
  240. */
  241. @TableField(value = "driver_passenger_relation")
  242. private String driverPassengerRelation;
  243. /**
  244. * 被保人年龄(最小)
  245. */
  246. @TableField(value = "min_insure_age")
  247. private Integer minInsureAge;
  248. /**
  249. * 被保人年龄(最大)
  250. */
  251. @TableField(value = "max_insure_age")
  252. private Integer maxInsureAge;
  253. /**
  254. * 车主年龄(最小)
  255. */
  256. @TableField(value = "min_car_owner_age")
  257. private Integer minCarOwnerAge;
  258. /**
  259. * 车主年龄(最大)
  260. */
  261. @TableField(value = "max_car_owner_age")
  262. private Integer maxCarOwnerAge;
  263. /**
  264. * 医保外用任意险别
  265. */
  266. @TableField(value = "any_medical_amount")
  267. private Integer anyMedicalAmount;
  268. /**
  269. * 医保外用三者
  270. */
  271. @TableField(value = "third_medical_amount")
  272. private Integer thirdMedicalAmount;
  273. /**
  274. * 医保外用司机
  275. */
  276. @TableField(value = "driver_medical_amount")
  277. private Integer driverMedicalAmount;
  278. /**
  279. * 医保外用乘客
  280. */
  281. @TableField(value = "passenger_medical_amount")
  282. private Integer passengerMedicalAmount;
  283. /**
  284. * @param agreementId 协议id
  285. * @param ptlAgreementUndwrtRulesSaveDtoList 协议费用 Dto list
  286. * @return List<PtlAgreementProductCosts>
  287. */
  288. public static List<PtlAgreementUndwrtRules> toPtlAgreementUndwrtRulesSaveDtoList(String agreementId, List<PtlAgreementUndwrtRulesSaveDto> ptlAgreementUndwrtRulesSaveDtoList) {
  289. return ptlAgreementUndwrtRulesSaveDtoList.stream().map(ptlAgreementUndwrtRulesSaveDto -> new PtlAgreementUndwrtRules(agreementId, ptlAgreementUndwrtRulesSaveDto)).collect(Collectors.toList());
  290. }
  291. public PtlAgreementUndwrtRules(String agreementId, PtlAgreementUndwrtRulesSaveDto ptlAgreementUndwrtRulesSaveDto) {
  292. this.agreementId = agreementId;
  293. BeanUtils.copyProperties(ptlAgreementUndwrtRulesSaveDto, this);
  294. }
  295. public static int getObjectHashCode(Object o, int result) {
  296. return 31 * result + (o != null ? o.hashCode() : 0);
  297. }
  298. public int getHashCode() {
  299. int result = 0;
  300. result = getObjectHashCode(this.agreementId, result);
  301. result = getObjectHashCode(this.productType, result);
  302. result = getObjectHashCode(this.transfer, result);
  303. result = getObjectHashCode(this.oldAndNew, result);
  304. result = getObjectHashCode(this.newEnergy, result);
  305. result = getObjectHashCode(this.renewal, result);
  306. result = getObjectHashCode(this.vehicleCategory, result);
  307. result = getObjectHashCode(this.natureOfUse, result);
  308. result = getObjectHashCode(this.minSeats, result);
  309. result = getObjectHashCode(this.maxSeats, result);
  310. result = getObjectHashCode(this.minTruckTonnage, result);
  311. result = getObjectHashCode(this.maxTruckTonnage, result);
  312. result = getObjectHashCode(this.minPurchasePrice, result);
  313. result = getObjectHashCode(this.maxPurchasePrice, result);
  314. result = getObjectHashCode(this.minApprovedLoadCapacity, result);
  315. result = getObjectHashCode(this.maxApprovedLoadCapacity, result);
  316. result = getObjectHashCode(this.minCompulsoryInsurancePremium, result);
  317. result = getObjectHashCode(this.maxCompulsoryInsurancePremium, result);
  318. result = getObjectHashCode(this.minTaxAmount, result);
  319. result = getObjectHashCode(this.maxTaxAmount, result);
  320. result = getObjectHashCode(this.minTheThreePremium, result);
  321. result = getObjectHashCode(this.maxTheThreePremium, result);
  322. result = getObjectHashCode(this.minOnboardProductsPremium, result);
  323. result = getObjectHashCode(this.maxOnboardProductsPremium, result);
  324. result = getObjectHashCode(this.minCommercialInsuranceDiscount, result);
  325. result = getObjectHashCode(this.maxCommercialInsuranceDiscount, result);
  326. result = getObjectHashCode(this.minCompulsoryInsuranceDiscount, result);
  327. result = getObjectHashCode(this.maxCompulsoryInsuranceDiscount, result);
  328. result = getObjectHashCode(this.minScore, result);
  329. result = getObjectHashCode(this.maxScore, result);
  330. result = getObjectHashCode(this.minLossRation, result);
  331. result = getObjectHashCode(this.maxLossRation, result);
  332. result = getObjectHashCode(this.licenseNumber, result);
  333. result = getObjectHashCode(this.ruleDescription, result);
  334. result = getObjectHashCode(this.containNoLicense, result);
  335. result = getObjectHashCode(this.minDriverAmount, result);
  336. result = getObjectHashCode(this.maxDriverAmount, result);
  337. result = getObjectHashCode(this.minPassengerAmount, result);
  338. result = getObjectHashCode(this.maxPassengerAmount, result);
  339. result = getObjectHashCode(this.driverPassengerRelation, result);
  340. result = getObjectHashCode(this.minInsureAge,result);
  341. result = getObjectHashCode(this.maxInsureAge,result);
  342. result = getObjectHashCode(this.minCarOwnerAge,result);
  343. result = getObjectHashCode(this.maxCarOwnerAge,result);
  344. result = getObjectHashCode(this.anyMedicalAmount,result);
  345. result = getObjectHashCode(this.thirdMedicalAmount,result);
  346. result = getObjectHashCode(this.driverMedicalAmount,result);
  347. result = getObjectHashCode(this.passengerMedicalAmount,result);
  348. return result;
  349. }
  350. public static Map<Integer, PtlAgreementUndwrtRules> getIntegerMap(List<PtlAgreementUndwrtRules> ptlAgreementUndwrtRulesList) {
  351. Map<Integer, PtlAgreementUndwrtRules> map = new HashMap<>();
  352. ptlAgreementUndwrtRulesList.forEach(x -> {
  353. int hashCode = x.getHashCode();
  354. map.put(hashCode, x);
  355. });
  356. return map;
  357. }
  358. }