package com.ydtech.modules.xxl.handler; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.xxl.job.core.handler.annotation.XxlJob; import com.ydtech.modules.admin.model.po.SysCarInfo; import com.ydtech.modules.admin.model.po.SysCarUserInfo; import com.ydtech.modules.admin.service.SysCarInfoService; import com.ydtech.modules.admin.service.SysCarUserInfoService; import com.ydtech.modules.ins.model.vo.KindInfoVo; import com.ydtech.modules.ins.model.vo.RiskInfoVo; import com.ydtech.modules.order.entity.InsOrders; import com.ydtech.modules.order.entity.po.InsOrdersKind; import com.ydtech.modules.order.entity.po.InsOrdersRisk; import com.ydtech.modules.order.service.InsOrdersKindService; import com.ydtech.modules.order.service.InsOrdersRiskService; import com.ydtech.modules.order.service.InsOrdersService; import com.ydtech.utils.idgen.IdGenerate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *@author: tz *@description: 订单数据中的车辆信息 同步 sys_car_info表 *@create: 2024年3月7日15:13:57 */ @Component public class SyncCarInfoHandler { @Autowired private InsOrdersService insOrdersService; @Autowired private SysCarUserInfoService sysCarUserInfoService; @Autowired private SysCarInfoService sysCarInfoService; @Autowired private InsOrdersRiskService insOrdersRiskService; @Autowired private InsOrdersKindService insOrdersKindService; //同步用户信息 @XxlJob("SyncCarInfoHandler") public void SyncCarInfoHandler() { // List list = insOrdersService.list(); // //需要保存的车主用户数据 // List sysCarUserInfos = new ArrayList<>(); // List sysCarInfos = new ArrayList<>(); // List insOrdersRisks = new ArrayList<>(); // List insOrdersKinds = new ArrayList<>(); // list.forEach(insOrders -> { // JSONObject ownerInfo = insOrders.getOwnerinfo(); // JSONObject applyinfo = insOrders.getApplyinfo(); // JSONObject insureInfo = insOrders.getInsureinfo(); // //车主信息是否存在 // if(sysCarUserInfos.stream().filter(x->x.getIdentifyNumber().equals(ownerInfo.getString("identifyNumber"))).count() > 0){ // List identifyNumber = sysCarUserInfos.stream().filter(x -> x.getIdentifyNumber().equals(ownerInfo.getString("identifyNumber"))).collect(Collectors.toList()); // String id = identifyNumber.get(0).getId(); // insOrders.setOwnerId(id); // insOrders.setInsureId(id); // insOrders.setApplyId(id); // }else { // SysCarUserInfo sysCarUserInfo1 = ownerInfo.toJavaObject(SysCarUserInfo.class); // sysCarUserInfo1.setId(IdGenerate.nextId()); // sysCarUserInfos.add(sysCarUserInfo1); // insOrders.setOwnerId(sysCarUserInfo1.getId()); // insOrders.setInsureId(sysCarUserInfo1.getId()); // insOrders.setApplyId(sysCarUserInfo1.getId()); // } // //同车主 // if(!applyinfo.getBoolean("owner")){ // SysCarUserInfo sysCarUserInfo = applyinfo.toJavaObject(SysCarUserInfo.class); // sysCarUserInfo.setId(IdGenerate.nextId()); // sysCarUserInfos.add(sysCarUserInfo); // insOrders.setApplyId(sysCarUserInfo.getId()); // } // //同被保人 或 车主 // if(!insureInfo.getBoolean("insuranceHolder") && !insureInfo.getBoolean("owner")){ // SysCarUserInfo sysCarUserInfo = insureInfo.toJavaObject(SysCarUserInfo.class); // sysCarUserInfo.setId(IdGenerate.nextId()); // sysCarUserInfos.add(sysCarUserInfo); // insOrders.setInsureId(sysCarUserInfo.getId()); // } // // JSONObject carInfo = insOrders.getCarinfo(); // //车辆信息 // if(sysCarInfos.stream().filter(x->x.getLicenseNo().equals(carInfo.getString("licenseNo"))).count() > 0){ // List collect = sysCarInfos.stream().filter(x -> x.getLicenseNo().equals(carInfo.getString("licenseNo"))).collect(Collectors.toList()); // String id = collect.get(0).getId(); // insOrders.setCarInfoId(id); // }else{ // SysCarInfo sysCarInfo = carInfo.toJavaObject(SysCarInfo.class); // sysCarInfo.setId(IdGenerate.nextId()); // sysCarInfos.add(sysCarInfo); // insOrders.setCarInfoId(sysCarInfo.getId()); // } // // //risk kind // JSONArray risk = insOrders.getRisk(); // JSONArray kind = insOrders.getKing(); // // for(int i=0;i sysCarUserInfoList = sysCarUserInfos.stream() // .collect(Collectors.toMap( // SysCarUserInfo::getIdentifyNumber, // 使用 licenseNo 作为 key // user -> user, // 直接使用用户信息作为 value // (existing, replacement) -> existing // 若有重复的 licenseNo,则保留第一个出现的用户信息 // )) // .values() // .stream() // .collect(Collectors.toList()); // sysCarUserInfoService.saveBatch(sysCarUserInfoList); // // List sysCarInfoList = sysCarInfos.stream() // .collect(Collectors.toMap( // SysCarInfo::getLicenseNo, // 使用 licenseNo 作为 key // user -> user, // 直接使用用户信息作为 value // (existing, replacement) -> existing // 若有重复的 licenseNo,则保留第一个出现的用户信息 // )) // .values() // .stream() // .collect(Collectors.toList()); // // //转换transfer_flag // sysCarInfoList.forEach(sysCarInfo -> { // if(sysCarInfo.getTransferFlag().equals("true")){ // sysCarInfo.setTransferFlag("1"); // }else{ // sysCarInfo.setTransferFlag("0"); // } // }); // //转换 no_license_flag // sysCarInfoList.forEach(sysCarInfo -> { // if(sysCarInfo.getNoLicenseFlag().equals("true")){ // sysCarInfo.setNoLicenseFlag("1"); // }else{ // sysCarInfo.setNoLicenseFlag("0"); // } // }); // //转换 loan_status // sysCarInfoList.forEach(sysCarInfo -> { // if(sysCarInfo.getLoanStatus().equals("true")){ // sysCarInfo.setLoanStatus("1"); // }else{ // sysCarInfo.setLoanStatus("0"); // } // }); // // //转换used_car // sysCarInfoList.forEach(sysCarInfo -> { // if(sysCarInfo.getUsedCar().equals("true")){ // sysCarInfo.setUsedCar("1"); // }else{ // sysCarInfo.setUsedCar("0"); // } // }); // // //转换out_of_insurance // sysCarInfoList.forEach(sysCarInfo -> { // if(sysCarInfo.getOutOfInsurance().equals("true")){ // sysCarInfo.setOutOfInsurance("1"); // }else{ // sysCarInfo.setOutOfInsurance("0"); // } // }); // // sysCarInfoService.saveBatch(sysCarInfoList); // // for (InsOrdersRisk insOrdersRisk : insOrdersRisks) { // insOrdersRisk.setId(IdGenerate.nextId()); // } // // for(InsOrdersKind insOrdersKind : insOrdersKinds){ // insOrdersKind.setId(IdGenerate.nextId()); // } // // insOrdersRiskService.saveBatch(insOrdersRisks); // insOrdersKindService.saveBatch(insOrdersKinds); // insOrdersService.saveOrUpdateBatch(list); } }