Просмотр исходного кода

新增定时任务,更新初次询价日期

lvjs недель назад: 3
Родитель
Сommit
e48debb30b

+ 63 - 0
src/main/java/com/malk/eastar/schedule/ScheduleTask4.java

@@ -11,6 +11,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -111,4 +112,66 @@ public class ScheduleTask4 {
 
     }
 
+    /**
+     * 更新初次询价日期
+     */
+//    @Scheduled(cron = "0 46 11 * * ?")
+    public void updateRfqDate20260714() {
+        //获取全部询价与报价记录
+        List<Map> rfqRecordList = new ArrayList<>();
+        try {
+            rfqRecordList = yidaService.queryLtcRFQData();
+            log.info("询价与报价记录数量="+rfqRecordList.size());
+        } catch (Exception e) {
+            log.error("查询询价与报价记录异常",e);
+        }
+
+        //按项目编号提取最早报价日期
+        Map<String,Long> projectCode2EarliestQuoteDate = new HashMap<>();
+        String projectCode;
+        Long quoteDate;
+        for(Map rfqRecord : rfqRecordList){
+            projectCode = rfqRecord.get("projectCode").toString();
+            quoteDate = Long.parseLong(rfqRecord.get("getRfqDate").toString());
+            if(projectCode2EarliestQuoteDate.containsKey(projectCode)){
+                if(projectCode2EarliestQuoteDate.get(projectCode) > quoteDate){
+                    projectCode2EarliestQuoteDate.put(projectCode,quoteDate);
+                }
+            }else{
+                projectCode2EarliestQuoteDate.put(projectCode,quoteDate);
+            }
+        }
+
+        log.info("初次报价日期数量="+projectCode2EarliestQuoteDate.size());
+
+        //获取全部销售项目数据
+        List<Map> saleProjectList = new ArrayList<>();
+        try {
+            saleProjectList = yidaService.queryLtcAllSaleProjectData();
+            log.info("获取全部销售项目记录数量="+saleProjectList.size());
+        } catch (Exception e) {
+            log.error("获取全部销售项目数据异常",e);
+        }
+
+        //通过项目编号找到实例ID,更新销售项目初次询价日期
+        for(String pCode : projectCode2EarliestQuoteDate.keySet()){
+            for (int i = 0; i < saleProjectList.size(); i++) {
+                if(pCode.equals(saleProjectList.get(i).get("projectCode"))){
+                    if("否".equals(saleProjectList.get(i).get("testFlag"))){
+                        System.out.println(saleProjectList.get(i).get("formInstId").toString()+" "+projectCode2EarliestQuoteDate.get(pCode));
+                        try {
+                            yidaService.updateLtcSaleProjectRfqDate(saleProjectList.get(i).get("formInstId").toString(),projectCode2EarliestQuoteDate.get(pCode));
+                            Thread.sleep(3000);
+                        } catch (Exception e) {
+                            log.error("更新销售项目初次询价日期异常",e);
+                        }
+                    }
+                    break;
+                }
+            }
+        }
+
+        log.info("更新初次询价日期完成");
+    }
+
 }

+ 6 - 1
src/main/java/com/malk/eastar/service/YidaService.java

@@ -138,10 +138,15 @@ public interface YidaService {
     void updateSaleProjectRelatedAitableId(String formInstId, String aitableId) throws Exception;
 
     /**
-     * 更新易思达系统客户基本信息(客户公司名、业务、公海/私海、测试使用)
+     * 更新易思达系统销售项目的关联客户
      */
     void updateLtcSaleProjectRelatedCustomer(String formInstId, JSONArray customerAss) throws Exception;
 
+    /**
+     * 更新易思达系统销售项目初次询价日期
+     */
+    void updateLtcSaleProjectRfqDate(String formInstId, Long rfqDate) throws Exception;
+
     /**
      * 插入易思达系统中的一行记录(客户名册)
      */

+ 26 - 1
src/main/java/com/malk/eastar/service/impl/YidaServiceImpl.java

@@ -1112,11 +1112,12 @@ public class YidaServiceImpl implements YidaService {
             fields = JSONObject.parseObject(JSONObject.toJSONString(ltcSaleProjectRecord.get("formData")));
 
             saleProjectRecord = UtilMap.map(
-                    "formInstId, projectCode, projectName, piCode, aiTableId",
+                    "formInstId, projectCode, projectName, piCode, testFlag, aiTableId",
                     formInstId, //表单实例ID
                     fields.getString("serialNumberField_mdf997w0"), //项目编号
                     fields.getString("textField_mdf997vz"), //项目名称
                     fields.getString("textField_mhlrjdz2"), //原系统PI号
+                    fields.getString("radioField_mnppbub6"), //测试使用
                     fields.getString("textField_mno9p0lf")  //AI表格映射ID
             );
 
@@ -1900,6 +1901,30 @@ public class YidaServiceImpl implements YidaService {
         ydClient.operateData(yidaParam,YDConf.FORM_OPERATION.update);
     }
 
+    @Override
+    public void updateLtcSaleProjectRfqDate(String formInstId, Long rfqDate) throws Exception {
+        /*
+            参数定义
+         */
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String updateFormDataJson;  //更新内容
+
+        /*
+            初始化参数值
+         */
+        updateFormDataJson = JSONObject.toJSONString(UtilMap.map("dateField_mrizpls3",rfqDate));  //初次询价日期
+
+        /*
+            更新数据
+         */
+        ydParamBuilder = YDParam.builder();
+        ydParamBuilder = ydParamBuilder.formInstId(formInstId);
+        ydParamBuilder = ydParamBuilder.updateFormDataJson(updateFormDataJson);
+        yidaParam = ydParamBuilder.build();
+        ydClient.operateData(yidaParam,YDConf.FORM_OPERATION.update);
+    }
+
     @Override
     public void insertCustomerData(Map row) throws Exception {
         YDParam yidaParam;  //HTTP请求体