合并分支 'fix_20230420' 到 'master'

Fix 20230420

查看合并请求 laws-nio/laws-weilai!312
This commit is contained in:
高嵩
2023-04-24 11:02:02 +08:00
53 changed files with 836 additions and 200 deletions
@@ -1,5 +1,6 @@
package com.jero.modules.project.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
@@ -270,10 +271,19 @@ public class ProjectLibraryBaseController extends JeroController<ProjectLibraryB
}
@AutoLog(value = "对接火山引擎接口getProjectInfo")
@ApiOperation(value="对接火山引擎接口-获取项目统计信息", notes="对接火山引擎接口-获取项目统计信息")
@ApiOperation(value="对接火山引擎接口-获取项目统计信息1", notes="对接火山引擎接口-获取项目统计信息1")
@PostMapping(value = "/getProjectInfo")
public Result<?> getProjectInfo(@RequestBody JSONObject jsonObject){
return Result.OK(jsonObject);
public Result<?> getProjectInfo(){
JSONArray resList = projectLibraryBaseService.getProjectInfo();
return Result.OK(resList);
}
@AutoLog(value = "对接火山引擎接口getProjectProgressInfo")
@ApiOperation(value="对接火山引擎接口-获取项目统计信息2", notes="对接火山引擎接口-获取项目统计信息2")
@PostMapping(value = "/getProjectProgressInfo")
public Result<?> getProjectProgressInfo(){
JSONArray resList = this.projectLibraryBaseService.getProjectProgressInfo();
return Result.OK(resList);
}
}
@@ -0,0 +1,67 @@
package com.jero.modules.project.enums;
import com.jero.common.constant.enums.CutEnum;
import org.apache.commons.lang.StringUtils;
/**
* 火山引擎对接-统计节点枚举类
*/
public enum HSStatisticalNodesEnum {
HS_FGRWQR("法规任务确认","Confirmation of regulatory tasks","1"),
HS_RZRWQR("认证任务确认","Certification task confirmation","2"),
HS_SJFHX("设计符合性流程","Design Compliance Process","3"),
HS_PRE_HOMO("Pre-Homo流程","Pre Homo Process","4"),
HS_RZJD("认证进度","Certification progress","5"),
HS_YZFHX("验证符合性流程","Verification of compliance process","6"),
HS_CSSJJD("参数收集进度","Parameter Collection Progress","7"),
;
String cnName;
String enName;
String value;
private HSStatisticalNodesEnum(String cnName, String enName, String value) {
this.cnName = cnName;
this.enName = enName;
this.value = value;
}
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 String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value,String cut) {
HSStatisticalNodesEnum[] values = values();
for (HSStatisticalNodesEnum complianceFlowStatusEnum : values) {
if (complianceFlowStatusEnum.value.equals(value)) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
return complianceFlowStatusEnum.cnName;
}else {
return complianceFlowStatusEnum.enName;
}
}
}
return null;
}
}
@@ -1,5 +1,6 @@
package com.jero.modules.project.service;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.project.entity.ProjectLibraryBase;
@@ -146,4 +147,16 @@ public interface IProjectLibraryBaseService extends IService<ProjectLibraryBase>
* @return
*/
ProjectLibraryBase selectById(String projectLibraryId);
/**
* 对接火山引擎接口-获取项目统计信息
* @return
*/
JSONArray getProjectInfo();
/**
* 对接火山引擎接口-获取项目统计信息
* @return
*/
JSONArray getProjectProgressInfo();
}
@@ -1,5 +1,7 @@
package com.jero.modules.project.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -9,6 +11,10 @@ import com.jero.common.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO;
import com.jero.modules.cert.collect.entity.ParamsManifestEO;
import com.jero.modules.cert.collect.enums.CollectManifestStateEnum;
import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService;
import com.jero.modules.cert.collect.service.IParamsManifestEOService;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.enums.DictCodeEnum;
@@ -22,6 +28,7 @@ import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
import com.jero.modules.project.mapper.ProjectTaskInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectUserPermissionMapper;
import com.jero.modules.project.service.*;
import com.jero.modules.project.vo.TimeNodeVO;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
@@ -56,7 +63,9 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.Collator;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -153,6 +162,11 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Autowired
private IProcessInfoDetailEOService processInfoDetailEOService;
@Autowired
private IParamsCollectManifestEOService paramsCollectManifestEOService;
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
/**
* 保存
*
@@ -2075,6 +2089,357 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
}
return result;
}
/**
* 对接火山引擎接口-获取项目统计信息
* @return
*/
@Override
public JSONArray getProjectInfo() {
Date now = new Date();
List<ProjectLibraryBase> plbList = this.getList(new ProjectLibraryBase());
JSONArray resList = new JSONArray();
for (ProjectLibraryBase plb: plbList) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("projectId",plb.getId());
jsonObject.put("projectName",plb.getShowName());
List<List<TimeNodeVO>> TimeNodeVOsList = projectTaskPlanningService.queryByProjectId(plb.getId(),CutEnum.CN.getValue());
//获取前置节点
TimeNodeVO preNodeTnVo = null;
//获取后置节点
TimeNodeVO postNodeTnVo = null;
if (ObjectUtils.isNotEmpty(TimeNodeVOsList) && TimeNodeVOsList.size() > 0) {
List<TimeNodeVO> TimeNodeVOList = TimeNodeVOsList.get(0);
for (TimeNodeVO tnVo : TimeNodeVOList) {
if (null != postNodeTnVo) {
break;
}
tnVo.setProjectId(plb.getId());
if (now.after(tnVo.getTime())) {
preNodeTnVo = tnVo;
}
if (now.before(tnVo.getTime())) {
postNodeTnVo = tnVo;
}
}
}
JSONArray preNodeList = getNodeList(preNodeTnVo);
jsonObject.put("preNode", preNodeList);
JSONArray postNodeList = getNodeList(postNodeTnVo);
jsonObject.put("postNode",postNodeList);
resList.add(jsonObject);
}
return resList;
}
@Override
public JSONArray getProjectProgressInfo() {
List<ProjectLibraryBase> plbList = this.getList(new ProjectLibraryBase());
JSONArray resList = new JSONArray();
for (ProjectLibraryBase plb: plbList) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("projectId",plb.getId());
jsonObject.put("projectName",plb.getShowName());
jsonObject.put("studio",plb.getStudioEngineerName());
List<List<TimeNodeVO>> TimeNodeVOsList = projectTaskPlanningService.queryByProjectId(plb.getId(),CutEnum.CN.getValue());
JSONArray preNodeList = new JSONArray();
if (ObjectUtils.isNotEmpty(TimeNodeVOsList) && TimeNodeVOsList.size() > 0) {
List<TimeNodeVO> TimeNodeVOList = TimeNodeVOsList.get(0);
for (TimeNodeVO tnVo : TimeNodeVOList) {
tnVo.setProjectId(plb.getId());
preNodeList.addAll(getNodeProgressList(tnVo));
}
}
jsonObject.put("preNode", preNodeList);
resList.add(jsonObject);
}
return resList;
}
private JSONArray getNodeProgressList(TimeNodeVO nodeTnVo) {
//根据节点获取对应进度和时间
JSONArray nodeList = new JSONArray();
if(ObjectUtils.isNotEmpty(nodeTnVo)){
String projectId = nodeTnVo.getProjectId();
QueryWrapper<ProjectLawsInventoryEO> pliQueryWrap = new QueryWrapper<>();
pliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectId);
List<ProjectLawsInventoryEO> pliEoList = this.projectLawsInventoryEOService.list(pliQueryWrap);
QueryWrapper<ProjectCertificationInventoryEO> pciQueryWrap = new QueryWrapper<>();
pciQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectId);
List<ProjectCertificationInventoryEO> pciEoList = this.projectCertificationInventoryEOService.list(pciQueryWrap);
QueryWrapper<ParamsManifestEO> pmQueryWrap = new QueryWrapper<>();
pmQueryWrap.lambda().eq(ParamsManifestEO::getProjectId,projectId);
List<ParamsManifestEO> pmEoList = this.paramsManifestEOService.list(pmQueryWrap);
List<ParamsCollectManifestEO> pcmEoList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(pmEoList)){
List<String> pmIdList = pmEoList.stream().map(ParamsManifestEO::getId).distinct().collect(Collectors.toList());
QueryWrapper<ParamsCollectManifestEO> pcmQueryWrap = new QueryWrapper<>();
pcmQueryWrap.lambda().in(ParamsCollectManifestEO::getParamsManifestId,pmIdList);
pcmEoList = this.paramsCollectManifestEOService.list(pcmQueryWrap);
}
Map<String,Object> getProgressParams = new HashMap<>();
getProgressParams.put("pliEoList",pliEoList);
getProgressParams.put("pciEoList",pciEoList);
getProgressParams.put("pcmEoList",pcmEoList);
if(ProjectTaskPlanningNameEnum.LEGAL_TASK_CONFIRMATION.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "法规任务确认");
preNode.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_FGRWQR.getValue(),getProgressParams));
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
JSONObject preNode1 = new JSONObject();
preNode1.put("nodeName", "认证任务确认");
preNode1.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_RZRWQR.getValue(),getProgressParams));
preNode1.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode1);
}else if(ProjectTaskPlanningNameEnum.DESIGN_DEADLINE.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "设计符合性流程");
preNode.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_SJFHX.getValue(),getProgressParams));
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
}else if(ProjectTaskPlanningNameEnum.VERIFY_DEADLINE.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "验证符合性流程");
preNode.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_YZFHX.getValue(),getProgressParams));
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
}else if(ProjectTaskPlanningNameEnum.ATTESTATION_START_TIME.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "Pre-Homo流程");
preNode.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_PRE_HOMO.getValue(),getProgressParams));
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
JSONObject preNode1 = new JSONObject();
preNode1.put("nodeName", "参数收集进度");
preNode1.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_CSSJJD.getValue(),getProgressParams));
preNode1.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode1);
}else if(ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "认证进度");
preNode.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_RZJD.getValue(),getProgressParams));
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
}
}
return nodeList;
}
private JSONArray getNodeList(TimeNodeVO nodeTnVo) {
//根据节点获取对应进度和时间
JSONArray nodeList = new JSONArray();
if(ObjectUtils.isNotEmpty(nodeTnVo)){
String projectId = nodeTnVo.getProjectId();
QueryWrapper<ProjectLawsInventoryEO> pliQueryWrap = new QueryWrapper<>();
pliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectId);
List<ProjectLawsInventoryEO> pliEoList = this.projectLawsInventoryEOService.list(pliQueryWrap);
QueryWrapper<ProjectCertificationInventoryEO> pciQueryWrap = new QueryWrapper<>();
pciQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectId);
List<ProjectCertificationInventoryEO> pciEoList = this.projectCertificationInventoryEOService.list(pciQueryWrap);
QueryWrapper<ParamsManifestEO> pmQueryWrap = new QueryWrapper<>();
pmQueryWrap.lambda().eq(ParamsManifestEO::getProjectId,projectId);
List<ParamsManifestEO> pmEoList = this.paramsManifestEOService.list(pmQueryWrap);
List<ParamsCollectManifestEO> pcmEoList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(pmEoList)){
List<String> pmIdList = pmEoList.stream().map(ParamsManifestEO::getId).distinct().collect(Collectors.toList());
QueryWrapper<ParamsCollectManifestEO> pcmQueryWrap = new QueryWrapper<>();
pcmQueryWrap.lambda().in(ParamsCollectManifestEO::getParamsManifestId,pmIdList);
pcmEoList = this.paramsCollectManifestEOService.list(pcmQueryWrap);
}
Map<String,Object> getProgressParams = new HashMap<>();
getProgressParams.put("pliEoList",pliEoList);
getProgressParams.put("pciEoList",pciEoList);
getProgressParams.put("pcmEoList",pcmEoList);
if(ProjectTaskPlanningNameEnum.LIST_CONFIRMATION.getName().equals(nodeTnVo.getName()) || ProjectTaskPlanningNameEnum.LEGAL_TASK_CONFIRMATION.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "法规任务确认");
preNode.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_FGRWQR.getValue(),getProgressParams));
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
JSONObject preNode1 = new JSONObject();
preNode1.put("nodeName", "认证任务确认");
preNode1.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_RZRWQR.getValue(),getProgressParams));
preNode1.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode1);
}else if(ProjectTaskPlanningNameEnum.DESIGN_DEADLINE.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "设计符合性流程");
preNode.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_SJFHX.getValue(),getProgressParams));
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
}else if(ProjectTaskPlanningNameEnum.PREHOMO_DEADLINE.getName().equals(nodeTnVo.getName()) ||ProjectTaskPlanningNameEnum.ATTESTATION_START_TIME.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "Pre-Homo流程");
preNode.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_PRE_HOMO.getValue(),getProgressParams));
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
JSONObject preNode1 = new JSONObject();
preNode1.put("nodeName", "参数收集进度");
preNode1.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_CSSJJD.getValue(),getProgressParams));
preNode1.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode1);
}else if(ProjectTaskPlanningNameEnum.CERTIFICATION_SUBMISSION.getName().equals(nodeTnVo.getName()) || ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "认证进度");
preNode.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_RZJD.getValue(),getProgressParams));
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
JSONObject preNode1 = new JSONObject();
preNode1.put("nodeName", "参数收集进度");
preNode1.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_CSSJJD.getValue(),getProgressParams));
preNode1.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode1);
}else if(ProjectTaskPlanningNameEnum.VERIFY_DEADLINE.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "验证符合性流程");
preNode.put("progress", this.getProgress(nodeTnVo,HSStatisticalNodesEnum.HS_YZFHX.getValue(),getProgressParams));
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
}
}
return nodeList;
}
public String getProgress(TimeNodeVO nodeTnVo,String statisticalNode,Map<String,Object> params){
DecimalFormat df = new DecimalFormat("#.00");
double result = 0;
List<ProjectLawsInventoryEO> pliEoList = (List<ProjectLawsInventoryEO>) params.get("pliEoList");
List<ProjectCertificationInventoryEO> pciEoList = (List<ProjectCertificationInventoryEO>) params.get("pciEoList");
List<ParamsCollectManifestEO> pcmEoList = (List<ParamsCollectManifestEO>) params.get("pcmEoList");
if (StringUtils.equals(statisticalNode,HSStatisticalNodesEnum.HS_FGRWQR.getValue())) {
int count = pliEoList.size() * 2;
if (count > 0) {
double designCompleteCount = (double) pliEoList.stream().filter(pliEo -> {
boolean flag = (
StringUtils.equals(pliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())
|| StringUtils.equals(pliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue())
|| StringUtils.equals(pliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| StringUtils.equals(pliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.INCONFORMITY.getValue())
|| StringUtils.equals(pliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.TO_TRACK.getValue())
|| StringUtils.equals(pliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.UNINVOLVED.getValue())
|| StringUtils.equals(pliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.TERMINATION_OF_TASK.getValue())
);
return flag;
}).count();
double verifyCompleteCount = (double) pliEoList.stream().filter(pliEo -> {
boolean flag = (
StringUtils.equals(pliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())
|| StringUtils.equals(pliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue())
|| StringUtils.equals(pliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| StringUtils.equals(pliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.INCONFORMITY.getValue())
|| StringUtils.equals(pliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.TO_TRACK.getValue())
|| StringUtils.equals(pliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.UNINVOLVED.getValue())
|| StringUtils.equals(pliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.TERMINATION_OF_TASK.getValue())
);
return flag;
}).count();
result = ((designCompleteCount + verifyCompleteCount) / count) * 100;
}
} else if (StringUtils.equals(statisticalNode,HSStatisticalNodesEnum.HS_RZRWQR.getValue())) {
int count = pciEoList.size();
if (count > 0) {
double completeCount = (double) pciEoList.stream().filter(pciEo -> {
boolean flag = (
StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())
|| StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue())
|| StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue())
|| StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue())
|| StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.UNINVOLVED.getValue())
);
return flag;
}).count();
result = (completeCount / count) * 100;
}
} else if (StringUtils.equals(statisticalNode,HSStatisticalNodesEnum.HS_SJFHX.getValue())) {
int count = pliEoList.size();
if (count > 0) {
double completeCount = (double) pliEoList.stream().filter(pliEo -> {
boolean flag = (
StringUtils.equals(pliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| StringUtils.equals(pliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.UNINVOLVED.getValue())
);
return flag;
}).count();
result = (completeCount / count) * 100;
}
} else if (StringUtils.equals(statisticalNode,HSStatisticalNodesEnum.HS_PRE_HOMO.getValue())) {
int count = pciEoList.size();
if (count > 0) {
double completeCount = (double) pciEoList.stream().filter(pciEo -> {
boolean flag = (
StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue())
|| StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.UNINVOLVED.getValue())
);
return flag;
}).count();
result = (completeCount / count) * 100;
}
} else if (StringUtils.equals(statisticalNode,HSStatisticalNodesEnum.HS_RZJD.getValue())) {
// 认证清单认证进度为 实验通过的是完成。
int count = pciEoList.size();
if (count > 0) {
double completeCount = (double)pciEoList.stream().filter(pciEo -> {
boolean flag = (
StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.TEST_PASSED.getValue())
);
return flag;
}).count();
result = (completeCount / count) * 100;
}
} else if (StringUtils.equals(statisticalNode,HSStatisticalNodesEnum.HS_YZFHX.getValue())) {
int count = pliEoList.size();
if (count > 0) {
double completeCount = (double) pliEoList.stream().filter(pliEo -> {
boolean flag = (
StringUtils.equals(pliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| StringUtils.equals(pliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.UNINVOLVED.getValue())
);
return flag;
}).count();
result = (completeCount / count) * 100;
}
} else if (StringUtils.equals(statisticalNode,HSStatisticalNodesEnum.HS_CSSJJD.getValue())) {
if(CollectionUtils.isNotEmpty(pcmEoList)){
int count = pcmEoList.size();
double completeCount = (double) pcmEoList.stream().filter(pcmEo -> {
boolean flag = (
StringUtils.equals(pcmEo.getState(), CollectManifestStateEnum.SUBMIT.getValue())
|| StringUtils.equals(pcmEo.getState(),CollectManifestStateEnum.SYNC_REPORT.getValue())
);
return flag;
}).count();
result = (completeCount / count) * 100;
}
}
return result != 0 ? df.format(result) : "0";
}
}
+1
View File
@@ -1800,4 +1800,5 @@ module.exports = {
responsiblepersonforverifyingcompliance:'Responsible person for verifying compliance',
verifytheconformancedeliverabletype:'Verify the conformance deliverable type',
designaconformancedeliverabletype:'Design a conformance deliverable type',
reasonForReturnOfCompliance:'Reason for compliance return',
}
+1
View File
@@ -1902,4 +1902,5 @@ module.exports = {
responsiblepersonforverifyingcompliance:'验证符合性责任人',
verifytheconformancedeliverabletype:'验证符合性交付物类型',
designaconformancedeliverabletype:'设计符合性交付物类型',
reasonForReturnOfCompliance: '符合性退回原因',
}
@@ -112,7 +112,7 @@
title: this.$t('areaOfResponsibility'),
dataIndex: 'dutyTerritory_dictText',
align: 'left',
width: 200,
width: 100,
ellipsis: true
}
],
+1 -1
View File
@@ -36,7 +36,7 @@
</span>
<span slot="detailText" slot-scope="text,record">
<span class="text" :title="text">
{{text && text.length > 18?text.slice(0,17)+'...':text}}
{{text && text.length > 25?text.slice(0,24)+'...':text}}
</span>
</span>
<span slot="detail" slot-scope="text,record">
@@ -557,7 +557,7 @@
dataIndex: 'implementationDate',
align: 'left',
ellipsis: true,
width: 150,
width: 190,
scopedSlots: { title: 'implementationDateTwo' }
},
{
@@ -829,6 +829,15 @@
if (res.db_field_name == 'nioNumber') {
this.columns[index].width = 120
}
if (res.db_field_name == 'dutyTerritory') {
this.columns[index].width = 120
}
if (res.db_field_name == 'sdt') {
this.columns[index].width = 130
}
if (res.db_field_name == 'dre') {
this.columns[index].width = 120
}
if (res.click1) {
this.columns[index].scopedSlots = {
customRender: 'operationzr'
@@ -710,6 +710,15 @@
if (res.db_field_name == 'nioNumber') {
this.columns[index].width = 120
}
if (res.db_field_name == 'dutyTerritory') {
this.columns[index].width = 120
}
if (res.db_field_name == 'sdt') {
this.columns[index].width = 130
}
if (res.db_field_name == 'dre') {
this.columns[index].width = 120
}
if (res.click) {
// 工程接口人列表修改
this.columns[index].scopedSlots = {
@@ -240,7 +240,7 @@
title: this.$t('correspondingStandard'),
align: 'left',
ellipsis: true,
width: 170,
width: 150,
dataIndex: 'corresponding_standard'
}
]
@@ -203,14 +203,14 @@
{
title: this.$t('ProcessStatus'),
align: 'left',
width: 140,
width: 100,
ellipsis: true,
dataIndex: 'gatherResultShow'
},
{
title: this.$t('Sponsor'),
align: 'left',
width: 140,
width: 110,
ellipsis: true,
dataIndex: 'createBy'
},
@@ -218,7 +218,7 @@
title: this.$t('brand'),
align: 'left',
ellipsis: true,
width: 140,
width: 120,
dataIndex: 'brand_text'
},
{
@@ -239,7 +239,7 @@
title: this.$t('operation'),
align: 'left',
fixed: 'right',
width: 210,
width: 150,
scopedSlots: { customRender: 'operation' }
}
],
@@ -138,14 +138,14 @@
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true,
width: 228
width: 190
},
{
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true,
width: 228
width: 190
}
],
dataList: [],
@@ -129,21 +129,21 @@
title: this.$t('monthlyLanguage'),
align: 'left',
dataIndex: 'language',
width: 195,
width: 120,
ellipsis: true,
scopedSlots: { customRender: 'language' }
},
{
title: this.$t('releaseStatus'),
align: 'left',
width: 175,
width: 100,
ellipsis: true,
dataIndex: 'issueStatus_dictText'
},
{
title: this.$t('uploadTime'),
align: 'left',
width: 305,
width: 180,
ellipsis: true,
dataIndex: 'createTime'
},
@@ -151,14 +151,14 @@
title: this.$t('uploadedBy'),
align: 'left',
ellipsis: true,
width: 170,
width: 120,
dataIndex: 'createBy'
},
{
title: this.$t('operation'),
align: 'left',
fixed: 'right',
width: 240,
width: 180,
scopedSlots: { customRender: 'operation' }
}
]
@@ -153,14 +153,14 @@
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true,
width: 228
width: 190
},
{
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true,
width: 228
width: 190
}
// {
// title: this.$t('correspondingStandard'),
@@ -369,7 +369,7 @@
title: this.$t('correspondingStandard'),
align: 'left',
ellipsis: true,
width: 170,
width: 150,
dataIndex: 'corresponding_standard'
},
{
@@ -272,14 +272,14 @@
{
title: this.$t('ProcessStatus'),
align: 'left',
width: 170,
width: 100,
ellipsis: true,
dataIndex: 'flowStatusName'
},
{
title: this.$t('Sponsor'),
align: 'left',
width: 140,
width: 110,
ellipsis: true,
dataIndex: 'createBy'
},
@@ -287,21 +287,21 @@
title: this.$t('brand'),
align: 'left',
ellipsis: true,
width: 140,
width: 120,
dataIndex: 'brand_text'
},
{
title: this.$t('dateOfInitiation'),
align: 'left',
ellipsis: true,
width: 170,
width: 130,
dataIndex: 'startTime'
},
{
title: this.$t('closingDate'),
align: 'left',
ellipsis: true,
width: 170,
width: 130,
dataIndex: 'endTime'
},
{
@@ -323,7 +323,7 @@
title: this.$t('vehicleInProductionDate'),
align: 'left',
ellipsis: true,
width: 210,
width: 190,
sorter: true,
dataIndex: 'implement_time'
},
@@ -332,7 +332,7 @@
align: 'left',
ellipsis: true,
sorter: true,
width: 210,
width: 190,
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1'
},
{
@@ -157,14 +157,14 @@
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true,
width: 228
width: 190
},
{
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true,
width: 228
width: 190
}
// {
// title: this.$t('correspondingStandard'),
@@ -138,14 +138,14 @@ export default {
{
title: this.$t('ImplementationDate'),
align: 'left',
width: 200,
width: 190,
dataIndex: 'xin1Che1Xing2Shi2Shi1Ri4Qi1',
ellipsis: true
},
{
title: this.$t('vehicleInProductionDate'),
align: 'left',
width: 220,
width: 190,
dataIndex: 'implementTime',
ellipsis: true
},
@@ -182,7 +182,7 @@ export default {
align: 'left',
ellipsis: true,
dataIndex: 'dutyTerritory_dictText',
width: 180
width: 100
},
],
fieldList: [
@@ -65,14 +65,27 @@
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('subtitle')">
<span>{{$t('subtitle')}}</span>
<div class="title-text" :title="$t('areaOfResponsibility')">
<span>{{$t('areaOfResponsibility')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('subtitle')"
v-model="queryParam.subtitle"></j-input>
<!-- <j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('subtitle')"-->
<!-- v-model="queryParam.dutyTerritory"></j-input>-->
<j-multi-select-tag class="box-input-search" v-model="queryParam.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</div>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('subtitle')">
<span>{{$t('subtitle')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('subtitle')"
v-model="queryParam.subtitle"></j-input>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('vehicleInProductionDate')">
@@ -84,8 +97,8 @@
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('StandardImplementationDate')">
<span>{{$t('StandardImplementationDate')}}</span>
<div class="title-text" :title="$t('ImplementationDate')">
<span>{{$t('ImplementationDate')}}</span>
</div>
<a-range-picker class="box-input" v-model="queryParam.xin1Che1Xing2Shi2Shi1Ri4Qi1String"
@change="onChangedatet"></a-range-picker>
@@ -464,7 +477,7 @@
title: this.$t('correspondingStandard'),
align: 'left',
dataIndex: 'correspondingStandard',
width: 180,
width: 150,
sorter: true,
ellipsis: true
},
@@ -479,7 +492,7 @@
{
title: this.$t('ImplementationDate'),
align: 'left',
width: 200,
width: 190,
dataIndex: 'xin1Che1Xing2Shi2Shi1Ri4Qi1String',
scopedSlots: { customRender: 'titleName' },
sorter: true,
@@ -488,7 +501,7 @@
{
title: this.$t('vehicleInProductionDate'),
align: 'left',
width: 220,
width: 190,
dataIndex: 'implementTimeString',
scopedSlots: { customRender: 'titleName' },
sorter: true,
@@ -522,7 +535,7 @@
title: 'WVTA ID',
align: 'left',
dataIndex: 'wvtaId',
width: 180,
width: 95,
sorter: true,
ellipsis: true
},
@@ -532,7 +545,7 @@
ellipsis: true,
sorter: true,
dataIndex: 'dutyTerritory_dictText',
width: 180
width: 110
},
// {
// title: this.$t('regulatoryEngineer'),
+2 -2
View File
@@ -412,14 +412,14 @@
align: 'left',
ellipsis: true,
dataIndex: 'createTime',
width: 245
width: 150
},
{
title: this.$t('operation'),
align: 'left',
fixed: 'right',
ellipsis: true,
width: 250,
width: 240,
scopedSlots: { customRender: 'operation' }
}
],
@@ -15,9 +15,9 @@
</div>
</a-col>
</a-row>
<div class="bootom-button">
<a-button type="primary" style='margin-top: 50px' @click='back'>{{$t('returntofill')}}</a-button>
</div>
<!-- <div class="bootom-button">-->
<!-- <a-button type="primary" style='margin-top: 50px' @click='back'>{{$t('returntofill')}}</a-button>-->
<!-- </div>-->
</div>
</template>
@@ -7,35 +7,35 @@
<a-icon type="form"/>
{{$t('fillintherecord')}}
</div>
<div @click="historicalrecordClick"
class="operator-text">
<a-icon type="copy"/>
{{$t('historicalrecord')}}
</div>
<!-- <div @click="historicalrecordClick"-->
<!-- class="operator-text">-->
<!-- <a-icon type="copy"/>-->
<!-- {{$t('historicalrecord')}}-->
<!-- </div>-->
</div>
<a-tabs class="tabs" v-model="tabActive" @change="callback">
<a-tab-pane disabled :key="$t('upgradetargetmodel')" :tab="$t('upgradetargetmodel')">
<a-tabs class="tabs" v-model="tabActive" @change="callback" @tabClick="tabClick">
<a-tab-pane :key="$t('upgradetargetmodel')" :tab="$t('upgradetargetmodel')">
<upgradetargetmodel v-if="tabActive == $t('upgradetargetmodel')" @basicInformationForm='basicInformationForm' ref="dealtWithRef"/>
</a-tab-pane>
<a-tab-pane disabled :key="$t('thetargetvehicleofthisupgrade')" :tab="$t('thetargetvehicleofthisupgrade')">
<a-tab-pane :key="$t('thetargetvehicleofthisupgrade')" :tab="$t('thetargetvehicleofthisupgrade')">
<thetargetvehicleofthisupgrade v-if="tabActive == $t('thetargetvehicleofthisupgrade')" @upgradeRequirementsup='upgradeRequirementsup' @upgradeRequirementsdown='upgradeRequirementsdown' ref="doneListRef"/>
</a-tab-pane>
<a-tab-pane disabled :key="$t('upgradeimpactassessment')" :tab="$t('upgradeimpactassessment')">
<a-tab-pane :key="$t('upgradeimpactassessment')" :tab="$t('upgradeimpactassessment')">
<upgradeimpactassessment v-if="tabActive == $t('upgradeimpactassessment')" @safetyPrecautionsup='safetyPrecautionsup' @safetyPrecautionsdown='safetyPrecautionsdown' ref="SentListRef"/>
</a-tab-pane>
<a-tab-pane disabled :key="$t('upgradehavechanged')" :tab="$t('upgradehavechanged')">
<a-tab-pane :key="$t('upgradehavechanged')" :tab="$t('upgradehavechanged')">
<upgradehavechanged v-if="tabActive == $t('upgradehavechanged')" @upgradedonlineup='upgradedonlineup' @upgradedonlinedown='upgradedonlinedown' ref="upgradedonlineRef"/>
</a-tab-pane>
<a-tab-pane disabled :key="$t('auxiliaryupgradehavechanged')" :tab="$t('auxiliaryupgradehavechanged')">
<a-tab-pane :key="$t('auxiliaryupgradehavechanged')" :tab="$t('auxiliaryupgradehavechanged')">
<auxiliaryupgradehavechanged v-if="tabActive == $t('auxiliaryupgradehavechanged')" @beupgradedonlineup='beupgradedonlineup' @beupgradedonlinedown='beupgradedonlinedown' ref="beupgradedonlineRef"/>
</a-tab-pane>
<a-tab-pane disabled :key="$t('usernotification')" :tab="$t('usernotification')">
<a-tab-pane :key="$t('usernotification')" :tab="$t('usernotification')">
<usernotification v-if="tabActive == $t('usernotification')" @recordparametersup='recordparametersup' @recordparametersdown='recordparametersdown' ref="recordparametersRef"/>
</a-tab-pane>
<a-tab-pane disabled :key="$t('informationaboutotherupgradetasks')" :tab="$t('informationaboutotherupgradetasks')">
<a-tab-pane :key="$t('informationaboutotherupgradetasks')" :tab="$t('informationaboutotherupgradetasks')">
<informationaboutotherupgradetasks v-if="tabActive == $t('informationaboutotherupgradetasks')" @otherup='otherup' ref="otherRef"/>
</a-tab-pane>
<a-tab-pane disabled :key="$t('historicalrecord')" :tab="$t('historicalrecord')">
<a-tab-pane :key="$t('historicalrecord')" :tab="$t('historicalrecord')">
<historicalrecord v-if="tabActive == $t('historicalrecord')" ref="historicalrecordRef" @historicalrecordup='historicalrecordup'/>
</a-tab-pane>
</a-tabs>
@@ -162,13 +162,33 @@ export default {
},
],
toggleSearchStatus: false,
tabActive: this.$t('upgradetargetmodel')
tabActive: this.$t('upgradetargetmodel'),
oldName: this.$t('upgradetargetmodel'),
}
},
methods: {
callback(value) {
this.tabActive = value
},
tabClick(tab,event){
this.tabActive=tab
if(this.oldName == this.$t('upgradetargetmodel')){
this.$refs.dealtWithRef.save()
} else if(this.oldName == this.$t('thetargetvehicleofthisupgrade')){
this.$refs.doneListRef.save()
} else if(this.oldName == this.$t('upgradeimpactassessment')){
this.$refs.SentListRef.save()
} else if(this.oldName == this.$t('upgradehavechanged')){
this.$refs.upgradedonlineRef.save()
} else if(this.oldName == this.$t('auxiliaryupgradehavechanged')){
this.$refs.beupgradedonlineRef.save()
} else if(this.oldName == this.$t('usernotification')){
this.$refs.recordparametersRef.save()
} else if(this.oldName == this.$t('informationaboutotherupgradetasks')){
this.$refs.otherRef.save()
}
this.oldName = tab
},
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
@@ -15,9 +15,9 @@
</div>
</a-col>
</a-row>
<div class="bootom-button">
<a-button type="primary" style='margin-top: 50px' @click='back'>{{$t('returntofill')}}</a-button>
</div>
<!-- <div class="bootom-button">-->
<!-- <a-button type="primary" style='margin-top: 50px' @click='back'>{{$t('returntofill')}}</a-button>-->
<!-- </div>-->
</div>
</template>
@@ -7,35 +7,35 @@
<a-icon type="form"/>
{{$t('fillintherecord')}}
</div>
<div @click="historicalrecordClick"
class="operator-text">
<a-icon type="copy"/>
{{$t('historicalrecord')}}
</div>
<!-- <div @click="historicalrecordClick"-->
<!-- class="operator-text">-->
<!-- <a-icon type="copy"/>-->
<!-- {{$t('historicalrecord')}}-->
<!-- </div>-->
</div>
<a-tabs class="tabs" v-model="tabActive" @change="callback">
<a-tab-pane disabled :key="$t('basicinformationofvehicletype')" :tab="$t('basicinformationofvehicletype')">
<a-tabs class="tabs" v-model="tabActive" @change="callback" @tabClick="tabClick">
<a-tab-pane :key="$t('basicinformationofvehicletype')" :tab="$t('basicinformationofvehicletype')">
<basicInformation v-if="tabActive == $t('basicinformationofvehicletype')" @basicInformationForm='basicInformationForm' ref="dealtWithRef" />
</a-tab-pane>
<a-tab-pane disabled :key="$t('onlineupgraderequirements')" :tab="$t('onlineupgraderequirements')">
<a-tab-pane :key="$t('onlineupgraderequirements')" :tab="$t('onlineupgraderequirements')">
<upgradeRequirements v-if="tabActive == $t('onlineupgraderequirements')" @upgradeRequirementsup='upgradeRequirementsup' @upgradeRequirementsdown='upgradeRequirementsdown' ref="doneListRef" />
</a-tab-pane>
<a-tab-pane disabled :key="$t('safetymeasure')" :tab="$t('safetymeasure')">
<a-tab-pane :key="$t('safetymeasure')" :tab="$t('safetymeasure')">
<safetyPrecautions v-if="tabActive == $t('safetymeasure')" @safetyPrecautionsup='safetyPrecautionsup' @safetyPrecautionsdown='safetyPrecautionsdown' ref="SentListRef" />
</a-tab-pane>
<a-tab-pane disabled :key="$t('upgradedonline')" :tab="$t('upgradedonline')">
<a-tab-pane :key="$t('upgradedonline')" :tab="$t('upgradedonline')">
<upgradedonline v-if="tabActive == $t('upgradedonline')" @upgradedonlineup='upgradedonlineup' @upgradedonlinedown='upgradedonlinedown' ref="upgradedonlineRef" />
</a-tab-pane>
<a-tab-pane disabled :key="$t('beupgradedonline')" :tab="$t('beupgradedonline')">
<a-tab-pane :key="$t('beupgradedonline')" :tab="$t('beupgradedonline')">
<beupgradedonline v-if="tabActive == $t('beupgradedonline')" @beupgradedonlineup='beupgradedonlineup' @beupgradedonlinedown='beupgradedonlinedown' ref="beupgradedonlineRef" />
</a-tab-pane>
<a-tab-pane disabled :key="$t('recordparameters')" :tab="$t('recordparameters')">
<a-tab-pane :key="$t('recordparameters')" :tab="$t('recordparameters')">
<recordparameters v-if="tabActive == $t('recordparameters')" @recordparametersup='recordparametersup' @recordparametersdown='recordparametersdown' ref="recordparametersRef" />
</a-tab-pane>
<a-tab-pane disabled :key="$t('other')" :tab="$t('other')">
<a-tab-pane :key="$t('other')" :tab="$t('other')">
<other v-if="tabActive == $t('other')" @otherup='otherup' ref="otherRef" />
</a-tab-pane>
<a-tab-pane disabled :key="$t('historicalrecord')" :tab="$t('historicalrecord')">
<a-tab-pane :key="$t('historicalrecord')" :tab="$t('historicalrecord')">
<historicalrecord v-if="tabActive == $t('historicalrecord')" ref="historicalrecordRef" @historicalrecordup='historicalrecordup'/>
</a-tab-pane>
</a-tabs>
@@ -163,6 +163,7 @@ export default {
],
toggleSearchStatus: false,
tabActive: this.$t('basicinformationofvehicletype'),
oldName: this.$t('basicinformationofvehicletype'),
otaId:''
}
},
@@ -170,6 +171,25 @@ export default {
callback(value) {
this.tabActive = value
},
tabClick(tab,event){
this.tabActive=tab
if(this.oldName == this.$t('basicinformationofvehicletype')){
this.$refs.dealtWithRef.save()
} else if(this.oldName == this.$t('onlineupgraderequirements')){
this.$refs.doneListRef.save()
} else if(this.oldName == this.$t('safetymeasure')){
this.$refs.SentListRef.save()
} else if(this.oldName == this.$t('upgradedonline')){
this.$refs.upgradedonlineRef.save()
} else if(this.oldName == this.$t('beupgradedonline')){
this.$refs.beupgradedonlineRef.save()
} else if(this.oldName == this.$t('recordparameters')){
this.$refs.recordparametersRef.save()
} else if(this.oldName == this.$t('other')){
this.$refs.otherRef.save()
}
this.oldName = tab
},
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
@@ -160,7 +160,7 @@
{
title: this.$t('entryName'),
align: 'left',
width: 405,
width: 300,
dataIndex: 'projectName',
sorter:true,
scopedSlots: { customRender: 'projectName' }
@@ -168,20 +168,20 @@
{
title: this.$t('ListTitle'),
align: 'left',
width: 500,
width: 400,
dataIndex: 'title',
},
{
title: this.$t('Version'),
align: 'left',
width: 384,
width: 90,
dataIndex: 'version'
},
{
title: this.$t('operation'),
align: 'left',
fixed: 'right',
width: 220,
width: 200,
scopedSlots: { customRender: 'operation' }
}
],
@@ -215,7 +215,7 @@ export default {
title: this.$t('operation'),
align: 'left',
fixed: 'right',
width: 200,
width: 130,
scopedSlots: { customRender: 'operation' }
}
],
@@ -185,7 +185,7 @@ export default {
title: this.$t('areaOfResponsibility'),
align: 'left',
dataIndex: 'dutyTerritory_dictText',
width: 259,
width: 100,
sorter: true,
ellipsis: true,
},
@@ -194,14 +194,14 @@ export default {
align: 'left',
dataIndex: 'createTime',
sorter: true,
width: 265,
width: 200,
ellipsis: true,
},
{
title: this.$t('operation'),
align: 'left',
fixed: 'right',
width: 200,
width: 130,
scopedSlots: { customRender: 'operation' }
}
],
@@ -33,28 +33,28 @@
v-model="formInline.paramsName"></a-input>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('NareaOfResponsibility')">
<span>{{$t('NareaOfResponsibility')}}</span>
</div>
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</div>
</a-col>
<!-- <a-col :md="6" :sm="8">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text" :title="$t('certificationCategory')">-->
<!-- <span>{{$t('certificationCategory')}}</span>-->
<!-- </div>-->
<!-- <j-dict-select-tag class="box-input" v-model="formInline.certCategory"-->
<!-- :placeholder="$t('PleaseSelect')+$t('certificationCategory')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'cert_category'"/>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :md="6" :sm="8">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text" :title="$t('NareaOfResponsibility')">-->
<!-- <span>{{$t('NareaOfResponsibility')}}</span>-->
<!-- </div>-->
<!-- <j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"-->
<!-- :placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
<!-- </div>-->
<!-- </a-col>-->
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('certificationCategory')">
<span>{{$t('certificationCategory')}}</span>
</div>
<j-dict-select-tag class="box-input" v-model="formInline.certCategory"
:placeholder="$t('PleaseSelect')+$t('certificationCategory')"
:type="'select'"
:triggerChange="false" :dictCode="'cert_category'"/>
</div>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="8">
<div class="box-title-text">
@@ -300,12 +300,31 @@
</div>
</a-popconfirm>
<!-- 角色切换 -->
<div class="operator-text"
v-if="!this.$route.query.it"
@click="roleSwitchingClick">
<a-icon type="select"/>
{{ $t('roleSwitching') }} ({{ $t(this.rolename)}})
</div>
<!-- <div class="operator-text"-->
<!-- v-if="!this.$route.query.it"-->
<!-- @click="roleSwitchingClick">-->
<!-- <a-icon type="select"/>-->
<!-- {{ $t('roleSwitching') }} ({{ $t(this.rolename)}})-->
<!-- </div>-->
<a-popconfirm overlayClassName="popconfirmDetails"
:visible="visible"
@visibleChange="handleVisibleChange"
placement="bottomRight">
<template slot="title" id="popconfirmDetails">
<div @click="roleSwitchingClick(item.value)"
v-for="(item,index) in RoleType"
class="operator-text-title"
:class="{'operator-text-title-color':item.label == rolename ? true : false}"
:title="item.label">
{{ item.label }}
</div>
<JLoading :loading="JTextLoading"></JLoading>
</template>
<div class="operator-text" style="position: relative">
<a-icon type="select"/>
{{rolename}}
</div>
</a-popconfirm>
</div>
<div style="width: 100%">
<!-- 表格-10控件-->
@@ -609,47 +628,47 @@
this.statusList = [
{
value: '1',
title: this.$t('CollectionInitiated'),
text: this.$t('CollectionInitiated'),
key: '1'
},
{
value: '2',
title: this.$t('handledInterface'),
text: this.$t('handledInterface'),
key: '2'
},
{
value: '3',
title: this.$t('ReturnedPerson'),
text: this.$t('ReturnedPerson'),
key: '3'
},
{
value: '4',
title: this.$t('completed'),
text: this.$t('completed'),
key: '4'
},
{
value: '5',
title: this.$t('Filledreturn'),
text: this.$t('Filledreturn'),
key: '5'
},
{
value: '6',
title: this.$t('Submitted'),
text: this.$t('Submitted'),
key: '6'
},
{
value: '7',
title: this.$t('ReturnedEngineer'),
text: this.$t('ReturnedEngineer'),
key: '7'
},
{
value: '8',
title: this.$t('SynchronizedLibrary'),
text: this.$t('SynchronizedLibrary'),
key: '8'
},
{
value: '9',
title: this.$t('alteration'),
text: this.$t('alteration'),
key: '9'
}
]
@@ -747,6 +766,7 @@
customizevisible: false,
indeterminate: false,
checkAll: false,
visible: false,
selectedValue: [],
checkedList: ['nio_number', 'params_name', 'operation'],
// customizeList: [
@@ -875,6 +895,7 @@
selectedRowKeysArray: '',
templatetitle: '',
templatetitleId: '',
roleSwitchName: '',
rowId: '',
version: 0,
confirmLoading: false,
@@ -905,6 +926,8 @@
},
rules: {},
FreezeList: [], // 冻结字段
roleSwitchingList: [],
JTextLoading: false,
visibleRoleSwitching: false, // 角色切换
confirmLoadingRoleSwitching: false,
formInlineRoleSwitching: {},
@@ -1011,7 +1034,9 @@
clearTimeout(this.timerOne)
}, 300000)
},
handleVisibleChange(visible) {
this.visible = visible
},
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
@@ -1092,41 +1117,104 @@
})
}
},
roleSwitchingClick() {
this.visibleRoleSwitching = true
roleSwitchingClick(roleCode) {
console.log(roleCode,1111)
this.JTextLoading = true
// this.visibleRoleSwitching = true
this.$nextTick(() => {
this.formInlineRoleSwitching.roleSwitchingCode = this.currentPersonRole
this.$refs.ruleFormRoleSwitching.clearValidate()
// this.$refs.ruleFormRoleSwitching.clearValidate()
clearTimeout(this.timeBatch)
this.timeBatch = setTimeout(() => {
if (this.currentPersonRole == 'dre') {
this.handlePreservation()
}
}, 10000)
// if (this.currentPersonRole == 'dre') {
// this.timeBatch = setInterval(() => {
// this.handlePreservation();
// }, 10000);
// var interval = setInterval(this.handlePreservation(),10000);
// /* if 5 minutes no operation then logout */
// var maxTime = 120; // seconds
// var time = maxTime;
// $('body').on('keydown mousemove mousedown', function(e) {
// time = maxTime; // reset
// });
// var intervalId = setInterval(function() {
// time--;
// if (time <= 0) {
// ShowInvalidLoginMessage();
// clearInterval(intervalId);
// }
// }, 10000)
// function ShowInvalidLoginMessage() {
// // 停止定时器
// clearInterval(interval);
// }
// }
})
if (this.$route.query.type == '1') {
let query = {
userType: roleCode ? roleCode : this.$route.query.userType,
paramsManifestId: this.$route.query.id,
projectId: this.$route.query.projectId,
userId: this.userInfo().id
}
this.confirmLoadingRoleSwitching = true
postAction('/params/userTypeLog/edit', query).then((res) => {
if (res.success) {
this.currentPersonRole = roleCode ? roleCode : this.$route.query.userType
this.visibleRoleSwitching = false
this.confirmLoadingRoleSwitching = false
this.JTextLoading = false
this.visible = false
localStorage.setItem('currentPersonRole', JSON.stringify(roleCode ? roleCode : this.$route.query.userType))
this.RoleType.forEach((item, index) => {
if (item.value == this.currentPersonRole) {
this.rolename = item.label
}
})
this.selectedRowKeysValue = []
} else {
this.confirmLoadingRoleSwitching = false
this.JTextLoading = false
this.$message.warning(this.$t('operationFailed'))
}
})
} else {
// this.$refs.ruleFormRoleSwitching.validate(valid => {
// if (valid) {
let query = {
userType: roleCode,
paramsManifestId: this.$route.query.id,
projectId: this.$route.query.projectId,
userId: this.userInfo().id
}
this.confirmLoadingRoleSwitching = true
postAction('/params/userTypeLog/edit', query).then((res) => {
if (res.success) {
this.currentPersonRole = roleCode
this.$message.success(this.$t('OperationSuccessful'))
this.visibleRoleSwitching = false
this.confirmLoadingRoleSwitching = false
this.JTextLoading = false
this.visible = false
localStorage.setItem('currentPersonRole', JSON.stringify(roleCode))
this.RoleType.forEach((item, index) => {
if (item.value == this.currentPersonRole) {
this.rolename = item.label
}
})
this.selectedRowKeysValue = []
} else {
this.confirmLoadingRoleSwitching = false
this.JTextLoading = false
this.$message.warning(this.$t('operationFailed'))
}
})
// }
// })
}
// let query = {
// roleCode: roleSwitchingCode,
// id: this.AndUserId,
// projectLibraryId: this.$route.query.id,
// modelType: 'Laws inventory'
// }
// // this.confirmLoadingRoleSwitching = true
// postAction(this.url.AndUserIdEdit, query).then((res) => {
// if (res.success) {
// this.roleSwitchingCode = roleSwitchingCode
// this.$message.success(this.$t('OperationSuccessful'))
// // this.visibleRoleSwitching = false
// // this.confirmLoadingRoleSwitching = false
// this.$emit('getRoleSwitch', roleSwitchingCode)
// this.selectedRowKeys = []
// this.getList()
// } else {
// this.confirmLoadingRoleSwitching = false
// this.$message.warning(this.$t('operationFailed'))
// }
// })
},
GetgetLoginUserType() {
this.$refs.CollectionTabel.getLoginUserType()
@@ -2694,9 +2782,26 @@
.text-wraning {
word-break: break-word;
}
.operator-text-title-color {
color: #00B3BE;
}
</style>
<style lang='less'>
.popconfirmIndex .ant-popover-message-title {
margin-bottom: 50px;
}
</style>
<style>
.popconfirmDetails {
z-index: 999;
/*top: 42px !important;*/
}
.popconfirmDetails .ant-popover-buttons {
display: none !important;
}
.popconfirmDetails .anticon-exclamation-circle {
display: none !important;
}
</style>
@@ -271,7 +271,7 @@
{
title: this.$t('areaOfResponsibility'),
align: 'left',
width: 180,
width: 100,
sorter:true,
dataIndex: 'areaOfResponsibility',
scopedSlots: { customRender: 'areaOfResponsibility' }
@@ -134,7 +134,7 @@
dataIndex: 'dutyTerritory_dictText',
align: 'left',
ellipsis: true,
width: 190
width: 100
}
],
dataList: [],
@@ -123,7 +123,7 @@
title: this.$t('areaOfResponsibility'),
align: 'left',
dataIndex: 'dutyTerritoryName',
width: 200,
width: 100,
ellipsis: true
},
{
@@ -671,7 +671,7 @@
title: this.$t('configurationItem'),
align: 'left',
dataIndex: 'configItem',
width: 75,
width: 85,
ellipsis: true
},
{
@@ -149,14 +149,14 @@
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true,
width: 228
width: 190
},
{
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true,
width: 228
width: 190
},
// {
// title: this.$t('correspondingStandard'),
@@ -763,7 +763,7 @@
ellipsis: true,
sorter: true,
dataIndex: 'dutyTerritory_dictText',
width: 180
width: 120
},
{
title: this.$t('regulatoryEngineer'),
@@ -771,7 +771,7 @@
ellipsis: true,
sorter: true,
dataIndex: 'regulationOwnerName',
width: 180
width: 130
},
{
title: this.$t('engineeringInterfacePerson'),
@@ -779,7 +779,7 @@
ellipsis: true,
sorter: true,
dataIndex: 'engineeringInterfacePersonName',
width: 180
width: 130
},
{
title: this.$t('remarks'),
@@ -796,7 +796,7 @@
title: this.$t('personLiable'),
dataIndex: 'designDutyIdName',
align: 'left',
width: 180,
width: 110,
sorter: true,
ellipsis: true
},
@@ -842,7 +842,7 @@
title: this.$t('personLiable'),
dataIndex: 'verifyDutyIdName',
align: 'left',
width: 180,
width: 110,
ellipsis: true,
sorter: true
},
@@ -300,7 +300,7 @@
align: 'left',
dataIndex: 'dutyTerritory_dictText',
ellipsis: true,
width: 153
width: 100
},
{
align: 'left',
@@ -128,7 +128,7 @@
scopedSlots: { customRender: 'ProcessType' },
ellipsis: true,
sorter:true,
width: 180
width: 150
},
{
title: this.$t('areaOfResponsibility'),
@@ -136,7 +136,7 @@
dataIndex: 'dutyTerritory',
ellipsis: true,
sorter:true,
width: 180
width: 100
},
{
title: this.$t('problemType'),
@@ -144,7 +144,7 @@
dataIndex: 'problemType',
ellipsis: true,
sorter:true,
width: 180
width: 150
},
{
title: this.$t('Sponsor'),
@@ -152,7 +152,7 @@
dataIndex: 'initiator',
ellipsis: true,
sorter:true,
width: 140
width: 100
},
{
title: this.$t('personLiable'),
@@ -160,7 +160,7 @@
dataIndex: 'duty',
ellipsis: true,
sorter:true,
width: 140
width: 100
}
],
total: 0,
@@ -59,7 +59,7 @@
title: this.$t('areaOfResponsibility'),
dataIndex: 'dutyTerritoryName',
align: 'left',
width: 400,
width: 100,
ellipsis: true,
scopedSlots: { customRender: 'areaOfResponsibility' }
},
@@ -139,14 +139,14 @@ export default {
{
title: this.$t('ImplementationDate'),
align: 'left',
width: 200,
width: 190,
dataIndex: 'xin1Che1Xing2Shi2Shi1Ri4Qi1',
ellipsis: true
},
{
title: this.$t('vehicleInProductionDate'),
align: 'left',
width: 220,
width: 190,
dataIndex: 'implementTime',
ellipsis: true
},
@@ -183,7 +183,7 @@ export default {
align: 'left',
ellipsis: true,
dataIndex: 'dutyTerritory_dictText',
width: 180
width: 100
},
],
fieldList: [
@@ -218,7 +218,7 @@
ellipsis: true,
sorter: true,
dataIndex: 'dutyTerritory_dictText',
width: 180
width: 100
},
{
title: this.$t('regulatoryEngineer'),
@@ -247,7 +247,7 @@
{
title: this.$t('brand'),
align: 'left',
width: 140,
width: 120,
ellipsis: true,
dataIndex: 'brandText'
},
@@ -223,7 +223,7 @@
title: this.$t('ProcessType'),
align: 'left',
dataIndex: 'flowType',
width: 180,
width: 150,
sorter:true,
ellipsis: true
},
@@ -231,7 +231,7 @@
title: this.$t('areaOfResponsibility'),
align: 'left',
dataIndex: 'dutyTerritory',
width: 120,
width: 100,
sorter:true,
ellipsis: true
},
@@ -247,7 +247,7 @@
title: this.$t('problemType'),
align: 'left',
dataIndex: 'problemType',
width: 140,
width: 120,
sorter:true,
ellipsis: true
},
@@ -256,14 +256,14 @@
align: 'left',
dataIndex: 'initiator',
sorter:true,
width: 140
width: 100
},
{
title: this.$t('personLiable'),
align: 'left',
dataIndex: 'duty',
sorter:true,
width: 140
width: 100
}
],
total: 0,
@@ -184,7 +184,7 @@
{
title: this.$t('areaOfResponsibility'),
dataIndex: 'dutyTerritory_dicText',
width: 120,
width: 100,
align: 'left',
ellipsis: true
},
@@ -195,7 +195,7 @@ export default {
align: 'left',
ellipsis: true,
dataIndex: 'state_dicText',
width: 150
width: 130
},
// {
// title: this.$t('category'),
@@ -214,7 +214,7 @@ export default {
title: this.$t('evaluationResults'),
align: 'left',
fixed: 'right',
width: 180,
width: 130,
scopedSlots: { customRender: 'operation' }
}
],
@@ -202,7 +202,7 @@
title: this.$t('vehicleInProductionDate'),
align: 'left',
ellipsis: true,
width: 210,
width: 190,
dataIndex: 'implement_time',
scopedSlots: { customRender: 'vehicleInProductionDate' }
},
@@ -210,7 +210,7 @@
title: this.$t('ImplementationDate'),
align: 'left',
ellipsis: true,
width: 210,
width: 190,
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
scopedSlots: { customRender: 'ImplementationDate' }
}
@@ -160,22 +160,22 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
align: 'left',
ellipsis: true,
dataIndex: 'msgCategory',
width: 200,
width: 150,
scopedSlots: { customRender: 'msgCategory' }
},
{
title: this.$t('NotificationTime'),
align: 'left',
ellipsis: true,
width: 200,
width: 180,
dataIndex: 'sendTime'
},
{
title: '',
align: 'left',
ellipsis: true,
width: 50
}
// {
// title: '',
// align: 'left',
// ellipsis: true,
// width: 50
// }
],
url: {
list: '/sys/sysAnnouncementSend/getMyAnnouncementSend',
@@ -224,7 +224,9 @@ export default {
},
//保存
handleSubmit() {
let param = {ids: this.selectedRowKeysArray.join(','), selectedroles: `${this.selectedRole.join(',')}`, dutyTerritories: `${this.dutyTerritories.join(',')}`, brands: `${this.brands}` }
console.log(this.selectedRole)
console.log(this.dutyTerritories,'dutyTerritories')
let param = {ids: this.selectedRowKeysArray.join(','), selectedroles: `${this.selectedRole.join(',')}`, dutyTerritories: this.dutyTerritories ? `${this.dutyTerritories.join(',')}` : 'undefined', brands: `${this.brands}` }
postAction('/sys/user/setRole', param).then((res) => {
if (res.success) {
this.$emit('rolevisible', false)
@@ -1,6 +1,7 @@
<template>
<div style="position: relative">
<a-drawer
headerStyle="{ 'font-weight': 'bold'}"
:title="titleName"
:maskClosable="false"
:width="948"
@@ -163,7 +164,7 @@
align: 'left',
dataIndex: 'dutyTerritoryName',
ellipsis: true,
width: 120
width: 100
},
{
title: this.$t('taskType'),
@@ -207,7 +208,7 @@
align: 'left',
dataIndex: 'dutyTerritoryName',
ellipsis: true,
width: 120
width: 100
},
{
title: this.$t('taskType'),
@@ -166,14 +166,14 @@ export default {
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true,
width: 228
width: 190
},
{
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true,
width: 228
width: 190
}
// {
// title: this.$t('correspondingStandard'),
@@ -123,7 +123,7 @@ export default {
title: this.$t('areaOfResponsibility'),
align: 'left',
dataIndex: 'dutyTerritoryName',
width: 200,
width: 100,
ellipsis: true,
},
{
@@ -328,7 +328,7 @@
align: 'left',
sorter: true,
dataIndex: 'configItem',
width: 75,
width: 85,
ellipsis: true
},
{