|
|
@@ -0,0 +1,135 @@
|
|
|
+package com.zfire.jiasm.syncdata.download.basedata;
|
|
|
+
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.zfire.jiasm.syncdata.data.Token;
|
|
|
+import com.zfire.jiasm.syncdata.plus.entity.Brand;
|
|
|
+import com.zfire.jiasm.syncdata.plus.entity.ItfGreeToFaDownloadTask;
|
|
|
+import com.zfire.jiasm.syncdata.plus.service.BrandService;
|
|
|
+import com.zfire.jiasm.syncdata.plus.service.ItfGreeToFaDownloadTaskService;
|
|
|
+import com.zfire.jiasm.syncdata.service.MasterDownloadService;
|
|
|
+import com.zfire.jiasm.syncdata.utils.DataUtil;
|
|
|
+import com.zfire.jiasm.syncdata.utils.HttpUtil;
|
|
|
+import com.zfire.jiasm.syncdata.utils.JSONResult;
|
|
|
+import com.zfire.jiasm.syncdata.utils.TokenCenter;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.scheduling.annotation.Scheduled;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+
|
|
|
+@Slf4j
|
|
|
+@Component
|
|
|
+public class MasterDownloadTask {
|
|
|
+ @Value("${masterbaseurl}")
|
|
|
+ private String masterbaseurl = "";
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ MasterDownloadService masterDownloadService;
|
|
|
+ @Resource
|
|
|
+ TokenCenter tokenCenter;
|
|
|
+ @Resource
|
|
|
+ ItfGreeToFaDownloadTaskService itfGreeToFaDownloadTaskService;
|
|
|
+ @Resource
|
|
|
+ BrandService brandService;
|
|
|
+
|
|
|
+
|
|
|
+ @Scheduled(fixedDelayString = "${masterdownloadrate}")
|
|
|
+ public void process() {
|
|
|
+ try {
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ // 提取品牌信息
|
|
|
+ Brand brandRec = brandService.lambdaQuery().eq(Brand::getBrand,"格力").one();
|
|
|
+ if (brandRec == null){
|
|
|
+ log.info("格力品牌信息不存在【brand】");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Token token = tokenCenter.getCurrentToken();
|
|
|
+ List<ItfGreeToFaDownloadTask> recs = new ArrayList<>();
|
|
|
+ recs = itfGreeToFaDownloadTaskService.lambdaQuery()
|
|
|
+ .eq(ItfGreeToFaDownloadTask::getNeedDownload,1)
|
|
|
+ .orderByAsc(ItfGreeToFaDownloadTask::getId).list();
|
|
|
+
|
|
|
+ for (ItfGreeToFaDownloadTask item : recs) {
|
|
|
+ int reqId =item.getId();
|
|
|
+ log.info("开始下载基础资料信息: \uF0B7{}",sdf.format(new Date()));
|
|
|
+ try {
|
|
|
+ String srcTabNames =item.getSrcTabName();
|
|
|
+ String destTabNames =item.getDestTabName();
|
|
|
+ String belongCompany=item.getBelongCompany();
|
|
|
+ String[] arySrcTabName = srcTabNames.split("\\Q|\\E");
|
|
|
+ String[] aryDestTabName = destTabNames.split("\\Q|\\E");
|
|
|
+
|
|
|
+ batchDownload(token, arySrcTabName, aryDestTabName,belongCompany,reqId,brandRec);
|
|
|
+ log.info("格力品牌基础资料信息处理完成: \uF0B7{}",sdf.format(new Date()));
|
|
|
+ } catch (Exception ex) {
|
|
|
+ log.error("执行基础资料下载任务[" + reqId + "]发生错误:"+ex.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception ex) {
|
|
|
+ log.error("ִ执行基础资料下载发生错误", ex);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void batchDownload(Token token, String[] arySrcTabName,
|
|
|
+ String[] aryDestTabName,
|
|
|
+ String belongCompany, int reqId,Brand brandRec) throws Exception {
|
|
|
+
|
|
|
+ String synTaskNo = UUID.randomUUID().toString();
|
|
|
+
|
|
|
+ for (int i = 0; i < arySrcTabName.length; i++) {
|
|
|
+ String srcTabName = arySrcTabName[i].trim();
|
|
|
+ String serviceName = DataUtil.fromDbName2ServiceName(srcTabName);
|
|
|
+ String url = masterbaseurl + serviceName + "/querylist";
|
|
|
+ Map<String, String> paramMap = new HashMap<String, String>();
|
|
|
+ if(belongCompany!=null && belongCompany.trim().length()>0) {
|
|
|
+ paramMap.put("belongCompany", belongCompany);
|
|
|
+ }
|
|
|
+ String paramJson= JSON.toJSONString(paramMap);
|
|
|
+ JSONResult jsonResult = HttpUtil.httpRequestWithToken(url, "POST", paramJson, token);
|
|
|
+ JSONArray jsonArray = (JSONArray) jsonResult.getData();
|
|
|
+ if (jsonArray != null) {
|
|
|
+ log.info("["+url+"]下载了["+jsonArray.size()+"]条数据");
|
|
|
+
|
|
|
+ if (aryDestTabName[i].equals("itf_tbl_wx_cpgz_download")){
|
|
|
+ // 维修-产品故障基表下载记录 + 故障现象(repair_bug)
|
|
|
+ masterDownloadService.addItfTblWxCpgzDownload(synTaskNo, jsonArray,brandRec);
|
|
|
+ } else if (aryDestTabName[i].equals("itf_tbl_wx_gzdm_wxxmjc_download")){
|
|
|
+ // 故障代码与维修项目基础表下载记录 OK 有故障代码 维修项目(商用空调|家用空调)
|
|
|
+ masterDownloadService.addItfTblWxGzdmWxxmjcDownload(synTaskNo, jsonArray, brandRec);
|
|
|
+ } else if (aryDestTabName[i].equals("itf_tbl_wx_wxxmjc_download")){
|
|
|
+ // 维修项目基础表下载记录 + (repair_project) + 维修项目分组取 无故障代码 维修项目(商用空调) OK
|
|
|
+ masterDownloadService.addItfTblWxWxxmjcDownload(synTaskNo, jsonArray,brandRec);
|
|
|
+ } else if (aryDestTabName[i].equals("itf_jh_azd_cause_sort_new_download")){
|
|
|
+ // 晶弘冰箱故障代码基础表下载记录 OK
|
|
|
+ masterDownloadService.addItfJhAzdCauseSortNewDownload(synTaskNo, jsonArray,brandRec);
|
|
|
+ } else if (aryDestTabName[i].equals("itf_jh_azd_cause_atter_download")){
|
|
|
+ // 晶弘冰箱维修项目基础表下载记录 + (repair_project) OK 有故障代码 维修项目(晶弘冰箱)
|
|
|
+ masterDownloadService.addItfJhAzdCauseAtterDownload(synTaskNo, jsonArray,brandRec);
|
|
|
+ } else if (aryDestTabName[i].equals("itf_tbl_wx_cpgz_xjd_download")){
|
|
|
+ // 小家电故障现象基础表下载记录 select * from itf_tbl_wx_cpgz_xjd_download;
|
|
|
+ masterDownloadService.addItfTblWxCpgzXjdDownload(synTaskNo, jsonArray,brandRec);
|
|
|
+ } else if (aryDestTabName[i].equals("itf_tbl_wx_wxxm_xjd_download")){
|
|
|
+ // 小家电维修项目基础表下载记录 + (repair_project) 这里给了小类信息 OK 维修项目(生活电器)
|
|
|
+ masterDownloadService.addItfTblWxWxxmXjdDownload(synTaskNo, jsonArray,brandRec);
|
|
|
+ }
|
|
|
+ log.info("["+url+"]插入了["+jsonArray.size()+"]条数据");
|
|
|
+ }else {
|
|
|
+ log.info("["+url+"]无数据");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ ItfGreeToFaDownloadTask up = new ItfGreeToFaDownloadTask();
|
|
|
+ up.setId(reqId);
|
|
|
+ up.setNeedDownload(0);
|
|
|
+ up.setLastDownloadTime(new Date());
|
|
|
+ itfGreeToFaDownloadTaskService.updateById(up);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|