PtlAgreementUndwrtRules.java 12 KB

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