|
@@ -78,7 +78,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
extractedAddOrUpdate(addRec, updateRec, jsonArray);
|
|
|
|
|
|
// 数据同步到本地表
|
|
|
- extractedLocalAddOrUpdate(addRec, updateRec);
|
|
|
+ extractedLocalAddOrUpdate(addRec, updateRec);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -102,11 +102,11 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
Map<String,List<Websit>> websitMap = new HashMap<>();
|
|
|
List<WorkerBrandAccount> addwbas = new ArrayList<>();
|
|
|
List<WebsitWorker> websitWorkeradd = new ArrayList<>();
|
|
|
- List<WorkerBrandAccount> wbas = new ArrayList<>();
|
|
|
+ List<WorkerBrandAccount> upWorkerBrandAccount = new ArrayList<>();
|
|
|
|
|
|
- // 提取师傅信息
|
|
|
+ // 提取平台师傅信息
|
|
|
List<Worker> oldWorkerRec = workerService.lambdaQuery()
|
|
|
- .select(Worker::getIdcard,Worker::getWorkerId).list();
|
|
|
+ .select(Worker::getIdcard,Worker::getWorkerId,Worker::getWorkerName).list();
|
|
|
if (CollectionUtils.isNotEmpty(oldWorkerRec)){
|
|
|
workerIdCardMap = oldWorkerRec.stream().collect(Collectors.groupingBy(Worker::getIdcard));
|
|
|
}
|
|
@@ -125,12 +125,13 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
|
|
|
if (addRec.size()>0){
|
|
|
// 生成平台网点及品牌商网点师傅数据
|
|
|
- wbas = getWebsitWorkerBrandAccounts(addRec, websitOrderSignMap, workerIdCardMap, websitMap, addwbas, websitWorkeradd, wbas);
|
|
|
+ getWebsitWorkerBrandAccounts(addRec, websitOrderSignMap, workerIdCardMap, websitMap, addwbas,
|
|
|
+ websitWorkeradd, upWorkerBrandAccount);
|
|
|
|
|
|
// 修改品牌商网点师傅数据
|
|
|
- if (wbas.size()>0){
|
|
|
- workerBrandAccountService.updateBatchById(wbas);
|
|
|
- wbas.clear();
|
|
|
+ if (upWorkerBrandAccount.size()>0){
|
|
|
+ workerBrandAccountService.updateBatchById(upWorkerBrandAccount);
|
|
|
+ upWorkerBrandAccount.clear();
|
|
|
}
|
|
|
|
|
|
// 新增品牌师傅网点信息
|
|
@@ -149,12 +150,12 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
|
|
|
if (updateRec.size()>0){
|
|
|
// 生成平台网点及品牌商网点师傅数据
|
|
|
- wbas = getWebsitWorkerBrandAccounts(updateRec, websitOrderSignMap, workerIdCardMap, websitMap, addwbas, websitWorkeradd, wbas);
|
|
|
+ getWebsitWorkerBrandAccounts(updateRec, websitOrderSignMap, workerIdCardMap, websitMap, addwbas, websitWorkeradd, upWorkerBrandAccount);
|
|
|
|
|
|
// 修改品牌商网点师傅数据
|
|
|
- if (wbas.size()>0){
|
|
|
- workerBrandAccountService.updateBatchById(wbas);
|
|
|
- wbas.clear();
|
|
|
+ if (upWorkerBrandAccount.size()>0){
|
|
|
+ workerBrandAccountService.updateBatchById(upWorkerBrandAccount);
|
|
|
+ upWorkerBrandAccount.clear();
|
|
|
}
|
|
|
|
|
|
// 新增品牌师傅网点信息
|
|
@@ -172,26 +173,26 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
}
|
|
|
|
|
|
@Nullable
|
|
|
- private List<WorkerBrandAccount> getWebsitWorkerBrandAccounts(List<ItfTblWangdianWxgDownload> addRec,
|
|
|
+ private void getWebsitWorkerBrandAccounts(List<ItfTblWangdianWxgDownload> addRec,
|
|
|
Map<String, List<WebsitOrderSign>> websitOrderSignMap,
|
|
|
- Map<String, List<Worker>> workerMap,
|
|
|
+ Map<String, List<Worker>> workerIdCardMap,
|
|
|
Map<String, List<Websit>> websitMap,
|
|
|
List<WorkerBrandAccount> addwbas,
|
|
|
List<WebsitWorker> websitWorkeradd,
|
|
|
- List<WorkerBrandAccount> wbas) {
|
|
|
+ List<WorkerBrandAccount> upWorkerBrandAccounts) {
|
|
|
for (ItfTblWangdianWxgDownload m : addRec){
|
|
|
- // 只有存在才可以新增进来 存在品牌网点对应平台多网点
|
|
|
+ // 只有存在网点对应关系才可以新增师傅到网点信息中来 存在品牌网点对应平台多网点
|
|
|
if (!websitOrderSignMap.containsKey(m.getWdno())){
|
|
|
continue;
|
|
|
}
|
|
|
// 看师傅+网点信息 在品牌商网点信息是否存在 存在修改,不存在新增 会存在多条记录
|
|
|
- wbas = workerBrandAccountService.lambdaQuery()
|
|
|
+ List<WorkerBrandAccount> oldwbas = workerBrandAccountService.lambdaQuery()
|
|
|
.eq(WorkerBrandAccount::getBrandWebsitId,m.getWdno())
|
|
|
.eq(WorkerBrandAccount::getBrandWorkerId,m.getWxgid()).list();
|
|
|
|
|
|
- // 存在修改
|
|
|
- if (CollectionUtils.isNotEmpty(wbas)){
|
|
|
- for (WorkerBrandAccount wba : wbas){
|
|
|
+ // 存在修只改师傅帐号状态
|
|
|
+ if (CollectionUtils.isNotEmpty(oldwbas)){
|
|
|
+ for (WorkerBrandAccount wba : oldwbas){
|
|
|
// 修改网点师傅信息
|
|
|
wba.setBrandWorkerStatus(DictTypeEnum.DICT_TYPE_OFF.getCode());
|
|
|
if (m.getFlag() != null){
|
|
@@ -201,28 +202,34 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
}
|
|
|
wba.setOutSyncTime(new Date());
|
|
|
}
|
|
|
+ upWorkerBrandAccounts.addAll(oldwbas);
|
|
|
// 修改平台网点师傅信息 要求存在就不修改只新增
|
|
|
} else {
|
|
|
- // 新增师傅所在品牌商网点信息
|
|
|
+ // 新增师傅所在品牌、商网点信息
|
|
|
List<WebsitOrderSign> wosrec = new ArrayList<>();
|
|
|
wosrec = websitOrderSignMap.get(m.getWdno());
|
|
|
// 存在品牌网点对应平台多网点 平台网点信息
|
|
|
for (WebsitOrderSign i : wosrec){
|
|
|
// 生成品牌师傅网点信息对像
|
|
|
- WorkerBrandAccount add = getWorkerBrandAccount(workerMap, websitMap, m, addwbas, i);
|
|
|
- // 生成师傅所在平台网点信息对像
|
|
|
- getWebsitWorker(workerMap, websitMap, m, websitWorkeradd, i, add);
|
|
|
+ WorkerBrandAccount add = getWorkerBrandAccount(workerIdCardMap, websitMap, m, addwbas, i);
|
|
|
+ // 生成师傅所在平台网点信息对像(如已存在不再新增 即不修改平台网点师傅信息)
|
|
|
+ WebsitWorker ww = websitWorkerService.lambdaQuery()
|
|
|
+ .eq(WebsitWorker::getWorkerId,workerIdCardMap.get(m.getSfzen()).get(0).getWorkerId())
|
|
|
+ .eq(WebsitWorker::getWebsitId,i.getWebsitId()).one();
|
|
|
+ if (ww == null){
|
|
|
+ getWebsitWorker(workerIdCardMap, websitMap, m, websitWorkeradd, i, add);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return wbas;
|
|
|
}
|
|
|
|
|
|
- private void getWebsitWorker(Map<String, List<Worker>> workerMap, Map<String, List<Websit>> websitrecMap, ItfTblWangdianWxgDownload m, List<WebsitWorker> websitWorkeradd, WebsitOrderSign i, WorkerBrandAccount add) {
|
|
|
+ private void getWebsitWorker(Map<String, List<Worker>> workerIdCardMap, Map<String, List<Websit>> websitrecMap, ItfTblWangdianWxgDownload m, List<WebsitWorker> websitWorkeradd, WebsitOrderSign i, WorkerBrandAccount add) {
|
|
|
WebsitWorker v = new WebsitWorker();
|
|
|
// 一定要与worker_brand_account.websit_worker_id相同
|
|
|
v.setWebsitWorkerId(add.getWebsitWorkerId());
|
|
|
v.setServiceId(websitrecMap.get(i.getWebsitId()).get(0).getServiceId());
|
|
|
+ v.setWebsitId(add.getWebsitId());
|
|
|
v.setWorkerId(add.getWorkerId());
|
|
|
v.setCreateBy("system");
|
|
|
v.setUpdateBy("system");
|
|
@@ -240,7 +247,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
if (m.getLastModifiedDate() != null){
|
|
|
v.setUpdateTime(m.getLastModifiedDate());
|
|
|
}
|
|
|
- v.setWorkerName(workerMap.get(m.getSfzen()).get(0).getWorkerName());
|
|
|
+ v.setWorkerName(workerIdCardMap.get(m.getSfzen()).get(0).getWorkerName());
|
|
|
v.setStatus(DictTypeEnum.DICT_TYPE_ON.getCode());
|
|
|
if (m.getFlag() != null){
|
|
|
if (!m.getFlag().trim().equals(DictTypeEnum.DICT_TYPE_FLAG_ON.getCode())){
|
|
@@ -322,9 +329,11 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
}
|
|
|
|
|
|
@NotNull
|
|
|
- private WorkerBrandAccount getWorkerBrandAccount(Map<String, List<Worker>> workerMap, Map<String, List<Websit>> websitrecMap, ItfTblWangdianWxgDownload m, List<WorkerBrandAccount> addwbas, WebsitOrderSign i) {
|
|
|
+ private WorkerBrandAccount getWorkerBrandAccount(Map<String, List<Worker>> workerIdCardMap, Map<String, List<Websit>> websitrecMap,
|
|
|
+ ItfTblWangdianWxgDownload m,
|
|
|
+ List<WorkerBrandAccount> addwbas, WebsitOrderSign i) {
|
|
|
WorkerBrandAccount add = new WorkerBrandAccount();
|
|
|
- add.setWorkerId(workerMap.get(m.getSfzen()).get(0).getWorkerId());
|
|
|
+ add.setWorkerId(workerIdCardMap.get(m.getSfzen()).get(0).getWorkerId());
|
|
|
// 自生成 一定要与websit_worker.websit_worker_id相同
|
|
|
add.setWebsitWorkerId(IdWorker.getIdStr());
|
|
|
add.setGroupCompanyId(i.getGroupCompanyId());
|
|
@@ -335,7 +344,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
add.setBrandWebsitId(i.getBrandWebsitId());
|
|
|
add.setBrandWebsitName(i.getBrandWebsitName());
|
|
|
add.setBrandWorkerId(String.valueOf(m.getWxgid()));
|
|
|
- add.setBrandWorkerId(m.getWxgno());
|
|
|
+ add.setBrandWorkerNumber(m.getWxgno());
|
|
|
add.setBrandWorkerStatus(DictTypeEnum.DICT_TYPE_OFF.getCode());
|
|
|
if (m.getFlag() != null){
|
|
|
if (m.getFlag().trim().equals(DictTypeEnum.DICT_TYPE_FLAG_ON.getCode())){
|
|
@@ -546,7 +555,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
ItfTblWangdianWxgDownload old = oldRecMap.get(item.getWxgid()).get(0);
|
|
|
MyBeanUtils.copyProperties(item,old);
|
|
|
update.add(old);
|
|
|
- if (update.size()>3000){
|
|
|
+ if (update.size()>2000){
|
|
|
itfTblWangdianWxgDownloadService.updateBatchById(update);
|
|
|
log.info("网点维修工基础资料信息同步更新修改了{}条数据", update.size());
|
|
|
updateRec.addAll(update);
|
|
@@ -561,7 +570,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
item.setSynTimes(0);
|
|
|
add.add(item);
|
|
|
|
|
|
- if (add.size()>=3000){
|
|
|
+ if (add.size()>=2000){
|
|
|
itfTblWangdianWxgDownloadService.saveBatch(add);
|
|
|
log.info("网点维修工基础资料信息同步新增插入了{}条数据", add.size());
|
|
|
addRec.addAll(add);
|