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

This commit is contained in:
高嵩
2023-03-23 11:45:36 +08:00
11 changed files with 402 additions and 50 deletions
@@ -423,4 +423,14 @@ ALTER TABLE `laws_weilai`.`params_report_config_data`
-- 流程历史表,增加字段 附件id 2023-3-20 未同步生产环境
ALTER TABLE `process_history`
ADD COLUMN `approval_file` varchar(2000) NULL COMMENT '附件id,多个之间使用英文逗号分隔' AFTER `project_laws_inventory_id`;
ADD COLUMN `approval_file` varchar(2000) NULL COMMENT '附件id,多个之间使用英文逗号分隔' AFTER `project_laws_inventory_id`;
-- 项目库-相关人员维护表,增加字段 工程接口人法规工程师设置,工程接口人认证工程师设置 2023-3-22 未同步生产环境
ALTER TABLE `project_related_personnel`
ADD COLUMN `engineer_law_set` varchar(500) NULL COMMENT '工程接口人法规工程师设置' AFTER `law_engineer`;
ADD COLUMN `engineer_att_set` varchar(500) NULL COMMENT '工程接口人认证工程师设置' AFTER `certification_engineer`;
-- 项目库-法规/认证任务计划 (各阶段确认进度) 表,增加字段 认证提交 2023-3-23 未同步生产环境
ALTER TABLE `project_task_planning`
ADD COLUMN `certification_submission` datetime(0) NULL COMMENT '认证提交' AFTER `attestation_start_time`;
@@ -67,6 +67,12 @@ public class ProjectTaskPlanning implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date attestationEndTime;
/**认证提交*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date certificationSubmission;
/**验证符合性确认截止时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@@ -18,6 +18,8 @@ public enum ProjectTaskPlanningNameEnum {
PREHOMO_DEADLINE("摸底开始","Get Started"), // name:Pre-Homo value:Pre-Homo
ATTESTATION_START_TIME("认证开始","Certification Start"),// name:认证开始 value:Certification begins
VERIFY_DEADLINE("验证核查","Verification And Verification"),
CERTIFICATION_SUBMISSION("认证提交","Certification Submission"),
;
String name;
String value;
@@ -4,23 +4,28 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.constant.enums.MessageType2Enum;
import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.constant.enums.MsgColorEnum;
import com.jero.common.util.DateUtils;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsg2Vo;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectNameInfoEO;
import com.jero.modules.project.entity.ProjectYearNameInfoEO;
import com.jero.modules.project.enums.ComplianceFlowStatusEnum;
import com.jero.modules.project.enums.InventoryAffirmStatusEnum;
import com.jero.modules.project.enums.JumpLinkEnum;
import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
import com.jero.modules.project.mapper.ProjectYearNameInfoEOMapper;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.quartz.Job;
@@ -60,6 +65,11 @@ public class TaskAffirmJob implements Job {
@Autowired
private IBussDocumentLibraryEOService bussDocumentLibraryEOService;
@Autowired
private IProjectLawsInventoryEOService projectLawsInventoryEOService;
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
/**
* 任务确认流程定时
@@ -71,6 +81,183 @@ public class TaskAffirmJob implements Job {
log.info("任务确认流程,定时任务开启 =====================================================");
QueryWrapper<ProjectLawsInventoryEO> queryWrapperInventory = new QueryWrapper<>();
// 获取出 任务待确认 的数据(这个状态的数据任务在责任人上)
queryWrapperInventory.and(queryWrapper -> {
queryWrapper.lambda().eq(ProjectLawsInventoryEO::getDesignFlowStatus, ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue());
});
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(queryWrapperInventory);
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)) {
// 根据项目进行分组
Map<String, List<ProjectLawsInventoryEO>> lawsInventoryByProjectLibraryIdGroupMap = projectLawsInventoryEOList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getProjectLibraryId));
for (Map.Entry<String, List<ProjectLawsInventoryEO>> lawsInventoryByProjectLibraryIdGroup : lawsInventoryByProjectLibraryIdGroupMap.entrySet()) {
String projectLibraryId = lawsInventoryByProjectLibraryIdGroup.getKey();
List<ProjectLawsInventoryEO> lawsInventoryListByProjectLibraryId = lawsInventoryByProjectLibraryIdGroup.getValue();
if(StringUtils.isEmpty(projectLibraryId) || CollectionUtils.isEmpty(lawsInventoryListByProjectLibraryId)){
continue;
}
// 设计符合性
Map<String, List<ProjectLawsInventoryEO>> lawsInventoryByDesignDutyIdGroupMap = lawsInventoryListByProjectLibraryId.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getDesignDutyId));
for (Map.Entry<String, List<ProjectLawsInventoryEO>> lawsInventoryByDesignDutyIdGroup : lawsInventoryByDesignDutyIdGroupMap.entrySet()) {
String designDutyId = lawsInventoryByDesignDutyIdGroup.getKey();
List<ProjectLawsInventoryEO> designDutyDataList = lawsInventoryByDesignDutyIdGroup.getValue();
if(StringUtils.isEmpty(designDutyId) || CollectionUtils.isEmpty(designDutyDataList)){
continue;
}
List<String> userIdList = Arrays.asList(designDutyId.split(","));
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataList(designDutyDataList);
// 三条后结束的
List<ProjectLawsInventoryEO> threeDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("threeDaysList");
if(CollectionUtils.isNotEmpty(threeDaysList)){
Date designDueDate = threeDaysList.get(0).getDesignDueDate();
String endTime = "";
if(designDueDate != null){
endTime = DateUtils.formatDate(designDueDate);
}
String serialNumbers = threeDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,以下待办任务距离截止日期仅剩3天,请及时查看处理。");
params.put("contentEn","Hello! This task will expire in 3 days. Please check and address it in a timely manner. Thank you!");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
params.put("flowTypeCn","设计符合性流程");
params.put("flowTypeEn","Design Compliance Process");
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(),params);
}
// 当天结束的
List<ProjectLawsInventoryEO> currentDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("currentDaysList");
if(CollectionUtils.isNotEmpty(currentDaysList)){
Date designDueDate = currentDaysList.get(0).getDesignDueDate();
String endTime = "";
if(designDueDate != null){
endTime = DateUtils.formatDate(designDueDate);
}
String serialNumbers = currentDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,以下待办任务已到截止日期,请尽快查看处理。");
params.put("contentEn","Hello! This task will expire today. Please check and address it ASAP. Thank you!");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
params.put("flowTypeCn","设计符合性流程");
params.put("flowTypeEn","Design Compliance Process");
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(),params);
}
// 逾期的
List<ProjectLawsInventoryEO> overdueList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("overdueList");
if(CollectionUtils.isNotEmpty(overdueList)){
Date designDueDate = overdueList.get(0).getDesignDueDate();
String endTime = "";
if(designDueDate != null){
endTime = DateUtils.formatDate(designDueDate);
}
String serialNumbers = overdueList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,以下待办任务已逾期,请尽快处理。");
params.put("contentEn","Hello! This task is overdue. Please address it ASAP. Thank you!");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
params.put("flowTypeCn","设计符合性流程");
params.put("flowTypeEn","Design Compliance Process");
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION5.getValue(),params);
}
}
// 验证符合性
Map<String, List<ProjectLawsInventoryEO>> lawsInventoryByVerifyDutyIdGroupMap = lawsInventoryListByProjectLibraryId.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getVerifyDutyId));
for (Map.Entry<String, List<ProjectLawsInventoryEO>> lawsInventoryByVerifyDutyIdGroup : lawsInventoryByVerifyDutyIdGroupMap.entrySet()) {
String verifyDutyId = lawsInventoryByVerifyDutyIdGroup.getKey();
List<ProjectLawsInventoryEO> verifyDutyDataList = lawsInventoryByVerifyDutyIdGroup.getValue();
if(StringUtils.isEmpty(verifyDutyId) || CollectionUtils.isEmpty(verifyDutyDataList)){
continue;
}
List<String> userIdList = Arrays.asList(verifyDutyId.split(","));
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataList(verifyDutyDataList);
// 三条后结束的
List<ProjectLawsInventoryEO> threeDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("threeDaysList");
if(CollectionUtils.isNotEmpty(threeDaysList)){
Date verifyDueDate = threeDaysList.get(0).getVerifyDueDate();
String endTime = "";
if(verifyDueDate != null){
endTime = DateUtils.formatDate(verifyDueDate);
}
String serialNumbers = threeDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,以下待办任务距离截止日期仅剩3天,请及时查看处理。");
params.put("contentEn","Hello! This task will expire in 3 days. Please check and address it in a timely manner. Thank you!");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
params.put("flowTypeCn","验证符合性流程");
params.put("flowTypeEn","Validation Compliance Process");
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(),params);
}
// 当天结束的
List<ProjectLawsInventoryEO> currentDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("currentDaysList");
if(CollectionUtils.isNotEmpty(currentDaysList)){
Date verifyDueDate = currentDaysList.get(0).getVerifyDueDate();
String endTime = "";
if(verifyDueDate != null){
endTime = DateUtils.formatDate(verifyDueDate);
}
String serialNumbers = currentDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,以下待办任务已到截止日期,请尽快查看处理。");
params.put("contentEn","Hello! This task will expire today. Please check and address it ASAP. Thank you!");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
params.put("flowTypeCn","验证符合性流程");
params.put("flowTypeEn","Validation Compliance Process");
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(),params);
}
// 逾期的
List<ProjectLawsInventoryEO> overdueList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("overdueList");
if(CollectionUtils.isNotEmpty(overdueList)){
Date verifyDueDate = overdueList.get(0).getVerifyDueDate();
String endTime = "";
if(verifyDueDate != null){
endTime = DateUtils.formatDate(verifyDueDate);
}
String serialNumbers = overdueList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,以下待办任务已逾期,请尽快处理。");
params.put("contentEn","Hello! This task is overdue. Please address it ASAP. Thank you!");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
params.put("flowTypeCn","验证符合性流程");
params.put("flowTypeEn","Validation Compliance Process");
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION5.getValue(),params);
}
}
}
}
/*QueryWrapper<ProjectLawsInventoryEO> queryWrapperInventory = new QueryWrapper<>();
queryWrapperInventory.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, InventoryAffirmStatusEnum.LIST_TO_CONFIRM.getValue());
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(queryWrapperInventory);
if (ObjectUtils.isNotEmpty(projectLawsInventoryEOList)) {
@@ -290,8 +477,59 @@ public class TaskAffirmJob implements Job {
}
}
}
}
}*/
log.info("任务确认流程,定时任务结束 =====================================================");
}
private Map<String, Object> disposeSendMsgDataList(List<ProjectLawsInventoryEO> projectLawsInventoryEOList) {
Map<String,Object> result = new HashMap<>();
Date currentDate = new Date();
String currentDateStr = sdf.format(currentDate);
//获取后三天的时间
Calendar calendar=new GregorianCalendar();
calendar.setTime(new Date());
calendar.add(Calendar.DATE,3);
Date threeDays = calendar.getTime();
String threeDaysStr = sdf.format(threeDays);
// 当天结束的
List<ProjectLawsInventoryEO> currentDaysList = projectLawsInventoryEOList.stream().filter(data -> {
boolean flag = false;
//结束日期是当前日期
if(data.getInventoryAffirmDueDate() != null){
if (StringUtils.equals(currentDateStr, sdf.format(data.getInventoryAffirmDueDate()))) {
flag = true;
}
}
return flag;
}).collect(Collectors.toList());
// 三天后结束的
List<ProjectLawsInventoryEO> threeDaysList = projectLawsInventoryEOList.stream().filter(data -> {
boolean flag = false;
if(data.getInventoryAffirmDueDate() != null){
if (StringUtils.equals(threeDaysStr, sdf.format(data.getInventoryAffirmDueDate()))) {
flag = true;
}
}
return flag;
}).collect(Collectors.toList());
// 逾期的
List<ProjectLawsInventoryEO> overdueList = projectLawsInventoryEOList.stream().filter(data -> {
// 只要早于当前日期都算逾期 不算当天。
boolean flag = false;
if(data.getInventoryAffirmDueDate() != null){
flag = (data.getInventoryAffirmDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getInventoryAffirmDueDate())));
}
return flag;
}).collect(Collectors.toList());
result.put("currentDaysList",currentDaysList);
result.put("threeDaysList",threeDaysList);
result.put("overdueList",overdueList);
return result;
}
}
@@ -270,6 +270,27 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
verifyDeadlineVO.setProjectId(projectTaskPlanning.getProjectId());
timeNodeVOS.add(verifyDeadlineVO);
}
//认证提交
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getCertificationSubmission())){
TimeNodeVO certificationSubmissionVo = new TimeNodeVO();
if(CutEnum.CN.getValue().equals(cut)){
certificationSubmissionVo.setName(ProjectTaskPlanningNameEnum.CERTIFICATION_SUBMISSION.getName());
}else{
certificationSubmissionVo.setName(ProjectTaskPlanningNameEnum.CERTIFICATION_SUBMISSION.getValue());
}
certificationSubmissionVo.setTime(projectTaskPlanning.getVerifyDeadline());
if(projectTaskPlanning.getVerifyDeadline().after(trueNow)){
certificationSubmissionVo.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
}else if(projectTaskPlanning.getVerifyDeadline().before(trueNow)){
certificationSubmissionVo.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
}else{
certificationSubmissionVo.setStatus(PlanStatusEnum.ON_GOING.getValue());
}
certificationSubmissionVo.setProjectId(projectTaskPlanning.getProjectId());
timeNodeVOS.add(certificationSubmissionVo);
}
// 排序
// Collections.sort(timeNodeVOS, listConfirmationVO);
+9 -8
View File
@@ -600,7 +600,7 @@ module.exports = {
selectSplitListDisplay: 'Please select whether to split the document list for display',
selectDisplayList: 'Please select whether to display in list',
documentSplitDisplay: 'Document splitting module display',
VirtualListName: 'Virtual List Name',
VirtualListName: 'Market List Name',
CertificationListName:'Certification List Name',
listStatus: 'List Status',
creater: 'Creater',
@@ -852,12 +852,12 @@ module.exports = {
record: 'Record',
replyToComments: 'Reply To Comments',
noComment: 'No Comment',
theReceived: 'The final version can be made only when the list confirmation status and task confirmation status of All data are received',
theReceived: 'Finalize all process data only after completing the task responsibility confirmation node',
notEvaluated: 'Not Evaluated',
cannotExceed: 'Cannot Exceed',
Characters: 'Characters',
standardInformation: 'Standard Information',
VirtualList: 'VirtualList',
VirtualList: 'MarketList',
importTemplate: 'Import Template',
verificationConfirmationDeadline: 'Verification compliance confirmation deadline',
technicalEvaluationResults: 'Technical Evaluation Results',
@@ -875,7 +875,7 @@ module.exports = {
reminder: 'Reminder',
adopt: 'Adopt',
reviewedByThePersonInCharge: 'Reviewed by the person in charge',
onlyDeleted: 'Only data whose list confirmation status is not initiated or rejected can be deleted',
onlyDeleted: 'Only data that has not started or ended the process can be deleted',
experimentPassed: 'Test Passed',
experimentFailed: 'Test Failed',
toBeStarted: 'Not Start',
@@ -897,10 +897,10 @@ module.exports = {
pleaseDesignConformityConfirmation: 'Please complete the data of design conformity confirmation',
pleaseConfirmedByPrehomo: 'Please complete the data confirmed by Pre-Homo',
pleaseConformityVerification: 'Please complete the data of Conformity verification',
virtualListDetails: 'Virtual List Details',
virtualListDetails: 'Market List Details',
virtualAuthenticationListDetails: 'Virtual Authentication List Details',
VirtualAuthenticationList: 'Virtual Authentication List',
maintainVirtualList: 'Maintain Virtual List',
maintainVirtualList: 'Maintain Market List',
certificationListMaintenance: 'Certification List Maintenance',
reasonsForRejection: 'Reasons For Rejection',
inconformity: 'Non-Compliance',
@@ -950,7 +950,7 @@ module.exports = {
pleaseSubmitStatus: 'Please confirm all engineer data before submission.',
modelName: 'Model Name',
modelYear: 'Model Year',
NoteConfirmTheChange: 'Note: after the change, the list will be in the status of not being reviewed, which will start from the internal review, and the historical data will be discarded Confirm the change',
NoteConfirmTheChange: 'Note: After resetting, the selected item data will change to a list pending release status, and the historical data will disappear. Please confirm whether to perform a process reset',
onlyDataChanged: 'Only data whose task confirmation status is accepted can be changed',
inquiry: 'Inquiry',
ConfirmationDeadline: 'Confirmation Deadline',
@@ -1699,6 +1699,7 @@ module.exports = {
hardwaremanufacturer:'Hardware manufacturer',
softwareversion:'Software version',
returntofill:'Return to fill',
thereAreCurrentlyNoRegulationsToHandle:'There are currently no regulations to handle',
certificationSubmission:'Certification Submission',
}
+10 -8
View File
@@ -608,9 +608,9 @@ module.exports = {
selectSplitListDisplay: '请选择是否文档拆分列表展示',
selectDisplayList: '请选择是否列表展示',
documentSplitDisplay: '文档拆分模块展示',
VirtualListName: '虚拟清单名称',
VirtualListName: '市场清单名称',
CertificationListName:'认证清单名称',
VirtualList: '虚拟清单',
VirtualList: '市场清单',
listStatus: '清单状态',
creater: '创建人',
withdraw: '撤回',
@@ -868,7 +868,7 @@ module.exports = {
record: '记录',
replyToComments: '回复评论',
noComment: '暂无评论',
theReceived: '所有数据的清单确认状态和任务确认状态都为接受才可以定版',
theReceived: '所有流程数据均完成任务责任确认节点后才能进行定版操作',
notEvaluated: '未评估',
cannotExceed: '不能超出',
Characters: '个字符',
@@ -890,7 +890,7 @@ module.exports = {
reminder: '提醒',
adopt: '通过',
reviewedByThePersonInCharge: '负责人审核',
onlyDeleted: '只能删除清单确认状态为未发起或拒绝的数据',
onlyDeleted: '只能删除流程未开始和流程结束的数据',
experimentPassed: '实验通过',
experimentFailed: '实验失败',
toBeStarted: '待开始',
@@ -901,7 +901,7 @@ module.exports = {
blue: '蓝',
yellow: '黄',
resultReported: '结果报告',
TheDoesNotContainData: '虚拟清单的维护清单中没有数据,是否需要添加',
TheDoesNotContainData: '市场清单的维护清单中没有数据,是否需要添加',
number: '序号',
Deadline: '截止时间',
designComplianceReview: '设计符合性确认',
@@ -910,10 +910,10 @@ module.exports = {
pleaseDesignConformityConfirmation: '请补全设计符合性确认的数据',
pleaseConfirmedByPrehomo: '请补全 Pre-Homo确认的数据',
pleaseConformityVerification: '请补全验证符合性确认的数据',
virtualListDetails: '虚拟清单详情',
virtualListDetails: '市场清单详情',
virtualAuthenticationListDetails: '虚拟认证清单详情',
VirtualAuthenticationList: '虚拟认证清单',
maintainVirtualList: '维护虚拟清单',
maintainVirtualList: '维护市场清单',
certificationListMaintenance: '认证清单维护',
reasonsForRejection: '驳回原因',
inconformity: '不符合',
@@ -962,7 +962,7 @@ module.exports = {
pleaseSubmitStatus: '请把工程确认的数据都点为确认状态进行提交',
modelName: '车型名称',
modelYear: '年款',
NoteConfirmTheChange: '注意变更后该条清单变为未审查状态将从内部审查工作开始从头进行历史数据都将丢弃是否确认变更',
NoteConfirmTheChange: '注意重置后所选条目数据将变为清单待发布状态历史数据将消失请确认是否进行流程重置',
onlyDataChanged: '只能变更任务确认状态为接受的数据',
inquiry: '询问',
ConfirmationDeadline: '确认截止时间',
@@ -1799,4 +1799,6 @@ module.exports = {
returntofill:'返回填写',
onlyDataInTheReminderProcessBanBeProcessed:'只能催办流程中的数据',
expeditionProcess:'催办流程',
thereAreCurrentlyNoRegulationsToHandle:'当前没有可处理的法规',
certificationSubmission:'认证提交',
}
@@ -274,9 +274,18 @@
<!-- {{ $t('view') }}-->
<!-- </a>-->
<a class="text-operation"
v-if="(record.designFlowStatus == 'List to be released' ||
record.verifyFlowStatus == 'List to be released')
&& roleSwitchingCode == 0"
v-if="(
record.verifyFlowStatus == 'List to be released' ||
record.verifyFlowStatus == 'Compliance' ||
record.verifyFlowStatus == 'Non-Compliance' ||
record.verifyFlowStatus == 'To be tracked' ||
record.verifyFlowStatus == 'NA')
&& (record.designFlowStatus == 'List to be released' ||
record.designFlowStatus == 'Compliance' ||
record.designFlowStatus == 'Non-Compliance' ||
record.designFlowStatus == 'To be tracked' ||
record.designFlowStatus == 'NA')
&& roleSwitchingCode == 0"
@click="deleteLib(record)">
{{ $t('deleteLib') }}
</a>
@@ -1220,7 +1229,11 @@
TaskKey = 'zrrqr'
} else if (row.designFlowStatus == 'Results to be submitted') {
TaskKey = 'zrrtjjfw'
} else if (row.designFlowStatus == 'Results to be reviewed') {
} else if (row.designFlowStatus == 'Results to be reviewed' ||
row.designFlowStatus == 'Compliance' ||
row.designFlowStatus == 'Non-Compliance' ||
row.designFlowStatus == 'To be tracked' ||
row.designFlowStatus == 'NA') {
TaskKey = 'fggcssh'
}
query = {
@@ -1246,7 +1259,11 @@
TaskKey = 'zrrqr'
} else if (row.verifyFlowStatus == 'Results to be submitted') {
TaskKey = 'zrrtjjfw'
} else if (row.verifyFlowStatus == 'Results to be reviewed') {
} else if (row.verifyFlowStatus == 'Results to be reviewed' ||
row.verifyFlowStatus == 'Compliance' ||
row.verifyFlowStatus == 'Non-Compliance' ||
row.verifyFlowStatus == 'To be tracked' ||
row.verifyFlowStatus == 'NA') {
TaskKey = 'fggcssh'
}
query = {
@@ -1591,7 +1608,20 @@
if (this.dataSource && this.dataSource.length > 0) {
let isTrue
for (let i = 0; i < this.dataSource.length; i++) {
if (this.dataSource[i].taskAffirmStatus == 'Accepted' && this.dataSource[i].inventoryAffirmStatus == 'Accepted') {
if ((this.dataSource[i].verifyFlowStatus == 'Results to be submitted' ||
this.dataSource[i].verifyFlowStatus == 'Results to be reviewed' ||
this.dataSource[i].verifyFlowStatus == 'Compliance' ||
this.dataSource[i].verifyFlowStatus == 'Non-Compliance' ||
this.dataSource[i].verifyFlowStatus == 'To be tracked' ||
this.dataSource[i].verifyFlowStatus == 'NA'
) &&
(this.dataSource[i].designFlowStatus == 'Results to be submitted' ||
this.dataSource[i].designFlowStatus == 'Results to be reviewed' ||
this.dataSource[i].designFlowStatus == 'Compliance' ||
this.dataSource[i].designFlowStatus == 'Non-Compliance' ||
this.dataSource[i].designFlowStatus == 'To be tracked' ||
this.dataSource[i].designFlowStatus == 'NA'
)) {
isTrue = true
} else {
isTrue = false
@@ -1711,8 +1741,18 @@
for (let i = 0; i < this.dataSource.length; i++) {
for (let j = 0; j < selectedRowKeys.length; j++) {
if (this.dataSource[i].id == selectedRowKeys[j]) {
if (this.dataSource[i].verifyFlowStatus == 'List to be released' ||
this.dataSource[i].designFlowStatus == 'List to be released') {
if (
(this.dataSource[i].verifyFlowStatus == 'List to be released' ||
this.dataSource[i].verifyFlowStatus == 'Compliance' ||
this.dataSource[i].verifyFlowStatus == 'Non-Compliance' ||
this.dataSource[i].verifyFlowStatus == 'To be tracked' ||
this.dataSource[i].verifyFlowStatus == 'NA')
&&
(this.dataSource[i].designFlowStatus == 'List to be released' ||
this.dataSource[i].designFlowStatus == 'Compliance' ||
this.dataSource[i].designFlowStatus == 'Non-Compliance' ||
this.dataSource[i].designFlowStatus == 'To be tracked' ||
this.dataSource[i].designFlowStatus == 'NA')) {
isTrue = true
} else {
isTrue = false
@@ -109,6 +109,25 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('certificationSubmission')">
{{$t('certificationSubmission')}}</span>
</div>
<a-form-model-item class="itemModel" prop="certificationSubmission">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('certificationSubmission')+$t('time')"
@change="dateChange({db_field_name:'certificationSubmission'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.certificationSubmission"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('certificationEnd')">
{{$t('certificationEnd')}}</span>
@@ -56,9 +56,9 @@
<span class="title-text-text" :title="$t('resultofhandling')">{{$t('resultofhandling')}}</span>
</div>
</div>
<a-form-model-item class="itemModel" :prop="'disposeResult'">
<a-form-model-item class="itemModel" :prop="'flag'">
<a-radio-group class="box-input"
v-model="formInline.disposeResult">
v-model="formInline.flag">
<a-radio value="Accepted" v-if="titleName == $t('Taskresponsibilityrecognition')">
{{$t('accept')}}
</a-radio>
@@ -130,6 +130,7 @@
import uploadFile from '@/components/uploadFile/file'
import { getAction, postAction, putAction, deleteAction } from '@/api/manage'
import { mapGetters } from 'vuex'
import moment from 'moment'
export default {
name: 'confirmationDrawer',
@@ -226,12 +227,12 @@
],
processableList: [],
noProcessableList: [],
loading:false,
loading: false,
rules: {
disposeResult: [
flag: [
{
required: true,
message: this.$t('reviewResults') + this.$t('cannotEmpty'),
message: this.$t('resultofhandling') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
@@ -296,24 +297,37 @@
this.visible = false
},
determineClick() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
let query = {
userid: this.userInfo().id,
taskId: this.queryData.taskId || this.queryData.taskIds,
}
postAction('/workFlow/completeTask', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.$emit('confirmationdrawerList')
} else {
this.loading = false
this.$message.warning(res.message)
if (this.processableList && this.processableList.length > 0) {
this.$refs.ruleForm.validate(valid => {
if (valid) {
this.loading = true
let taskIds = []
this.processableList.forEach(res => {
taskIds.push(res.taskId)
})
let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
let query = {
...this.formInline,
taskIds: taskIds.join(','),
userId: this.userInfo().id,
handlingTime: handlingTime
}
})
}
})
postAction('/workFlow/completeTaskBatch', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.loading = false
this.$emit('confirmationdrawerList')
} else {
this.loading = false
this.$message.warning(this.$t('operationFailed'))
}
})
}
})
} else {
this.$message.warning(this.$t('thereAreCurrentlyNoRegulationsToHandle'))
}
},
clickButtonToUpload(item) {
this.$refs.uploadFile.perentHandleFunc()
@@ -120,7 +120,7 @@
disposeResult: [
{
required: true,
message: this.$t('reviewResults') + this.$t('cannotEmpty'),
message: this.$t('resultofhandling') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
@@ -159,7 +159,6 @@
}
},
mounted() {
console.log(this.query)
this.formInline.approvalOpinion = ''
this.formInline = { ...this.formInline }
// this.query.isDisplay = JSON.parse(this.query.isDisplay)