|
@@ -88,14 +88,16 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
|
|
|
@Override
|
|
|
public void inputData(){
|
|
|
+ Map<Long,ItfTblWangdianWxgDownload> uprecs = new HashMap<>();
|
|
|
// 新增师傅数据 只新增不修改
|
|
|
- inputDataWorker();
|
|
|
+ inputDataWorker(uprecs);
|
|
|
|
|
|
// 添加网点师傅数据及平台与商户网点师傅数据 worker_brand_account(师傅网点对应品牌网点信息表) + websit_worker(网点师傅信息表))
|
|
|
- inputDataWebsitWorker();
|
|
|
+ inputDataWebsitWorker(uprecs);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- void inputDataWebsitWorker(){
|
|
|
+ void inputDataWebsitWorker(Map<Long,ItfTblWangdianWxgDownload> uprecs){
|
|
|
List<String> sfzs = new ArrayList<>();
|
|
|
List<String> recouts = new ArrayList<>();
|
|
|
List<ItfTblWangdianWxgDownload> recs = new ArrayList<>();
|
|
@@ -107,23 +109,32 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
// 先同步有效的数据
|
|
|
if (CollectionUtils.isNotEmpty(sfzs)){
|
|
|
recs = itfTblWangdianWxgDownloadService.lambdaQuery()
|
|
|
+ .eq(ItfTblWangdianWxgDownload::getSynStatus,0)
|
|
|
.in(ItfTblWangdianWxgDownload::getSfzen,sfzs).list();
|
|
|
// 新增网点师傅 websit_worker(商户网点师傅信息) 存在修改,不存在新增
|
|
|
// 只做新增,不做修改动作
|
|
|
- addWebsitWorkerBrandAccountsInfo(recs);
|
|
|
+ addWebsitWorkerBrandAccountsInfo(recs, uprecs);
|
|
|
}
|
|
|
|
|
|
|
|
|
// 同步无效的数据
|
|
|
if (CollectionUtils.isNotEmpty(recouts)){
|
|
|
recs = itfTblWangdianWxgDownloadService.lambdaQuery()
|
|
|
+ .eq(ItfTblWangdianWxgDownload::getSynStatus,0)
|
|
|
.in(ItfTblWangdianWxgDownload::getSfzen,recouts).list();
|
|
|
- addWebsitWorkerBrandAccountsInfo(recs);
|
|
|
+ addWebsitWorkerBrandAccountsInfo(recs, uprecs);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (uprecs.size()>0){
|
|
|
+ List<ItfTblWangdianWxgDownload> wxgs = new ArrayList<>();
|
|
|
+ uprecs.entrySet().stream()
|
|
|
+ .forEach(entry -> wxgs.add(entry.getValue()));
|
|
|
+ itfTblWangdianWxgDownloadService.updateBatchById(wxgs);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- void inputDataWorker(){
|
|
|
+ void inputDataWorker(Map<Long,ItfTblWangdianWxgDownload> uprecs){
|
|
|
List<String> sfzs = new ArrayList<>();
|
|
|
List<String> recouts = new ArrayList<>();
|
|
|
List<ItfTblWangdianWxgDownload> recs = new ArrayList<>();
|
|
@@ -133,17 +144,19 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
// 先同步有效的数据
|
|
|
if (CollectionUtils.isNotEmpty(sfzs)){
|
|
|
recs = itfTblWangdianWxgDownloadService.lambdaQuery()
|
|
|
+ .eq(ItfTblWangdianWxgDownload::getSynStatus,0)
|
|
|
.in(ItfTblWangdianWxgDownload::getSfzen,sfzs).list();
|
|
|
// 新增或修改师傅数据 worker:师傅信息表
|
|
|
- addInOutWorker(recs,Boolean.TRUE);
|
|
|
+ addInOutWorker(recs,Boolean.TRUE,uprecs);
|
|
|
}
|
|
|
|
|
|
// 同步无效的数据
|
|
|
if (CollectionUtils.isNotEmpty(recouts)){
|
|
|
recs = itfTblWangdianWxgDownloadService.lambdaQuery()
|
|
|
+ .eq(ItfTblWangdianWxgDownload::getSynStatus,0)
|
|
|
.in(ItfTblWangdianWxgDownload::getSfzen,recouts).list();
|
|
|
// 新增或修改师傅数据 worker:师傅信息表
|
|
|
- addInOutWorker(recs,Boolean.FALSE);
|
|
|
+ addInOutWorker(recs,Boolean.FALSE,uprecs);
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -189,7 +202,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void addWebsitWorkerBrandAccountsInfo(List<ItfTblWangdianWxgDownload> addRec) {
|
|
|
+ public void addWebsitWorkerBrandAccountsInfo(List<ItfTblWangdianWxgDownload> addRec,Map<Long,ItfTblWangdianWxgDownload> uprecs) {
|
|
|
// 新增网点师傅 websit_worker+(商户网点师傅信息) 存在修改,不存在新增
|
|
|
Map<String,List<WebsitOrderSign>> websitOrderSignMap = new HashMap<>();
|
|
|
Map<String, List<Worker>> workerIdCardMap = new HashMap<>();
|
|
@@ -222,7 +235,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
if (addRec.size()>0){
|
|
|
// 生成平台网点及品牌商网点师傅数据
|
|
|
getWebsitWorkerBrandAccounts(addRec, websitOrderSignMap, workerIdCardMap, ptPpWebsitMap, addwbas,
|
|
|
- websitWorkeradd, upWorkerBrandAccount);
|
|
|
+ websitWorkeradd, upWorkerBrandAccount, uprecs);
|
|
|
|
|
|
// 修改品牌商网点师傅数据
|
|
|
if (upWorkerBrandAccount.size()>0){
|
|
@@ -248,84 +261,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void addWebsitWorkerBrandAccounts(List<ItfTblWangdianWxgDownload> addRec, List<ItfTblWangdianWxgDownload> updateRec) {
|
|
|
- // 新增网点师傅 websit_worker+商户网点师傅信息 存在修改,不存在新增
|
|
|
- Map<String,List<WebsitOrderSign>> websitOrderSignMap = new HashMap<>();
|
|
|
- Map<String, List<Worker>> workerIdCardMap = new HashMap<>();
|
|
|
- List<Websit> websitrec = new ArrayList<>();
|
|
|
- Map<String,List<Websit>> websitMap = new HashMap<>();
|
|
|
- List<WorkerBrandAccount> addwbas = new ArrayList<>();
|
|
|
- List<WebsitWorker> websitWorkeradd = new ArrayList<>();
|
|
|
- List<WorkerBrandAccount> upWorkerBrandAccount = new ArrayList<>();
|
|
|
|
|
|
- // 提取平台师傅信息
|
|
|
- List<Worker> oldWorkerRec = workerService.lambdaQuery()
|
|
|
- .select(Worker::getIdcard,Worker::getWorkerId,Worker::getWorkerName).list();
|
|
|
- if (CollectionUtils.isNotEmpty(oldWorkerRec)){
|
|
|
- workerIdCardMap = oldWorkerRec.stream().collect(Collectors.groupingBy(Worker::getIdcard));
|
|
|
- }
|
|
|
-
|
|
|
- websitrec = websitService.lambdaQuery()
|
|
|
- .select(Websit::getWebsitId,Websit::getServiceId,Websit::getWebsitName).list();
|
|
|
- if (CollectionUtils.isNotEmpty(websitrec)){
|
|
|
- websitMap = websitrec.stream().collect(Collectors.groupingBy(Websit::getWebsitId));
|
|
|
- }
|
|
|
-
|
|
|
- // 查看品牌网点与平台网点是否存在对应关系 (存在品牌网点对应平台多网点)
|
|
|
- List<WebsitOrderSign> wos = publicService.SyncshshwdToptshwd();
|
|
|
- if (CollectionUtils.isNotEmpty(wos)){
|
|
|
- websitOrderSignMap = wos.stream().collect(Collectors.groupingBy(WebsitOrderSign::getBrandWebsitId));
|
|
|
- }
|
|
|
-
|
|
|
- if (addRec.size()>0){
|
|
|
- // 生成平台网点及品牌商网点师傅数据
|
|
|
- getWebsitWorkerBrandAccounts(addRec, websitOrderSignMap, workerIdCardMap, websitMap, addwbas,
|
|
|
- websitWorkeradd, upWorkerBrandAccount);
|
|
|
-
|
|
|
- // 修改品牌商网点师傅数据
|
|
|
- if (upWorkerBrandAccount.size()>0){
|
|
|
- workerBrandAccountService.updateBatchById(upWorkerBrandAccount);
|
|
|
- upWorkerBrandAccount.clear();
|
|
|
- }
|
|
|
-
|
|
|
- // 新增品牌师傅网点信息
|
|
|
- if (addwbas.size()>0){
|
|
|
- workerBrandAccountService.saveBatch(addwbas);
|
|
|
- addwbas.clear();
|
|
|
- }
|
|
|
-
|
|
|
- // 新增师傅所在平台网点信息
|
|
|
- if (websitWorkeradd.size()>0){
|
|
|
- websitWorkerService.saveBatch(websitWorkeradd);
|
|
|
- websitWorkeradd.clear();
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if (updateRec.size()>0){
|
|
|
- // 生成平台网点及品牌商网点师傅数据
|
|
|
- getWebsitWorkerBrandAccounts(updateRec, websitOrderSignMap, workerIdCardMap, websitMap,
|
|
|
- addwbas, websitWorkeradd, upWorkerBrandAccount);
|
|
|
-
|
|
|
- // 修改品牌商网点师傅数据
|
|
|
- if (upWorkerBrandAccount.size()>0){
|
|
|
- workerBrandAccountService.updateBatchById(upWorkerBrandAccount);
|
|
|
- upWorkerBrandAccount.clear();
|
|
|
- }
|
|
|
-
|
|
|
- // 新增品牌师傅网点信息
|
|
|
- if (addwbas.size()>0){
|
|
|
- workerBrandAccountService.saveBatch(addwbas);
|
|
|
- addwbas.clear();
|
|
|
- }
|
|
|
-
|
|
|
- // 新增师傅所在平台网点信息
|
|
|
- if (websitWorkeradd.size()>0){
|
|
|
- websitWorkerService.saveBatch(websitWorkeradd);
|
|
|
- websitWorkeradd.clear();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
@Nullable
|
|
|
private void getWebsitWorkerBrandAccounts(List<ItfTblWangdianWxgDownload> addRec,
|
|
@@ -334,10 +270,13 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
Map<String, List<Websit>> ptPpWebsitMap,
|
|
|
List<WorkerBrandAccount> addwbas,
|
|
|
List<WebsitWorker> websitWorkeradd,
|
|
|
- List<WorkerBrandAccount> upWorkerBrandAccounts) {
|
|
|
+ List<WorkerBrandAccount> upWorkerBrandAccounts,
|
|
|
+ Map<Long,ItfTblWangdianWxgDownload> uprecs) {
|
|
|
List<String> WebsitWorkers = new ArrayList<>();
|
|
|
|
|
|
for (ItfTblWangdianWxgDownload m : addRec){
|
|
|
+ m.setSynStatus(1);
|
|
|
+ uprecs.put(m.getSynReqId(),m);
|
|
|
// 只有存在网点对应关系才可以新增师傅到网点信息中来 存在品牌网点对应平台多网点
|
|
|
if (!websitOrderSignMap.containsKey(m.getWdno())){
|
|
|
continue;
|
|
@@ -1029,7 +968,8 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void extractedWorkerAddNewInOut(List<ItfTblWangdianWxgDownload> addRec, List<Worker> addWorkerRec, Boolean flag) {
|
|
|
+ public void extractedWorkerAddNewInOut(List<ItfTblWangdianWxgDownload> addRec, List<Worker> addWorkerRec, Boolean flag,
|
|
|
+ Map<Long,ItfTblWangdianWxgDownload> uprecs) {
|
|
|
// 身份证 作为唯一 (有效与无效的只要有效)
|
|
|
List<String> sfzens = new ArrayList<>();
|
|
|
List<String> mobiles = new ArrayList<>();
|
|
@@ -1045,6 +985,8 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
}
|
|
|
|
|
|
for (ItfTblWangdianWxgDownload m : addRec){
|
|
|
+ m.setSynStatus(1);
|
|
|
+ uprecs.put(m.getSynReqId(),m);
|
|
|
// 已处理过不再处理 因为这里是网点师傅会存在重复数据
|
|
|
if (sfzens.contains(m.getSfzen().trim())){
|
|
|
continue;
|
|
@@ -1119,28 +1061,16 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
}
|
|
|
|
|
|
|
|
|
- public void addInOutWorker(List<ItfTblWangdianWxgDownload> Recs,Boolean flag) {
|
|
|
+ public void addInOutWorker(List<ItfTblWangdianWxgDownload> Recs,Boolean flag, Map<Long,ItfTblWangdianWxgDownload> uprecs) {
|
|
|
List<Worker> addWorkerRec = new ArrayList<>();
|
|
|
if (Recs.size()>0){
|
|
|
// worker:师傅信息
|
|
|
- extractedWorkerAddNewInOut(Recs, addWorkerRec, flag);
|
|
|
+ extractedWorkerAddNewInOut(Recs, addWorkerRec, flag, uprecs);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void extractedLocalAddOrUpdate(List<ItfTblWangdianWxgDownload> addRec, List<ItfTblWangdianWxgDownload> updateRec) {
|
|
|
-
|
|
|
- List<Worker> addWorkerRec = new ArrayList<>();
|
|
|
-
|
|
|
- // 新增师傅数据 worker:师傅信息表
|
|
|
- addWorkerInfo(addRec, updateRec, addWorkerRec);
|
|
|
-
|
|
|
- // 新增 品牌网点师傅信息(worker_brand_account) + 平台网点师傅信息(websit_worker)
|
|
|
- addWebsitWorkerBrandAccounts(addRec, updateRec);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- private void extractedAddOrUpdate(JSONArray jsonArray) {
|
|
|
+ private void extractedAddOrUpdatebak(JSONArray jsonArray) {
|
|
|
String synTaskNo = publicService.getUUID();
|
|
|
List<ItfTblWangdianWxgDownload> add = new ArrayList<>();
|
|
|
List<ItfTblWangdianWxgDownload> update = new ArrayList<>();
|
|
@@ -1199,4 +1129,34 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
update.clear();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void extractedAddOrUpdate(JSONArray jsonArray) {
|
|
|
+ String synTaskNo = publicService.getUUID();
|
|
|
+ List<ItfTblWangdianWxgDownload> add = new ArrayList<>();
|
|
|
+
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
+ JSONObject aData = jsonArray.getJSONObject(i);
|
|
|
+ ItfTblWangdianWxgDownload item = JSON.toJavaObject(aData,ItfTblWangdianWxgDownload.class);
|
|
|
+ // 新增
|
|
|
+ item.setSynTaskNo(synTaskNo);
|
|
|
+ item.setSynReqTime(new Date());
|
|
|
+ item.setSynStatus(0);
|
|
|
+ item.setSynTime(new Date());
|
|
|
+ item.setSynTimes(0);
|
|
|
+ add.add(item);
|
|
|
+
|
|
|
+ if (add.size()>1000){
|
|
|
+ itfTblWangdianWxgDownloadService.saveBatch(add);
|
|
|
+ log.info("网点维修工基础资料信息同步新增插入了{}条数据", add.size());
|
|
|
+ add.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 新增的插入到表
|
|
|
+ if (add.size()>0){
|
|
|
+ itfTblWangdianWxgDownloadService.saveBatch(add);
|
|
|
+ log.info("网点维修工基础资料信息同步新增插入了{}条数据", add.size());
|
|
|
+ add.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|