Merge remote-tracking branch 'origin/dev_2nd_LCYH' into dev_2nd_LCYH
# Conflicts: # jero-web/src/common/lang/en-us.js
This commit is contained in:
+6
-1
@@ -13,7 +13,12 @@ public enum ReviewResultEnum {
|
||||
INCONFORMITY("不符合","Non-Compliance"),
|
||||
TO_TRACK("待追踪","To be tracked"),
|
||||
UNINVOLVED("不涉及","NA"),
|
||||
TERMINATION_OF_TASK("任务终止","Termination of task")
|
||||
TERMINATION_OF_TASK("任务终止","Termination of task"),
|
||||
ACCEPTED("接受","Accepted"),
|
||||
REJECTED("拒绝","Rejected"),
|
||||
TRANSFER("转办","Transfer"),
|
||||
RETURNED("退回","Returned"),
|
||||
ADOPT("通过","Adopt"),
|
||||
;
|
||||
|
||||
|
||||
|
||||
+10
-10
@@ -7,12 +7,12 @@ import org.apache.commons.lang3.StringUtils;
|
||||
* 待办中心-设计符合性流程节点key枚举类
|
||||
*/
|
||||
public enum DesignComplianceFlowNodeKeyEnum {
|
||||
fqlc("发起流程","Initiate the process","fqlc"),
|
||||
zrrqr("任务责任确认","Confirmation of mission responsibility","zrrqr"), // 责任人确认
|
||||
dezrrqr("任务责任确认","Confirmation of mission responsibility","dezrrqr"),// 第二责任人确认
|
||||
zrrtjjfw("设计符合性确认","Design compliance confirmation","zrrtjjfw"),// "责任人提交交付物"
|
||||
dezrrtjjfw("设计符合性确认","Design compliance confirmation","dezrrtjjfw"),// 第二责任人提交交付物
|
||||
fggcssh("设计符合性审查","Design compliance review","fggcssh"), // 法规工程师审核
|
||||
FQLC("发起流程","Initiate the process","fqlc"),
|
||||
ZRRQR("任务责任确认","Confirmation of mission responsibility","zrrqr"), // 责任人确认
|
||||
DEZRRQR("任务责任确认","Confirmation of mission responsibility","dezrrqr"),// 第二责任人确认
|
||||
ZRRTJJFW("设计符合性确认","Design compliance confirmation","zrrtjjfw"),// "责任人提交交付物"
|
||||
DEZRRTJJFW("设计符合性确认","Design compliance confirmation","dezrrtjjfw"),// 第二责任人提交交付物
|
||||
FGGCSSH("设计符合性审查","Design compliance review","fggcssh"), // 法规工程师审核
|
||||
;
|
||||
|
||||
String cnName;
|
||||
@@ -51,12 +51,12 @@ public enum DesignComplianceFlowNodeKeyEnum {
|
||||
|
||||
public static String getTextByValue(String value,String cut) {
|
||||
DesignComplianceFlowNodeKeyEnum[] values = values();
|
||||
for (DesignComplianceFlowNodeKeyEnum todoCenterStatusEnum : values) {
|
||||
if (todoCenterStatusEnum.value.equals(value)) {
|
||||
for (DesignComplianceFlowNodeKeyEnum designComplianceFlowNodeKeyEnum : values) {
|
||||
if (designComplianceFlowNodeKeyEnum.value.equals(value)) {
|
||||
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
|
||||
return todoCenterStatusEnum.cnName;
|
||||
return designComplianceFlowNodeKeyEnum.cnName;
|
||||
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||
return todoCenterStatusEnum.enName;
|
||||
return designComplianceFlowNodeKeyEnum.enName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+10
-10
@@ -7,12 +7,12 @@ import org.apache.commons.lang3.StringUtils;
|
||||
* 待办中心-验证符合性流程节点key枚举类
|
||||
*/
|
||||
public enum VerifyComplianceFlowNodeKeyEnum {
|
||||
fqlc("发起流程","Initiate the process","fqlc"),
|
||||
zrrqr("任务责任确认","Confirmation of mission responsibility","zrrqr"), // 责任人确认
|
||||
dezrrqr("任务责任确认","Confirmation of mission responsibility","dezrrqr"),// 第二责任人确认
|
||||
zrrtjjfw("验证符合性确认","Verify compliance confirmation","zrrtjjfw"),// "责任人提交交付物"
|
||||
dezrrtjjfw("验证符合性确认","Verify compliance confirmation","dezrrtjjfw"),// 第二责任人提交交付物
|
||||
fggcssh("验证符合性审查","Verify compliance review","fggcssh"), // 法规工程师审核
|
||||
FQLC("发起流程","Initiate the process","fqlc"),
|
||||
ZRRQR("任务责任确认","Confirmation of mission responsibility","zrrqr"), // 责任人确认
|
||||
DEZRRQR("任务责任确认","Confirmation of mission responsibility","dezrrqr"),// 第二责任人确认
|
||||
ZRRTJJFW("验证符合性确认","Verify compliance confirmation","zrrtjjfw"),// "责任人提交交付物"
|
||||
DEZRRTJJFW("验证符合性确认","Verify compliance confirmation","dezrrtjjfw"),// 第二责任人提交交付物
|
||||
FGGCSSH("验证符合性审查","Verify compliance review","fggcssh"), // 法规工程师审核
|
||||
;
|
||||
|
||||
String cnName;
|
||||
@@ -51,12 +51,12 @@ public enum VerifyComplianceFlowNodeKeyEnum {
|
||||
|
||||
public static String getTextByValue(String value,String cut) {
|
||||
VerifyComplianceFlowNodeKeyEnum[] values = values();
|
||||
for (VerifyComplianceFlowNodeKeyEnum todoCenterStatusEnum : values) {
|
||||
if (todoCenterStatusEnum.value.equals(value)) {
|
||||
for (VerifyComplianceFlowNodeKeyEnum verifyComplianceFlowNodeKeyEnum : values) {
|
||||
if (verifyComplianceFlowNodeKeyEnum.value.equals(value)) {
|
||||
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
|
||||
return todoCenterStatusEnum.cnName;
|
||||
return verifyComplianceFlowNodeKeyEnum.cnName;
|
||||
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||
return todoCenterStatusEnum.enName;
|
||||
return verifyComplianceFlowNodeKeyEnum.enName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+51
-1
@@ -5,13 +5,20 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.oss.entity.OSSFile;
|
||||
import com.jero.modules.oss.service.IOSSFileService;
|
||||
import com.jero.modules.project.enums.OperatorTypeEnum;
|
||||
import com.jero.modules.project.enums.RequestSourceEnum;
|
||||
import com.jero.modules.project.enums.ReviewResultEnum;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
|
||||
import com.jero.modules.todoCenter.enums.DesignComplianceFlowNodeKeyEnum;
|
||||
import com.jero.modules.todoCenter.enums.VerifyComplianceFlowNodeKeyEnum;
|
||||
import com.jero.modules.todoCenter.service.IProcessInfoEOService;
|
||||
import com.jero.modules.wkflow.entity.ProcessHistoryEO;
|
||||
import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum;
|
||||
import com.jero.modules.wkflow.enums.FlowTypeEnum;
|
||||
import com.jero.modules.wkflow.mapper.ProcessHistoryEOMapper;
|
||||
import com.jero.modules.wkflow.service.IProcessHistoryEOService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
@@ -38,6 +45,10 @@ public class ProcessHistoryEOServiceImpl extends ServiceImpl<ProcessHistoryEOMap
|
||||
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
@Autowired
|
||||
private IProcessInfoEOService processInfoEOService;
|
||||
@Autowired
|
||||
private IOSSFileService ossFileService;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
@@ -141,6 +152,14 @@ public class ProcessHistoryEOServiceImpl extends ServiceImpl<ProcessHistoryEOMap
|
||||
sysUserList = sysUserService.querySysUserListByIdList(userIdList);
|
||||
}
|
||||
|
||||
List<String> actiProcInstIdList = datas.stream().map(ProcessHistoryEO::getActiProcInstId).distinct().collect(Collectors.toList());
|
||||
QueryWrapper<ProcessInfoEO> processInfoEOQueryWrap = new QueryWrapper<>();
|
||||
processInfoEOQueryWrap.lambda().in(ProcessInfoEO::getActiProcInstId,actiProcInstIdList);
|
||||
List<ProcessInfoEO> processInfoList = this.processInfoEOService.list(processInfoEOQueryWrap);
|
||||
|
||||
String approvalFiles = datas.stream().map(ProcessHistoryEO::getApprovalFile).distinct().collect(Collectors.joining(","));
|
||||
List<OSSFile> approvalFileList = this.ossFileService.getFileInfos(approvalFiles);
|
||||
|
||||
for (ProcessHistoryEO data : datas) {
|
||||
if(StringUtils.isNotEmpty(data.getOperatorResult())){
|
||||
data.setReviewResult(ReviewResultEnum.getTextByValue(data.getOperatorResult(),cut));
|
||||
@@ -149,9 +168,40 @@ public class ProcessHistoryEOServiceImpl extends ServiceImpl<ProcessHistoryEOMap
|
||||
SysUser userInfo = sysUserList.stream().filter(sysUser -> sysUser.getId().equals(data.getOperatorPersonId())).collect(Collectors.toList()).get(0);
|
||||
data.setAssignee(userInfo.getUsername());
|
||||
}
|
||||
if(StringUtils.isNotEmpty(data.getTaskDefinitionKey())){
|
||||
List<ProcessInfoEO> processInfoListTemp = processInfoList.stream().filter(processInfo -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.equals(processInfo.getActiProcInstId(), data.getActiProcInstId())) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
if(CollectionUtils.isNotEmpty(processInfoListTemp)){
|
||||
String flowType = processInfoListTemp.get(0).getFlowType();
|
||||
if(StringUtils.equals(flowType, FlowTypeEnum.SJFHXSHLC.getValue())){
|
||||
data.setName(DesignComplianceFlowNodeKeyEnum.getTextByValue(data.getTaskDefinitionKey(),cut));
|
||||
}else if(StringUtils.equals(flowType, FlowTypeEnum.YZFHXSCLC.getValue())){
|
||||
data.setName(VerifyComplianceFlowNodeKeyEnum.getTextByValue(data.getTaskDefinitionKey(),cut));
|
||||
}else if(StringUtils.isNotEmpty(data.getTaskDefinitionKey())){
|
||||
data.setName(DesignComplianceNodeEnum.getTextByValue(data.getTaskDefinitionKey(),cut));
|
||||
}
|
||||
}else if(StringUtils.isNotEmpty(data.getTaskDefinitionKey())){
|
||||
data.setName(DesignComplianceNodeEnum.getTextByValue(data.getTaskDefinitionKey(),cut));
|
||||
}
|
||||
|
||||
if(StringUtils.isNotEmpty(data.getApprovalFile())){
|
||||
if(CollectionUtils.isNotEmpty(approvalFileList)){
|
||||
String approvalFileNames = approvalFileList.stream().filter(file -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.contains(data.getApprovalFile(), file.getId())) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).map(OSSFile::getFileName).collect(Collectors.joining(","));
|
||||
|
||||
data.setApprovalFileName(approvalFileNames);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1679,4 +1679,7 @@ module.exports = {
|
||||
pleaseStateTheDistribution:'Please describe the integration and distribution of the management system and electronic controller',
|
||||
next:'Next',
|
||||
last:'Last',
|
||||
designComplianceReviewAdmin:'Design Compliance Review',
|
||||
missionAccomplished:'Mission Accomplished',
|
||||
|
||||
}
|
||||
@@ -1779,4 +1779,6 @@ module.exports = {
|
||||
last:'上一步',
|
||||
recordmaintenance:'备案维护',
|
||||
module:'模块',
|
||||
designComplianceReviewAdmin:'设计符合性审查',
|
||||
missionAccomplished:'任务完成',
|
||||
}
|
||||
+132
-18
@@ -5,6 +5,28 @@
|
||||
{{title}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="process-content">
|
||||
|
||||
<div class="process-content-top">
|
||||
<div class="process-content-content" v-for="(item,index) in regulatoryCertificationTaskPlanList" :key="index">
|
||||
<img v-if="item.status == 1" src="../../../../assets/wancheng.png" class="process-content-left" alt="">
|
||||
<span v-else-if="item.status == 2" class="process-content-left">
|
||||
<span class="process-content-left-yuan">
|
||||
4
|
||||
</span>
|
||||
</span>
|
||||
<span v-else-if="item.status == 3" class="process-content-left">
|
||||
<span class="process-content-left-last">
|
||||
5
|
||||
</span>
|
||||
</span>
|
||||
<div class="process-content-right">
|
||||
<div class="process-content-right-top" :title="item.name">{{item.name}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="process-content-right-xian"></div>
|
||||
</div>
|
||||
<div style="width: 100%">
|
||||
<a-table
|
||||
ref="table"
|
||||
@@ -38,19 +60,10 @@
|
||||
|
||||
export default {
|
||||
name: 'circulationHistory',
|
||||
components:{
|
||||
components: {
|
||||
viewFileModel
|
||||
},
|
||||
props: {
|
||||
// 需要参数urlFrom,获取数据去显示内容
|
||||
url: {
|
||||
type: Object,
|
||||
default: {}
|
||||
},
|
||||
projectInformationId: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
queryProject: {
|
||||
type: Object,
|
||||
default: {}
|
||||
@@ -64,24 +77,49 @@
|
||||
return {
|
||||
loading: false,
|
||||
dataSource: [],
|
||||
regulatoryCertificationTaskPlanList: [
|
||||
{
|
||||
status: '1',
|
||||
name: this.$t('initiatingProcess')
|
||||
},
|
||||
{
|
||||
status: '1',
|
||||
name: this.$t('Taskresponsibilityrecognition')
|
||||
},
|
||||
{
|
||||
status: '1',
|
||||
name: this.$t('designComplianceReview')
|
||||
},
|
||||
{
|
||||
status: '2',
|
||||
name: this.$t('designComplianceReviewAdmin')
|
||||
},
|
||||
{
|
||||
status: '3',
|
||||
name: this.$t('missionAccomplished')
|
||||
}
|
||||
],
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('Operator'),
|
||||
dataIndex: 'assignee',
|
||||
align: 'left',
|
||||
width: 200
|
||||
width: 200,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('Tasknode'),
|
||||
dataIndex: 'name',
|
||||
align: 'left',
|
||||
width: 180
|
||||
width: 180,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('OperationTime'),
|
||||
dataIndex: 'createTime',
|
||||
align: 'left',
|
||||
width: 200,
|
||||
ellipsis: true,
|
||||
customRender: function(t, r, index) {
|
||||
return moment(t).format('YYYY-MM-DD HH:mm:ss')
|
||||
}
|
||||
@@ -91,19 +129,22 @@
|
||||
dataIndex: 'approvalResult',
|
||||
align: 'left',
|
||||
width: 200,
|
||||
ellipsis: true,
|
||||
scopedSlots: { customRender: 'approvalResult' }
|
||||
},
|
||||
{
|
||||
title: this.$t('feedback'),
|
||||
dataIndex: 'approvalOpinion',
|
||||
align: 'left',
|
||||
width: 200
|
||||
width: 200,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('enclosure'),
|
||||
dataIndex: 'approvalFile',
|
||||
align: 'left',
|
||||
width: 100,
|
||||
ellipsis: true,
|
||||
scopedSlots: { customRender: 'approvalFile' }
|
||||
}
|
||||
]
|
||||
@@ -115,11 +156,17 @@
|
||||
methods: {
|
||||
getList() {
|
||||
let query = {
|
||||
prcNum: this.$route.query.prcNum,
|
||||
prcType: this.$route.query.prcType
|
||||
actiProcInstId: this.queryProject.actiProcInstId || this.queryProject.prcId
|
||||
}
|
||||
getAction('/workFlow/get_list_by_instance', query).then((res) => {
|
||||
this.dataSource = res
|
||||
this.loading = true
|
||||
getAction('/wkflow/processHistoryEO/list', query).then((res) => {
|
||||
if (res.success) {
|
||||
this.dataSource = res.result || []
|
||||
this.loading = false
|
||||
} else {
|
||||
this.dataSource = []
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
viewFileClick(item) {
|
||||
@@ -131,7 +178,7 @@
|
||||
|
||||
<style scoped lang="less">
|
||||
.box {
|
||||
padding: 0 24px 24px 24px;
|
||||
padding: 0 0 24px 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
@@ -152,4 +199,71 @@
|
||||
color: #00B3BE;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.process-content {
|
||||
margin-top: 8px;
|
||||
position: relative;
|
||||
margin-bottom: 26px;
|
||||
.process-content-top{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.process-content-content {
|
||||
background: #fff;
|
||||
z-index: 1000;
|
||||
padding: 0;
|
||||
|
||||
.process-content-left {
|
||||
float: left;
|
||||
display: inline-block;
|
||||
|
||||
.process-content-left-yuan {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 50%;
|
||||
background: #00B3BE;
|
||||
color: #fff;
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
line-height: 32px;
|
||||
text-align: center;
|
||||
}
|
||||
.process-content-left-last{
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 50%;
|
||||
border: 1px solid #E6E7EC;
|
||||
color: #040B29;
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
line-height: 32px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.process-content-right {
|
||||
float: left;
|
||||
margin-left: 7px;
|
||||
margin-top: 7px;
|
||||
|
||||
.process-content-right-top {
|
||||
font-size: 14px;
|
||||
font-weight: lighter;
|
||||
color: #040B29;
|
||||
max-width: 155px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.process-content-right-xian {
|
||||
height: 2px;
|
||||
width: calc(100% - 27px);
|
||||
background: #E6E6E9;
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
+5
-5
@@ -3,7 +3,7 @@
|
||||
<a-drawer
|
||||
:title="title"
|
||||
:maskClosable="false"
|
||||
:width="1000"
|
||||
:width="1100"
|
||||
placement="right"
|
||||
:closable="true"
|
||||
@close="handleCancel"
|
||||
@@ -29,6 +29,7 @@
|
||||
<div style="margin-bottom: 436px">
|
||||
<circulationHistory
|
||||
:title="$t('Processhistory')"
|
||||
:queryProject="queryData"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -267,7 +268,7 @@
|
||||
.drawer-bootom-button {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
z-index: 100;
|
||||
z-index: 1002;
|
||||
width: 100%;
|
||||
border-top: 1px solid #e8e8e8;
|
||||
padding: 10px 16px;
|
||||
@@ -280,11 +281,10 @@
|
||||
.drawer-review {
|
||||
position: absolute;
|
||||
bottom: 40px;
|
||||
z-index: 100;
|
||||
height: 384px;
|
||||
z-index: 1001;
|
||||
height: 404px;
|
||||
width: 100%;
|
||||
border-top: 1px solid #e8e8e8;
|
||||
padding: 10px 16px;
|
||||
left: 0;
|
||||
background: #fff;
|
||||
border-radius: 0 0 2px 2px;
|
||||
|
||||
+1
-1
@@ -100,7 +100,7 @@
|
||||
|
||||
<style scoped lang="less">
|
||||
.box {
|
||||
padding: 0 24px 24px 24px;
|
||||
padding: 0 0 24px 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -27,7 +27,7 @@
|
||||
<a-radio value="Rejected" v-if="query.TaskKey == 'zrrqr'">
|
||||
{{$t('refuse')}}
|
||||
</a-radio>
|
||||
<a-radio value="adopt" v-if="query.TaskKey == 'fggcssh'">
|
||||
<a-radio value="Adopt" v-if="query.TaskKey == 'fggcssh'">
|
||||
{{$t('adopt')}}
|
||||
</a-radio>
|
||||
<a-radio value="Returned" v-if="query.TaskKey == 'dezrrqr' || query.TaskKey == 'dezrrtjjfw' ||
|
||||
@@ -245,7 +245,7 @@
|
||||
|
||||
<style scoped lang="less">
|
||||
.box {
|
||||
padding: 0 24px 24px 24px;
|
||||
padding: 24px 24px 24px 24px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
@@ -269,7 +269,7 @@
|
||||
}
|
||||
|
||||
.title-text {
|
||||
width: 88px;
|
||||
/*width: 88px;*/
|
||||
text-align: left;
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
@@ -284,7 +284,7 @@
|
||||
}
|
||||
|
||||
.title-text-fq {
|
||||
width: 130px;
|
||||
/*width: 130px;*/
|
||||
text-align: left;
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
|
||||
<style scoped lang="less">
|
||||
.box {
|
||||
padding: 0 24px 24px 24px;
|
||||
padding: 0 0 24px 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user