|
@@ -12,6 +12,7 @@ import com.zfire.jiasm.syncdata.plus.entity.*;
|
|
|
import com.zfire.jiasm.syncdata.plus.service.*;
|
|
|
import com.zfire.jiasm.syncdata.request.SignSplb;
|
|
|
import com.zfire.jiasm.syncdata.request.ZJInfo;
|
|
|
+import com.zfire.jiasm.syncdata.request.ZJInfoBX;
|
|
|
import com.zfire.jiasm.syncdata.request.ZJInfoC;
|
|
|
import com.zfire.jiasm.syncdata.response.WangdianWxgVos;
|
|
|
import com.zfire.jiasm.syncdata.response.WxgQueryInfo;
|
|
@@ -77,6 +78,10 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
ItfTblWangdianPositionDownloadService itfTblWangdianPositionDownloadService;
|
|
|
@Resource
|
|
|
PublicService publicService;
|
|
|
+ @Resource
|
|
|
+ WebsitWorkerService websitWorkerService;
|
|
|
+ @Resource
|
|
|
+ WebsitOrderSignService websitOrderSignService;
|
|
|
|
|
|
|
|
|
|
|
@@ -89,6 +94,8 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
Map<String,List<Worker>> workerWorkeridMap = new HashMap<>();
|
|
|
Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps = new HashMap<>();
|
|
|
List<ItfTblWangdianWxgDownload> wxgDownladRecs = new ArrayList<>();
|
|
|
+ List<WebsitWorker> websitWorkerUp = new ArrayList<>();
|
|
|
+ Map<String,List<WebsitWorker>> websitWorkerWorkerIdMap = new HashMap<>();
|
|
|
|
|
|
// 提取品牌信息
|
|
|
Brand brand = baseService.getBrand();
|
|
@@ -101,6 +108,13 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
if (CollectionUtils.isNotEmpty(oldWorkerRec)){
|
|
|
workerIdcardMap = oldWorkerRec.stream().collect(Collectors.groupingBy(Worker::getIdcard));
|
|
|
workerWorkeridMap = oldWorkerRec.stream().collect(Collectors.groupingBy(Worker::getWorkerId));
|
|
|
+ oldWorkerRec.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<WebsitWorker> wws = websitWorkerService.lambdaQuery().list();
|
|
|
+ if (CollectionUtils.isNotEmpty(wws)){
|
|
|
+ websitWorkerWorkerIdMap = wws.stream().collect(Collectors.groupingBy(WebsitWorker::getWorkerId));
|
|
|
+ wws.clear();
|
|
|
}
|
|
|
|
|
|
// 提取格力现有的网点师傅数据信息
|
|
@@ -112,7 +126,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
ItfTblWangdianWxgDownload::getWxgmc,
|
|
|
ItfTblWangdianWxgDownload::getYddh,
|
|
|
ItfTblWangdianWxgDownload::getFlag)
|
|
|
- .eq(ItfTblWangdianWxgDownload::getSfzen,"441827198312116217")// 测试用
|
|
|
+ .eq(ItfTblWangdianWxgDownload::getSfzen,"141082198206230032")// 测试用
|
|
|
.like(ItfTblWangdianWxgDownload::getWdno,"S%").list();
|
|
|
|
|
|
// 提取现有已存在的证件信息的师傅信息(待回传同步的证件不处理)
|
|
@@ -120,6 +134,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
.eq(WorkerCert::getOutSyncStatus,1).list();
|
|
|
if (CollectionUtils.isNotEmpty(wc)){
|
|
|
WorkerCertWorkerIdMaps = wc.stream().collect(Collectors.groupingBy(WorkerCert::getWorkerId));
|
|
|
+ wc.clear();
|
|
|
}
|
|
|
|
|
|
|
|
@@ -160,9 +175,12 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
|
|
|
log.info("总部获取的工程师证件照信息wvos:{}", JSONObject.toJSONString(wvos));
|
|
|
// 同步-新增证件信息
|
|
|
- getCertInfo(wvos, addList, workerId, workerWorkeridMap.get(workerId).get(0).getWorkerName(), WorkerCertWorkerIdMaps);
|
|
|
+ getCertInfo(wvos, addList, workerId, workerWorkeridMap.get(workerId).get(0).getWorkerName(),
|
|
|
+ WorkerCertWorkerIdMaps, websitWorkerUp,wxg.getWdno(), websitWorkerWorkerIdMap);
|
|
|
// 新增或修改(证件)
|
|
|
addDataCert(addList);
|
|
|
+ // 修改保险信息
|
|
|
+ upWebsitWorker(websitWorkerUp);
|
|
|
log.info("工程师证件照信息同步成功-师傅证件信息:{}", wxg.getSfzen());
|
|
|
} else {
|
|
|
log.info("获取工程师证件照信息失败-师傅证件信息:{}", wxg.getSfzen());
|
|
@@ -170,6 +188,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
}
|
|
|
} catch (Exception ex) {
|
|
|
addDataCert(addList);
|
|
|
+ upWebsitWorker(websitWorkerUp);
|
|
|
ex.printStackTrace();
|
|
|
log.info("工程师证件照信息同步失败-师傅证件信息:{}", wxg.getSfzen());
|
|
|
}
|
|
@@ -177,6 +196,13 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ private void upWebsitWorker(List<WebsitWorker> websitWorkerUp) {
|
|
|
+ if (websitWorkerUp.size()>0){
|
|
|
+ websitWorkerService.saveOrUpdateBatch(websitWorkerUp);
|
|
|
+ websitWorkerUp.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private String checkIsGreeWroker(Map<String, List<Worker>> workerIdcardMap, ItfTblWangdianWxgDownload wxg) {
|
|
|
String workerId="";
|
|
|
if (workerIdcardMap.containsKey(wxg.getSfzen())){
|
|
@@ -640,7 +666,36 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
return fileId;
|
|
|
}
|
|
|
|
|
|
- private void workercertAdd(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId, ZJInfoC zjinfo, String workerName) throws Exception {
|
|
|
+ private void workerBXAdd(ZJInfoBX bx, List<WebsitWorker> websitWorkerUp) throws Exception {
|
|
|
+ ZJInfo zj = new ZJInfo();
|
|
|
+ zj=bx.getZjInfo();
|
|
|
+
|
|
|
+ // 保单号+名称
|
|
|
+ if (zj.getZjbh().contains("/")){
|
|
|
+ List<String> result = Arrays.asList(zj.getZjbh().split("/"));
|
|
|
+ bx.getWebsitWorker().setSafeCompany(result.get(0));
|
|
|
+ bx.getWebsitWorker().setSafeNo(result.get(1));
|
|
|
+ } else {
|
|
|
+ bx.getWebsitWorker().setSafeNo(zj.getZjbh());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 有效期
|
|
|
+ if (StringUtils.isNotEmpty(zj.getZjyxq())){
|
|
|
+ bx.getWebsitWorker().setGmbxyxq(baseService.utcToDateStr(zj.getZjyxq()));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保险照
|
|
|
+ String id = putCert(zj.getZjlj());
|
|
|
+ if (StringUtils.isNotEmpty(id)){
|
|
|
+ bx.getWebsitWorker().setOutInsureCert(id);
|
|
|
+ }
|
|
|
+ new File(id).delete();
|
|
|
+
|
|
|
+ websitWorkerUp.add(bx.getWebsitWorker());
|
|
|
+ }
|
|
|
+
|
|
|
+ private void workercertAdd(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,
|
|
|
+ ZJInfoC zjinfo, String workerName) throws Exception {
|
|
|
ZJInfo zj = new ZJInfo();
|
|
|
zj=zjinfo.getZjInfo();
|
|
|
|
|
@@ -705,10 +760,22 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void getCertInfo(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,String workerName,
|
|
|
- Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps) throws Exception {
|
|
|
+ private void getCertInfo(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,
|
|
|
+ String workerName, Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps,
|
|
|
+ List<WebsitWorker> websitWorkerUp,String wdno,
|
|
|
+ Map<String,List<WebsitWorker>> websitWorkerWorkerIdMap) throws Exception {
|
|
|
// 同步-新增证件信息
|
|
|
for (ZJInfo zj: wvos.getZjInfoList()){
|
|
|
+ // 保险证单独处理 只有修改无需新增操作
|
|
|
+ if (zj.getZjmc().trim().equals("保险证")){
|
|
|
+ ZJInfoBX bx = checkBxCertInfo(workerId, websitWorkerWorkerIdMap,zj, wdno);
|
|
|
+ if (bx == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ workerBXAdd(bx, websitWorkerUp);
|
|
|
+ // continue; 先测试下
|
|
|
+ }
|
|
|
+
|
|
|
// 校验证件是否需要新增同步
|
|
|
ZJInfoC addZj =checkCertInfo(workerId,WorkerCertWorkerIdMaps,zj);
|
|
|
if (addZj.getZjInfo()!=null){
|
|
@@ -717,6 +784,59 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 返回null时不处理
|
|
|
+ private ZJInfoBX checkBxCertInfo(String workerId, Map<String,List<WebsitWorker>> websitWorkerWorkerIdMap,
|
|
|
+ ZJInfo zj, String wdno) {
|
|
|
+ ZJInfo resultZjinfo = new ZJInfo();
|
|
|
+ ZJInfoBX zjinfo = new ZJInfoBX();
|
|
|
+ Map<String,List<WebsitOrderSign>> wosWebsitidMap = new HashMap<>();
|
|
|
+ WebsitWorker item = null;
|
|
|
+
|
|
|
+ // 装入总部同步的保险数据
|
|
|
+ zjinfo.setZjInfo(zj);
|
|
|
+
|
|
|
+ // 提取商户售后网点对应的平台售后网点信息 存在一对多的关系
|
|
|
+ List<WebsitOrderSign> wos = websitOrderSignService.lambdaQuery()
|
|
|
+ .eq(WebsitOrderSign::getBrandWebsitId, wdno)
|
|
|
+ .list();
|
|
|
+ // 找不到对应关系时不再处理保险证数据
|
|
|
+ if (CollectionUtils.isEmpty(wos)){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ wosWebsitidMap = wos.stream().collect(Collectors.groupingBy(WebsitOrderSign::getWebsitId));
|
|
|
+ wos.clear();
|
|
|
+
|
|
|
+ // 找出师傅所在网点的保险证记录数据
|
|
|
+ for (WebsitWorker i:websitWorkerWorkerIdMap.get(workerId)){
|
|
|
+ if (wosWebsitidMap.containsKey(i.getWebsitId())){
|
|
|
+ MyBeanUtils.copyProperties(i,item);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 无保险记录时也不需要处理,这里不用关心记录的事,网点服务人员下载时已生成了数据
|
|
|
+ if (item == null){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 有保险数据不处理
|
|
|
+ if (StringUtils.isNotEmpty(item.getOutInsureCert())){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ //取保险记录
|
|
|
+ zjinfo.setWebsitWorker(item);
|
|
|
+
|
|
|
+ if (zj.getZjlj().contains(",")){
|
|
|
+ List<String> result = Arrays.asList(zj.getZjlj().split(","));
|
|
|
+ MyBeanUtils.copyProperties(zj,resultZjinfo);
|
|
|
+ resultZjinfo.setZjlj(result.get(0));
|
|
|
+ zjinfo.setZjInfo(resultZjinfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ return zjinfo;
|
|
|
+ }
|
|
|
+
|
|
|
private ZJInfoC checkCertInfo(String workerId,Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps,ZJInfo zj) {
|
|
|
ZJInfo resultZjinfo = new ZJInfo();
|
|
|
ZJInfoC zjinfo = new ZJInfoC();
|