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

This commit is contained in:
cuijiaming
2023-03-23 21:36:41 +08:00
25 changed files with 1219 additions and 679 deletions
@@ -67,6 +67,15 @@ public enum OperatorTypeEnum {
CERTIFICATION_INVENTORY_DUTY_PERSON_SUBMIT_TASK("认证清单-责任人提交任务","certificationInventoryDutyPersonSubmitTask"),
CERTIFICATION_INVENTORY_REVIEW_THROUGH("认证清单-认证工程师审核通过","certificationInventoryReviewThrough"),
CERTIFICATION_INVENTORY_REVIEW_RETURNED("认证清单-认证工程师审核退回","certificationInventoryReviewReturned"),
/**
* 项目库-法规清单
*/
LAWS_INVENTORY_DESIGN_EXPEDITING("法规清单-催办设计符合性流程","lawsInventoryDesignExpediting"),
LAWS_INVENTORY_VERIFY_EXPEDITING("法规清单-催办验证符合性流程","lawsInventoryVerifyExpediting"),
LAWS_INVENTORY_STUDIO_EXPEDITING("法规清单-studio催办","lawsInventoryStudioExpediting"),
LAWS_INVENTORY_REGULATION_OWNER_EXPEDITING("法规清单-法规工程师催办","lawsInventoryRegulationOwnerExpediting"),
LAWS_INVENTORY_ENGINEERING_INTERFACE_PERSON_EXPEDITING("法规清单-工程接口人催办","lawsInventoryEngineeringInterfacePersonExpediting"),
;
String name;
@@ -24,6 +24,7 @@ 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 com.jero.modules.wkflow.enums.FlowTypeEnum;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
@@ -109,7 +110,7 @@ public class TaskAffirmJob implements Job {
List<String> userIdList = Arrays.asList(designDutyId.split(","));
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataList(designDutyDataList);
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataList(designDutyDataList, FlowTypeEnum.SJFHXSHLC.getValue());
// 三条后结束的
List<ProjectLawsInventoryEO> threeDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("threeDaysList");
@@ -187,7 +188,7 @@ public class TaskAffirmJob implements Job {
List<String> userIdList = Arrays.asList(verifyDutyId.split(","));
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataList(verifyDutyDataList);
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataList(verifyDutyDataList,FlowTypeEnum.YZFHXSCLC.getValue());
// 三条后结束的
List<ProjectLawsInventoryEO> threeDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("threeDaysList");
@@ -482,7 +483,7 @@ public class TaskAffirmJob implements Job {
log.info("任务确认流程,定时任务结束 =====================================================");
}
private Map<String, Object> disposeSendMsgDataList(List<ProjectLawsInventoryEO> projectLawsInventoryEOList) {
private Map<String, Object> disposeSendMsgDataList(List<ProjectLawsInventoryEO> projectLawsInventoryEOList,String flowType) {
Map<String,Object> result = new HashMap<>();
Date currentDate = new Date();
String currentDateStr = sdf.format(currentDate);
@@ -498,9 +499,17 @@ public class TaskAffirmJob implements Job {
List<ProjectLawsInventoryEO> currentDaysList = projectLawsInventoryEOList.stream().filter(data -> {
boolean flag = false;
//结束日期是当前日期
if(data.getInventoryAffirmDueDate() != null){
if (StringUtils.equals(currentDateStr, sdf.format(data.getInventoryAffirmDueDate()))) {
flag = true;
if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){
if(data.getDesignDueDate() != null){
if (StringUtils.equals(currentDateStr, sdf.format(data.getDesignDueDate()))) {
flag = true;
}
}
}else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){
if(data.getVerifyDueDate() != null){
if (StringUtils.equals(currentDateStr, sdf.format(data.getVerifyDueDate()))) {
flag = true;
}
}
}
return flag;
@@ -509,9 +518,17 @@ public class TaskAffirmJob implements Job {
// 三天后结束的
List<ProjectLawsInventoryEO> threeDaysList = projectLawsInventoryEOList.stream().filter(data -> {
boolean flag = false;
if(data.getInventoryAffirmDueDate() != null){
if (StringUtils.equals(threeDaysStr, sdf.format(data.getInventoryAffirmDueDate()))) {
flag = true;
if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){
if(data.getDesignDueDate() != null){
if (StringUtils.equals(threeDaysStr, sdf.format(data.getDesignDueDate()))) {
flag = true;
}
}
}else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){
if(data.getVerifyDueDate() != null){
if (StringUtils.equals(threeDaysStr, sdf.format(data.getVerifyDueDate()))) {
flag = true;
}
}
}
return flag;
@@ -521,8 +538,14 @@ public class TaskAffirmJob implements Job {
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())));
if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){
if(data.getDesignDueDate() != null){
flag = (data.getDesignDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getDesignDueDate())));
}
}else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){
if(data.getVerifyDueDate() != null){
flag = (data.getVerifyDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getVerifyDueDate())));
}
}
return flag;
}).collect(Collectors.toList());
@@ -4,12 +4,15 @@ 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.feishu.vo.FeishuMsgVo;
import com.jero.modules.project.entity.*;
import com.jero.modules.project.enums.ComplianceFlowStatusEnum;
import com.jero.modules.project.enums.DesignComplianceStatusEnum;
import com.jero.modules.project.enums.JumpLinkEnum;
import com.jero.modules.project.enums.SendMsgFlagEnum;
@@ -68,12 +71,122 @@ public class VerifyComplianceJob implements Job {
private ISysUserService sysUserService;
@Autowired
private IFeishuService feishuService;
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info("验证符合性流程,定时任务开启 =====================================================");
// 查询出 结果待提交的数据
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrap = new QueryWrapper<>();
lawsInventoryEOQueryWrap.lambda().eq(ProjectLawsInventoryEO::getVerifyFlowStatus, ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue());
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryEOQueryWrap);
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>> 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> fourteenDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("fourteenDaysList");
if(CollectionUtils.isNotEmpty(fourteenDaysList)){
Date verifyDueDate = fourteenDaysList.get(0).getVerifyDueDate();
String endTime = "";
if(verifyDueDate != null){
endTime = DateUtils.formatDate(verifyDueDate);
}
String serialNumbers = fourteenDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,您的任务将于14天后结束,请及时查看处理。");
params.put("contentEn","Hello! Your task will end in 14 days. Please check and address it in a timely manner. ");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION1.getValue(),params);
}
// 七天后结束的
List<ProjectLawsInventoryEO> sevenDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("sevenDaysList");
if(CollectionUtils.isNotEmpty(sevenDaysList)){
Date verifyDueDate = sevenDaysList.get(0).getVerifyDueDate();
String endTime = "";
if(verifyDueDate != null){
endTime = DateUtils.formatDate(verifyDueDate);
}
String serialNumbers = sevenDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,您的任务将于7天后结束,请及时查看处理。");
params.put("contentEn","Hello! Your task will end in 7 days. Please check and address it in a timely manner. ");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION1.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! Your task will expire today. Please check and address it ASAP. ");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION1.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! Your task is overdue. Please check and address it ASAP. ");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION3.getValue(),params);
}
}
}
}
//查询出已经启动了验证符合性流程的数据。 并且流程没有结束。
QueryWrapper<ProjectTaskInventoryEO> queryProjectTaskInventoryWrapper = new QueryWrapper<>();
/*QueryWrapper<ProjectTaskInventoryEO> queryProjectTaskInventoryWrapper = new QueryWrapper<>();
queryProjectTaskInventoryWrapper.isNotNull("verify_p_id");
List<String> status = new ArrayList<>();
status.add(DesignComplianceStatusEnum.TO_SUBMIT.getValue());
@@ -364,7 +477,92 @@ public class VerifyComplianceJob 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 fourteenCalendar=new GregorianCalendar();
fourteenCalendar.setTime(new Date());
fourteenCalendar.add(Calendar.DATE,14);
Date fourteenDays = fourteenCalendar.getTime();
String fourteenDaysStr = sdf.format(fourteenDays);
//获取七天后的时间
Calendar sevenCalendar=new GregorianCalendar();
sevenCalendar.setTime(new Date());
sevenCalendar.add(Calendar.DATE,7);
Date sevenDays = sevenCalendar.getTime();
String sevenDaysStr = sdf.format(sevenDays);
// 十四天后结束的
List<ProjectLawsInventoryEO> fourteenDaysList = projectLawsInventoryEOList.stream().filter(data -> {
boolean flag = false;
if(data.getVerifyDueDate() != null){
if (StringUtils.equals(fourteenDaysStr, sdf.format(data.getVerifyDueDate()))) {
flag = true;
}
}
return flag;
}).collect(Collectors.toList());
// 七天后结束的
List<ProjectLawsInventoryEO> sevenDaysList = projectLawsInventoryEOList.stream().filter(data -> {
boolean flag = false;
if(data.getVerifyDueDate() != null){
if (StringUtils.equals(sevenDaysStr, sdf.format(data.getVerifyDueDate()))) {
flag = true;
}
}
return flag;
}).collect(Collectors.toList());
// 当天结束的
List<ProjectLawsInventoryEO> currentDaysList = projectLawsInventoryEOList.stream().filter(data -> {
boolean flag = false;
//结束日期是当前日期
if(data.getVerifyDueDate() != null){
if (StringUtils.equals(currentDateStr, sdf.format(data.getVerifyDueDate()))) {
flag = true;
}
}
return flag;
}).collect(Collectors.toList());
// 逾期的 3天 7天 14天
List<ProjectLawsInventoryEO> overdueList = projectLawsInventoryEOList.stream().filter(data -> {
Calendar day3Later = new GregorianCalendar();
day3Later.setTime(data.getVerifyDueDate());
day3Later.add(Calendar.DATE, 3);
Date overdue3Days = day3Later.getTime();
Calendar day7Later = new GregorianCalendar();
day7Later.setTime(data.getVerifyDueDate());
day7Later.add(Calendar.DATE, 7);
Date overdue7Days = day7Later.getTime();
Calendar day14Later = new GregorianCalendar();
day14Later.setTime(data.getVerifyDueDate());
day14Later.add(Calendar.DATE, 14);
Date overdue14Days = day14Later.getTime();
boolean flag = (
StringUtils.equals(sdf.format(overdue3Days), sdf.format(currentDate))
|| StringUtils.equals(sdf.format(overdue7Days), sdf.format(currentDate))
|| StringUtils.equals(sdf.format(overdue14Days), sdf.format(currentDate))
);
return flag;
}).collect(Collectors.toList());
result.put("currentDaysList",currentDaysList);
result.put("sevenDaysList",sevenDaysList);
result.put("overdueList",overdueList);
result.put("fourteenDaysList",fourteenDaysList);
return result;
}
}
@@ -77,12 +77,9 @@ public class designComplianceJob implements Job {
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info("设计符合性确认流程,定时任务开启 =====================================================");
// 查询出 任务待确认、结果待提交的数据
List<String> designFlowStatusList = new ArrayList<>();
designFlowStatusList.add(ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue());
designFlowStatusList.add(ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue());
// 查询出 结果待提交的数据
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrap = new QueryWrapper<>();
lawsInventoryEOQueryWrap.lambda().in(ProjectLawsInventoryEO::getDesignFlowStatus,designFlowStatusList);
lawsInventoryEOQueryWrap.lambda().eq(ProjectLawsInventoryEO::getDesignFlowStatus,ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue());
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryEOQueryWrap);
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){
// 根据项目进行分组
@@ -94,7 +91,6 @@ public class designComplianceJob implements Job {
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();
@@ -107,27 +103,46 @@ public class designComplianceJob implements Job {
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();
// 十四天后结束的
List<ProjectLawsInventoryEO> fourteenDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("fourteenDaysList");
if(CollectionUtils.isNotEmpty(fourteenDaysList)){
Date designDueDate = fourteenDaysList.get(0).getDesignDueDate();
String endTime = "";
if(designDueDate != null){
endTime = DateUtils.formatDate(designDueDate);
}
String serialNumbers = threeDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给法规工程师发消息
String serialNumbers = fourteenDaysList.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("contentCn","您好,您的任务将于14天后结束,请及时查看处理。");
params.put("contentEn","Hello! Your task will end in 14 days. Please check and address it in a timely manner. ");
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);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params);
}
// 七天后结束的
List<ProjectLawsInventoryEO> sevenDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("sevenDaysList");
if(CollectionUtils.isNotEmpty(sevenDaysList)){
Date designDueDate = sevenDaysList.get(0).getDesignDueDate();
String endTime = "";
if(designDueDate != null){
endTime = DateUtils.formatDate(designDueDate);
}
String serialNumbers = sevenDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
// 给责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,您的任务将于7天后结束,请及时查看处理。");
params.put("contentEn","Hello! Your task will end in 7 days. Please check and address it in a timely manner. ");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params);
}
// 当天结束的
List<ProjectLawsInventoryEO> currentDaysList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("currentDaysList");
if(CollectionUtils.isNotEmpty(currentDaysList)){
@@ -139,15 +154,13 @@ public class designComplianceJob implements Job {
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("contentCn","您好,您的任务将于今天到期,请尽快查看处理。");
params.put("contentEn","Hello! Your task will expire today. Please check and address it ASAP. ");
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);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params);
}
// 逾期的
List<ProjectLawsInventoryEO> overdueList = (List<ProjectLawsInventoryEO>) sendMsgDataListMap.get("overdueList");
@@ -160,15 +173,13 @@ public class designComplianceJob implements Job {
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("contentCn","您好,您的任务已逾期,请尽快查看处理。");
params.put("contentEn","Hello! Your task is overdue. Please check and address it ASAP. ");
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);
this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION3.getValue(),params);
}
}
}
@@ -516,7 +527,7 @@ public class designComplianceJob implements Job {
}).collect(Collectors.toList());
// 七天后结束的
List<ProjectLawsInventoryEO> threeDaysList = projectLawsInventoryEOList.stream().filter(data -> {
List<ProjectLawsInventoryEO> sevenDaysList = projectLawsInventoryEOList.stream().filter(data -> {
boolean flag = false;
if(data.getDesignDueDate() != null){
if (StringUtils.equals(sevenDaysStr, sdf.format(data.getDesignDueDate()))) {
@@ -538,19 +549,35 @@ public class designComplianceJob implements Job {
return flag;
}).collect(Collectors.toList());
// 逾期的
// 逾期的 3天 7天 14天
List<ProjectLawsInventoryEO> overdueList = projectLawsInventoryEOList.stream().filter(data -> {
// 只要早于当前日期都算逾期 不算当天。
boolean flag = false;
if(data.getDesignDueDate() != null){
flag = (data.getDesignDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getDesignDueDate())));
}
Calendar day3Later = new GregorianCalendar();
day3Later.setTime(data.getDesignDueDate());
day3Later.add(Calendar.DATE, 3);
Date overdue3Days = day3Later.getTime();
Calendar day7Later = new GregorianCalendar();
day7Later.setTime(data.getDesignDueDate());
day7Later.add(Calendar.DATE, 7);
Date overdue7Days = day7Later.getTime();
Calendar day14Later = new GregorianCalendar();
day14Later.setTime(data.getDesignDueDate());
day14Later.add(Calendar.DATE, 14);
Date overdue14Days = day14Later.getTime();
boolean flag = (
StringUtils.equals(sdf.format(overdue3Days), sdf.format(currentDate))
|| StringUtils.equals(sdf.format(overdue7Days), sdf.format(currentDate))
|| StringUtils.equals(sdf.format(overdue14Days), sdf.format(currentDate))
);
return flag;
}).collect(Collectors.toList());
result.put("currentDaysList",currentDaysList);
result.put("threeDaysList",threeDaysList);
result.put("sevenDaysList",sevenDaysList);
result.put("overdueList",overdueList);
result.put("fourteenDaysList",fourteenDaysList);
return result;
}
}
@@ -214,4 +214,16 @@ public interface IProjectLawsInventoryEOService extends IService<ProjectLawsInve
* @param projectLawsInventoryEOS
*/
void lawsInventoryEOListSortByInventoryAffirmDueDate(List<ProjectLawsInventoryEO> projectLawsInventoryEOS);
/**
* 法规清单根据设计符合性截至日期顺序排序
* @param projectLawsInventoryEOS
*/
void lawsInventoryEOListSortByDesignDueDate(List<ProjectLawsInventoryEO> projectLawsInventoryEOS);
/**
* 法规清单根据验证符合性截至日期顺序排序
* @param projectLawsInventoryEOS
*/
void lawsInventoryEOListSortByVerifyDueDate(List<ProjectLawsInventoryEO> projectLawsInventoryEOS);
}
@@ -644,6 +644,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
* @param projectLawsInventoryEO
*/
private void updateProjectLawsInventorySendMessage(ProjectLawsInventoryEO projectLawsInventoryEO) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
ProjectLawsInventoryEO projectLawsInventoryOld = this.queryById(projectLawsInventoryEO.getId());
boolean toBeCheckedFlag = (
StringUtils.equals(projectLawsInventoryOld.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())
@@ -758,6 +760,57 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION1.getValue(),params);
}
}
// 如果编辑了法规工程师给新的法规工程师发消息
if((StringUtils.isNotEmpty(projectLawsInventoryOld.getRegulationOwnerId()) && StringUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId()))){
if (!StringUtils.equals(projectLawsInventoryOld.getRegulationOwnerId(), projectLawsInventoryEO.getRegulationOwnerId())) {
String endTime = "";
String regulationOwnerId = "";
// 设计符合性 结果待审查结果待提交 标识 判断法规工程师是否被修改了 如果被修改了给新的法规工程师发消息
boolean toBeReviewedDesignFlag = (
StringUtils.equals(projectLawsInventoryOld.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue())
|| StringUtils.equals(projectLawsInventoryOld.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())
);
if(toBeReviewedDesignFlag){
if(projectLawsInventoryEO.getDesignDueDate() != null){
endTime = DateUtils.formatDate(projectLawsInventoryEO.getDesignDueDate());
}
regulationOwnerId = projectLawsInventoryEO.getRegulationOwnerId();
// 给法规工程师发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,"+currentUser.getUsername()+"向您分发了该任务,请及时查看处理。");
params.put("contentEn","Hello! "+currentUser.getUsername()+" has assigned this task to you. Please check and address it in a timely manner.");
params.put("projectLibraryId", projectLawsInventoryEO.getProjectLibraryId());
params.put("endTime",endTime);
params.put("userIdList",Arrays.asList(regulationOwnerId.split(",")));
params.put("serialNumbers",projectLawsInventoryEO.getSerialNumber());
this.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params);
}
// 验证符合性 结果待审查结果待提交 标识 判断法规工程师是否被修改了 如果被修改了给新的法规工程师发消息
boolean toBeReviewedVerifyFlag = (
StringUtils.equals(projectLawsInventoryOld.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue())
|| StringUtils.equals(projectLawsInventoryOld.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())
);
if (toBeReviewedVerifyFlag) {
if(projectLawsInventoryEO.getVerifyDueDate() != null){
endTime = DateUtils.formatDate(projectLawsInventoryEO.getVerifyDueDate());
}
regulationOwnerId = projectLawsInventoryEO.getRegulationOwnerId();
// 给法规工程师发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,"+currentUser.getUsername()+"向您分发了该任务,请及时查看处理。");
params.put("contentEn","Hello! "+currentUser.getUsername()+" has assigned this task to you. Please check and address it in a timely manner.");
params.put("projectLibraryId", projectLawsInventoryEO.getProjectLibraryId());
params.put("endTime",endTime);
params.put("userIdList",Arrays.asList(regulationOwnerId.split(",")));
params.put("serialNumbers",projectLawsInventoryEO.getSerialNumber());
this.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION1.getValue(),params);
}
}
}
}
private void setProjectLawsInventoryPermission(String userId, String projectId,String lawsInventoryId,Date now, List<ProjectUserPermission> adds, String belong) {
@@ -9405,6 +9458,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
String cut = json.getString("cut");
String ids = json.getString("ids");
String projectLibraryId = json.getString("projectLibraryId");
String operateType = json.getString("operateType"); // 操作类型判断是studio催办 还是法规工程师催办
if(StringUtils.isEmpty(ids)){
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
throw new JeroBootException("请至少选择一条数据!");
@@ -9421,7 +9475,207 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
lawsInventoryEOQueryWrapper.lambda().in(ProjectLawsInventoryEO::getId,projectLawsInventoryIdList);
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = this.baseMapper.selectList(lawsInventoryEOQueryWrapper);
//获取已经发起的 任务确认流程信息当前处理人
// 只有studio催办的时候才会给法规工程师发消息
if(StringUtils.equals(operateType,OperatorTypeEnum.LAWS_INVENTORY_STUDIO_EXPEDITING.getValue())){
// 如果设计符合性或验证符合性流程状态其中一个为 清单待校核催办时就需要给这一条数据的法规工程师发消息
List<ProjectLawsInventoryEO> toBeCheckedLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> {
boolean flag =false;
if (StringUtils.equals(lawsInventory.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())
|| StringUtils.equals(lawsInventory.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())){
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(toBeCheckedLawsInventoryList)){
Map<String, List<ProjectLawsInventoryEO>> regulationOwnerGroupMap = toBeCheckedLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getRegulationOwnerId));
for (Map.Entry<String, List<ProjectLawsInventoryEO>> regulationOwnerMap : regulationOwnerGroupMap.entrySet()) {
String regulationOwnerId = regulationOwnerMap.getKey();
List<ProjectLawsInventoryEO> lawsInventoryEOList = regulationOwnerMap.getValue();
if(StringUtils.isEmpty(regulationOwnerId) || CollectionUtils.isEmpty(lawsInventoryEOList)){
continue;
}
this.lawsInventoryEOListSortByInventoryAffirmDueDate(lawsInventoryEOList);
Date inventoryAffirmDueDate = lawsInventoryEOList.get(0).getInventoryAffirmDueDate();
String endTime = "";
if(inventoryAffirmDueDate != null){
endTime = DateUtils.formatDate(inventoryAffirmDueDate);
}
String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
List<String> userIdList = Arrays.asList(regulationOwnerId.split(","));
// 给法规工程师发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,请及时校核法规清单内容并发起符合性流程,谢谢!");
params.put("contentEn","Please check the content of the regulation list and initiate the compliance process in a timely manner. Thank you!");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_LIST_RELEASE1.getValue(),params);
}
}
}
// 催办类型 可以只催设计符合性 也可以只催验证符合性
String expeditingType = json.getString("expeditingType");
if(StringUtils.contains(expeditingType,OperatorTypeEnum.LAWS_INVENTORY_DESIGN_EXPEDITING.getValue())){
// 催办设计符合性流程状态为 清单待确认的 责任人
List<ProjectLawsInventoryEO> toBeConfirmedLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> {
boolean flag =false;
if (StringUtils.equals(lawsInventory.getDesignFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue())){
flag = true;
}
return flag;
}).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(toBeConfirmedLawsInventoryList)) {
Map<String, List<ProjectLawsInventoryEO>> designDutyGroupMap = toBeConfirmedLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getDesignDutyId));
for (Map.Entry<String, List<ProjectLawsInventoryEO>> designDutyMap : designDutyGroupMap.entrySet()) {
String designDutyId = designDutyMap.getKey();
List<ProjectLawsInventoryEO> lawsInventoryEOList = designDutyMap.getValue();
if(StringUtils.isEmpty(designDutyId) || CollectionUtils.isEmpty(lawsInventoryEOList)){
continue;
}
this.lawsInventoryEOListSortByDesignDueDate(lawsInventoryEOList);
Date designDueDate = lawsInventoryEOList.get(0).getDesignDueDate();
String endTime = "";
if(designDueDate != null){
endTime = DateUtils.formatDate(designDueDate);
}
String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
List<String> userIdList = Arrays.asList(designDutyId.split(","));
// 给设计符合性流程责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,请及时查看确认以下任务要求,谢谢!");
params.put("contentEn","Hello! Please check and confirm the following task requirement in a timely manner. Thank you!");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_LIST_RELEASE2.getValue(),params);
}
}
// 催办设计符合性流程状态为 结果待提交的 责任人
List<ProjectLawsInventoryEO> toBeSubmitLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> {
boolean flag =false;
if (StringUtils.equals(lawsInventory.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())){
flag = true;
}
return flag;
}).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(toBeSubmitLawsInventoryList)) {
Map<String, List<ProjectLawsInventoryEO>> designDutyGroupMap = toBeSubmitLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getVerifyDutyId));
for (Map.Entry<String, List<ProjectLawsInventoryEO>> designDutyMap : designDutyGroupMap.entrySet()) {
String designDutyId = designDutyMap.getKey();
List<ProjectLawsInventoryEO> lawsInventoryEOList = designDutyMap.getValue();
if(StringUtils.isEmpty(designDutyId) || CollectionUtils.isEmpty(lawsInventoryEOList)){
continue;
}
this.lawsInventoryEOListSortByVerifyDueDate(lawsInventoryEOList);
Date designDueDate = lawsInventoryEOList.get(0).getVerifyDueDate();
String endTime = "";
if(designDueDate != null){
endTime = DateUtils.formatDate(designDueDate);
}
String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
List<String> userIdList = Arrays.asList(designDutyId.split(","));
// 给设计符合性流程责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,请尽快查看处理此项任务,谢谢!");
params.put("contentEn","Hello! Please check and address the task ASAP. Thank you!");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
this.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params);
}
}
}
if(StringUtils.contains(expeditingType,OperatorTypeEnum.LAWS_INVENTORY_VERIFY_EXPEDITING.getValue())){
// 催办验证符合性流程状态为 清单待确认的 责任人
List<ProjectLawsInventoryEO> toBeConfirmedLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> {
boolean flag =false;
if (StringUtils.equals(lawsInventory.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue())){
flag = true;
}
return flag;
}).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(toBeConfirmedLawsInventoryList)) {
Map<String, List<ProjectLawsInventoryEO>> verifyDutyGroupMap = toBeConfirmedLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getVerifyDutyId));
for (Map.Entry<String, List<ProjectLawsInventoryEO>> verifyDutyMap : verifyDutyGroupMap.entrySet()) {
String verifyDutyId = verifyDutyMap.getKey();
List<ProjectLawsInventoryEO> lawsInventoryEOList = verifyDutyMap.getValue();
if(StringUtils.isEmpty(verifyDutyId) || CollectionUtils.isEmpty(lawsInventoryEOList)){
continue;
}
this.lawsInventoryEOListSortByVerifyDueDate(lawsInventoryEOList);
Date verifyDueDate = lawsInventoryEOList.get(0).getVerifyDueDate();
String endTime = "";
if(verifyDueDate != null){
endTime = DateUtils.formatDate(verifyDueDate);
}
String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
List<String> userIdList = Arrays.asList(verifyDutyId.split(","));
// 给设计符合性流程责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,请及时查看确认以下任务要求,谢谢!");
params.put("contentEn","Hello! Please check and confirm the following task requirement in a timely manner. Thank you!");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_LIST_RELEASE2.getValue(),params);
}
}
// 催办验证符合性流程状态为 结果待提交的 责任人
List<ProjectLawsInventoryEO> toBeSubmitLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> {
boolean flag =false;
if (StringUtils.equals(lawsInventory.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())){
flag = true;
}
return flag;
}).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(toBeSubmitLawsInventoryList)) {
Map<String, List<ProjectLawsInventoryEO>> verifyDutyGroupMap = toBeSubmitLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getVerifyDutyId));
for (Map.Entry<String, List<ProjectLawsInventoryEO>> verifyDutyMap : verifyDutyGroupMap.entrySet()) {
String verifyDutyId = verifyDutyMap.getKey();
List<ProjectLawsInventoryEO> lawsInventoryEOList = verifyDutyMap.getValue();
if(StringUtils.isEmpty(verifyDutyId) || CollectionUtils.isEmpty(lawsInventoryEOList)){
continue;
}
this.lawsInventoryEOListSortByVerifyDueDate(lawsInventoryEOList);
Date verifyDueDate = lawsInventoryEOList.get(0).getVerifyDueDate();
String endTime = "";
if(verifyDueDate != null){
endTime = DateUtils.formatDate(verifyDueDate);
}
String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
List<String> userIdList = Arrays.asList(verifyDutyId.split(","));
// 给设计符合性流程责任人发消息
Map<String,Object> params = new HashMap<>();
params.put("contentCn","您好,请尽快查看处理此项任务,谢谢!");
params.put("contentEn","Hello! Please check and address the task ASAP. Thank you!");
params.put("projectLibraryId",projectLibraryId);
params.put("endTime",endTime);
params.put("userIdList",userIdList);
params.put("serialNumbers",serialNumbers);
this.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION1.getValue(),params);
}
}
}
/*//获取已经发起的 任务确认流程信息当前处理人
JSONObject queryFlowCurrentTaskJson = new JSONObject();
queryFlowCurrentTaskJson.put("projectLawsInventoryIdList",projectLawsInventoryIdList);
queryFlowCurrentTaskJson.put("flowType",FlowTypeEnum.RWQRLC.getValue());
@@ -9628,7 +9882,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
}
});
});*/
return Result.OK();
}
@@ -10530,5 +10784,31 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
});
}
@Override
public void lawsInventoryEOListSortByDesignDueDate(List<ProjectLawsInventoryEO> projectLawsInventoryEOS) {
Collections.sort(projectLawsInventoryEOS, new Comparator<ProjectLawsInventoryEO>() {
@Override
public int compare(ProjectLawsInventoryEO p1, ProjectLawsInventoryEO p2) {
if(p1.getDesignDueDate() != null && p2.getDesignDueDate() != null){
return p1.getDesignDueDate().compareTo(p2.getDesignDueDate());
}
return 1;
}
});
}
@Override
public void lawsInventoryEOListSortByVerifyDueDate(List<ProjectLawsInventoryEO> projectLawsInventoryEOS) {
Collections.sort(projectLawsInventoryEOS, new Comparator<ProjectLawsInventoryEO>() {
@Override
public int compare(ProjectLawsInventoryEO p1, ProjectLawsInventoryEO p2) {
if(p1.getDesignDueDate() != null && p2.getDesignDueDate() != null){
return p1.getDesignDueDate().compareTo(p2.getDesignDueDate());
}
return 1;
}
});
}
}
+7
View File
@@ -1701,5 +1701,12 @@ module.exports = {
returntofill:'Return to fill',
thereAreCurrentlyNoRegulationsToHandle:'There are currently no regulations to handle',
certificationSubmission:'Certification Submission',
upgradecompletion:'Upgrade completion',
implementedupgrade:'Whether the implemented upgrade is consistent with the record',
numberofvehicles:'Number of vehicles that have completed upgrades',
vehicleshavenotcompletedonlineupgrade:'The reason why some vehicles have not completed online upgrade',
cause:'cause',
implementationrecords:'Fault handling measures and emergency response implementation records',
}
+6
View File
@@ -1801,4 +1801,10 @@ module.exports = {
expeditionProcess:'催办流程',
thereAreCurrentlyNoRegulationsToHandle:'当前没有可处理的法规',
certificationSubmission:'认证提交',
upgradecompletion:'升级完成情况',
implementedupgrade:'实施的升级是否和备案一致',
numberofvehicles:'完成升级的车辆数',
vehicleshavenotcompletedonlineupgrade:'部分车辆未完在线升级的原因',
cause:'原因',
implementationrecords:'故障处置措施和应急响应实施记录',
}
@@ -819,7 +819,7 @@
customRender: 'titleName'
}
if (res.db_field_name == 'nioNumber') {
this.columns[index].width = 100
this.columns[index].width = 120
}
if (res.click1) {
this.columns[index].scopedSlots = {
@@ -610,7 +610,7 @@
customRender: 'titleName'
}
if (res.db_field_name == 'nioNumber') {
this.columns[index].width = 100
this.columns[index].width = 120
}
if (res.click) {
// 工程接口人列表修改
@@ -19,7 +19,7 @@
{{$t('recordstatus')}}</span>
</div>
<a-form-model-item class="itemModel" prop="recordstatus">
<j-dict-select-tag class="box-input" v-model="formInline.recordstatus"
<j-dict-select-tag class="box-input" v-model="formInline.bazt"
:placeholder="$t('PleaseSelect')+$t('recordstatus')"
:type="'select'"
:triggerChange="false" :dictCode="'recordstatus'"/>
@@ -36,10 +36,10 @@
<a-form-model-item class="itemModel" prop="filingtime">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('filingtime')"
@change="dateChange({db_field_name:'filingtime'})"
@change="dateChange({db_field_name:'batjs'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.filingtime"
v-model="formInline.batjs"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
@@ -54,7 +54,7 @@
</div>
<a-form-model-item class="itemModel" prop="remarks">
<a-textarea :placeholder="$t('pleaseEnter')+$t('remarks')"
v-model="formInline.remark"
v-model="formInline.bz"
:rows="4"/>
</a-form-model-item>
</div>
@@ -75,7 +75,9 @@ export default {
return {
visible: false,
confirmLoading: false,
formInline: {},
formInline: {
batjs:'',
},
rules: {
// listConfirmation: [
// {
@@ -134,7 +136,13 @@ export default {
},
methods: {
edit(row) {
console.log(row)
if(row instanceof Array){
this.ids = row
}else{
this.formInline.bazt = row.bazt
this.formInline.batjs = row.batjs
this.formInline.bz = row.bz
}
this.visible = true
this.$nextTick(() => {
this.$refs.ruleForm.clearValidate()
@@ -145,14 +153,17 @@ export default {
if (valid) {
let query = {
...this.formInline,
id:this.ids.join(',')
}
this.confirmLoading = true
postAction('', query).then((res) => {
postAction('ota/otaBaSjList/batchRecord', {
recordList :query
}).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.confirmLoading = false
this.$emit('settingListForm')
this.$emit('getList')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
@@ -162,7 +173,10 @@ export default {
})
},
handleCancel() {
this.formInline = {}
this.formInline = {
batjs:''
}
this.ids = []
this.visible = false
},
dateChange(item) {
@@ -163,7 +163,7 @@
/>
</div>
</div>
<maintenance ref="maintenanceRef"/>
<maintenance @getList="getList" ref="maintenanceRef"/>
<upgradecompletion ref="upgradecompletionRef"/>
</a-card>
</template>
@@ -351,14 +351,14 @@ export default {
...queryParam
}
this.loading = true
getAction('/ota/otaBaSjList/list', query).then((res) => {
getAction('/ota/otaBaSjList/page', query).then((res) => {
if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
this.pageNo = 1
this.getList()
return
}
this.dataSource = res.result || []
this.dataSource = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
@@ -437,7 +437,7 @@ export default {
if(this.selectedRowKeys.length < 1){
this.$message.warning(this.$t('selectLeastOne'))
}else{
this.$refs.maintenanceRef.edit()
this.$refs.maintenanceRef.edit(this.selectedRowKeys)
}
},
// 模板下载
@@ -122,13 +122,26 @@
<div class="title-text-add">
<span class="title-text-text" :title="$t('Vehicledynamictype')">{{$t('Vehicledynamictype')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-form-model-item class="itemModel" style='width: 38%'>
<j-dict-select-tag class="box-input"
:disabled="disabled"
@change="projectNameChange"
:placeholder="$t('PleaseSelect')"
:type="'select'"
:triggerChange="false"/>
</a-form-model-item>
<a-form-model-item class="itemModel" style='width: 40%;margin-left: 20px'>
<a-select class="box-input" :placeholder="$t('PleaseSelect')"
v-model="formInline.projectNameId">
<a-select-option v-for="(item, key) in projectNameList"
:key="key"
:value="item.id">
<span style="display: inline-block;width: 100%" :title=" item.projectName ">
{{ item.projectName}}
</span>
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
<a-col :span="24">
@@ -178,6 +191,8 @@
return {
confirmLoading: false,
disabled: false,
formInline:{},
projectNameList:[],
}
},
mounted() {
@@ -36,11 +36,10 @@
<a-form-model-item class="itemModel" prop="filingtime">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('filingtime')"
@change="dateChange({db_field_name:'filingtime'})"
@change="dateChange({db_field_name:'batjs'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.batjs"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
@@ -75,7 +74,9 @@ export default {
return {
visible: false,
confirmLoading: false,
formInline: {},
formInline: {
batjs:'',
},
rules: {
// listConfirmation: [
// {
@@ -134,8 +135,12 @@ export default {
},
methods: {
edit(row) {
if(row){
this.formInline = {...row}
if(row instanceof Array){
this.ids = row
}else{
this.formInline.bazt = row.bazt
this.formInline.batjs = row.batjs
this.formInline.bz = row.bz
}
this.visible = true
this.$nextTick(() => {
@@ -147,14 +152,17 @@ export default {
if (valid) {
let query = {
...this.formInline,
id:this.ids.join(',')
}
this.confirmLoading = true
postAction('', query).then((res) => {
postAction('ota/otaBaCxList/batchRecord', {
recordList: query
}).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.confirmLoading = false
this.$emit('settingListForm')
this.$emit('getList')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
@@ -164,7 +172,10 @@ export default {
})
},
handleCancel() {
this.formInline = {}
this.formInline = {
batjs:''
}
this.ids = []
this.visible = false
},
dateChange(item) {
@@ -161,7 +161,7 @@
/>
</div>
</div>
<maintenance ref="maintenanceRef"/>
<maintenance @getList="getList" ref="maintenanceRef"/>
</a-card>
</template>
@@ -346,14 +346,14 @@ export default {
...queryParam
}
this.loading = true
getAction('/ota/otaBaCxList/list', query).then((res) => {
getAction('/ota/otaBaCxList/page', query).then((res) => {
if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
this.pageNo = 1
this.getList()
return
}
this.dataSource = res.result || []
this.dataSource = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
@@ -432,7 +432,7 @@ export default {
if(this.selectedRowKeys.length < 1){
this.$message.warning(this.$t('selectLeastOne'))
}else{
this.$refs.maintenanceRef.edit()
this.$refs.maintenanceRef.edit(this.selectedRowKeys)
}
},
// 模板下载
@@ -143,6 +143,7 @@
<projectStatus @TaskListChange="TaskListChange"
v-else-if="textTitle === $t('projectStatus')"/>
<certificationList ref="certificationListRef"
:isDisplayNum="isDisplayNum"
@getRoleSwitch="getRoleSwitch"
v-else-if="textTitle === $t('certificationList')"/>
</div>
@@ -206,7 +207,7 @@
'12': '系统管理员',
'13': 'Viewer',
'14': '品牌管理员',
'20': '接口人',
'20': '工程接口人',
'21': '责任人',
'30': '工程接口人',
'31': '责任人',
@@ -11,7 +11,8 @@
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 60px">
<div class="table-operator">
<div class="operator-text" v-if="isDisplayNum == 2" @click="addData">
<div class="operator-text" v-if="isDisplayNum == 2 && roleSwitchingCode == 2"
@click="addData">
<a-icon type="plus"/>
{{$t('add')}}
</div>
@@ -76,7 +77,7 @@
certificationDirectoryAdd,
viewFileModel
},
props: ['isDisplayNum'],
props: ['isDisplayNum','roleSwitchingCode'],
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
@@ -158,7 +159,8 @@
computed: {
columns() {
let columnResult = JSON.parse(JSON.stringify(this.columnsAll))
if (this.isDisplayNum != 2) {
if (this.roleSwitchingCode == 2 && this.isDisplayNum == 2){
}else{
for (var i = 0; i < columnResult.length; i++) {
if (columnResult[i].title === this.$t('operation')) {
columnResult.splice(i, 1)
@@ -15,10 +15,10 @@
<a-row :gutter="24">
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('VirtualListName')">
<span>{{$t('VirtualListName')}}</span>
<div class="title-text" :title="$t('CertificationListName')">
<span>{{$t('CertificationListName')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('VirtualListName')"
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('CertificationListName')"
v-model="queryParam.name"></j-input>
</div>
</a-col>
@@ -87,7 +87,7 @@
selectedRowKeys: [],
columns: [
{
title: this.$t('VirtualListName'),
title: this.$t('CertificationListName'),
dataIndex: 'name',
align: 'left',
ellipsis: true,
@@ -155,11 +155,17 @@
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.queryParam
...this.queryParam,
state:'1',
}
this.loading = true
getAction('/authDummy/authDummyInventoryBaseEO/page', query).then((res) => {
if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
this.pageNo = 1
this.replacePage()
return
}
this.dataList = res.result.records || []
this.total = res.result.total
this.loading = false
@@ -32,9 +32,9 @@
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@handleSuperQuery="handleSuperQuery"
:fieldList="fieldList"/>
<!-- <globalAdvancedQuery ref="globalAdvancedQueryRef"-->
<!-- @handleSuperQuery="handleSuperQuery"-->
<!-- :fieldList="fieldList"/>-->
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
</a-col>
@@ -180,8 +180,8 @@ export default {
this.pageNo = 1
this.queryParam = {}
this.replacePage()
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
// this.$refs.globalAdvancedQueryRef.resetLine()
// this.$refs.globalAdvancedQueryRef.emitCallback()
},
onChange(page, pageSize) {
this.pageNo = page
@@ -192,19 +192,19 @@ export default {
this.pageSize = pageSize
this.replacePage()
},
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
sqp['superQueryParams'] = ''
this.$refs.globalAdvancedQueryRef.superQueryFlag = false
} else {
this.$refs.globalAdvancedQueryRef.superQueryFlag = true
sqp['superQueryParams'] = encodeURI(JSON.stringify(params))
sqp['superQueryMatchType'] = matchType
}
this.queryParamQuery = sqp
this.replacePage()
},
// handleSuperQuery(params, matchType) {
// let sqp = {}
// if (!params || (params && params.length == 0)) {
// sqp['superQueryParams'] = ''
// this.$refs.globalAdvancedQueryRef.superQueryFlag = false
// } else {
// this.$refs.globalAdvancedQueryRef.superQueryFlag = true
// sqp['superQueryParams'] = encodeURI(JSON.stringify(params))
// sqp['superQueryMatchType'] = matchType
// }
// this.queryParamQuery = sqp
// this.replacePage()
// },
replacePage() {
let query = {
// pageNo: this.pageNo,
@@ -96,7 +96,8 @@
</div>
<!-- 认证目录-->
<div @click="certificationClick" v-if="roleSwitchingCode == 0 || roleSwitchingCode == 2" class="operator-text">
<div @click="certificationClick" v-if="roleSwitchingCode == 0 || roleSwitchingCode == 1 ||
roleSwitchingCode == 2" class="operator-text">
<a-icon type="profile"/>
{{ $t('CertificationDirectory') }}
</div>
@@ -377,7 +378,8 @@
</div>
</div>
<transferList :url="url" @transferListForm="transferListForm" ref="transferListRef"/>
<certificationDirectory :isDisplayNum="isDisplayNum" :url="url" ref="certificationDirectoryRef"/>
<certificationDirectory :isDisplayNum="isDisplayNum" :roleSwitchingCode="roleSwitchingCode"
:url="url" ref="certificationDirectoryRef"/>
<batSetting :url="url" ref="batSettingRef" :roleSwitchingCode="roleSwitchingCode" @batSettingForm="batSettingForm"/>
<addModel ref="addModelRef" @addModelForm="addModelForm"/>
<modifyHistory ref="modifyHistoryRef"/>
@@ -477,6 +479,7 @@
export default {
name: 'index',
props:['isDisplayNum'],
components: {
globalAdvancedQuery,
ImportFile,
@@ -601,14 +604,16 @@
align: 'left',
dataIndex: 'category',
width: 180,
ellipsis: true
ellipsis: true,
fixed: 'left',
},
{
title: this.$t('inspectionItems'),
align: 'left',
dataIndex: 'inspectionItem',
width: 180,
ellipsis: true
ellipsis: true,
fixed: 'left',
},
{
title: this.$t('configurationItem'),
@@ -723,7 +728,6 @@
],
selectedRowKeys: [],
selectedRowKeysList: [],
isDisplayNum: 2,
long: '',
toDoIds: [],
toDoNotConditions: [],
@@ -487,7 +487,7 @@
<a-select allowClear
:placeholder="$t('pleaseSelect')+$t('expeditionProcess')"
mode="multiple"
v-model="formInlineQuestion.questionStatus">
v-model="formInlineQuestion.expeditingType">
<a-select-option :value="item.value" v-for="item in questionList">
<span class="itemOption-index" :title="item.name">
{{ item.name }}
@@ -559,7 +559,7 @@
roleSwitchingList: [],
formInlineQuestion: {},
rulesRoleQuestion: {
questionStatus: [
expeditingType: [
{
required: true,
message: this.$t('expeditionProcess') + this.$t('cannotEmpty'),
@@ -569,11 +569,11 @@
},
questionList: [
{
value: '1',
value: 'lawsInventoryDesignExpediting',
name: this.$t('designComplianceProcess')
},
{
value: '2',
value: 'lawsInventoryVerifyExpediting',
name: this.$t('validationComplianceProcess')
}
],
@@ -1524,13 +1524,22 @@
handleOkQuestion() {
this.$refs.ruleFormQuestion.validate(valid => {
let formInlineQuestion = JSON.parse(JSON.stringify(this.formInlineQuestion))
if (formInlineQuestion.questionStatus && formInlineQuestion.questionStatus.length > 0) {
formInlineQuestion.questionStatus = formInlineQuestion.questionStatus.join(',')
if (formInlineQuestion.expeditingType && formInlineQuestion.expeditingType.length > 0) {
formInlineQuestion.expeditingType = formInlineQuestion.expeditingType.join(',')
}
let operateType = ''
if (this.roleSwitchingCode == '0') {
operateType = 'lawsInventoryStudioExpediting'
} else if (this.roleSwitchingCode == '1') {
operateType = 'lawsInventoryRegulationOwnerExpediting'
} else if (this.roleSwitchingCode == '30') {
operateType = 'lawsInventoryEngineeringInterfacePersonExpediting'
}
let query = {
ids: this.questionIdList.join(','),
projectLibraryId: this.$route.query.id,
questionStatus: formInlineQuestion.questionStatus
expeditingType: formInlineQuestion.expeditingType,
operateType: operateType
}
this.confirmLoadingQuestion = true
postAction('project/projectLawsInventoryEO/expediting', query).then((res) => {
@@ -1616,11 +1625,11 @@
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'
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 {
@@ -47,12 +47,20 @@
:triggerChange="false" :dictCode="'state'"/>
</div>
</a-col>
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('zoneOfApplication')">
<span>{{$t('zoneOfApplication')}}</span>
</div>
<j-multi-select-tag class="box-input" v-model="queryParam.region"
:placeholder="$t('PleaseSelect')+$t('zoneOfApplication')" :type="'select'"
:triggerChange="false" :dictCode="'region'"/>
</div>
</a-col>
</template>
<span style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@handleSuperQuery="handleSuperQuery"
:fieldList="fieldList"/>
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
@@ -103,14 +111,10 @@
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'codeNumber',
components: {
globalAdvancedQuery
},
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
@@ -184,7 +188,6 @@ export default {
pageNo: 1,
pageSize: 10,
total: 0,
fieldList: [],
queryParamQuery: {},
queryConditionVOList: []
}
@@ -202,7 +205,6 @@ export default {
this.selectedRowKeys = []
this.queryConditionVOList = []
this.replacePage()
this.queryConditionInventory()
},
// number() {
// this.regulation = ''
@@ -214,9 +216,6 @@ export default {
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
this.replacePage()
},
onChange(page, pageSize) {
@@ -228,18 +227,6 @@ export default {
this.pageSize = pageSize
this.replacePage()
},
queryConditionInventory() {
let query = {
flag: 1
}
getAction(this.url.queryConditionInventory, query).then((res) => {
if (res.success) {
this.fieldList = res.result || []
} else {
this.fieldList = []
}
})
},
replacePage() {
let queryConditionVOList = JSON.parse(JSON.stringify(this.queryConditionVOList))
let query = {
@@ -268,20 +255,6 @@ export default {
handleCancel() {
this.visible = false
},
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.superQueryFlag = false
} else {
this.$refs.globalAdvancedQueryRef.superQueryFlag = true
this.queryConditionVOList = params
this.queryConditionVOList.forEach(res => {
res.type = matchType
})
}
this.replacePage()
},
handleSubmit() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true
@@ -56,7 +56,7 @@
<div class="drawer-bootom-button">
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit(undefined)" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
</div>
</a-drawer>
</template>
@@ -144,6 +144,9 @@ export default {
// this.loading = false
// }
// })
},
handleSubmit(){
},
onSelectChange(value) {
this.selectedRowKeys = value
@@ -48,7 +48,7 @@
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%'}"
:scroll="{x: '100%',y:'calc(100vh - 300px)'}"
rowKey="id"
:data-source="dataSource"
:columns="columns"
@@ -67,7 +67,7 @@
<a class="text-operation"
v-has="'dummyInventoryBase:issue'"
@click="withdraw(record)">
{{record.state == 2 ? $t('release') : $t('withdraw')}}
{{!record.state || record.state == 2 ? $t('release') : $t('withdraw')}}
</a>
<!-- v-if="record.createBy == userData.username || administrators"-->
<a class="text-operation" :disabled="record.state == 1?true:false"
@@ -309,7 +309,7 @@ export default {
withdraw(val) {
let item = {}
let content = ''
if (val.state == 2) {
if (!val.state || val.state == 2) {
content = this.$t('confirmRelease')
item.state = 1
} else {