|
@@ -89,9 +89,6 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
InsureWorkerCommercialFileService insureWorkerCommercialFileService;
|
|
|
@Resource
|
|
|
OrderDetailFileService orderDetailFileService;
|
|
|
- @Resource
|
|
|
- OrderInstallDetailCodeService orderInstallDetailCodeService;
|
|
|
-
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -107,6 +104,143 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
List<String> workerIdandNames = new ArrayList<>();
|
|
|
List<InsureWorkerCommercial> insurecs = new ArrayList<>();
|
|
|
List<InsureWorkerCommercialFile> insurefiles = new ArrayList<>();
|
|
|
+ List<String> bxWorkerIdWebsitIds = new ArrayList<>();
|
|
|
+ Map<String,List<WebsitWorker>> websitWorderwidwdidMap = new HashMap<>();
|
|
|
+ Map<String,List<WebsitWorker>> addBxWorkers = new HashMap<>();
|
|
|
+ List<WebsitWorker> websitWorkers = new ArrayList<>();
|
|
|
+
|
|
|
+ // 提取品牌信息
|
|
|
+ Brand brand = baseService.getBrand();
|
|
|
+ if (brand == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Worker> oldWorkerRec = workerService.lambdaQuery()
|
|
|
+ .select(Worker::getIdcard,Worker::getWorkerId,Worker::getWorkerName,Worker::getMobile).list();
|
|
|
+ if (CollectionUtils.isNotEmpty(oldWorkerRec)){
|
|
|
+ workerIdcardMap = oldWorkerRec.stream().collect(Collectors.groupingBy(Worker::getIdcard));
|
|
|
+ workerWorkeridMap = oldWorkerRec.stream().collect(Collectors.groupingBy(Worker::getWorkerId));
|
|
|
+ oldWorkerRec.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 提取待同步获取保险信息的师傅数据
|
|
|
+ /*List<WebsitWorker> websitWorkers = websitWorkerService.lambdaQuery()
|
|
|
+ .eq(WebsitWorker::getOutZjlj,WebsitWorker::getWebsitId,WebsitWorker::getWebsitWorkerId)
|
|
|
+ .list();*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ List<WebsitWorker> iwcs = websitWorkerService.lambdaQuery()
|
|
|
+ .eq(WebsitWorker::getInsureStatus,2).list();
|
|
|
+ if (CollectionUtils.isNotEmpty(iwcs)){
|
|
|
+ iwcs.stream().forEach(event->{
|
|
|
+ bxWorkerIdWebsitIds.add(event.getWorkerId()+event.getWebsitId());
|
|
|
+ });
|
|
|
+ iwcs.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ Insure insure = publicService.getWebsitWorkerByWorkerAndWebsit("意外险");
|
|
|
+
|
|
|
+ List<WebsitWorker> wws = publicService.getWebsitWorkerByWorkerAndWebsit();
|
|
|
+ if (CollectionUtils.isNotEmpty(wws)){
|
|
|
+ websitWorderwidwdidMap = wws.stream().collect(Collectors.groupingBy(WebsitWorker::getWorkerId));
|
|
|
+ wws.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 提取格力现有的网点师傅数据信息
|
|
|
+ wxgDownladRecs = itfTblWangdianWxgDownloadService.lambdaQuery()
|
|
|
+ .select(ItfTblWangdianWxgDownload::getWxgid,
|
|
|
+ ItfTblWangdianWxgDownload::getWxgno,
|
|
|
+ ItfTblWangdianWxgDownload::getWdno,
|
|
|
+ ItfTblWangdianWxgDownload::getSfzen,
|
|
|
+ ItfTblWangdianWxgDownload::getWxgmc,
|
|
|
+ ItfTblWangdianWxgDownload::getYddh,
|
|
|
+ ItfTblWangdianWxgDownload::getFlag)
|
|
|
+ // .eq(ItfTblWangdianWxgDownload::getSfzen,"431003199803271316")// 测试用
|
|
|
+ .like(ItfTblWangdianWxgDownload::getWdno,"S%").list();
|
|
|
+
|
|
|
+ // 提取现有已存在的证件信息的师傅信息(待回传同步的证件不处理)
|
|
|
+ List<WorkerCert> wc = workerCertService.lambdaQuery()
|
|
|
+ .eq(WorkerCert::getOutSyncStatus,1).list();
|
|
|
+ if (CollectionUtils.isNotEmpty(wc)){
|
|
|
+ WorkerCertWorkerIdMaps = wc.stream().collect(Collectors.groupingBy(WorkerCert::getWorkerId));
|
|
|
+ wc.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ for (ItfTblWangdianWxgDownload wxg :wxgDownladRecs){
|
|
|
+ // 无效的数据不新增
|
|
|
+ if (wxg.getFlag() != null){
|
|
|
+ if (!wxg.getFlag().trim().equals(DictTypeEnum.DICT_TYPE_FLAG_ON.getCode())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 平台师傅信息不包含格力总部的数据不处理(包含的为格力的师傅信息同步时已生成了worker)
|
|
|
+ // 这里用身份证来做包含关系(测试环境身份证隐藏* 需加名称及手机号)
|
|
|
+ String workerId = checkIsGreeWroker(workerIdcardMap, wxg);
|
|
|
+ if (workerId.length()<1) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 有证件信息的师傅不再新增
|
|
|
+ /*if (WorkerCertWorkerIdMaps.containsKey(workerId)){
|
|
|
+ continue;
|
|
|
+ }*/
|
|
|
+
|
|
|
+ // 参数 获取网点维修工信息
|
|
|
+ getParameter(wxg.getWdno(), wxg.getWxgno(), req);
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 格力总部查询工程师信息
|
|
|
+ GreeResponseHelper response = greeLogic.greePost(wdqyapi, JSONObject.toJSONString(req), publicService.getCompanyId(wxg.getWdno()));
|
|
|
+ // 失败不处理
|
|
|
+ if (response.getStatus() == 200){
|
|
|
+ WxgQueryInfo resultDatax = JSONObject.parseObject(response.getData().toString(), WxgQueryInfo.class);
|
|
|
+ // 无证件不处理
|
|
|
+ if ( resultDatax.getWangdianWxgVos().size()<1){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ wvos = resultDatax.getWangdianWxgVos().get(0);
|
|
|
+
|
|
|
+ log.info("总部获取的工程师证件照信息wvos:{}", JSONObject.toJSONString(wvos));
|
|
|
+ // 同步-新增证件信息
|
|
|
+ getCertInfo(wvos, addList, workerId, WorkerCertWorkerIdMaps,wxg.getWdno(),workerIdandNames,
|
|
|
+ workerWorkeridMap,insurecs,insurefiles, bxWorkerIdWebsitIds,websitWorderwidwdidMap, insure);
|
|
|
+ // 新增或修改(证件)
|
|
|
+ addDataCert(addList);
|
|
|
+ // 修改保险信息
|
|
|
+ addBxInfo(insurecs, insurefiles);
|
|
|
+
|
|
|
+ log.info("工程师证件照信息同步成功-师傅证件信息:{}", wxg.getSfzen());
|
|
|
+ } else {
|
|
|
+ log.info("获取工程师证件照信息失败-师傅证件信息:{}", wxg.getSfzen());
|
|
|
+ log.info("msg:{}", response.getMsg());
|
|
|
+ }
|
|
|
+ } catch (Exception ex) {
|
|
|
+ addDataCert(addList);
|
|
|
+ upWebsitWorker(websitWorkerUp);
|
|
|
+ addBxInfo(insurecs, insurefiles);
|
|
|
+ ex.printStackTrace();
|
|
|
+ log.info("工程师证件照信息同步失败-师傅证件信息:{}", wxg.getSfzen());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void extractedCertInfoBak(){
|
|
|
+ WangdianWxgVos wvos = new WangdianWxgVos();
|
|
|
+ List<WorkerCert> addList = new ArrayList<>();
|
|
|
+ Map<String,Object> req = new HashMap<>();
|
|
|
+ Map<String,List<Worker>> workerIdcardMap = new HashMap<>();
|
|
|
+ Map<String,List<Worker>> workerWorkeridMap = new HashMap<>();
|
|
|
+ Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps = new HashMap<>();
|
|
|
+ List<ItfTblWangdianWxgDownload> wxgDownladRecs = new ArrayList<>();
|
|
|
+ List<WebsitWorker> websitWorkerUp = new ArrayList<>();
|
|
|
+ List<String> workerIdandNames = new ArrayList<>();
|
|
|
+ List<InsureWorkerCommercial> insurecs = new ArrayList<>();
|
|
|
+ List<InsureWorkerCommercialFile> insurefiles = new ArrayList<>();
|
|
|
List<String> insureworkeridandWebsitids = new ArrayList<>();
|
|
|
Map<String,List<WebsitWorker>> websitWorderwidwdidMap = new HashMap<>();
|
|
|
|
|
@@ -1019,7 +1153,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void getCertInfo(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,
|
|
|
+ private void getCertInfoBak(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,
|
|
|
Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps,
|
|
|
String wdno, List<String> workerIdandNames,Map<String,List<Worker>> workerWorkeridMap,
|
|
|
List<InsureWorkerCommercial> insurecs,
|
|
@@ -1046,6 +1180,33 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void getCertInfo(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,
|
|
|
+ Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps,
|
|
|
+ String wdno, List<String> workerIdandNames,Map<String,List<Worker>> workerWorkeridMap,
|
|
|
+ List<InsureWorkerCommercial> insurecs,
|
|
|
+ List<InsureWorkerCommercialFile> insurefiles,
|
|
|
+ List<String> bxWorkerIdWebsitIds,
|
|
|
+ Map<String,List<WebsitWorker>> websitWorderwidwdidMap, Insure insure) throws ParseException {
|
|
|
+ // 同步-新增证件信息
|
|
|
+ for (ZJInfo zj: wvos.getZjInfoList()){
|
|
|
+ // 保除证
|
|
|
+ if (zj.getZjmc().trim().equals("保险证")){
|
|
|
+ if (insure == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (produceBXInfo(workerId, wdno, workerWorkeridMap, insurecs, insurefiles,
|
|
|
+ bxWorkerIdWebsitIds, zj,websitWorderwidwdidMap, insure)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 生成其他证件信息
|
|
|
+ produceCert(wvos, addList, workerId, WorkerCertWorkerIdMaps, workerIdandNames, workerWorkeridMap, zj);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void produceCert(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId, Map<String,
|
|
|
List<WorkerCert>> WorkerCertWorkerIdMaps, List<String> workerIdandNames,
|
|
|
Map<String, List<Worker>> workerWorkeridMap, ZJInfo zj) throws ParseException {
|
|
@@ -1082,7 +1243,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
*
|
|
|
* 统一入商用保险,有多少份入多少份
|
|
|
*/
|
|
|
- private boolean produceBXInfo(String workerId, String wdno, Map<String, List<Worker>> workerWorkeridMap,
|
|
|
+ private boolean produceBXInfoBak(String workerId, String wdno, Map<String, List<Worker>> workerWorkeridMap,
|
|
|
List<InsureWorkerCommercial> insurecs, List<InsureWorkerCommercialFile> insurefiles,
|
|
|
List<String> insureworkeridandWebsitids, ZJInfo zj,
|
|
|
Map<String, List<WebsitWorker>> websitWorderwidwdidMap, Insure insure) throws ParseException {
|
|
@@ -1116,6 +1277,40 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ private boolean produceBXInfo(String workerId, String wdno, Map<String, List<Worker>> workerWorkeridMap,
|
|
|
+ List<InsureWorkerCommercial> insurecs, List<InsureWorkerCommercialFile> insurefiles,
|
|
|
+ List<String> bxWorkerIdWebsitIds, ZJInfo zj,
|
|
|
+ Map<String, List<WebsitWorker>> websitWorderwidwdidMap, Insure insure) throws ParseException {
|
|
|
+ // 提取商户售后网点对应的平台售后网点信息 存在一对多的关系 无对应关系退出不处理
|
|
|
+ List<WebsitOrderSign> wos = publicService.shShwdToptshwdByBrandWebsitNo(wdno);
|
|
|
+ if (CollectionUtils.isEmpty(wos)){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 生成商用保险对像 网点多对1时每个网点放一份
|
|
|
+ for (WebsitOrderSign item : wos){
|
|
|
+ // 防重
|
|
|
+ if (bxWorkerIdWebsitIds.contains(workerId +item.getWebsitId())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 对于在商户网点师傅都为无效的状态时在平台网点师傅表中可能是不存在的 需要排除掉
|
|
|
+ String websitWorkerId = checkWebsitWorker(workerId, websitWorderwidwdidMap, item);
|
|
|
+ if (websitWorkerId == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 生成商用保险对像
|
|
|
+ InsureWorkerCommercial a = getInsureWorkerCommercial(workerId, workerWorkeridMap, insurecs, zj, item,websitWorkerId, insure);
|
|
|
+
|
|
|
+ // 生成附件对像
|
|
|
+ getInsureWorkerCommercialFile(insurefiles, zj, a);
|
|
|
+
|
|
|
+ bxWorkerIdWebsitIds.add(workerId +item.getWebsitId());
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
@Nullable
|
|
|
private String checkWebsitWorker(String workerId, Map<String, List<WebsitWorker>> websitWorderwidwdidMap, WebsitOrderSign item) {
|
|
|
String websitWorkerId="";
|