合并分支 'master' 到 'dev_third_stage'

Master

查看合并请求 laws-nio/laws-weilai!93
This commit is contained in:
李雪涛
2022-07-17 21:10:57 +08:00
57 changed files with 2544 additions and 893 deletions
@@ -384,4 +384,37 @@ ALTER TABLE `laws_technology_evaluation_result`
-- 用户表 删除索引 2022-07-14 已同步 -- 用户表 删除索引 2022-07-14 已同步
ALTER TABLE `laws_weilai`.`sys_user` ALTER TABLE `laws_weilai`.`sys_user`
DROP INDEX `uniq_sys_user_phone`, DROP INDEX `uniq_sys_user_phone`,
DROP INDEX `uniq_sys_user_email`; DROP INDEX `uniq_sys_user_email`;
-- 参数项清单 修改字段长度 2022-07-17
ALTER TABLE `laws_weilai`.`params_info`
MODIFY COLUMN `params_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称' AFTER `is_must`,
MODIFY COLUMN `description` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数说明' AFTER `duty_territory`;
ALTER TABLE `laws_weilai`.`cert_category_params_info`
MODIFY COLUMN `params_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称' AFTER `params_number`,
MODIFY COLUMN `description` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数说明' AFTER `params_name`;
ALTER TABLE `laws_weilai`.`params_info_publish`
MODIFY COLUMN `params_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称' AFTER `is_must`,
MODIFY COLUMN `description` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数说明' AFTER `duty_territory`;
ALTER TABLE `laws_weilai`.`cert_category_params_info_publish`
MODIFY COLUMN `params_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称' AFTER `params_number`,
MODIFY COLUMN `description` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数说明' AFTER `params_name`;
ALTER TABLE `laws_weilai`.`params_collect_manifest`
MODIFY COLUMN `params_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称' AFTER `is_must`,
MODIFY COLUMN `description` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数说明' AFTER `duty_territory`;
ALTER TABLE `laws_weilai`.`params_collect_manifest_history`
MODIFY COLUMN `params_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称' AFTER `is_must`,
MODIFY COLUMN `description` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数说明' AFTER `params_batch`;
ALTER TABLE `laws_weilai`.`params_report_detail`
MODIFY COLUMN `params_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称' AFTER `is_must`,
MODIFY COLUMN `description` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数说明' AFTER `duty_territory`;
ALTER TABLE `laws_weilai`.`report_cert_category_params_info`
MODIFY COLUMN `params_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称' AFTER `params_number`,
MODIFY COLUMN `description` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数说明' AFTER `params_name`;
@@ -45,3 +45,11 @@ ALTER TABLE `laws_weilai`.`sys_announcement`
INSERT INTO `sys_config` ( `id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `config`, `config_name` ) INSERT INTO `sys_config` ( `id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `config`, `config_name` )
VALUES VALUES
( '3', 'admin', '2022-07-09 18:38:23', 'admin', '2022-07-09 18:38:28', 'A01', 'http://localhost:8080', 'domianPreviewURL' ); ( '3', 'admin', '2022-07-09 18:38:23', 'admin', '2022-07-09 18:38:28', 'A01', 'http://localhost:8080', 'domianPreviewURL' );
-- 消息表添加发起人字段 已同步正式环境
ALTER TABLE `sys_announcement`
ADD COLUMN `initiator` varchar(255) NULL COMMENT '发起人' AFTER `document_id`;
-- 2022-07-05 修改字段类型 生产环境已同步
ALTER TABLE `project_laws_inventory_log`
MODIFY COLUMN `log_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'log内容' AFTER `project_library_id`;
@@ -17,10 +17,11 @@ public enum MessageTypeEnum {
REGULATION_TASK_CONFIRMATION_NOTIFICATION("Regulation Task Confirmation Notification", "15"), // 任务确认通知 REGULATION_TASK_CONFIRMATION_NOTIFICATION("Regulation Task Confirmation Notification", "15"), // 任务确认通知
DESIGN_COMPLIANCE_TASK("Design Compliance Task", "9"), // 设计符合性任务 DESIGN_COMPLIANCE_TASK("Design Compliance Task", "9"), // 设计符合性任务
PRE_HOMO_TASK("Pre-Homo Task", "10"), // Pre-Homo任务 PRE_HOMO_TASK("Pre-Homo Task", "10"), // Pre-Homo任务
VALIDATION_TASK("Validation Task", "11"), // 验证符合性任务 VALIDATION_TASK("Validation Compliance Task", "11"), // 验证符合性任务
DESIGN_COMPLIANCE_NOTIFICATION("Design Compliance Notification", "12"), // 设计符合性通知 DESIGN_COMPLIANCE_NOTIFICATION("Design Compliance Notification", "12"), // 设计符合性通知
PRE_HOMO_NOTIFICATION("Pre-Homo Notification", "13"), // Pre-Homo通知 PRE_HOMO_NOTIFICATION("Pre-Homo Notification", "13"), // Pre-Homo通知
VALIDATION_COMPLIANCE_NOTIFICATION("Validation Compliance Notification", "14"), // 验证符合性通知 VALIDATION_COMPLIANCE_NOTIFICATION("Validation Compliance Notification", "14"), // 验证符合性通知
SYSTEMATIC_NOTIFICATION("Systematic Notification", "15"), // 系统通知
; ;
String name; String name;
@@ -380,7 +380,7 @@ public class JeroElasticsearchTemplate {
log.info("url:" + url + " ,search: " + queryObject.toJSONString()); log.info("url:" + url + " ,search: " + queryObject.toJSONString());
JSONObject res = RestUtil.post(url, queryObject); JSONObject res = RestUtil.post(url, queryObject);
log.info("url:" + url + " ,return res: \n" + res.toJSONString()); // log.info("url:" + url + " ,return res: \n" + res.toJSONString());
return res; return res;
} }
/** /**
@@ -393,7 +393,7 @@ public class JeroElasticsearchTemplate {
log.info("url:" + url + " ,search: " + queryObject.toJSONString()); log.info("url:" + url + " ,search: " + queryObject.toJSONString());
JSONObject res = RestUtil.post(url,variables, queryObject); JSONObject res = RestUtil.post(url,variables, queryObject);
log.info("url:" + url + " ,return res: \n" + res.toJSONString()); // log.info("url:" + url + " ,return res: \n" + res.toJSONString());
return res; return res;
} }
@@ -447,6 +447,27 @@ public class JeroElasticsearchTemplate {
return json; return json;
} }
/**
* 无排序
* @param _source
* @param query
* @param highlight
* @param from
* @param size
* @return
*/
public JSONObject buildQuery(List<String> _source, JSONObject query,Map<String, Object> highlight, int from, int size) {
JSONObject json = new JSONObject();
if (_source != null) {
json.put("_source", _source);
}
json.put("highlight", highlight);
json.put("query", query);
json.put("from", from * size);
json.put("size", size);
return json;
}
/** /**
* @return { "bool" : { "must": must, "must_not": mustNot, "should": should } } * @return { "bool" : { "must": must, "must_not": mustNot, "should": should } }
*/ */
@@ -1172,7 +1172,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
// 参数名称 // 参数名称
String paramsName = dto.getParamsName(); String paramsName = dto.getParamsName();
resultMap = validateMustAndLength(paramsName, "参数名称", "Params Name", IsMustEnum.YES.getValue(), "30", false, cut); resultMap = validateMustAndLength(paramsName, "参数名称", "Params Name", IsMustEnum.YES.getValue(), "100", false, cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
@@ -1211,7 +1211,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
// 参数说明 // 参数说明
String description = dto.getDescription(); String description = dto.getDescription();
resultMap = validateMustAndLength(description,"参数说明", "Description", IsMustEnum.NO.getValue(),"1000",false,cut); resultMap = validateMustAndLength(description,"参数说明", "Description", IsMustEnum.NO.getValue(),"2000",false,cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
@@ -1432,12 +1432,12 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
} }
// 参数名称 // 参数名称
String paramsName = ccDto.getParamsName(); String paramsName = ccDto.getParamsName();
resultMap = validateMustAndLength(paramsName, "参数名称", "Params Name", IsMustEnum.YES.getValue(),"30", false, cut); resultMap = validateMustAndLength(paramsName, "参数名称", "Params Name", IsMustEnum.YES.getValue(),"100", false, cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
// 参数说明 // 参数说明
String description = ccDto.getDescription(); String description = ccDto.getDescription();
resultMap = validateMustAndLength(description, "参数说明", "Description", IsMustEnum.NO.getValue(),"1000", false, cut); resultMap = validateMustAndLength(description, "参数说明", "Description", IsMustEnum.NO.getValue(),"2000", false, cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
@@ -153,4 +153,8 @@ public class SysAnnouncement implements Serializable {
* 文档id * 文档id
*/ */
private java.lang.String documentId; private java.lang.String documentId;
/**
* 发起人
*/
private java.lang.String initiator;
} }
@@ -27,6 +27,7 @@
<result column="open_type" property="openType" jdbcType="VARCHAR"/> <result column="open_type" property="openType" jdbcType="VARCHAR"/>
<result column="open_page" property="openPage" jdbcType="VARCHAR"/> <result column="open_page" property="openPage" jdbcType="VARCHAR"/>
<result column="document_id" property="documentId" jdbcType="VARCHAR"/> <result column="document_id" property="documentId" jdbcType="VARCHAR"/>
<result column="initiator" property="initiator" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
@@ -17,6 +17,7 @@
<result column="open_type" property="openType" jdbcType="VARCHAR"/> <result column="open_type" property="openType" jdbcType="VARCHAR"/>
<result column="open_page" property="openPage" jdbcType="VARCHAR"/> <result column="open_page" property="openPage" jdbcType="VARCHAR"/>
<result column="document_id" property="documentId" jdbcType="VARCHAR"/> <result column="document_id" property="documentId" jdbcType="VARCHAR"/>
<result column="initiator" property="initiator" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<select id="queryByUserId" parameterType="String" resultType="String"> <select id="queryByUserId" parameterType="String" resultType="String">
@@ -41,7 +42,8 @@
sa.open_type as open_type, sa.open_type as open_type,
sa.open_page as open_page, sa.open_page as open_page,
sa.msg_abstract, sa.msg_abstract,
sa.document_id as document_id sa.document_id as document_id,
sa.initiator as initiator
from sys_announcement_send sas from sys_announcement_send sas
left join sys_announcement sa ON sas.annt_id = sa.id left join sys_announcement sa ON sas.annt_id = sa.id
where sa.del_flag = '0' where sa.del_flag = '0'
@@ -82,5 +82,9 @@ public class AnnouncementSendModel implements Serializable {
* 文档id * 文档id
*/ */
private java.lang.String documentId; private java.lang.String documentId;
/**
* 发起人
*/
private java.lang.String initiator;
} }
@@ -42,6 +42,7 @@ import com.jero.modules.domain.entity.DomainUserRel;
import com.jero.modules.domain.service.DomainUserRelService; import com.jero.modules.domain.service.DomainUserRelService;
import com.jero.modules.domain.service.impl.DomainManageServiceImpl; import com.jero.modules.domain.service.impl.DomainManageServiceImpl;
import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import com.jero.modules.home.entity.HomeDocumentDynamicEO; import com.jero.modules.home.entity.HomeDocumentDynamicEO;
import com.jero.modules.home.service.IHomeDocumentDynamicEOService; import com.jero.modules.home.service.IHomeDocumentDynamicEOService;
import com.jero.modules.log.entity.BussLogEO; import com.jero.modules.log.entity.BussLogEO;
@@ -127,6 +128,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -309,7 +311,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
String contentInfo =content; String contentInfo =content;
String title = content; String title = content;
//封装消息的实体类 //封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, title, content, contentInfo,MessageTypeEnum.READ.getValue()); SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, title, content, contentInfo,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(StringUtils.join(serialNumberList, ","), contentInfo); sendWebsocket(StringUtils.join(serialNumberList, ","), contentInfo);
} }
@@ -1000,7 +1002,6 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
// 取不到数据,直接返回空结果 // 取不到数据,直接返回空结果
return result; return result;
} }
//查询所有 //查询所有
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMapsAll(null); List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMapsAll(null);
@@ -1058,6 +1059,29 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
Map<String, Object> mapTemp = new HashMap<>(); Map<String, Object> mapTemp = new HashMap<>();
List<Map<String, Object>> resultTemp = new ArrayList<>(); List<Map<String, Object>> resultTemp = new ArrayList<>();
List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e -> onlCgformAreaTemp.getId().equals(e.getShowArea())).collect(Collectors.toList()); List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e -> onlCgformAreaTemp.getId().equals(e.getShowArea())).collect(Collectors.toList());
if(CutEnum.CN.getValue().equals(cut)){
fieldListTemp.removeIf(new Predicate<OnlCgformField>() {
@Override
public boolean test(OnlCgformField onlCgformField) {
return onlCgformField.getDbFieldName().equals("title_en");//
}
});
List<OnlCgformField> collect = fieldListTemp.stream().filter(e -> "title".equals(e.getDbFieldName())).collect(Collectors.toList());
if(collect.size() != 0){
collect.get(0).setDbFieldTxt("标题");
}
}else{
fieldListTemp.removeIf(new Predicate<OnlCgformField>() {
@Override
public boolean test(OnlCgformField onlCgformField) {
return onlCgformField.getDbFieldName().equals("title");//
}
});
List<OnlCgformField> collect = fieldListTemp.stream().filter(e -> "title_en".equals(e.getDbFieldName())).collect(Collectors.toList());
if(collect.size() != 0){
collect.get(0).setDbFieldEnName("Title");
}
}
for (OnlCgformField onlCgformField : fieldListTemp) { for (OnlCgformField onlCgformField : fieldListTemp) {
//字段 //字段
String dbFieldName = onlCgformField.getDbFieldName(); String dbFieldName = onlCgformField.getDbFieldName();
@@ -1570,13 +1594,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
String serialNumber = StringUtils.valueOf(map.get("serial_number")); String serialNumber = StringUtils.valueOf(map.get("serial_number"));
//String serialNumber = StringUtils.valueOf(map.get("serial_number")); //String serialNumber = StringUtils.valueOf(map.get("serial_number"));
//编码验重 //编码验重
List<BussDocumentLibraryEO> list = this.list(); // List<BussDocumentLibraryEO> list = this.list();
if(list.size() != 0){ // if(list.size() != 0){
List<String> serialNumberList = list.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList()); // List<String> serialNumberList = list.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList());
if(serialNumberList.contains(serialNumber)){ // if(serialNumberList.contains(serialNumber)){
throw new JeroBootException("编号已存在不能重复添加"); // throw new JeroBootException("编号已存在不能重复添加");
} // }
} // }
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String issueTime = (String) (map.get("issue_time")); String issueTime = (String) (map.get("issue_time"));
@@ -2143,7 +2167,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
+ href +" has been updated."; + href +" has been updated.";
String msgTitle = "The " + technologyTerritoryName + " technical field you subscribed to has been updated"; String msgTitle = "The " + technologyTerritoryName + " technical field you subscribed to has been updated";
//封装消息的实体类 //封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgTitle, content, contentInfo,MessageTypeEnum.READ.getValue()); SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgTitle, content, contentInfo,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(idTemp, contentInfo); sendWebsocket(idTemp, contentInfo);
//飞书 //飞书
@@ -3143,9 +3167,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
sbStr = sbStr.replaceAll("<text class='highlight-class'>", "").replaceAll("</text>", ""); sbStr = sbStr.replaceAll("<text class='highlight-class'>", "").replaceAll("</text>", "");
//您订阅的XXX已被修改 //您订阅的XXX已被修改
String contentInfo = "In the " + technologyTerritoryNameEn + " technical field you subscribed to," +sysUser.getUsername()+" changed the "+ href + " " + sbStr.toString(); String contentInfo = "In the " + technologyTerritoryNameEn + " technical field you subscribed to," +sysUser.getUsername()+" changed the "+ href + " " + sbStr.toString();
String msgTitle = "The" + technologyTerritoryNameEn + "technical field you subscribed to has been updated"; String msgTitle = "The " + technologyTerritoryNameEn + " technical field you subscribed to has been updated";
// 封装消息的实体类 // 封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userList, msgTitle, contentInfoFei, contentInfo,MessageTypeEnum.READ.getValue()); SysAnnouncement sysAnnouncement = getSysAnnouncement(userList, msgTitle, contentInfoFei, contentInfo,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket((String) map.get("id"), contentInfo); sendWebsocket((String) map.get("id"), contentInfo);
} }
@@ -3165,9 +3189,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//您订阅的XXX已被修改 //您订阅的XXX已被修改
content = "In the "+category + " " + serialNumber+" you subscribed to, has been modified,Please pay attention to check."; content = "In the "+category + " " + serialNumber+" you subscribed to, has been modified,Please pay attention to check.";
String contentInfo = "In the "+category + " " + href+" you subscribed to, "+sysUser.getUsername()+" changed the "+ href + " " + sbStr.toString(); String contentInfo = "In the "+category + " " + href+" you subscribed to, "+sysUser.getUsername()+" changed the "+ href + " " + sbStr.toString();
String msgTitle = serialNumber + "you subsribed to has been updated"; String msgTitle = serialNumber + " you subsribed to has been updated";
//封装消息的实体类 //封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdListUpdate, msgTitle, content, contentInfo,MessageTypeEnum.READ.getValue()); SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdListUpdate, msgTitle, content, contentInfo,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket((String) map.get("id"), contentInfo); sendWebsocket((String) map.get("id"), contentInfo);
} }
@@ -3248,7 +3272,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
String contentInfo = "New numbering implemented, please note update status of alternate numbering " + sbStr; String contentInfo = "New numbering implemented, please note update status of alternate numbering " + sbStr;
String msgTitle = contentInfo; String msgTitle = contentInfo;
//封装消息的实体类 //封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgTitle, content, contentInfo,MessageTypeEnum.READ.getValue()); SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgTitle, content, contentInfo,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(StringUtils.join(serialNumberListTemp, ","), contentInfo); sendWebsocket(StringUtils.join(serialNumberListTemp, ","), contentInfo);
//飞书 //飞书
@@ -3271,8 +3295,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
@NotNull @NotNull
public SysAnnouncement getSysAnnouncement(List<String> userIdList, String title, String content, String contentInfo,String messageType) { public SysAnnouncement getSysAnnouncement(List<String> userIdList,
String title,
String content,
String contentInfo,
String messageType,
String initiator) {
SysAnnouncement sysAnnouncement = new SysAnnouncement(); SysAnnouncement sysAnnouncement = new SysAnnouncement();
sysAnnouncement.setInitiator(initiator);
sysAnnouncement.setDelFlag("0"); sysAnnouncement.setDelFlag("0");
sysAnnouncement.setSendStatus("0"); sysAnnouncement.setSendStatus("0");
sysAnnouncement.setSendTime(new Date()); sysAnnouncement.setSendTime(new Date());
@@ -4684,10 +4714,6 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
*/ */
@Override @Override
public String pullMessage(String departIds, String userIds, String documentIds) { public String pullMessage(String departIds, String userIds, String documentIds) {
// departIds = "c6d7cb4deeac411cb3384b1b31278596";
// if(StringUtils.isBlank(documentIds)){
// return "请选择文档";
// }
Set<String> allDepartIds = new HashSet<>(); Set<String> allDepartIds = new HashSet<>();
//查询当前部门下所有部门 //查询当前部门下所有部门
if (StringUtils.isNotEmpty(departIds)) { if (StringUtils.isNotEmpty(departIds)) {
@@ -4746,9 +4772,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String content = sysUser.getUsername() + " pushed " + StringUtils.join(serialNumberList, ",") + " to you. Please be reminded to check it out."; String content = sysUser.getUsername() + " pushed " + StringUtils.join(serialNumberList, ",") + " to you. Please be reminded to check it out.";
String contentInfo = sysUser.getUsername() + " pushed " + StringUtils.join(hrefList, ",") + " to you. Please be reminded to check it out."; String contentInfo = sysUser.getUsername() + " pushed " + StringUtils.join(hrefList, ",") + " to you. Please be reminded to check it out.";
String title = StringUtils.join(serialNumberList, ",") + "has been pushed to you, please check"; String title = StringUtils.join(serialNumberList, ",") + " has been pushed to you, please check";
//封装消息的实体类 //封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, title, content, contentInfo,MessageTypeEnum.PUSH.getValue()); SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, title, content, contentInfo,MessageTypeEnum.PUSH.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(StringUtils.join(thirdIdList, ","), contentInfo); sendWebsocket(StringUtils.join(thirdIdList, ","), contentInfo);
//飞书 //飞书
@@ -4763,6 +4789,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
} }
}); });
String contentTemp = sysUser.getUsername() + " pushed " + StringUtils.join(list, ",") + " to you. Please be reminded to check it out."; String contentTemp = sysUser.getUsername() + " pushed " + StringUtils.join(list, ",") + " to you. Please be reminded to check it out.";
// FeishuMsgVo feishuMsgVo = getFeishuMsgVo(MessageTypeEnum.PUSH.getName(),null, contentTemp, encode);
// iFeishuService.sendCardMsg(thirdIdList.toArray(new String[]{}), feishuMsgVo);
iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), contentTemp, MessageTypeEnum.PUSH.getName(), encode); iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), contentTemp, MessageTypeEnum.PUSH.getName(), encode);
} }
} catch (IOException e) { } catch (IOException e) {
@@ -4772,6 +4800,15 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
return "推送成功"; return "推送成功";
} }
private FeishuMsgVo getFeishuMsgVo(String title, String taskType, String content,String url) {
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setContent(content);
feishuMsgVo.setTaskType(taskType);
feishuMsgVo.setUrl(url);
return feishuMsgVo;
}
/** /**
* 属性字典处理中文 * 属性字典处理中文
@@ -5439,6 +5476,27 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
FileUnZip.deleteDir(saveDirectory); FileUnZip.deleteDir(saveDirectory);
throw new JeroBootException(html); throw new JeroBootException(html);
} else { } else {
//验证重复的标准号
List<String> serialNumberList = new ArrayList<>();
if (mapList.size() != 0) {
for (Map<String, Object> map : mapList) {
serialNumberList.add(StringUtils.valueOf(map.get("serial_number")));
}
}
List<BussDocumentLibraryEO> list = this.list();
if(list.size() != 0){
List<BussDocumentLibraryEO> serialNumberListTemp = list.stream()
.filter(e -> serialNumberList.contains(e.getSerialNumber())).collect(Collectors.toList());
if(serialNumberListTemp.size() != 0){
List<String> collect = serialNumberListTemp.stream().map(BussDocumentLibraryEO::getSerialNumber).distinct().collect(Collectors.toList());
if(CutEnum.CN.getValue().equals(cut)){
throw new JeroBootException(StringUtils.join(collect,",")+" 编号已存在不能重复添加");
}else{
throw new JeroBootException(StringUtils.join(collect,",")+" already exists and cannot be added again");
}
}
}
if (mapList.size() != 0) { if (mapList.size() != 0) {
for (Map<String, Object> map : mapList) { for (Map<String, Object> map : mapList) {
this.addInfo(map); this.addInfo(map);
@@ -1150,7 +1150,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
msgTitle = "The " + baseName + " virtual list you subscribed to has been updated"; msgTitle = "The " + baseName + " virtual list you subscribed to has been updated";
//封装消息的实体类 //封装消息的实体类
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, msgTitle, content, contentInfo,MessageTypeEnum.READ.getValue()); SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, msgTitle, content, contentInfo,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
bussDocumentLibraryEOService.sendWebsocket(idTemp, contentInfo); bussDocumentLibraryEOService.sendWebsocket(idTemp, contentInfo);
//飞书 //飞书
@@ -1164,7 +1164,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
contentInfo = "Please note that the "+baseName+" virtual list you subscribed to has been withdrawn."; contentInfo = "Please note that the "+baseName+" virtual list you subscribed to has been withdrawn.";
msgTitle = "The " + baseName + " virtual list you subscribed to has been withdrawn"; msgTitle = "The " + baseName + " virtual list you subscribed to has been withdrawn";
//封装消息的实体类 //封装消息的实体类
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, msgTitle, content, contentInfo,MessageTypeEnum.READ.getValue()); SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, msgTitle, content, contentInfo,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
bussDocumentLibraryEOService.sendWebsocket(idTemp, contentInfo); bussDocumentLibraryEOService.sendWebsocket(idTemp, contentInfo);
//飞书 //飞书
@@ -11,7 +11,9 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@@ -80,11 +82,11 @@ public class NcrTrackController {
* @param request * @param request
* @param ncrTrackVO * @param ncrTrackVO
*/ */
@RequestMapping(value = "/exportData") @RequestMapping(value = "/exportData",method = RequestMethod.POST)
@RequiresPermissions("ncrTrack:exportData") @RequiresPermissions("ncrTrack:exportData")
public void exportData(HttpServletResponse response, public void exportData(HttpServletResponse response,
HttpServletRequest request, HttpServletRequest request,
NcrTrackVO ncrTrackVO) { @RequestBody NcrTrackVO ncrTrackVO) {
iNcrTrackService.exportData(response,request, ncrTrackVO); iNcrTrackService.exportData(response,request, ncrTrackVO);
} }
@@ -93,11 +95,11 @@ public class NcrTrackController {
* @param request * @param request
* @param ncrTrackVO * @param ncrTrackVO
*/ */
@RequestMapping(value = "/exportDataInfo") @RequestMapping(value = "/exportDataInfo",method = RequestMethod.POST)
@RequiresPermissions("ncrTrack:exportDataInfo") @RequiresPermissions("ncrTrack:exportDataInfo")
public void exportDataInfo(HttpServletResponse response, public void exportDataInfo(HttpServletResponse response,
HttpServletRequest request, HttpServletRequest request,
NcrTrackVO ncrTrackVO) { @RequestBody NcrTrackVO ncrTrackVO) {
iNcrTrackService.exportData(response,request, ncrTrackVO); iNcrTrackService.exportData(response,request, ncrTrackVO);
} }
@@ -8,6 +8,8 @@ public enum MsgTypeEnum {
TASK_AFFIRM_ISSUE_DRE_MSG("任务确认分配dre消息","taskAffirmIssueDreMsg"), TASK_AFFIRM_ISSUE_DRE_MSG("任务确认分配dre消息","taskAffirmIssueDreMsg"),
TASK_AFFIRM_DRE_ACCEPTED("任务确认DRE通过消息","taskAffirmDreAccepted"), TASK_AFFIRM_DRE_ACCEPTED("任务确认DRE通过消息","taskAffirmDreAccepted"),
TASK_AFFIRM_DRE_REJECTED("任务确认DRE退回消息","taskAffirmDreRejected"), TASK_AFFIRM_DRE_REJECTED("任务确认DRE退回消息","taskAffirmDreRejected"),
TASK_AFFIRM_ACCEPTED_MSG("任务确认责任人通过消息","taskAffirmAcceptedMsg"),
TASK_AFFIRM_REJECTED_MSG("任务确认责任人拒绝消息","taskAffirmRejectedMsg"),
DESIGN_ISSUE_DRE_MSG("设计符合性确认分配dre消息","designIssueDreMsg"), DESIGN_ISSUE_DRE_MSG("设计符合性确认分配dre消息","designIssueDreMsg"),
DESIGN_REMIND_MSG("设计符合性提醒办理","designRemindMsg"), DESIGN_REMIND_MSG("设计符合性提醒办理","designRemindMsg"),
@@ -19,6 +21,15 @@ public enum MsgTypeEnum {
DESIGN_RETURN_MSG("设计符合性发起人退回","designReturnMsg"), DESIGN_RETURN_MSG("设计符合性发起人退回","designReturnMsg"),
PREHOMO_RETURN_MSG("prehomo发起人退回","prehomoReturnMsg"), PREHOMO_RETURN_MSG("prehomo发起人退回","prehomoReturnMsg"),
VERIFY_RETURN_MSG("验证符合性发起人退回","verifyReturnMsg"), VERIFY_RETURN_MSG("验证符合性发起人退回","verifyReturnMsg"),
DESIGN_START_MSG("设计符合性发起给责任人发送消息","designStartMsg"),
PREHOMO_START_MSG("prehomo发起给责任人发送消息","prehomoStartMsg"),
VERIFY_START_MSG("验证符合性发起给责任人发送消息","verifyStartMsg"),
DESIGN_CHARGE_PERSON_SUBMIT_MSG("设计符合性责任人提交给发起人发送消息","designChargePersonSubmitMsg"),
PREHOMO_CHARGE_PERSON_SUBMIT_MSG("prehomo责任人提交给发起人发送消息","prehomoChargePersonSubmitMsg"),
VERIFY_CHARGE_PERSON_SUBMIT_MSG("验证符合性责任人提交给发起人发送消息","verifyChargePersonSubmitMsg"),
DESIGN_INITIATOR_ACCEPTED_MSG("设计符合性发起人通过发送消息","designInitiatorAcceptedMsg"),
PREHOMO_INITIATOR_ACCEPTED_MSG("prehomo发起人通过发送消息","prehomoInitiatorAcceptedMsg"),
VERIFY_INITIATOR_ACCEPTED_MSG("验证符合性发起人通过发送消息","verifyInitiatorAcceptedMsg"),
; ;
String name; String name;
@@ -170,7 +170,7 @@ public class InventoryAffirmJob implements Job {
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN, threeDaysUserIdList, projectLibraryBase.getId(), sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK); projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN, threeDaysUserIdList, projectLibraryBase.getId(), sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){ if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){
@@ -208,7 +208,7 @@ public class InventoryAffirmJob implements Job {
sendMessageMap.put("hrefFeishu",hrefFeishu); sendMessageMap.put("hrefFeishu",hrefFeishu);
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN, currentDaysUserIdList, projectLibraryBase.getId(), sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK); projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN, currentDaysUserIdList, projectLibraryBase.getId(), sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
} }
} }
@@ -170,7 +170,7 @@ public class PrehomoJob implements Job {
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.PRE_HOMO_TASK); projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.PRE_HOMO_TASK,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){ if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){
@@ -207,7 +207,7 @@ public class PrehomoJob implements Job {
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.PRE_HOMO_TASK); projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.PRE_HOMO_TASK,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
} }
} }
@@ -167,7 +167,7 @@ public class VerifyComplianceJob implements Job {
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.VALIDATION_TASK); projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.VALIDATION_TASK,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){ if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){
@@ -204,7 +204,7 @@ public class VerifyComplianceJob implements Job {
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.VALIDATION_TASK); projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.VALIDATION_TASK,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
} }
} }
@@ -163,7 +163,7 @@ public class designComplianceJob implements Job {
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.DESIGN_COMPLIANCE_TASK); projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.DESIGN_COMPLIANCE_TASK,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){ if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){
@@ -199,7 +199,7 @@ public class designComplianceJob implements Job {
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.DESIGN_COMPLIANCE_TASK); projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.DESIGN_COMPLIANCE_TASK,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
} }
} }
@@ -78,7 +78,7 @@ public interface IProjectLawsInventoryEOService extends IService<ProjectLawsInve
*/ */
Result<?> updateStatusBatch(JSONObject json); Result<?> updateStatusBatch(JSONObject json);
void sendMessage(String msgTitle, String msgContent, List<String> userIdList, String projectLibraryId, Map<String,Object> params, FeishuMsgVo feishuMsgVo, MessageTypeEnum messageType); void sendMessage(String msgTitle, String msgContent, List<String> userIdList, String projectLibraryId, Map<String,Object> params, FeishuMsgVo feishuMsgVo, MessageTypeEnum messageType,String initiator);
/** /**
* 匹配相关人员 * 匹配相关人员
@@ -241,12 +241,10 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
List<NcrTrackVO> trackVOListTemp = new ArrayList<>(); List<NcrTrackVO> trackVOListTemp = new ArrayList<>();
String idJson = ncrTrackVO.getNcrTrackVOList(); List<NcrTrackVO> ncrTrackVOListTemp = ncrTrackVO.getNcrTrackVOList();
if(StringUtils.isNotBlank(idJson)){
List<NcrTrackVO> ncrTrackVOList = JSONObject.parseArray(idJson, NcrTrackVO.class);
//导出数据过滤(列表中选取多条进行导出的时候,用任务清单id和流程类型作为条件进行数据过滤) //导出数据过滤(列表中选取多条进行导出的时候,用任务清单id和流程类型作为条件进行数据过滤)
if(ObjectUtils.allNotNull(ncrTrackVOList)){ if(ObjectUtils.allNotNull(ncrTrackVOListTemp)){
for (NcrTrackVO trackVO : ncrTrackVOList) { for (NcrTrackVO trackVO : ncrTrackVOListTemp) {
List<NcrTrackVO> collect = trackVOList.stream() List<NcrTrackVO> collect = trackVOList.stream()
.filter(e -> trackVO.getId().equals(e.getId()) && trackVO.getFlowType().equals(e.getFlowType())) .filter(e -> trackVO.getId().equals(e.getId()) && trackVO.getFlowType().equals(e.getFlowType()))
.collect(Collectors.toList()); .collect(Collectors.toList());
@@ -255,7 +253,6 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
} }
} }
} }
}
if(trackVOListTemp.size() != 0){ if(trackVOListTemp.size() != 0){
return trackVOListTemp; return trackVOListTemp;
@@ -94,6 +94,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -119,6 +120,7 @@ import static com.jero.modules.document.service.impl.BussDocumentLibraryEOServic
* @Version: V1.0 * @Version: V1.0
*/ */
@Service @Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsInventoryEOMapper, ProjectLawsInventoryEO> implements IProjectLawsInventoryEOService { public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsInventoryEOMapper, ProjectLawsInventoryEO> implements IProjectLawsInventoryEOService {
@Autowired @Autowired
@@ -1340,8 +1342,6 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
if(CollectionUtils.isNotEmpty(userIdList)){ if(CollectionUtils.isNotEmpty(userIdList)){
userIdList = userIdList.stream().distinct().collect(Collectors.toList()); userIdList = userIdList.stream().distinct().collect(Collectors.toList());
//消息内容 //消息内容
String msgContentEN = currentUser.getUsername() + " initiated the regulation list confirmation for " String msgContentEN = currentUser.getUsername() + " initiated the regulation list confirmation for "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket() + projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
@@ -1377,7 +1377,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK); sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK,currentUser.getUsername());
} }
result = "发起清单确认"; result = "发起清单确认";
@@ -1465,6 +1465,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
inventoryAffirmStatus = InventoryAffirmStatusEnum.REJECTED.getValue(); inventoryAffirmStatus = InventoryAffirmStatusEnum.REJECTED.getValue();
}*/ }*/
} }
SysUser studioUserInfo = this.sysUserMapper.selectOne(
new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLibraryBase.getStudioEngineer())
);
//只要有一个人拒绝,就改为拒绝。 //只要有一个人拒绝,就改为拒绝。
if(StringUtils.equals(operatorResult, OperatorResultEnum.REJECTED.getValue())){ if(StringUtils.equals(operatorResult, OperatorResultEnum.REJECTED.getValue())){
inventoryAffirmStatus = InventoryAffirmStatusEnum.REJECTED.getValue(); inventoryAffirmStatus = InventoryAffirmStatusEnum.REJECTED.getValue();
@@ -1513,7 +1518,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//发送消息 //发送消息
List<String> userIdList = new ArrayList<>(); List<String> userIdList = new ArrayList<>();
userIdList.add(projectLibraryBase.getStudioEngineer()); userIdList.add(projectLibraryBase.getStudioEngineer());
sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK); sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK,studioUserInfo.getUsername());
} }
@@ -1554,7 +1559,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//发送消息 //发送消息
List<String> userIdList = new ArrayList<>(); List<String> userIdList = new ArrayList<>();
userIdList.add(projectLibraryBase.getStudioEngineer()); userIdList.add(projectLibraryBase.getStudioEngineer());
sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK); sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK,studioUserInfo.getUsername());
} }
} }
@@ -1604,7 +1609,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//发送消息 //发送消息
List<String> userIdList = new ArrayList<>(); List<String> userIdList = new ArrayList<>();
userIdList.add(projectLibraryBase.getStudioEngineer()); userIdList.add(projectLibraryBase.getStudioEngineer());
sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_NOTIFICATION); sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_NOTIFICATION,studioUserInfo.getUsername());
} }
} }
} }
@@ -1627,7 +1632,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
* @param projectLibraryId * @param projectLibraryId
*/ */
@Override @Override
public void sendMessage(String msgTitle, String msgContent, List<String> userIdList,String projectLibraryId,Map<String,Object> sendMessageMap, FeishuMsgVo feishuMsgVo, MessageTypeEnum messageType){ public void sendMessage(String msgTitle, String msgContent, List<String> userIdList,String projectLibraryId,Map<String,Object> sendMessageMap, FeishuMsgVo feishuMsgVo, MessageTypeEnum messageType,String initiator){
String idTemp = projectLibraryId; String idTemp = projectLibraryId;
List<SysUser> sysUsers = sysUserService.listByIds(userIdList); List<SysUser> sysUsers = sysUserService.listByIds(userIdList);
@@ -1641,7 +1646,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
String contentInfo = (String) sendMessageMap.get("contentInfo"); String contentInfo = (String) sendMessageMap.get("contentInfo");
//系统消息 //系统消息
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgTitle, msgContent, contentInfo, messageType); SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgTitle, msgContent, contentInfo, messageType,initiator);
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(idTemp, idTemp); sendWebsocket(idTemp, idTemp);
@@ -1661,8 +1666,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
} }
@NotNull @NotNull
private SysAnnouncement getSysAnnouncement(List<String> userIdList, String title, String content, String contentInfo, MessageTypeEnum messageType) { private SysAnnouncement getSysAnnouncement(List<String> userIdList, String title, String content, String contentInfo, MessageTypeEnum messageType,String initiator) {
SysAnnouncement sysAnnouncement = new SysAnnouncement(); SysAnnouncement sysAnnouncement = new SysAnnouncement();
sysAnnouncement.setInitiator(initiator);
sysAnnouncement.setDelFlag("0"); sysAnnouncement.setDelFlag("0");
sysAnnouncement.setSendStatus("0"); sysAnnouncement.setSendStatus("0");
sysAnnouncement.setSendTime(new Date()); sysAnnouncement.setSendTime(new Date());
@@ -1723,8 +1729,16 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//法规清单的责任领域 //法规清单的责任领域
String dutyTerritory = projectLawsInventoryEO.getDutyTerritory(); String dutyTerritory = projectLawsInventoryEO.getDutyTerritory();
if(StringUtils.isNotBlank(dutyTerritory)){ if(StringUtils.isNotBlank(dutyTerritory)){
List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnels.stream() List<ProjectRelatedPersonnel> projectRelatedPersonnelList = new ArrayList<>();
.filter(e -> dutyTerritory.contains(e.getDutyTerritory())).collect(Collectors.toList()); for (String s : dutyTerritory.split(",")) {
List<ProjectRelatedPersonnel> projectRelatedPersonnelListTemp = projectRelatedPersonnels.stream()
.filter(e -> s.equals(e.getDutyTerritory())).collect(Collectors.toList());
if(projectRelatedPersonnelListTemp.size() != 0){
projectRelatedPersonnelList.addAll(projectRelatedPersonnelListTemp);
}
}
// List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnels.stream()
// .filter(e -> dutyTerritory.contains(e.getDutyTerritory())).collect(Collectors.toList());
List<String> lawEngineerList = projectRelatedPersonnelList.stream().map(ProjectRelatedPersonnel::getLawEngineer).distinct().collect(Collectors.toList()).stream().filter(e->StringUtils.isNotBlank(e)).collect(Collectors.toList()); List<String> lawEngineerList = projectRelatedPersonnelList.stream().map(ProjectRelatedPersonnel::getLawEngineer).distinct().collect(Collectors.toList()).stream().filter(e->StringUtils.isNotBlank(e)).collect(Collectors.toList());
List<String> engineeringInterfacePersonList = projectRelatedPersonnelList.stream().map(ProjectRelatedPersonnel::getEngineeringInterfacePerson).distinct().collect(Collectors.toList()).stream().filter(e->StringUtils.isNotBlank(e)).collect(Collectors.toList()); List<String> engineeringInterfacePersonList = projectRelatedPersonnelList.stream().map(ProjectRelatedPersonnel::getEngineeringInterfacePerson).distinct().collect(Collectors.toList()).stream().filter(e->StringUtils.isNotBlank(e)).collect(Collectors.toList());
@@ -2074,6 +2088,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
ProjectLibraryBase projectLibraryBase = projectLibraryBaseMapper.selectOne(new QueryWrapper<ProjectLibraryBase>() ProjectLibraryBase projectLibraryBase = projectLibraryBaseMapper.selectOne(new QueryWrapper<ProjectLibraryBase>()
.lambda().eq(ProjectLibraryBase::getId, projectLibraryId)); .lambda().eq(ProjectLibraryBase::getId, projectLibraryId));
SysUser studioUserInfo = this.sysUserMapper.selectOne(
new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLibraryBase.getStudioEngineer())
);
QueryWrapper<ProjectNameInfoEO> projectNameInfoEOQueryWrapper = new QueryWrapper<>(); QueryWrapper<ProjectNameInfoEO> projectNameInfoEOQueryWrapper = new QueryWrapper<>();
projectNameInfoEOQueryWrapper.lambda().eq(ProjectNameInfoEO::getId,projectLibraryBase.getProjectNameId()); projectNameInfoEOQueryWrapper.lambda().eq(ProjectNameInfoEO::getId,projectLibraryBase.getProjectNameId());
ProjectNameInfoEO projectNameInfoEO = projectNameInfoEOMapper.selectOne(projectNameInfoEOQueryWrapper); ProjectNameInfoEO projectNameInfoEO = projectNameInfoEOMapper.selectOne(projectNameInfoEOQueryWrapper);
@@ -2090,6 +2109,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
MessageTypeEnum messageTypeEnum = null;
String taskType = "";
String initiator = "";
if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_START_MSG.getValue())) { if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_START_MSG.getValue())) {
userIdList.add(engineeringInterfacePerson); userIdList.add(engineeringInterfacePerson);
msgContentEN = sysUser.getUsername() + " initiated the regulation task confirmation of " + projectNameInfoEO.getProjectName() msgContentEN = sysUser.getUsername() + " initiated the regulation task confirmation of " + projectNameInfoEO.getProjectName()
@@ -2099,6 +2122,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
feishuMsgVo.setContent("Hello! Please check and address this task in a timely manner."); feishuMsgVo.setContent("Hello! Please check and address this task in a timely manner.");
messageTypeEnum = MessageTypeEnum.REGULATION_TASK_CONFIRMATION_TASK;
taskType = "Regulation Task Confirmation";
initiator = studioUserInfo.getUsername();
} else if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_ISSUE_DRE_MSG.getValue())) { } else if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_ISSUE_DRE_MSG.getValue())) {
String dreUserId = jsonObject.getString("dreUserId"); //dre用户id String dreUserId = jsonObject.getString("dreUserId"); //dre用户id
userIdList.add(dreUserId); userIdList.add(dreUserId);
@@ -2109,6 +2136,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has assigned the task. Please check and and handle it in time."); feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has assigned the task. Please check and and handle it in time.");
messageTypeEnum = MessageTypeEnum.REGULATION_TASK_CONFIRMATION_TASK;
taskType = "Regulation Task Confirmation";
initiator = studioUserInfo.getUsername();
} else if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_DRE_REJECTED.getValue())) { } else if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_DRE_REJECTED.getValue())) {
userIdList.add(engineeringInterfacePerson); userIdList.add(engineeringInterfacePerson);
msgContentEN = sysUser.getUsername() + " has rejected the regulation task confirmation of " + serialNumber +" in "+ projectNameInfoEO.getProjectName() msgContentEN = sysUser.getUsername() + " has rejected the regulation task confirmation of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
@@ -2118,6 +2148,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has rejected the task. Please check and and handle it in time."); feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has rejected the task. Please check and and handle it in time.");
messageTypeEnum = MessageTypeEnum.REGULATION_TASK_CONFIRMATION_TASK;
taskType = "Regulation Task Confirmation";
initiator = studioUserInfo.getUsername();
} else if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_DRE_ACCEPTED.getValue())) { } else if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_DRE_ACCEPTED.getValue())) {
userIdList.add(engineeringInterfacePerson); userIdList.add(engineeringInterfacePerson);
msgContentEN = sysUser.getUsername() + " has submitted the regulation task confirmation of " + serialNumber +" in "+ projectNameInfoEO.getProjectName() msgContentEN = sysUser.getUsername() + " has submitted the regulation task confirmation of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
@@ -2127,11 +2160,155 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has submitted the task. Please check and and handle it in time."); feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has submitted the task. Please check and and handle it in time.");
messageTypeEnum = MessageTypeEnum.REGULATION_TASK_CONFIRMATION_TASK;
taskType = "Regulation Task Confirmation";
initiator = studioUserInfo.getUsername();
} else if(StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_REJECTED_MSG.getValue())){
userIdList.add(projectLibraryBase.getStudioEngineer());
msgContentEN = sysUser.getUsername() + " has rejected the regulation task confirmation of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". Please check and handle it in time.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a regulation task confirmation to complete";
feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has rejected the task. Please check and and handle it in time.");
messageTypeEnum = MessageTypeEnum.REGULATION_TASK_CONFIRMATION_TASK;
taskType = "Regulation Task Confirmation";
initiator = studioUserInfo.getUsername();
} else if(StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_ACCEPTED_MSG.getValue())){
userIdList.add(projectLibraryBase.getStudioEngineer());
msgContentEN = sysUser.getUsername() + " has accepted the regulation task confirmation of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". Please check and handle it in time.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a regulation task confirmation notification to check";
feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has accepted the task. Please check and and handle it in time.");
messageTypeEnum = MessageTypeEnum.REGULATION_TASK_CONFIRMATION_NOTIFICATION;
taskType = "Regulation Task Confirmation";
initiator = studioUserInfo.getUsername();
} else if(StringUtils.equals(msgType, MsgTypeEnum.DESIGN_START_MSG.getValue())){
String designDutyId = jsonObject.getString("designDutyId"); //设计符合性责任人id
userIdList.add(designDutyId);
msgContentEN = "You recieved the design compliance task of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". The due date is XXXX. Please check and address it in a timely manner.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a design compliance task to complete";
feishuMsgVo.setContent("Hello! Please address the task in a timely manner.");
messageTypeEnum = MessageTypeEnum.DESIGN_COMPLIANCE_TASK;
taskType = "Design Compliance Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
} else if(StringUtils.equals(msgType, MsgTypeEnum.PREHOMO_START_MSG.getValue())){
String prehomoDutyId = jsonObject.getString("prehomoDutyId"); //pre-Home责任人id
userIdList.add(prehomoDutyId);
msgContentEN = "You recieved the Pre-Homo task of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". The due date is XXXX. Please check and address it in a timely manner.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a Pre-Homo task to complete";
feishuMsgVo.setContent("Hello! Please address the task in a timely manner.");
messageTypeEnum = MessageTypeEnum.PRE_HOMO_TASK;
taskType = "Pre-Homo Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
} else if(StringUtils.equals(msgType, MsgTypeEnum.VERIFY_START_MSG.getValue())){
String verifyDutyId = jsonObject.getString("verifyDutyId"); //验证符合性责任人id
userIdList.add(verifyDutyId);
msgContentEN = "You recieved the validation compliance task of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". The due date is XXXX. Please check and address it in a timely manner.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a validation compliance task to complete";
feishuMsgVo.setContent("Hello! Please address the task in a timely manner.");
messageTypeEnum = MessageTypeEnum.VALIDATION_TASK;
taskType = "Validation Compliance Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
} else if(StringUtils.equals(msgType, MsgTypeEnum.DESIGN_CHARGE_PERSON_SUBMIT_MSG.getValue())){
String designInitiatorId = jsonObject.getString("designInitiatorId"); //设计符合性发起人id
userIdList.add(designInitiatorId);
msgContentEN = sysUser.getUsername() + " has submitted the design compliance confirmation of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". Please check and review it in time.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a design compliance task to complete";
feishuMsgVo.setContent("Hello! The compliance confirmation has been submitted. Please check and review it in a timely manner.");
messageTypeEnum = MessageTypeEnum.DESIGN_COMPLIANCE_TASK;
taskType = "Design Compliance Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
} else if(StringUtils.equals(msgType, MsgTypeEnum.PREHOMO_CHARGE_PERSON_SUBMIT_MSG.getValue())){
String prehomoInitiatorId = jsonObject.getString("prehomoInitiatorId"); //pre-Home发起人id
userIdList.add(prehomoInitiatorId);
msgContentEN = sysUser.getUsername() + " has submitted the Pre-Homo confirmation of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". Please check and review it in time.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a Pre-Homo task to complete";
feishuMsgVo.setContent("Hello! The compliance confirmation has been submitted. Please check and review it in a timely manner.");
messageTypeEnum = MessageTypeEnum.PRE_HOMO_TASK;
taskType = "Pre-Homo Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
} else if(StringUtils.equals(msgType, MsgTypeEnum.VERIFY_CHARGE_PERSON_SUBMIT_MSG.getValue())){
String verifyInitiatorId = jsonObject.getString("verifyInitiatorId"); //验证符合性发起人id
userIdList.add(verifyInitiatorId);
msgContentEN = sysUser.getUsername() + " has submitted the validation compliance confirmation " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". Please check and review it in time.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a validation compliance task to complete";
feishuMsgVo.setContent("Hello! The compliance confirmation has been submitted. Please check and review it in a timely manner.");
messageTypeEnum = MessageTypeEnum.VALIDATION_TASK;
taskType = "Validation Compliance Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
}else if(StringUtils.equals(msgType, MsgTypeEnum.DESIGN_INITIATOR_ACCEPTED_MSG.getValue())){
String designDutyId = jsonObject.getString("designDutyId"); //设计符合性责任人id
userIdList.add(designDutyId);
msgContentEN = "The design compliance information of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". you sumitted has been approved.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a design compliance task to complete";
feishuMsgVo.setContent("Hello! The compliance information you submitted has been approved.");
messageTypeEnum = MessageTypeEnum.DESIGN_COMPLIANCE_NOTIFICATION;
taskType = "Design Compliance Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
} else if(StringUtils.equals(msgType, MsgTypeEnum.PREHOMO_INITIATOR_ACCEPTED_MSG.getValue())){
String prehomoDutyId = jsonObject.getString("prehomoDutyId"); //pre-Home责任人id
userIdList.add(prehomoDutyId);
msgContentEN = "The Pre-Homo confirmation information of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". you sumitted has been approved.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a Pre-Homo task to complete";
feishuMsgVo.setContent("Hello! The compliance information you submitted has been approved.");
messageTypeEnum = MessageTypeEnum.PRE_HOMO_NOTIFICATION;
taskType = "Pre-Homo Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
} else if(StringUtils.equals(msgType, MsgTypeEnum.VERIFY_INITIATOR_ACCEPTED_MSG.getValue())){
String verifyDutyId = jsonObject.getString("verifyDutyId"); //验证符合性责任人id
userIdList.add(verifyDutyId);
msgContentEN = "The validation compliance information of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ "you sumitted has been approved.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a validation compliance task to complete";
feishuMsgVo.setContent("Hello! The compliance information you submitted has been approved.");
messageTypeEnum = MessageTypeEnum.VALIDATION_COMPLIANCE_NOTIFICATION;
taskType = "Validation Compliance Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
} }
if(CollectionUtils.isNotEmpty(userIdList) && StringUtils.isNotEmpty(msgContentEN)){ if(CollectionUtils.isNotEmpty(userIdList) && StringUtils.isNotEmpty(msgContentEN)){
feishuMsgVo.setTaskType("Regulation Task Confirmation"); feishuMsgVo.setTaskType(taskType);
feishuMsgVo.setRegulationNo(serialNumber); feishuMsgVo.setRegulationNo(serialNumber);
feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()); feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket());
feishuMsgVo.setInitiator(sysUser.getUsername()); feishuMsgVo.setInitiator(sysUser.getUsername());
@@ -2149,7 +2326,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
sendMessage(msgTitle, msgContentEN,userIdList,id,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_TASK_CONFIRMATION_TASK); sendMessage(msgTitle, msgContentEN,userIdList,id,sendMessageMap, feishuMsgVo, messageTypeEnum,initiator);
} }
} }
@@ -6454,6 +6631,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
libraryBaseQueryWrapper.lambda().eq(ProjectLibraryBase::getId,projectLibraryId); libraryBaseQueryWrapper.lambda().eq(ProjectLibraryBase::getId,projectLibraryId);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseMapper.selectOne(libraryBaseQueryWrapper); ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseMapper.selectOne(libraryBaseQueryWrapper);
SysUser studioUserInfo = this.sysUserMapper.selectOne(
new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLibraryBase.getStudioEngineer())
);
projectLawsInventoryEOList.forEach(projectLawsInventoryEO -> { projectLawsInventoryEOList.forEach(projectLawsInventoryEO -> {
//如果清单确认状态为待确认的,进行催办 //如果清单确认状态为待确认的,进行催办
@@ -6515,7 +6696,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
sendMessage(msgTitle, msgContentEN,inventoryAffirmUserIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK); sendMessage(msgTitle, msgContentEN,inventoryAffirmUserIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_LIST_CONFIRMATION_TASK,studioUserInfo.getUsername());
} }
} }
@@ -6571,7 +6752,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
sendMessage(msgTitle, msgContentEN,taskAffirmUserIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_TASK_CONFIRMATION_TASK); sendMessage(msgTitle, msgContentEN,taskAffirmUserIdList,projectLibraryId,sendMessageMap, feishuMsgVo, MessageTypeEnum.REGULATION_TASK_CONFIRMATION_TASK,studioUserInfo.getUsername());
} }
} }
}); });
@@ -1,10 +1,13 @@
package com.jero.modules.project.service.impl; package com.jero.modules.project.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.project.entity.ProjectLibraryRoleRelEO; import com.jero.modules.project.entity.ProjectLibraryRoleRelEO;
import com.jero.modules.project.mapper.ProjectLibraryRoleRelEOMapper; import com.jero.modules.project.mapper.ProjectLibraryRoleRelEOMapper;
import com.jero.modules.project.service.IProjectLibraryRoleRelEOService; import com.jero.modules.project.service.IProjectLibraryRoleRelEOService;
import me.zhyd.oauth.utils.StringUtils;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Date; import java.util.Date;
@@ -43,9 +46,16 @@ public class ProjectLibraryRoleRelEOServiceImpl extends ServiceImpl<ProjectLibra
*/ */
@Override @Override
public void editById(ProjectLibraryRoleRelEO projectLibraryRoleRelEO) { public void editById(ProjectLibraryRoleRelEO projectLibraryRoleRelEO) {
Date now = new Date(); //用户在法规清单角色切换中,切换角色,只有这个项目的studio 有id,其他用户第一次默认是没有的。如果不是studio 只能给他新增一条数据 ,后续回显使用。
projectLibraryRoleRelEO.setUpdateTime(now); if(StringUtils.isNotEmpty(projectLibraryRoleRelEO.getId())){
saveOrUpdate(projectLibraryRoleRelEO); Date now = new Date();
projectLibraryRoleRelEO.setUpdateTime(now);
this.baseMapper.updateById(projectLibraryRoleRelEO);
}else {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
projectLibraryRoleRelEO.setUserId(currentUser.getId());
this.baseMapper.insert(projectLibraryRoleRelEO);
}
} }
/** /**
@@ -263,9 +263,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
lawEngineerName = lawEngineerUsers.stream().filter(e -> data.equals(e.getId())) lawEngineerName = lawEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(",")); .map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
} }
lawName.append(lawEngineerName).append(" , "); lawName.append(lawEngineerName).append(",");
} }
projectRelatedPersonnel.setLawEngineerName(lawName.substring(0,lawName.toString().length()-3)); projectRelatedPersonnel.setLawEngineerName(lawName.substring(0,lawName.toString().length()-1));
} }
} }
@@ -289,9 +289,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
engineeringInterfacePersonName = engineeringInterfacePersonUsers.stream().filter(e -> data.equals(e.getId())) engineeringInterfacePersonName = engineeringInterfacePersonUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(",")); .map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
} }
engineeringName.append(engineeringInterfacePersonName).append(" , "); engineeringName.append(engineeringInterfacePersonName).append(",");
} }
projectRelatedPersonnel.setEngineeringInterfacePersonName(engineeringName.substring(0,engineeringName.toString().length()-3)); projectRelatedPersonnel.setEngineeringInterfacePersonName(engineeringName.substring(0,engineeringName.toString().length()-1));
} }
} }
@@ -314,9 +314,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
certificationEngineerName = certificationEngineerUsers.stream().filter(e -> data.equals(e.getId())) certificationEngineerName = certificationEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(",")); .map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
} }
certificationName.append(certificationEngineerName).append(" , "); certificationName.append(certificationEngineerName).append(",");
} }
projectRelatedPersonnel.setCertificationEngineerName(certificationName.substring(0,certificationName.toString().length()-3)); projectRelatedPersonnel.setCertificationEngineerName(certificationName.substring(0,certificationName.toString().length()-1));
} }
} }
@@ -372,7 +372,7 @@ public class ProjectTaskInventoryDetailEOServiceImpl extends ServiceImpl<Project
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
SendMessageUtils.sendMessage(msgTitle, msgContentEN,userIdList,id,sendMessageMap, feishuMsgVo, messageTypeEnum); SendMessageUtils.sendMessage(msgTitle, msgContentEN,userIdList,id,sendMessageMap, feishuMsgVo, messageTypeEnum,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
} }
} }
@@ -425,7 +425,7 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
SendMessageUtils.sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryId,sendMessageMap, feishuMsgVo, messageTypeEnum); SendMessageUtils.sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryId,sendMessageMap, feishuMsgVo, messageTypeEnum,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
return new Result<>().success("提醒办理成功!"); return new Result<>().success("提醒办理成功!");
} }
@@ -992,7 +992,7 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
SendMessageUtils.sendMessage(msgTitle, msgContentEN,userIdList,id,sendMessageMap, feishuMsgVo, messageTypeEnum); SendMessageUtils.sendMessage(msgTitle, msgContentEN,userIdList,id,sendMessageMap, feishuMsgVo, messageTypeEnum,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
} }
@@ -132,93 +132,95 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl<Proje
new QueryWrapper<ProjectTaskInventoryDetailEO>().lambda().eq(ProjectTaskInventoryDetailEO::getId, projectTaskInventoryFeedbackEO.getProjectTaskInventoryId()) new QueryWrapper<ProjectTaskInventoryDetailEO>().lambda().eq(ProjectTaskInventoryDetailEO::getId, projectTaskInventoryFeedbackEO.getProjectTaskInventoryId())
); );
ProjectLawsInventoryEO projectLawsInventoryEO = this.projectLawsInventoryEOService.getOne( if(!Objects.isNull(projectTaskInventoryDetailEO)){
new QueryWrapper<ProjectLawsInventoryEO>().lambda().eq(ProjectLawsInventoryEO::getId, projectTaskInventoryDetailEO.getProjectTaskInventoryId()) ProjectLawsInventoryEO projectLawsInventoryEO = this.projectLawsInventoryEOService.getOne(
); new QueryWrapper<ProjectLawsInventoryEO>().lambda().eq(ProjectLawsInventoryEO::getId, projectTaskInventoryDetailEO.getProjectTaskInventoryId())
);
ProjectLibraryBase projectLibraryBaseInfo = this.projectLibraryBaseService.getOne( ProjectLibraryBase projectLibraryBaseInfo = this.projectLibraryBaseService.getOne(
new QueryWrapper<ProjectLibraryBase>().lambda().eq(ProjectLibraryBase::getId, projectLawsInventoryEO.getProjectLibraryId()) new QueryWrapper<ProjectLibraryBase>().lambda().eq(ProjectLibraryBase::getId, projectLawsInventoryEO.getProjectLibraryId())
); );
ProjectNameInfoEO projectNameInfoEO = this.projectNameInfoEOService.getOne( ProjectNameInfoEO projectNameInfoEO = this.projectNameInfoEOService.getOne(
new QueryWrapper<ProjectNameInfoEO>().lambda().eq(ProjectNameInfoEO::getId, projectLibraryBaseInfo.getProjectNameId()) new QueryWrapper<ProjectNameInfoEO>().lambda().eq(ProjectNameInfoEO::getId, projectLibraryBaseInfo.getProjectNameId())
); );
QueryWrapper<ProjectYearNameInfoEO> projectYearInfoEOQueryWrapper = new QueryWrapper<>(); QueryWrapper<ProjectYearNameInfoEO> projectYearInfoEOQueryWrapper = new QueryWrapper<>();
projectYearInfoEOQueryWrapper.lambda().eq(ProjectYearNameInfoEO::getId,projectLibraryBaseInfo.getYearNameId()); projectYearInfoEOQueryWrapper.lambda().eq(ProjectYearNameInfoEO::getId,projectLibraryBaseInfo.getYearNameId());
ProjectYearNameInfoEO projectYearNameInfoEO = this.projectYearNameInfoEOService.getOne(projectYearInfoEOQueryWrapper); ProjectYearNameInfoEO projectYearNameInfoEO = this.projectYearNameInfoEOService.getOne(projectYearInfoEOQueryWrapper);
// 飞书消息封装 // 飞书消息封装
FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
feishuMsgVo.setContent("Hello! " + currentUser.getUsername() + " has replied to your engineering deliverable information. Please check and address it in a timely manner."); feishuMsgVo.setContent("Hello! " + currentUser.getUsername() + " has replied to your engineering deliverable information. Please check and address it in a timely manner.");
feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber()); feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber());
feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBaseInfo.getTargetMarket()); feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBaseInfo.getTargetMarket());
feishuMsgVo.setInitiator(currentUser.getUsername()); feishuMsgVo.setInitiator(currentUser.getUsername());
MessageTypeEnum messageTypeEnum = null; MessageTypeEnum messageTypeEnum = null;
//消息内容 //消息内容
String msgContentEN = ""; String msgContentEN = "";
String msgTitle = ""; String msgTitle = "";
String flowType = projectTaskInventoryFeedbackEO.getFlowType(); String flowType = projectTaskInventoryFeedbackEO.getFlowType();
if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){ if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){
msgContentEN = currentUser.getUsername() + " has replied to your engineering deliverable information of " msgContentEN = currentUser.getUsername() + " has replied to your engineering deliverable information of "
+ projectLawsInventoryEO.getSerialNumber() + " in " + projectLawsInventoryEO.getSerialNumber() + " in "
+ projectNameInfoEO.getProjectName() + " for design compliance confirmation. Please check and address it in time."; + projectNameInfoEO.getProjectName() + " for design compliance confirmation. Please check and address it in time.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBaseInfo.getTargetMarket() msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBaseInfo.getTargetMarket()
+ ": You have a design compliance task to complete"; + ": You have a design compliance task to complete";
feishuMsgVo.setTaskType("Design Compliance Confirmation"); feishuMsgVo.setTaskType("Design Compliance Confirmation");
feishuMsgVo.setDueDate(sdf.format(projectLawsInventoryEO.getDesignDueDate())); feishuMsgVo.setDueDate(sdf.format(projectLawsInventoryEO.getDesignDueDate()));
messageTypeEnum = MessageTypeEnum.DESIGN_COMPLIANCE_TASK; messageTypeEnum = MessageTypeEnum.DESIGN_COMPLIANCE_TASK;
}else if(StringUtils.equals(flowType,FlowTypeEnum.PREHOMOQRLC.getValue())){ }else if(StringUtils.equals(flowType,FlowTypeEnum.PREHOMOQRLC.getValue())){
msgContentEN = currentUser.getUsername() + " has replied to your engineering deliverable information of " msgContentEN = currentUser.getUsername() + " has replied to your engineering deliverable information of "
+ projectLawsInventoryEO.getSerialNumber() + " in " + projectLawsInventoryEO.getSerialNumber() + " in "
+ projectNameInfoEO.getProjectName() + " for Pre-Homo compliance confirmation. Please check and address it in time."; + projectNameInfoEO.getProjectName() + " for Pre-Homo compliance confirmation. Please check and address it in time.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBaseInfo.getTargetMarket() msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBaseInfo.getTargetMarket()
+ ": You have a Pre-Homo task to complete"; + ": You have a Pre-Homo task to complete";
feishuMsgVo.setTaskType("Pre-Homo Confirmation"); feishuMsgVo.setTaskType("Pre-Homo Confirmation");
feishuMsgVo.setDueDate(sdf.format(projectLawsInventoryEO.getPrehomoDueDate())); feishuMsgVo.setDueDate(sdf.format(projectLawsInventoryEO.getPrehomoDueDate()));
messageTypeEnum = MessageTypeEnum.PRE_HOMO_TASK; messageTypeEnum = MessageTypeEnum.PRE_HOMO_TASK;
}else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ }else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){
msgContentEN = currentUser.getUsername() + " has replied to your engineering deliverable information of " msgContentEN = currentUser.getUsername() + " has replied to your engineering deliverable information of "
+ projectLawsInventoryEO.getSerialNumber() + " in " + projectLawsInventoryEO.getSerialNumber() + " in "
+ projectNameInfoEO.getProjectName() + " for validation compliance confirmation. Please check and address it in time."; + projectNameInfoEO.getProjectName() + " for validation compliance confirmation. Please check and address it in time.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBaseInfo.getTargetMarket() msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBaseInfo.getTargetMarket()
+ ": You have a validation compliance task to complete"; + ": You have a validation compliance task to complete";
feishuMsgVo.setTaskType("Validation Compliance Confirmation"); feishuMsgVo.setTaskType("Validation Compliance Confirmation");
feishuMsgVo.setDueDate(sdf.format(projectLawsInventoryEO.getVerifyDueDate())); feishuMsgVo.setDueDate(sdf.format(projectLawsInventoryEO.getVerifyDueDate()));
messageTypeEnum = MessageTypeEnum.VALIDATION_TASK; messageTypeEnum = MessageTypeEnum.VALIDATION_TASK;
}
//飞书跳转链接
String hrefFeishu = backUrl
+ JumpLinkEnum.PREHOMO_AFFIRM_LINK.getLink()
+ projectLibraryBaseInfo.getId() + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getType()
+ "&projectName=" + projectNameInfoEO.getProjectName() + "-"
+ projectYearNameInfoEO.getYearName()
+ "&targetMarket=" + projectLibraryBaseInfo.getTargetMarket();
//系统内部跳转链接
String href = "<a href='"
+ JumpLinkEnum.PREHOMO_AFFIRM_LINK.getLink() + projectLibraryBaseInfo.getId() + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getType()
+ "&projectName=" + projectNameInfoEO.getProjectName() + "-"
+ projectYearNameInfoEO.getYearName()
+ "&targetMarket=" + projectLibraryBaseInfo.getTargetMarket()
+ "'>" + " View details" + "</a>";
String contentInfo = msgContentEN + " " + href;
Map<String,Object> sendMessageMap = new HashMap<>();
sendMessageMap.put("hrefFeishu",hrefFeishu);
sendMessageMap.put("contentInfo",contentInfo);
//发送消息
SendMessageUtils.sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryBaseInfo.getId(),sendMessageMap, feishuMsgVo, messageTypeEnum,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
//飞书跳转链接
String hrefFeishu = backUrl
+ JumpLinkEnum.PREHOMO_AFFIRM_LINK.getLink()
+ projectLibraryBaseInfo.getId() + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getType()
+ "&projectName=" + projectNameInfoEO.getProjectName() + "-"
+ projectYearNameInfoEO.getYearName()
+ "&targetMarket=" + projectLibraryBaseInfo.getTargetMarket();
//系统内部跳转链接
String href = "<a href='"
+ JumpLinkEnum.PREHOMO_AFFIRM_LINK.getLink() + projectLibraryBaseInfo.getId() + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getType()
+ "&projectName=" + projectNameInfoEO.getProjectName() + "-"
+ projectYearNameInfoEO.getYearName()
+ "&targetMarket=" + projectLibraryBaseInfo.getTargetMarket()
+ "'>" + " View details" + "</a>";
String contentInfo = msgContentEN + " " + href;
Map<String,Object> sendMessageMap = new HashMap<>();
sendMessageMap.put("hrefFeishu",hrefFeishu);
sendMessageMap.put("contentInfo",contentInfo);
//发送消息
SendMessageUtils.sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryBaseInfo.getId(),sendMessageMap, feishuMsgVo, messageTypeEnum);
} }
} }
@@ -419,7 +421,7 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl<Proje
sendMessageMap.put("contentInfo",contentInfo); sendMessageMap.put("contentInfo",contentInfo);
//发送消息 //发送消息
SendMessageUtils.sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryBaseInfo.getId(),sendMessageMap, feishuMsgVo, messageTypeEnum); SendMessageUtils.sendMessage(msgTitle, msgContentEN,userIdList,projectLibraryBaseInfo.getId(),sendMessageMap, feishuMsgVo, messageTypeEnum,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
} }
} }
} }
@@ -54,7 +54,14 @@ public class SendMessageUtils {
SendMessageUtils.webSocket = webSocket; SendMessageUtils.webSocket = webSocket;
} }
public static void sendMessage(String msgTitle, String msgContent, List<String> userIdList, String projectLibraryId, Map<String,Object> sendMessageMap, FeishuMsgVo feishuMsgVo, MessageTypeEnum messageType) { public static void sendMessage(String msgTitle,
String msgContent,
List<String> userIdList,
String projectLibraryId,
Map<String,Object> sendMessageMap,
FeishuMsgVo feishuMsgVo,
MessageTypeEnum messageType,
String initiator) {
String idTemp = projectLibraryId; String idTemp = projectLibraryId;
List<SysUser> sysUsers = sysUserService.listByIds(userIdList); List<SysUser> sysUsers = sysUserService.listByIds(userIdList);
@@ -69,7 +76,7 @@ public class SendMessageUtils {
String contentInfo = (String) sendMessageMap.get("contentInfo"); String contentInfo = (String) sendMessageMap.get("contentInfo");
//系统消息 //系统消息
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgTitle, msgContent, contentInfo,messageType); SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgTitle, msgContent, contentInfo,messageType,initiator);
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(idTemp, idTemp); sendWebsocket(idTemp, idTemp);
@@ -89,8 +96,9 @@ public class SendMessageUtils {
} }
@NotNull @NotNull
private static SysAnnouncement getSysAnnouncement(List<String> userIdList, String title, String content, String contentInfo, MessageTypeEnum messageType) { private static SysAnnouncement getSysAnnouncement(List<String> userIdList, String title, String content, String contentInfo, MessageTypeEnum messageType,String initiator) {
SysAnnouncement sysAnnouncement = new SysAnnouncement(); SysAnnouncement sysAnnouncement = new SysAnnouncement();
sysAnnouncement.setInitiator(initiator);
sysAnnouncement.setDelFlag("0"); sysAnnouncement.setDelFlag("0");
sysAnnouncement.setSendStatus("0"); sysAnnouncement.setSendStatus("0");
sysAnnouncement.setSendTime(new Date()); sysAnnouncement.setSendTime(new Date());
@@ -1,7 +1,6 @@
package com.jero.modules.project.vo; package com.jero.modules.project.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -10,6 +9,7 @@ import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -119,7 +119,7 @@ public class NcrTrackVO implements Serializable {
//验证问题类型 verify_flow_task_status //验证问题类型 verify_flow_task_status
private String verifyFlowTaskStatus; private String verifyFlowTaskStatus;
private String ncrTrackVOList; private List<NcrTrackVO> ncrTrackVOList = new ArrayList<>();
//以下字段跳转适用(还有项目库id) //以下字段跳转适用(还有项目库id)
@@ -335,7 +335,7 @@ public class LawsWarnService {
String title = content; String title = content;
//封装消息的实体类 //封装消息的实体类
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, title, content, contentInfo,MessageTypeEnum.PUSH.getValue()); SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, title, content, contentInfo,MessageTypeEnum.PUSH.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
bussDocumentLibraryEOService.sendWebsocket(StringUtils.join(thirdIdList, ","), contentInfo); bussDocumentLibraryEOService.sendWebsocket(StringUtils.join(thirdIdList, ","), contentInfo);
//飞书 //飞书
@@ -152,7 +152,7 @@ public class TimedTaskWarn implements Job {
private void sendMessage(String title, String content,String contentInfo,String contentFeiShu, String url, List<String> userIdList, List<String> thirdIdList) { private void sendMessage(String title, String content,String contentInfo,String contentFeiShu, String url, List<String> userIdList, List<String> thirdIdList) {
//站内消息 //站内消息
//封装消息的实体类 //封装消息的实体类
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, title, content, contentInfo,MessageTypeEnum.WARN.getValue()); SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, title, content, contentInfo,MessageTypeEnum.WARN.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
bussDocumentLibraryEOService.sendWebsocket(StringUtils.join(userIdList, ","), content); bussDocumentLibraryEOService.sendWebsocket(StringUtils.join(userIdList, ","), content);
+35 -2
View File
@@ -142,7 +142,40 @@
.itemModel-multi .ant-form-explain, .ant-form-extra { .itemModel-multi .ant-form-explain, .ant-form-extra {
margin-top: -10px; margin-top: -10px;
} }
.anticon-exclamation-circle{
display: none!important;
.anticon-exclamation-circle {
display: none !important;
}
.ant-select-selection--single {
height: 38px !important;
}
.ant-select-selection--multiple {
height: 38px !important;
}
.ant-select-selection__rendered {
line-height: 38px !important;
height: 38px !important;
}
.ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
margin-top: 6px;
}
.ant-calendar-picker {
line-height: 38px !important;
height: 38px !important;
}
.ant-calendar-picker-input {
height: 38px !important;
}
.ant-input-number-input-wrap {
line-height: 38px !important;
height: 38px !important;
} }
</style> </style>
+87 -1
View File
@@ -134,7 +134,14 @@ export function downFile(url, parameter) {
responseType: 'blob' responseType: 'blob'
}) })
} }
export function downFilePost(url, parameter) {
return axios({
url: url,
data: parameter,
method: 'post',
responseType: 'blob'
})
}
/** /**
* 下载文件 * 下载文件
* @param url 文件路径 * @param url 文件路径
@@ -226,6 +233,85 @@ export function downloadFile(url, fileName, parameter, callback) {
}) })
} }
export function downloadFilePost(url, fileName, parameter, callback) {
let langCn = localStorage.language
// 默认中文
let isTrue
if (langCn == 'en-us') {
isTrue = true
} else if (langCn == 'zh-cn') {
isTrue = false
}
index.showDrawer({
loading: true,
isTrue: isTrue
})
return downFilePost(url, parameter).then((data) => {
let fileReader = new FileReader()
fileReader.onload = function(event) {
try {
let jsonData = JSON.parse(event.target.result)
if (jsonData.message.includes('token')) {
index.showDrawer({
loading: false,
isTrue: isTrue
})
Modal.error({
title: '登录已过期',
content: '很抱歉,登录已过期,请重新登录',
okText: '重新登录',
mask: false,
onOk: () => {
store.dispatch('Logout').then(() => {
Vue.ls.remove(ACCESS_TOKEN)
try {
let path = window.document.location.pathname
if (path != '/' && path.indexOf('/user/login') == -1) {
window.location.reload()
}
} catch (e) {
window.location.reload()
}
})
}
})
} else {
if (!jsonData.success) {
index.showDrawer({
loading: false,
isTrue: isTrue
})
Vue.prototype['$message'].warning(jsonData.message)
}
}
} catch (e) {
if (!data || data.size === 0) {
Vue.prototype['$message'].warning('文件下载失败')
return
}
if (typeof window.navigator.msSaveBlob !== 'undefined') {
window.navigator.msSaveBlob(new Blob([data]), fileName)
} else {
let url = window.URL.createObjectURL(new Blob([data]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
document.body.removeChild(link) //下载完成移除元素
window.URL.revokeObjectURL(url) //释放掉blob对象
}
index.showDrawer({
loading: false,
isTrue: isTrue
})
callback && callback()
}
}
fileReader.readAsText(data)
})
}
/** /**
* 文件上传 用于富文本上传图片 * 文件上传 用于富文本上传图片
* @param url * @param url
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -576,7 +576,7 @@ module.exports = {
documentSplitTemplate: '文档拆分模板', documentSplitTemplate: '文档拆分模板',
batSetting: '批量设置', batSetting: '批量设置',
selectDirectoryTerms: '请选择添加条款的目录位置', selectDirectoryTerms: '请选择添加条款的目录位置',
OnlyWordItem: '非GSO文件类型,不能拆分pdf文件', OnlyWordItem: '只有GSO文件类型,才能拆分pdf文件,请重新选择文件',
OnlyWord: '只能导入word文件', OnlyWord: '只能导入word文件',
labelAreaDeleted: '若进行删除,则该展示区域下标签项都将被删除', labelAreaDeleted: '若进行删除,则该展示区域下标签项都将被删除',
StandardBreakdown: '标准分解单', StandardBreakdown: '标准分解单',
+1 -1
View File
@@ -32,7 +32,7 @@
return{ return{
visible:false, visible:false,
uploadAction:window._CONFIG['domianURL']+"/sys/common/upload", uploadAction:window._CONFIG['domianURL']+"/sys/common/upload",
downLoadFileUrl:window._CONFIG['domianURL']+'/sys/common/static', downLoadFileUrl:window._CONFIG['domianPreviewURL']+'/sys/common/static',
myfileList:[], myfileList:[],
fileList:[], fileList:[],
fileTypeSatus:false, fileTypeSatus:false,
@@ -327,19 +327,6 @@
height: 40px; height: 40px;
margin-bottom: 24px; margin-bottom: 24px;
} }
</style>
<style lang='less'>
.area-module {
.ant-modal-wrap {
.ant-modal {
.ant-modal-content {
.ant-modal-footer {
text-align: center;
}
}
}
}
}
.page { .page {
display: flex; display: flex;
@@ -392,4 +379,17 @@
.title-text-text { .title-text-text {
margin-top: 9px; margin-top: 9px;
} }
</style>
<style lang='less'>
.area-module {
.ant-modal-wrap {
.ant-modal {
.ant-modal-content {
.ant-modal-footer {
text-align: center;
}
}
}
}
}
</style> </style>
@@ -50,7 +50,7 @@
visible:false, visible:false,
// uploadAction:"http://10.0.1.25:8080/split/sarFileSplitItems/importSplitItems", // uploadAction:"http://10.0.1.25:8080/split/sarFileSplitItems/importSplitItems",
uploadAction:window._CONFIG['domianURL']+"/split/sarFileSplitItems/importSplitItems", uploadAction:window._CONFIG['domianURL']+"/split/sarFileSplitItems/importSplitItems",
downLoadFileUrl:window._CONFIG['domianURL']+'/sys/common/static', downLoadFileUrl:window._CONFIG['domianPreviewURL']+'/sys/common/static',
myfileList:[], myfileList:[],
fileList:[], fileList:[],
fileTypeSatus:false, fileTypeSatus:false,
@@ -37,7 +37,7 @@
visible: false, visible: false,
uploadAction: window._CONFIG['domianURL'] + '/split/sarFileSplitItems/upload', uploadAction: window._CONFIG['domianURL'] + '/split/sarFileSplitItems/upload',
upDataList: [], upDataList: [],
downLoadFileUrl: window._CONFIG['domianURL'] + '/sys/common/static', downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/static',
fileList: [], fileList: [],
myfileList: [], myfileList: [],
isLoding: false, isLoding: false,
@@ -34,7 +34,7 @@
return { return {
visible: false, visible: false,
uploadAction: window._CONFIG['domianURL'] + '/sys/common/upload', uploadAction: window._CONFIG['domianURL'] + '/sys/common/upload',
downLoadFileUrl: window._CONFIG['domianURL'] + '/sys/common/static', downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/static',
myfileList: [], myfileList: [],
fileList: [], fileList: [],
fileTypeSatus: false, fileTypeSatus: false,
@@ -15,7 +15,7 @@
<a-list-item :key="index" v-for="(record, index) in announcement1" v-if="index <= 4"> <a-list-item :key="index" v-for="(record, index) in announcement1" v-if="index <= 4">
<div style="margin-left: 5%;width: 80%;"> <div style="margin-left: 5%;width: 80%;">
<p style="overflow: hidden; text-overflow: ellipsis;white-space: nowrap;color:#00B3BE"> <p style="overflow: hidden; text-overflow: ellipsis;white-space: nowrap;color:#00B3BE">
<a :title="record.msgContent" @click="showAnnouncement(record)">{{ record.msgContent }}</a> <a :title="record.titile" @click="showAnnouncement(record)">{{ record.titile }}</a>
</p> </p>
</div> </div>
</a-list-item> </a-list-item>
@@ -106,7 +106,7 @@ export default {
this.fileTypeSatus = true this.fileTypeSatus = true
}, },
mypreview(item) { mypreview(item) {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + encodeURIComponent(this.downLoadFileUrl + '/' + item.ext1) let url = window._CONFIG['domianPreviewURL'] + '?url=' + encodeURIComponent(this.downLoadFileUrl + '/' + item.ext1)
window.open(url, '_blank') window.open(url, '_blank')
}, },
handleChange(info) { handleChange(info) {
@@ -188,17 +188,17 @@ export default {
let index1 = fileName.lastIndexOf('.') let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2) let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix === '.pdf') { // if (fileSuffix === '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username)) // window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
} else if (fileSuffix === '.docx') { // } else if (fileSuffix === '.docx') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix) // let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank') // window.open(url, '_blank')
} else if (fileSuffix === '.xlsx' || fileSuffix === '.xls') { // } else if (fileSuffix === '.xlsx' || fileSuffix === '.xls') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix) // let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank') // window.open(url, '_blank')
} else { // } else {
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id }) downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id })
} // }
} }
} }
} }
@@ -129,7 +129,7 @@ import { mapGetters } from 'vuex'
this.fileTypeSatus = true this.fileTypeSatus = true
}, },
mypreview(item) { mypreview(item) {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + encodeURIComponent(this.downLoadFileUrl + '/' + item.ext1) let url = window._CONFIG['domianPreviewURL'] + '?url=' + encodeURIComponent(this.downLoadFileUrl + '/' + item.ext1)
window.open(url, '_blank') window.open(url, '_blank')
}, },
handleChange(info) { handleChange(info) {
@@ -211,17 +211,17 @@ import { mapGetters } from 'vuex'
let index1 = fileName.lastIndexOf('.') let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2) let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix === '.pdf') { // if (fileSuffix === '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id)) // window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
} else if (fileSuffix === '.docx') { // } else if (fileSuffix === '.docx') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix) // let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank') // window.open(url, '_blank')
} else if (fileSuffix === '.xlsx' || fileSuffix === '.xls') { // } else if (fileSuffix === '.xlsx' || fileSuffix === '.xls') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix) // let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank') // window.open(url, '_blank')
} else { // } else {
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id }) downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id })
} // }
} }
} }
} }
@@ -2,6 +2,7 @@
<a-modal <a-modal
:title="$t('viewFile')" :title="$t('viewFile')"
:width="600" :width="600"
style="z-index: 1007"
:visible="visibleFile" :visible="visibleFile"
:maskClosable="false" :maskClosable="false"
@cancel="visibleFile = false" @cancel="visibleFile = false"
@@ -11,8 +11,8 @@
<div class="myNews-box-content-box" v-for="(item,index) in dataSource" :key="index" @click="magClick(item)"> <div class="myNews-box-content-box" v-for="(item,index) in dataSource" :key="index" @click="magClick(item)">
<img src="../../../assets/wdxx.png" alt=""> <img src="../../../assets/wdxx.png" alt="">
<div class="content-box"> <div class="content-box">
<div class="top" :title="item.msgContent"> <div class="top" :title="item.titile">
{{item.msgContent}} {{item.titile}}
</div> </div>
<div class="botton"> <div class="botton">
{{item.sendTime}} {{item.sendTime}}
@@ -21,7 +21,8 @@
<a-icon type="reload"/> <a-icon type="reload"/>
{{$t('UpdateLog')}} {{$t('UpdateLog')}}
</div> </div>
<div @click="DocumentSplitting" v-has="'bussLog:page'" class="operator-text-text" :title="$t('DocumentSplitting')"> <div @click="DocumentSplitting" v-has="'bussLog:page'" class="operator-text-text"
:title="$t('DocumentSplitting')">
<a-icon type="codepen"/> <a-icon type="codepen"/>
{{$t('DocumentSplitting')}} {{$t('DocumentSplitting')}}
</div> </div>
@@ -47,7 +48,8 @@
{{val}} {{val}}
</div> </div>
<div class="content-text" v-if="val == $t('essentialInformation')"> <div class="content-text" v-if="val == $t('essentialInformation')">
<div class="text-field" v-for="(ol,index1) in item[val]"> <div class="text-field" :class="{'text-content-button-one':ol.field_show_type == 8 ? true :false}"
v-for="(ol,index1) in item[val]">
<span class="text-field-left" :title="ol.db_field_txt">{{ol.db_field_txt}}</span> <span class="text-field-left" :title="ol.db_field_txt">{{ol.db_field_txt}}</span>
<span class="text-field-right text-field-right-color" v-if="ol.urlClick" @click="urlClick(ol)" <span class="text-field-right text-field-right-color" v-if="ol.urlClick" @click="urlClick(ol)"
:title="ol.value">{{ol.value ? ol.value : '--'}}</span> :title="ol.value">{{ol.value ? ol.value : '--'}}</span>
@@ -135,7 +137,8 @@
</table> </table>
</div> </div>
<div class="content-text" v-else> <div class="content-text" v-else>
<div class="text-field" v-for="(ol,index1) in item[val]"> <div class="text-field" :class="{'text-content-button-one':ol.field_show_type == 8 ? true :false}"
v-for="(ol,index1) in item[val]">
<span class="text-field-left" :title="ol.db_field_txt">{{ol.db_field_txt}}</span> <span class="text-field-left" :title="ol.db_field_txt">{{ol.db_field_txt}}</span>
<span class="text-field-right text-field-right-color" v-if="ol.urlClick" @click="urlClick(ol)" <span class="text-field-right text-field-right-color" v-if="ol.urlClick" @click="urlClick(ol)"
:title="ol.value">{{ol.value ? ol.value : '--'}}</span> :title="ol.value">{{ol.value ? ol.value : '--'}}</span>
@@ -402,7 +405,7 @@
let index2 = fileName.length let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2) let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') { if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username)) window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx') { } else if (fileSuffix == '.docx') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix) let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank') window.open(url, '_blank')
@@ -414,7 +417,7 @@
} }
}, },
download(item) { download(item) {
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id ,userName:this.userInfo().username}) downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id, userName: this.userInfo().username })
}, },
UpdateLog() { UpdateLog() {
this.visible = true this.visible = true
@@ -591,6 +594,33 @@
font-weight: 400; font-weight: 400;
} }
} }
.text-content-button-one {
width: 100%;
.text-field-left {
width: 124px;
display: inline-block;
font-size: 14px;
font-weight: 400;
color: #6F7385;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
margin-right: 24px;
}
.text-field-right {
width: calc(100% - 200px);
display: inline-block;
font-size: 16px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
color: #040B29;
font-weight: 400;
}
}
} }
} }
} }
@@ -10,6 +10,8 @@
@close="onClose" @close="onClose"
width="900" width="900"
> >
<!-- :label-col="labelCol"-->
<!-- :wrapper-col="wrapperCol"-->
<a-spin :spinning="loading"> <a-spin :spinning="loading">
<a-form> <a-form>
<a-form-model <a-form-model
@@ -17,8 +19,6 @@
:model="formInline" :model="formInline"
:rules="rules" :rules="rules"
ref="splitEditForm" ref="splitEditForm"
:label-col="labelCol"
:wrapper-col="wrapperCol"
> >
<a-row :gutter="24" class="split-form-row"> <a-row :gutter="24" class="split-form-row">
@@ -184,6 +184,7 @@
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<j-dict-select-tag v-model="formInline[item.db_field_name]" <j-dict-select-tag v-model="formInline[item.db_field_name]"
:disabled="disabled" :disabled="disabled"
class="box-input"
@input="handleInput(item.db_field_name)" @input="handleInput(item.db_field_name)"
:placeholder="$t('PleaseSelect')+item.db_field_txt" :placeholder="$t('PleaseSelect')+item.db_field_txt"
:type="'radio'" :triggerChange="false" :dictCode="item.dict_field"/> :type="'radio'" :triggerChange="false" :dictCode="item.dict_field"/>
@@ -191,7 +192,7 @@
</div> </div>
<div class="box-title-text box-tree-text" :title="item.db_field_txt" v-else-if="item.field_show_type === '0'"> <div class="box-title-text" :title="item.db_field_txt" v-else-if="item.field_show_type === '0'">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span> <span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text">{{item.db_field_txt}}</span>
@@ -200,6 +201,7 @@
<a-tree-select <a-tree-select
tree-node-filter-prop="title" tree-node-filter-prop="title"
v-model="formInline[item.db_field_name]" v-model="formInline[item.db_field_name]"
class="box-input"
:getPopupContainer="triggerNode=> triggerNode.parentNode" :getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%" style="width: 100%"
:tree-data="item.tree" :tree-data="item.tree"
@@ -226,7 +228,6 @@
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@@ -278,16 +279,15 @@
</a-modal> </a-modal>
<!-- 类型选择弹框--> <!-- 类型选择弹框-->
<a-modal <a-modal
:title="Title" :title="$t('Add')"
class="split-title" class="split-title"
:visible="addConVisible" :visible="addConVisible"
@ok="handleOk" @ok="handleOk"
@cancel="handleCancel" @cancel="handleCancel"
> >
<div class="title-wraper"> <div class="title-wraper">
<div class="title-top"> <div class="title-top">
<span class="title-flex title-text" :class="{'title-flex-active':selected=='TEXT'}" @click="selectTitle('TEXT')">{{$t('text')}}</span> <span class="title-flex title-text-flex" :class="{'title-flex-active':selected=='TEXT'}" @click="selectTitle('TEXT')">{{$t('text')}}</span>
<span class="title-flex title-pic" :class="{'title-flex-active':selected=='IMG'}" @click="selectTitle('IMG')">{{$t('picture')}}</span> <span class="title-flex title-pic" :class="{'title-flex-active':selected=='IMG'}" @click="selectTitle('IMG')">{{$t('picture')}}</span>
<span class="title-flex title-table" :class="{'title-flex-active':selected=='TABLE'}" @click="selectTitle('TABLE')">{{$t('table')}}</span> <span class="title-flex title-table" :class="{'title-flex-active':selected=='TABLE'}" @click="selectTitle('TABLE')">{{$t('table')}}</span>
</div> </div>
@@ -303,7 +303,7 @@
<!-- <span class="title-num-add">{{$t('addQuantity')}}</span>--> <!-- <span class="title-num-add">{{$t('addQuantity')}}</span>-->
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :span="24"> <a-col :span="24">
<a-input-number class="title-num-edit" :min="0" :max="100" v-model="numberForm.textNumber" :placeholder="$t('enterQuantity')" :formatter="limitNumber" :parser="limitNumber" ></a-input-number> <a-input-number class="title-num-edit box-input" :min="0" :max="100" v-model="numberForm.textNumber" :placeholder="$t('enterQuantity')" :formatter="limitNumber" :parser="limitNumber" ></a-input-number>
</a-col> </a-col>
</a-row> </a-row>
</a-form-model-item> </a-form-model-item>
@@ -333,12 +333,12 @@
> >
<a-form-model-item :label="$t('numberRows')" prop="rowCount"> <a-form-model-item :label="$t('numberRows')" prop="rowCount">
<!-- <a-form-item :label="$t('numberRows')">--> <!-- <a-form-item :label="$t('numberRows')">-->
<a-input-number v-model="rowColForm.rowCount" :min="1" :max="100" :placeholder="$t('pleaseEnter')+$t('numberRows')" :formatter="limitNumber" :parser="limitNumber" style="width: 100%" /> <a-input-number class="box-input" v-model="rowColForm.rowCount" :min="1" :max="100" :placeholder="$t('pleaseEnter')+$t('numberRows')" :formatter="limitNumber" :parser="limitNumber" style="width: 100%" />
<!-- </a-form-item>--> <!-- </a-form-item>-->
</a-form-model-item> </a-form-model-item>
<a-form-model-item :label="$t('numberColumns')" prop="colCount"> <a-form-model-item :label="$t('numberColumns')" prop="colCount">
<!-- <a-form-item :label="$t('numberColumns')">--> <!-- <a-form-item :label="$t('numberColumns')">-->
<a-input-number v-model="rowColForm.colCount" :min="1" :max="100" :placeholder="$t('pleaseEnter')+$t('numberColumns')" :formatter="limitNumber" :parser="limitNumber" style="width: 100%" /> <a-input-number class="box-input" v-model="rowColForm.colCount" :min="1" :max="100" :placeholder="$t('pleaseEnter')+$t('numberColumns')" :formatter="limitNumber" :parser="limitNumber" style="width: 100%" />
<!-- </a-form-item>--> <!-- </a-form-item>-->
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
@@ -1214,7 +1214,6 @@
margin-top: 2px; margin-top: 2px;
} }
} }
.con-divider{ .con-divider{
font-size: 16px; font-size: 16px;
@@ -1310,8 +1309,21 @@
text-align: center; text-align: center;
img{ img{
} }
} }
.box-input {
/*min-width: 200px;*/
display: inline-block;
height: 38px;
margin-top: 2px;
}
.button-text {
height: 38px;
width: calc(100% - 100px);
line-height: 38px;
background: #fff;
border: 1px #00B3BE solid;
color: #00B3BE;
}
</style> </style>
<style lang="less"> <style lang="less">
@@ -1366,10 +1378,10 @@
} }
} }
.split-content{ .split-content{
.box-input .ant-input-number-input-wrap{ /*.box-input .ant-input-number-input-wrap{*/
height: 30px; /* height: 30px;*/
line-height: 30px; /* line-height: 30px;*/
} /*}*/
.ant-input-number{ .ant-input-number{
width: 100%; width: 100%;
} }
@@ -1399,15 +1411,10 @@
} }
} }
} }
.box-tree-text{ /*.box-tree-text{*/
.ant-select-selection--multiple{ /* .ant-select-selection--multiple{*/
height: 32px; /* height: 32px;*/
overflow-y: auto; /* overflow-y: auto;*/
} /* }*/
} /*}*/
.box-input .ant-select-selection__rendered {
line-height: 32px;
height: 32px;
/*overflow-y: auto;*/
}
</style> </style>
@@ -1170,17 +1170,18 @@
@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 {
display: flex; /*display: flex;*/
justify-content: space-between; /*justify-content: space-between;*/
.split-detail-left { .split-detail-left {
height: 100%; /*height: 100%;*/
min-width: 300px; width: 300px;
float: left;
padding-right: 20px; padding-right: 20px;
border-right: 1px solid #E6E7EC; /*border-right: 1px solid #E6E7EC;*/
overflow-y: auto; overflow-y: auto;
.split-detail-left-tree { .split-detail-left-tree {
@@ -1206,7 +1207,10 @@
.split-detail-right { .split-detail-right {
padding-left: 20px; padding-left: 20px;
flex: 1; width: calc(100% - 300px);
float: right;
border-left: 1px solid #E6E7EC;
/*flex: 1;*/
.split-detail-search-header { .split-detail-search-header {
margin-bottom: 20px; margin-bottom: 20px;
@@ -1381,26 +1385,26 @@
margin-right: 20px !important; margin-right: 20px !important;
} }
.title-text { /*.title-text {*/
min-width: 73px !important; /* min-width: 73px !important;*/
} /*}*/
.split-detail-wrap { /*.split-detail-wrap {*/
height: 481px !important; /* height: 481px !important;*/
} /*}*/
.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;*/
} /*}*/
} }
</style> </style>
@@ -11,31 +11,32 @@
<div class="text-text-right" <div class="text-text-right"
:class="{ 'null-input':item.checked }"> :class="{ 'null-input':item.checked }">
<div class="text-header" @click="titleClick(item)"> <div class="text-header" @click="titleClick(item)">
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5" > <a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
<template slot="title"> <template slot="title">
<span v-html="item.module_type"></span> <span v-html="item.module_type"></span>
</template> </template>
<span style="cursor: pointer" v-html="item.module_type"></span> <span class="text-header-text" style="cursor: pointer" v-html="item.module_type"></span>
<template slot="title"> <template slot="title">
<span v-html="item.serial_number"></span> <span v-html="item.serial_number"></span>
</template> </template>
<span style="cursor: pointer" <span style="cursor: pointer"
class="text-header-text"
v-html="item.serial_number"></span> v-html="item.serial_number"></span>
<template slot="title"> <template slot="title">
<span v-html="item.title"></span> <span v-html="item.title"></span>
</template> </template>
<span style="cursor: pointer" v-html="item.title"></span> <span class="text-header-text" style="cursor: pointer" v-html="item.title"></span>
<template slot="title"> <template slot="title">
<span v-html="item.file_name"></span> <span v-html="item.file_name"></span>
</template> </template>
<span style="cursor: pointer" v-html="item.file_name"></span> <span class="text-header-text" style="cursor: pointer" v-html="item.file_name"></span>
</a-tooltip> </a-tooltip>
<!-- <a-tooltip placement="topLeft" :mouseEnterDelay="0.5">--> <!-- <a-tooltip placement="topLeft" :mouseEnterDelay="0.5">-->
<!-- </a-tooltip>--> <!-- </a-tooltip>-->
<!-- <a-tooltip placement="topLeft" :mouseEnterDelay="0.5">--> <!-- <a-tooltip placement="topLeft" :mouseEnterDelay="0.5">-->
<!-- </a-tooltip>--> <!-- </a-tooltip>-->
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5"> <a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
</a-tooltip> </a-tooltip>
@@ -107,6 +108,7 @@
conList: [], conList: [],
total: 0, total: 0,
pageSize: 10, pageSize: 10,
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
pageNo: 1, pageNo: 1,
queryParam: {} queryParam: {}
} }
@@ -157,7 +159,7 @@
let index2 = fileName.length let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2) let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') { if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id.slice(0, 32)+'&userName='+this.userInfo().username)) window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id.slice(0, 32) + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx') { } else if (fileSuffix == '.docx') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix) let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
window.open(url, '_blank') window.open(url, '_blank')
@@ -259,17 +261,29 @@
.text-header { .text-header {
margin-bottom: 11px; margin-bottom: 11px;
span { .text-header-text {
margin-right: 52px; margin-right: 52px;
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: bold;
color: #040B29; color: #040B29;
display: inline-block; display: inline-block;
max-width: 500px; max-width: 180px;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
} }
/*span {*/
/* margin-right: 52px;*/
/* font-size: 16px;*/
/* font-weight: bold;*/
/* color: #040B29;*/
/* display: inline-block;*/
/* max-width: 500px;*/
/* text-overflow: ellipsis;*/
/* white-space: nowrap;*/
/* overflow: hidden;*/
/*}*/
} }
.text-content { .text-content {
@@ -1,6 +1,6 @@
<template> <template>
<a-drawer <a-drawer
title="添加" :title="$t('add')"
:maskClosable="false" :maskClosable="false"
:width="1000" :width="1000"
placement="right" placement="right"
@@ -162,6 +162,12 @@
{{text}} {{text}}
</span> </span>
</span> </span>
<span slot="standard" slot-scope="text,record" :title="text">
<a class="textName" @click="standardClick(record)">
{{text}}
</a>
</span>
<span slot="designDeliverableTemplateName" slot-scope="text,record"> <span slot="designDeliverableTemplateName" slot-scope="text,record">
<span>{{record.designDeliverableTypeName}}</span><br v-if="record.designDeliverableTypeName"> <span>{{record.designDeliverableTypeName}}</span><br v-if="record.designDeliverableTypeName">
<a v-if="record.designDeliverableTemplate && record.designDeliverableTemplate.split(',').length == 1" <a v-if="record.designDeliverableTemplate && record.designDeliverableTemplate.split(',').length == 1"
@@ -306,7 +312,7 @@
dataIndex: 'serialNumber', dataIndex: 'serialNumber',
width: 180, width: 180,
fixed: 'left', fixed: 'left',
scopedSlots: { customRender: 'titleName' } scopedSlots: { customRender: 'standard' }
}, },
{ {
title: this.$t('title'), title: this.$t('title'),
@@ -840,6 +846,15 @@
this.loading = false this.loading = false
} }
}) })
},
standardClick(row) {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
query: {
id: row.bussDocumentLibraryId
}
})
window.open(newUrl.href, '_blank')
} }
} }
} }
@@ -389,7 +389,7 @@ export default {
], ],
paramsName: [ paramsName: [
{ required: true, message: this.$t('pleaseSelect')+this.$t('ParameterName'), trigger: 'blur' }, { required: true, message: this.$t('pleaseSelect')+this.$t('ParameterName'), trigger: 'blur' },
{ min:1, max: 30, message: this.$t('cantExeed')+'30'+this.$t('characters'), trigger: 'blur' }, { min:1, max: 100, message: this.$t('cantExeed')+'100'+this.$t('characters'), trigger: 'blur' },
], ],
technologyTerritory: [ technologyTerritory: [
{ required: true, message: this.$t('pleaseSelect')+this.$t('technicalField'), trigger: 'change' }, { required: true, message: this.$t('pleaseSelect')+this.$t('technicalField'), trigger: 'change' },
@@ -401,7 +401,7 @@ export default {
{ required: true, message: this.$t('PleaseSelect')+this.$t('areaOfResponsibility'), trigger: 'change' }, { required: true, message: this.$t('PleaseSelect')+this.$t('areaOfResponsibility'), trigger: 'change' },
], ],
description: [ description: [
{ min:1, max: 1000, message: this.$t('cantExeed')+'1000'+this.$t('characters'), trigger: 'blur' }, { min:1, max: 2000, message: this.$t('cantExeed')+'2000'+this.$t('characters'), trigger: 'blur' },
], ],
controlType: [ controlType: [
{ required: true, message: this.$t('pleaseSelect')+this.$t('controlType'), trigger: 'change' }, { required: true, message: this.$t('pleaseSelect')+this.$t('controlType'), trigger: 'change' },
@@ -689,15 +689,15 @@ export default {
this.$message.warning(this.$t('ParameterName')+this.$t('cannotEmpty')) this.$message.warning(this.$t('ParameterName')+this.$t('cannotEmpty'))
falg = 0 falg = 0
return return
} else if(item.paramsName.length > 30){ } else if(item.paramsName.length > 100){
this.$message.warning(this.$t('ParameterName')+this.$t('cantExeed')+'30'+this.$t('Characters')) this.$message.warning(this.$t('ParameterName')+this.$t('cantExeed')+'100'+this.$t('Characters'))
falg = 0 falg = 0
return return
} }
if(item.description !== undefined && item.description !== null){ if(item.description !== undefined && item.description !== null){
// 参数说明的限制 // 参数说明的限制
if(item.description.length > 1000){ if(item.description.length > 2000){
this.$message.warning(this.$t('ParameterDescription')+this.$t('cantExeed')+'1000'+this.$t('Characters')) this.$message.warning(this.$t('ParameterDescription')+this.$t('cantExeed')+'2000'+this.$t('Characters'))
falg = 0 falg = 0
return return
} }
@@ -84,7 +84,8 @@
{}, {},
{ {
title: this.$t('standard'), title: this.$t('standard'),
value: 'serialNumber' value: 'serialNumber',
type: '4'
}, },
{ {
title: this.$t('title'), title: this.$t('title'),
@@ -1219,7 +1219,8 @@
if (valid) { if (valid) {
let query = { let query = {
roleCode: this.formInlineRoleSwitching.roleSwitchingCode, roleCode: this.formInlineRoleSwitching.roleSwitchingCode,
id: this.AndUserId id: this.AndUserId,
projectLibraryId: this.$route.query.id
} }
this.confirmLoadingRoleSwitching = true this.confirmLoadingRoleSwitching = true
postAction(this.url.AndUserIdEdit, query).then((res) => { postAction(this.url.AndUserIdEdit, query).then((res) => {
@@ -1503,7 +1504,7 @@
} }
} }
for (let i = 0; i < dataList.length; i++) { for (let i = 0; i < dataList.length; i++) {
if ((dataList[i].taskAffirmStatus == 'Not started' || dataList.taskAffirmStatus == 'Rejected') && if ((dataList[i].taskAffirmStatus == 'Not started' || dataList[i].taskAffirmStatus == 'Rejected') &&
dataList[i].inventoryAffirmStatus == 'Accepted') { dataList[i].inventoryAffirmStatus == 'Accepted') {
if (dataList[i].engineeringInterfacePerson) { if (dataList[i].engineeringInterfacePerson) {
if (dataList[i].verifyDeliverableType) { if (dataList[i].verifyDeliverableType) {
@@ -82,7 +82,7 @@
</template> </template>
<script> <script>
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage' import { getAction, postAction, downloadFile, deleteAction,downloadFilePost } from '@/api/manage'
import store from '@/store/' import store from '@/store/'
export default { export default {
@@ -214,9 +214,9 @@
let query = { let query = {
...this.queryParam, ...this.queryParam,
projectLibraryId: this.$route.query.id, projectLibraryId: this.$route.query.id,
ncrTrackVOList: JSON.stringify(this.content) ncrTrackVOList: this.content
} }
downloadFile(this.url.exportData, this.$t('NonConformance') + '.xls', query, this.Deselect) downloadFilePost(this.url.exportData, this.$t('NonConformance') + '.xls', query, this.Deselect)
}, },
getList() { getList() {
let query = { let query = {
@@ -36,7 +36,7 @@
:scroll="{x: 1000}" :scroll="{x: 1000}"
:data-source="dataList" :data-source="dataList"
:pagination="false" :pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,columnTitle:' ' }"
:loading="loading"> :loading="loading">
</a-table> </a-table>
@@ -182,7 +182,7 @@
</template> </template>
<script> <script>
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage' import { getAction, postAction, downloadFile, deleteAction ,downloadFilePost} from '@/api/manage'
import PersonnelSelection from '@/components/PersonnelSelection/index' import PersonnelSelection from '@/components/PersonnelSelection/index'
import store from '@/store/' import store from '@/store/'
@@ -354,9 +354,9 @@
handleExport() { handleExport() {
let query = { let query = {
...this.queryParam, ...this.queryParam,
ncrTrackVOList: JSON.stringify(this.content) ncrTrackVOList: this.content
} }
downloadFile(this.url.exportData, this.$t('NonConformance') + '.xls', query, this.Deselect) downloadFilePost(this.url.exportData, this.$t('NonConformance') + '.xls', query, this.Deselect)
}, },
Deselect() { Deselect() {
this.selectedRowKeys = [] this.selectedRowKeys = []
@@ -100,12 +100,12 @@
description: '系统通告表管理页面', description: '系统通告表管理页面',
queryParam: {}, queryParam: {},
selectedRowKeys: [], selectedRowKeys: [],
// '5': this.$t('taskRegulationComplianceTask'),
msgCategoryQuery: { msgCategoryQuery: {
'1': this.$t('SubscriptionNotification'), '1': this.$t('SubscriptionNotification'),
'2': this.$t('warningInformation'), '2': this.$t('warningInformation'),
'3': this.$t('ForwardPush'), '3': this.$t('ForwardPush'),
'4': this.$t('authenticationMessage'), '4': this.$t('authenticationMessage'),
'5': this.$t('taskRegulationComplianceTask'),
'6':this.$t('RegulationListConfirmationTask'), '6':this.$t('RegulationListConfirmationTask'),
'7':this.$t('RegulationListConfirmationNotification'), '7':this.$t('RegulationListConfirmationNotification'),
'8':this.$t('RegulationTaskConfirmation'), '8':this.$t('RegulationTaskConfirmation'),
@@ -125,6 +125,12 @@
ellipsis: true, ellipsis: true,
scopedSlots: { customRender: 'msgTitile' } scopedSlots: { customRender: 'msgTitile' }
}, },
{
title: this.$t('Sponsor'),
align: 'center',
dataIndex: 'initiator',
width: 200,
},
{ {
title: this.$t('MessageType'), title: this.$t('MessageType'),
align: 'center', align: 'center',