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

实际收到RFQ时间更新判断是否已存在

lvjs 1 месяц назад
Родитель
Сommit
f47f08d062

+ 19 - 2
src/main/java/com/malk/eastar/controller/AitableController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -227,6 +228,16 @@ public class AitableController {
         String yidaActualOrderDate = UtilMap.getString(data, "yidaActualOrderDate"); //实际成单日期
         String yidaSaleProjectName = UtilMap.getString(data, "yidaSaleProjectName");  //项目名称
         String yidaGetRfqDate = UtilMap.getString(data, "yidaGetRfqDate"); //询报价日期或者客户跟进RFQ日期
+
+        //先查询当前修改记录
+        Map<String,String> saleRecord = new HashMap<String,String>(); //售前台账记录
+        try {
+            log.info("查询【表1】售前台账记录");
+            saleRecord = aitableService.querySys1SaleRecordByID(aitableId);
+        } catch (Exception e) {
+            log.error("查询售前台账数据异常",e);
+        }
+
         Map<String,Object> fields = new HashMap<>();
         try {
             String aiTableOrderStatus = ""; //订单状态 - S1~3【商机进度】
@@ -268,8 +279,14 @@ public class AitableController {
                 fields.put("P3XtfD8",yidaSaleProjectName);  //项目名称 - S1【基础】
                 aitableService.updateSys1SaleData(aitableId,fields);
             }else if(yidaGetRfqDate != null && !yidaGetRfqDate.isEmpty()){    //询报价日期或者客户跟进RFQ日期
-                fields.put("ZFArSI6",Long.parseLong(yidaActualOrderDate));  //实际收到RFQ日期
-                aitableService.updateSys1SaleData(aitableId,fields);
+                if(saleRecord.get("yidaGetRfqDate") != null){   //已有实际收到RFQ日期
+                    //忽略
+                    log.info("已有实际收到RFQ日期");
+                }else{
+                    fields.put("ZFArSI6",Long.parseLong(yidaGetRfqDate));  //实际收到RFQ日期
+                    log.info("更新实际收到RFQ日期");
+                    aitableService.updateSys1SaleData(aitableId,fields);
+                }
             }
             return McR.success();
         } catch (Exception e) {

+ 6 - 0
src/main/java/com/malk/eastar/service/AitableService.java

@@ -26,6 +26,12 @@ public interface AitableService {
      */
     List<Map> querySys1SaleData(Map<String,String> params) throws Exception;
 
+    /**
+     * 获取项目总表中的多行记录(售前台账)
+     * @return
+     */
+    Map querySys1SaleRecordByID(String id) throws Exception;
+
     /**
      * 根据客户名获取客户ID(客户名册)
      * @param customerName

+ 9 - 0
src/main/java/com/malk/eastar/service/MDTableClient.java

@@ -12,6 +12,15 @@ import java.util.Map;
  */
 public interface MDTableClient {
 
+    /**
+     * 查询一行记录
+     * @param baseId AI表格ID
+     * @param sheetIdOrName 数据表ID或数据表名称
+     * @param param Query参数
+     * @return
+     */
+    String queryOneRecord(String baseId, String sheetIdOrName, String recordId, Map<String,Object> param);
+
     /**
      * 查询多行记录
      * @param baseId AI表格ID

+ 44 - 0
src/main/java/com/malk/eastar/service/impl/AitableServiceImpl.java

@@ -535,6 +535,50 @@ public class AitableServiceImpl implements AitableService {
         return saleData;
     }
 
+    @Override
+    public Map querySys1SaleRecordByID(String id) throws Exception {
+        /*
+            参数定义
+         */
+        Map<String,String> saleRecord = new HashMap<String,String>(); //售前台账记录
+        String baseId; //AI表格文档ID
+        String sheetIdOrName;   //数据表ID或数据表名称
+        Map<String,Object> param = new HashMap<>(); //HTTP请求参数
+        JSONObject fields;  //字段数据
+        String yidaGetRfqDate;  //实际收到RFQ日期
+
+        /*
+            初始化参数值
+         */
+        param.put("operatorId","aj1wcWqKLXITiPDwbMIjUbAiEiE");  //操作人(Jason)的unionId
+
+
+        /*
+            项目总表 - 【表1】售前台账
+         */
+        baseId = "G53mjyd80pEr5grBfpjmMX6586zbX04v";
+        sheetIdOrName = "C1mtX34";
+
+        /*
+            获取数据
+         */
+        String queryResult = mdTableClient.queryOneRecord(baseId,sheetIdOrName,id,param);
+
+        /*
+            请求记录数据处理
+         */
+        log.info("查询结果:");
+        log.info(queryResult);
+        JSONObject queryResultJson = JSONObject.parseObject(queryResult);
+        fields = queryResultJson.getJSONObject("fields");
+        if(fields.get("实际收到RFQ日期") != null){
+            yidaGetRfqDate = fields.getString("实际收到RFQ日期");
+            saleRecord.put("yidaGetRfqDate",yidaGetRfqDate);
+        }
+
+        return saleRecord;
+    }
+
     @Override
     public String querySys1CustomerIdByName(String customerName) throws Exception {
         /*

+ 8 - 0
src/main/java/com/malk/eastar/service/impl/MDTableClientImpl.java

@@ -30,6 +30,14 @@ public class MDTableClientImpl implements MDTableClient {
         return (Map) JSONObject.parseObject(JSONObject.toJSONString(aiTableParam), Map.class);
     }
 
+    @Override
+    public String queryOneRecord(String baseId, String sheetIdOrName, String recordId, Map<String, Object> param) {
+        String url = getRequestUrl("/bases/"+baseId+"/sheets/"+sheetIdOrName+"/records/"+recordId);
+        Map header = ddClient.initTokenHeader();
+        String result = UtilHttp.doGet(url,header,param);
+        return result;
+    }
+
     @Override
     public AITableResult queryMultiRecords(String baseId, String sheetIdOrName, Map<String,Object> param, AITableParam aiTableParam) {
         String url = getRequestUrl("/bases/"+baseId+"/sheets/"+sheetIdOrName+"/records/list");