lfx пре 1 година
родитељ
комит
672ccac446

+ 1 - 1
mjava-aiwei/src/main/java/com/malk/aiwei/controller/TBxYDController.java

@@ -129,7 +129,7 @@ public class TBxYDController {
 
         // prd 618 通过任务扩展按钮变更情况, 提交后再触发审批回写
         if (UtilMap.getBoolean(data, "isChange")) {
-            awClint.changeApprove(UtilMap.getString(data, "taskId"), UtilMap.getString(data, "formInstId"));
+            awClint.changeApprove(UtilMap.getString(data, "taskId"), UtilMap.getString(data, "formInstId"), UtilMap.getString(data, "title"));
         }
         return McR.success();
     }

+ 3 - 0
mjava-aiwei/src/main/java/com/malk/aiwei/server/AWServer.java

@@ -25,6 +25,9 @@ public class AWServer {
     public static final String TASK_CHECK_LINK = "技术检查项";
     public static final String TASK_CHECK_STATUS = "技术检查项检查状态";
 
+    // prd 7.17 技术检查项确认状态
+    public static final String TASK_CHECK_LINK_OK = "技术检查确认";
+
     public static final String TASK_APPROVE_ATTACHMENT = "交付件";
     public static final String TASK_APPROVE_VERSION = "交付件版本";
     public static final String TASK_APPROVE_LINK = "交付件审批流程";

+ 1 - 1
mjava-aiwei/src/main/java/com/malk/aiwei/service/AWClint.java

@@ -15,7 +15,7 @@ public interface AWClint {
     /**
      * 交付物审批变更发起
      */
-    void changeApprove(String taskId, String instanceId);
+    void changeApprove(String taskId, String instanceId,String title);
 
     /**
      * 交付物审批回调

+ 112 - 0
mjava-aiwei/src/main/java/com/malk/aiwei/service/impl/AWImplClient.bak

@@ -0,0 +1,112 @@
+public Map doCheck(String taskId, boolean isTask) {
+
+        log.info("检查项check, {},isTask:{}", taskId,isTask);
+        Map taskData = _getTaskFieldMap(taskId, AWServer.TASK_CODE, AWServer.TASK_CHECK_LINK, AWServer.TASK_ROLE, AWServer.TASK_STAGE, AWServer.TASK_CHECK_STATUS, AWServer.TASK_PRODUCT, AWServer.TASK_PRODUCT_VERSION);
+        Map rTask = UtilMap.getMap(taskData, "task");
+        String pCode = UtilMap.getString(rTask, "projectId");
+        if (AWServer.PROJECT_IGNORE_ID.contains(pCode)) {
+            return UtilMap.map("result", "模板/复用项目");
+        }
+        List<Map> taskCheckLinkList=_getCustomFieldList(taskData, AWServer.TASK_CHECK_LINK);
+        Boolean nullFlag = taskCheckLinkList==null || taskCheckLinkList.size()<1;
+        String checkLinkTitle="",checkLinkUrl="";
+        if(!nullFlag){
+            Map taskCheckLink=taskCheckLinkList.get(0);
+            checkLinkTitle = UtilMap.getString(taskCheckLink,"title");
+            checkLinkUrl = JSONObject.parseObject(UtilMap.getString(taskCheckLink,"metaString")).getString("url");
+        }
+        /// prd 7.17 预检项任务ID与当前任务ID不匹配,判定为非法, 无需重新刷新
+        if (isTask && !nullFlag) {
+            if (!(checkLinkUrl.contains("?taskId=") && !checkLinkUrl.contains(taskId))) {
+                /// prd 预检项持续维护需要重新匹配, 任务号和主数据判定为非法, 无需重新刷新
+                if (AWServer.TASK_CHECK_LINK_OK.equals(checkLinkTitle)) {
+                    return UtilMap.map("result", "链接已加载");
+                }
+            }
+        }
+        // prd 非未完成任务若是未配置预检项状态, 忽略更新
+        if (isTask && !_getWorkFlowStatusList(pCode, AWServer.WORKFLOW_INITIAL).contains(rTask.get("tfsId"))) {
+            return UtilMap.map("result", "任务已执行");
+        }
+        // prd 7.17 creatorId 创建人修改为 执行人 executorId
+        String executorId = UtilMap.getString(rTask, "executorId");
+        String tCode = UtilMap.getString(taskData, AWServer.TASK_CODE);
+
+        String resultTitle = "",resultUrl = "";
+        List<Map> tList = null;
+        Map rProject = null;
+        if (StringUtils.isBlank(tCode)) {
+            resultTitle = "无任务编码";
+        } else {
+            List<Map> pList = ydService.queryDataList_FormData(_matchFormUuid("PROJECT"), UtilMap.map("textField_lqxtykce", pCode));
+            pList = pList.stream().filter(item -> pCode.equals(item.get("textField_lqxtykce"))).collect(Collectors.toList());
+            if (pList.size() == 0) {
+                resultTitle = "未匹配到项目主数据";
+            } else {
+                rProject = pList.get(0);
+                String proType = UtilMap.getString(rProject, "textField_ltwcq7s6");
+                tList = ydService.queryFormData_all(YDParam.builder()
+                        .formUuid(_matchFormUuid("CHECK"))
+                        .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lrncf4hk, radioField_lrnddfq6", tCode, "启用")))
+                        .build());
+                // prd 多模板适配: [任务号 + 项目类型]
+                tList = tList.stream().filter(item -> tCode.equals(item.get("selectField_lrncf4hk")) && UtilMap.getList(item, "multiSelectField_ltwjre9s").contains(proType)).collect(Collectors.toList());
+                if (tList.size() == 0) {
+                    resultTitle = "未配置预检项";
+                } else {
+                    resultTitle = AWServer.TASK_CHECK_LINK_OK;
+                    resultUrl = _matchFormUuid("DOMAIN") + ydConf.getAppType() + "/workbench/" + _matchFormUuid("RECORD") + "?taskId=" + taskId;
+                }
+            }
+        }
+        log.info("检查项结果, {},{}", resultTitle,resultUrl);
+        if (isTask) {
+            if (!checkLinkTitle.equals(resultTitle)) {
+//                Map body = TBConf.assembleCustomFieldName(AWServer.TASK_CHECK_LINK, result);
+//                tbClient.updateTaskCustomField(taskId, tbConf.getOperatorId(), body);
+                // prd 7.17 技术检查项从未匹配到更新,刷新检查状态为空
+                if (resultTitle.equals(AWServer.TASK_CHECK_LINK_OK) && (checkLinkTitle.equals("未配置预检项")||checkLinkTitle.equals(""))) {
+                    Map body2 = TBConf.assembleCustomFieldName(AWServer.TASK_CHECK_STATUS);
+                    tbClient.updateTaskCustomField(taskId, tbConf.getOperatorId(), body2);
+                }
+                _updateApproveField(taskId, new ArrayList<>(), resultUrl, resultTitle, "待提交", AWServer.TASK_CHECK_LINK);
+            }
+            // prd 未配置预检项更新为已检查, 避免完成任务完成触发必填校验 [ppExt 避免重复写入, 重复写入TB会重复记录日志
+            if (!resultTitle.equals(AWServer.TASK_CHECK_LINK_OK) && !taskData.get(AWServer.TASK_CHECK_STATUS).equals("已检查")) {
+                Map body = TBConf.assembleCustomFieldName(AWServer.TASK_CHECK_STATUS, "已检查");
+                tbClient.updateTaskCustomField(taskId, tbConf.getOperatorId(), body);
+            }
+            return UtilMap.map("result", resultTitle.equals(AWServer.TASK_CHECK_LINK_OK)?resultUrl:resultTitle);
+        }
+        // prd 7.17 添加执行人为空校验
+        McException.assertAccessException(StringUtils.isBlank(executorId), "执行人不能为空!");
+        McException.assertAccessException(!resultTitle.equals("技术检查确认"), resultTitle);
+
+        Map formData = UtilMap.map("selectField_lqxuswzd, textField_lrndwu00, textField_lr3dlwsa, textField_lr3er4qb", tCode, pCode, taskId, executorId);
+        // 项目信息
+        formData.putAll(UtilMap.map("selectField_lqxuswze, textField_lrndwu07, textField_lqxuc9m4", UtilMap.getString(rProject, "textField_lrj7vnxb"), UtilMap.getString(rProject, "textareaField_lrj7vnxl"), UtilMap.getString(rProject, "textField_lqxtykcd")));
+        // 任务信息 [TBManager 操作]
+        Map<String, String> extra = (Map) tbClient.idMapQuery(executorId, "dingTalk-user", ddConf.getCorpId()).get(0).get("extra");
+        // ppExt: TB映射钉钉信息仅返回 userId, 人员组件返回前端展示需要 name. 通过页面公式临时自动加载, 可通过TB接口或钉钉用户接口查询
+        formData.putAll(UtilMap.map("textField_lrndwu09, textField_lrndwu0a, textField_lrndwu0b, employeeField_lrndwu0e, textField_lvbrueqs, textField_lvbrueqt", rTask.get("content"), taskData.get(AWServer.TASK_STAGE), taskData.get(AWServer.TASK_ROLE), Arrays.asList(UtilMap.map("value, name", extra.get("userId"), extra.get("userId"))), taskData.get(AWServer.TASK_PRODUCT), taskData.get(AWServer.TASK_PRODUCT_VERSION)));
+        // 返回检查项
+        formData.put("tableField_lqxxgj4s", tList.stream().map(item -> {
+            item.put("associationFormField_lrrnem5r", YDConf.associationForm(ydConf.getAppType(), _matchFormUuid("CHECK"), UtilMap.getString(item, "instanceId"), UtilMap.getString(item, "textField_lrnd3h0r"), "", false));
+            return item;
+        }).collect(Collectors.toList()));
+        formData.put("userId",extra.get("userId"));// prd 7.17 技术检查项需要匹配userId
+        return formData;
+    }
+
+
+    public void checked(Map data) {
+
+            log.info("检查项回调, {}", data);
+            String title = UtilMap.getString(data, "title");
+            Map body = TBConf.assembleCustomFieldName(AWServer.TASK_CHECK_STATUS, "已检查");
+            tbClient.updateTaskCustomField(String.valueOf(data.get("taskId")), tbConf.getOperatorId(), body);
+            String result = _matchFormUuid("DOMAIN") + ydConf.getAppType() + "/formDetail?formInstId=" + data.get("formInstId");
+            Map body2 = TBConf.assembleCustomFieldName(AWServer.TASK_CHECK_LINK, result);
+            tbClient.updateTaskCustomField(String.valueOf(data.get("taskId")), tbConf.getOperatorId(), body2);
+            _updateApproveField(UtilMap.getString(data, "taskId"), new ArrayList<>(), result, title, "已提交", AWServer.TASK_CHECK_LINK);
+        }

+ 46 - 25
mjava-aiwei/src/main/java/com/malk/aiwei/service/impl/AWImplClient.java

@@ -2,6 +2,7 @@ package com.malk.aiwei.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
 import com.malk.aiwei.server.AWServer;
 import com.malk.aiwei.service.AWClint;
@@ -90,6 +91,7 @@ public class AWImplClient implements AWClint {
 
         log.info("交付物审批, {}", data);
         String taskId = UtilMap.getString(data, "taskId");
+        String title = UtilMap.getString(data, "title");
 
         // prd 618 通过任务扩展按钮触发, 接口仅需传递 taskId 即可, 相关信息直接从任务详情取值
         Map taskData = _getTaskFieldMap(taskId, AWServer.TASK_CODE, AWServer.TASK_APPROVE_ATTACHMENT, AWServer.TASK_APPROVE_DESC, AWServer.TASK_PRODUCT, AWServer.TASK_PRODUCT_VERSION, AWServer.TASK_CHECK_STATUS);
@@ -126,6 +128,7 @@ public class AWImplClient implements AWClint {
             tbClient.updateTaskFlowStatus(taskId, tbConf.getOperatorId(), workFlowId, "完成");
             Map body = TBConf.assembleCustomFieldName(AWServer.TASK_APPROVE_LINK, "非交付件任务");
             tbClient.updateTaskCustomField(taskId, tbConf.getOperatorId(), body);
+//            _updateApproveField(taskId, new ArrayList<>(), "", "非交付件任务", "已终止", AWServer.TASK_APPROVE_LINK);
             return null;
         }
         // ppExt: TB有卡控, 校验交付物不能为空, 同时兼容非交付件任务类型
@@ -246,7 +249,7 @@ public class AWImplClient implements AWClint {
         if (!isChange) {
             Map body = TBConf.assembleCustomFieldName(AWServer.TASK_APPROVE_LINK, result);
             tbClient.updateTaskCustomField(taskId, tbConf.getOperatorId(), body);
-            //_updateApproveField(taskId, new ArrayList<>(), result, title, "审批中", AWServer.TASK_APPROVE_LINK);
+//            _updateApproveField(taskId, new ArrayList<>(), result, title, "审批中", AWServer.TASK_APPROVE_LINK);
         }
         return UtilMap.map("result, userId", result, userId);
     }
@@ -255,7 +258,7 @@ public class AWImplClient implements AWClint {
      * 交付物审批变更发起
      */
     @Override
-    public void changeApprove(String taskId, String instanceId) {
+    public void changeApprove(String taskId, String instanceId,String title) {
         String result = _matchFormUuid("DOMAIN") + ydConf.getAppType() + "/processDetail?procInsId=" + instanceId;
         Map body = TBConf.assembleCustomFieldName(AWServer.TASK_APPROVE_LINK, result);
         tbClient.updateTaskCustomField(taskId, tbConf.getOperatorId(), body);
@@ -263,7 +266,7 @@ public class AWImplClient implements AWClint {
         // todo tb回写多的审批记录仅显示第一个, 建议保存最后一个, 审批回调时更新, 避免匹配对应数据问题
 //        Map taskData = _getTaskFieldMap(taskId, AWServer.TASK_APPROVE_LINK);
 //        List<Map> approves = _getCustomFieldList(taskData, AWServer.TASK_APPROVE_LINK);
-//        _updateApproveField(taskId, new ArrayList<>(), result, title, "审批中", AWServer.TASK_APPROVE_LINK);
+        _updateApproveField(taskId, new ArrayList<>(), result, title, "审批中", AWServer.TASK_APPROVE_LINK);
 
         Map body2 = TBConf.assembleCustomFieldName(AWServer.TASK_APPROVE_STATE, "变更中");
         tbClient.updateTaskCustomField(taskId, tbConf.getOperatorId(), body2);
@@ -279,6 +282,8 @@ public class AWImplClient implements AWClint {
         String type = UtilMap.getString(data, "type");
         String projectId = UtilMap.getString(data, "projectId");
         String taskId = UtilMap.getString(data, "taskId");
+        String title = UtilMap.getString(data, "title");
+        String instanceId = UtilMap.getString(data, "instanceId");
         String result = UtilMap.getString(data, "approve").contains("通过") ? "完成" : "拒绝";
         if ("变更".equals(type)) {
             Map body = TBConf.assembleCustomFieldName(AWServer.TASK_APPROVE_STATE, "已变更");
@@ -293,8 +298,8 @@ public class AWImplClient implements AWClint {
             String workFlowId = _getWorkFlowStatus(projectId, result);
             tbClient.updateTaskFlowStatus(taskId, tbConf.getOperatorId(), workFlowId, result);
         }
-//        String url = _matchFormUuid("DOMAIN") + ydConf.getAppType() + "/processDetail?procInsId=" + instanceId;
-//        _updateApproveField(taskId, new ArrayList<>(), url, title, result, AWServer.TASK_APPROVE_LINK);
+        String url = _matchFormUuid("DOMAIN") + ydConf.getAppType() + "/processDetail?procInsId=" + instanceId;
+        _updateApproveField(taskId, new ArrayList<>(), url, title, result, AWServer.TASK_APPROVE_LINK);
     }
 
     /**
@@ -307,7 +312,6 @@ public class AWImplClient implements AWClint {
      * 3. 标题字段直接赋值, 不能添加自定义值, 如标记颜色, 否则点击连接诶后任务上该字段会消失: meta.put("title", UtilMap.map("color, value", "BLUE", "xxx"))
      */
     private void _updateApproveField(String taskId, List<Map> approves, String url, String title, String subTitle, String fieldName) {
-
         Map colors = UtilMap.map("待提交, 已提交, 审批中, 已通过, 已拒绝, 已终止", "ORANGE, BLUE, BLUE, GREEN, RED, RED");
         Map meta = UtilMap.map("instanceId, url", taskId, url);
         meta.put("icon", UtilMap.map("value, color, bgColor", "Icon_Approve, WHITE, ORANGE"));
@@ -425,7 +429,7 @@ public class AWImplClient implements AWClint {
     @Override
     public Map doCheck(String taskId, boolean isTask) {
 
-        log.info("检查项check, {}", taskId);
+        log.info("检查项check, {},isTask:{}", taskId,isTask);
         Map taskData = _getTaskFieldMap(taskId, AWServer.TASK_CODE, AWServer.TASK_CHECK_LINK, AWServer.TASK_ROLE, AWServer.TASK_STAGE, AWServer.TASK_CHECK_STATUS, AWServer.TASK_PRODUCT, AWServer.TASK_PRODUCT_VERSION);
         Map rTask = UtilMap.getMap(taskData, "task");
         String pCode = UtilMap.getString(rTask, "projectId");
@@ -433,27 +437,33 @@ public class AWImplClient implements AWClint {
             return UtilMap.map("result", "模板/复用项目");
         }
         String checkLink = UtilMap.getString(taskData, AWServer.TASK_CHECK_LINK);
-        /// prd 预检项持续维护需要重新匹配, 任务号和主数据判定为非法, 无需重新刷新
-        if (isTask && (StringUtils.isNotBlank(checkLink) && !"未配置预检项".equals(checkLink))) {
-            return UtilMap.map("result", "链接已加载");
+        /// prd 7.17 预检项任务ID与当前任务ID不匹配,判定为非法, 无需重新刷新
+        if (isTask) {
+            if (!(checkLink.contains("?taskId=") && !checkLink.contains(taskId))) {
+                /// prd 预检项持续维护需要重新匹配, 任务号和主数据判定为非法, 无需重新刷新
+                if (StringUtils.isNotBlank(checkLink) && AWServer.TASK_CHECK_LINK_OK.equals(checkLink)) {
+                    return UtilMap.map("result", "链接已加载");
+                }
+            }
         }
         // prd 非未完成任务若是未配置预检项状态, 忽略更新
         if (isTask && !_getWorkFlowStatusList(pCode, AWServer.WORKFLOW_INITIAL).contains(rTask.get("tfsId"))) {
             return UtilMap.map("result", "任务已执行");
         }
-        String creatorId = UtilMap.getString(rTask, "creatorId");
+        // prd 7.17 creatorId 创建人修改为 执行人 executorId
+        String executorId = UtilMap.getString(rTask, "executorId");
         String tCode = UtilMap.getString(taskData, AWServer.TASK_CODE);
 
-        String result = "";
+        String resultTitle = "",resultUrl = "";
         List<Map> tList = null;
         Map rProject = null;
         if (StringUtils.isBlank(tCode)) {
-            result = "无任务编码";
+            resultTitle = "无任务编码";
         } else {
             List<Map> pList = ydService.queryDataList_FormData(_matchFormUuid("PROJECT"), UtilMap.map("textField_lqxtykce", pCode));
             pList = pList.stream().filter(item -> pCode.equals(item.get("textField_lqxtykce"))).collect(Collectors.toList());
             if (pList.size() == 0) {
-                result = "未匹配到项目主数据";
+                resultTitle = "未匹配到项目主数据";
             } else {
                 rProject = pList.get(0);
                 String proType = UtilMap.getString(rProject, "textField_ltwcq7s6");
@@ -464,33 +474,42 @@ public class AWImplClient implements AWClint {
                 // prd 多模板适配: [任务号 + 项目类型]
                 tList = tList.stream().filter(item -> tCode.equals(item.get("selectField_lrncf4hk")) && UtilMap.getList(item, "multiSelectField_ltwjre9s").contains(proType)).collect(Collectors.toList());
                 if (tList.size() == 0) {
-                    result = "未配置预检项";
+                    resultTitle = "未配置预检项";
                 } else {
-                    result = _matchFormUuid("DOMAIN") + ydConf.getAppType() + "/workbench/" + _matchFormUuid("RECORD") + "?taskId=" + taskId;
+                    resultTitle = AWServer.TASK_CHECK_LINK_OK;
+                    resultUrl = _matchFormUuid("DOMAIN") + ydConf.getAppType() + "/workbench/" + _matchFormUuid("RECORD") + "?taskId=" + taskId;
                 }
             }
         }
-        log.info("检查项结果, {}", result);
+        log.info("检查项结果, {},{}", resultTitle,resultUrl);
+        String result=resultTitle.equals(AWServer.TASK_CHECK_LINK_OK)?resultUrl:resultTitle;
         if (isTask) {
-            if (!checkLink.equals(result)) {
+            if (!result.equals(checkLink)) {
                 Map body = TBConf.assembleCustomFieldName(AWServer.TASK_CHECK_LINK, result);
                 tbClient.updateTaskCustomField(taskId, tbConf.getOperatorId(), body);
-                //_updateApproveField(taskId, new ArrayList<>(), result, "技术检查确认", "待提交", AWServer.TASK_CHECK_LINK);
+                // prd 7.17 技术检查项从未匹配到更新,刷新检查状态为空
+                if (resultTitle.equals(AWServer.TASK_CHECK_LINK_OK) && (checkLink.equals("未配置预检项")||checkLink.equals(""))) {
+                    Map body2 = TBConf.assembleCustomFieldName(AWServer.TASK_CHECK_STATUS);
+                    tbClient.updateTaskCustomField(taskId, tbConf.getOperatorId(), body2);
+                }
+//                _updateApproveField(taskId, new ArrayList<>(), resultUrl, resultTitle, "待提交", AWServer.TASK_CHECK_LINK);
             }
             // prd 未配置预检项更新为已检查, 避免完成任务完成触发必填校验 [ppExt 避免重复写入, 重复写入TB会重复记录日志
-            if (!result.startsWith("http") && !taskData.get(AWServer.TASK_CHECK_STATUS).equals("已检查")) {
+            if (!resultTitle.equals(AWServer.TASK_CHECK_LINK_OK) && !taskData.get(AWServer.TASK_CHECK_STATUS).equals("已检查")) {
                 Map body = TBConf.assembleCustomFieldName(AWServer.TASK_CHECK_STATUS, "已检查");
                 tbClient.updateTaskCustomField(taskId, tbConf.getOperatorId(), body);
             }
-            return UtilMap.map("result", result);
+            return UtilMap.map("result", resultTitle.equals(AWServer.TASK_CHECK_LINK_OK)?resultUrl:resultTitle);
         }
-        McException.assertAccessException(!result.startsWith("https://"), result);
+        // prd 7.17 添加执行人为空校验
+        McException.assertAccessException(StringUtils.isBlank(executorId), "执行人不能为空!");
+        McException.assertAccessException(!resultTitle.equals("技术检查确认"), resultTitle);
 
-        Map formData = UtilMap.map("selectField_lqxuswzd, textField_lrndwu00, textField_lr3dlwsa, textField_lr3er4qb", tCode, pCode, taskId, creatorId);
+        Map formData = UtilMap.map("selectField_lqxuswzd, textField_lrndwu00, textField_lr3dlwsa, textField_lr3er4qb", tCode, pCode, taskId, executorId);
         // 项目信息
         formData.putAll(UtilMap.map("selectField_lqxuswze, textField_lrndwu07, textField_lqxuc9m4", UtilMap.getString(rProject, "textField_lrj7vnxb"), UtilMap.getString(rProject, "textareaField_lrj7vnxl"), UtilMap.getString(rProject, "textField_lqxtykcd")));
         // 任务信息 [TBManager 操作]
-        Map<String, String> extra = (Map) tbClient.idMapQuery(creatorId, "dingTalk-user", ddConf.getCorpId()).get(0).get("extra");
+        Map<String, String> extra = (Map) tbClient.idMapQuery(executorId, "dingTalk-user", ddConf.getCorpId()).get(0).get("extra");
         // ppExt: TB映射钉钉信息仅返回 userId, 人员组件返回前端展示需要 name. 通过页面公式临时自动加载, 可通过TB接口或钉钉用户接口查询
         formData.putAll(UtilMap.map("textField_lrndwu09, textField_lrndwu0a, textField_lrndwu0b, employeeField_lrndwu0e, textField_lvbrueqs, textField_lvbrueqt", rTask.get("content"), taskData.get(AWServer.TASK_STAGE), taskData.get(AWServer.TASK_ROLE), Arrays.asList(UtilMap.map("value, name", extra.get("userId"), extra.get("userId"))), taskData.get(AWServer.TASK_PRODUCT), taskData.get(AWServer.TASK_PRODUCT_VERSION)));
         // 返回检查项
@@ -498,6 +517,7 @@ public class AWImplClient implements AWClint {
             item.put("associationFormField_lrrnem5r", YDConf.associationForm(ydConf.getAppType(), _matchFormUuid("CHECK"), UtilMap.getString(item, "instanceId"), UtilMap.getString(item, "textField_lrnd3h0r"), "", false));
             return item;
         }).collect(Collectors.toList()));
+        formData.put("userId",extra.get("userId"));// prd 7.17 技术检查项需要匹配userId
         return formData;
     }
 
@@ -508,6 +528,7 @@ public class AWImplClient implements AWClint {
     public void checked(Map data) {
 
         log.info("检查项回调, {}", data);
+        String title = UtilMap.getString(data, "title");
         Map body = TBConf.assembleCustomFieldName(AWServer.TASK_CHECK_STATUS, "已检查");
         tbClient.updateTaskCustomField(String.valueOf(data.get("taskId")), tbConf.getOperatorId(), body);
         String result = _matchFormUuid("DOMAIN") + ydConf.getAppType() + "/formDetail?formInstId=" + data.get("formInstId");
@@ -1630,7 +1651,7 @@ public class AWImplClient implements AWClint {
 //        checkList = new ArrayList<>();
 //        String url = "https://kabom7.aliwork.com/APP_H7WUJTKB448F9IBDC6C4/processDetail?formUuid=FORM-FBC1A390B4C348089020C763938A6F54RUNY&procInsId=5bd917c4-b23c-4f2f-ba4b-cef533118cdf&isAdmin=true&navConfig.layout=1180";
         String url = "https://kabom7.aliwork.com/APP_H7WUJTKB448F9IBDC6C4/submission/FORM-7B63BB056145452F8BC0A2C52492DE00QVBH?taskId=65addc57055591ee7d17d807";
-        _updateApproveField(taskId, checkList, url, "预检项确认", "待提交", AWServer.TASK_APPROVE_LINK);
+        _updateApproveField(taskId, checkList, url, "技术检查项确认", "待提交", AWServer.TASK_APPROVE_LINK);
 
     }