合并分支 'dev_2nd_period_test' 到 'master'

Dev 2nd period test

查看合并请求 laws-nio/laws-weilai!237
This commit is contained in:
高嵩
2022-11-04 18:04:37 +08:00
19 changed files with 1328 additions and 1142 deletions
@@ -86,7 +86,7 @@
<select id="listInfoOfTodoCenter" resultMap="ParamsCollectManifestEOResultMap"> <select id="listInfoOfTodoCenter" resultMap="ParamsCollectManifestEOResultMap">
select id,nio_number,state,sdt,dre,params_manifest_id from params_collect_manifest select id,nio_number,state,sdt,dre,params_manifest_id from params_collect_manifest
where params_manifest_id in where control_type != '11' and params_manifest_id in
<foreach collection="manifestIdList" index="index" item="item" open="(" separator="," close=")"> <foreach collection="manifestIdList" index="index" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
@@ -2521,18 +2521,20 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
+ "2.All fields is filled in according to Validate Component and Component Value\n" + "2.All fields is filled in according to Validate Component and Component Value\n"
+ "3.If the control type is drop-down multi-selection, multiple entries are separated by English or Chinese exclamation points\n" + "3.If the control type is drop-down multi-selection, multiple entries are separated by English or Chinese exclamation points\n"
+ "4.Configuration data is filled in according to the sequence of control type, and if there are multiple control types, it needs to be separated by \"#\"\n" + "4.Configuration data is filled in according to the sequence of control type, and if there are multiple control types, it needs to be separated by \"#\"\n"
+ "5.When filling in, start in column G and do not modify information such as NIO number and parameter name\n" + "5.When the control contains multiple component types, if you fill in only some of the information, you need to distinguish blank data with \"#\"\n"
+ "6.File fields are file type, must create a folder in the directory of the same level as the file with the name of the nio number and place the file in the folder. Assume that the file is saved in the A number B.pdf,Should fill in A/B.pdf\n" + "6.When filling in, start in column G and do not modify information such as NIO number and parameter name\n"
+ "7.When importing into the system, you need to put the Excel into a folder, place other attachment files correctly as required, and finally compress the folder into zip format for import\n"; + "7.File fields are file type, must create a folder in the directory of the same level as the file with the name of the nio number and place the file in the folder. Assume that the file is saved in the A number B.pdf,Should fill in A/B.pdf\n"
+ "8.When importing into the system, you need to put the Excel into a folder, place other attachment files correctly as required, and finally compress the folder into zip format for import\n";
} else { } else {
explanation = "填写说明\n" explanation = "填写说明\n"
+ "1.导入数据从第三行开始,第一行为表头,第二行为填写说明,第三行是示例数据,需要从第四行开始填写\n" + "1.导入数据从第三行开始,第一行为表头,第二行为填写说明,第三行是示例数据,需要从第四行开始填写\n"
+ "2.填写时需按照控件校验和控件备选值进行填写\n" + "2.填写时需按照控件校验和控件备选值进行填写\n"
+ "3.控件类型为下拉多选时,填写多个时采用英文或中文感叹号分割\n" + "3.控件类型为下拉多选时,填写多个时采用英文或中文感叹号分割\n"
+ "4.配置数据按照控件类型顺序进行填写,若存在多种控件类型填写时需要通过“#”隔开\n" + "4.配置数据按照控件类型顺序进行填写,若存在多种控件类型填写时需要通过“#”隔开\n"
+ "5.填写时从G列开始,请勿修改NIO编号和参数名称等信息\n" + "5.控件中包含多种组件类型时,若只填写其中部分信息需要用#区分空白数据\n"
+ "6.上传附件为文件属性,填写时需要在本文件同级目录下以NIO编号为名称建立文件夹,并在文件夹下放置文件且该文件夹下只能有一层级,假设在NIO.XXXX下放置了B.pdf,则应填写NIO.XXXX/B.pdf\n" + "6.填写时从G列开始,请勿修改NIO编号和参数名称等信息\n"
+ "7.导入系统时,需要将该Excel放入文件夹内,并按照要求正确放置其他附件文件,最后将文件夹压缩为zip格式进行导入\n"; + "7.上传附件为文件属性,填写时需要在本文件同级目录下以NIO编号为名称建立文件夹,并在文件夹下放置文件且该文件夹下只能有一层级,假设在NIO.XXXX下放置了B.pdf,则应填写NIO.XXXX/B.pdf\n"
+ "8.导入系统时,需要将该Excel放入文件夹内,并按照要求正确放置其他附件文件,最后将文件夹压缩为zip格式进行导入\n";
} }
XSSFRow row2 = sheetItems.createRow(1); XSSFRow row2 = sheetItems.createRow(1);
row2.setHeight((short) 2500); row2.setHeight((short) 2500);
@@ -115,6 +115,7 @@ public class HomeFunctionModuleEOServiceImpl extends ServiceImpl<HomeFunctionMod
//用户拥有权限的菜单 //用户拥有权限的菜单
List<SysPermission> metaList = sysPermissionService.queryByUser(loginUser.getUsername()); List<SysPermission> metaList = sysPermissionService.queryByUser(loginUser.getUsername());
metaList = metaList.stream().filter(e->!"2".equals(String.valueOf(e.getMenuType()))).collect(Collectors.toList());
//所有的图表(state=0) //所有的图表(state=0)
LambdaQueryWrapper<HomeFunctionModuleEO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<HomeFunctionModuleEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(HomeFunctionModuleEO::getState,"0").isNull(HomeFunctionModuleEO::getCreateBy); wrapper.in(HomeFunctionModuleEO::getState,"0").isNull(HomeFunctionModuleEO::getCreateBy);
@@ -142,13 +143,20 @@ public class HomeFunctionModuleEOServiceImpl extends ServiceImpl<HomeFunctionMod
} }
return homeFunctionModuleEOListTemp; return homeFunctionModuleEOListTemp;
}else{ }else{
List<HomeFunctionModuleEO> homeFunctionModuleEOSTemp = new ArrayList<>();
for (SysPermission sysPermission : metaList) {
List<HomeFunctionModuleEO> collect = homeFunctionModuleEOS.stream().filter(e -> e.getIconName().equals(sysPermission.getName())).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(collect)){
homeFunctionModuleEOSTemp.addAll(collect);
}
}
homeFunctionModuleEOSTemp = homeFunctionModuleEOSTemp.stream().distinct().collect(Collectors.toList());
if(CutEnum.EN.getValue().equals(cut)){ if(CutEnum.EN.getValue().equals(cut)){
for (HomeFunctionModuleEO homeFunctionModuleEO : homeFunctionModuleEOS) { for (HomeFunctionModuleEO homeFunctionModuleEO : homeFunctionModuleEOSTemp) {
homeFunctionModuleEO.setIconName(homeFunctionModuleEO.getIconNameEn()); homeFunctionModuleEO.setIconName(homeFunctionModuleEO.getIconNameEn());
} }
} }
return homeFunctionModuleEOS; return homeFunctionModuleEOSTemp;
} }
} }
} }
@@ -19,10 +19,7 @@ import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.*;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -104,15 +101,20 @@ public class LawsTechnologyEvaluationRemindJob implements Job {
}).map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(",")); }).map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(","));
if(StringUtils.isNotEmpty(actiProcInstIds)){ if(StringUtils.isNotEmpty(actiProcInstIds)){
List<String> userIdList = this.workFlowFeignClient.getTaskAssigneeListByPrcIds(actiProcInstIds); //List<String> userIdList = this.workFlowFeignClient.getTaskAssigneeListByPrcIds(actiProcInstIds);
if(CollectionUtils.isNotEmpty(userIdList)){ for (String actiProcInstId : actiProcInstIds.split(",")) {
Map<String, String> map = this.workFlowFeignClient.getTaskInfo(actiProcInstId);
if (!map.isEmpty()) {
JSONObject sendJsonObject = new JSONObject(); JSONObject sendJsonObject = new JSONObject();
sendJsonObject.put("msgType", MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_THREE_DAYS_BEFORE_MSG.getValue()); sendJsonObject.put("msgType", MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_THREE_DAYS_BEFORE_MSG.getValue());
sendJsonObject.put("lawsTechnologyEvaluationId",lawsTechnologyEvaluationEO.getId()); sendJsonObject.put("lawsTechnologyEvaluationId",lawsTechnologyEvaluationEO.getId());
sendJsonObject.put("userIdList",userIdList); sendJsonObject.put("userId",map.get("userId"));
sendJsonObject.put("taskId",map.get("taskId"));
sendJsonObject.put("taskDefKey",map.get("taskDefKey"));
this.lawsTechnologyEvaluationEOService.workFlowSendMsg(sendJsonObject); this.lawsTechnologyEvaluationEOService.workFlowSendMsg(sendJsonObject);
} }
} }
}
} else if (endTime.equals(now)){ } else if (endTime.equals(now)){
//当天 //当天
String actiProcInstIds = flowDetailList.stream().filter(flowDetail -> { String actiProcInstIds = flowDetailList.stream().filter(flowDetail -> {
@@ -124,16 +126,21 @@ public class LawsTechnologyEvaluationRemindJob implements Job {
}).map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(",")); }).map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(","));
if(StringUtils.isNotEmpty(actiProcInstIds)){ if(StringUtils.isNotEmpty(actiProcInstIds)){
List<String> userIdList = this.workFlowFeignClient.getTaskAssigneeListByPrcIds(actiProcInstIds); //List<String> userIdList = this.workFlowFeignClient.getTaskAssigneeListByPrcIds(actiProcInstIds);
if(CollectionUtils.isNotEmpty(userIdList)){ for (String actiProcInstId : actiProcInstIds.split(",")) {
Map<String, String> map = this.workFlowFeignClient.getTaskInfo(actiProcInstId);
if (!map.isEmpty()) {
JSONObject sendJsonObject = new JSONObject(); JSONObject sendJsonObject = new JSONObject();
sendJsonObject.put("msgType", MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_TODAY_MSG.getValue()); sendJsonObject.put("msgType", MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_TODAY_MSG.getValue());
sendJsonObject.put("lawsTechnologyEvaluationId",lawsTechnologyEvaluationEO.getId()); sendJsonObject.put("lawsTechnologyEvaluationId",lawsTechnologyEvaluationEO.getId());
sendJsonObject.put("userIdList",userIdList); sendJsonObject.put("userId",map.get("userId"));
sendJsonObject.put("taskId",map.get("taskId"));
sendJsonObject.put("taskDefKey",map.get("taskDefKey"));
this.lawsTechnologyEvaluationEOService.workFlowSendMsg(sendJsonObject); this.lawsTechnologyEvaluationEOService.workFlowSendMsg(sendJsonObject);
} }
} }
} }
}
}); });
} }
} }
@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface LawsTechnologyEvaluationFlowDetailEOMapper extends BaseMapper<LawsTechnologyEvaluationFlowDetailEO> { public interface LawsTechnologyEvaluationFlowDetailEOMapper extends BaseMapper<LawsTechnologyEvaluationFlowDetailEO> {
LawsTechnologyEvaluationFlowDetailEO queryByEvaluationId(@Param("lawsTechnologyEvaluationId") String lawsTechnologyEvaluationId); LawsTechnologyEvaluationFlowDetailEO queryByEvaluationId(@Param("lawsTechnologyEvaluationId") String lawsTechnologyEvaluationId,
@Param("evaluator") String evaluator);
} }
@@ -17,7 +17,7 @@
<select id="queryByEvaluationId" resultMap="LawsTechnologyEvaluationFlowDetailEOResultMap"> <select id="queryByEvaluationId" resultMap="LawsTechnologyEvaluationFlowDetailEOResultMap">
select * from laws_technology_evaluation_flow_detail where laws_technology_evaluation_id = #{lawsTechnologyEvaluationId} select * from laws_technology_evaluation_flow_detail where laws_technology_evaluation_id = #{lawsTechnologyEvaluationId} and evaluator_id = #{evaluator}
</select> </select>
@@ -623,17 +623,18 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
//String serialNumber = jsonObject.getString("serialNumber"); //文档库编号 //String serialNumber = jsonObject.getString("serialNumber"); //文档库编号
List<String> userIdList = new ArrayList<>(); List<String> userIdList = new ArrayList<>();
String taskId = jsonObject.getString("taskId");
//飞书跳转链接
String hrefFeishu = "";
//String msgContentEN = ""; //String msgContentEN = "";
//String msgTitle = ""; //String msgTitle = "";
String initiator = ""; String initiator = "";
String lawsTechnologyEvaluationId = jsonObject.getString("lawsTechnologyEvaluationId"); String lawsTechnologyEvaluationId = jsonObject.getString("lawsTechnologyEvaluationId");
LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO = queryById(lawsTechnologyEvaluationId); LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO = queryById(lawsTechnologyEvaluationId);
//LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId);
//String number = flowDetailEO.getPrcNum(); //String number = flowDetailEO.getPrcNum();
//String name = flowDetailEO.getPrcName(); //String name = flowDetailEO.getPrcName();
String endTime = new SimpleDateFormat("yyyy-MM-dd").format(lawsTechnologyEvaluationEO.getEndTime()); String endTime = new SimpleDateFormat("yyyy-MM-dd").format(lawsTechnologyEvaluationEO.getEndTime());
//英文标题 //英文标题
BussDocumentLibraryEO bussDocumentLibraryEO = bussDocumentLibraryEOService.queryById(lawsTechnologyEvaluationEO.getStandId()); BussDocumentLibraryEO bussDocumentLibraryEO = bussDocumentLibraryEOService.queryById(lawsTechnologyEvaluationEO.getStandId());
@@ -643,7 +644,7 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
String enContentUpper = ""; String enContentUpper = "";
String enContentLower = ""; String enContentLower = "";
if(StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_START_MSG.getValue())){ if(StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_START_MSG.getValue())){
userIdList.add(jsonObject.getString("evaluationId")); //userIdList.add(jsonObject.getString("evaluationId"));
//String endTime = jsonObject.getString("endTime"); //截止日期 //String endTime = jsonObject.getString("endTime"); //截止日期
//您收到GB 7258 的法规技术评估流程任务,请及时查看处理。 //您收到GB 7258 的法规技术评估流程任务,请及时查看处理。
//msgContentEN = "You recieved the Regulatory and technical assessment of "+serialNumber+" . The due date is "+endTime+". Please check and address it in a timely manner."; //msgContentEN = "You recieved the Regulatory and technical assessment of "+serialNumber+" . The due date is "+endTime+". Please check and address it in a timely manner.";
@@ -663,28 +664,83 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() + "\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + initiator + "\nInitiator: " + initiator +
"\nDue Date: " + endTime; "\nDue Date: " + endTime;
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey=pgrqr&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=false";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
}else if(StringUtils.equals(msgType,MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_ENALUATOR_SUBMIT_MSG.getValue())){ }else if(StringUtils.equals(msgType,MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_ENALUATOR_SUBMIT_MSG.getValue())){
String currentUserId = jsonObject.getString("currentUserId"); //当前操作用户id String currentUserId = jsonObject.getString("currentUserId"); //当前操作用户id
SysUser currentUser = this.sysUserService.getBaseMapper().selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, currentUserId)); SysUser currentUser = this.sysUserService.getBaseMapper().selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, currentUserId));
userIdList.add(jsonObject.getString("initiatorUserId")); //userIdList.add(jsonObject.getString("initiatorUserId"));
//XXX(人员账号)已提交GB 7258 的法规意见收集流程,请及时查看审核。 //XXX(人员账号)已提交GB 7258 的法规意见收集流程,请及时查看审核。
//msgContentEN = currentUser.getUsername() + " has submitted the collection process of Regulatory and technical assessment of "+serialNumber+", Please check and address it in time."; //msgContentEN = currentUser.getUsername() + " has submitted the collection process of Regulatory and technical assessment of "+serialNumber+", Please check and address it in time.";
//msgTitle = "You have a Regulatory and technical assessment task to complete"; //msgTitle = "You have a Regulatory and technical assessment task to complete";
initiator = currentUser.getUsername(); initiator = currentUser.getUsername();
cnContentUpper = "您好,"+ currentUser.getUsername() +"已提交评估结果,请审核"; cnContentUpper = "您好,"+ initiator +"已提交评估结果,请审核";
cnContentLower = "编号:" + lawsTechnologyEvaluationEO.getSerialNumber() + cnContentLower = "编号:" + lawsTechnologyEvaluationEO.getSerialNumber() +
"\n标题: " + lawsTechnologyEvaluationEO.getTitle() + "\n标题: " + lawsTechnologyEvaluationEO.getTitle() +
"\n发起人: " + initiator + "\n发起人: " + initiator +
"\n截止时间: " + endTime; "\n截止时间: " + endTime;
enContentUpper = "Hello! "+ currentUser.getUsername() +" has submitted the assessment result. Please review it"; enContentUpper = "Hello! "+ initiator +" has submitted the assessment result. Please review it";
enContentLower = "Regulation No :" + lawsTechnologyEvaluationEO.getSerialNumber() + enContentLower = "Regulation No :" + lawsTechnologyEvaluationEO.getSerialNumber() +
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() + "\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + initiator + "\nInitiator: " + initiator +
"\nDue Date: " + endTime; "\nDue Date: " + endTime;
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey=fqrsc&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=false";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
}else if(StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_AUDIT_ACCEPTED_MSG.getValue())){ }else if(StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_AUDIT_ACCEPTED_MSG.getValue())){
userIdList.add(jsonObject.getString("evaluationId")); //userIdList.add(jsonObject.getString("evaluationId"));
//您提交的GB 7258 的法规技术评估流程已通过。 //您提交的GB 7258 的法规技术评估流程已通过。
//msgContentEN = "The regulatory and technical assessment process for "+serialNumber+" you submitted has passed."; //msgContentEN = "The regulatory and technical assessment process for "+serialNumber+" you submitted has passed.";
//msgTitle = "You have a Regulatory and technical assessment task completed"; //msgTitle = "You have a Regulatory and technical assessment task completed";
@@ -701,8 +757,33 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() + "\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + initiator + "\nInitiator: " + initiator +
"\nDue Date: " + endTime; "\nDue Date: " + endTime;
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("evaluationId"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey=fqrsc&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=true";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("evaluationId"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
}else if(StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_AUDIT_REJECTED_MSG.getValue())){ }else if(StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_AUDIT_REJECTED_MSG.getValue())){
userIdList.add(jsonObject.getString("evaluationId")); //userIdList.add(jsonObject.getString("evaluationId"));
//您提交的GB 7258 的法规技术评估流程已被退回,请及时查看处理。 //您提交的GB 7258 的法规技术评估流程已被退回,请及时查看处理。
//msgContentEN = "The regulatory and technical assessment process of "+serialNumber+" you submitted has been returned, Please check and address it in time."; //msgContentEN = "The regulatory and technical assessment process of "+serialNumber+" you submitted has been returned, Please check and address it in time.";
//msgTitle = "You have a Regulatory and technical assessment task to complete"; //msgTitle = "You have a Regulatory and technical assessment task to complete";
@@ -719,6 +800,30 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() + "\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + initiator + "\nInitiator: " + initiator +
"\nDue Date: " + endTime; "\nDue Date: " + endTime;
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey=pgrqr&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=false";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
} else if (StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_THREE_DAYS_BEFORE_MSG.getValue())) { } else if (StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_THREE_DAYS_BEFORE_MSG.getValue())) {
cnContentUpper = "您好,该任务将于3天后到期,请及时查看处理,谢谢!"; cnContentUpper = "您好,该任务将于3天后到期,请及时查看处理,谢谢!";
cnContentLower = "编号:" + lawsTechnologyEvaluationEO.getSerialNumber() + cnContentLower = "编号:" + lawsTechnologyEvaluationEO.getSerialNumber() +
@@ -728,7 +833,29 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
enContentLower = "Regulation No :" + lawsTechnologyEvaluationEO.getSerialNumber() + enContentLower = "Regulation No :" + lawsTechnologyEvaluationEO.getSerialNumber() +
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() + "\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName(); "\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
userIdList = (List<String>) jsonObject.get("userIdList");
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("userId"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey="+ jsonObject.getString("taskDefKey") +"&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=false";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("userId"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
} else if (StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_TODAY_MSG.getValue())) { } else if (StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_TODAY_MSG.getValue())) {
cnContentUpper = "您好,该任务将于今天到期,请尽快查看处理,谢谢!"; cnContentUpper = "您好,该任务将于今天到期,请尽快查看处理,谢谢!";
@@ -739,7 +866,29 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
enContentLower = "Regulation No :" + lawsTechnologyEvaluationEO.getSerialNumber() + enContentLower = "Regulation No :" + lawsTechnologyEvaluationEO.getSerialNumber() +
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() + "\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName(); "\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
userIdList = (List<String>) jsonObject.get("userIdList");
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("userId"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey="+ jsonObject.getString("taskDefKey") +"&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=false";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("userId"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
} /*else if (StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_MSG.getValue())) { } /*else if (StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_MSG.getValue())) {
userIdList = (List<String>) jsonObject.get("userIdList"); userIdList = (List<String>) jsonObject.get("userIdList");
@@ -750,26 +899,6 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName(); initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
} */ } */
List<String> thirdIdList = new ArrayList<>();
List<SysUser> sysUsers = sysUserService.listByIds(userIdList);
if (ObjectUtils.isNotEmpty(sysUsers)) {
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
}
//飞书跳转链接
String hrefFeishu = backUrl + JumpLinkEnum.FGPG_TODO_CENTER_LINK.getLink();
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
//系统内部跳转链接 //系统内部跳转链接
//String href = "<a href='" + JumpLinkEnum.TASK_AFFIRM_LINK.getLink() + "'>" + " View details" + "</a>"; //String href = "<a href='" + JumpLinkEnum.TASK_AFFIRM_LINK.getLink() + "'>" + " View details" + "</a>";
//String contentInfo = msgContentEN + " " + href; //String contentInfo = msgContentEN + " " + href;
@@ -91,7 +91,7 @@ public class ProblemKnowledgeBaseCommentEOServiceImpl extends ServiceImpl<Proble
SysUser sysUser = sysUserService.getUserByName(createBy); SysUser sysUser = sysUserService.getUserByName(createBy);
String contentCNNo = "您发布的问题知识库信息"+problemKnowledgeBaseEO.getTitle()+"有新评论,请注意查看."; String contentCNNo = "您发布的问题知识库信息"+problemKnowledgeBaseEO.getTitle()+"有新评论,请注意查看.";
String contentENNo = "In the Q&A knowledge "+problemKnowledgeBaseEO.getTitle()+" you created, a new comment has been added. Please be reminded to check it out."; String contentENNo = "In the Q&A knowledge "+problemKnowledgeBaseEO.getTitle()+" you created, a new comment has been added. Please be reminded to check it out.";
String url = backUrl +"/problemknowledgeBase"; String url = backUrl +"/problemknowledgeBase?id="+problemKnowledgeBaseEO.getId();
String href = "<a href='"+url + "'"+ " target='_blank'>"+ problemKnowledgeBaseEO.getTitle() + "</a>"; String href = "<a href='"+url + "'"+ " target='_blank'>"+ problemKnowledgeBaseEO.getTitle() + "</a>";
String contentINfoCNNo = "您发布的问题知识库信息"+href+"有新评论,请注意查看."; String contentINfoCNNo = "您发布的问题知识库信息"+href+"有新评论,请注意查看.";
@@ -8,6 +8,7 @@ import com.jero.modules.split.mapper.SarFileSplitMenuEOMapper;
import com.jero.modules.split.page.SarFileSplitMenuEOPage; import com.jero.modules.split.page.SarFileSplitMenuEOPage;
import com.jero.modules.split.service.IFileSplitItemsEOService; import com.jero.modules.split.service.IFileSplitItemsEOService;
import com.jero.modules.split.service.ISarFileSplitMenuEOService; import com.jero.modules.split.service.ISarFileSplitMenuEOService;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -55,7 +56,9 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
int count = dao.insertSelective(sarFileSplitMenuEO); int count = dao.insertSelective(sarFileSplitMenuEO);
// 新增对应条款 // 新增对应条款
Map<String, Object> parameter = new HashMap<>(); Map<String, Object> parameter = new HashMap<>();
if (StringUtils.isNotEmpty(sarFileSplitMenuEO.getName())) {
parameter.put("items_num", sarFileSplitMenuEO.getName()); parameter.put("items_num", sarFileSplitMenuEO.getName());
}
parameter.put("items_name", sarFileSplitMenuEO.getItemName()); parameter.put("items_name", sarFileSplitMenuEO.getItemName());
parameter.put("info_id", sarFileSplitMenuEO.getInfoId()); parameter.put("info_id", sarFileSplitMenuEO.getInfoId());
parameter.put("menu_id", sarFileSplitMenuEO.getId()); parameter.put("menu_id", sarFileSplitMenuEO.getId());
@@ -92,7 +92,7 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC
if (count > 0) { if (count > 0) {
paramsManifestEO.setWaitFillNum(count); paramsManifestEO.setWaitFillNum(count);
} }
} else { // 工程接口人和填写人 只能看到 工程接口人是自己 或 填写人是自己 的数量 } else { // 工程接口只能看到工程接口人是自己的;填写人只能看到填写人是自己 的数量
// 统计待分配数量 包括状态:待工程接口人处理,填写人退回 // 统计待分配数量 包括状态:待工程接口人处理,填写人退回
count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState()) count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState())
|| CollectManifestStateEnum.DRE_BACK.getValue().equals(e.getState())) || CollectManifestStateEnum.DRE_BACK.getValue().equals(e.getState()))
@@ -104,7 +104,7 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC
// 统计待填写数量 包括状态:待填写,认证工程师退回 // 统计待填写数量 包括状态:待填写,认证工程师退回
count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState()) count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState())
|| CollectManifestStateEnum.CERT_BACK.getValue().equals(e.getState())) || CollectManifestStateEnum.CERT_BACK.getValue().equals(e.getState()))
&& loginUser.getUsername().equals(e.getDre())).count(); && (loginUser.getUsername().equals(e.getDre()) || loginUser.getUsername().equals(e.getSdt()))).count();
if (count > 0) { if (count > 0) {
paramsManifestEO.setWaitFillNum(count); paramsManifestEO.setWaitFillNum(count);
} }
@@ -198,4 +198,9 @@ public interface WorkFlowFeignClient {
*/ */
@RequestMapping(value = "/bat-wkflow/datas/bus-process-new/dispostHistoryBusProcessNewData",method = RequestMethod.GET) @RequestMapping(value = "/bat-wkflow/datas/bus-process-new/dispostHistoryBusProcessNewData",method = RequestMethod.GET)
Result dispostHistoryBusProcessNewData(); Result dispostHistoryBusProcessNewData();
@RequestMapping(value = "/bat-wkflow/task/getTaskInfo",method = RequestMethod.GET)
Map<String, String> getTaskInfo(@RequestParam("actiProcInstId") String actiProcInstId);
} }
@@ -65,12 +65,15 @@
<div class="text-content"> <div class="text-content">
{{item.contentOne}} {{item.contentOne}}
</div> </div>
<div class="text-text-right-text-Two"> <div class="text-text-right-text-The">
{{item.showPermissions_dicText}} {{item.showPermissions_dicText}}
</div> </div>
<div class="text-text-right-text-One"> <div class="text-text-right-text-Two">
{{item.releaseStatus == 'Draft'?$t('draft'):$t('HaveReleased')}} {{item.releaseStatus == 'Draft'?$t('draft'):$t('HaveReleased')}}
</div> </div>
<div class="text-text-right-text-One">
{{item.createBy}}
</div>
<div class="text-text-right-text"> <div class="text-text-right-text">
<a style="margin-right: 10px" @click="edit(item)" <a style="margin-right: 10px" @click="edit(item)"
v-if="userInfoQuery.username == item.createBy || administrators">{{$t('edit')}}</a> v-if="userInfoQuery.username == item.createBy || administrators">{{$t('edit')}}</a>
@@ -325,7 +328,7 @@
.text-text-right { .text-text-right {
padding: 19px 19px; padding: 19px 19px;
width: calc(100% - 420px); width: calc(100% - 540px);
box-sizing: border-box; box-sizing: border-box;
/*margin-left: 38px;*/ /*margin-left: 38px;*/
} }
@@ -340,6 +343,16 @@
transform: translate-Y(-50%); transform: translate-Y(-50%);
} }
.text-text-right-text-The {
width: 120px;
height: 100%;
text-align: center;
position: absolute;
right: 420px;
top: 50%;
transform: translate-Y(-50%);
}
.text-text-right-text-One { .text-text-right-text-One {
width: 120px; width: 120px;
height: 100%; height: 100%;
@@ -21,7 +21,7 @@
<div v-else style="height: 200px;position: relative"> <div v-else style="height: 200px;position: relative">
<JNoData/> <JNoData/>
</div> </div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading> <JLoading style="z-index: 999" :loading="loading">{{$t('dataLoading')}}</JLoading>
</div> </div>
</template> </template>
@@ -17,7 +17,7 @@
<div v-else style="height: 300px;position: relative"> <div v-else style="height: 300px;position: relative">
<JNoData/> <JNoData/>
</div> </div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading> <JLoading style="z-index: 999" :loading="loading">{{$t('dataLoading')}}</JLoading>
</div> </div>
</template> </template>
@@ -11,11 +11,11 @@
<div class="myList-box-content-box" v-for="(item,index) in dataSource" :key="index" @click="prcClick(item)"> <div class="myList-box-content-box" v-for="(item,index) in dataSource" :key="index" @click="prcClick(item)">
<div class="top"> <div class="top">
<span class="top-text" v-if="item.flowType == 10" <span class="top-text" v-if="item.flowType == 10"
:title="item.flowTypeShow+'-'+item.projectName"> :title="item.projectName+'-'+ item.flowTypeShow">
{{item.flowTypeShow+'-'+item.projectName}} {{item.projectName+'-'+ item.flowTypeShow}}
</span> </span>
<span class="top-text" :title="item.flowTypeShow+'-'+item.serialNumber"> <span class="top-text" :title="item.serialNumber+'-'+item.flowTypeShow">
{{item.flowTypeShow+'-'+item.serialNumber}} {{item.serialNumber+'-'+item.flowTypeShow}}
</span> </span>
<!-- <span class="top-admin" :title="prcTypeName[item.prcType]">{{prcTypeName[item.prcType]}}</span>--> <!-- <span class="top-admin" :title="prcTypeName[item.prcType]">{{prcTypeName[item.prcType]}}</span>-->
</div> </div>
@@ -30,7 +30,7 @@
<div v-else style="height: 300px;position: relative"> <div v-else style="height: 300px;position: relative">
<JNoData/> <JNoData/>
</div> </div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading> <JLoading style="z-index: 999" :loading="loading">{{$t('dataLoading')}}</JLoading>
</div> </div>
</template> </template>
@@ -26,7 +26,7 @@
<div v-else style="height: 300px;position: relative"> <div v-else style="height: 300px;position: relative">
<JNoData/> <JNoData/>
</div> </div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading> <JLoading style="z-index: 999" :loading="loading">{{$t('dataLoading')}}</JLoading>
</div> </div>
</template> </template>
@@ -1,12 +1,12 @@
<template> <template>
<div class='mainItem'> <div class="mainItem">
<div class="split-detail" @click="clearMenu" :style="'width:' + (fullWidth - 200) + 'px'"> <div class="split-detail" @click="clearMenu" :style="'width:' + (fullWidth - 200) + 'px'">
<a-card :bordered="false"> <a-card :bordered="false">
<div class="split-detail-wrap"> <div class="split-detail-wrap">
<div class="split-detail-left"> <div class="split-detail-left">
<div class="split-detail-left-tree"> <div class="split-detail-left-tree">
<a-input-search style="margin-bottom: 8px" :placeholder="$t('NodeQuickLookup')" @change="onLeftChange" <a-input-search style="margin-bottom: 8px" :placeholder="$t('NodeQuickLookup')" @change="onLeftChange"
@search="onSearch"/> @search="onSearch" />
<a-tree <a-tree
v-if="gData.length>0" v-if="gData.length>0"
:selected-keys="selectedKeys" :selected-keys="selectedKeys"
@@ -25,32 +25,36 @@
<span v-if="title.indexOf(searchValue) >= -1 && title.length <= 18" :title="title" <span v-if="title.indexOf(searchValue) >= -1 && title.length <= 18" :title="title"
class="expand-title"> class="expand-title">
{{ title.substr(0, title.indexOf(searchValue)) }}<span {{ title.substr(0, title.indexOf(searchValue)) }}<span
style="color: #f50">{{ searchValue }}</span>{{ title.substr(title.indexOf(searchValue) + searchValue.length) }} style="color: #f50">{{ searchValue
}}</span>{{ title.substr(title.indexOf(searchValue) + searchValue.length) }}
</span> </span>
<span <span
v-else-if="title.indexOf(searchValue) >= -1 && title.length > 18 && title.indexOf(searchValue)>18" v-else-if="title.indexOf(searchValue) >= -1 && title.length > 18 && title.indexOf(searchValue)>18"
:title="title"> :title="title">
{{title && title.length > 18?title.slice(0,17)+'...':title}} {{ title && title.length > 18 ? title.slice(0, 17) + '...' : title }}
</span> </span>
<span <span
v-else-if="title.indexOf(searchValue) >= -1 && title.length > 18 && title.indexOf(searchValue)<=18" v-else-if="title.indexOf(searchValue) >= -1 && title.length > 18 && title.indexOf(searchValue)<=18"
:title="title"> :title="title">
{{ title.substr(0, title.indexOf(searchValue)) }}<span style="color: #f50">{{ title.indexOf(searchValue)+searchValue.length>18?searchValue.substr(0,18-title.indexOf(searchValue)) : searchValue }}</span>{{ title.indexOf(searchValue)+searchValue.length>18?'...': title.substr(title.indexOf(searchValue) + searchValue.length,18-title.indexOf(searchValue) - searchValue.length)+'...' }} {{ title.substr(0, title.indexOf(searchValue)) }}<span
style="color: #f50">{{ title.indexOf(searchValue) + searchValue.length > 18 ? searchValue.substr(0, 18 - title.indexOf(searchValue)) : searchValue
}}</span>{{ title.indexOf(searchValue) + searchValue.length > 18 ? '...' : title.substr(title.indexOf(searchValue) + searchValue.length, 18 - title.indexOf(searchValue) - searchValue.length) + '...'
}}
</span> </span>
<span v-else :title="title"> <span v-else :title="title">
{{title && title.length > 18?title.slice(0,17)+'...':title}} {{ title && title.length > 18 ? title.slice(0, 17) + '...' : title }}
</span> </span>
<template #overlay> <template #overlay>
<a-menu v-if="$route.query.createBy == userData.username || administrators" <a-menu v-if="$route.query.createBy == userData.username || administrators"
@click="({ key: menuKey }) => onContextMenuClick(treeKey, menuKey, record)"> @click="({ key: menuKey }) => onContextMenuClick(treeKey, menuKey, record)">
<a-menu-item key="1" @click="orgAdd" v-has="'split:sarFileSplitMenu:add'">{{$t('newNode')}} <a-menu-item key="1" @click="orgAdd" v-has="'split:sarFileSplitMenu:add'">{{ $t('newNode') }}
</a-menu-item> </a-menu-item>
<a-menu-item key="2" @click="orgEdit" v-has="'split:sarFileSplitMenu:update'"> <a-menu-item key="2" @click="orgEdit" v-has="'split:sarFileSplitMenu:update'">
{{$t('modifyNode')}} {{ $t('modifyNode') }}
</a-menu-item> </a-menu-item>
<a-menu-item key="3" @click="orgDelete" v-if="deleteNode" <a-menu-item key="3" @click="orgDelete" v-if="deleteNode"
v-has="'split:sarFileSplitMenu:delete'">{{$t('deleteNode')}} v-has="'split:sarFileSplitMenu:delete'">{{ $t('deleteNode') }}
</a-menu-item> </a-menu-item>
</a-menu> </a-menu>
</template> </template>
@@ -63,26 +67,26 @@
<div class="split-detail-right-wraper"> <div class="split-detail-right-wraper">
<div class="split-detail-search-header"> <div class="split-detail-search-header">
<search :flag="'4'" :url="url" :infoId="$route.query.infoId" <search :flag="'4'" :url="url" :infoId="$route.query.infoId"
:menuId="menuId" @resetSearch="resetSearch" @queryParams="queryParamsValues"/> :menuId="menuId" @resetSearch="resetSearch" @queryParams="queryParamsValues" />
</div> </div>
<div class="table-operator"> <div class="table-operator">
<div class="operator-text" @click="handleCopyManage" <div class="operator-text" @click="handleCopyManage"
v-if="$route.query.createBy == userData.username || administrators" v-if="$route.query.createBy == userData.username || administrators"
v-has="'split:sarFileSplitItems:copy'"> v-has="'split:sarFileSplitItems:copy'">
<a-icon type="copy"/> <a-icon type="copy" />
{{ $t('copy') }} {{ $t('copy') }}
</div> </div>
<div class="operator-text" @click="handleAddManage" <div class="operator-text" @click="handleAddManage"
v-if="$route.query.createBy == userData.username || administrators" v-if="$route.query.createBy == userData.username || administrators"
v-has="'split:sarFileSplitItems:add'"> v-has="'split:sarFileSplitItems:add'">
<a-icon type="plus"/> <a-icon type="plus" />
{{ $t('add') }} {{ $t('add') }}
</div> </div>
<div class="operator-text upload-split" <div class="operator-text upload-split"
v-if="$route.query.createBy == userData.username || administrators" v-if="$route.query.createBy == userData.username || administrators"
@click="handleImportManage" v-has="'split:sarFileSplitItems:import'"> @click="handleImportManage" v-has="'split:sarFileSplitItems:import'">
<a-icon type="import" :rotate="-90" v-if="uploadMenuId===undefined||uploadMenuId===''"/> <a-icon type="import" :rotate="-90" v-if="uploadMenuId===undefined||uploadMenuId===''" />
{{ (uploadMenuId===''||uploadMenuId===undefined)? $t('import'):'' }} {{ (uploadMenuId === '' || uploadMenuId === undefined) ? $t('import') : '' }}
<upload v-if="menuId" ref="uploadSplit" :infoId="infoId" :menuId="uploadMenuId" <upload v-if="menuId" ref="uploadSplit" :infoId="infoId" :menuId="uploadMenuId"
@uploadSuccess="uploadSuccess"></upload> @uploadSuccess="uploadSuccess"></upload>
<!-- <ImportFile :url="url"/>--> <!-- <ImportFile :url="url"/>-->
@@ -90,31 +94,31 @@
</div> </div>
<div class="operator-text" @click="handleExportManage" <div class="operator-text" @click="handleExportManage"
v-has="'split:sarFileSplitItems:export'"> v-has="'split:sarFileSplitItems:export'">
<a-icon type="export" :rotate="-90"/> <a-icon type="export" :rotate="-90" />
{{ $t('export') }} {{ $t('export') }}
</div> </div>
<div class="operator-text" @click="handleDownManage" <div class="operator-text" @click="handleDownManage"
v-if="$route.query.createBy == userData.username || administrators" v-if="$route.query.createBy == userData.username || administrators"
v-has="'split:sarFileSplitItems:template'"> v-has="'split:sarFileSplitItems:template'">
<a-icon type="download"/> <a-icon type="download" />
{{ $t('TemplateDownload') }} {{ $t('TemplateDownload') }}
</div> </div>
<div class="operator-text" @click="handleMergeManage" <div class="operator-text" @click="handleMergeManage"
v-if="$route.query.createBy == userData.username || administrators" v-if="$route.query.createBy == userData.username || administrators"
v-has="'split:sarFileSplitItems:merge'"> v-has="'split:sarFileSplitItems:merge'">
<a-icon type="snippets"/> <a-icon type="snippets" />
{{ $t('MergerClause') }} {{ $t('MergerClause') }}
</div> </div>
<div class="operator-text" @click="handleManage" <div class="operator-text" @click="handleManage"
v-if="$route.query.createBy == userData.username || administrators" v-if="$route.query.createBy == userData.username || administrators"
v-has="'split:sarFileSplitItems:set'"> v-has="'split:sarFileSplitItems:set'">
<a-icon type="setting"/> <a-icon type="setting" />
{{ $t('BatchSetting') }} {{ $t('BatchSetting') }}
</div> </div>
<div class="operator-text" @click="handleBatCancel" <div class="operator-text" @click="handleBatCancel"
v-if="$route.query.createBy == userData.username || administrators" v-if="$route.query.createBy == userData.username || administrators"
v-has="'split:sarFileSplitItems:delete'"> v-has="'split:sarFileSplitItems:delete'">
<a-icon type="delete"/> <a-icon type="delete" />
{{ $t('BatchDelete') }} {{ $t('BatchDelete') }}
</div> </div>
</div> </div>
@@ -143,7 +147,7 @@
:footer="false" :footer="false"
@cancel="handleCancel" @cancel="handleCancel"
> >
<p v-html='contentValue'></p> <p v-html="contentValue"></p>
</a-modal> </a-modal>
<!-- 添加节点--> <!-- 添加节点-->
<a-modal <a-modal
@@ -164,15 +168,17 @@
:wrapper-col="wrapperCol" :wrapper-col="wrapperCol"
> >
<a-form-model-item :label="$t('clauseNo')" prop="name"> <a-form-model-item :label="$t('clauseNo')" prop="name">
<a-input v-model="form.name" :placeholder="$t('PleaseEnter')+$t('clauseNo')"/> <a-input class="box-input" v-model="form.name" :placeholder="$t('PleaseEnter')+$t('clauseNo')" />
</a-form-model-item> </a-form-model-item>
<a-form-model-item :label="$t('clauseName')" prop="itemName"> <a-form-model-item :label="$t('clauseName')" prop="itemName">
<a-input v-model="form.itemName" :placeholder="$t('PleaseEnter')+$t('clauseName')"/> <a-input class="box-input" v-model="form.itemName" :placeholder="$t('PleaseEnter')+$t('clauseName')" />
</a-form-model-item> </a-form-model-item>
<a-form-model-item :label="$t('serialNumber')" prop="displaySeq"> <a-form-model-item :label="$t('serialNumber')" prop="displaySeq">
<a-input-number v-model="form.displaySeq" :min="1" :max="99999" <a-input-number v-model="form.displaySeq" :min="1" :max="99999"
:placeholder="$t('PleaseEnter')+$t('serialNumber')" :formatter="limitNumber" class="box-input"
:parser="limitNumber" style="width: 100%"/> :placeholder="$t('PleaseEnter')+$t('serialNumber')"
:formatter="limitNumber"
:parser="limitNumber" style="width: 100%" />
<!-- <a-input-number v-model="rowCount" :min="1" :placeholder="$t('pleaseEnter')+$t('numberRows')" :formatter="limitNumber" :parser="limitNumber" />--> <!-- <a-input-number v-model="rowCount" :min="1" :placeholder="$t('pleaseEnter')+$t('numberRows')" :formatter="limitNumber" :parser="limitNumber" />-->
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
@@ -207,21 +213,21 @@
</template> </template>
<script> <script>
import { getAction, postAction, deleteAction, putAction, downloadFile } from '@/api/manage' import { getAction, postAction, deleteAction, putAction, downloadFile } from '@/api/manage'
import search from '@/components/SplitSearch/index' import search from '@/components/SplitSearch/index'
import TableData from '@/components/SplitDetailTable/index' import TableData from '@/components/SplitDetailTable/index'
// import upload from '@/components/uploadFile/file.vue' // import upload from '@/components/uploadFile/file.vue'
import SplitBatForm from '@/components/SplitBatForm/index' import SplitBatForm from '@/components/SplitBatForm/index'
import SplitAddForm from './SplitAddForm' import SplitAddForm from './SplitAddForm'
import upload from '@/components/SplitImport/index' import upload from '@/components/SplitImport/index'
import axios from 'axios' import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types' import { ACCESS_TOKEN } from '@/store/mutation-types'
import moment from 'moment' import moment from 'moment'
import eventBUs from '@/common/event' import eventBUs from '@/common/event'
import Vue from 'vue' import Vue from 'vue'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
export default { export default {
name: 'SplitDetail', name: 'SplitDetail',
components: { components: {
search, search,
@@ -321,7 +327,7 @@
widthBrown: '', widthBrown: '',
creenWidth: document.body.clientWidth, creenWidth: document.body.clientWidth,
brownHeight: document.documentElement.clientHeight, brownHeight: document.documentElement.clientHeight,
administrators:false, administrators: false
} }
}, },
watch: { watch: {
@@ -356,7 +362,6 @@
// document.querySelector('.split-detail-left').style.height = this.brownHeight-iframeTop-24 + 'px' // document.querySelector('.split-detail-left').style.height = this.brownHeight-iframeTop-24 + 'px'
// }, false); // }, false);
this.userData = this.userInfo() this.userData = this.userInfo()
this.administrators = false this.administrators = false
if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) {
@@ -458,6 +463,9 @@
// 将数据存储为 以 id 为 KEY 的 map 索引数据列 // 将数据存储为 以 id 为 KEY 的 map 索引数据列
let map = {} let map = {}
config.forEach((item) => { config.forEach((item) => {
if (!item.name) {
item.name = ''
}
item.label = item.name item.label = item.name
item.key = item.id item.key = item.id
item.title = item.name + (item.itemName ? ' ' + item.itemName : '') item.title = item.name + (item.itemName ? ' ' + item.itemName : '')
@@ -789,7 +797,6 @@
}) })
this.attId = attIdList.join(',') this.attId = attIdList.join(',')
// eventBUs.$emit('searchReset') // eventBUs.$emit('searchReset')
} }
}, },
@@ -954,7 +961,6 @@
console.log(error) console.log(error)
}) })
}, },
onCancel() { onCancel() {
} }
@@ -1023,7 +1029,6 @@
console.log(error) console.log(error)
}) })
// postAction(`split/sarFileSplitItems/batchDeleteItems`,params).then(res=> { // postAction(`split/sarFileSplitItems/batchDeleteItems`,params).then(res=> {
// if(res.success){ // if(res.success){
// this.$message.success(this.$t('OperationSuccessful')) // this.$message.success(this.$t('OperationSuccessful'))
@@ -1173,13 +1178,13 @@
beforeDestroy() { beforeDestroy() {
window.removeEventListener('resize', {}, false) window.removeEventListener('resize', {}, false)
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import '~@assets/less/common.less'; @import '~@assets/less/common.less';
.split-detail { .split-detail {
/*height: 100% !important;*/ /*height: 100% !important;*/
.split-detail-wrap { .split-detail-wrap {
@@ -1260,29 +1265,29 @@
margin-top: 20px; margin-top: 20px;
} }
} }
} }
/deep/ .ant-table-body { /deep/ .ant-table-body {
overflow: hidden !important; overflow: hidden !important;
} }
</style> </style>
<style lang="less"> <style lang="less">
.split-item { .split-item {
.ant-form-item-label { .ant-form-item-label {
min-width: 100px; min-width: 100px;
} }
} }
.add-menus { .add-menus {
.ant-modal-wrap { .ant-modal-wrap {
.ant-modal-footer { .ant-modal-footer {
text-align: center; text-align: center;
} }
} }
} }
.split-detail-right-wraper { .split-detail-right-wraper {
.table-page-search-submitButtons { .table-page-search-submitButtons {
.ant-col-md-6 { .ant-col-md-6 {
display: flex; display: flex;
@@ -1313,9 +1318,9 @@
margin-right: 3px !important; margin-right: 3px !important;
} }
} }
} }
.show-setting { .show-setting {
.ant-modal { .ant-modal {
min-width: 700px; min-width: 700px;
} }
@@ -1331,9 +1336,9 @@
.ant-modal-footer { .ant-modal-footer {
text-align: center; text-align: center;
} }
} }
.split-detail-left { .split-detail-left {
.ant-tree-node-content-wrapper-normal { .ant-tree-node-content-wrapper-normal {
@@ -1369,27 +1374,27 @@
} }
} }
} }
.show-setting .ant-modal-body { .show-setting .ant-modal-body {
max-height: 500px; max-height: 500px;
overflow-y: auto; overflow-y: auto;
} }
.split-detail-table { .split-detail-table {
.ant-table-body { .ant-table-body {
overflow: auto !important; overflow: auto !important;
} }
} }
.item-content-show { .item-content-show {
.wordImg { .wordImg {
width: 40px; width: 40px;
height: auto; height: auto;
} }
} }
@media screen and (min-width: 600px) and (max-width: 1600px) { @media screen and (min-width: 600px) and (max-width: 1600px) {
.operator-text { .operator-text {
margin-right: 20px !important; margin-right: 20px !important;
@@ -1404,14 +1409,18 @@
/*.mainItem {*/ /*.mainItem {*/
/* height: 500px;*/ /* height: 500px;*/
/*}*/ /*}*/
} }
@media screen and (min-width: 1600px) and (max-width: 2000px) { @media screen and (min-width: 1600px) and (max-width: 2000px) {
/*.split-detail .split-detail-wrap .split-detail-left {*/ /*.split-detail .split-detail-wrap .split-detail-left {*/
/* height: 735px !important;*/ /* height: 735px !important;*/
/*}*/ /*}*/
/*.mainItem {*/ /*.mainItem {*/
/* height: 800px !important;*/ /* height: 800px !important;*/
/*}*/ /*}*/
} }
.box-input {
height: 38px;
}
</style> </style>
@@ -308,7 +308,7 @@
.text-field-content { .text-field-content {
width: 100%; width: 100%;
margin-bottom: 8px; margin-bottom: 34px;
.text-field-left { .text-field-left {
width: 124px; width: 124px;
@@ -187,12 +187,15 @@
let _this = this let _this = this
item.type = '1' item.type = '1'
item.userType = _this.flag == undefined ? valueList[0] : 'dre' item.userType = _this.flag == undefined ? valueList[0] : 'dre'
this.loading = false
let newUrl = _this.$router.resolve({ let newUrl = _this.$router.resolve({
path: '/ParameterItemCollection', path: '/ParameterItemCollection',
query: item query: item
// projectName:this.$route.query.projectName // projectName:this.$route.query.projectName
}) })
window.open(newUrl.href, '_blank') window.open(newUrl.href, '_blank')
}else{
this.loading = false
} }
}) })
}, },
@@ -218,12 +221,15 @@
let _this = this let _this = this
item.type = '1' item.type = '1'
item.userType = _this.flag == undefined ? valueList[0] : 'sdt' item.userType = _this.flag == undefined ? valueList[0] : 'sdt'
this.loading = false
let newUrl = _this.$router.resolve({ let newUrl = _this.$router.resolve({
path: '/ParameterItemCollection', path: '/ParameterItemCollection',
query: item query: item
// projectName:this.$route.query.projectName // projectName:this.$route.query.projectName
}) })
window.open(newUrl.href, '_blank') window.open(newUrl.href, '_blank')
}else{
this.loading = false
} }
}) })
@@ -250,12 +256,15 @@
let _this = this let _this = this
item.type = '1' item.type = '1'
item.userType = _this.flag == undefined ? valueList[0] : 'homo' item.userType = _this.flag == undefined ? valueList[0] : 'homo'
this.loading = false
let newUrl = _this.$router.resolve({ let newUrl = _this.$router.resolve({
path: '/ParameterItemCollection', path: '/ParameterItemCollection',
query: item query: item
// projectName:this.$route.query.projectName // projectName:this.$route.query.projectName
}) })
window.open(newUrl.href, '_blank') window.open(newUrl.href, '_blank')
}else{
this.loading = false
} }
}) })
}, },