|
|
@@ -196,5 +196,107 @@ public class ScheduleTask3 {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 同步销售项目整体阶段
|
|
|
+ */
|
|
|
+ @Scheduled(cron = "0 0 5 * * ?")
|
|
|
+ public void syncOppotunityStage() {
|
|
|
+ //查询所有销售项目
|
|
|
+ Map params = null;
|
|
|
+ List<Map> ltcSaleProjectData = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ log.info("查询销售台账记录");
|
|
|
+ params = new HashMap<>();
|
|
|
+ ltcSaleProjectData = yidaService.queryLtcSaleProjectData(params);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("查询销售台账记录异常",e);
|
|
|
+ }
|
|
|
+ //获取所有AI表格映射ID不为空的销售项目
|
|
|
+ String aitableId;
|
|
|
+ String projectName;
|
|
|
+ String projectStage;
|
|
|
+ List<Map<String,String>> yidaProjectData = new ArrayList<>();
|
|
|
+ Map<String,String> yidaProjectRecord;
|
|
|
+ if(ltcSaleProjectData != null && !ltcSaleProjectData.isEmpty()){
|
|
|
+ for(Map saleProjectRecord : ltcSaleProjectData){
|
|
|
+ if(saleProjectRecord.get("aiTableId")!=null){
|
|
|
+ aitableId = saleProjectRecord.get("aiTableId").toString();
|
|
|
+ projectName = saleProjectRecord.get("projectName").toString();
|
|
|
+ projectStage = saleProjectRecord.get("projectStage").toString();
|
|
|
+ if("S1:线索".equals(projectStage)){
|
|
|
+ projectStage = "未来预测";
|
|
|
+ }else if("S2:商机".equals(projectStage)){
|
|
|
+ projectStage = "RFQ";
|
|
|
+ }else if("S3:已签单".equals(projectStage)){
|
|
|
+ projectStage = "已成单";
|
|
|
+ }else if("特殊:已丢单".equals(projectStage)){
|
|
|
+ projectStage = "已丢单";
|
|
|
+ }
|
|
|
+// System.out.println(aitableId+" "+projectName+" "+projectStage);
|
|
|
+ yidaProjectRecord = new HashMap<>();
|
|
|
+ yidaProjectRecord.put("aiTableId",aitableId);
|
|
|
+ yidaProjectRecord.put("projectName",projectName);
|
|
|
+ yidaProjectRecord.put("projectStage",projectStage);
|
|
|
+ yidaProjectData.add(yidaProjectRecord);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询所有AI表格已成单【表1】售前台账数据
|
|
|
+ List<Map> saleData = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ log.info("查询【表1】售前台账记录");
|
|
|
+ params = new HashMap<>();
|
|
|
+ saleData = aitableService.querySys1SaleData(params);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("查询售前台账数据异常",e);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //更新与宜搭不一致的AI表格数据
|
|
|
+ Map<String,Object> fields;
|
|
|
+ boolean isUpdate;
|
|
|
+ for(Map<String,String> ydMap : yidaProjectData){
|
|
|
+ for (int i = 0; i < saleData.size(); i++) {
|
|
|
+ if(ydMap.get("aiTableId").equals(saleData.get(i).get("aiTableId"))){
|
|
|
+ isUpdate = false;
|
|
|
+ if(!ydMap.get("projectStage").equals(saleData.get(i).get("projectStage"))){
|
|
|
+ if(StringUtils.isEmpty(saleData.get(i).get("projectStage").toString())){
|
|
|
+ isUpdate = true;
|
|
|
+ log.info("更新AI表格数据,项目名称="+ydMap.get("projectName")+",整体项目阶段:"+saleData.get(i).get("projectStage")+" -> "+ydMap.get("projectStage"));
|
|
|
+ }
|
|
|
+ if("未来预测".equals(saleData.get(i).get("projectStage").toString()) && "RFQ".equals(ydMap.get("projectStage"))){
|
|
|
+ isUpdate = true;
|
|
|
+ log.info("更新AI表格数据,项目名称="+ydMap.get("projectName")+",整体项目阶段:"+saleData.get(i).get("projectStage")+" -> "+ydMap.get("projectStage"));
|
|
|
+ }
|
|
|
+ if("RFQ".equals(saleData.get(i).get("projectStage").toString()) && "已成单".equals(ydMap.get("projectStage"))){
|
|
|
+ isUpdate = true;
|
|
|
+ log.info("更新AI表格数据,项目名称="+ydMap.get("projectName")+",整体项目阶段:"+saleData.get(i).get("projectStage")+" -> "+ydMap.get("projectStage"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(isUpdate){
|
|
|
+ aitableId = ydMap.get("aiTableId");
|
|
|
+ fields = new HashMap<>();
|
|
|
+ fields.put("LQF6OWD",ydMap.get("projectStage")); //原PI号
|
|
|
+ try {
|
|
|
+ log.info("更新销售台账记录");
|
|
|
+ log.info("aitableId="+aitableId);
|
|
|
+ log.info(JSONObject.toJSONString(fields));
|
|
|
+ aitableService.updateSys1SaleData(aitableId,fields);
|
|
|
+ Thread.sleep(3000);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("更新销售台账记录异常",e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("同步销售项目整体阶段完成");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|