2 Revize 5716cf7dc6 ... 98fb1d8839

Autor SHA1 Zpráva Datum
  fyz 98fb1d8839 免登页面客户满意度回写客户满意度征询表 před 3 měsíci
  fyz 25089ad470 项目合同续签流程调整 před 3 měsíci

+ 14 - 1
mjava-lanyun/src/main/java/com/malk/lanyun/controller/TimerController.java

@@ -7,6 +7,7 @@ import com.malk.lanyun.service.TimerService;
 import com.malk.server.common.McR;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.repository.query.Param;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.web.bind.annotation.*;
 
@@ -311,9 +312,21 @@ public class TimerController {
      */
     @PostMapping("getProjectAnalysisForContract")
     public McR getProjectAnalysisForContract(@RequestBody Map<String,Object> data){
-        log.info("开始修改单个各项目点月度经营分析");
+        log.info("项目合同续签流程抓取前12个月的项目经营分析数据");
         Map projectAnalysisForContract = timerService.getProjectAnalysisForContract(data);
         return McR.success(projectAnalysisForContract);
     }
 
+    /**
+     * 免登页面客户满意度回写客户满意度征询表
+     * @param
+     * @return
+     */
+    @PostMapping("satisfactionSurvey")
+    public McR satisfactionSurvey(@RequestParam("formInstanceId") String formInstanceId){
+        log.info("免登页面客户满意度回写客户满意度征询表");
+        timerService.satisfactionSurvey(formInstanceId);
+        return McR.success();
+    }
+
 }

+ 2 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/service/TimerService.java

@@ -137,4 +137,6 @@ public interface TimerService {
     void exportBusinessAnalysis(Map data, HttpServletResponse response, HttpServletRequest request);
 
     Map getProjectAnalysisForContract(Map<String, Object> data);
+
+    void satisfactionSurvey(String formInstanceId);
 }

+ 47 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/TimerServiceImpl.java

@@ -2067,6 +2067,53 @@ public class TimerServiceImpl implements TimerService {
 
     }
 
+    @Override
+    public void satisfactionSurvey(String formInstanceId) {
+        Map formData = ydClient.queryData(YDParam.builder()
+                        .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                        .formInstanceId(formInstanceId)
+                        .build(),
+                YDConf.FORM_QUERY.retrieve_id).getFormData();
+        YDParam ydParam = YDParam.builder().appType("APP_ERBDTFS82HOVBPL3NFH0")
+                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                .formUuid("FORM-B8BF5D90835A41D89577969E4AB47014EY2S")
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_luv1szlz",formData.get("selectField_mf5211h0"))))
+                .instanceStatus("RUNNING")
+                .build();
+        float pageSize = YDConf.PAGE_SIZE_LIMIT;
+        // 查询数据量 [todo 先查询100, 再进行分页, 避免无效查询多一次]; 2. 直接返回formData, 兼容实例ID
+        ydParam.setPageSize(1);
+        long totalCount = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_process).getTotalCount();
+        // 轮询累计数据
+        List<Map> dataList = new ArrayList<>();
+        ydParam.setCurrentPage(1);
+        ydParam.setPageSize((int) pageSize);
+        for (int page = 1; page <= Math.ceil(totalCount / pageSize); page++) {
+            ydParam.setCurrentPage(page);
+            dataList.addAll((List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_process).getData());
+        }
+        System.out.println(dataList);
+        System.out.println(dataList.size());
+
+        List<Map> mapList = (List<Map>) formData.get("tableField_lr3hv46q");
+        dataList.forEach(e->{
+            ydClient.operateData(YDParam.builder()
+                    .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                    .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                    .formInstanceId(e.get("processInstanceId").toString())
+                    .useLatestVersion(true)
+                    //服务态度 清洁品质 应急处理 其他 职务 电话 日期 手写签名 总得分 贵司对项目营运工作的总体评价 子表 是否达标
+                    .updateFormDataJson(JSON.toJSONString(UtilMap.map("textareaField_luv1szm5, textareaField_luv1szm6, textareaField_luv1szm7, " +
+                            "textareaField_luv1szm8, textField_luv1szm4, textField_luv1szm9, dateField_lrncgx89, digitalSignatureField_lth1gmpg, " +
+                                    "numberField_lrncgx78, selectField_lrncgx7j, tableField_lr3hv46q, textField_lvc64mvt",
+                            formData.get("textareaField_luv1szm5") ,formData.get("textareaField_luv1szm6"),formData.get("textareaField_luv1szm7"),formData.get("textareaField_luv1szm8"),
+                            formData.get("textField_luv1szm4"),formData.get("textField_luv1szm9"),formData.get("dateField_lrncgx89"),formData.get("digitalSignatureField_lth1gmpg"),
+                            formData.get("numberField_lrncgx78"),formData.get("selectField_lrncgx7j"),mapList,formData.get("textField_lvc64mvt"))))
+                    .build(), YDConf.FORM_OPERATION.update);
+        });
+    }
+
     //    获取本年所有月时间戳
     public List<Long> getAllTimestamp(){
         LocalDate now = LocalDate.now();

+ 1 - 1
mjava/src/main/java/com/malk/server/aliwork/YDConf.java

@@ -56,7 +56,7 @@ public class YDConf {
 
         retrieve_search_process,            // 流程列表
         retrieve_search_form,               // 表单列表
-
+        retrieve_search_process_v2,
         retrieve_search_process_id,         // 流程列表
         retrieve_search_form_id,             // 表单列表
 

+ 3 - 1
mjava/src/main/java/com/malk/service/aliwork/impl/YDClientImpl.java

@@ -121,7 +121,9 @@ public class YDClientImpl implements YDClient {
             case retrieve_search_process:
                 ddr_new = DDR_New.doPost(getRequestUrl("/processes/instances"), ddClient.initTokenHeader(), param, param);
                 break;
-
+            case retrieve_search_process_v2:
+                ddr_new = DDR_New.doPost(getRequestUrl_v2("/processes/instances"), ddClient.initTokenHeader(), param, param);
+                break;
             case retrieve_search_process_id:
                 ddr_new = DDR_New.doPost(getRequestUrl("/processes/instanceIds", ydParam.getProcessInstanceId()), ddClient.initTokenHeader(), param, param);
                 break;