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) { // 未上报
List<ParamsCollectManifestEO> paramsCollectManifestEOListOfTitle = paramsCollectManifestEOMapper.listInfoOfTitle(paramsManifestId);
@@ -1564,10 +1565,12 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
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);
for (CertCategoryParamsInfoPublishEO ccpi : certCategoryParamsInfoPublishEOS) {
ReportCertCategoryParamsInfoEO addCcpi = new ReportCertCategoryParamsInfoEO();
@@ -105,6 +105,7 @@
prd.nio_number as nio_number,
prd.params_name as params_name,
prd.control_type as control_type,
prd.title_default_value as title_default_value,
rccpi.params_number as cert_number,
rccpi.params_name as cert_params_name
from params_report_detail prd
@@ -835,6 +835,8 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
for (Map<String, Object> record1 : dataList) {
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)) {
List<OSSFile> fileList = new ArrayList<>();
@@ -843,70 +845,78 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
paramsConfigEOList = paramsConfigEOList.stream().filter(e->configIdList.contains(e.getId())).collect(Collectors.toList()); // 过滤出要导出的配置列
paramsConfigEOList.forEach(paramsConfigEO -> { // 参数配置
String paramsConfigId = paramsConfigEO.getId();
ParamsReportConfigDataEO paramsConfigDataEO = paramsReportConfigDataEOService.queryByConfigIdAndCollectManifestId(paramsConfigId, paramsCollectManifestId); // 参数配置数据
StringBuilder configDataBuilder = new StringBuilder(); // 重新组合配置数据
if (StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) {
configDataBuilder.append(paramsConfigDataEO.getTextData()).append("&");
}
if (StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
configDataBuilder.append(paramsConfigDataEO.getPullData()).append("&");
}
if (StringUtils.isNotEmpty(paramsConfigDataEO.getFileConnectId())) {
List<OSSFile> ossFileList = ossFileService.getFileInfosByConnectId(paramsConfigDataEO.getFileConnectId());
if (CollectionUtil.isNotEmpty(ossFileList)) {
configDataBuilder.append(ossFileList.get(0).getFileName()).append("&");
fileList.addAll(ossFileList);
if (ControlTypeEnum.Title.getValue().equals(controlType)) {
record1.put(paramsConfigEO.getId(), titleDefaultValue);
} else {
String paramsConfigId = paramsConfigEO.getId();
ParamsReportConfigDataEO paramsConfigDataEO = paramsReportConfigDataEOService.queryByConfigIdAndCollectManifestId(paramsConfigId, paramsCollectManifestId); // 参数配置数据
StringBuilder configDataBuilder = new StringBuilder(); // 重新组合配置数据
if (StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) {
configDataBuilder.append(paramsConfigDataEO.getTextData()).append("&");
}
}
if (StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
configDataBuilder.append(paramsConfigDataEO.getPullData()).append("&");
}
if (StringUtils.isNotEmpty(paramsConfigDataEO.getFileConnectId())) {
List<OSSFile> ossFileList = ossFileService.getFileInfosByConnectId(paramsConfigDataEO.getFileConnectId());
if (CollectionUtil.isNotEmpty(ossFileList)) {
configDataBuilder.append(ossFileList.get(0).getFileName()).append("&");
String configData = configDataBuilder.toString();
if (configData.contains("&")) {
configData = configData.substring(0, configData.lastIndexOf("&"));
}
fileList.addAll(ossFileList);
}
}
record1.put(paramsConfigEO.getId(), configData);
String configData = configDataBuilder.toString();
if (configData.contains("&")) {
configData = configData.substring(0, configData.lastIndexOf("&"));
}
record1.put(paramsConfigEO.getId(), configData);
}
});
} else if ("2".equals(paramsReportDetailVO.getCombineFlag())) { // 合并
String configData = "";
List<ParamsReportConfigDataEO> paramsReportConfigDataEOS = paramsReportConfigDataEOService.queryByConfigIdListAndCollectManifestId(configIdList, paramsCollectManifestId);
if (ControlTypeEnum.Title.getValue().equals(controlType)) {
record1.put("params_value", titleDefaultValue);
} else {
List<ParamsReportConfigDataEO> paramsReportConfigDataEOS = paramsReportConfigDataEOService.queryByConfigIdListAndCollectManifestId(configIdList, paramsCollectManifestId);
String textDatas = paramsReportConfigDataEOS.stream().filter(e->StringUtils.isNotEmpty(e.getTextData()))
.map(ParamsReportConfigDataEO::getTextData).distinct().collect(Collectors.joining(paramsReportDetailVO.getSeparator()));
String textDatas = paramsReportConfigDataEOS.stream().filter(e -> StringUtils.isNotEmpty(e.getTextData()))
.map(ParamsReportConfigDataEO::getTextData).distinct().collect(Collectors.joining(paramsReportDetailVO.getSeparator()));
String pullDatas = paramsReportConfigDataEOS.stream().filter(e->StringUtils.isNotEmpty(e.getPullData()))
.map(ParamsReportConfigDataEO::getPullData).distinct().collect(Collectors.joining(paramsReportDetailVO.getSeparator()));
String pullDatas = paramsReportConfigDataEOS.stream().filter(e -> StringUtils.isNotEmpty(e.getPullData()))
.map(ParamsReportConfigDataEO::getPullData).distinct().collect(Collectors.joining(paramsReportDetailVO.getSeparator()));
List<String> fileNameList = new ArrayList<>();
paramsReportConfigDataEOS.forEach(paramsReportConfigDataEO -> {
if (StringUtils.isNotEmpty(paramsReportConfigDataEO.getFileConnectId())) {
List<OSSFile> ossFileList = ossFileService.getFileInfosByConnectId(paramsReportConfigDataEO.getFileConnectId());
if (CollectionUtil.isNotEmpty(ossFileList)) {
fileNameList.add(ossFileList.get(0).getFileName());
List<String> fileNameList = new ArrayList<>();
paramsReportConfigDataEOS.forEach(paramsReportConfigDataEO -> {
if (StringUtils.isNotEmpty(paramsReportConfigDataEO.getFileConnectId())) {
List<OSSFile> ossFileList = ossFileService.getFileInfosByConnectId(paramsReportConfigDataEO.getFileConnectId());
if (CollectionUtil.isNotEmpty(ossFileList)) {
fileNameList.add(ossFileList.get(0).getFileName());
fileList.addAll(ossFileList);
fileList.addAll(ossFileList);
}
}
});
StringBuilder configDataBuilder = new StringBuilder(); // 重新组合配置数据
if (StringUtils.isNotEmpty(textDatas)) {
configDataBuilder.append(textDatas).append("&");
}
});
if (StringUtils.isNotEmpty(pullDatas)) {
configDataBuilder.append(pullDatas).append("&");
}
if (CollectionUtil.isNotEmpty(fileNameList)) {
configDataBuilder.append(StringUtils.join(fileNameList, paramsReportDetailVO.getSeparator())).append("&");
}
configData = configDataBuilder.toString();
if (configData.contains("&")) {
configData = configData.substring(0, configData.lastIndexOf("&"));
}
record1.put("params_value", configData);
StringBuilder configDataBuilder = new StringBuilder(); // 重新组合配置数据
if (StringUtils.isNotEmpty(textDatas)) {
configDataBuilder.append(textDatas).append("&");
}
if (StringUtils.isNotEmpty(pullDatas)) {
configDataBuilder.append(pullDatas).append("&");
}
if (CollectionUtil.isNotEmpty(fileNameList)) {
configDataBuilder.append(StringUtils.join(fileNameList, ",")).append("&");
}
configData = configDataBuilder.toString();
if (configData.contains("&")) {
configData = configData.substring(0, configData.lastIndexOf("&"));
}
record1.put("params_value", configData);
}
record1.put("fileList", fileList);
}
+1
View File
@@ -1131,4 +1131,5 @@ module.exports = {
clauseEvaluation:'Clause evaluation',
standardDocuments:'Standard documents',
pleaseCompleteTheEvaluationMethodorEvaluator:'Please complete the evaluation method or evaluator in the list',
reviewComments:'Review comments',
}
+1
View File
@@ -1135,4 +1135,5 @@ module.exports = {
clauseEvaluation:'条款评估',
standardDocuments:'标准文件',
pleaseCompleteTheEvaluationMethodorEvaluator:'请补全列表中评估方式或评估人',
reviewComments:'审核意见',
}
@@ -92,7 +92,7 @@
},
{
title: this.$t('evaluationMethod'),
dataIndex: 'evaluationMethod',
dataIndex: 'evaluationMethods',
align: 'center',
scopedSlots: { customRender: 'evaluationMethod' }
},
@@ -50,7 +50,7 @@
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text" :title="$t('relevantSections')">{{$t('relevantSections')}}</span>
</div>
<div class="title-text-right" v-if="disabled">
<div class="title-text-right" :title="item.relatedSection" v-if="disabled">
{{item.relatedSection}}
</div>
<a-form-model-item class="itemModel" v-if="!disabled"
@@ -72,7 +72,7 @@
<span class="title-text-text"
:title="$t('problemDescription')">{{$t('problemDescription')}}</span>
</div>
<div class="title-text-right" v-if="disabled">
<div class="title-text-right" :title="item.issueOrSuggest" v-if="disabled">
{{item.issueOrSuggest}}
</div>
<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>
</div>
<div class="title-text-right" v-if="disabled">
<span style="color: #21c9cc" v-if="item.accessoryFile" @click="viewUploadedFilesClick(item.accessoryFile)">
{{$t('viewUploadedFiles')}}
<span style="color: #21c9cc;cursor: pointer"
v-if="item.accessoryFile" @click="viewUploadedFilesClick(item.accessoryFile)">
{{$t('viewFile')}}
</span>
<span v-else>
--
@@ -113,6 +114,25 @@
</a-col>
</a-row>
</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>
</div>
<uploadFile ref="uploadFile" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
@@ -124,6 +144,7 @@
import { getAction, postAction } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file'
import viewFileModel from '@/components/viewFileModel/index'
export default {
name: 'evaluatorFeedback',
components: {
@@ -157,6 +178,18 @@
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: [
{
required: true,
@@ -315,7 +348,7 @@
}
.itemModel {
width: calc(100% - 130px);
width: calc(100% - 110px);
display: inline-block;
margin-top: 2px;
margin-bottom: 12px;
@@ -324,8 +357,8 @@
.title-text-right {
display: inline-block;
width: calc(100% - 130px);
padding-top: 15px;
font-size: 14px;
padding-top: 12px;
font-size: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
@@ -351,7 +384,7 @@
}
.feedbackPoint {
font-size: 14px;
font-size: 16px;
font-weight: 400;
color: #000F16;
margin-bottom: 10px;
@@ -14,6 +14,14 @@
:data-source="dataSource"
: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>
</div>
<uploadFile ref="uploadFile" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
@@ -23,8 +31,10 @@
<script>
import { getAction, postAction } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file'
export default {
name: 'evaluatorFeedback',
components: {
uploadFile
},
@@ -33,31 +43,38 @@
type: String,
default: ''
},
evaluatorFeedbackList: {
type: Array,
default: (() => {
return []
})
}
},
data() {
return {
disabled:false,
loading:false,
uploadIndex:'',
dataSource:[],
columns:[
disabled: false,
loading: false,
uploadIndex: '',
dataSource: [],
columns: [
{
title: this.$t('clauseNo'),
dataIndex: 'items_num',
dataIndex: 'itemNum',
align: 'center',
ellipsis: true
},
{
title: this.$t('clauseName'),
dataIndex: 'items_name',
dataIndex: 'itemName',
align: 'center',
ellipsis: true
},
{
title: this.$t('clauseContent'),
dataIndex: 'iterms_conditions',
dataIndex: 'itemContent',
align: 'center',
ellipsis: true
ellipsis: true,
scopedSlots: { customRender: 'clauseContent' }
},
{
title: this.$t('evaluationMethod'),
@@ -94,15 +111,17 @@
dataIndex: 'complianceResults',
align: 'center',
ellipsis: true
},
],
}
]
}
},
mounted() {
if (this.evaluatorFeedbackList && this.evaluatorFeedbackList.length > 0) {
this.dataSource = this.evaluatorFeedbackList
}
},
methods: {
clickButtonToUpload(item,index) {
clickButtonToUpload(item, index) {
this.$refs.uploadFile.perentHandleFunc()
this.$refs.uploadFile.visible = true
this.uploadName = item
@@ -126,7 +145,7 @@
/** 赋值给当前对应的表单文件 */
this.dataList[this.uploadIndex][this.uploadName] = attIdList.join(',')
this.dataList = [...this.dataList]
},
}
}
}
</script>
@@ -214,4 +233,16 @@
margin-left: 8px;
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>
@@ -68,7 +68,7 @@
getList() {
let query = {
actiProcInstId: this.$route.query.prcId,
flowType: '5'
flowType: this.$route.query.prcType
}
getAction('/lawsOpinionGather/lawsProcessHistoryEO/list', query).then((res) => {
if (res.success) {
@@ -21,15 +21,18 @@
/>
<evaluatorFeedbackList
v-if="isDisplay && isTrue"
:evaluatorFeedbackList="evaluatorFeedbackList"
ref="evaluatorFeedbackListRef"
:title="$t('evaluatorFeedback')"
/>
<footerProcess
v-if="isDisplay"
isPreservation
:isPreservation="isPreservation"
:isSubmit="true"
:isSendBack="isSendBack"
@preservation="preservation"
@submit="submit"
@sendBack="sendBack"
/>
<circulationHistory v-if="isDisplay"/>
</div>
@@ -70,9 +73,13 @@
isDisplay: true,
feedbackDataList: [],
queryProject: {},
complianceResult:{},
evaluatorFeedbackList: [],
complianceResult: {},
isPreservation: false,
isSendBack: false,
isTrue: false,
standardContentList: [
standardContentList:[],
standardContent: [
{
title: this.$t('standard'),
value: 'serialNumber'
@@ -102,11 +109,46 @@
title: this.$t('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() {
this.isDisplay = false
if (this.$route.query.taskDefinitionKey == 'pgrqr') {
this.isPreservation = true
this.isSendBack = false
} else {
this.isPreservation = false
this.isSendBack = true
}
this.queryTaskDetailByTask()
},
methods: {
@@ -121,14 +163,30 @@
}
this.isTrue = this.queryProject.evaluationType == 'Feedback evaluation' ? false : true
if (this.isTrue) {
this.standardContentList = this.standardContentList.filter(res => {
return res.title != this.$t('evaluationMethod')
})
this.standardContentList = this.evaluatorFeedback
this.lawsTechnologyEvaluationItem()
} else {
this.standardContentList = this.standardContent
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() {
getAction(this.url.list, {
lawsTechnologyEvaluationId: this.queryProject.lawsTechnologyEvaluationId,
@@ -176,15 +234,40 @@
}
})
},
sendBack() {
if (this.isTrue) {
} else {
this.$refs.evaluatorFeedbackRef.preservationData((res) => {
this.loading = true
this.queryProject.approvalOpinion = res.approvalOpinion
this.queryProject.flag = '2'
this.completeTask()
})
}
},
submit() {
this.$refs.evaluatorFeedbackRef.submitData((res) => {
this.insertBatch(res, 2)
})
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() {
let query = {
userid: this.userInfo().id,
taskId: this.$route.query.taskIds,
flag: this.queryProject.flag,
json: JSON.stringify(this.queryProject).replace(/\"/g, '\'')
}
postAction('/workFlow/completeTask', query).then((res) => {