Merge remote-tracking branch 'origin/dev_third_stage' into dev_third_stage

This commit is contained in:
wangzhijiang
2022-07-13 18:37:26 +08:00
10 changed files with 247 additions and 84 deletions
@@ -1550,6 +1550,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
} }
} }
List<String> nioNumberList = paramsCollectManifestEOList.stream().map(ParamsCollectManifestEO::getNioNumber).collect(Collectors.toList());
// 单独添加 控件类型为标题的参数项 // 单独添加 控件类型为标题的参数项
if (!isSync) { // 未上报 if (!isSync) { // 未上报
List<ParamsCollectManifestEO> paramsCollectManifestEOListOfTitle = paramsCollectManifestEOMapper.listInfoOfTitle(paramsManifestId); List<ParamsCollectManifestEO> paramsCollectManifestEOListOfTitle = paramsCollectManifestEOMapper.listInfoOfTitle(paramsManifestId);
@@ -1564,10 +1565,12 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
addReportDetailEOList.add(addReportDetailEO); addReportDetailEOList.add(addReportDetailEO);
} }
} }
List<String> nioNumberListOfTitle = paramsCollectManifestEOListOfTitle.stream().map(ParamsCollectManifestEO::getNioNumber).collect(Collectors.toList());
nioNumberList.addAll(nioNumberListOfTitle);
} }
// 复制认证类别参数 // 复制认证类别参数
List<String> nioNumberList = paramsCollectManifestEOList.stream().map(ParamsCollectManifestEO::getNioNumber).collect(Collectors.toList());
List<CertCategoryParamsInfoPublishEO> certCategoryParamsInfoPublishEOS = certCategoryParamsInfoPublishEOService.queryListByVersionAndNio(paramsManifestEO.getParamsTemplateId(), paramsManifestEO.getParamsTemplatePublishVersion(), nioNumberList); List<CertCategoryParamsInfoPublishEO> certCategoryParamsInfoPublishEOS = certCategoryParamsInfoPublishEOService.queryListByVersionAndNio(paramsManifestEO.getParamsTemplateId(), paramsManifestEO.getParamsTemplatePublishVersion(), nioNumberList);
for (CertCategoryParamsInfoPublishEO ccpi : certCategoryParamsInfoPublishEOS) { for (CertCategoryParamsInfoPublishEO ccpi : certCategoryParamsInfoPublishEOS) {
ReportCertCategoryParamsInfoEO addCcpi = new ReportCertCategoryParamsInfoEO(); ReportCertCategoryParamsInfoEO addCcpi = new ReportCertCategoryParamsInfoEO();
@@ -105,6 +105,7 @@
prd.nio_number as nio_number, prd.nio_number as nio_number,
prd.params_name as params_name, prd.params_name as params_name,
prd.control_type as control_type, prd.control_type as control_type,
prd.title_default_value as title_default_value,
rccpi.params_number as cert_number, rccpi.params_number as cert_number,
rccpi.params_name as cert_params_name rccpi.params_name as cert_params_name
from params_report_detail prd from params_report_detail prd
@@ -835,6 +835,8 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
for (Map<String, Object> record1 : dataList) { for (Map<String, Object> record1 : dataList) {
String paramsCollectManifestId = (String) record1.get("id"); String paramsCollectManifestId = (String) record1.get("id");
String controlType = (String) record1.get("control_type");
String titleDefaultValue = (String) record1.get("title_default_value");
if (CollectionUtil.isNotEmpty(paramsConfigEOList)) { if (CollectionUtil.isNotEmpty(paramsConfigEOList)) {
List<OSSFile> fileList = new ArrayList<>(); List<OSSFile> fileList = new ArrayList<>();
@@ -843,6 +845,9 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
paramsConfigEOList = paramsConfigEOList.stream().filter(e->configIdList.contains(e.getId())).collect(Collectors.toList()); // 过滤出要导出的配置列 paramsConfigEOList = paramsConfigEOList.stream().filter(e->configIdList.contains(e.getId())).collect(Collectors.toList()); // 过滤出要导出的配置列
paramsConfigEOList.forEach(paramsConfigEO -> { // 参数配置 paramsConfigEOList.forEach(paramsConfigEO -> { // 参数配置
if (ControlTypeEnum.Title.getValue().equals(controlType)) {
record1.put(paramsConfigEO.getId(), titleDefaultValue);
} else {
String paramsConfigId = paramsConfigEO.getId(); String paramsConfigId = paramsConfigEO.getId();
ParamsReportConfigDataEO paramsConfigDataEO = paramsReportConfigDataEOService.queryByConfigIdAndCollectManifestId(paramsConfigId, paramsCollectManifestId); // 参数配置数据 ParamsReportConfigDataEO paramsConfigDataEO = paramsReportConfigDataEOService.queryByConfigIdAndCollectManifestId(paramsConfigId, paramsCollectManifestId); // 参数配置数据
StringBuilder configDataBuilder = new StringBuilder(); // 重新组合配置数据 StringBuilder configDataBuilder = new StringBuilder(); // 重新组合配置数据
@@ -867,16 +872,20 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
} }
record1.put(paramsConfigEO.getId(), configData); record1.put(paramsConfigEO.getId(), configData);
}
}); });
} else if ("2".equals(paramsReportDetailVO.getCombineFlag())) { // 合并 } else if ("2".equals(paramsReportDetailVO.getCombineFlag())) { // 合并
String configData = ""; String configData = "";
if (ControlTypeEnum.Title.getValue().equals(controlType)) {
record1.put("params_value", titleDefaultValue);
} else {
List<ParamsReportConfigDataEO> paramsReportConfigDataEOS = paramsReportConfigDataEOService.queryByConfigIdListAndCollectManifestId(configIdList, paramsCollectManifestId); List<ParamsReportConfigDataEO> paramsReportConfigDataEOS = paramsReportConfigDataEOService.queryByConfigIdListAndCollectManifestId(configIdList, paramsCollectManifestId);
String textDatas = paramsReportConfigDataEOS.stream().filter(e->StringUtils.isNotEmpty(e.getTextData())) String textDatas = paramsReportConfigDataEOS.stream().filter(e -> StringUtils.isNotEmpty(e.getTextData()))
.map(ParamsReportConfigDataEO::getTextData).distinct().collect(Collectors.joining(paramsReportDetailVO.getSeparator())); .map(ParamsReportConfigDataEO::getTextData).distinct().collect(Collectors.joining(paramsReportDetailVO.getSeparator()));
String pullDatas = paramsReportConfigDataEOS.stream().filter(e->StringUtils.isNotEmpty(e.getPullData())) String pullDatas = paramsReportConfigDataEOS.stream().filter(e -> StringUtils.isNotEmpty(e.getPullData()))
.map(ParamsReportConfigDataEO::getPullData).distinct().collect(Collectors.joining(paramsReportDetailVO.getSeparator())); .map(ParamsReportConfigDataEO::getPullData).distinct().collect(Collectors.joining(paramsReportDetailVO.getSeparator()));
List<String> fileNameList = new ArrayList<>(); List<String> fileNameList = new ArrayList<>();
@@ -899,7 +908,7 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
configDataBuilder.append(pullDatas).append("&"); configDataBuilder.append(pullDatas).append("&");
} }
if (CollectionUtil.isNotEmpty(fileNameList)) { if (CollectionUtil.isNotEmpty(fileNameList)) {
configDataBuilder.append(StringUtils.join(fileNameList, ",")).append("&"); configDataBuilder.append(StringUtils.join(fileNameList, paramsReportDetailVO.getSeparator())).append("&");
} }
configData = configDataBuilder.toString(); configData = configDataBuilder.toString();
if (configData.contains("&")) { if (configData.contains("&")) {
@@ -908,6 +917,7 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
record1.put("params_value", configData); record1.put("params_value", configData);
} }
}
record1.put("fileList", fileList); record1.put("fileList", fileList);
} }
} }
+1
View File
@@ -1131,4 +1131,5 @@ module.exports = {
clauseEvaluation:'Clause evaluation', clauseEvaluation:'Clause evaluation',
standardDocuments:'Standard documents', standardDocuments:'Standard documents',
pleaseCompleteTheEvaluationMethodorEvaluator:'Please complete the evaluation method or evaluator in the list', pleaseCompleteTheEvaluationMethodorEvaluator:'Please complete the evaluation method or evaluator in the list',
reviewComments:'Review comments',
} }
+1
View File
@@ -1135,4 +1135,5 @@ module.exports = {
clauseEvaluation:'条款评估', clauseEvaluation:'条款评估',
standardDocuments:'标准文件', standardDocuments:'标准文件',
pleaseCompleteTheEvaluationMethodorEvaluator:'请补全列表中评估方式或评估人', pleaseCompleteTheEvaluationMethodorEvaluator:'请补全列表中评估方式或评估人',
reviewComments:'审核意见',
} }
@@ -92,7 +92,7 @@
}, },
{ {
title: this.$t('evaluationMethod'), title: this.$t('evaluationMethod'),
dataIndex: 'evaluationMethod', dataIndex: 'evaluationMethods',
align: 'center', align: 'center',
scopedSlots: { customRender: 'evaluationMethod' } scopedSlots: { customRender: 'evaluationMethod' }
}, },
@@ -50,7 +50,7 @@
<span class="Required" v-if="!disabled">*</span> <span class="Required" v-if="!disabled">*</span>
<span class="title-text-text" :title="$t('relevantSections')">{{$t('relevantSections')}}</span> <span class="title-text-text" :title="$t('relevantSections')">{{$t('relevantSections')}}</span>
</div> </div>
<div class="title-text-right" v-if="disabled"> <div class="title-text-right" :title="item.relatedSection" v-if="disabled">
{{item.relatedSection}} {{item.relatedSection}}
</div> </div>
<a-form-model-item class="itemModel" v-if="!disabled" <a-form-model-item class="itemModel" v-if="!disabled"
@@ -72,7 +72,7 @@
<span class="title-text-text" <span class="title-text-text"
:title="$t('problemDescription')">{{$t('problemDescription')}}</span> :title="$t('problemDescription')">{{$t('problemDescription')}}</span>
</div> </div>
<div class="title-text-right" v-if="disabled"> <div class="title-text-right" :title="item.issueOrSuggest" v-if="disabled">
{{item.issueOrSuggest}} {{item.issueOrSuggest}}
</div> </div>
<a-form-model-item class="itemModel" :prop="'dataList.'+index+'.issueOrSuggest'" v-if="!disabled" <a-form-model-item class="itemModel" :prop="'dataList.'+index+'.issueOrSuggest'" v-if="!disabled"
@@ -94,8 +94,9 @@
<span class="title-text-text" :title="$t('enclosure')">{{$t('enclosure')}}</span> <span class="title-text-text" :title="$t('enclosure')">{{$t('enclosure')}}</span>
</div> </div>
<div class="title-text-right" v-if="disabled"> <div class="title-text-right" v-if="disabled">
<span style="color: #21c9cc" v-if="item.accessoryFile" @click="viewUploadedFilesClick(item.accessoryFile)"> <span style="color: #21c9cc;cursor: pointer"
{{$t('viewUploadedFiles')}} v-if="item.accessoryFile" @click="viewUploadedFilesClick(item.accessoryFile)">
{{$t('viewFile')}}
</span> </span>
<span v-else> <span v-else>
-- --
@@ -113,6 +114,25 @@
</a-col> </a-col>
</a-row> </a-row>
</div> </div>
<div class="box-text" style="margin-top: 10px" v-if="disabled">
<div class="header-text">
{{$t('sponsorReview')}}
</div>
</div>
<a-row :gutter="24" v-if="disabled">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('reviewComments')">{{$t('reviewComments')}}</span>
</div>
<a-form-model-item class="itemModel" prop="approvalOpinion">
<a-textarea :placeholder="$t('pleaseEnter')+$t('reviewComments')" v-model="formInline.approvalOpinion"
:rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model> </a-form-model>
</div> </div>
<uploadFile ref="uploadFile" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile> <uploadFile ref="uploadFile" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
@@ -124,6 +144,7 @@
import { getAction, postAction } from '@/api/manage' import { getAction, postAction } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file' import uploadFile from '@/components/uploadFile/file'
import viewFileModel from '@/components/viewFileModel/index' import viewFileModel from '@/components/viewFileModel/index'
export default { export default {
name: 'evaluatorFeedback', name: 'evaluatorFeedback',
components: { components: {
@@ -157,6 +178,18 @@
trigger: 'change' trigger: 'change'
} }
], ],
approvalOpinion: [
{
required: true,
message: this.$t('reviewComments') + this.$t('cannotEmpty'),
trigger: 'blur'
},
{
max: 300,
message: this.$t('reviewComments') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
],
relatedSection: [ relatedSection: [
{ {
required: true, required: true,
@@ -315,7 +348,7 @@
} }
.itemModel { .itemModel {
width: calc(100% - 130px); width: calc(100% - 110px);
display: inline-block; display: inline-block;
margin-top: 2px; margin-top: 2px;
margin-bottom: 12px; margin-bottom: 12px;
@@ -324,8 +357,8 @@
.title-text-right { .title-text-right {
display: inline-block; display: inline-block;
width: calc(100% - 130px); width: calc(100% - 130px);
padding-top: 15px; padding-top: 12px;
font-size: 14px; font-size: 16px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
@@ -351,7 +384,7 @@
} }
.feedbackPoint { .feedbackPoint {
font-size: 14px; font-size: 16px;
font-weight: 400; font-weight: 400;
color: #000F16; color: #000F16;
margin-bottom: 10px; margin-bottom: 10px;
@@ -14,6 +14,14 @@
:data-source="dataSource" :data-source="dataSource"
:columns="columns" :columns="columns"
> >
<div slot="clauseContent" slot-scope="text,result">
<a-tooltip placement="topLeft">
<template slot="title">
<span v-html="text"></span>
</template>
<div class="clauseContent-text" v-html="text"></div>
</a-tooltip>
</div>
</a-table> </a-table>
</div> </div>
<uploadFile ref="uploadFile" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile> <uploadFile ref="uploadFile" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
@@ -23,8 +31,10 @@
<script> <script>
import { getAction, postAction } from '@/api/manage' import { getAction, postAction } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file' import uploadFile from '@/components/uploadFile/file'
export default { export default {
name: 'evaluatorFeedback', name: 'evaluatorFeedback',
components: { components: {
uploadFile uploadFile
}, },
@@ -33,31 +43,38 @@
type: String, type: String,
default: '' default: ''
}, },
evaluatorFeedbackList: {
type: Array,
default: (() => {
return []
})
}
}, },
data() { data() {
return { return {
disabled:false, disabled: false,
loading:false, loading: false,
uploadIndex:'', uploadIndex: '',
dataSource:[], dataSource: [],
columns:[ columns: [
{ {
title: this.$t('clauseNo'), title: this.$t('clauseNo'),
dataIndex: 'items_num', dataIndex: 'itemNum',
align: 'center', align: 'center',
ellipsis: true ellipsis: true
}, },
{ {
title: this.$t('clauseName'), title: this.$t('clauseName'),
dataIndex: 'items_name', dataIndex: 'itemName',
align: 'center', align: 'center',
ellipsis: true ellipsis: true
}, },
{ {
title: this.$t('clauseContent'), title: this.$t('clauseContent'),
dataIndex: 'iterms_conditions', dataIndex: 'itemContent',
align: 'center', align: 'center',
ellipsis: true ellipsis: true,
scopedSlots: { customRender: 'clauseContent' }
}, },
{ {
title: this.$t('evaluationMethod'), title: this.$t('evaluationMethod'),
@@ -94,15 +111,17 @@
dataIndex: 'complianceResults', dataIndex: 'complianceResults',
align: 'center', align: 'center',
ellipsis: true ellipsis: true
}, }
], ]
} }
}, },
mounted() { mounted() {
if (this.evaluatorFeedbackList && this.evaluatorFeedbackList.length > 0) {
this.dataSource = this.evaluatorFeedbackList
}
}, },
methods: { methods: {
clickButtonToUpload(item,index) { clickButtonToUpload(item, index) {
this.$refs.uploadFile.perentHandleFunc() this.$refs.uploadFile.perentHandleFunc()
this.$refs.uploadFile.visible = true this.$refs.uploadFile.visible = true
this.uploadName = item this.uploadName = item
@@ -126,7 +145,7 @@
/** 赋值给当前对应的表单文件 */ /** 赋值给当前对应的表单文件 */
this.dataList[this.uploadIndex][this.uploadName] = attIdList.join(',') this.dataList[this.uploadIndex][this.uploadName] = attIdList.join(',')
this.dataList = [...this.dataList] this.dataList = [...this.dataList]
}, }
} }
} }
</script> </script>
@@ -214,4 +233,16 @@
margin-left: 8px; margin-left: 8px;
cursor: pointer; cursor: pointer;
} }
.clauseContent-text {
width: 100%;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all
}
</style> </style>
@@ -68,7 +68,7 @@
getList() { getList() {
let query = { let query = {
actiProcInstId: this.$route.query.prcId, actiProcInstId: this.$route.query.prcId,
flowType: '5' flowType: this.$route.query.prcType
} }
getAction('/lawsOpinionGather/lawsProcessHistoryEO/list', query).then((res) => { getAction('/lawsOpinionGather/lawsProcessHistoryEO/list', query).then((res) => {
if (res.success) { if (res.success) {
@@ -21,15 +21,18 @@
/> />
<evaluatorFeedbackList <evaluatorFeedbackList
v-if="isDisplay && isTrue" v-if="isDisplay && isTrue"
:evaluatorFeedbackList="evaluatorFeedbackList"
ref="evaluatorFeedbackListRef" ref="evaluatorFeedbackListRef"
:title="$t('evaluatorFeedback')" :title="$t('evaluatorFeedback')"
/> />
<footerProcess <footerProcess
v-if="isDisplay" v-if="isDisplay"
isPreservation :isPreservation="isPreservation"
:isSubmit="true" :isSubmit="true"
:isSendBack="isSendBack"
@preservation="preservation" @preservation="preservation"
@submit="submit" @submit="submit"
@sendBack="sendBack"
/> />
<circulationHistory v-if="isDisplay"/> <circulationHistory v-if="isDisplay"/>
</div> </div>
@@ -70,9 +73,13 @@
isDisplay: true, isDisplay: true,
feedbackDataList: [], feedbackDataList: [],
queryProject: {}, queryProject: {},
complianceResult:{}, evaluatorFeedbackList: [],
complianceResult: {},
isPreservation: false,
isSendBack: false,
isTrue: false, isTrue: false,
standardContentList: [ standardContentList:[],
standardContent: [
{ {
title: this.$t('standard'), title: this.$t('standard'),
value: 'serialNumber' value: 'serialNumber'
@@ -102,11 +109,46 @@
title: this.$t('processBackground'), title: this.$t('processBackground'),
value: 'processBackground' value: 'processBackground'
} }
] ],
evaluatorFeedback:[
{
title: this.$t('standard'),
value: 'serialNumber'
},
{
title: this.$t('title'),
value: 'title'
},
{
title: this.$t('regulatoryEngineer'),
value: 'regulationOwnerName'
},
{
title: this.$t('closingDate'),
value: 'endTime'
},
{
title: this.$t('RelevantMaterials'),
value: 'relatedDataFileId',
type: 2
},
{},
{
title: this.$t('processBackground'),
value: 'processBackground'
}
],
} }
}, },
mounted() { mounted() {
this.isDisplay = false this.isDisplay = false
if (this.$route.query.taskDefinitionKey == 'pgrqr') {
this.isPreservation = true
this.isSendBack = false
} else {
this.isPreservation = false
this.isSendBack = true
}
this.queryTaskDetailByTask() this.queryTaskDetailByTask()
}, },
methods: { methods: {
@@ -121,14 +163,30 @@
} }
this.isTrue = this.queryProject.evaluationType == 'Feedback evaluation' ? false : true this.isTrue = this.queryProject.evaluationType == 'Feedback evaluation' ? false : true
if (this.isTrue) { if (this.isTrue) {
this.standardContentList = this.standardContentList.filter(res => { this.standardContentList = this.evaluatorFeedback
return res.title != this.$t('evaluationMethod') this.lawsTechnologyEvaluationItem()
})
} else { } else {
this.standardContentList = this.standardContent
this.lawsOpinionAssessmentResult() this.lawsOpinionAssessmentResult()
} }
}) })
}, },
lawsTechnologyEvaluationItem() {
getAction('/lawsTechnologyEvaluation/lawsTechnologyEvaluationItemResultEO/list', {
lawsTechnologyEvaluationId: this.queryProject.lawsTechnologyEvaluationId,
actiProcInstId: this.$route.query.prcId,
createBy: this.userInfo().username
}).then((res) => {
if (res.success) {
this.evaluatorFeedbackList = res.result || []
this.loading = false
} else {
this.evaluatorFeedbackList = []
this.loading = false
}
this.isDisplay = true
})
},
lawsOpinionAssessmentResult() { lawsOpinionAssessmentResult() {
getAction(this.url.list, { getAction(this.url.list, {
lawsTechnologyEvaluationId: this.queryProject.lawsTechnologyEvaluationId, lawsTechnologyEvaluationId: this.queryProject.lawsTechnologyEvaluationId,
@@ -176,15 +234,40 @@
} }
}) })
}, },
submit() { sendBack() {
this.$refs.evaluatorFeedbackRef.submitData((res) => { if (this.isTrue) {
this.insertBatch(res, 2)
} else {
this.$refs.evaluatorFeedbackRef.preservationData((res) => {
this.loading = true
this.queryProject.approvalOpinion = res.approvalOpinion
this.queryProject.flag = '2'
this.completeTask()
}) })
}
},
submit() {
if (this.isTrue) {
} else {
this.$refs.evaluatorFeedbackRef.submitData((res) => {
if (this.$route.query.taskDefinitionKey == 'pgrqr') {
this.loading = true
this.insertBatch(res, 2)
} else {
this.loading = true
this.queryProject.approvalOpinion = res.approvalOpinion
this.queryProject.flag = '1'
this.completeTask()
}
})
}
}, },
completeTask() { completeTask() {
let query = { let query = {
userid: this.userInfo().id, userid: this.userInfo().id,
taskId: this.$route.query.taskIds, taskId: this.$route.query.taskIds,
flag: this.queryProject.flag,
json: JSON.stringify(this.queryProject).replace(/\"/g, '\'') json: JSON.stringify(this.queryProject).replace(/\"/g, '\'')
} }
postAction('/workFlow/completeTask', query).then((res) => { postAction('/workFlow/completeTask', query).then((res) => {