CheckInsPlyComeUtils.java 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711
  1. package com.ydtech.modules.inv.utils;
  2. import com.alibaba.excel.annotation.ExcelProperty;
  3. import com.ydtech.modules.admin.dao.KztDataPermissionMapper;
  4. import com.ydtech.modules.admin.dao.SysUserDeptRelationshipMapper;
  5. import com.ydtech.modules.admin.utils.SpringContextUtil;
  6. import com.ydtech.modules.esm.model.EsmInsCompany;
  7. import com.ydtech.modules.esm.service.EsmInsCompanyService;
  8. import com.ydtech.modules.fnc.entity.InsPlyIncome;
  9. import com.ydtech.modules.inv.model.excel.*;
  10. import com.ydtech.modules.protocol.entity.po.PtlAgreement;
  11. import com.ydtech.modules.protocol.service.PtlAgreementService;
  12. import io.swagger.annotations.ApiModelProperty;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.springframework.context.ApplicationContext;
  15. import java.math.BigDecimal;
  16. import java.text.DateFormat;
  17. import java.text.ParseException;
  18. import java.text.SimpleDateFormat;
  19. import java.time.LocalDate;
  20. import java.time.LocalDateTime;
  21. import java.time.format.DateTimeFormatter;
  22. import java.util.HashMap;
  23. import java.util.Map;
  24. /**
  25. * @version
  26. * @author: hxl
  27. * @Date: 2024/9/21 14:38
  28. * @Description: 验证数据
  29. */
  30. public class CheckInsPlyComeUtils {
  31. /**
  32. * @version
  33. * @author: hxl
  34. * @Date: 2024/9/21 14:41
  35. * @Description: 验证签单日期
  36. */
  37. public static String checkSignDate(String data,String msg){
  38. //2024-11-14 需求签单日期格式不需要时分秒
  39. String errorMsg =null;
  40. if(StringUtils.isBlank(data) || !isValidDate(data,"yyyy-MM-dd") ){
  41. errorMsg = msg+"不能为空或格式错误,格式为yyyy-MM-dd";
  42. }
  43. return errorMsg;
  44. }
  45. /**
  46. * @version
  47. * @author: hxl
  48. * @Date: 2024/9/21 14:51
  49. * @Description: 验证时间格式
  50. */
  51. public static boolean isValidDate(String date, String format) {
  52. try {
  53. DateFormat dateFormat = new SimpleDateFormat(format);
  54. dateFormat.setLenient(false);
  55. dateFormat.parse(date);
  56. return true;
  57. } catch (ParseException e) {
  58. return false;
  59. }
  60. }
  61. /**
  62. * @version
  63. * @author: hxl
  64. * @Date: 2024/9/21 14:41
  65. * @Description: 验证非空
  66. */
  67. public static String checkIsNull(String data,String msg){
  68. String errorMsg =null;
  69. if(StringUtils.isBlank(data) ){
  70. errorMsg=msg+"不能为空";
  71. }
  72. return errorMsg;
  73. }
  74. /**
  75. * @version
  76. * @author: hxl
  77. * @Date: 2024/9/21 14:41
  78. * @Description: 验证非空以及数据
  79. */
  80. public static String isNumeric(String data,String msg) {
  81. String errorMsg =null;
  82. if(StringUtils.isBlank(data) || msg.matches("-?\\d+(\\.\\d+)?") ){
  83. errorMsg=msg+"不能为空或者格式错误,必须为数字";
  84. }
  85. return errorMsg;
  86. }
  87. /**
  88. * @version
  89. * @author: hxl
  90. * @Date: 2024/9/21 14:41
  91. * @Description: 验证保险公司
  92. */
  93. public static Map<String,String> checkCompanyName(String data,String msg) {
  94. ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
  95. EsmInsCompanyService esmInsCompanyService = applicationContext.getBean(EsmInsCompanyService.class);
  96. EsmInsCompany insCompany = esmInsCompanyService.findInsCompanyByNameOrNamesimple(data);
  97. String errorMsg =null;
  98. String id ="";
  99. if(StringUtils.isBlank(data) || insCompany==null ){
  100. errorMsg=msg+"不能为空或者格式错误,未查询到"+msg+"名称,请填写全称";
  101. }else{
  102. id =insCompany==null?"":insCompany.getId();
  103. }
  104. Map<String,String> map =new HashMap<String,String>();
  105. map.put("msg",errorMsg);
  106. map.put("id",id);
  107. return map;
  108. }
  109. /**
  110. * @version
  111. * @author: hxl
  112. * @Date: 2024/9/21 14:41
  113. * @Description: 验证协议名称
  114. */
  115. public static Map<String,Object> checkAgreeName(String data, String msg,String type) {
  116. ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
  117. PtlAgreementService ptlAgreementService = applicationContext.getBean(PtlAgreementService.class);
  118. //由于协议名称确定不了唯一,通过协议编号确认唯一 add by hxl 2024-10-12 14:36
  119. PtlAgreement ptlAgreement = ptlAgreementService.getByAgreementIdNew(data);
  120. //PtlAgreement ptlAgreement = ptlAgreementService.getByAgreementTitle(data);
  121. String errorMsg =null;
  122. if(StringUtils.isBlank(data) || ptlAgreement==null ){
  123. errorMsg=msg+"不能为空或者格式错误,未查询到"+msg+"名称,请填写协议编号";
  124. }else {
  125. // 2 私有 1 平台
  126. if(!type.equals(ptlAgreement.getAgreementType())){
  127. errorMsg=msg+"协议类型错误";
  128. }
  129. }
  130. Map<String,Object> map =new HashMap<String,Object>();
  131. map.put("msg",errorMsg);
  132. map.put("id",ptlAgreement);
  133. return map;
  134. }
  135. public static String checkRiskcode(String data, String msg) {
  136. Map<String,String> map =new HashMap<String,String>();
  137. map.put("单交","0330");
  138. map.put("单商","034001");
  139. map.put("单三","034002");
  140. map.put("交三","0330034002");
  141. map.put("交商","0330034001");
  142. String errorMsg =null;
  143. if(StringUtils.isBlank(data) || map.get(data)==null ){
  144. errorMsg=msg+"不能为空或者格式错误,未查询到"+msg+"名称,请填写正确的险种名称";
  145. }
  146. return errorMsg;
  147. }
  148. public static Map<String,String> checkAddType(String data, String msg) {
  149. Map<String,String> map =new HashMap<String,String>();
  150. map.put("退保","1");
  151. map.put("批改","2");
  152. map.put("虚增","3");
  153. map.put("其他","4");
  154. String errorMsg =null;
  155. String id ="";
  156. if(StringUtils.isBlank(data) || map.get(data)==null ){
  157. errorMsg=msg+"不能为空或者格式错误,未查询到"+msg+"名称,请填写正确的类型";
  158. }else{
  159. id = map.get(data)==null?"": map.get(data);
  160. }
  161. map.put("msg",errorMsg);
  162. map.put("id",id);
  163. return map;
  164. }
  165. /**
  166. * @version
  167. * @author: hxl
  168. * @Date: 2024/9/21 15:40
  169. * @Description:
  170. */
  171. public static Map<String,Object> checkDataDto1(AddTypeCXSXFExcel dto) {
  172. Map<String,Object> map =new HashMap<String,Object>();
  173. String errorMsg ="";
  174. if(checkSignDate(dto.getSignDate(), "签单时间")!=null){
  175. errorMsg+=checkSignDate(dto.getSignDate(), "签单时间")+"; ";
  176. }
  177. //签单日期转换为 yyyy-MM-dd HH:mm:ss
  178. if(StringUtils.isNotEmpty(dto.getSignDate())){
  179. String singTime = pareTimeLocalDate(dto.getSignDate());
  180. dto.setSignDate(singTime);
  181. }
  182. if(checkIsNull(dto.getLicenseno(), "车牌号")!=null){
  183. errorMsg+=checkIsNull(dto.getSignDate(), "车牌号")+"; ";
  184. }
  185. String companyId =null;
  186. String companyName=null;
  187. String partnerCompaniesId =null;
  188. String partnerCompaniesName=null;
  189. // Map<String, String> companyMap = checkCompanyName(dto.getCompanyName(), "保险公司");
  190. // if(companyMap!=null && companyMap.get("msg")!=null){
  191. // errorMsg+=companyMap.get("msg").toString()+"; ";
  192. // }else if(companyMap.get("msg")==null){
  193. // companyId = companyMap.get("id").toString();
  194. // }
  195. // Map<String, String> companySubMap = checkCompanyName(dto.getPartnerCompaniesName(), "保司机构");
  196. // if(companySubMap!=null && companySubMap.get("msg")!=null){
  197. // errorMsg+=companySubMap+"; ";
  198. // }else if( companySubMap.get("msg")==null){
  199. // partnerCompaniesId = companySubMap.get("id");
  200. // }
  201. //
  202. if(checkRiskcode(dto.getRiskcode(), "险种")!=null){
  203. errorMsg+=checkRiskcode(dto.getSignDate(), "险种")+"; ";
  204. }
  205. String agreeId=null;
  206. String agreeDeptId =null;
  207. PtlAgreement ptl= null;
  208. Map<String, Object> agreeMap = checkAgreeName(dto.getAgreementName(), "协议选择", "2");
  209. if(agreeMap!=null && agreeMap.get("msg")!=null){
  210. errorMsg+=agreeMap.get("msg").toString()+"; ";
  211. }else if(agreeMap.get("msg")==null){
  212. ptl =((PtlAgreement)agreeMap.get("id"));
  213. agreeId = ((PtlAgreement)agreeMap.get("id")).getId().toString();
  214. agreeDeptId = ((PtlAgreement)agreeMap.get("id")).getDeptId().toString();
  215. partnerCompaniesId = ptl.getPartnerCompaniesId();
  216. companyId = ptl.getInsuranceCompanyId();
  217. partnerCompaniesName = ptl.getNamesimple();
  218. companyName =ptl.getInsuranceCompany();
  219. }
  220. if(checkIsNull(dto.getInsuredName(), "被保险人")!=null){
  221. errorMsg+=checkIsNull(dto.getInsuredName(), "被保险人")+"; ";
  222. }
  223. if(checkIsNull(dto.getPolicyno(), "交强保单号")!=null){
  224. errorMsg+=checkIsNull(dto.getPolicyno(), "交强保单号")+"; ";
  225. }
  226. if(checkIsNull(dto.getSyPolicyno(), "商业保单号")!=null){
  227. errorMsg+=checkIsNull(dto.getSyPolicyno(), "商业保单号")+"; ";
  228. }
  229. if(isNumeric(dto.getJqPremium(), "交强险保费")!=null){
  230. errorMsg+=isNumeric(dto.getJqPremium(), "交强险保费")+"; ";
  231. }
  232. if(isNumeric(dto.getSyPremium(), "商业险保费")!=null){
  233. errorMsg+=isNumeric(dto.getSyPremium(), "商业险保费")+"; ";
  234. }
  235. if(isNumeric(dto.getTaxamount(), "车船税")!=null){
  236. errorMsg+=isNumeric(dto.getTaxamount(), "车船税")+"; ";
  237. }
  238. if(isNumeric(dto.getJqSuperviseCostsProportion(), "交强手续费比例")!=null){
  239. errorMsg+=isNumeric(dto.getJqSuperviseCostsProportion(), "交强手续费比例")+"; ";
  240. }
  241. if(isNumeric(dto.getSySuperviseCostsProportion(), "商业手续费比例")!=null){
  242. errorMsg+=isNumeric(dto.getSySuperviseCostsProportion(), "商业手续费比例")+"; ";
  243. }
  244. if(isNumeric(dto.getCommissionFeevalue(), "手续费金额")!=null){
  245. errorMsg+=isNumeric(dto.getCommissionFeevalue(), "手续费金额")+"; ";
  246. }
  247. String addTypeId =null;
  248. Map<String, String> addTypeMap = checkAddType(dto.getAddType(), "类型");
  249. if(addTypeMap!=null && addTypeMap.get("msg")!=null){
  250. errorMsg+=addTypeMap.get("msg").toString()+"; ";
  251. }else if(addTypeMap.get("msg")==null){
  252. addTypeId = addTypeMap.get("id").toString();
  253. }
  254. //添加验证协议id 和保险公司id和保司机构id匹配 add by hxl 2024-10-12
  255. // if(companyId!=null && partnerCompaniesId !=null && ptl!=null ){
  256. // if(!ptl.getInsuranceCompanyId().equals(companyId) || !ptl.getPartnerCompaniesId().equals(partnerCompaniesId)){
  257. // errorMsg+="协议选择和保险公司和保司机构名称不一致,请确认;";
  258. // }
  259. // }
  260. map.put("msg",errorMsg);
  261. if(StringUtils.isBlank(errorMsg)){
  262. InsPlyIncome insPlyIncome =new InsPlyIncome(dto.getSignDate(),dto.getLicenseno(),companyId,companyName,partnerCompaniesId,partnerCompaniesName,
  263. dto.getRiskcode(),agreeId,agreeDeptId,dto.getInsuredName(),dto.getPolicyno(),dto.getSyPolicyno(),dto.getJqPremium(),dto.getSyPremium(),
  264. dto.getTaxamount(),dto.getJqSuperviseCostsProportion(),dto.getSySuperviseCostsProportion(),dto.getCommissionFeevalue(),addTypeId);
  265. map.put("dto",insPlyIncome);
  266. }
  267. return map;
  268. }
  269. private static String pareTimeLocalDate(String signDate) {
  270. DateTimeFormatter originalFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  271. DateTimeFormatter targetFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  272. // 解析原始字符串日期为 LocalDate
  273. LocalDate originalDate = LocalDate.parse(signDate, originalFormatter);
  274. // 将 LocalDate 转换为 LocalDateTime,时间设为午夜
  275. LocalDateTime dateTime = originalDate.atStartOfDay();
  276. String b = dateTime.format(targetFormatter);
  277. return b;
  278. }
  279. /**
  280. * @version
  281. * @author: hxl
  282. * @Date: 2024/9/21 16:49
  283. * @Description: 车险跟单
  284. */
  285. public static Map<String, Object> checkDataDto2(AddTypeCXGDExcel dto) {
  286. Map<String,Object> map =new HashMap<String,Object>();
  287. String errorMsg ="";
  288. if(checkSignDate(dto.getSignDate(), "签单时间")!=null){
  289. errorMsg+=checkSignDate(dto.getSignDate(), "签单时间")+"; ";
  290. }
  291. //签单日期转换为 yyyy-MM-dd HH:mm:ss
  292. if(StringUtils.isNotEmpty(dto.getSignDate())){
  293. String singTime = pareTimeLocalDate(dto.getSignDate());
  294. dto.setSignDate(singTime);
  295. }
  296. if(checkIsNull(dto.getLicenseno(), "车牌号")!=null){
  297. errorMsg+=checkIsNull(dto.getSignDate(), "车牌号")+"; ";
  298. }
  299. String companyId =null;
  300. String companyName=null;
  301. String partnerCompaniesId =null;
  302. String partnerCompaniesName=null;
  303. // Map<String, String> companyMap = checkCompanyName(dto.getCompanyName(), "保险公司");
  304. // if(companyMap!=null && companyMap.get("msg")!=null){
  305. // errorMsg+=companyMap.get("msg").toString()+"; ";
  306. // }else if(companyMap.get("msg")==null){
  307. // companyId = companyMap.get("id").toString();
  308. // }
  309. // Map<String, String> companySubMap = checkCompanyName(dto.getPartnerCompaniesName(), "保司机构");
  310. // if(companySubMap!=null && companySubMap.get("msg")!=null){
  311. // errorMsg+=companySubMap+"; ";
  312. // }else if( companySubMap.get("msg")==null){
  313. // partnerCompaniesId = companySubMap.get("id");
  314. // }
  315. if(checkRiskcode(dto.getRiskcode(), "险种")!=null){
  316. errorMsg+=checkRiskcode(dto.getSignDate(), "险种")+"; ";
  317. }
  318. String agreeId=null;
  319. String agreeDeptId =null;
  320. PtlAgreement ptl= null;
  321. Map<String, Object> agreeMap = checkAgreeName(dto.getAgreementName(), "协议选择", "2");
  322. if(agreeMap!=null && agreeMap.get("msg")!=null){
  323. errorMsg+=agreeMap.get("msg").toString()+"; ";
  324. }else if(agreeMap.get("msg")==null){
  325. ptl =((PtlAgreement)agreeMap.get("id"));
  326. agreeId = ((PtlAgreement)agreeMap.get("id")).getId().toString();
  327. agreeDeptId = ((PtlAgreement)agreeMap.get("id")).getDeptId().toString();
  328. partnerCompaniesId = ptl.getPartnerCompaniesId();
  329. companyId = ptl.getInsuranceCompanyId();
  330. partnerCompaniesName = ptl.getNamesimple();
  331. companyName =ptl.getInsuranceCompany();
  332. }
  333. if(checkIsNull(dto.getInsuredName(), "被保险人")!=null){
  334. errorMsg+=checkIsNull(dto.getInsuredName(), "被保险人")+"; ";
  335. }
  336. if(checkIsNull(dto.getPolicyno(), "交强保单号")!=null){
  337. errorMsg+=checkIsNull(dto.getPolicyno(), "交强保单号")+"; ";
  338. }
  339. if(checkIsNull(dto.getSyPolicyno(), "商业保单号")!=null){
  340. errorMsg+=checkIsNull(dto.getSyPolicyno(), "商业保单号")+"; ";
  341. }
  342. if(isNumeric(dto.getJqPremium(), "交强险保费")!=null){
  343. errorMsg+=isNumeric(dto.getJqPremium(), "交强险保费")+"; ";
  344. }
  345. if(isNumeric(dto.getSyPremium(), "商业险保费")!=null){
  346. errorMsg+=isNumeric(dto.getSyPremium(), "商业险保费")+"; ";
  347. }
  348. if(isNumeric(dto.getTaxamount(), "车船税")!=null){
  349. errorMsg+=isNumeric(dto.getTaxamount(), "车船税")+"; ";
  350. }
  351. if(isNumeric(dto.getJqOtherCostsProportion(), "交强跟单比例")!=null){
  352. errorMsg+=isNumeric(dto.getJqOtherCostsProportion(), "交强跟单比例")+"; ";
  353. }
  354. if(isNumeric(dto.getSyOtherCostsProportion(), "商业跟单比例")!=null){
  355. errorMsg+=isNumeric(dto.getSyOtherCostsProportion(), "商业跟单比例")+"; ";
  356. }
  357. if(isNumeric(dto.getOtherFeevalue(), "跟单费金额")!=null){
  358. errorMsg+=isNumeric(dto.getOtherFeevalue(), "跟单费金额")+"; ";
  359. }
  360. String addTypeId =null;
  361. Map<String, String> addTypeMap = checkAddType(dto.getAddType(), "类型");
  362. if(addTypeMap!=null && addTypeMap.get("msg")!=null){
  363. errorMsg+=addTypeMap.get("msg").toString()+"; ";
  364. }else if(addTypeMap.get("msg")==null){
  365. addTypeId = addTypeMap.get("id").toString();
  366. }
  367. //添加验证协议id 和保险公司id和保司机构id匹配 add by hxl 2024-10-12
  368. // if(companyId!=null && partnerCompaniesId !=null && ptl!=null ){
  369. // if(!ptl.getInsuranceCompanyId().equals(companyId) || !ptl.getPartnerCompaniesId().equals(partnerCompaniesId))
  370. // {
  371. // errorMsg+="协议选择和保险公司和保司机构名称不一致,请确认;";
  372. // }
  373. // }
  374. map.put("msg",errorMsg);
  375. if(StringUtils.isBlank(errorMsg)){
  376. InsPlyIncome insPlyIncome =new InsPlyIncome(dto.getSignDate(),dto.getLicenseno(),companyId,companyName,partnerCompaniesId,partnerCompaniesName,
  377. dto.getRiskcode(),agreeId,agreeDeptId,dto.getInsuredName(),dto.getPolicyno(),dto.getSyPolicyno(),dto.getJqPremium(),dto.getSyPremium(),
  378. dto.getTaxamount(),dto.getJqOtherCostsProportion(),dto.getSyOtherCostsProportion(),dto.getOtherFeevalue(),addTypeId,null);
  379. map.put("dto",insPlyIncome);
  380. }
  381. return map;
  382. }
  383. /**
  384. * @version
  385. * @author: hxl
  386. * @Date: 2024/9/21 16:50
  387. * @Description: 非车手续费
  388. */
  389. public static Map<String, Object> checkDataDto3(AddTypeFCSXFExcel dto) {
  390. Map<String,Object> map =new HashMap<String,Object>();
  391. String errorMsg ="";
  392. if(checkSignDate(dto.getSignDate(), "签单时间")!=null){
  393. errorMsg+=checkSignDate(dto.getSignDate(), "签单时间")+"; ";
  394. }
  395. //签单日期转换为 yyyy-MM-dd HH:mm:ss
  396. if(StringUtils.isNotEmpty(dto.getSignDate())){
  397. String singTime = pareTimeLocalDate(dto.getSignDate());
  398. dto.setSignDate(singTime);
  399. }
  400. if(checkIsNull(dto.getLicenseno(), "车牌号")!=null){
  401. errorMsg+=checkIsNull(dto.getSignDate(), "车牌号")+"; ";
  402. }
  403. String companyId =null;
  404. String companyName=null;
  405. String partnerCompaniesId =null;
  406. String partnerCompaniesName=null;
  407. // Map<String, String> companyMap = checkCompanyName(dto.getCompanyName(), "保险公司");
  408. // if(companyMap!=null && companyMap.get("msg")!=null){
  409. // errorMsg+=companyMap.get("msg").toString()+"; ";
  410. // }else if(companyMap.get("msg")==null){
  411. // companyId = companyMap.get("id").toString();
  412. // }
  413. // Map<String, String> companySubMap = checkCompanyName(dto.getPartnerCompaniesName(), "保司机构");
  414. // if(companySubMap!=null && companySubMap.get("msg")!=null){
  415. // errorMsg+=companySubMap+"; ";
  416. // }else if( companySubMap.get("msg")==null){
  417. // partnerCompaniesId = companySubMap.get("id");
  418. // }
  419. if(checkRiskcode(dto.getRiskcode(), "险种")!=null){
  420. errorMsg+=checkRiskcode(dto.getSignDate(), "险种")+"; ";
  421. }
  422. String agreeId=null;
  423. String agreeDeptId =null;
  424. PtlAgreement ptl= null;
  425. Map<String, Object> agreeMap = checkAgreeName(dto.getAgreementName(), "协议选择", "2");
  426. if(agreeMap!=null && agreeMap.get("msg")!=null){
  427. errorMsg+=agreeMap.get("msg").toString()+"; ";
  428. }else if(agreeMap.get("msg")==null){
  429. ptl =((PtlAgreement)agreeMap.get("id"));
  430. agreeId = ((PtlAgreement)agreeMap.get("id")).getId().toString();
  431. agreeDeptId = ((PtlAgreement)agreeMap.get("id")).getDeptId().toString();
  432. partnerCompaniesId = ptl.getPartnerCompaniesId();
  433. companyId = ptl.getInsuranceCompanyId();
  434. partnerCompaniesName = ptl.getNamesimple();
  435. companyName =ptl.getInsuranceCompany();
  436. }
  437. if(checkIsNull(dto.getInsuredName(), "被保险人")!=null){
  438. errorMsg+=checkIsNull(dto.getInsuredName(), "被保险人")+"; ";
  439. }
  440. if(checkIsNull(dto.getNoPolicyno(), "非车保单号")!=null){
  441. errorMsg+=checkIsNull(dto.getNoPolicyno(), "非车保单号")+"; ";
  442. }
  443. if(isNumeric(dto.getNoPremium(), "非车保费")!=null){
  444. errorMsg+=isNumeric(dto.getNoPremium(), "非车保费")+"; ";
  445. }
  446. if(isNumeric(dto.getNoSuperviseCostsProportion(), "非车手续费比例")!=null){
  447. errorMsg+=isNumeric(dto.getNoSuperviseCostsProportion(), "非车手续费比例")+"; ";
  448. }
  449. if(isNumeric(dto.getNoSuperviseCostsPremiums(), "手续费金额")!=null){
  450. errorMsg+=isNumeric(dto.getNoSuperviseCostsPremiums(), "手续费金额")+"; ";
  451. }
  452. String addTypeId =null;
  453. Map<String, String> addTypeMap = checkAddType(dto.getAddType(), "类型");
  454. if(addTypeMap!=null && addTypeMap.get("msg")!=null){
  455. errorMsg+=addTypeMap.get("msg").toString()+"; ";
  456. }else if(addTypeMap.get("msg")==null){
  457. addTypeId = addTypeMap.get("id").toString();
  458. }
  459. //添加验证协议id 和保险公司id和保司机构id匹配 add by hxl 2024-10-12
  460. // if(companyId!=null && partnerCompaniesId !=null && ptl!=null ){
  461. // if(!ptl.getInsuranceCompanyId().equals(companyId) || !ptl.getPartnerCompaniesId().equals(partnerCompaniesId)){
  462. // errorMsg+="协议选择和保险公司和保司机构名称不一致,请确认;";
  463. // }
  464. // }
  465. map.put("msg",errorMsg);
  466. if(StringUtils.isBlank(errorMsg)){
  467. InsPlyIncome insPlyIncome =new InsPlyIncome(dto.getSignDate(),dto.getLicenseno(),companyId,companyName,partnerCompaniesId,partnerCompaniesName,
  468. dto.getRiskcode(),agreeId,agreeDeptId,dto.getInsuredName(),dto.getNoPolicyno(),dto.getNoPremium(),dto.getNoSuperviseCostsProportion(),null,
  469. dto.getNoSuperviseCostsPremiums(),addTypeId);
  470. map.put("dto",insPlyIncome);
  471. }
  472. return map;
  473. }
  474. /**
  475. * @version
  476. * @author: hxl
  477. * @Date: 2024/9/21 16:50
  478. * @Description: 非车跟单
  479. */
  480. public static Map<String, Object> checkDataDto4(AddTypeFCGDExcel dto) {
  481. Map<String,Object> map =new HashMap<String,Object>();
  482. String errorMsg ="";
  483. if(checkSignDate(dto.getSignDate(), "签单时间")!=null){
  484. errorMsg+=checkSignDate(dto.getSignDate(), "签单时间")+"; ";
  485. }
  486. //签单日期转换为 yyyy-MM-dd HH:mm:ss
  487. if(StringUtils.isNotEmpty(dto.getSignDate())){
  488. String singTime = pareTimeLocalDate(dto.getSignDate());
  489. dto.setSignDate(singTime);
  490. }
  491. if(checkIsNull(dto.getLicenseno(), "车牌号")!=null){
  492. errorMsg+=checkIsNull(dto.getSignDate(), "车牌号")+"; ";
  493. }
  494. String companyId =null;
  495. String companyName=null;
  496. String partnerCompaniesId =null;
  497. String partnerCompaniesName=null;
  498. // Map<String, String> companyMap = checkCompanyName(dto.getCompanyName(), "保险公司");
  499. // if(companyMap!=null && companyMap.get("msg")!=null){
  500. // errorMsg+=companyMap.get("msg").toString()+"; ";
  501. // }else if(companyMap.get("msg")==null){
  502. // companyId = companyMap.get("id").toString();
  503. // }
  504. // Map<String, String> companySubMap = checkCompanyName(dto.getPartnerCompaniesName(), "保司机构");
  505. // if(companySubMap!=null && companySubMap.get("msg")!=null){
  506. // errorMsg+=companySubMap+"; ";
  507. // }else if( companySubMap.get("msg")==null){
  508. // partnerCompaniesId = companySubMap.get("id");
  509. // }
  510. if(checkRiskcode(dto.getRiskcode(), "险种")!=null){
  511. errorMsg+=checkRiskcode(dto.getSignDate(), "险种")+"; ";
  512. }
  513. String agreeId=null;
  514. String agreeDeptId =null;
  515. PtlAgreement ptl= null;
  516. Map<String, Object> agreeMap = checkAgreeName(dto.getAgreementName(), "协议选择", "2");
  517. if(agreeMap!=null && agreeMap.get("msg")!=null){
  518. errorMsg+=agreeMap.get("msg").toString()+"; ";
  519. }else if(agreeMap.get("msg")==null){
  520. ptl =((PtlAgreement)agreeMap.get("id"));
  521. agreeId = ((PtlAgreement)agreeMap.get("id")).getId().toString();
  522. agreeDeptId = ((PtlAgreement)agreeMap.get("id")).getDeptId().toString();
  523. partnerCompaniesId = ptl.getPartnerCompaniesId();
  524. companyId = ptl.getInsuranceCompanyId();
  525. partnerCompaniesName = ptl.getNamesimple();
  526. companyName =ptl.getInsuranceCompany();
  527. }
  528. if(checkIsNull(dto.getInsuredName(), "被保险人")!=null){
  529. errorMsg+=checkIsNull(dto.getInsuredName(), "被保险人")+"; ";
  530. }
  531. if(checkIsNull(dto.getNoPolicyno(), "非车保单号")!=null){
  532. errorMsg+=checkIsNull(dto.getNoPolicyno(), "非车保单号")+"; ";
  533. }
  534. if(checkIsNull(dto.getNoPremium(), "非车保费")!=null){
  535. errorMsg+=checkIsNull(dto.getNoPremium(), "非车保费")+"; ";
  536. }
  537. if(isNumeric(dto.getNoOtherCostsProportion(), "非车跟单费比例")!=null){
  538. errorMsg+=isNumeric(dto.getNoOtherCostsProportion(), "非车跟单费比例")+"; ";
  539. }
  540. if(isNumeric(dto.getNoOtherCostsPremium(), "跟单费金额")!=null){
  541. errorMsg+=isNumeric(dto.getNoOtherCostsPremium(), "跟单费金额")+"; ";
  542. }
  543. String addTypeId =null;
  544. Map<String, String> addTypeMap = checkAddType(dto.getAddType(), "类型");
  545. if(addTypeMap!=null && addTypeMap.get("msg")!=null){
  546. errorMsg+=addTypeMap.get("msg").toString()+"; ";
  547. }else if(addTypeMap.get("msg")==null){
  548. addTypeId = addTypeMap.get("id").toString();
  549. }
  550. //添加验证协议id 和保险公司id和保司机构id匹配 add by hxl 2024-10-12
  551. // if(companyId!=null && partnerCompaniesId !=null && ptl!=null ){
  552. // if(!ptl.getInsuranceCompanyId().equals(companyId) || !ptl.getPartnerCompaniesId().equals(partnerCompaniesId)){
  553. // errorMsg+="协议选择和保险公司和保司机构名称不一致,请确认;";
  554. // }
  555. // }
  556. map.put("msg",errorMsg);
  557. if(StringUtils.isBlank(errorMsg)){
  558. InsPlyIncome insPlyIncome =new InsPlyIncome(dto.getSignDate(),dto.getLicenseno(),companyId,companyName,partnerCompaniesId,partnerCompaniesName,
  559. dto.getRiskcode(),agreeId,agreeDeptId,dto.getInsuredName(),dto.getNoPolicyno(),dto.getNoPremium(),dto.getNoOtherCostsProportion(),dto.getNoOtherCostsPremium(),addTypeId);
  560. map.put("dto",insPlyIncome);
  561. }
  562. return map;
  563. }
  564. /**
  565. * @version
  566. * @author: hxl
  567. * @Date: 2024/9/21 16:50
  568. * @Description: 平台结算
  569. */
  570. public static Map<String, Object> checkDataDto5(AddTypePTJSExcel dto) {
  571. Map<String,Object> map =new HashMap<String,Object>();
  572. String errorMsg ="";
  573. if(checkSignDate(dto.getSignDate(), "签单时间")!=null){
  574. errorMsg+=checkSignDate(dto.getSignDate(), "签单时间")+"; ";
  575. }
  576. //签单日期转换为 yyyy-MM-dd HH:mm:ss
  577. if(StringUtils.isNotEmpty(dto.getSignDate())){
  578. String singTime = pareTimeLocalDate(dto.getSignDate());
  579. dto.setSignDate(singTime);
  580. }
  581. if(checkIsNull(dto.getLicenseno(), "车牌号")!=null){
  582. errorMsg+=checkIsNull(dto.getSignDate(), "车牌号")+"; ";
  583. }
  584. String companyId =null;
  585. String companyName=null;
  586. String partnerCompaniesId =null;
  587. String partnerCompaniesName=null;
  588. // Map<String, String> companyMap = checkCompanyName(dto.getCompanyName(), "保险公司");
  589. // if(companyMap!=null && companyMap.get("msg")!=null){
  590. // errorMsg+=companyMap.get("msg").toString()+"; ";
  591. // }else if(companyMap.get("msg")==null){
  592. // companyId = companyMap.get("id").toString();
  593. // }
  594. // Map<String, String> companySubMap = checkCompanyName(dto.getPartnerCompaniesName(), "保司机构");
  595. // if(companySubMap!=null && companySubMap.get("msg")!=null){
  596. // errorMsg+=companySubMap+"; ";
  597. // }else if( companySubMap.get("msg")==null){
  598. // partnerCompaniesId = companySubMap.get("id");
  599. // }
  600. if(checkRiskcode(dto.getRiskcode(), "险种")!=null){
  601. errorMsg+=checkRiskcode(dto.getSignDate(), "险种")+"; ";
  602. }
  603. String agreeId=null;
  604. String agreeDeptId =null;
  605. PtlAgreement ptl= null;
  606. Map<String, Object> agreeMap = checkAgreeName(dto.getAgreementName(), "协议选择", "1");
  607. if(agreeMap!=null && agreeMap.get("msg")!=null){
  608. errorMsg+=agreeMap.get("msg").toString()+"; ";
  609. }else if(agreeMap.get("msg")==null){
  610. ptl =((PtlAgreement)agreeMap.get("id"));
  611. agreeId = ((PtlAgreement)agreeMap.get("id")).getId().toString();
  612. agreeDeptId = ((PtlAgreement)agreeMap.get("id")).getDeptId().toString();
  613. partnerCompaniesId = ptl.getPartnerCompaniesId();
  614. companyId = ptl.getInsuranceCompanyId();
  615. partnerCompaniesName = ptl.getNamesimple();
  616. companyName =ptl.getInsuranceCompany();
  617. }
  618. if(checkIsNull(dto.getInsuredName(), "被保险人")!=null){
  619. errorMsg+=checkIsNull(dto.getInsuredName(), "被保险人")+"; ";
  620. }
  621. if(checkIsNull(dto.getPolicyno(), "交强保单号")!=null){
  622. errorMsg+=checkIsNull(dto.getPolicyno(), "交强保单号")+"; ";
  623. }
  624. if(checkIsNull(dto.getSyPolicyno(), "商业保单号")!=null){
  625. errorMsg+=checkIsNull(dto.getSyPolicyno(), "商业保单号")+"; ";
  626. }
  627. if(checkIsNull(dto.getNoPolicyno(), "非车保单号")!=null){
  628. errorMsg+=checkIsNull(dto.getNoPolicyno(), "非车保单号")+"; ";
  629. }
  630. if(isNumeric(dto.getJqPremium(), "交强险保费")!=null){
  631. errorMsg+=isNumeric(dto.getJqPremium(), "交强险保费")+"; ";
  632. }
  633. if(isNumeric(dto.getSyPremium(), "商业险保费")!=null){
  634. errorMsg+=isNumeric(dto.getSyPremium(), "商业险保费")+"; ";
  635. }
  636. if(isNumeric(dto.getTaxamount(), "车船税")!=null){
  637. errorMsg+=isNumeric(dto.getTaxamount(), "车船税")+"; ";
  638. }
  639. if(isNumeric(dto.getNoPremium(), "非车保费")!=null){
  640. errorMsg+=isNumeric(dto.getNoPremium(), "非车保费")+"; ";
  641. }
  642. if(isNumeric(dto.getJqReceivableProportion(), "交强应收比例")!=null){
  643. errorMsg+=isNumeric(dto.getJqReceivableProportion(), "交强应收比例")+"; ";
  644. }
  645. if(isNumeric(dto.getSyReceivableProportion(), "商业应收比例")!=null){
  646. errorMsg+=isNumeric(dto.getSyReceivableProportion(), "商业应收比例")+"; ";
  647. }
  648. if(isNumeric(dto.getNoReceivableProportion(), "非车应收比例")!=null){
  649. errorMsg+=isNumeric(dto.getNoReceivableProportion(), "非车应收比例")+"; ";
  650. }
  651. if(isNumeric(dto.getReceivableAmount(), "应收金额")!=null){
  652. errorMsg+=isNumeric(dto.getReceivableAmount(), "应收金额")+"; ";
  653. }
  654. String addTypeId =null;
  655. Map<String, String> addTypeMap = checkAddType(dto.getAddType(), "类型");
  656. if(addTypeMap!=null && addTypeMap.get("msg")!=null){
  657. errorMsg+=addTypeMap.get("msg").toString()+"; ";
  658. }else if(addTypeMap.get("msg")==null){
  659. addTypeId = addTypeMap.get("id").toString();
  660. }
  661. //添加验证协议id 和保险公司id和保司机构id匹配 add by hxl 2024-10-12
  662. // if(companyId!=null && partnerCompaniesId !=null && ptl!=null ){
  663. // if(!ptl.getInsuranceCompanyId().equals(companyId) || !ptl.getPartnerCompaniesId().equals(partnerCompaniesId)){
  664. // errorMsg+="协议选择和保险公司和保司机构名称不一致,请确认;";
  665. // }
  666. // }
  667. map.put("msg",errorMsg);
  668. if(StringUtils.isBlank(errorMsg)){
  669. InsPlyIncome insPlyIncome =new InsPlyIncome(dto.getSignDate(),dto.getLicenseno(),companyId,companyName,partnerCompaniesId,partnerCompaniesName,
  670. dto.getRiskcode(),agreeId,agreeDeptId,dto.getInsuredName(),dto.getPolicyno(),dto.getSyPolicyno(),dto.getJqPremium(),dto.getSyPremium(),
  671. dto.getTaxamount(),dto.getNoPolicyno(),dto.getNoPremium(),dto.getJqReceivableProportion(),dto.getSyReceivableProportion(),dto.getNoReceivableProportion(),dto.getReceivableAmount(),addTypeId);
  672. map.put("dto",insPlyIncome);
  673. }
  674. return map;
  675. }
  676. }