Merge remote-tracking branch 'origin/dev_third_stage' into dev_third_stage
This commit is contained in:
+7
-2
@@ -11,10 +11,12 @@ import com.jero.modules.lawsOpinionGather.enums.LawsOpinionGatherNodeEnum;
|
||||
import com.jero.modules.lawsOpinionGather.enums.OperatorRoleCodeEnum;
|
||||
import com.jero.modules.lawsOpinionGather.mapper.LawsProcessHistoryEOMapper;
|
||||
import com.jero.modules.lawsOpinionGather.service.ILawsProcessHistoryEOService;
|
||||
import com.jero.modules.lawsTechnologyEvaluation.job.LawsTechnologyEvaluationNodeEnum;
|
||||
import com.jero.modules.project.enums.OperatorTypeEnum;
|
||||
import com.jero.modules.project.enums.RequestSourceEnum;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.wkflow.enums.FlowTypeEnum;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -120,9 +122,12 @@ public class LawsProcessHistoryEOServiceImpl extends ServiceImpl<LawsProcessHist
|
||||
if(StringUtils.isNotEmpty(data.getOperatorRoleCode())){
|
||||
data.setOperatorRoleName(OperatorRoleCodeEnum.getTextByValue(data.getOperatorRoleCode(),cut));
|
||||
}
|
||||
|
||||
if(StringUtils.isNotEmpty(data.getTaskDefinitionKey())){
|
||||
data.setTaskDefinitionKeyName(LawsOpinionGatherNodeEnum.getTextByValue(data.getTaskDefinitionKey(),cut));
|
||||
if(StringUtils.equals(data.getFlowType(), FlowTypeEnum.FGYJSJLC.getValue())){
|
||||
data.setTaskDefinitionKeyName(LawsOpinionGatherNodeEnum.getTextByValue(data.getTaskDefinitionKey(),cut));
|
||||
}else if(StringUtils.equals(data.getFlowType(),FlowTypeEnum.FGJSPG.getValue())){
|
||||
data.setTaskDefinitionKeyName(LawsTechnologyEvaluationNodeEnum.getTextByValue(data.getTaskDefinitionKey(),cut));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
+1
-1
@@ -205,7 +205,7 @@ public class LawsTechnologyEvaluationEOController extends JeroController<LawsTec
|
||||
|
||||
@AutoLog(value = "条款导入")
|
||||
@ApiOperation(value = "条款导入")
|
||||
@GetMapping(value = "/importItemExcel")
|
||||
@PostMapping(value = "/importItemExcel")
|
||||
public List<Map<String,Object>> importItemExcel(MultipartFile file, @RequestParam(name = "cut") String cut, HttpServletRequest request) throws Exception {
|
||||
List<Map<String,Object>> result = this.lawsTechnologyEvaluationEOService.importItemExcel(file,cut,request);
|
||||
return result;
|
||||
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
package com.jero.modules.lawsTechnologyEvaluation.job;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.modules.lawsOpinionGather.enums.GatherResultEnum;
|
||||
import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO;
|
||||
import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationFlowDetailEO;
|
||||
import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationEOService;
|
||||
import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationFlowDetailEOService;
|
||||
import com.jero.modules.wkflow.feginClient.WorkFlowFeignClient;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.jeecg.modules.jmreport.common.constant.CommonConstant;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 法规技术评估 - 定时器
|
||||
* 作用:当前日期大于等于截止日志的时候,把该数据的流程状态,更新为已完成,同时把当前这条数据的所有待办任务提交
|
||||
*/
|
||||
@Slf4j
|
||||
public class LawsTechnologyEvaluationJob implements Job {
|
||||
|
||||
@Autowired
|
||||
private ILawsTechnologyEvaluationEOService lawsTechnologyEvaluationEOService;
|
||||
@Autowired
|
||||
private ILawsTechnologyEvaluationFlowDetailEOService lawsTechnologyEvaluationFlowDetailEOService;
|
||||
@Autowired
|
||||
private WorkFlowFeignClient workFlowFeignClient;
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
log.info("法规技术评估流程,定时任务开启 =====================================================");
|
||||
|
||||
QueryWrapper<LawsTechnologyEvaluationEO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(LawsTechnologyEvaluationEO::getFlowStatus, GatherResultEnum.UNDERWAY.getValue());
|
||||
List<LawsTechnologyEvaluationEO> lawsTechnologyEvaluationEOList = this.lawsTechnologyEvaluationEOService.list(queryWrapper);
|
||||
|
||||
if (CollectionUtils.isNotEmpty(lawsTechnologyEvaluationEOList)) {
|
||||
Date currentDate = new Date();
|
||||
//过滤截止日期小于当前日期的法规技术评估数据
|
||||
List<LawsTechnologyEvaluationEO> updateLawsTechnologyEvaluationEOList = lawsTechnologyEvaluationEOList.stream().filter(e -> {
|
||||
boolean flag = false;
|
||||
if(currentDate.after(e.getEndTime())){
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
if(CollectionUtils.isNotEmpty(updateLawsTechnologyEvaluationEOList)){
|
||||
List<String> lawsTechnologyEvaluationIdList = updateLawsTechnologyEvaluationEOList.stream().map(LawsTechnologyEvaluationEO::getId).distinct().collect(Collectors.toList());
|
||||
|
||||
//获取这些法规技术评估数据的下级流程明细数据。
|
||||
QueryWrapper<LawsTechnologyEvaluationFlowDetailEO> flowDetailEOQueryWrapper = new QueryWrapper<>();
|
||||
flowDetailEOQueryWrapper.lambda().in(LawsTechnologyEvaluationFlowDetailEO::getLawsTechnologyEvaluationId,lawsTechnologyEvaluationIdList);
|
||||
List<LawsTechnologyEvaluationFlowDetailEO> lawsTechnologyEvaluationFlowDetailEOList = lawsTechnologyEvaluationFlowDetailEOService.list(flowDetailEOQueryWrapper);
|
||||
|
||||
if(CollectionUtils.isNotEmpty(lawsTechnologyEvaluationFlowDetailEOList)){
|
||||
String actiProcInstIds = lawsTechnologyEvaluationFlowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(","));
|
||||
Result<String> result = this.workFlowFeignClient.completeTaskByPids(actiProcInstIds);
|
||||
if(result.getCode().equals(CommonConstant.SC_OK_200)){
|
||||
updateLawsTechnologyEvaluationEOList.forEach(lawsTechnologyEvaluationEO -> {
|
||||
lawsTechnologyEvaluationEO.setFlowStatus(GatherResultEnum.COMPLETED.getValue());
|
||||
});
|
||||
this.lawsTechnologyEvaluationEOService.updateBatchById(updateLawsTechnologyEvaluationEOList);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
log.info("法规技术评估流程,定时任务结束 =====================================================");
|
||||
}
|
||||
}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
package com.jero.modules.lawsTechnologyEvaluation.job;
|
||||
|
||||
import com.alibaba.druid.util.StringUtils;
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
|
||||
/**
|
||||
* 法规技术评估 节点枚举类
|
||||
*/
|
||||
public enum LawsTechnologyEvaluationNodeEnum {
|
||||
|
||||
ENGINEER_INITIATED("fggcsfq","法规工程师发起","Engineer initiated"),
|
||||
APPRAISERS_EVALUATION("pgrqr","评估人评估","Appraiser's evaluation"),
|
||||
SPONSOR_REVIEW("fqrsc","发起人审查","Sponsor review"),
|
||||
;
|
||||
|
||||
String key;
|
||||
String cnName;
|
||||
String enName;
|
||||
|
||||
private LawsTechnologyEvaluationNodeEnum(String key, String cnName, String enName) {
|
||||
this.key = key;
|
||||
this.cnName = cnName;
|
||||
this.enName = enName;
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public String getCnName() {
|
||||
return cnName;
|
||||
}
|
||||
|
||||
public void setCnName(String cnName) {
|
||||
this.cnName = cnName;
|
||||
}
|
||||
|
||||
public String getEnName() {
|
||||
return enName;
|
||||
}
|
||||
|
||||
public void setEnName(String enName) {
|
||||
this.enName = enName;
|
||||
}
|
||||
|
||||
public static String getTextByValue(String key,String cut) {
|
||||
LawsTechnologyEvaluationNodeEnum[] values = values();
|
||||
for (LawsTechnologyEvaluationNodeEnum lawsOpinionGatherNodeEnum : values) {
|
||||
if (lawsOpinionGatherNodeEnum.key.equals(key)) {
|
||||
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
|
||||
return lawsOpinionGatherNodeEnum.cnName;
|
||||
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||
return lawsOpinionGatherNodeEnum.enName;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+2
-9
@@ -336,13 +336,6 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
|
||||
HSSFCellStyle cellStyleTemp = workbook.createCellStyle();
|
||||
cellStyleTemp.setWrapText(true);//自动换行
|
||||
|
||||
int startLine = 0;
|
||||
int endLine = 4;
|
||||
//合并单元格
|
||||
CellRangeAddress region1 =
|
||||
new CellRangeAddress(1, 1, startLine, endLine); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
|
||||
sheet.addMergedRegion(region1);
|
||||
|
||||
String explainInfo = null;
|
||||
|
||||
HSSFRichTextString explain = new HSSFRichTextString(explainInfo);
|
||||
@@ -354,12 +347,12 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
|
||||
row.createCell(m).setCellValue(headerArr[m]);
|
||||
}
|
||||
|
||||
Row rowExplain = sheet.createRow(1);
|
||||
/*Row rowExplain = sheet.createRow(1);
|
||||
short height = (short) (7 * 200);
|
||||
rowExplain.setHeight((short) height);
|
||||
Cell cell = rowExplain.createCell(0);
|
||||
cell.setCellValue(explain);
|
||||
cell.setCellStyle(cellStyleTemp);
|
||||
cell.setCellStyle(cellStyleTemp);*/
|
||||
|
||||
response.setHeader("Content-Disposition",
|
||||
"attachment; filename=\"" + fileOriName + ".xls");
|
||||
|
||||
-1
@@ -157,7 +157,6 @@ public class LawsTechnologyEvaluationResultEOServiceImpl extends ServiceImpl<Law
|
||||
QueryWrapper<LawsTechnologyEvaluationComplianceResultEO> complianceResultEOQueryWrapper = new QueryWrapper<>();
|
||||
complianceResultEOQueryWrapper.lambda().eq(LawsTechnologyEvaluationComplianceResultEO::getActiProcInstId,lawsTechnologyEvaluationResultEO.getActiProcInstId());
|
||||
complianceResultEOQueryWrapper.lambda().eq(LawsTechnologyEvaluationComplianceResultEO::getLawsTechnologyEvaluationId,lawsTechnologyEvaluationResultEO.getLawsTechnologyEvaluationId());
|
||||
complianceResultEOQueryWrapper.lambda().eq(LawsTechnologyEvaluationComplianceResultEO::getCreateBy,lawsTechnologyEvaluationResultEO.getCreateBy());
|
||||
List<LawsTechnologyEvaluationComplianceResultEO> complianceResultEOList = complianceResultEOService.list(complianceResultEOQueryWrapper);
|
||||
if(CollectionUtils.isNotEmpty(complianceResultEOList)){
|
||||
result.put("complianceResult",complianceResultEOList.get(0));
|
||||
|
||||
@@ -1132,4 +1132,8 @@ module.exports = {
|
||||
standardDocuments:'Standard documents',
|
||||
pleaseCompleteTheEvaluationMethodorEvaluator:'Please complete the evaluation method or evaluator in the list',
|
||||
reviewComments:'Review comments',
|
||||
PleaseCompleteList:'Please complete the compliance results in the list',
|
||||
sponsorFeedback:'Sponsor feedback',
|
||||
processNumber:'Process number',
|
||||
processName:'Process Name',
|
||||
}
|
||||
@@ -1136,4 +1136,8 @@ module.exports = {
|
||||
standardDocuments:'标准文件',
|
||||
pleaseCompleteTheEvaluationMethodorEvaluator:'请补全列表中评估方式或评估人',
|
||||
reviewComments:'审核意见',
|
||||
PleaseCompleteList:'请补全列表中符合性结果',
|
||||
sponsorFeedback:'发起人反馈',
|
||||
processNumber:'流程编号',
|
||||
processName:'流程名称',
|
||||
}
|
||||
@@ -168,7 +168,7 @@
|
||||
align: 'center',
|
||||
width: 170,
|
||||
ellipsis: true,
|
||||
dataIndex: 'technologyTerritory'
|
||||
dataIndex: 'technologyTerritoryName'
|
||||
},
|
||||
{
|
||||
title: this.$t('collectResults'),
|
||||
|
||||
@@ -87,7 +87,6 @@
|
||||
title: this.$t('clauseContent'),
|
||||
dataIndex: 'itemContent',
|
||||
align: 'center',
|
||||
ellipsis: true,
|
||||
scopedSlots: { customRender: 'clauseContent' }
|
||||
},
|
||||
{
|
||||
|
||||
+141
@@ -0,0 +1,141 @@
|
||||
<template>
|
||||
<a-modal
|
||||
:title="$t('circulationHistory')"
|
||||
:width="800"
|
||||
:visible="visible"
|
||||
:maskClosable="false"
|
||||
@cancel="visible = false"
|
||||
>
|
||||
<template slot="footer">
|
||||
<a-button key="back" @click="visible = false">
|
||||
{{$t('cancel')}}
|
||||
</a-button>
|
||||
</template>
|
||||
<a-table
|
||||
class="table"
|
||||
:columns="columns"
|
||||
:pagination="false"
|
||||
:scroll="{x:700,y: 400}"
|
||||
:data-source="dataSource"
|
||||
:loading="loading"
|
||||
>
|
||||
<span slot="fileOperation" slot-scope="record">
|
||||
<a class="text" @click="preview(record)">
|
||||
{{$t('See')}}
|
||||
</a>
|
||||
</span>
|
||||
</a-table>
|
||||
<div class="page" v-if="dataSource && dataSource.length > 0">
|
||||
<a-pagination
|
||||
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||
show-quick-jumper
|
||||
show-size-changer
|
||||
:page-size.sync="pageSize"
|
||||
:total="total"
|
||||
:current="pageNo"
|
||||
@change="pageOnChange"
|
||||
@showSizeChange="SizeChange"
|
||||
/>
|
||||
</div>
|
||||
</a-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getAction, putAction, downloadFile } from '@/api/manage'
|
||||
|
||||
export default {
|
||||
name: 'processInformation',
|
||||
data() {
|
||||
return {
|
||||
dataSource: [],
|
||||
loading: false,
|
||||
visible: false,
|
||||
pageSize: 10,
|
||||
total: 0,
|
||||
pageNo: 1,
|
||||
lawsTechnologyEvaluationId: '',
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('processNumber'),
|
||||
dataIndex: 'prcNum',
|
||||
align: 'center',
|
||||
width: 160,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('processName'),
|
||||
dataIndex: 'prcName',
|
||||
align: 'center',
|
||||
width: 160,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('Assessor'),
|
||||
dataIndex: 'evaluatorName',
|
||||
align: 'center',
|
||||
width: 160,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
align: 'center',
|
||||
width: 130,
|
||||
scopedSlots: { customRender: 'fileOperation' }
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
preview(row) {
|
||||
let newUrl = this.$router.resolve({
|
||||
path: '/processDetails',
|
||||
query: {
|
||||
prcNum: row.prcNum,
|
||||
prcType: 6,
|
||||
prcId: row.actiProcInstId
|
||||
}
|
||||
})
|
||||
window.open(newUrl.href, '_blank')
|
||||
},
|
||||
pageOnChange(page) {
|
||||
this.pageNo = page
|
||||
this.getList()
|
||||
},
|
||||
SizeChange(pageSize) {
|
||||
this.pageNo = 1
|
||||
this.pageSize = pageSize
|
||||
this.getList()
|
||||
},
|
||||
getData(row) {
|
||||
this.visible = true
|
||||
this.lawsTechnologyEvaluationId = row.id
|
||||
this.getList()
|
||||
},
|
||||
getList() {
|
||||
let query = {
|
||||
lawsTechnologyEvaluationId: this.lawsTechnologyEvaluationId,
|
||||
pageSize: this.pageSize,
|
||||
pageNo: this.pageNo
|
||||
}
|
||||
this.loading = true
|
||||
getAction('/lawsTechnologyEvaluation/lawsTechnologyEvaluationFlowDetailEO/page', query).then((res) => {
|
||||
if (res.success) {
|
||||
this.dataSource = res.result.records || []
|
||||
this.total = res.result.total
|
||||
this.loading = false
|
||||
} else {
|
||||
this.loading = false
|
||||
this.dataSource = []
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.page {
|
||||
text-align: right;
|
||||
margin-top: 20px;
|
||||
}
|
||||
</style>
|
||||
-1
@@ -123,7 +123,6 @@
|
||||
title: this.$t('clauseContent'),
|
||||
dataIndex: 'iterms_conditions',
|
||||
align: 'center',
|
||||
ellipsis: true,
|
||||
scopedSlots: { customRender: 'clauseContent' }
|
||||
},
|
||||
{
|
||||
|
||||
@@ -149,14 +149,18 @@
|
||||
</a-row>
|
||||
</a-form-model>
|
||||
</a-modal>
|
||||
<processInformation ref="processInformationRef"/>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getAction, postAction } from '@/api/manage'
|
||||
|
||||
import processInformation from './components/processInformation'
|
||||
export default {
|
||||
name: 'index',
|
||||
components:{
|
||||
processInformation
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
//url传参严格按照当前命名
|
||||
@@ -353,15 +357,7 @@
|
||||
})
|
||||
},
|
||||
viewProcessClick(row) {
|
||||
let newUrl = this.$router.resolve({
|
||||
path: '/processDetails',
|
||||
query: {
|
||||
prcNum: row.prcNum,
|
||||
prcType: 6,
|
||||
prcId: row.actiProcInstId
|
||||
}
|
||||
})
|
||||
window.open(newUrl.href, '_blank')
|
||||
this.$refs.processInformationRef.getData(JSON.parse(JSON.stringify(row)))
|
||||
},
|
||||
evaluationResultsClick(row) {
|
||||
let newUrl = this.$router.resolve({
|
||||
|
||||
@@ -22,21 +22,81 @@
|
||||
<div class="clauseContent-text" v-html="text"></div>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
|
||||
<span slot="nameTechnicalDocument" slot-scope="text,result">
|
||||
<a-input class="box-input"
|
||||
:maxLength="100"
|
||||
v-model="result.technicalFileName"
|
||||
:placeholder="$t('PleaseEnter')+$t('nameTechnicalDocument')"/>
|
||||
</span>
|
||||
<span slot="chapter" slot-scope="text,result">
|
||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('chapter')"
|
||||
v-model="result.section"
|
||||
:maxLength="300"
|
||||
:rows="2"/>
|
||||
</span>
|
||||
<span slot="opinion" slot-scope="text,result">
|
||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('opinion')"
|
||||
v-model="result.opinion"
|
||||
:maxLength="300"
|
||||
:rows="2"/>
|
||||
</span>
|
||||
<span slot="enclosure" slot-scope="text,result,index">
|
||||
<a-button type="primary" class="button-text"
|
||||
@click="clickButtonToUpload('accessoryFile',index)">
|
||||
{{ (result.accessoryFile === 'null' || result.accessoryFile === '' ||
|
||||
result.accessoryFile == null) ? $t('clickUpload') : $t('viewUploadedFiles')
|
||||
}}
|
||||
</a-button>
|
||||
</span>
|
||||
<span slot="complianceResults" slot-scope="text,result">
|
||||
<a-select :placeholder="$t('PleaseSelect')+$t('complianceResults')"
|
||||
class="box-input"
|
||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||
allowClear
|
||||
v-model="result.complianceResult">
|
||||
<a-select-option v-for="(item, key) in complianceResultsList"
|
||||
:key="key"
|
||||
:value="item.value">
|
||||
<span style="display: inline-block;width: 100%" :title="item.name ">
|
||||
{{ item.name }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</span>
|
||||
<span slot="accessoryFile" slot-scope="text,result">
|
||||
<a v-if="text" @click="accessoryFileClick(text)">
|
||||
{{ $t('viewFile') }}
|
||||
</a>
|
||||
<span v-else>--</span>
|
||||
</span>
|
||||
<span slot="Results" slot-scope="text,result">
|
||||
{{text == 'Compliance' ? $t('accord'):$t('nonConformity')}}
|
||||
</span>
|
||||
<span slot="sponsorFeedback" slot-scope="text,result">
|
||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('sponsorFeedback')"
|
||||
v-model="result.sponsorFeedback"
|
||||
:maxLength="300"
|
||||
:rows="2"/>
|
||||
</span>
|
||||
</a-table>
|
||||
</div>
|
||||
<uploadFile ref="uploadFile" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
|
||||
<viewFileModel ref="viewFileModelRef"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getAction, postAction } from '@/api/manage'
|
||||
import uploadFile from '@/components/uploadFile/file'
|
||||
import viewFileModel from '@/components/viewFileModel/index'
|
||||
|
||||
export default {
|
||||
name: 'evaluatorFeedback',
|
||||
|
||||
components: {
|
||||
uploadFile
|
||||
uploadFile,
|
||||
viewFileModel
|
||||
},
|
||||
props: {
|
||||
title: {
|
||||
@@ -56,61 +116,154 @@
|
||||
loading: false,
|
||||
uploadIndex: '',
|
||||
dataSource: [],
|
||||
columns: [
|
||||
complianceResultsList: [
|
||||
{
|
||||
name: this.$t('accord'),
|
||||
value: 'Compliance'
|
||||
},
|
||||
{
|
||||
name: this.$t('nonConformity'),
|
||||
value: 'Non-Compliance'
|
||||
}
|
||||
],
|
||||
columnsTwo: [
|
||||
{
|
||||
title: this.$t('clauseNo'),
|
||||
dataIndex: 'itemNum',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('clauseName'),
|
||||
dataIndex: 'itemName',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('clauseContent'),
|
||||
dataIndex: 'itemContent',
|
||||
align: 'center',
|
||||
ellipsis: true,
|
||||
width: 280,
|
||||
scopedSlots: { customRender: 'clauseContent' }
|
||||
},
|
||||
{
|
||||
title: this.$t('evaluationMethod'),
|
||||
dataIndex: 'evaluationMethod',
|
||||
dataIndex: 'evaluationMethodsName',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('nameTechnicalDocument'),
|
||||
dataIndex: 'nameTechnicalDocument',
|
||||
dataIndex: 'technicalFileName',
|
||||
align: 'center',
|
||||
width: 280,
|
||||
scopedSlots: { customRender: 'nameTechnicalDocument' }
|
||||
},
|
||||
{
|
||||
title: this.$t('chapter'),
|
||||
dataIndex: 'section',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
scopedSlots: { customRender: 'chapter' }
|
||||
},
|
||||
{
|
||||
title: this.$t('opinion'),
|
||||
dataIndex: 'opinion',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
scopedSlots: { customRender: 'opinion' }
|
||||
},
|
||||
{
|
||||
title: this.$t('enclosure'),
|
||||
dataIndex: 'accessoryFile',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
scopedSlots: { customRender: 'enclosure' }
|
||||
},
|
||||
{
|
||||
title: this.$t('complianceResults'),
|
||||
dataIndex: 'complianceResult',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
scopedSlots: { customRender: 'complianceResults' }
|
||||
}
|
||||
],
|
||||
columnsThree: [
|
||||
{
|
||||
title: this.$t('clauseNo'),
|
||||
dataIndex: 'itemNum',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('clauseName'),
|
||||
dataIndex: 'itemName',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('clauseContent'),
|
||||
dataIndex: 'itemContent',
|
||||
align: 'center',
|
||||
width: 280,
|
||||
scopedSlots: { customRender: 'clauseContent' }
|
||||
},
|
||||
{
|
||||
title: this.$t('evaluationMethod'),
|
||||
dataIndex: 'evaluationMethodsName',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('nameTechnicalDocument'),
|
||||
dataIndex: 'technicalFileName',
|
||||
align: 'center',
|
||||
width: 280,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('chapter'),
|
||||
dataIndex: 'chapter',
|
||||
dataIndex: 'section',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('opinion'),
|
||||
dataIndex: 'opinion',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('enclosure'),
|
||||
dataIndex: 'enclosure',
|
||||
dataIndex: 'accessoryFile',
|
||||
align: 'center',
|
||||
ellipsis: true
|
||||
width: 180,
|
||||
ellipsis: true,
|
||||
scopedSlots: { customRender: 'accessoryFile' }
|
||||
},
|
||||
{
|
||||
title: this.$t('complianceResults'),
|
||||
dataIndex: 'complianceResults',
|
||||
dataIndex: 'complianceResult',
|
||||
align: 'center',
|
||||
ellipsis: true
|
||||
width: 180,
|
||||
ellipsis: true,
|
||||
scopedSlots: { customRender: 'Results' }
|
||||
},
|
||||
{
|
||||
title: this.$t('sponsorFeedback'),
|
||||
dataIndex: 'sponsorFeedback',
|
||||
align: 'center',
|
||||
width: 180,
|
||||
ellipsis: true,
|
||||
scopedSlots: { customRender: 'sponsorFeedback' }
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -118,6 +271,21 @@
|
||||
mounted() {
|
||||
if (this.evaluatorFeedbackList && this.evaluatorFeedbackList.length > 0) {
|
||||
this.dataSource = this.evaluatorFeedbackList
|
||||
if (this.$route.query.taskDefinitionKey != 'pgrqr') {
|
||||
this.dataSource.forEach(res => {
|
||||
res.sponsorFeedback = ''
|
||||
})
|
||||
this.dataSource = [...this.dataSource]
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
columns() {
|
||||
if (this.$route.query.taskDefinitionKey == 'pgrqr') {
|
||||
return this.columnsTwo
|
||||
} else {
|
||||
return this.columnsThree
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -126,7 +294,7 @@
|
||||
this.$refs.uploadFile.visible = true
|
||||
this.uploadName = item
|
||||
this.uploadIndex = index
|
||||
getAction('sys/common/getFileInfos', { id: this.dataList[this.uploadIndex][this.uploadName] }).then((res) => {
|
||||
getAction('sys/common/getFileInfos', { id: this.dataSource[this.uploadIndex][this.uploadName] }).then((res) => {
|
||||
if (res.success) {
|
||||
this.$refs.uploadFile.perentHandleFunc(res.result)
|
||||
} else {
|
||||
@@ -143,8 +311,23 @@
|
||||
})
|
||||
}
|
||||
/** 赋值给当前对应的表单文件 */
|
||||
this.dataList[this.uploadIndex][this.uploadName] = attIdList.join(',')
|
||||
this.dataList = [...this.dataList]
|
||||
this.dataSource[this.uploadIndex][this.uploadName] = attIdList.join(',')
|
||||
this.dataSource = [...this.dataSource]
|
||||
},
|
||||
submitData(callBack) {
|
||||
for (let i = 0; i < this.dataSource.length; i++) {
|
||||
if (!this.dataSource[i].complianceResult) {
|
||||
this.$message.warning(this.$t('PleaseCompleteList'))
|
||||
return
|
||||
}
|
||||
}
|
||||
callBack && callBack(this.dataSource)
|
||||
},
|
||||
preservationData(callBack) {
|
||||
callBack && callBack(this.dataSource)
|
||||
},
|
||||
accessoryFileClick(item) {
|
||||
this.$refs.viewFileModelRef.clickButtonToUpload(item)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -214,7 +397,7 @@
|
||||
|
||||
.button-text {
|
||||
height: 38px;
|
||||
width: calc(100% - 100px);
|
||||
width: calc(100%);
|
||||
line-height: 38px;
|
||||
background: #fff;
|
||||
border: 1px #00B3BE solid;
|
||||
@@ -233,6 +416,7 @@
|
||||
margin-left: 8px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.clauseContent-text {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
@@ -245,4 +429,15 @@
|
||||
text-justify: inter-ideograph;
|
||||
word-break: break-all
|
||||
}
|
||||
|
||||
</style>
|
||||
<style>
|
||||
.box-input .ant-select-selection--single {
|
||||
height: 38px;
|
||||
}
|
||||
|
||||
.box-input .ant-select-selection__rendered {
|
||||
line-height: 38px;
|
||||
height: 38px;
|
||||
}
|
||||
</style>
|
||||
@@ -78,7 +78,7 @@
|
||||
isPreservation: false,
|
||||
isSendBack: false,
|
||||
isTrue: false,
|
||||
standardContentList:[],
|
||||
standardContentList: [],
|
||||
standardContent: [
|
||||
{
|
||||
title: this.$t('standard'),
|
||||
@@ -110,7 +110,7 @@
|
||||
value: 'processBackground'
|
||||
}
|
||||
],
|
||||
evaluatorFeedback:[
|
||||
evaluatorFeedback: [
|
||||
{
|
||||
title: this.$t('standard'),
|
||||
value: 'serialNumber'
|
||||
@@ -137,7 +137,7 @@
|
||||
title: this.$t('processBackground'),
|
||||
value: 'processBackground'
|
||||
}
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@@ -174,7 +174,7 @@
|
||||
lawsTechnologyEvaluationItem() {
|
||||
getAction('/lawsTechnologyEvaluation/lawsTechnologyEvaluationItemResultEO/list', {
|
||||
lawsTechnologyEvaluationId: this.queryProject.lawsTechnologyEvaluationId,
|
||||
actiProcInstId: this.$route.query.prcId,
|
||||
actiProcInstId: this.$route.query.prcId
|
||||
}).then((res) => {
|
||||
if (res.success) {
|
||||
this.evaluatorFeedbackList = res.result || []
|
||||
@@ -189,8 +189,7 @@
|
||||
lawsOpinionAssessmentResult() {
|
||||
getAction(this.url.list, {
|
||||
lawsTechnologyEvaluationId: this.queryProject.lawsTechnologyEvaluationId,
|
||||
actiProcInstId: this.$route.query.prcId,
|
||||
createBy: this.userInfo().username
|
||||
actiProcInstId: this.$route.query.prcId
|
||||
}).then((res) => {
|
||||
if (res.success) {
|
||||
this.complianceResult = res.result.complianceResult || {}
|
||||
@@ -206,8 +205,39 @@
|
||||
},
|
||||
preservation() {
|
||||
this.loading = true
|
||||
this.$refs.evaluatorFeedbackRef.preservationData((res) => {
|
||||
this.insertBatch(res, 1)
|
||||
if (this.isTrue) {
|
||||
this.$refs.evaluatorFeedbackListRef.preservationData((res) => {
|
||||
this.batchUpdate(res, 1)
|
||||
})
|
||||
} else {
|
||||
this.$refs.evaluatorFeedbackRef.preservationData((res) => {
|
||||
this.insertBatch(res, 1)
|
||||
})
|
||||
}
|
||||
},
|
||||
batchUpdate(val, num) {
|
||||
let query = {
|
||||
actiProcInstId: this.$route.query.prcId,
|
||||
lawsTechnologyEvaluationId: this.queryProject.lawsTechnologyEvaluationId,
|
||||
itemResultList: val
|
||||
}
|
||||
postAction('/lawsTechnologyEvaluation/lawsTechnologyEvaluationItemResultEO/batchUpdate', query).then((res) => {
|
||||
if (res.success) {
|
||||
if (num == 1) {
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
this.loading = false
|
||||
} else {
|
||||
if (this.queryProject.msg) {
|
||||
delete this.queryProject.msg
|
||||
}
|
||||
this.completeTask()
|
||||
}
|
||||
} else {
|
||||
if (num == 1) {
|
||||
this.loading = false
|
||||
this.$message.warning(this.$t('operationFailed'))
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
insertBatch(val, num) {
|
||||
@@ -235,7 +265,11 @@
|
||||
},
|
||||
sendBack() {
|
||||
if (this.isTrue) {
|
||||
|
||||
this.$refs.evaluatorFeedbackListRef.preservationData((res) => {
|
||||
this.loading = true
|
||||
this.queryProject.flag = '2'
|
||||
this.batchUpdate(res, 2)
|
||||
})
|
||||
} else {
|
||||
this.$refs.evaluatorFeedbackRef.preservationData((res) => {
|
||||
this.loading = true
|
||||
@@ -247,7 +281,16 @@
|
||||
},
|
||||
submit() {
|
||||
if (this.isTrue) {
|
||||
|
||||
this.$refs.evaluatorFeedbackListRef.submitData((res) => {
|
||||
if (this.$route.query.taskDefinitionKey == 'pgrqr') {
|
||||
this.loading = true
|
||||
this.batchUpdate(res, 2)
|
||||
} else {
|
||||
this.loading = true
|
||||
this.queryProject.flag = '1'
|
||||
this.batchUpdate(res, 2)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$refs.evaluatorFeedbackRef.submitData((res) => {
|
||||
if (this.$route.query.taskDefinitionKey == 'pgrqr') {
|
||||
|
||||
Reference in New Issue
Block a user