|
@@ -18,10 +18,12 @@ import com.zfire.jiasm.syncdata.response.Geographicallocation;
|
|
|
import com.zfire.jiasm.syncdata.response.WebsitQXLB;
|
|
|
import com.zfire.jiasm.syncdata.response.WorkerUploadResponse;
|
|
|
import com.zfire.jiasm.syncdata.service.PublicService;
|
|
|
+import com.zfire.jiasm.syncdata.service.UploadWorkeCertificateService;
|
|
|
import com.zfire.jiasm.syncdata.service.UploadWorkerTOGreeService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
@@ -71,13 +73,15 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
|
|
|
InsureWorkerRecordService insureWorkerRecordService;
|
|
|
@Resource
|
|
|
WorkerCertGreeService workerCertGreeService;
|
|
|
+ @Autowired
|
|
|
+ UploadWorkeCertificateService uploadWorkeCertificateService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public void procesUploadWorker() throws Exception {
|
|
|
+ public void procesUpdateWorker() throws Exception {
|
|
|
List<OutWorkerUpload> recs = new ArrayList<>();
|
|
|
Worker worker = new Worker();
|
|
|
List<WorkerBrandAccount> workerBrandAccount = new ArrayList<>();
|
|
@@ -112,7 +116,7 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
|
|
|
}
|
|
|
|
|
|
// 获取待同步数据
|
|
|
- recs = getWorkerUploads();
|
|
|
+ recs = getWorkerUploads(0);
|
|
|
|
|
|
// 测试用
|
|
|
// recs = getWorkerUploadstest();
|
|
@@ -173,7 +177,370 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
|
|
|
* 1:身份证、2:保险,3:高空证(复审时间必填) 这三个条件必备否则无法同步
|
|
|
* 制冷证可以没有,如果填了复审时间则必填
|
|
|
*/
|
|
|
- if (checkNecessary(worker, item, workerCertificateInfo)){
|
|
|
+ if (checkNecessary(item, workerCertificateInfo)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取签约品类
|
|
|
+ if (getCategory(brand, jySignSplbList, sySignSplbList, worker, item, dot.getWebsitId())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 生成数据对象 证件
|
|
|
+ getreq(workerCertificateInfo, req, worker,dot.getWebsitWorkerId());
|
|
|
+
|
|
|
+ // 师傅所在网点状态
|
|
|
+ req.setFlag("有效");
|
|
|
+ if (worker.getStatus().equals("OFF") || dot.getBrandWorkerStatus().equals("OFF")){
|
|
|
+ req.setFlag("无效");
|
|
|
+ }
|
|
|
+
|
|
|
+ //网点未签约品类时该网点师傅信息不同步
|
|
|
+ GreeResponseHelper response = getwdqylbxx(wdqyapi,dot.getBrandWebsitId());
|
|
|
+ if (response.getStatus() == 200){
|
|
|
+ // 获取网点签约的品类信息
|
|
|
+ websitqypl = JSONObject.parseObject(response.getData().toString(), WebsitQXLB.class);
|
|
|
+ log.info("总部网点签约的品类信息{}-{}",dot.getBrandWebsitId(),JSONObject.toJSONString(websitqypl));
|
|
|
+ } else {
|
|
|
+ // 写入表备注信息
|
|
|
+ updateWorkerUploadLag(item,"获取网点签约的品类信息失败["+
|
|
|
+ dot.getBrandWebsitId()+"]-"+
|
|
|
+ (StringUtils.isEmpty(response.getMsg()) ? "":response.getMsg()));
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("平台师傅签约的品类信息[{}-{}] 家用:{} 商用:{}",
|
|
|
+ worker.getWorkerId(),dot.getWebsitId(),
|
|
|
+ JSONObject.toJSONString(jySignSplbList),JSONObject.toJSONString(sySignSplbList));
|
|
|
+
|
|
|
+ // 从网点签约的品类信息中过滤师傅的品类信息
|
|
|
+ String result = extracted(jySignSplbList, sySignSplbList, jyList, syList, websitqypl,dot.getBrandWebsitId());
|
|
|
+ if (result.length()>0){
|
|
|
+ // 写入表备注信息
|
|
|
+ updateWorkerUploadLag(item,result);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 过滤后无品类,不能上传
|
|
|
+ if (jyList.size()<1 && syList.size()<1){
|
|
|
+ // 写入表备注信息
|
|
|
+ updateWorkerUploadLag(item,"师傅签约品类过滤后不能同时为空");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 按网点过滤师傅的类别信息
|
|
|
+ req.setJySignSplbList(jyList);
|
|
|
+ req.setSySignSplbList(syList);
|
|
|
+
|
|
|
+ // 服务人员编号(不填值为新增,填值为修改)
|
|
|
+ if (StringUtils.isNotEmpty(dot.getBrandWorkerNumber())){
|
|
|
+ req.setWxgno(dot.getBrandWorkerNumber());
|
|
|
+ // 重置部分数据 以格力门店数据为准
|
|
|
+ resetParameter(wdwxgGlMap, req);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 所属网点
|
|
|
+ req.setWdno(dot.getBrandWebsitId());
|
|
|
+
|
|
|
+ // 日志
|
|
|
+ log.info("创建或修改师傅信息request:{}",JSONObject.toJSONString(req));
|
|
|
+
|
|
|
+ // 同步
|
|
|
+ syncData(dot.getId(), wxgaddapi, item, req,dot.getBrandWebsitId());
|
|
|
+
|
|
|
+ jyList.clear();
|
|
|
+ syList.clear();
|
|
|
+ }
|
|
|
+ } catch (Exception ex) {
|
|
|
+ ex.printStackTrace();
|
|
|
+ String msg ="向总部创建师傅同步失败";
|
|
|
+ if (ex.getMessage() != null){
|
|
|
+ msg = ex.getMessage();
|
|
|
+ }
|
|
|
+ if (ex.getMessage() != null && ex.getMessage().trim().length() > 255) {
|
|
|
+ msg = ex.getMessage().substring(0, 255);
|
|
|
+ }
|
|
|
+ updateWorkerUploadLag(item,msg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void procesAddCertWorker(){
|
|
|
+ List<OutWorkerUpload> recs = new ArrayList<>();
|
|
|
+ Worker worker = new Worker();
|
|
|
+ List<WorkerBrandAccount> workerBrandAccount = new ArrayList<>();
|
|
|
+ List<SignSplb> jySignSplbList = new ArrayList<>();
|
|
|
+ List<SignSplb> sySignSplbList = new ArrayList<>();
|
|
|
+ List<SignSplb> jyList = new ArrayList<>();
|
|
|
+ List<SignSplb> syList = new ArrayList<>();
|
|
|
+ WebsitQXLB websitqypl = new WebsitQXLB();
|
|
|
+ List<ItfTblWangdianPositionDownload> wdwxgGl = new ArrayList<>();
|
|
|
+ Map<String,List<ItfTblWangdianPositionDownload>> wdwxgGlMap = new HashMap<>();
|
|
|
+ Map<String,List<Worker>> workersMap = new HashMap<>();
|
|
|
+
|
|
|
+ String wxgaddapi = "/outapp/wxg/add";
|
|
|
+ String wdqyapi = "/outapp/wxg/base";
|
|
|
+
|
|
|
+ // 提取品牌信息
|
|
|
+ Brand brand = baseService.getBrand();
|
|
|
+ if (brand == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ wdwxgGl = itfTblWangdianPositionDownloadService.lambdaQuery().list();
|
|
|
+ wdwxgGlMap = wdwxgGl.stream().
|
|
|
+ collect(Collectors.groupingBy(ItfTblWangdianPositionDownload::getWxgno));
|
|
|
+
|
|
|
+ // 只提取已入驻的师傅信息
|
|
|
+ List<Worker> workers = workerService.lambdaQuery()
|
|
|
+ .eq(Worker::getStatus,"ON").list();
|
|
|
+ if (CollectionUtils.isNotEmpty(workers)){
|
|
|
+ workersMap = workers.stream().
|
|
|
+ collect(Collectors.groupingBy(Worker::getWorkerId));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取待入驻的新网点师傅数据
|
|
|
+ recs = getWorkerUploads(1);
|
|
|
+
|
|
|
+ // 测试用
|
|
|
+ // recs = getWorkerUploadstest();
|
|
|
+
|
|
|
+ for (OutWorkerUpload item:recs){
|
|
|
+ try{
|
|
|
+ // 先同步保险数据
|
|
|
+ uploadWorkeCertificateService.uploadWorkeBx(item);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ WorkUploadInfo req = new WorkUploadInfo();
|
|
|
+ WorkerCertificateInfo workerCertificateInfo = new WorkerCertificateInfo();
|
|
|
+
|
|
|
+ // 获取师傅信息 需要同步的师傅必须在平台系统中存在
|
|
|
+ if (!workersMap.containsKey(item.getWorkerId())){
|
|
|
+ // 写入表备注信息
|
|
|
+ updateWorkerUploadLag(item,"师傅尚未在平台中入驻");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ worker = workersMap.get(item.getWorkerId()).get(0);
|
|
|
+
|
|
|
+ // 查看师傅是否已选中品牌商 同步状态为有效状态
|
|
|
+ // 这里存在一个商户网点对应平台多个网点
|
|
|
+ workerBrandAccount = getWorkerBrandAccount(brand, item, worker);
|
|
|
+ if (CollectionUtils.isEmpty(workerBrandAccount)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 格力一个师傅最多三个有效网点超3个网点不能同步
|
|
|
+ if (checkWebsitSum(workerBrandAccount,item)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 按网点同步
|
|
|
+
|
|
|
+ for (WorkerBrandAccount dot: workerBrandAccount){
|
|
|
+ // 找出指定网点 三方网点与平台网点
|
|
|
+ if (!(dot.getBrandWebsitId().equals(item.getBrandWebsitId()) &&
|
|
|
+ dot.getWebsitId().equals(item.getWebsitId()))){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 必填参数 省份-城市-区县-乡镇 找一个即可
|
|
|
+ if (getaddres(item, req, dot)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 提取师傅证件信息,未同步时不处理
|
|
|
+ if (getCertificateInfo(workerCertificateInfo, worker.getWorkerId(),dot)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 必要条件必须满足,否则不进行数据上传动作 身份证、高空证、保险证
|
|
|
+ * 师傅信息同步到总部的必要条件:
|
|
|
+ * 1:身份证、2:保险,3:高空证(复审时间必填) 这三个条件必备否则无法同步
|
|
|
+ * 制冷证可以没有,如果填了复审时间则必填
|
|
|
+ */
|
|
|
+ if (checkNecessary(item, workerCertificateInfo)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取签约品类
|
|
|
+ if (getCategory(brand, jySignSplbList, sySignSplbList, worker, item, dot.getWebsitId())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 生成数据对象 证件
|
|
|
+ getreq(workerCertificateInfo, req, worker,dot.getWebsitWorkerId());
|
|
|
+
|
|
|
+ // 师傅所在网点状态
|
|
|
+ req.setFlag("有效");
|
|
|
+ if (worker.getStatus().equals("OFF") || dot.getBrandWorkerStatus().equals("OFF")){
|
|
|
+ req.setFlag("无效");
|
|
|
+ }
|
|
|
+
|
|
|
+ //网点未签约品类时该网点师傅信息不同步
|
|
|
+ GreeResponseHelper response = getwdqylbxx(wdqyapi,dot.getBrandWebsitId());
|
|
|
+ if (response.getStatus() == 200){
|
|
|
+ // 获取网点签约的品类信息
|
|
|
+ websitqypl = JSONObject.parseObject(response.getData().toString(), WebsitQXLB.class);
|
|
|
+ log.info("总部网点签约的品类信息{}-{}",dot.getBrandWebsitId(),JSONObject.toJSONString(websitqypl));
|
|
|
+ } else {
|
|
|
+ // 写入表备注信息
|
|
|
+ updateWorkerUploadLag(item,"获取网点签约的品类信息失败["+
|
|
|
+ dot.getBrandWebsitId()+"]-"+
|
|
|
+ (StringUtils.isEmpty(response.getMsg()) ? "":response.getMsg()));
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("平台师傅签约的品类信息[{}-{}] 家用:{} 商用:{}",
|
|
|
+ worker.getWorkerId(),dot.getWebsitId(),
|
|
|
+ JSONObject.toJSONString(jySignSplbList),JSONObject.toJSONString(sySignSplbList));
|
|
|
+
|
|
|
+ // 从网点签约的品类信息中过滤师傅的品类信息
|
|
|
+ String result = extracted(jySignSplbList, sySignSplbList, jyList, syList, websitqypl,dot.getBrandWebsitId());
|
|
|
+ if (result.length()>0){
|
|
|
+ // 写入表备注信息
|
|
|
+ updateWorkerUploadLag(item,result);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 过滤后无品类,不能上传
|
|
|
+ if (jyList.size()<1 && syList.size()<1){
|
|
|
+ // 写入表备注信息
|
|
|
+ updateWorkerUploadLag(item,"师傅签约品类过滤后不能同时为空");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 按网点过滤师傅的类别信息
|
|
|
+ req.setJySignSplbList(jyList);
|
|
|
+ req.setSySignSplbList(syList);
|
|
|
+
|
|
|
+ // 服务人员编号(不填值为新增,填值为修改)
|
|
|
+ if (StringUtils.isNotEmpty(dot.getBrandWorkerNumber())){
|
|
|
+ req.setWxgno(dot.getBrandWorkerNumber());
|
|
|
+ // 重置部分数据 以格力门店数据为准
|
|
|
+ resetParameter(wdwxgGlMap, req);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 所属网点
|
|
|
+ req.setWdno(dot.getBrandWebsitId());
|
|
|
+
|
|
|
+ // 日志
|
|
|
+ log.info("创建或修改师傅信息request:{}",JSONObject.toJSONString(req));
|
|
|
+
|
|
|
+ // 同步
|
|
|
+ syncData(dot.getId(), wxgaddapi, item, req,dot.getBrandWebsitId());
|
|
|
+
|
|
|
+ jyList.clear();
|
|
|
+ syList.clear();
|
|
|
+ }
|
|
|
+ } catch (Exception ex) {
|
|
|
+ ex.printStackTrace();
|
|
|
+ String msg ="向总部创建师傅同步失败";
|
|
|
+ if (ex.getMessage() != null){
|
|
|
+ msg = ex.getMessage();
|
|
|
+ }
|
|
|
+ if (ex.getMessage() != null && ex.getMessage().trim().length() > 255) {
|
|
|
+ msg = ex.getMessage().substring(0, 255);
|
|
|
+ }
|
|
|
+ updateWorkerUploadLag(item,msg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void procesAddWorker() throws Exception {
|
|
|
+ List<OutWorkerUpload> recs = new ArrayList<>();
|
|
|
+ Worker worker = new Worker();
|
|
|
+ List<WorkerBrandAccount> workerBrandAccount = new ArrayList<>();
|
|
|
+ List<SignSplb> jySignSplbList = new ArrayList<>();
|
|
|
+ List<SignSplb> sySignSplbList = new ArrayList<>();
|
|
|
+ List<SignSplb> jyList = new ArrayList<>();
|
|
|
+ List<SignSplb> syList = new ArrayList<>();
|
|
|
+ WebsitQXLB websitqypl = new WebsitQXLB();
|
|
|
+ List<ItfTblWangdianPositionDownload> wdwxgGl = new ArrayList<>();
|
|
|
+ Map<String,List<ItfTblWangdianPositionDownload>> wdwxgGlMap = new HashMap<>();
|
|
|
+ Map<String,List<Worker>> workersMap = new HashMap<>();
|
|
|
+
|
|
|
+ String wxgaddapi = "/outapp/wxg/add";
|
|
|
+ String wdqyapi = "/outapp/wxg/base";
|
|
|
+
|
|
|
+ // 提取品牌信息
|
|
|
+ Brand brand = baseService.getBrand();
|
|
|
+ if (brand == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ wdwxgGl = itfTblWangdianPositionDownloadService.lambdaQuery().list();
|
|
|
+ wdwxgGlMap = wdwxgGl.stream().
|
|
|
+ collect(Collectors.groupingBy(ItfTblWangdianPositionDownload::getWxgno));
|
|
|
+
|
|
|
+ // 只提取已入驻的师傅信息
|
|
|
+ List<Worker> workers = workerService.lambdaQuery()
|
|
|
+ .eq(Worker::getStatus,"ON").list();
|
|
|
+ if (CollectionUtils.isNotEmpty(workers)){
|
|
|
+ workersMap = workers.stream().
|
|
|
+ collect(Collectors.groupingBy(Worker::getWorkerId));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取待入验的新网点师傅数据
|
|
|
+ recs = getWorkerUploads(1);
|
|
|
+
|
|
|
+ // 测试用
|
|
|
+ // recs = getWorkerUploadstest();
|
|
|
+
|
|
|
+ for (OutWorkerUpload item:recs){
|
|
|
+ try{
|
|
|
+ WorkUploadInfo req = new WorkUploadInfo();
|
|
|
+ WorkerCertificateInfo workerCertificateInfo = new WorkerCertificateInfo();
|
|
|
+
|
|
|
+ // 获取师傅信息 需要同步的师傅必须在平台系统中存在
|
|
|
+ if (!workersMap.containsKey(item.getWorkerId())){
|
|
|
+ // 写入表备注信息
|
|
|
+ updateWorkerUploadLag(item,"师傅尚未在平台中入驻");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ worker = workersMap.get(item.getWorkerId()).get(0);
|
|
|
+
|
|
|
+ // 查看师傅是否已选中品牌商 同步状态为有效状态
|
|
|
+ // 这里存在一个商户网点对应平台多个网点
|
|
|
+ workerBrandAccount = getWorkerBrandAccount(brand, item, worker);
|
|
|
+ if (CollectionUtils.isEmpty(workerBrandAccount)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 格力一个师傅最多三个有效网点超3个网点不能同步
|
|
|
+ if (checkWebsitSum(workerBrandAccount,item)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 按网点同步
|
|
|
+
|
|
|
+ for (WorkerBrandAccount dot: workerBrandAccount){
|
|
|
+ // 找出指定网点 三方网点与平台网点
|
|
|
+ if (!(dot.getBrandWebsitId().equals(item.getBrandWebsitId()) &&
|
|
|
+ dot.getWebsitId().equals(item.getWebsitId()))){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 必填参数 省份-城市-区县-乡镇 找一个即可
|
|
|
+ if (getaddres(item, req, dot)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 提取师傅证件信息,未同步时不处理
|
|
|
+ if (getCertificateInfo(workerCertificateInfo, worker.getWorkerId(),dot)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 必要条件必须满足,否则不进行数据上传动作 身份证、高空证、保险证
|
|
|
+ * 师傅信息同步到总部的必要条件:
|
|
|
+ * 1:身份证、2:保险,3:高空证(复审时间必填) 这三个条件必备否则无法同步
|
|
|
+ * 制冷证可以没有,如果填了复审时间则必填
|
|
|
+ */
|
|
|
+ if (checkNecessary(item, workerCertificateInfo)){
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -539,7 +906,7 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- private Boolean checkNecessary(Worker worker, OutWorkerUpload item, WorkerCertificateInfo workerCertificateInfo) {
|
|
|
+ private Boolean checkNecessary(OutWorkerUpload item, WorkerCertificateInfo workerCertificateInfo) {
|
|
|
if (StringUtils.isEmpty(workerCertificateInfo.getSfzbh())){
|
|
|
updateWorkerUploadLag(item,"师傅缺失身份证信息,不上传");
|
|
|
return Boolean.TRUE;
|
|
@@ -1504,7 +1871,6 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
|
|
|
return workerBrandAccount;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
private Boolean checkWebsitSum(List<WorkerBrandAccount> workerBrandAccount, OutWorkerUpload item){
|
|
|
// 格力一个师傅最多三个有效网点超3个网点不能同步
|
|
|
Integer sum = 0;
|
|
@@ -1534,13 +1900,14 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
|
|
|
return worker;
|
|
|
}
|
|
|
|
|
|
- private List<OutWorkerUpload> getWorkerUploads() {
|
|
|
+ private List<OutWorkerUpload> getWorkerUploads(Integer syncType) {
|
|
|
// 同步标志-synStatus(0:待同步;1:已同步;99:同步失败)
|
|
|
List<OutWorkerUpload> recs;
|
|
|
LambdaQueryWrapper<OutWorkerUpload> queryWrapper = new LambdaQueryWrapper<OutWorkerUpload>()
|
|
|
.eq(OutWorkerUpload::getSyncStatus,0)
|
|
|
+ .eq(OutWorkerUpload::getSyncType,syncType)
|
|
|
.or(wrapper->wrapper.eq(OutWorkerUpload::getSyncStatus,99)
|
|
|
- .le(OutWorkerUpload::getSyncTimes,10));
|
|
|
+ .le(OutWorkerUpload::getSyncTimes,100));
|
|
|
recs = outWorkerUploadService.list(queryWrapper);
|
|
|
return recs;
|
|
|
}
|