|
@@ -89,7 +89,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public void extractedCertInfo() throws Exception {
|
|
|
+ public void extractedCertInfo(){
|
|
|
WangdianWxgVos wvos = new WangdianWxgVos();
|
|
|
List<WorkerCert> addList = new ArrayList<>();
|
|
|
Map<String,Object> req = new HashMap<>();
|
|
@@ -98,10 +98,10 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps = new HashMap<>();
|
|
|
List<ItfTblWangdianWxgDownload> wxgDownladRecs = new ArrayList<>();
|
|
|
List<WebsitWorker> websitWorkerUp = new ArrayList<>();
|
|
|
- Map<String,List<WebsitWorker>> websitWorkerWorkerIdMap = new HashMap<>();
|
|
|
List<String> workerIdandNames = new ArrayList<>();
|
|
|
List<InsureWorkerCommercial> insurecs = new ArrayList<>();
|
|
|
List<InsureWorkerCommercialFile> insurefiles = new ArrayList<>();
|
|
|
+ List<String> insureworkeridandWebsitids = new ArrayList<>();
|
|
|
|
|
|
// 提取品牌信息
|
|
|
Brand brand = baseService.getBrand();
|
|
@@ -117,10 +117,15 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
oldWorkerRec.clear();
|
|
|
}
|
|
|
|
|
|
- List<WebsitWorker> wws = websitWorkerService.lambdaQuery().list();
|
|
|
- if (CollectionUtils.isNotEmpty(wws)){
|
|
|
- websitWorkerWorkerIdMap = wws.stream().collect(Collectors.groupingBy(WebsitWorker::getWorkerId));
|
|
|
- wws.clear();
|
|
|
+ // 提取师傅所有的保险(有效的) 防重复添加
|
|
|
+ List<InsureWorkerCommercial> iwcs = insureWorkerCommercialService.lambdaQuery()
|
|
|
+ .eq(InsureWorkerCommercial::getStatus,"ON").list();
|
|
|
+ if (CollectionUtils.isNotEmpty(iwcs)){
|
|
|
+ iwcs.stream().forEach(event->{
|
|
|
+ insureworkeridandWebsitids.add(event.getWorkerId()+event.getWebsitId());
|
|
|
+ });
|
|
|
+
|
|
|
+ iwcs.clear();
|
|
|
}
|
|
|
|
|
|
// 提取格力现有的网点师傅数据信息
|
|
@@ -181,12 +186,11 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
|
|
|
log.info("总部获取的工程师证件照信息wvos:{}", JSONObject.toJSONString(wvos));
|
|
|
// 同步-新增证件信息
|
|
|
- getCertInfo(wvos, addList, workerId, WorkerCertWorkerIdMaps, websitWorkerUp,wxg.getWdno(),
|
|
|
- websitWorkerWorkerIdMap,workerIdandNames, workerWorkeridMap,insurecs,insurefiles);
|
|
|
+ getCertInfo(wvos, addList, workerId, WorkerCertWorkerIdMaps,wxg.getWdno(),workerIdandNames,
|
|
|
+ workerWorkeridMap,insurecs,insurefiles, insureworkeridandWebsitids);
|
|
|
// 新增或修改(证件)
|
|
|
addDataCert(addList);
|
|
|
// 修改保险信息
|
|
|
- upWebsitWorker(websitWorkerUp);
|
|
|
addBxInfo(insurecs, insurefiles);
|
|
|
|
|
|
log.info("工程师证件照信息同步成功-师傅证件信息:{}", wxg.getSfzen());
|
|
@@ -219,7 +223,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public void extractedCert() throws Exception{
|
|
|
+ public void extractedCert() {
|
|
|
List<WorkerCert> workerCertList = new ArrayList<>();
|
|
|
List<WorkerCert> workerCertUpList = new ArrayList<>();
|
|
|
// 提取需要处理的证件照数据
|
|
@@ -246,6 +250,34 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
updateWorkerCertInfo(workerCertUpList, 0);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void extractedBx(){
|
|
|
+ List<InsureWorkerCommercialFile> iwcfiles = new ArrayList<>();
|
|
|
+ List<InsureWorkerCommercialFile> iwcfilesUpList = new ArrayList<>();
|
|
|
+ // 提取需要处理的证件照数据
|
|
|
+
|
|
|
+ iwcfiles = insureWorkerCommercialFileService.lambdaQuery()
|
|
|
+ .eq(InsureWorkerCommercialFile::getOutZjljProcess,0)
|
|
|
+ .eq(InsureWorkerCommercialFile::getId,"1696523624660529527")// 测试用
|
|
|
+ .isNotNull(InsureWorkerCommercialFile::getOutZjlj).list();
|
|
|
+
|
|
|
+ for (InsureWorkerCommercialFile item :iwcfiles){
|
|
|
+ try{
|
|
|
+ // 生成图片
|
|
|
+ processBxInfo(item);
|
|
|
+ iwcfilesUpList.add(item);
|
|
|
+
|
|
|
+ updateBxInfo(iwcfilesUpList, 100);
|
|
|
+ } catch (Exception ex) {
|
|
|
+ ex.printStackTrace();
|
|
|
+ updateBxInfo(iwcfilesUpList, 0);
|
|
|
+ log.info("生成师傅证件照信息失败worker_cert.id= {}",item.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ updateBxInfo(iwcfilesUpList, 0);
|
|
|
+ }
|
|
|
+
|
|
|
private void updateWorkerCertInfo(List<WorkerCert> workerCertUpList, int i) {
|
|
|
if (workerCertUpList.size() > i) {
|
|
|
workerCertService.updateBatchById(workerCertUpList);
|
|
@@ -253,6 +285,13 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void updateBxInfo(List<InsureWorkerCommercialFile> iwcfilesUpList, int i) {
|
|
|
+ if (iwcfilesUpList.size() > i) {
|
|
|
+ insureWorkerCommercialFileService.updateBatchById(iwcfilesUpList);
|
|
|
+ iwcfilesUpList.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void upWebsitWorker(List<WebsitWorker> websitWorkerUp) {
|
|
|
if (websitWorkerUp.size()>0){
|
|
|
websitWorkerService.saveOrUpdateBatch(websitWorkerUp);
|
|
@@ -549,7 +588,6 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
}
|
|
|
|
|
|
// 师傅不存在不处理
|
|
|
-
|
|
|
if (!oldWorkers.contains(wxg.getSfzen())) {
|
|
|
continue;
|
|
|
}
|
|
@@ -707,7 +745,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private String putCert(String image) throws Exception {
|
|
|
+ private String putCert(String image){
|
|
|
SimpleDateFormat sdfs = new SimpleDateFormat("yyyyMM/");
|
|
|
String fileId = "";
|
|
|
String id = sdfs.format(new Date())+IdWorker.getIdStr();
|
|
@@ -820,6 +858,16 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void processBxInfo(InsureWorkerCommercialFile iwcfile){
|
|
|
+ String id = putCert(iwcfile.getOutZjlj());
|
|
|
+ if (StringUtils.isNotEmpty(id)){
|
|
|
+ iwcfile.setFileUrl(id);
|
|
|
+ iwcfile.setFileUrl(iwcfile.getOutZjlj());
|
|
|
+ iwcfile.setOutZjljProcess(1);
|
|
|
+ new File(id).delete();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void setAdd(WangdianWxgVos wvos, String workerId, String workerName, ZJInfo zj, WorkerCert add) throws ParseException {
|
|
|
add.setId(UUID.randomUUID().toString());
|
|
|
add.setWorkerId(workerId);
|
|
@@ -878,65 +926,89 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
|
|
|
private void getCertInfo(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,
|
|
|
Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps,
|
|
|
- List<WebsitWorker> websitWorkerUp,String wdno,
|
|
|
- Map<String,List<WebsitWorker>> websitWorkerWorkerIdMap,
|
|
|
- List<String> workerIdandNames,Map<String,List<Worker>> workerWorkeridMap,
|
|
|
- List<InsureWorkerCommercial> insurecs,List<InsureWorkerCommercialFile> insurefiles) throws Exception {
|
|
|
+ String wdno, List<String> workerIdandNames,Map<String,List<Worker>> workerWorkeridMap,
|
|
|
+ List<InsureWorkerCommercial> insurecs,
|
|
|
+ List<InsureWorkerCommercialFile> insurefiles,
|
|
|
+ List<String> insureworkeridandWebsitids) throws ParseException {
|
|
|
// 同步-新增证件信息
|
|
|
for (ZJInfo zj: wvos.getZjInfoList()){
|
|
|
- Boolean addFlag = Boolean.FALSE;
|
|
|
- // 保险证单独处理 只有修改无需新增操作
|
|
|
- // websit.category_type决定保险类型 自建+不为商用(家用)其他商用
|
|
|
- // 家用 insure_worker_record
|
|
|
- // 商用 insure_worker_commercial 商用才操作,最有效期最后的那个
|
|
|
- // websit_worker
|
|
|
- // 统一入商用保险,有多少份入多少份
|
|
|
-
|
|
|
- // 保除证先跳过
|
|
|
+ // 保除证
|
|
|
if (zj.getZjmc().trim().equals("保险证")){
|
|
|
- // 提取商户售后网点对应的平台售后网点信息 存在一对多的关系 无对应关系退出不处理
|
|
|
- List<WebsitOrderSign> wos = publicService.shShwdToptshwdByBrandWebsitNo(wdno);
|
|
|
- if (CollectionUtils.isEmpty(wos)){
|
|
|
+ if (produceBXInfo(workerId, wdno, workerWorkeridMap, insurecs, insurefiles, insureworkeridandWebsitids, zj)){
|
|
|
continue;
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ // 生成其他证件信息
|
|
|
+ produceCert(wvos, addList, workerId, WorkerCertWorkerIdMaps, workerIdandNames, workerWorkeridMap, zj);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- // 生成商用保险对像 网点多对1时每个网点放一份
|
|
|
- for (WebsitOrderSign item : wos){
|
|
|
- // 生成商用保险对像
|
|
|
- InsureWorkerCommercial a = getInsureWorkerCommercial(workerId, workerWorkeridMap, insurecs, zj, item);
|
|
|
+ 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 {
|
|
|
+ Boolean addFlag = Boolean.FALSE;
|
|
|
|
|
|
- // 生成附件对像
|
|
|
- getInsureWorkerCommercialFile(insurefiles, zj, a);
|
|
|
+ // workerid+证件名称锁定不重复
|
|
|
+ if (workerIdandNames.contains(workerId + zj.getZjmc().trim())){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 历史数据存在不新增
|
|
|
+ if (WorkerCertWorkerIdMaps.containsKey(workerId)){
|
|
|
+ for (WorkerCert item: WorkerCertWorkerIdMaps.get(workerId)){
|
|
|
+ // 名称相同 即表中已存在,不新增
|
|
|
+ if (item.getCertName().equals(zj.getZjmc().trim())){
|
|
|
+ addFlag = Boolean.TRUE;
|
|
|
+ break;
|
|
|
}
|
|
|
- continue;
|
|
|
}
|
|
|
+ }
|
|
|
+ if (addFlag){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 新增
|
|
|
+ addNewWorkerCert(wvos, addList, workerId, workerWorkeridMap.get(workerId).get(0).getWorkerName(), workerIdandNames, zj);
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 保险证单独处理 只有修改无需新增操作
|
|
|
+ * websit.category_type决定保险类型 自建+不为商用(家用)其他商用
|
|
|
+ * 家用 insure_worker_record
|
|
|
+ * 商用 insure_worker_commercial 商用才操作,最有效期最后的那个
|
|
|
+ * websit_worker
|
|
|
+ *
|
|
|
+ * 统一入商用保险,有多少份入多少份
|
|
|
+ */
|
|
|
+ private boolean produceBXInfo(String workerId, String wdno, Map<String, List<Worker>> workerWorkeridMap,
|
|
|
+ List<InsureWorkerCommercial> insurecs, List<InsureWorkerCommercialFile> insurefiles,
|
|
|
+ List<String> insureworkeridandWebsitids, ZJInfo zj) throws ParseException {
|
|
|
+ // 提取商户售后网点对应的平台售后网点信息 存在一对多的关系 无对应关系退出不处理
|
|
|
+ List<WebsitOrderSign> wos = publicService.shShwdToptshwdByBrandWebsitNo(wdno);
|
|
|
+ if (CollectionUtils.isEmpty(wos)){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
|
|
|
- // workerid+证件名称锁定不重复
|
|
|
- if (workerIdandNames.contains(workerId+zj.getZjmc().trim())){
|
|
|
+ // 生成商用保险对像 网点多对1时每个网点放一份
|
|
|
+ for (WebsitOrderSign item : wos){
|
|
|
+ // 防重
|
|
|
+ if (insureworkeridandWebsitids.contains(workerId +item.getWebsitId())){
|
|
|
continue;
|
|
|
}
|
|
|
+ // 生成商用保险对像
|
|
|
+ InsureWorkerCommercial a = getInsureWorkerCommercial(workerId, workerWorkeridMap, insurecs, zj, item);
|
|
|
|
|
|
- // 历史数据存在不新增
|
|
|
- if (WorkerCertWorkerIdMaps.containsKey(workerId)){
|
|
|
- for (WorkerCert item:WorkerCertWorkerIdMaps.get(workerId)){
|
|
|
- // 名称相同 即表中已存在,不新增
|
|
|
- if (item.getCertName().equals(zj.getZjmc().trim())){
|
|
|
- addFlag = Boolean.TRUE;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (addFlag){
|
|
|
- continue;
|
|
|
- }
|
|
|
- // 新增
|
|
|
- addNewWorkerCert(wvos, addList, workerId, workerWorkeridMap.get(workerId).get(0).getWorkerName(), workerIdandNames, zj);
|
|
|
+ // 生成附件对像
|
|
|
+ getInsureWorkerCommercialFile(insurefiles, zj, a);
|
|
|
+
|
|
|
+ insureworkeridandWebsitids.add(workerId +item.getWebsitId());
|
|
|
}
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
@NotNull
|
|
|
- private InsureWorkerCommercial getInsureWorkerCommercial(String workerId, Map<String, List<Worker>> workerWorkeridMap, List<InsureWorkerCommercial> insurecs, ZJInfo zj, WebsitOrderSign item) throws ParseException {
|
|
|
+ private InsureWorkerCommercial getInsureWorkerCommercial(String workerId, Map<String, List<Worker>> workerWorkeridMap,
|
|
|
+ List<InsureWorkerCommercial> insurecs, ZJInfo zj, WebsitOrderSign item) throws ParseException {
|
|
|
InsureWorkerCommercial a = new InsureWorkerCommercial();
|
|
|
a.setId(IdWorker.getIdStr());
|
|
|
a.setWorkerId(workerId);
|
|
@@ -987,7 +1059,8 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void addNewWorkerCert(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId, String workerName, List<String> workerIdandNames, ZJInfo zj) throws ParseException {
|
|
|
+ private void addNewWorkerCert(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId, String workerName,
|
|
|
+ List<String> workerIdandNames, ZJInfo zj) throws ParseException {
|
|
|
WorkerCert add = new WorkerCert();
|
|
|
add.setId(UUID.randomUUID().toString());
|
|
|
add.setWorkerId(workerId);
|