|
@@ -89,7 +89,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
|
|
|
@Override
|
|
|
public void inputWorkerData(){
|
|
|
- // 新增师傅数据 只新增不修改
|
|
|
+ // 新增师傅数据 只新增不修改 修改为支持修改
|
|
|
inputDataWorker();
|
|
|
}
|
|
|
|
|
@@ -115,7 +115,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
.eq(ItfTblWangdianWxgDownload::getWebsitWorkerStatus,0)
|
|
|
.in(ItfTblWangdianWxgDownload::getSfzen,sfzs).list();
|
|
|
// 新增网点师傅 websit_worker(商户网点师傅信息) 存在修改,不存在新增
|
|
|
- // 只做新增,不做修改动作
|
|
|
+ // 只做新增,不做修改动作,现调整为存在则修改
|
|
|
addWebsitWorkerBrandAccountsInfo(recs, uprecs);
|
|
|
}
|
|
|
|
|
@@ -549,6 +549,11 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
add.setUpdateBy("system");
|
|
|
add.setCreateTime(new Date());
|
|
|
add.setUpdateTime(new Date());
|
|
|
+
|
|
|
+ if (m.getLastModifiedDate() != null){
|
|
|
+ add.setUpdateTime(m.getLastModifiedDate());
|
|
|
+ }
|
|
|
+
|
|
|
/*if (m.getCreatedBy() != null){
|
|
|
add.setCreateBy(m.getCreatedBy());
|
|
|
}
|
|
@@ -672,47 +677,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
sfzens.add(m.getSfzen() + m.getWxgmc().trim() + m.getYddh());
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- private void getWorker(List<Worker> addWorkerRec, List<String> sfzens, ItfTblWangdianWxgDownload m,
|
|
|
- Map<String, String> workerIdcardMap) {
|
|
|
- Worker o = null;
|
|
|
-
|
|
|
- // 师傅身份证
|
|
|
- if (workerIdcardMap.containsKey(m.getSfzen().trim())){
|
|
|
- o = workerService.lambdaQuery()
|
|
|
- .eq(Worker::getWorkerId,workerIdcardMap.get(m.getSfzen().trim())).one();
|
|
|
- }
|
|
|
-
|
|
|
- // 新增
|
|
|
- if (o==null){
|
|
|
- addWorkerInfo(addWorkerRec, m,Boolean.TRUE);
|
|
|
- } else {
|
|
|
- // 看有无修改的可能
|
|
|
- upWorkerInfo(addWorkerRec, m, o);
|
|
|
- }
|
|
|
- sfzens.add(m.getSfzen() + m.getWxgmc().trim() + m.getYddh());
|
|
|
- }
|
|
|
-
|
|
|
- private void getAddWorker(List<Worker> addWorkerRec, List<String> sfzens, ItfTblWangdianWxgDownload m,
|
|
|
- Map<String, String> workerIdcardMap, Boolean flag) {
|
|
|
- Worker o = null;
|
|
|
-
|
|
|
- // 师傅身份证
|
|
|
- if (workerIdcardMap.containsKey(m.getSfzen().trim())){
|
|
|
- o = workerService.lambdaQuery()
|
|
|
- .eq(Worker::getWorkerId,workerIdcardMap.get(m.getSfzen().trim())).one();
|
|
|
- }
|
|
|
-
|
|
|
- // 新增
|
|
|
- if (o==null){
|
|
|
- addWorkerInfo(addWorkerRec, m, flag);
|
|
|
- sfzens.add(m.getSfzen().trim());
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- private void addWorkerInfo(List<Worker> addWorkerRec, ItfTblWangdianWxgDownload m,Boolean flag) {
|
|
|
+ private Worker addWorkerInfo(ItfTblWangdianWxgDownload m,Boolean flag) {
|
|
|
Worker v = new Worker();
|
|
|
// S + 手机号
|
|
|
// v.setWorkerId(IdWorker.getIdStr());
|
|
@@ -730,6 +695,14 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
}
|
|
|
|
|
|
|
|
|
+ if (m.getCreatedDate() != null){
|
|
|
+ v.setCreateTime(m.getCreatedDate());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (m.getLastModifiedDate() != null){
|
|
|
+ v.setUpdateTime(m.getLastModifiedDate());
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/*if (m.getCreatedBy() != null){
|
|
|
v.setCreateBy(m.getCreatedBy());
|
|
@@ -764,7 +737,20 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
v.setGpsMachineId(m.getGpsid());
|
|
|
v.setVipFlag(m.getVipflag());
|
|
|
v.setSyncFlag(1);
|
|
|
- addWorkerRec.add(v);
|
|
|
+
|
|
|
+ v.setIsBlackList(DictTypeEnum.HMD_TYPE_NO.getCode());
|
|
|
+ if (m.getSfhmd() != null){
|
|
|
+ if (m.getSfhmd().trim().equals(DictTypeEnum.HMD_TYPE_YES.getText())){
|
|
|
+ v.setIsBlackList(DictTypeEnum.HMD_TYPE_YES.getCode());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (m.getHmdbz() != null){
|
|
|
+ v.setBlackListRemark(m.getHmdbz());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return v;
|
|
|
}
|
|
|
|
|
|
private void upWorkerInfo(List<Worker> addWorkerRec, ItfTblWangdianWxgDownload m, Worker v) {
|
|
@@ -968,59 +954,23 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void extractedWorkerAddNew(List<ItfTblWangdianWxgDownload> addRec, List<Worker> addWorkerRec) {
|
|
|
- // 身份证 作为唯一 (有效与无效的只要有效)
|
|
|
- List<String> sfzens = new ArrayList<>();
|
|
|
- Map<String, String> workerIdcardMap = new HashMap<>();
|
|
|
- // 提取原有的信息
|
|
|
- List<Worker> oldWorkerRec = workerService.lambdaQuery()
|
|
|
- .select(Worker::getIdcard,Worker::getWorkerName,Worker::getMobile,Worker::getWorkerId).list();
|
|
|
- if (CollectionUtils.isNotEmpty(oldWorkerRec)){
|
|
|
- for (Worker item: oldWorkerRec){
|
|
|
- workerIdcardMap.put(item.getIdcard() + item.getWorkerName() + item.getMobile(),item.getWorkerId());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- for (ItfTblWangdianWxgDownload m : addRec){
|
|
|
- if (m.getWxgmc().trim().equals("测试用") && m.getSfzen().equals("441900199605311999") && m.getYddh().equals("123")){
|
|
|
- continue;
|
|
|
- }
|
|
|
- /*if (m.getSynReqId().equals(39L)){
|
|
|
- log.info("tets");
|
|
|
- }*/
|
|
|
- // 已处理过不再处理 因为这里是网点师傅会存在重复数据
|
|
|
- if (sfzens.contains(m.getSfzen() + m.getWxgmc().trim() + m.getYddh())){
|
|
|
- continue;
|
|
|
- }
|
|
|
- // 生成对象
|
|
|
- getWorker(addWorkerRec, sfzens, m, workerIdcardMap);
|
|
|
-
|
|
|
- // 新增的插入到表
|
|
|
- if (addWorkerRec.size()>=1000){
|
|
|
- workerService.saveOrUpdateBatch(addWorkerRec);
|
|
|
- log.info("本地网点维修工人员信息表新增插入了{}条数据", addWorkerRec.size());
|
|
|
- addWorkerRec.clear();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- oldWorkerRec.clear();
|
|
|
- workerIdcardMap.clear();
|
|
|
- sfzens.clear();
|
|
|
- }
|
|
|
-
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void extractedWorkerAddNewInOut(List<ItfTblWangdianWxgDownload> addRec, List<Worker> addWorkerRec, Boolean flag,
|
|
|
+ public void extractedWorkerAddNewInOut(List<ItfTblWangdianWxgDownload> addRec, Boolean flag,
|
|
|
Map<Long,ItfTblWangdianWxgDownload> uprecs) {
|
|
|
// 身份证 作为唯一 (有效与无效的只要有效)
|
|
|
List<String> sfzens = new ArrayList<>();
|
|
|
List<String> mobiles = new ArrayList<>();
|
|
|
+ List<Worker> addWorkerRec = new ArrayList<>();
|
|
|
+ List<Worker> uupWorkerRec = new ArrayList<>();
|
|
|
+ Map<String,Worker> workerIdCardMap = new HashMap<>();
|
|
|
+
|
|
|
// 提取原有的信息
|
|
|
- List<Worker> oldWorkerRec = workerService.lambdaQuery()
|
|
|
- .select(Worker::getIdcard,Worker::getMobile).list();
|
|
|
+ List<Worker> oldWorkerRec = workerService.lambdaQuery().list();
|
|
|
if (CollectionUtils.isNotEmpty(oldWorkerRec)){
|
|
|
oldWorkerRec.stream().forEach(wba->{
|
|
|
sfzens.add(wba.getIdcard());
|
|
|
mobiles.add(wba.getMobile());
|
|
|
+ workerIdCardMap.put(wba.getIdcard(),wba);
|
|
|
});
|
|
|
oldWorkerRec.clear();
|
|
|
}
|
|
@@ -1028,26 +978,48 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
for (ItfTblWangdianWxgDownload m : addRec){
|
|
|
m.setSynStatus(1);
|
|
|
uprecs.put(m.getSynReqId(),m);
|
|
|
- // 已处理过不再处理 因为这里是网点师傅会存在重复数据
|
|
|
+ /*// 已处理过不再处理 因为这里是网点师傅会存在重复数据
|
|
|
if (sfzens.contains(m.getSfzen().trim())){
|
|
|
continue;
|
|
|
}
|
|
|
// S + 手机号 作为ID主键,手机号是不能重的
|
|
|
if (mobiles.contains(m.getYddh().trim())){
|
|
|
continue;
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
// 生成对象
|
|
|
- addWorkerInfo(addWorkerRec, m, flag);
|
|
|
- sfzens.add(m.getSfzen().trim());
|
|
|
- mobiles.add(m.getYddh().trim());
|
|
|
+ Worker v = addWorkerInfo(m, flag);
|
|
|
+
|
|
|
+ // 存在修改,不存在新增
|
|
|
+ if (sfzens.contains(m.getSfzen().trim())){
|
|
|
+ // 最后修改日期比较 或 新数据为黑名单时一定要修改
|
|
|
+ if (v.getUpdateTime().compareTo(workerIdCardMap.get(v.getIdcard()).getUpdateTime())>0 ||
|
|
|
+ (v.getIsBlackList().equals(DictTypeEnum.HMD_TYPE_YES.getText()) &&
|
|
|
+ workerIdCardMap.get(m.getSfzen().trim()).getIsBlackList().equals(DictTypeEnum.HMD_TYPE_NO.getText()))){
|
|
|
+ v.setWorkerId(workerIdCardMap.get(m.getSfzen().trim()).getWorkerId());
|
|
|
+ workerIdCardMap.put(v.getIdcard(),v);
|
|
|
+ uupWorkerRec.add(v);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ sfzens.add(m.getSfzen().trim());
|
|
|
+ mobiles.add(m.getYddh().trim());
|
|
|
+ addWorkerRec.add(v);
|
|
|
+ workerIdCardMap.put(v.getIdcard(),v);
|
|
|
+ }
|
|
|
|
|
|
// 新增的插入到表
|
|
|
- if (addWorkerRec.size()>=1000){
|
|
|
+ if (addWorkerRec.size()>=500){
|
|
|
workerService.saveOrUpdateBatch(addWorkerRec);
|
|
|
log.info("本地网点维修工人员信息表新增插入了{}条数据", addWorkerRec.size());
|
|
|
addWorkerRec.clear();
|
|
|
}
|
|
|
+
|
|
|
+ // 修改的
|
|
|
+ if (uupWorkerRec.size()>=500){
|
|
|
+ workerService.updateBatchById(uupWorkerRec);
|
|
|
+ log.info("本地网点维修工人员信息表修改了{}条数据", uupWorkerRec.size());
|
|
|
+ uupWorkerRec.clear();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 新增的插入到表
|
|
@@ -1056,57 +1028,24 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
|
|
|
log.info("本地网点维修工人员信息表新增插入了{}条数据", addWorkerRec.size());
|
|
|
addWorkerRec.clear();
|
|
|
}
|
|
|
- sfzens.clear();
|
|
|
- }
|
|
|
-
|
|
|
- private void addWorkerInfo(List<ItfTblWangdianWxgDownload> addRec, List<ItfTblWangdianWxgDownload> updateRec, List<Worker> addWorkerRec) {
|
|
|
- // 获取新增的
|
|
|
- if (addRec.size()>0){
|
|
|
- // worker:师傅信息
|
|
|
- extractedWorkerAddNew(addRec, addWorkerRec);
|
|
|
-
|
|
|
- // 新增的插入到表
|
|
|
- if (addWorkerRec.size()>0){
|
|
|
- workerService.saveOrUpdateBatch(addWorkerRec);
|
|
|
- log.info("本地网点维修工人员信息表新增插入了{}条数据", addWorkerRec.size());
|
|
|
- addWorkerRec.clear();
|
|
|
- }
|
|
|
- }
|
|
|
- if (updateRec.size()>0){
|
|
|
- // worker:师傅信息
|
|
|
- extractedWorkerAddNew(updateRec, addWorkerRec);
|
|
|
|
|
|
- // 新增的插入到表
|
|
|
- if (addWorkerRec.size()>0){
|
|
|
- workerService.saveOrUpdateBatch(addWorkerRec);
|
|
|
- log.info("本地网点维修工人员信息表新增插入了{}条数据", addWorkerRec.size());
|
|
|
- addWorkerRec.clear();
|
|
|
- }
|
|
|
+ // 修改的
|
|
|
+ if (uupWorkerRec.size()>=500){
|
|
|
+ workerService.updateBatchById(uupWorkerRec);
|
|
|
+ log.info("本地网点维修工人员信息表修改了{}条数据", uupWorkerRec.size());
|
|
|
+ uupWorkerRec.clear();
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void addWorker(List<ItfTblWangdianWxgDownload> Recs) {
|
|
|
- List<Worker> addWorkerRec = new ArrayList<>();
|
|
|
- if (Recs.size()>0){
|
|
|
- // worker:师傅信息
|
|
|
- extractedWorkerAddNew(Recs, addWorkerRec);
|
|
|
-
|
|
|
- // 新增的插入到表
|
|
|
- if (addWorkerRec.size()>0){
|
|
|
- workerService.saveOrUpdateBatch(addWorkerRec);
|
|
|
- log.info("本地网点维修工人员信息表新增插入了{}条数据", addWorkerRec.size());
|
|
|
- addWorkerRec.clear();
|
|
|
- }
|
|
|
- }
|
|
|
+ sfzens.clear();
|
|
|
+ mobiles.clear();
|
|
|
+ workerIdCardMap.clear();
|
|
|
}
|
|
|
|
|
|
|
|
|
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, uprecs);
|
|
|
+ extractedWorkerAddNewInOut(Recs, flag, uprecs);
|
|
|
}
|
|
|
}
|
|
|
|