Ver Fonte

批量提交校核、检验意见通知书签名

yangguanjin há 1 dia atrás
pai
commit
baf7fb7a3d

+ 4 - 4
src/api/ApiRouter/taskOrder.ts

@@ -25,7 +25,7 @@ import {
   cancelPipeEquipmentClaim,
   getPipeTaskItemListByOrderId,
   getPipeRecheckUserPage,
-  submitPipeRecheck,
+  batchSubmitPipeRecheck,
   getPipePendingVerificationListApi,
   getPipePendingPreparationListApi,
   getPipeMajorIssuesAuditList,
@@ -45,7 +45,7 @@ import {
   cancelBoilerEquipmentClaim,
   getBoilerTaskItemListByOrderId,
   getBoilerRecheckUserPage,
-  submitBoilerRecheck,
+  batchSubmitBoilerRecheck,
   getBoilerPendingVerificationListApi,
   getBoilerPendingPreparationListApi,
   getBoilerMajorIssuesAuditList,
@@ -244,12 +244,12 @@ const map = {
   [TaskOrderFuncName.SubmitRecheck]: {
     [EquipmentType.BOILER]: {
       inputAdapter: null,
-      reqFunction: submitBoilerRecheck,
+      reqFunction: batchSubmitBoilerRecheck,
       outputAdapter: null,
     },
     [EquipmentType.PIPE]: {
       inputAdapter: null,
-      reqFunction: submitPipeRecheck,
+      reqFunction: batchSubmitPipeRecheck,
       outputAdapter: null,
     },
     [EquipmentType.CONTAINER]: {

+ 4 - 0
src/api/boiler/boilerTaskOrder.ts

@@ -69,6 +69,10 @@ export const submitBoilerRecheck = (data: any) => {
   return httpPUT('/pressure2/boiler-task-order/order-item/choice/recheck', data)
 }
 
+export const batchSubmitBoilerRecheck = (data: any) => {
+  return httpPUT('/pressure2/boiler-task-order/order-item/report/batch-recheck', data)
+}
+
 // 获取待校核分页
 export const getBoilerPendingVerificationListApi = (params: any) => {
   return httpGet('/pressure2/boiler-task-order/order-item/recheck/page', params)

+ 6 - 0
src/api/pipe/pipeTaskOrder.ts

@@ -65,6 +65,12 @@ export const submitPipeRecheck = (data: any) => {
   return httpPUT('/pressure2/pipe-task-order/order-item/choice/recheck', data)
 }
 
+export const batchSubmitPipeRecheck = (data: any) => {
+  return httpPUT('/pressure2/pipe-task-order/order-item/report/batch-recheck', data)
+}
+
+
+
 // 获取待校核分页
 export const getPipePendingVerificationListApi = (params: any) => {
   return httpGet('/pressure2/pipe-task-order/order-item/recheck/page', params)

+ 61 - 1
src/pages/equipment/detail/components/BoilerInspectProject.vue

@@ -482,6 +482,10 @@
           <text class="operate-btn-text">添加项目</text>
         </view>
 
+        <view v-if="useOnline === '1'" class="operate-btn batch-check-btn" @click="handleBatchSubmitCheck">
+          <text class="operate-btn-text">提交校核</text>
+        </view>
+
         <view v-if="useOnline !== '1'" class="operate-btn upload-btn" @click="handleCheckReport">
           <text class="operate-btn-text">上传</text>
         </view>
@@ -604,6 +608,7 @@ interface Props {
   fetchGetEquipmentDetail?: () => void
   refreshDetail?: () => void
   showSelectUserPopup?: (checkItem: CheckItem) => void
+  showBatchSelectUserPopup?: (checkItems: CheckItem[]) => void
   handleAssociationOperationManual?: (checkItem: CheckItem) => void
   showCheckProjectPopupFn?: () => void
 }
@@ -859,7 +864,14 @@ const shouldShowFeeInput = (taskStatus?: number): boolean => {
 }
 
 const shouldShowSign = (item: CheckItem): boolean => {
-  return item.taskStatus === PressureCheckerMyTaskStatus.RECORD_INPUT && item.recordNeedSign === '1'
+  return (
+    (
+      item.reportType !== PressureReportType.SUGGUESTION &&
+      item.taskStatus === PressureCheckerMyTaskStatus.RECORD_INPUT &&
+      item.recordNeedSign === '1'
+    ) ||
+    item.reportType === PressureReportType.SUGGUESTION
+  )
 }
 
 const shouldShowAttachmentUpload = (taskStatus?: number): boolean => {
@@ -1042,6 +1054,43 @@ const handleSubmitCheck = (item: CheckItem) => {
   props.showSelectUserPopup?.(item)
 }
 
+const handleBatchSubmitCheck = () => {
+  if (selectedProjects.value.length === 0) {
+    uni.showToast({ title: '请选择要提交校核的项目', icon: 'none' })
+    return
+  }
+
+  const itemArray = selectedProjects.value
+    .map((id) => props.reportList.find((i) => i.id === id))
+    .filter(Boolean) as CheckItem[]
+
+  // 校验是否可编辑
+  for (const item of itemArray) {
+    if (!isEditable(item)) {
+      uni.showToast({ title: `"${item.reportName}"不可提交校核`, icon: 'none' })
+      return
+    }
+  }
+
+  // 校验状态
+  for (const item of itemArray) {
+    if (!shouldShowSubmitCheck(item.taskStatus)) {
+      uni.showToast({ title: `"${item.reportName}"已经是记录校核状态`, icon: 'none' })
+      return
+    }
+  }
+
+  // 校验签名
+  for (const item of itemArray) {
+    if (item.isSignFunction === 1 && !item.signFunctionUrl) {
+      uni.showToast({ title: `"${item.reportName}"客户未签名,不支持提交校核`, icon: 'none' })
+      return
+    }
+  }
+
+  props.showBatchSelectUserPopup?.(itemArray)
+}
+
 const showSelectReportUserPopup = async (item: CheckItem) => {
   if (props.useOnline !== '1') {
     uni.showToast({ title: '离线模式不支持提交报告', icon: 'none' })
@@ -1135,6 +1184,13 @@ const closeSelectReportPopup = () => {
 const handleSign = (item: CheckItem) => {
   const { unitContact, unitPhone } = props.taskOrder || {}
 
+  if (item.reportType === PressureReportType.SUGGUESTION) {
+    uni.navigateTo({
+      url: `/pages/sign/index?orderId=${props.orderId}&reportId=${item.id}&templateId=${item.templateId}&type=SUGGUESTION&pushName=${unitContact}&pushPhone=${unitPhone}`,
+    })
+    return
+  }
+
   uni.navigateTo({
     url: `/pages/sign/index?orderId=${props.orderId}&reportId=${item.id}&templateId=${item.templateId}&type=RECORD_TESTER&pushName=${unitContact}&pushPhone=${unitPhone}`,
   })
@@ -1890,6 +1946,10 @@ const uploadFileAndSubmitCheckItemCallback = {
   background-color: #e6a23c;
 }
 
+.batch-check-btn {
+  background-color: rgb(47, 142, 255);
+}
+
 .upload-btn {
   background-color: rgb(47, 142, 255);
 }

+ 62 - 2
src/pages/equipment/detail/components/PipeInspectProject.vue

@@ -242,6 +242,10 @@
           <text class="operate-btn-text">添加项目</text>
         </view>
 
+        <view v-if="useOnline === '1'" class="operate-btn batch-check-btn" @click="handleBatchSubmitCheck">
+          <text class="operate-btn-text">提交校核</text>
+        </view>
+
         <view v-if="useOnline !== '1'" class="operate-btn upload-btn" @click="handleCheckReport">
           <text class="operate-btn-text">上传</text>
         </view>
@@ -363,6 +367,7 @@ interface Props {
   fetchGetEquipmentDetail?: () => void
   refreshDetail?: () => void
   showSelectUserPopup?: (checkItem: CheckItem) => void
+  showBatchSelectUserPopup?: (checkItems: CheckItem[]) => void
   handleAssociationOperationManual?: (checkItem: CheckItem) => void
   showCheckProjectPopupFn?: () => void
 }
@@ -576,7 +581,14 @@ const shouldShowFeeInput = (taskStatus?: number): boolean => {
 }
 
 const shouldShowSign = (item: CheckItem): boolean => {
-  return item.isSignFunction === 1 && item.taskStatus === PressureCheckerMyTaskStatus.RECORD_INPUT
+  return (
+    (
+      item.reportType !== PressureReportType.SUGGUESTION &&
+      item.taskStatus === PressureCheckerMyTaskStatus.RECORD_INPUT &&
+      item.recordNeedSign === '1'
+    ) ||
+    item.reportType === PressureReportType.SUGGUESTION
+  )
 }
 
 const shouldShowAttachmentUpload = (taskStatus?: number): boolean => {
@@ -759,6 +771,43 @@ const handleSubmitCheck = (item: CheckItem) => {
   props.showSelectUserPopup?.(item)
 }
 
+const handleBatchSubmitCheck = () => {
+  if (selectedProjects.value.length === 0) {
+    uni.showToast({ title: '请选择要提交校核的项目', icon: 'none' })
+    return
+  }
+
+  const itemArray = selectedProjects.value
+    .map((id) => props.reportList.find((i) => i.id === id))
+    .filter(Boolean) as CheckItem[]
+
+  // 校验是否可编辑
+  for (const item of itemArray) {
+    if (!isEditable(item)) {
+      uni.showToast({ title: `"${item.reportName}"不可提交校核`, icon: 'none' })
+      return
+    }
+  }
+
+  // 校验状态
+  for (const item of itemArray) {
+    if (!shouldShowSubmitCheck(item.taskStatus)) {
+      uni.showToast({ title: `"${item.reportName}"不在可提交校核状态`, icon: 'none' })
+      return
+    }
+  }
+
+  // 校验签名
+  for (const item of itemArray) {
+    if (item.isSignFunction === 1 && !item.signFunctionUrl) {
+      uni.showToast({ title: `"${item.reportName}"客户未签名,不支持提交校核`, icon: 'none' })
+      return
+    }
+  }
+
+  props.showBatchSelectUserPopup?.(itemArray)
+}
+
 const showSelectReportUserPopup = async (item: CheckItem) => {
   if (props.useOnline !== '1') {
     uni.showToast({ title: '离线模式不支持提交报告', icon: 'none' })
@@ -852,8 +901,15 @@ const closeSelectReportPopup = () => {
 const handleSign = (item: CheckItem) => {
   const { unitContact, unitPhone } = props.taskOrder || {}
 
+  if (item.reportType === PressureReportType.SUGGUESTION) {
+    uni.navigateTo({
+      url: `/pages/sign/index?orderId=${props.orderId}&reportId=${item.id}&templateId=${item.templateId}&type=SUGGUESTION&pushName=${unitContact}&pushPhone=${unitPhone}`,
+    })
+    return
+  }
+
   uni.navigateTo({
-    url: `/pages/sign-report/index?reportId=${item.id}&pushName=${unitContact}&pushPhone=${unitPhone}`,
+    url: `/pages/sign/index?orderId=${props.orderId}&reportId=${item.id}&templateId=${item.templateId}&type=RECORD_TESTER&pushName=${unitContact}&pushPhone=${unitPhone}`,
   })
 }
 
@@ -1559,6 +1615,10 @@ const uploadFileAndSubmitCheckItemCallback = {
   background-color: #e6a23c;
 }
 
+.batch-check-btn {
+  background-color: rgb(47, 142, 255);
+}
+
 .upload-btn {
   background-color: rgb(47, 142, 255);
 }

+ 58 - 9
src/pages/equipment/detail/equipmentDetail.vue

@@ -84,6 +84,7 @@
           :fetch-get-equipment-detail="fetchGetOnlineEquipmentDetail"
           :refresh-detail="refreshDetail"
           :show-select-user-popup="showSelectUserPopupFn"
+          :show-batch-select-user-popup="showBatchSelectUserPopupFn"
           :show-check-project-popup-fn="showCheckProjectPopup"
           :handle-association-operation-manual="handleAssociationOperationManual"
           @update-report-list="handleUpdateReportList"
@@ -97,7 +98,10 @@
       </view> -->
 
       <!-- 记录文件 Tab -->
-      <view v-if="(currentTab === 3 && isInspectMode) || (currentTab === 2 && !isInspectMode)" class="tab-content">
+      <view
+        v-if="(currentTab === 3 && isInspectMode) || (currentTab === 2 && !isInspectMode)"
+        class="tab-content"
+      >
         <OtherReport
           :refresh-detail="refreshDetail"
           :other-report-list="dataSource?.otherReportList"
@@ -171,6 +175,7 @@ import { EquipFuncName, requestFunc as equipRequestFunc } from '@/api/ApiRouter/
 import NavBar from '@/components/NavBar/NavBar.vue'
 
 import { getEquipPipeByTaskOrderId } from '@/api/pipe/pipeEquip'
+import eventBus from '@/utils/eventBus'
 
 const currentTab = ref(0)
 const dataSource = ref<any>({})
@@ -191,6 +196,7 @@ const recheckUserColumn = computed(() => [
 ])
 const currentReckUser = ref<any>(null)
 const currentCheckItem = ref<any>(null)
+const currentBatchCheckItems = ref<any[]>([])
 
 const checkProjectList = ref<any[][]>([])
 const selectTemplates = ref<Record<string, any[]>>({})
@@ -349,13 +355,13 @@ const fetchGetOnlineEquipmentDetail = async () => {
         })
         taskInfo.equipment = {
           ...equipResp.data,
-          mainCheckerUser: equipment.mainCheckerUser
+          mainCheckerUser: equipment.mainCheckerUser,
         }
       }
       // console.log('taskInfo......', taskInfo)
       dataSource.value = taskInfo
       if (reportDic?.otherReportList?.length && pageType !== 'OTHER_REPORT') {
-        if(isInspectMode.value === true) {
+        if (isInspectMode.value === true) {
           tabList.value[3] = { value: '项目文件', id: 'OTHER_REPORT' }
         } else {
           tabList.value[2] = { value: '项目文件', id: 'OTHER_REPORT' }
@@ -434,6 +440,44 @@ const showSelectUserPopupFn = async (checkItem: any) => {
 // 关闭选择校核人弹窗
 const closeSelectUserPopup = () => {
   showSelectUserPopup.value = false
+  currentBatchCheckItems.value = []
+}
+
+// 显示批量选择校核人弹窗
+const showBatchSelectUserPopupFn = async (checkItems: any[]) => {
+  if (useOnline !== '1') {
+    uni.showToast({ title: '当前网络不可用', icon: 'error' })
+    return
+  }
+
+  currentBatchCheckItems.value = checkItems
+  currentCheckItem.value = null
+
+  try {
+    const mainCheckerUserId = dataSource.value?.equipment.mainCheckerUser?.id
+
+    const userRes: any = await requestFunc(TaskOrderFuncName.RecheckUserList, equipType, {
+      nickName: '',
+      pageNo: 1,
+      pageSize: 200,
+      orderId: dataSource.value?.taskOrder?.id,
+    })
+    const checkerUserOptionList = (userRes?.data?.list || []).map((item: any) => ({
+      ...item,
+      label: item.nickname,
+      value: item.id,
+    }))
+
+    const defaultOption =
+      checkerUserOptionList.find((item: any) => item.value === mainCheckerUserId) || {}
+    currentReckUser.value = defaultOption
+    selectedUserValue.value = defaultOption.value
+    recheckUserGroupList.value = checkerUserOptionList
+
+    showSelectUserPopup.value = true
+  } catch (error) {
+    console.error('获取校核人列表失败:', error)
+  }
 }
 
 // 用户选择变化
@@ -450,21 +494,26 @@ const confirmSelectUser = async () => {
   }
 
   try {
+    uni.showLoading({ title: '提交中...' })
     const params = {
-      id: currentCheckItem.value?.id,
       recheckId: selectedUserValue.value,
+      reportList: currentBatchCheckItems.value.map((item: any) => ({ id: item.id })),
     }
-
-    // console.log('提交校核参数:.....', params)
     const result: any = await requestFunc(TaskOrderFuncName.SubmitRecheck, equipType, params)
+    uni.hideLoading()
+
     if (result?.code === 0) {
       uni.showToast({ title: '提交校核成功', icon: 'success' })
-      closeSelectUserPopup()
-      refreshDetail()
     } else {
-      uni.showToast({ title: result?.msg || '提交失败', icon: 'error' })
+      uni.showToast({
+        title: result?.msg || '提交失败',
+        icon: 'none',
+      })
     }
+    closeSelectUserPopup()
+    eventBus.emit('RefreshInspectProject')
   } catch (error: any) {
+    uni.hideLoading()
     console.error('提交校核失败:', error)
     uni.showToast({ title: error?.msg || '提交失败', icon: 'error' })
   }

+ 3 - 0
src/pages/sign/flows/index.ts

@@ -4,6 +4,7 @@ import { useJyrsFlow } from './useJyrsFlow'
 import { useAqjcFlow } from './useAqjcFlow'
 import { useZxxxFlow } from './useZxxxFlow'
 import { useRecordTesterFlow } from './useRecordTesterFlow'
+import { useSuggestionFlow } from './useSuggestionFlow'
 
 export type { RouteType, SignContext, SignFlow } from './types'
 export { titleTextMap, businessTypeMap } from './types'
@@ -24,6 +25,8 @@ export const createSignFlow = (type: RouteType, ctx: SignContext): SignFlow | nu
       return useZxxxFlow(ctx)
     case 'RECORD_TESTER':
       return useRecordTesterFlow(ctx)
+    case 'SUGGUESTION':
+      return useSuggestionFlow(ctx)
     default:
       return null
   }

+ 4 - 2
src/pages/sign/flows/types.ts

@@ -2,7 +2,7 @@ import type { Ref } from 'vue'
 import type { EquipmentType } from '@/utils/dictMap'
 
 /** 签字文件类型 */
-export type RouteType = 'FWD' | 'JYRS' | 'AQJC' | 'ZXXX' | 'RECORD_TESTER'
+export type RouteType = 'FWD' | 'JYRS' | 'AQJC' | 'ZXXX' | 'RECORD_TESTER' | 'SUGGUESTION'
 
 /**
  * 签字流程共享上下文,由页面组装后注入各类型 flow。
@@ -60,6 +60,7 @@ export const titleTextMap: Record<RouteType, string> = {
   AQJC: '安全检查记录',
   ZXXX: '重大问题线索告知',
   RECORD_TESTER: '检验记录签名',
+  SUGGUESTION: '检验意见通知书',
 }
 
 /** 业务类型编码映射 */
@@ -67,6 +68,7 @@ export const businessTypeMap: Record<RouteType, number> = {
   FWD: 100,
   JYRS: 200,
   AQJC: 300,
-  ZXXX: 400,
+  ZXXX: 500,
   RECORD_TESTER: 500,
+  SUGGUESTION: 400,
 }

+ 78 - 0
src/pages/sign/flows/useDynamicTableFlow.ts

@@ -0,0 +1,78 @@
+import { ref } from 'vue'
+import { getDynamicTbVal, saveDynamicTbVal } from '@/api/task'
+import type { SignContext, SignFlow } from './types'
+
+interface DynamicTableFlowConfig {
+  /** 页面标题 */
+  title: string
+  /** 签名按钮文案 */
+  signButtonText: string
+  /** 业务类型编码(用于推送) */
+  businessType: number
+  /** 动态表中存储签名地址的字段名 */
+  signField: string
+}
+
+/**
+ * 基于动态表报的签字流程。
+ * 试验员记录、检验意见通知书等共用此逻辑:
+ * 通过 getDynamicTbVal 加载报告数据,saveDynamicTbVal 写入签名地址。
+ */
+export function createDynamicTableFlow(
+  ctx: SignContext,
+  config: DynamicTableFlowConfig,
+): SignFlow {
+  const reportData = ref<Record<string, any>>({})
+  const reportDataInstId = ref<string>('')
+
+  const loadData = async () => {
+    const resp = await getDynamicTbVal({ 
+      refId: ctx.reportId.value,
+      templateId: ctx.templateId.value,
+    })
+    const dynamicTbInst = resp.data?.dynamicTbValRespVOList
+    reportDataInstId.value = resp.data?.dynamicTbInsRespVO?.id
+
+    const dynamicData: Record<string, any> = {}
+    for (const dataInst of dynamicTbInst) {
+      dynamicData[dataInst.colCode] = dataInst.valValue
+    }
+    reportData.value = dynamicData
+
+    // 根据签名字段判断是否已签名
+    if (dynamicData[config.signField] != null && dynamicData[config.signField] !== '') {
+      ctx.isSigned.value = '1'
+    }
+    ctx.refId.value = ctx.reportId.value
+  }
+
+  const submit = (signUrl: string) => {
+    reportData.value[config.signField] = signUrl
+    return saveDynamicTbVal({
+      params: reportData.value,
+      instId: reportDataInstId.value,
+    })
+  }
+
+  const getMoreActions = () => [{ name: '推送' }, { name: '更新' }]
+
+  const handleMoreAction = (actionName: string) => {
+    if (actionName === '推送') {
+      ctx.openPushPopup()
+    } else if (actionName === '更新') {
+      uni.showToast({ title: '不支持更新操作', icon: 'none' })
+    }
+  }
+
+  return {
+    title: config.title,
+    signButtonText: config.signButtonText,
+    businessType: config.businessType,
+    successMessage: '签名成功',
+    pushEmailDisabled: false,
+    loadData,
+    submit,
+    getMoreActions,
+    handleMoreAction,
+  }
+}

+ 4 - 50
src/pages/sign/flows/useRecordTesterFlow.ts

@@ -1,58 +1,12 @@
-import { ref } from 'vue'
-import { getDynamicTbVal, saveDynamicTbVal } from '@/api/task'
+import { createDynamicTableFlow } from './useDynamicTableFlow'
 import type { SignContext, SignFlow } from './types'
 
 /** RECORD_TESTER - 检验记录签名(试验员) */
 export function useRecordTesterFlow(ctx: SignContext): SignFlow {
-  // 动态表报数据与实例 id
-  const reportData = ref<Record<string, any>>({})
-  const reportDataInstId = ref<string>('')
-
-  const loadData = async () => {
-    const resp = await getDynamicTbVal({ refId: ctx.reportId.value })
-    const dynamicTbInst = resp.data?.dynamicTbValRespVOList
-    reportDataInstId.value = resp.data?.dynamicTbInsRespVO?.id
-
-    const dynamicData: Record<string, any> = {}
-    for (const dataInst of dynamicTbInst) {
-      dynamicData[dataInst.colCode] = dataInst.valValue
-    }
-    reportData.value = dynamicData
-
-    // 根据报告数据判断是否已签名
-    if (dynamicData['checkName_1'] != null && dynamicData['checkName_1'] !== '') {
-      ctx.isSigned.value = '1'
-    }
-    ctx.refId.value = ctx.reportId.value
-  }
-
-  const submit = (signUrl: string) => {
-    reportData.value['checkName_1'] = signUrl
-    return saveDynamicTbVal({
-      params: reportData.value,
-      instId: reportDataInstId.value,
-    })
-  }
-
-  const getMoreActions = () => [{ name: '推送' }, { name: '更新' }]
-
-  const handleMoreAction = (actionName: string) => {
-    if (actionName === '推送') {
-      ctx.openPushPopup()
-    } else if (actionName === '更新') {
-      uni.showToast({ title: '不支持更新操作', icon: 'none' })
-    }
-  }
-
-  return {
+  return createDynamicTableFlow(ctx, {
     title: '检验记录签名',
     signButtonText: '试验员签名',
     businessType: 500,
-    successMessage: '签名成功',
-    pushEmailDisabled: false,
-    loadData,
-    submit,
-    getMoreActions,
-    handleMoreAction,
-  }
+    signField: 'checkName_1',
+  })
 }

+ 12 - 0
src/pages/sign/flows/useSuggestionFlow.ts

@@ -0,0 +1,12 @@
+import { createDynamicTableFlow } from './useDynamicTableFlow'
+import type { SignContext, SignFlow } from './types'
+
+/** SUGGUESTION - 检验意见通知书签名 */
+export function useSuggestionFlow(ctx: SignContext): SignFlow {
+  return createDynamicTableFlow(ctx, {
+    title: '检验意见通知书',
+    signButtonText: '受检单位签名',
+    businessType: 400,
+    signField: 'checkUnitPerson',
+  })
+}

+ 2 - 2
src/pages/sign/flows/useZxxxFlow.ts

@@ -14,7 +14,7 @@ export function useZxxxFlow(ctx: SignContext): SignFlow {
     requestFunc(SignFuncName.SubmitSign, ctx.equipType, {
       id: ctx.orderId.value,
       signUrl,
-      businessType: 400,
+      businessType: 500,
     })
 
   const getMoreActions = () => [{ name: '小程序推送签名' }, { name: '更新' }]
@@ -30,7 +30,7 @@ export function useZxxxFlow(ctx: SignContext): SignFlow {
   return {
     title: '重大问题线索告知',
     signButtonText: '受检单位签名',
-    businessType: 400,
+    businessType: 500,
     successMessage: '已自动提交审核',
     pushEmailDisabled: true,
     loadData,