合并分支 'fix_bug_first_stage' 到 'master'

Fix bug first stage

查看合并请求 laws-nio/laws-weilai!43
This commit is contained in:
李雪涛
2022-07-05 15:30:04 +08:00
35 changed files with 1934 additions and 736 deletions
@@ -10,3 +10,11 @@ ADD COLUMN `prehomo_remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_
ADD COLUMN `design_remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设计备注' AFTER `prehomo_remark`;
-- 2022年7月2日部署到正式环境
-- 加大备注的长度
ALTER TABLE `buss_document_library`
MODIFY COLUMN `description` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述' AFTER `replaced_standard`;
UPDATE `laws_weilai`.`onl_cgform_field` SET `id`='e4fe526794af4477321227f69b764b0d', `cgform_head_id`='48308196e7b04761b533dc31bc899707', `db_field_name`='description', `db_field_en_name`='Description', `db_field_txt`='描述', `order_num`='9', `db_field_name_old`=NULL, `db_is_key`='0', `db_is_null`='1', `db_type`='string', `db_length`='1000', `db_point_length`='0', `db_default_val`='', `dict_field`='', `dict_table`='', `dict_text`='', `field_show_type`='8', `field_href`='', `field_length`='120', `field_valid_type`=NULL, `field_must_input`='0', `field_extend_json`='', `field_default_value`='', `is_query`='0', `is_show_form`='1', `is_show_list`='0', `is_read_only`='0', `query_mode`='single', `main_table`='', `main_field`='', `update_by`='admin', `update_time`='2022-06-06 16:05:28', `create_time`='2022-01-21 14:41:40', `create_by`='admin', `converter`='', `query_def_val`='', `query_dict_text`='', `query_dict_field`='', `query_dict_table`='', `query_show_type`='text', `query_config_flag`='0', `query_valid_type`=NULL, `query_must_input`=NULL, `sort_flag`='0', `show_area`='1499657602378825729', `is_show_laws_list`='0', `is_show_search`='0', `is_delete`='0', `is_model`='1', `dict_id`=NULL WHERE (`id`='e4fe526794af4477321227f69b764b0d');
-- 2022年7月4日部署到正式环境
@@ -315,7 +315,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
// String contentInfo = sysUser.getUsername() + " delete " + sbStr + ",Please pay attention to check.";
String contentInfo =content;
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo);
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo,MessageTypeEnum.READ.getValue());
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(StringUtils.join(serialNumberList, ","), contentInfo);
}
@@ -2149,7 +2149,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
+ href +" has been updated.";
// String contentInfo = sysUser.getUsername() + " add " + serialNumber + ",Please pay attention to check.";
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo);
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo,MessageTypeEnum.READ.getValue());
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(idTemp, contentInfo);
//飞书
@@ -3150,7 +3150,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
String contentInfo = "In the " + technologyTerritoryNameEn + " technical field 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();
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userList, contentInfoFei, contentInfo);
SysAnnouncement sysAnnouncement = getSysAnnouncement(userList, contentInfoFei, contentInfo,MessageTypeEnum.READ.getValue());
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket((String) map.get("id"), contentInfo);
}
@@ -3171,7 +3171,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
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();
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdListUpdate, content, contentInfo);
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdListUpdate, content, contentInfo,MessageTypeEnum.READ.getValue());
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket((String) map.get("id"), contentInfo);
}
@@ -3251,7 +3251,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
String content = "New numbering implemented, please note update status of alternate numbering " + StringUtils.join(serialNumberList, ",");
String contentInfo = "New numbering implemented, please note update status of alternate numbering " + sbStr;
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo);
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo,MessageTypeEnum.READ.getValue());
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(StringUtils.join(serialNumberListTemp, ","), contentInfo);
//飞书
@@ -3274,13 +3274,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
@NotNull
public SysAnnouncement getSysAnnouncement(List<String> userIdList, String content, String contentInfo) {
public SysAnnouncement getSysAnnouncement(List<String> userIdList, String content, String contentInfo,String messageType) {
SysAnnouncement sysAnnouncement = new SysAnnouncement();
sysAnnouncement.setDelFlag("0");
sysAnnouncement.setSendStatus("0");
sysAnnouncement.setSendTime(new Date());
// sysAnnouncement.setDocumentId((String) dataList.get(0).get("id"));
sysAnnouncement.setMsgCategory(MessageTypeEnum.READ.getValue());//消息类型
sysAnnouncement.setMsgCategory(messageType);//消息类型
sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR);//指定用户
sysAnnouncement.setMsgContent(content);
sysAnnouncement.setMsgContentInfo(contentInfo);
@@ -4740,7 +4740,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
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.";
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo);
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo,MessageTypeEnum.PUSH.getValue());
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(StringUtils.join(thirdIdList, ","), contentInfo);
//飞书
@@ -1147,7 +1147,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
contentInfo = setContentInfo(contentInfo, baseDiff,contentLog);
contentInfoTemp = setContentInfo(contentInfoTemp, baseDiff,contentLog).replace("</br>"," ");
//封装消息的实体类
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, content, contentInfo);
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, content, contentInfo,MessageTypeEnum.READ.getValue());
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
bussDocumentLibraryEOService.sendWebsocket(idTemp, contentInfo);
//飞书
@@ -1161,7 +1161,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
contentInfo = "Please note that the "+baseName+" virtual list you subscribed to has been withdrawn.";
//封装消息的实体类
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, content, contentInfo);
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, content, contentInfo,MessageTypeEnum.READ.getValue());
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
bussDocumentLibraryEOService.sendWebsocket(idTemp, contentInfo);
//飞书
@@ -1213,324 +1213,352 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
//标题
if (StringUtils.isNotBlank(infoDiff.get("title"))) {
List<String> list = Arrays.asList(infoDiff.get("title").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.TITLE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.TITLE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.TITLE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.TITLE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//子标题
if (StringUtils.isNotBlank(infoDiff.get("subtitle"))) {
List<String> list = Arrays.asList(infoDiff.get("subtitle").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.SUBTITLE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.SUBTITLE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.SUBTITLE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.SUBTITLE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//WVTA ID
if (StringUtils.isNotBlank(infoDiff.get("wvtaId"))) {
List<String> list = Arrays.asList(infoDiff.get("wvtaId").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.WVTA_ID.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.WVTA_ID.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.WVTA_ID.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.WVTA_ID.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//适用范围applyScope 多选
if (StringUtils.isNotBlank(infoDiff.get("applyScope"))) {
List<String> list = Arrays.asList(infoDiff.get("applyScope").split("\\|"));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//新车型实施日期
if (StringUtils.isNotBlank(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1String"))) {
List<String> list = Arrays.asList(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1String").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//在产车实施日期
if (StringUtils.isNotBlank(infoDiff.get("implementTimeString"))) {
List<String> list = Arrays.asList(infoDiff.get("implementTimeString").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//认证类型
if (StringUtils.isNotBlank(infoDiff.get("attestationType"))) {
List<String> list = Arrays.asList(infoDiff.get("attestationType").split("\\|"));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//技术领域
if (StringUtils.isNotBlank(infoDiff.get("technologyTerritoryName"))) {
List<String> list = Arrays.asList(infoDiff.get("technologyTerritoryName").split("\\|"));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//责任领域
if (StringUtils.isNotBlank(infoDiff.get("dutyTerritory"))) {
List<String> list = Arrays.asList(infoDiff.get("dutyTerritory").split("\\|"));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//认证级别
if (StringUtils.isNotBlank(infoDiff.get("attestationRank"))) {
List<String> list = Arrays.asList(infoDiff.get("attestationRank").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//实施类别
if (StringUtils.isNotBlank(infoDiff.get("implementType"))) {
List<String> list = Arrays.asList(infoDiff.get("implementType").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//适用地区region 多选
if (StringUtils.isNotBlank(infoDiff.get("region"))) {
List<String> list = Arrays.asList(infoDiff.get("region").split("\\|"));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.REGION.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.REGION.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.REGION.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.REGION.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//适用增补件applicableSupplement
if (StringUtils.isNotBlank(infoDiff.get("applicableSupplement"))) {
List<String> list = Arrays.asList(infoDiff.get("applicableSupplement").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.APPLICABLE_SUPPLEMENT.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.APPLICABLE_SUPPLEMENT.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.APPLICABLE_SUPPLEMENT.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.APPLICABLE_SUPPLEMENT.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//备注
if (StringUtils.isNotBlank(infoDiff.get("remark"))) {
List<String> list = Arrays.asList(infoDiff.get("remark").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.REMARK.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.REMARK.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.REMARK.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.REMARK.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//设计符合性确认-交付物类型
if (StringUtils.isNotBlank(infoDiff.get("designDeliverableTypeName"))) {
List<String> list = Arrays.asList(infoDiff.get("designDeliverableTypeName").split("\\|"));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.DESIGN_DELIVERABLE_TYPE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.DESIGN_DELIVERABLE_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.DESIGN_DELIVERABLE_TYPE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.DESIGN_DELIVERABLE_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//设计符合性确认-交付物模板
if (StringUtils.isNotBlank(infoDiff.get("designDeliverableTemplateName"))) {
List<String> list = Arrays.asList(infoDiff.get("designDeliverableTemplateName").split("\\|"));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.DESIGN_DELIVERABLE_TEMPLATE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.DESIGN_DELIVERABLE_TEMPLATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.DESIGN_DELIVERABLE_TEMPLATE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.DESIGN_DELIVERABLE_TEMPLATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//设计符合性确认-发起人
if (StringUtils.isNotBlank(infoDiff.get("designInitiator"))) {
List<String> list = Arrays.asList(infoDiff.get("designInitiator").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.DESIGN_INITIATOR.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.DESIGN_INITIATOR.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.DESIGN_INITIATOR.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.DESIGN_INITIATOR.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//设计符合性确认-责任人
if (StringUtils.isNotBlank(infoDiff.get("designDuty"))) {
List<String> list = Arrays.asList(infoDiff.get("designDuty").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.DESIGN_DUTY.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.DESIGN_DUTY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.DESIGN_DUTY.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.DESIGN_DUTY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//prehomo确认-交付物类型
if (StringUtils.isNotBlank(infoDiff.get("prehomoDeliverableTypeName"))) {
List<String> list = Arrays.asList(infoDiff.get("prehomoDeliverableTypeName").split("\\|"));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DELIVERABLE_TYPE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DELIVERABLE_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DELIVERABLE_TYPE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DELIVERABLE_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//prehomo确认-交付物模板
if (StringUtils.isNotBlank(infoDiff.get("prehomoDeliverableTemplateName"))) {
List<String> list = Arrays.asList(infoDiff.get("prehomoDeliverableTemplateName").split("\\|"));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DELIVERABLE_TEMPLATE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DELIVERABLE_TEMPLATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DELIVERABLE_TEMPLATE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DELIVERABLE_TEMPLATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//prehomo确认-发起人
if (StringUtils.isNotBlank(infoDiff.get("prehomoInitiator"))) {
List<String> list = Arrays.asList(infoDiff.get("prehomoInitiator").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.PREHOMO_INITIATOR.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.PREHOMO_INITIATOR.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.PREHOMO_INITIATOR.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.PREHOMO_INITIATOR.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//prehomo确认-责任人
if (StringUtils.isNotBlank(infoDiff.get("prehomoDuty"))) {
List<String> list = Arrays.asList(infoDiff.get("prehomoDuty").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DUTY.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DUTY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DUTY.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.PREHOMO_DUTY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//验证符合性确认-交付物类型
if (StringUtils.isNotBlank(infoDiff.get("verifyDeliverableTypeName"))) {
List<String> list = Arrays.asList(infoDiff.get("verifyDeliverableTypeName").split("\\|"));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.VERIFY_DELIVERABLE_TYPE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.VERIFY_DELIVERABLE_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.VERIFY_DELIVERABLE_TYPE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.VERIFY_DELIVERABLE_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//验证符合性确认-交付物模板
if (StringUtils.isNotBlank(infoDiff.get("verifyDeliverableTemplateName"))) {
List<String> list = Arrays.asList(infoDiff.get("verifyDeliverableTemplateName").split("\\|"));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.VERIFY_DELIVERABLE_TEMPLATE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.VERIFY_DELIVERABLE_TEMPLATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.VERIFY_DELIVERABLE_TEMPLATE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
}else{
contentLog += "'"+DummyInventoryBaseFieldEnum.VERIFY_DELIVERABLE_TEMPLATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//验证符合性确认-发起人
if (StringUtils.isNotBlank(infoDiff.get("verifyInitiator"))) {
List<String> list = Arrays.asList(infoDiff.get("verifyInitiator").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.VERIFY_INITIATOR.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.VERIFY_INITIATOR.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.VERIFY_INITIATOR.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.VERIFY_INITIATOR.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
//验证符合性确认-责任人
if (StringUtils.isNotBlank(infoDiff.get("verifyDuty"))) {
List<String> list = Arrays.asList(infoDiff.get("verifyDuty").split(","));
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.VERIFY_DUTY.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.VERIFY_DUTY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
if (StringUtils.isBlank(contentLog)) {
contentInfo += "'"+DummyInventoryBaseFieldEnum.VERIFY_DUTY.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + "</br>";
} else{
contentLog += "'"+DummyInventoryBaseFieldEnum.VERIFY_DUTY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
}
}
@@ -85,7 +85,7 @@ public class FeishuServiceImpl implements IFeishuService {
// 第二行
JSONObject contentTwo = new JSONObject();
contentTwo.put("tag", "a");
contentTwo.put("text", "跳转链接");
contentTwo.put("text", "View");
contentTwo.put("href", backUrl);
List<JSONObject> contentList = new ArrayList<>();
contentList.add(contentOne);
@@ -2,6 +2,7 @@ package com.jero.modules.project.controller;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
@@ -13,7 +14,15 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
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.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
@@ -46,7 +55,11 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
@RequiresPermissions("projectRelatedPersonnel:page")
@PostMapping(value = "/page")
public Result<?> queryPageList(@RequestBody Map<String,Object> map) {
List<ProjectRelatedPersonnel> pageList= projectRelatedPersonnelService.queryPageList((String) map.get("projectId"));
List<ProjectRelatedPersonnel> pageList= projectRelatedPersonnelService.queryPageList((String) map.get("projectId"),
(String) map.get("dutyTerritory"),
(String) map.get("lawEngineer"),
(String) map.get("engineeringInterfacePerson"),
(String) map.get("certificationEngineer"));
return Result.OK((String)map.get("cut"),pageList);
}
/**
@@ -205,4 +218,31 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
List<ProjectRelatedPersonnel> certificationEngineerList = projectRelatedPersonnelService.queryCertificationEngineer(projectId);
return Result.OK(certificationEngineerList);
}
/**
* 批量设置
* @param projectRelatedPersonnel
* @return
*/
@AutoLog(value = "批量设置")
@ApiOperation(value="批量设置", notes="批量设置")
@PostMapping(value = "/setBatch")
public Result<?> setBatch(@RequestBody ProjectRelatedPersonnel projectRelatedPersonnel) {
String cut = projectRelatedPersonnel.getCut();
try {
projectRelatedPersonnelService.setBatch(projectRelatedPersonnel);
} catch (Exception e) {
if(CutEnum.CN.getValue().equals(cut)){
return Result.error("批量设置失败!");
}else{
return Result.error("Batch set success");
}
}
if(CutEnum.CN.getValue().equals(cut)){
return Result.OK("批量设置成功");
}else{
return Result.OK("Batch set success");
}
}
}
@@ -90,4 +90,8 @@ public class ProjectRelatedPersonnel implements Serializable {
/**中英切换标志*/
@TableField(exist = false)
private String cut;
}
//批量设置传参ids
@TableField(exist = false)
private String ids;
}
@@ -17,10 +17,10 @@ public enum InventoryAffirmStatusEnum {
ACCEPTED("接受","Accepted"),
REJECTED("拒绝","Rejected"),
REG_ENG_TO_CONFIRM("法规工程师待确认","To be confirmed by Reg Eng."),
HOMO_ENG_TO_CONFIRM("认证工程师待确认","To be confirmed by Homo Eng."),
REG_ENG_REJECTED("法规工程师拒绝 ","Reg Eng. rejected"),
HOMO_ENG_REJECTED("认证工程师拒绝 ","Homo Eng. rejected"),
REG_ENG_TO_CONFIRM("法规待确认","To be confirmed by Reg Eng."),
HOMO_ENG_TO_CONFIRM("认证待确认","To be confirmed by Homo Eng."),
REG_ENG_REJECTED("法规拒绝 ","Reg Eng. rejected"),
HOMO_ENG_REJECTED("认证拒绝 ","Homo Eng. rejected"),
;
@@ -18,6 +18,7 @@ public enum JumpLinkEnum {
VERIFY_AFFIRM_LINK("验证符合性确认链接","3","/ProjectDetails?id=","&type=103"),
DESIGN_AFFIRM_LINK("设计符合性确认链接","4","/ProjectDetails?id=","&type=103"),
TASK_AFFIRM_LINK("任务确认链接","2","/ProcessCenter",""),
COMPLIANCE_PROCESS_DETAIL_LINK("符合性流程明细页路由","2","/taskListProcess",""),
;
@@ -15,6 +15,10 @@ public enum MsgTypeEnum {
PREHOMO_REMIND_MSG("prehomo提醒办理","prehomoRemindMsg"),
VERIFY_ISSUE_DRE_MSG("验证符合性确认分配dre消息","verifyIssueDreMsg"),
VERIFY_REMIND_MSG("验证符合性确认提醒办理","verifyRemindMsg"),
DESIGN_RETURN_MSG("设计符合性发起人退回","designReturnMsg"),
PREHOMO_RETURN_MSG("prehomo发起人退回","prehomoReturnMsg"),
VERIFY_RETURN_MSG("验证符合性发起人退回","verifyReturnMsg"),
;
String name;
@@ -22,6 +22,7 @@ public enum OperatorTypeEnum {
QUERY_TASK_INVENTORY_DETAIL("查询法规清单明细信息","queryTaskInventoryDetail"),
UPDATE_TASK_INVENTORY_DETAIL("更新法规清单明细信息","updateTaskInventoryDetail"),
UPDATE_DRE_TASK_STATUS("更新法规清单明细信息,dre任务状态","updateDreTaskStatus"),
UPDATE_TASK_INVENTORY_DETAIL_BY_TASK("根据任务节点定义key更新数据","updateTaskInventoryDetailByTask"),
GET_CURRENT_USER_ID("获取当前登录用户id","getCurrentUserId"),
@@ -14,7 +14,12 @@ import java.util.List;
*/
public interface ProjectRelatedPersonnelMapper extends BaseMapper<ProjectRelatedPersonnel> {
List<ProjectRelatedPersonnel> queryPageList(@Param("projectId") String projectId,String dictCode);
List<ProjectRelatedPersonnel> queryPageList(@Param("projectId") String projectId,
String dictCode,
@Param("dutyTerritory") String dutyTerritory,
@Param("lawEngineer") String lawEngineer,
@Param("engineeringInterfacePerson") String engineeringInterfacePerson,
@Param("certificationEngineer") String certificationEngineer);
List<ProjectRelatedPersonnel> queryById(@Param("id")String id);
}
@@ -42,6 +42,18 @@
<if test="projectId != null and projectId != ''">
prp.project_id=#{projectId}
</if>
<if test="dutyTerritory != null and dutyTerritory != ''">
AND prp.duty_territory=#{dutyTerritory}
</if>
<if test="lawEngineer != null and lawEngineer != ''">
AND prp.law_engineer like concat(concat('%',#{lawEngineer}),'%')
</if>
<if test="engineeringInterfacePerson != null and engineeringInterfacePerson != ''">
AND prp.engineering_interface_person like concat(concat('%',#{engineeringInterfacePerson}),'%')
</if>
<if test="certificationEngineer != null and certificationEngineer != ''">
AND prp.certification_engineer like concat(concat('%',#{certificationEngineer}),'%')
</if>
AND sd.dict_code = #{dictCode}
</where>
ORDER BY sdi.item_text ASC
@@ -57,4 +69,4 @@
</where>
order by prp.create_time desc
</select>
</mapper>
</mapper>
@@ -67,7 +67,7 @@ public interface IProjectRelatedPersonnelService extends IService<ProjectRelated
*/
List<ProjectRelatedPersonnel> queryList();
List<ProjectRelatedPersonnel> queryPageList(String projectId);
List<ProjectRelatedPersonnel> queryPageList(String projectId,String dutyTerritory,String lawEngineer,String engineeringInterfacePerson,String certificationEngineer);
Map<String,Object> queryPersonByProjectId(String projectId, String dutyTerritory);
@@ -88,4 +88,6 @@ public interface IProjectRelatedPersonnelService extends IService<ProjectRelated
ProjectRelatedPersonnel queryByProjectIdAndDutyTerritory(String projectId, String dutyTerritory);
List<ProjectRelatedPersonnel> queryCertificationEngineer(String projectId);
void setBatch(ProjectRelatedPersonnel projectRelatedPersonnel);
}
@@ -1616,7 +1616,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
String contentInfo = (String) sendMessageMap.get("contentInfo");
//系统消息
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgContent, contentInfo);
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgContent, contentInfo, messageType);
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(idTemp, idTemp);
@@ -1636,12 +1636,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
@NotNull
private SysAnnouncement getSysAnnouncement(List<String> userIdList, String content, String contentInfo) {
private SysAnnouncement getSysAnnouncement(List<String> userIdList, String content, String contentInfo, MessageTypeEnum messageType) {
SysAnnouncement sysAnnouncement = new SysAnnouncement();
sysAnnouncement.setDelFlag("0");
sysAnnouncement.setSendStatus("0");
sysAnnouncement.setSendTime(new Date());
sysAnnouncement.setMsgCategory(MessageTypeEnum.READ.getValue());//消息类型
sysAnnouncement.setMsgCategory(messageType.getValue());//消息类型
sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR);//指定用户
sysAnnouncement.setMsgContent(content);
sysAnnouncement.setMsgContentInfo(contentInfo);
@@ -1694,31 +1694,103 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOS) {
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) {
if(StringUtils.equals(projectRelatedPersonnel.getDutyTerritory(),projectLawsInventoryEO.getDutyTerritory())){
//法规工程师
if (StringUtils.isEmpty(projectLawsInventoryEO.getRegulationOwnerId())) {
String userId = ToGetAUserId(ProjectRoleEnum.REGULATI_ENGINEER.getValue(), projectRelatedPersonnel,studioEngineer);
//法规清单的责任领域
String dutyTerritory = projectLawsInventoryEO.getDutyTerritory();
if(StringUtils.isNotBlank(dutyTerritory)){
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> engineeringInterfacePersonList = projectRelatedPersonnelList.stream().map(ProjectRelatedPersonnel::getEngineeringInterfacePerson).distinct().collect(Collectors.toList()).stream().filter(e->StringUtils.isNotBlank(e)).collect(Collectors.toList());
List<String> certificationEngineerList = projectRelatedPersonnelList.stream().map(ProjectRelatedPersonnel::getCertificationEngineer).distinct().collect(Collectors.toList()).stream().filter(e->StringUtils.isNotBlank(e)).collect(Collectors.toList());
List<String> lawEngineerListTemp = new ArrayList<>();
List<String> engineeringInterfacePersonListTemp = new ArrayList<>();
List<String> certificationEngineerListTemp = new ArrayList<>();
if(lawEngineerList.size() != 0){
for (String s : lawEngineerList) {
lawEngineerListTemp.addAll(Arrays.asList(s.split(",")));
}
lawEngineerListTemp = lawEngineerListTemp.stream().distinct().collect(Collectors.toList());
}
if(engineeringInterfacePersonList.size() != 0){
for (String s : engineeringInterfacePersonList) {
engineeringInterfacePersonListTemp.addAll(Arrays.asList(s.split(",")));
}
engineeringInterfacePersonListTemp = engineeringInterfacePersonListTemp.stream().distinct().collect(Collectors.toList());
}
if(certificationEngineerList.size() != 0){
for (String s : certificationEngineerList) {
certificationEngineerListTemp.addAll(Arrays.asList(s.split(",")));
}
certificationEngineerListTemp = certificationEngineerListTemp.stream().distinct().collect(Collectors.toList());
}
//法规工程师
if (StringUtils.isEmpty(projectLawsInventoryEO.getRegulationOwnerId()) && lawEngineerListTemp.size() == 1) {
List<String> finalLawEngineerList = lawEngineerListTemp;
List<ProjectRelatedPersonnel> collect = projectRelatedPersonnels.stream()
.filter(e -> finalLawEngineerList.contains(e.getLawEngineer())).collect(Collectors.toList());
if(collect.size() != 0){
String userId = ToGetAUserId(ProjectRoleEnum.REGULATI_ENGINEER.getValue(), collect.get(0),studioEngineer);
if(StringUtils.isNotEmpty(userId)){
projectLawsInventoryEO.setRegulationOwnerId(userId);
}
}
}
//认证工程师
if (StringUtils.isEmpty(projectLawsInventoryEO.getHomologationEngineerId())) {
String userId = ToGetAUserId(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue(), projectRelatedPersonnel,studioEngineer);
//认证工程师
if (StringUtils.isEmpty(projectLawsInventoryEO.getHomologationEngineerId()) && certificationEngineerListTemp.size() == 1) {
List<String> finalCertificationEngineerList = certificationEngineerListTemp;
List<ProjectRelatedPersonnel> collect = projectRelatedPersonnels.stream()
.filter(e -> finalCertificationEngineerList.contains(e.getCertificationEngineer())).collect(Collectors.toList());
if(collect.size() != 0){
String userId = ToGetAUserId(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue(), collect.get(0),studioEngineer);
if(StringUtils.isNotEmpty(userId)){
projectLawsInventoryEO.setHomologationEngineerId(userId);
}
}
}
//项目接口人
if (StringUtils.isEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) {
String userId = ToGetAUserId(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), projectRelatedPersonnel,studioEngineer);
//项目接口人
if (StringUtils.isEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson()) && engineeringInterfacePersonListTemp.size() == 1) {
List<String> finalEngineeringInterfacePersonList = engineeringInterfacePersonListTemp;
List<ProjectRelatedPersonnel> collect = projectRelatedPersonnels.stream()
.filter(e -> finalEngineeringInterfacePersonList.contains(e.getEngineeringInterfacePerson())).collect(Collectors.toList());
if(collect.size() != 0){
String userId = ToGetAUserId(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), collect.get(0),studioEngineer);
if(StringUtils.isNotEmpty(userId)){
projectLawsInventoryEO.setEngineeringInterfacePerson(userId);
}
}
}
}
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) {
if(StringUtils.equals(projectRelatedPersonnel.getDutyTerritory(),projectLawsInventoryEO.getDutyTerritory())){
// //法规工程师
// if (StringUtils.isEmpty(projectLawsInventoryEO.getRegulationOwnerId())) {
// String userId = ToGetAUserId(ProjectRoleEnum.REGULATI_ENGINEER.getValue(), projectRelatedPersonnel,studioEngineer);
// if(StringUtils.isNotEmpty(userId)){
// projectLawsInventoryEO.setRegulationOwnerId(userId);
// }
// }
//
// //认证工程师
// if (StringUtils.isEmpty(projectLawsInventoryEO.getHomologationEngineerId())) {
// String userId = ToGetAUserId(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue(), projectRelatedPersonnel,studioEngineer);
// if(StringUtils.isNotEmpty(userId)){
// projectLawsInventoryEO.setHomologationEngineerId(userId);
// }
// }
//
// //项目接口人
// if (StringUtils.isEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) {
// String userId = ToGetAUserId(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), projectRelatedPersonnel,studioEngineer);
// if(StringUtils.isNotEmpty(userId)){
// projectLawsInventoryEO.setEngineeringInterfacePerson(userId);
// }
// }
//设计符合性确认
//发起人角色
@@ -2000,7 +2072,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
} else if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_ISSUE_DRE_MSG.getValue())) {
String dreUserId = jsonObject.getString("dreUserId"); //dre用户id
userIdList.add(dreUserId);
msgContentEN = sysUser.getUsername() + " has rejected the regulation task confirmation of " + serialNumber + " in "+ projectNameInfoEO.getProjectName()
msgContentEN = sysUser.getUsername() + " has assigned the regulation task confirmation of " + serialNumber + " in "+ projectNameInfoEO.getProjectName()
+ ".to you. the due date is " +taskAffirmDueDate+ " Please check and handle it in time.";
feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has rejected the task. Please check and and handle it in time.");
@@ -2171,121 +2243,125 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
for (String id : projectLawsInventoryEO.getIds().split(",")) {
ProjectLawsInventoryEO info = infoList.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0);
ProjectLawsInventoryEO infoCopy = infoListCopy.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0);
StringBuilder contentLogBuilder = new StringBuilder();
StringBuilder enContentLogBuilder = new StringBuilder();
contentLogBuilder.append(info.getSerialNumber() + ":");
enContentLogBuilder.append(infoCopy.getSerialNumber() + ":");
ProjectLawsInventoryEO projectLawsInventoryEOTemp = new ProjectLawsInventoryEO();
projectLawsInventoryEOTemp.setId(id);
//实施类别 implementType
if(StringUtils.isNotBlank(projectLawsInventoryEO.getImplementType())){
if (!info.getImplementType().equals(inputInfoEO.getImplementType()) && !inputInfoEO.getImplementType().equals("")){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TYPE.getName(), info.getImplementType(), inputInfoEO.getImplementType());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TYPE.getEnName(), infoCopy.getImplementType(), inputInfoEO.getImplementType());
}
}
//认证类型 attestationType
if(StringUtils.isNotBlank(projectLawsInventoryEO.getAttestationType())){
if (!info.getAttestationType().equals(inputInfoEO.getAttestationType()) && !inputInfoEO.getAttestationType().equals("")){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_TYPE.getName(), info.getAttestationType(), inputInfoEO.getAttestationType());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_TYPE.getEnName(), infoCopy.getAttestationType(), inputInfoEO.getAttestationType());
}
}
//认证级别 attestationRank
if(StringUtils.isNotBlank(projectLawsInventoryEO.getAttestationRank())){
if (!info.getAttestationRank().equals(inputInfoEO.getAttestationRank()) && !inputInfoEO.getAttestationRank().equals("")){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_RANK.getName(), info.getAttestationRank(), inputInfoEO.getAttestationRank());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_RANK.getEnName(), infoCopy.getAttestationRank(), inputInfoEO.getAttestationRank());
}
}
//责任领域 dutyTerritory
if(StringUtils.isNotBlank(projectLawsInventoryEO.getDutyTerritory())){
if (!info.getDutyTerritory().equals(inputInfoEO.getDutyTerritory())){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.DUTY_TERRITORY.getName(), info.getDutyTerritory(), inputInfoEO.getDutyTerritory());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.DUTY_TERRITORY.getEnName(), infoCopy.getDutyTerritory(), inputInfoEO.getDutyTerritory());
}
}
//在产车实施日期implementTime
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getImplementTime())){
if (info.getImplementTime() == null){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getName(),"",inputInfoEO.getImplementTimeString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getEnName(),"null",inputInfoEO.getImplementTimeString());
}else {
if (!info.getImplementTimeString().equals(inputInfoEO.getImplementTimeString())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getEnName(), infoCopy.getImplementTimeString(), inputInfoEO.getImplementTimeString());
List<ProjectLawsInventoryEO> collect = infoList.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList());
if(collect.size() != 0){
ProjectLawsInventoryEO info = collect.get(0);
ProjectLawsInventoryEO infoCopy = infoListCopy.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0);
StringBuilder contentLogBuilder = new StringBuilder();
StringBuilder enContentLogBuilder = new StringBuilder();
contentLogBuilder.append(info.getSerialNumber() + ":");
enContentLogBuilder.append(infoCopy.getSerialNumber() + ":");
ProjectLawsInventoryEO projectLawsInventoryEOTemp = new ProjectLawsInventoryEO();
projectLawsInventoryEOTemp.setId(id);
//实施类别 implementType
if(StringUtils.isNotBlank(projectLawsInventoryEO.getImplementType())){
if (!info.getImplementType().equals(inputInfoEO.getImplementType()) && !inputInfoEO.getImplementType().equals("")){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TYPE.getName(), info.getImplementType(), inputInfoEO.getImplementType());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TYPE.getEnName(), infoCopy.getImplementType(), inputInfoEO.getImplementType());
}
}
}
//新车型实施日期xin1Che1Xing2Shi2Shi1Ri4Qi1
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1())){
if (info.getXin1Che1Xing2Shi2Shi1Ri4Qi1() == null){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(),"",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(),"null",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String());
}else {
if (!info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String().equals(inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(), infoCopy.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String());
//认证类型 attestationType
if(StringUtils.isNotBlank(projectLawsInventoryEO.getAttestationType())){
if (!info.getAttestationType().equals(inputInfoEO.getAttestationType()) && !inputInfoEO.getAttestationType().equals("")){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_TYPE.getName(), info.getAttestationType(), inputInfoEO.getAttestationType());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_TYPE.getEnName(), infoCopy.getAttestationType(), inputInfoEO.getAttestationType());
}
}
}
//适用地区region
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getRegion())){
if (!info.getRegion().equals(inputInfoEO.getRegion())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.REGION.getName(),info.getRegion(),inputInfoEO.getRegion());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.REGION.getEnName(), infoCopy.getRegion(),inputInfoEO.getRegion());
//认证级别 attestationRank
if(StringUtils.isNotBlank(projectLawsInventoryEO.getAttestationRank())){
if (!info.getAttestationRank().equals(inputInfoEO.getAttestationRank()) && !inputInfoEO.getAttestationRank().equals("")){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_RANK.getName(), info.getAttestationRank(), inputInfoEO.getAttestationRank());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_RANK.getEnName(), infoCopy.getAttestationRank(), inputInfoEO.getAttestationRank());
}
}
//责任领域 dutyTerritory
if(StringUtils.isNotBlank(projectLawsInventoryEO.getDutyTerritory())){
if (!info.getDutyTerritory().equals(inputInfoEO.getDutyTerritory())){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.DUTY_TERRITORY.getName(), info.getDutyTerritory(), inputInfoEO.getDutyTerritory());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.DUTY_TERRITORY.getEnName(), infoCopy.getDutyTerritory(), inputInfoEO.getDutyTerritory());
}
}
//在产车实施日期implementTime
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getImplementTime())){
if (info.getImplementTime() == null){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getName(),"",inputInfoEO.getImplementTimeString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getEnName(),"null",inputInfoEO.getImplementTimeString());
}else {
if (!info.getImplementTimeString().equals(inputInfoEO.getImplementTimeString())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getEnName(), infoCopy.getImplementTimeString(), inputInfoEO.getImplementTimeString());
}
}
}
//新车型实施日期xin1Che1Xing2Shi2Shi1Ri4Qi1
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1())){
if (info.getXin1Che1Xing2Shi2Shi1Ri4Qi1() == null){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(),"",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(),"null",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String());
}else {
if (!info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String().equals(inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(), infoCopy.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String());
}
}
}
//适用地区region
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getRegion())){
if (!info.getRegion().equals(inputInfoEO.getRegion())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.REGION.getName(),info.getRegion(),inputInfoEO.getRegion());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.REGION.getEnName(), infoCopy.getRegion(),inputInfoEO.getRegion());
}
}
//设计符合性确认截止时间
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignDueDate())){
if (info.getDesignDueDate() == null){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName(),"",inputInfoEO.getDesignDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getEnName(),"null",inputInfoEO.getDesignDueDateString());
}else {
if (!info.getDesignDueDateString().equals(inputInfoEO.getDesignDueDateString())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName(), info.getDesignDueDateString(), inputInfoEO.getDesignDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getEnName(), infoCopy.getDesignDueDateString(), inputInfoEO.getDesignDueDateString());
}
}
}
//preHomo确认截止时间
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoDueDate())){
if (info.getVerifyDueDate() == null){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getName(),"",inputInfoEO.getPrehomoDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getEnName(),"null",inputInfoEO.getPrehomoDueDateString());
}else {
if (!info.getPrehomoDueDateString().equals(inputInfoEO.getPrehomoDueDateString())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getName(), info.getPrehomoDueDateString(), inputInfoEO.getPrehomoDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getEnName(), infoCopy.getPrehomoDueDateString(), inputInfoEO.getPrehomoDueDateString());
//设计符合性确认截止时间
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignDueDate())){
if (info.getDesignDueDate() == null){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName(),"",inputInfoEO.getDesignDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getEnName(),"null",inputInfoEO.getDesignDueDateString());
}else {
if (!info.getDesignDueDateString().equals(inputInfoEO.getDesignDueDateString())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName(), info.getDesignDueDateString(), inputInfoEO.getDesignDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getEnName(), infoCopy.getDesignDueDateString(), inputInfoEO.getDesignDueDateString());
}
}
}
}
//验证符合性确认截止时间
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyDueDate())){
if (info.getVerifyDueDate() == null){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getName(),"",inputInfoEO.getVerifyDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getEnName(),"null",inputInfoEO.getVerifyDueDateString());
}else {
if (!info.getVerifyDueDateString().equals(inputInfoEO.getVerifyDueDateString())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getName(), info.getVerifyDueDateString(), inputInfoEO.getVerifyDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getEnName(), infoCopy.getVerifyDueDateString(), inputInfoEO.getVerifyDueDateString());
//preHomo确认截止时间
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoDueDate())){
if (info.getVerifyDueDate() == null){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getName(),"",inputInfoEO.getPrehomoDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getEnName(),"null",inputInfoEO.getPrehomoDueDateString());
}else {
if (!info.getPrehomoDueDateString().equals(inputInfoEO.getPrehomoDueDateString())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getName(), info.getPrehomoDueDateString(), inputInfoEO.getPrehomoDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getEnName(), infoCopy.getPrehomoDueDateString(), inputInfoEO.getPrehomoDueDateString());
}
}
}
}
//处理具体变动消息为空的contentLog
String contentInfoIndexStart = contentLogBuilder.substring(0,contentLogBuilder.lastIndexOf(":"));
String contentInfo= contentLogBuilder.substring(contentInfoIndexStart.length()+1,contentLogBuilder.length());
//验证符合性确认截止时间
if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyDueDate())){
if (info.getVerifyDueDate() == null){
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getName(),"",inputInfoEO.getVerifyDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getEnName(),"null",inputInfoEO.getVerifyDueDateString());
}else {
if (!info.getVerifyDueDateString().equals(inputInfoEO.getVerifyDueDateString())) {
setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getName(), info.getVerifyDueDateString(), inputInfoEO.getVerifyDueDateString());
setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getEnName(), infoCopy.getVerifyDueDateString(), inputInfoEO.getVerifyDueDateString());
}
}
}
//处理具体变动消息为空的contentLog
String contentInfoIndexStart = contentLogBuilder.substring(0,contentLogBuilder.lastIndexOf(":"));
String contentInfo= contentLogBuilder.substring(contentInfoIndexStart.length()+1,contentLogBuilder.length());
String enContentInfoIndexStart = enContentLogBuilder.substring(0,enContentLogBuilder.lastIndexOf(":"));
String enContentInfo= enContentLogBuilder.substring(enContentInfoIndexStart.length()+1,enContentLogBuilder.length());
String enContentInfoIndexStart = enContentLogBuilder.substring(0,enContentLogBuilder.lastIndexOf(":"));
String enContentInfo= enContentLogBuilder.substring(enContentInfoIndexStart.length()+1,enContentLogBuilder.length());
if(StringUtils.isNotBlank(contentInfo) && StringUtils.isNotBlank(enContentInfo)){
contentLog += contentLogBuilder;
enContentLog += enContentLogBuilder ;
if(StringUtils.isNotBlank(contentInfo) && StringUtils.isNotBlank(enContentInfo)){
contentLog += contentLogBuilder;
enContentLog += enContentLogBuilder ;
}
}
}
String contentIndexStart = contentLog.substring(0,contentLog.indexOf(""));
String content= contentLog.substring(contentIndexStart.length()+1,contentLog.length());
@@ -6324,7 +6400,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
}
//相关人员名单中取法规工程师
List<ProjectRelatedPersonnel> projectRelatedPersonnels = projectRelatedPersonnelService.queryPageList(projectLibraryId);
List<ProjectRelatedPersonnel> projectRelatedPersonnels = projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null);
List<String> lawEngineerNameList = new ArrayList<>();
if(projectRelatedPersonnels.size() != 0){
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) {
@@ -641,7 +641,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
int rowIndex = 1;
for (int dataIndex = 0; dataIndex < exportData.size(); dataIndex++) {
Row dataRow = sheet.createRow(rowIndex);
dataRow.createCell(0).setCellValue(exportData.get(dataIndex).get("dutyTerritory").toString());
dataRow.createCell(0).setCellValue(exportData.get(dataIndex).get("dutyTerritoryName").toString());
dataRow.createCell(1).setCellValue(exportData.get(dataIndex).get("amount").toString());
rowIndex ++;
}
@@ -34,7 +34,14 @@ import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -48,7 +55,14 @@ import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
import java.util.stream.Collectors;
/**
@@ -183,26 +197,45 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
* @return
*/
@Override
public List<ProjectRelatedPersonnel> queryPageList(String projectId) {
public List<ProjectRelatedPersonnel> queryPageList(String projectId,
String dutyTerritoryTemp,
String lawEngineer,
String engineeringInterfacePerson,
String certificationEngineer) {
//查询数据
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectId,DictCodeEnum.DUTY_TERRITORY.getValue());
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectId,
DictCodeEnum.DUTY_TERRITORY.getValue(),
dutyTerritoryTemp,
lawEngineer,
engineeringInterfacePerson,
certificationEngineer);
//查询数据里的责任领域
List<String> dutyTerritory = result.stream().map(e -> e.getDutyTerritory()).collect(Collectors.toList());
//查标签内容里的责任领域数据
List<String> sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
//没有数据->新增所有责任领域,查询
if(result.size() != sysDictItemValueList.size()){
if(StringUtils.isBlank(dutyTerritoryTemp)
&& StringUtils.isBlank(lawEngineer)
&& StringUtils.isBlank(engineeringInterfacePerson)
&& StringUtils.isBlank(certificationEngineer)){
if(result.size() != sysDictItemValueList.size()){
//更新相关人员表里的责任领域数据
if (CollectionUtils.isNotEmpty(sysDictItemValueList)) {
for (String sysDictItemValue : sysDictItemValueList) {
if(!dutyTerritory.contains(sysDictItemValue)) {
setDutyTerritoryValue(sysDictItemValue, projectId);
//更新相关人员表里的责任领域数据
if (CollectionUtils.isNotEmpty(sysDictItemValueList)) {
for (String sysDictItemValue : sysDictItemValueList) {
if(!dutyTerritory.contains(sysDictItemValue)) {
setDutyTerritoryValue(sysDictItemValue, projectId);
}
}
}
//重新查询列表
result = projectRelatedPersonnelMapper.queryPageList(projectId,
DictCodeEnum.DUTY_TERRITORY.getValue(),
dutyTerritoryTemp,
lawEngineer,
engineeringInterfacePerson,
certificationEngineer);
}
//重新查询列表
result = projectRelatedPersonnelMapper.queryPageList(projectId,DictCodeEnum.DUTY_TERRITORY.getValue());
}
disposeData(result);
return result;
@@ -456,7 +489,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
records = queryById(id);
}
}else{
records=queryPageList(projectId);
records=queryPageList(projectId,null,null,null,null);
}
//id无值,传全部
disposeDutyTerritory(records,cut);
@@ -1180,4 +1213,25 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
}
@Override
public void setBatch(ProjectRelatedPersonnel projectRelatedPersonnel) {
List<ProjectRelatedPersonnel> projectRelatedPersonnelList = new ArrayList<>();
for (String id : projectRelatedPersonnel.getIds().split(",")) {
ProjectRelatedPersonnel projectRelatedPersonnelTemp = new ProjectRelatedPersonnel();
projectRelatedPersonnelTemp.setId(id);
projectRelatedPersonnelTemp.setUpdateTime(new Date());
if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getLawEngineer())){
projectRelatedPersonnelTemp.setLawEngineer(projectRelatedPersonnel.getLawEngineer());
}
if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getEngineeringInterfacePerson())){
projectRelatedPersonnelTemp.setEngineeringInterfacePerson(projectRelatedPersonnel.getEngineeringInterfacePerson());
}
if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getCertificationEngineer())){
projectRelatedPersonnelTemp.setCertificationEngineer(projectRelatedPersonnel.getCertificationEngineer());
}
projectRelatedPersonnelList.add(projectRelatedPersonnelTemp);
}
this.updateBatchById(projectRelatedPersonnelList);
}
}
@@ -22,6 +22,7 @@ import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum;
import com.jero.modules.wkflow.enums.FlowTypeEnum;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -78,6 +79,9 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
@Autowired
private SysDictItemServiceImpl sysDictItemServiceImpl;
@Autowired
private IProjectTaskInventoryEOService projectTaskInventoryEOService;
@Value(value = "${jero.backUrl}")
private String backUrl;
@@ -278,6 +282,23 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
updateProjectTaskInventoryDetailWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getActiProcInstId,projectTaskInventoryDetailEO.getActiProcInstId());
updateProjectTaskInventoryDetailWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getTaskDefinitionKey,projectTaskInventoryDetailEO.getTaskDefinitionKey());
this.projectTaskInventoryDetailEOMapper.update(projectTaskInventoryDetailEO,updateProjectTaskInventoryDetailWrapper);
}else if(StringUtils.equals(operatorType,OperatorTypeEnum.UPDATE_DRE_TASK_STATUS.getValue())){
}else if(StringUtils.equals(operatorType,OperatorTypeEnum.ADD_TASK_INVENTORY_DETAIL.getValue())){
//添加法规清单明细数据。
JSONArray taskInventoryDetailList = jsonObject.getJSONArray("taskInventoryDetailList");
ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO = null;
for (Object detail : taskInventoryDetailList) {
projectTaskInventoryDetailEO = JSONObject.parseObject(JSONObject.toJSONString(detail),ProjectTaskInventoryDetailEO.class);
// 当前流程 当前用户 的数据删掉 确保唯一。
QueryWrapper<ProjectTaskInventoryDetailEO> deleteWrapper = new QueryWrapper<>();
deleteWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getActiProcInstId,projectTaskInventoryDetailEO.getActiProcInstId());
deleteWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getUserId,projectTaskInventoryDetailEO.getUserId());
deleteWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getFlowType,projectTaskInventoryDetailEO.getFlowType());
projectTaskInventoryDetailEOMapper.delete(deleteWrapper);
projectTaskInventoryDetailEOMapper.insert(projectTaskInventoryDetailEO);
}
}
return new Result<>().success("调用成功!");
@@ -644,20 +665,139 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
String msgContentEN = "";
List<String> userIdList = new ArrayList<>();
String dreUserIds = jsonObject.getString("dreUserIds"); //dre用户id
userIdList.addAll(Arrays.asList(dreUserIds.split(",")));
if(StringUtils.isNotEmpty(dreUserIds)){
userIdList.addAll(Arrays.asList(dreUserIds.split(",")));
}
String taskIds = "";
String actiProcInstId = jsonObject.getString("actiProcInstId");
String projectTaskInventoryId = "";
//String projectLibraryId = "";
//String id = "";
String studioEngineer = projectLibraryBase.getStudioEngineer();
//String serialNumber = "";
String taskKey = "";
boolean isDisplay = true; // 如果是true,则代表进入页面后,可以操作 如果是false 则代表进入页面后 只能查看。
//固定拼接参数
String flowType = "";
String sponsor = "";
String personLiable = "";
String typeOfDeliverables = "";
String deliverableTemplate = "";
String dueDate = "";
String remarks = "";
String projectName = projectNameInfoEO.getProjectName();
String targetMarket = projectLibraryBase.getTargetMarket();
String projectNameId = projectLibraryBase.getProjectNameId();
String primaryKeyId = "";
String personChargeFeedback = "";
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
if (StringUtils.equals(msgType, MsgTypeEnum.DESIGN_ISSUE_DRE_MSG.getValue())) {
taskKey = "dreDispose";
msgContentEN = sysUser.getUsername() + "has assigned the design compliance confirmation process of " + serialNumber + " in "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ " to you. Please check and handle it in time.";
}
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has assigned the task to you. Please check and handle it in time.");
feishuMsgVo.setTaskType("Design Compliance Confirmation");
feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has assigned the task to you. Please check and handle it in time.");
feishuMsgVo.setTaskType("Design Compliance Confirmation");
}else if(StringUtils.equals(msgType, MsgTypeEnum.DESIGN_RETURN_MSG.getValue())){
String designDutyId = jsonObject.getString("designDutyId");//设计符合性流程责任人id
userIdList.add(designDutyId);
taskKey = DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey();
msgContentEN = "The design compliance information of " + serialNumber + " in "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ " you sumitted has been rejected after review. Please check and address it in time.";
feishuMsgVo.setContent("Hello! The compliance information you submitted has been rejected after review. Please check and address it in a timely manner.");
feishuMsgVo.setTaskType("Design Compliance Confirmation");
}else if(StringUtils.equals(msgType, MsgTypeEnum.PREHOMO_RETURN_MSG.getValue())){
String prehomoDutyId = jsonObject.getString("prehomoDutyId");//prehomo流程责任人id
userIdList.add(prehomoDutyId);
taskKey = DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey();
msgContentEN = "The Pre-Homo confirmation of " + serialNumber + " in "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ " you sumitted has been rejected after review. Please check and address it in time.";
feishuMsgVo.setContent("Hello! The compliance information you submitted has been rejected after review. Please check and address it in a timely manner.");
feishuMsgVo.setTaskType("Pre-Homo Confirmation");
}else if(StringUtils.equals(msgType, MsgTypeEnum.VERIFY_RETURN_MSG.getValue())){
String verifyDutyId = jsonObject.getString("verifyDutyId");//验证符合性流程责任人id
userIdList.add(verifyDutyId);
taskKey = DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey();
msgContentEN = "The validation compliance information of " + serialNumber + " in "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ " you sumitted has been rejected after review. Please check and address it in time.";
feishuMsgVo.setContent("Hello! The compliance information you submitted has been rejected after review. Please check and address it in a timely manner.");
feishuMsgVo.setTaskType("Validation Compliance Confirmation");
}
feishuMsgVo.setRegulationNo(serialNumber);
feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket());
/*//根据流程实例id,查询待办id
QueryWrapper<ProjectTaskInventoryDetailEO> detailEOQueryWrapper = new QueryWrapper<>();
detailEOQueryWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getActiProcInstId,actiProcInstId);
detailEOQueryWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getTaskDefinitionKey, taskKey);
List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailEOS = this.projectTaskInventoryDetailEOMapper.selectList(detailEOQueryWrapper);
ProjectTaskInventoryEO projectTaskInventoryEO = null;
if (CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOS)) {
ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO = projectTaskInventoryDetailEOS.get(0);
taskIds = projectTaskInventoryDetailEO.getTaskId();
projectTaskInventoryId = projectTaskInventoryDetailEO.getProjectTaskInventoryId();
primaryKeyId = projectTaskInventoryDetailEO.getId();
projectTaskInventoryEO = this.projectTaskInventoryEOService.getOne(
new QueryWrapper<ProjectTaskInventoryEO>().lambda().eq(ProjectTaskInventoryEO::getId, projectTaskInventoryId)
);
}
if(StringUtils.equals(msgType, MsgTypeEnum.DESIGN_ISSUE_DRE_MSG.getValue())
|| StringUtils.equals(msgType, MsgTypeEnum.DESIGN_RETURN_MSG.getValue())){
flowType = FlowTypeEnum.SJFHXSHLC.getValue();
sponsor = "designInitiatorName";
personLiable = "designDutyName";
typeOfDeliverables = "designDeliverableTypeName";
deliverableTemplate = "designDeliverableTemplate";
dueDate = "designDueDate";
remarks = "designRemark";
personChargeFeedback = projectTaskInventoryEO.getDesignPersonChargeFeedback();
}else if(StringUtils.equals(msgType, MsgTypeEnum.PREHOMO_RETURN_MSG.getValue())){
flowType = FlowTypeEnum.PREHOMOQRLC.getValue();
sponsor = "prehomoInitiatorName";
personLiable = "prehomoDutyName";
typeOfDeliverables = "prehomoDeliverableTypeName";
deliverableTemplate = "prehomoDeliverableTemplate";
dueDate = "prehomoDueDate";
remarks = "prehomoRemark";
personChargeFeedback = projectTaskInventoryEO.getPrehomoPersonChargeFeedback();
}else if(StringUtils.equals(msgType, MsgTypeEnum.VERIFY_RETURN_MSG.getValue())){
flowType = FlowTypeEnum.YZFHXSCLC.getValue();
sponsor = "verifyInitiatorName";
personLiable = "verifyDutyName";
typeOfDeliverables = "verifyDeliverableTypeName";
deliverableTemplate = "verifyDeliverableTemplate";
dueDate = "verifyDueDate";
remarks = "verifyRemark";
personChargeFeedback = projectTaskInventoryEO.getVerifyPersonChargeFeedback();
}*/
if(CollectionUtils.isNotEmpty(userIdList) && StringUtils.isNotEmpty(msgContentEN)){
//飞书跳转链接
@@ -675,6 +815,57 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
+ projectYearNameInfoEO.getYearName()
+ projectLibraryBase.getTargetMarket()
+ "'>" + "Jump link" + "</a>";
//飞书跳转链接 拼接跳转至任务详情页参数
/*String hrefFeishu = backUrl
+ JumpLinkEnum.COMPLIANCE_PROCESS_DETAIL_LINK.getLink()
+ "?taskIds=" + taskIds
+ "&actiProcInstId=" + actiProcInstId
+ "&projectTaskInventoryId=" + projectTaskInventoryId
+ "&projectLibraryId=" + projectLibraryId
+ "&id=" + projectLibraryId
+ "&studioEngineer=" + studioEngineer
+ "&serialNumber=" + serialNumber
+ "&TaskKey=" + taskKey
+ "&isDisplay=" + isDisplay
+ "&flowType=" + flowType
+ "&Sponsor=" + sponsor
+ "&personLiable=" + personLiable
+ "&typeOfDeliverables=" + typeOfDeliverables
+ "&deliverableTemplate=" + deliverableTemplate
+ "&DueDate=" + dueDate
+ "&remarks=" + remarks
+ "&projectName=" + projectName
+ "&targetMarket=" + targetMarket
+ "&projectNameId=" + projectNameId
+ "&primaryKeyId=" + primaryKeyId
+ "&PersonChargeFeedback=" + personChargeFeedback;
//系统内部跳转链接 拼接跳转至任务详情页参数
String href = "<a href='"
+ JumpLinkEnum.COMPLIANCE_PROCESS_DETAIL_LINK.getLink()
+ "?taskIds=" + taskIds
+ "&actiProcInstId=" + actiProcInstId
+ "&projectTaskInventoryId=" + projectTaskInventoryId
+ "&projectLibraryId=" + projectLibraryId
+ "&id=" + projectLibraryId
+ "&studioEngineer=" + projectLibraryBase.getStudioEngineer()
+ "&serialNumber=" + serialNumber
+ "&TaskKey=" + taskKey
+ "&isDisplay=" + isDisplay
+ "&flowType=" + flowType
+ "&Sponsor=" + sponsor
+ "&personLiable=" + personLiable
+ "&typeOfDeliverables=" + typeOfDeliverables
+ "&deliverableTemplate=" + deliverableTemplate
+ "&DueDate=" + dueDate
+ "&remarks=" + remarks
+ "&projectName=" + projectName
+ "&targetMarket=" + targetMarket
+ "&projectNameId=" + projectNameId
+ "&primaryKeyId=" + primaryKeyId
+ "&PersonChargeFeedback=" + personChargeFeedback
+ "'>" + "Jump link" + "</a>";*/
String contentInfo = msgContentEN + " " + href;
Map<String,Object> sendMessageMap = new HashMap<>();
sendMessageMap.put("hrefFeishu",hrefFeishu);
@@ -151,7 +151,7 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl<Proje
// 飞书消息封装
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
feishuMsgVo.setContent("Hello! " + currentUser.getUsername() + " has reply 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.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBaseInfo.getTargetMarket());
feishuMsgVo.setInitiator(currentUser.getUsername());
@@ -160,21 +160,21 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl<Proje
String msgContentEN = "";
String flowType = projectTaskInventoryFeedbackEO.getFlowType();
if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){
msgContentEN = currentUser.getUsername() + " has reply to your engineering deliverable information of "
msgContentEN = currentUser.getUsername() + " has replied to your engineering deliverable information of "
+ projectLawsInventoryEO.getSerialNumber() + " in "
+ projectNameInfoEO.getProjectName() + " for design compliance confirmation. Please check and address it in time.";
feishuMsgVo.setTaskType("Design Compliance Confirmation");
feishuMsgVo.setDueDate(sdf.format(projectLawsInventoryEO.getDesignDueDate()));
}else if(StringUtils.equals(flowType,FlowTypeEnum.PREHOMOQRLC.getValue())){
msgContentEN = currentUser.getUsername() + " has reply to your engineering deliverable information of "
msgContentEN = currentUser.getUsername() + " has replied to your engineering deliverable information of "
+ projectLawsInventoryEO.getSerialNumber() + " in "
+ projectNameInfoEO.getProjectName() + " for Pre-Homo compliance confirmation. Please check and address it in time.";
feishuMsgVo.setTaskType("Pre-Homo Confirmation");
feishuMsgVo.setDueDate(sdf.format(projectLawsInventoryEO.getPrehomoDueDate()));
}else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){
msgContentEN = currentUser.getUsername() + " has reply to your engineering deliverable information of "
msgContentEN = currentUser.getUsername() + " has replied to your engineering deliverable information of "
+ projectLawsInventoryEO.getSerialNumber() + " in "
+ projectNameInfoEO.getProjectName() + " for validation compliance confirmation. Please check and address it in time.";
@@ -69,7 +69,7 @@ public class SendMessageUtils {
String contentInfo = (String) sendMessageMap.get("contentInfo");
//系统消息
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgContent, contentInfo);
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, msgContent, contentInfo,messageType);
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(idTemp, idTemp);
@@ -89,12 +89,12 @@ public class SendMessageUtils {
}
@NotNull
private static SysAnnouncement getSysAnnouncement(List<String> userIdList, String content, String contentInfo) {
private static SysAnnouncement getSysAnnouncement(List<String> userIdList, String content, String contentInfo, MessageTypeEnum messageType) {
SysAnnouncement sysAnnouncement = new SysAnnouncement();
sysAnnouncement.setDelFlag("0");
sysAnnouncement.setSendStatus("0");
sysAnnouncement.setSendTime(new Date());
sysAnnouncement.setMsgCategory(MessageTypeEnum.READ.getValue());//消息类型
sysAnnouncement.setMsgCategory(messageType.getValue());//消息类型
sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR);//指定用户
sysAnnouncement.setMsgContent(content);
sysAnnouncement.setMsgContentInfo(contentInfo);
@@ -333,7 +333,7 @@ public class LawsWarnService {
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.";
//封装消息的实体类
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, content, contentInfo);
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, content, contentInfo,MessageTypeEnum.PUSH.getValue());
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
bussDocumentLibraryEOService.sendWebsocket(StringUtils.join(thirdIdList, ","), contentInfo);
//飞书
@@ -150,7 +150,7 @@ public class TimedTaskWarn implements Job {
private void sendMessage(String content,String contentInfo,String contentFeiShu, String url, List<String> userIdList, List<String> thirdIdList) {
//站内消息
//封装消息的实体类
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, content, contentInfo);
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, content, contentInfo,MessageTypeEnum.WARN.getValue());
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
bussDocumentLibraryEOService.sendWebsocket(StringUtils.join(userIdList, ","), content);
+1
View File
@@ -1072,4 +1072,5 @@ module.exports = {
theProjectContactEmpty:'The project contact person of cannot be empty',
pleaseSelectinitiatedOrRejected:'Please select the data whose list confirmation status is not initiated or rejected',
TheEngineerAndCertification:'The regulatory engineer and Certification Engineer of cannot be empty',
theResponsiblePersonAndDeadlineClank:'The responsible person and deadline of cannot be blank',
}
+2 -1
View File
@@ -693,7 +693,7 @@ module.exports = {
confirmOverrule: '确认驳回',
The: '第',
submitted: '条数据已提交不能重复提交',
incorrectsubmitted: '条数据状态有误只能提交状态为待确认的数据',
incorrectsubmitted: '状态有误只能提交状态为待确认的数据',
basicInformationOfParameters: '项目基本信息',
regulatoryCertificationTaskPlan: '法规/认证任务计划',
bringInRelevantPersonnel: '带入相关人员',
@@ -1076,4 +1076,5 @@ module.exports = {
newNiONumber: 'NIO编号',
English:'英文',
requiredParametersEmpty:'必填参数不能为空',
theResponsiblePersonAndDeadlineClank:'的责任人截止时间不能为空',
}
@@ -30,7 +30,7 @@
<div class="title-text">
<span class="title-text-text" :title="$t('certificationType')">{{$t('certificationType')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-form-model-item class="itemModel-multi">
<j-multi-select-tag class="box-input" v-model="formInline.attestationType"
:placeholder="$t('PleaseSelect')+$t('certificationType')"
:type="'select'"
@@ -50,7 +50,7 @@
<div class="title-text">
<span class="title-text-text" :title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-form-model-item class="itemModel-multi">
<j-multi-select-tag class="box-input" v-model="formInline.attestationRank"
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
:type="'select'"
@@ -68,12 +68,16 @@
<div class="title-text">
<span class="title-text-text" :title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" dictCode="duty_territory"/>
<a-form-model-item class="itemModel-multi">
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"-->
<!-- @input="handleInput('dutyTerritory')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" dictCode="duty_territory"/>-->
</a-form-model-item>
</div>
</a-col>
@@ -116,7 +120,7 @@
<span class="title-text-text"
:title="$t('technicalField')">{{$t('technicalField')}}</span>
</div>
<a-form-model-item class="itemModel" prop="technologyTerritory">
<a-form-model-item class="itemModel-multi" prop="technologyTerritory">
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.technologyTerritory"
@@ -292,6 +292,40 @@
<div class="header-text">
&nbsp;{{$t('confirmationOfDesignConformity')}}
</div>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('Sponsor')">{{$t('Sponsor')}}</span>
</div>
<a-form-model-item class="itemModel" prop="designInitiator">
<j-dict-select-tag class="box-input" v-model="formInline.designInitiator"
:disabled="disabled"
@input="handleInput('designInitiator')"
:placeholder="$t('PleaseSelect')+$t('Sponsor')"
:type="'select'"
:triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('personLiable')">{{$t('personLiable')}}</span>
</div>
<a-form-model-item class="itemModel" prop="designDuty">
<j-dict-select-tag class="box-input" v-model="formInline.designDuty"
:disabled="disabled"
@input="handleInput('designDuty')"
:placeholder="$t('PleaseSelect')+$t('personLiable')"
:type="'select'"
:triggerChange="false" :dictCode="'ze2_ren4_ren2'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
@@ -337,40 +371,6 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('Sponsor')">{{$t('Sponsor')}}</span>
</div>
<a-form-model-item class="itemModel" prop="designInitiator">
<j-dict-select-tag class="box-input" v-model="formInline.designInitiator"
:disabled="disabled"
@input="handleInput('designInitiator')"
:placeholder="$t('PleaseSelect')+$t('Sponsor')"
:type="'select'"
:triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('personLiable')">{{$t('personLiable')}}</span>
</div>
<a-form-model-item class="itemModel" prop="designDuty">
<j-dict-select-tag class="box-input" v-model="formInline.designDuty"
:disabled="disabled"
@input="handleInput('designDuty')"
:placeholder="$t('PleaseSelect')+$t('personLiable')"
:type="'select'"
:triggerChange="false" :dictCode="'ze2_ren4_ren2'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
@@ -390,6 +390,40 @@
<div class="header-text">
&nbsp;{{$t('PrehomoConfirmation')}}
</div>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('Sponsor')">{{$t('Sponsor')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoInitiator">
<j-dict-select-tag class="box-input" v-model="formInline.prehomoInitiator"
:disabled="disabled"
@input="handleInput('prehomoInitiator')"
:placeholder="$t('PleaseSelect')+$t('Sponsor')"
:type="'select'"
:triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('personLiable')">{{$t('personLiable')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoDuty">
<j-dict-select-tag class="box-input" v-model="formInline.prehomoDuty"
:disabled="disabled"
@input="handleInput('prehomoDuty')"
:placeholder="$t('PleaseSelect')+$t('personLiable')"
:type="'select'"
:triggerChange="false" :dictCode="'ze2_ren4_ren2'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
@@ -436,40 +470,6 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('Sponsor')">{{$t('Sponsor')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoInitiator">
<j-dict-select-tag class="box-input" v-model="formInline.prehomoInitiator"
:disabled="disabled"
@input="handleInput('prehomoInitiator')"
:placeholder="$t('PleaseSelect')+$t('Sponsor')"
:type="'select'"
:triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('personLiable')">{{$t('personLiable')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoDuty">
<j-dict-select-tag class="box-input" v-model="formInline.prehomoDuty"
:disabled="disabled"
@input="handleInput('prehomoDuty')"
:placeholder="$t('PleaseSelect')+$t('personLiable')"
:type="'select'"
:triggerChange="false" :dictCode="'ze2_ren4_ren2'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
@@ -489,6 +489,40 @@
<div class="header-text">
&nbsp;{{$t('verificationAndConformityconfirmation')}}
</div>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('Sponsor')">{{$t('Sponsor')}}</span>
</div>
<a-form-model-item class="itemModel" prop="verifyInitiator">
<j-dict-select-tag class="box-input" v-model="formInline.verifyInitiator"
:disabled="disabled"
@input="handleInput('verifyInitiator')"
:placeholder="$t('PleaseSelect')+$t('Sponsor')"
:type="'select'"
:triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('personLiable')">{{$t('personLiable')}}</span>
</div>
<a-form-model-item class="itemModel" prop="verifyDuty">
<j-dict-select-tag class="box-input" v-model="formInline.verifyDuty"
:disabled="disabled"
@input="handleInput('verifyDuty')"
:placeholder="$t('PleaseSelect')+$t('personLiable')"
:type="'select'"
:triggerChange="false" :dictCode="'ze2_ren4_ren2'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
@@ -534,40 +568,6 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('Sponsor')">{{$t('Sponsor')}}</span>
</div>
<a-form-model-item class="itemModel" prop="verifyInitiator">
<j-dict-select-tag class="box-input" v-model="formInline.verifyInitiator"
:disabled="disabled"
@input="handleInput('verifyInitiator')"
:placeholder="$t('PleaseSelect')+$t('Sponsor')"
:type="'select'"
:triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('personLiable')">{{$t('personLiable')}}</span>
</div>
<a-form-model-item class="itemModel" prop="verifyDuty">
<j-dict-select-tag class="box-input" v-model="formInline.verifyDuty"
:disabled="disabled"
@input="handleInput('verifyDuty')"
:placeholder="$t('PleaseSelect')+$t('personLiable')"
:type="'select'"
:triggerChange="false" :dictCode="'ze2_ren4_ren2'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
@@ -0,0 +1,302 @@
<template>
<div>
<div class="box-title-text" v-if="!isInput">
<a-input class="box-input" :value="value" @input="indexclick($event)"
:disabled="true"
:title="value"
:placeholder="$t('PleaseSelect')+query.db_field_txt"/>
<a-button type="primary" class="button-box" @click="standardClick">
{{this.$t('PersonnelSelection')}}
</a-button>
<a-button type="primary" v-if='isDelete' class="button-box" @click="standardDelete">
{{this.$t('delete')}}
</a-button>
</div>
<div class="box-title-text" v-if="isInput">
<a-input :class="{'box-input':!isClass}" :value="value"
readonly
@click.native="standardClick"
:placeholder="$t('PleaseSelect')+query.db_field_txt"/>
</div>
<a-drawer
:title="$t('PersonnelSelection')"
:maskClosable="false"
:width="600"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-input-search style="margin-bottom: 8px" :placeholder="$t('NodeQuickLookup')"
v-model="searchModel" @search="onSearch"/>
<div class="drawer-content">
<a-tree
style="margin-bottom: 60px;height: 600px"
v-if="treeVisible"
checkable
checkStrictly
:loading="loading"
:tree-data="gData"
@check="onCheck"
@expand="onExpand"
v-model:checkedKeys="defaultCheckedKeys"
:defaultExpandedKeys="defaultExpandedKeys"
>
</a-tree>
</div>
<div class="drawer-bootom-button">
<a-button @click="handleCancel" type="danger" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit" type="primary">{{$t('submit')}}</a-button>
</div>
</a-drawer>
</div>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
export default {
name: 'index',
props: ['query', 'value', 'personneQuery', 'isSingleChoice', 'isInput', 'isClass','isDelete','distributionEngineerList'],
data() {
return {
loading: true,
gData: [],
autoExpandParent: true,
expandedKeys: [],
visible: false,
treeVisible: false,
confirmLoading: false,
departId: '',
selectedKey: [],
userIds: [],
searchModel: '',
defaultExpandedKeys: [],
defaultCheckedKeys: [],
content: []
}
},
mounted() {
},
methods: {
standardClick() {
this.treeVisible = false
this.departId = ''
this.searchModel = ''
this.userIds = []
this.userName = []
this.queryDepartUserTreeList()
this.visible = true
},
standardDelete(){
this.$emit('input', null)
this.$forceUpdate()
this.$emit('deleteData',this.query.db_field_name)
},
// onSelect(selectedKeys, info) {
// console.log(selectedKeys)
// this.selectedKey = selectedKeys
// },
onCheck(checkedKeys, info) {
console.log(checkedKeys)
this.userIds = checkedKeys.checked
this.userName = []
if (info.checkedNodes && info.checkedNodes.length > 0) {
info.checkedNodes.forEach(res => {
if (res.data.props.dataRef.key) {
this.content.push({
id: res.data.props.dataRef.key,
title: res.data.props.dataRef.title
})
} else {
this.content.push({
id: res.data.props.id,
title: res.data.props.title
})
}
})
}
if (this.content && this.content.length > 0) {
for (let i = 0; i < this.content.length; i++) {
for (let j = i + 1; j < this.content.length; j++) {
if (this.content[i].id == this.content[j].id) {
this.content.splice(j, 1)
j--
}
}
}
this.userIds.forEach(res => {
this.content.forEach(val => {
if (res == val.id) {
this.userName.push(val.title)
}
})
})
}
},
handleCancel() {
this.visible = false
this.treeVisible = false
},
handleSubmit() {
// if (this.userIds && this.userIds.length > 0) {
if (this.isSingleChoice) {
if (this.userIds.length > 1) {
this.$message.warning(this.$t('onlyOnePersonCanBeSelected'))
return
}
}
let userIds = JSON.parse(JSON.stringify(this.userIds))
let userName = JSON.parse(JSON.stringify(this.userName))
function noRepeat1(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
return arr;
}
if (this.distributionEngineerList && this.distributionEngineerList.length > 0){
this.distributionEngineerList.forEach(res=>{
userIds.shift(res.userId)
userName.shift(res.name)
})
}
userIds = noRepeat1(userIds)
userName = noRepeat1(userName)
this.$emit('input', userName.join(','))
this.$emit('change', this.query.db_field_name, userIds.join(','),this.query.subscript)
this.visible = false
this.treeVisible = false
// } else {
// this.$message.warning(this.$t('pleaseSelectPersonFirst'))
// }
},
indexclick(event) {
this.$emit('input', event.target.value)
this.departId = ''
this.searchModel = ''
this.userIds = []
this.userName = []
this.defaultCheckedKeys = []
},
onSearch(e) {
this.gData = []
this.departId = ''
this.visibleTree = false
if (e) {
this.getUserAndDepart()
} else {
this.queryDepartUserTreeList()
}
},
getUserAndDepart() {
getAction('sys/user/getUserAndDepart', { name: this.searchModel }).then((res) => {
if (res){
this.gData = res.filter(ele => ele.flag === 'DEPART');
} else {
this.gData = []
}
this.visibleTree = true
})
},
onExpand(selectedKeys, val) {
if (this.searchModel == '' || !this.searchModel) {
if (val.expanded) {
if (this.departId == val.node.value) {
} else {
this.departId = val.node.value
this.queryDepartUserTreeList()
}
}
}
},
queryDepartUserTreeList() {
let gData = JSON.parse(JSON.stringify(this.gData))
if (gData && gData.length > 0) {
gData = JSON.stringify(gData)
} else {
gData = ''
}
this.confirmLoading = true
postAction('sys/user/queryDepartUserTreeList', {
departId: this.departId,
json: gData,
flag: '1'
}).then((res) => {
this.confirmLoading = false
if (res.success) {
this.gData = res.result
this.defaultExpandedKeys = [this.departId]
if (this.userName && this.userName.length == 0) {
if (this.personneQuery[this.query.db_field_name + 'Name']) {
this.userName = this.personneQuery[this.query.db_field_name + 'Name'].split(',')
} else if (this.personneQuery[this.query.db_field_name]) {
this.userName = this.personneQuery[this.query.db_field_name].split(',')
} else {
this.userName = []
}
}
if (this.userIds && this.userIds.length == 0) {
if (this.personneQuery[this.query.db_field_name + '_id']) {
this.userIds = this.personneQuery[this.query.db_field_name + '_id'].split(',')
} else if (this.personneQuery[this.query.db_field_name]) {
this.userIds = this.personneQuery[this.query.db_field_name].split(',')
} else {
this.userIds = []
}
}
this.defaultCheckedKeys = this.userIds
this.treeVisible = true
} else {
this.gData = []
}
})
}
}
}
</script>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.button-box {
margin-left: 10px;
height: 38px;
line-height: 38px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
width: 100%;
z-index: 100;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
.drawer-content {
height: calc(100% - 60px);
overflow: auto;
}
</style>
@@ -99,6 +99,7 @@
<PersonnelSelection
:query="{db_field_name:'userId',db_field_txt:$t('engineer')}"
:personneQuery="formInline"
:distributionEngineerList="distributionEngineerList"
@change="PersonnelSelectionChange"
v-model="formInline.userName"/>
</a-form-model-item>
@@ -307,7 +308,7 @@
</template>
<script>
import PersonnelSelection from '@/components/PersonnelSelection/index'
import PersonnelSelection from './PersonnelSelection/index'
import { getAction, postAction, putAction, deleteAction } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file'
import viewFileModel from '@/components/viewFileModel/index'
@@ -499,6 +500,13 @@
} else if (this.$route.query.flowType == 4) {
msgType = 'verifyIssueDreMsg'
}
for (let i = 0; i < this.dataSourceTable.length; i++) {
for (let j = 0; j < this.distributionEngineerList.length; j++) {
if (this.dataSourceTable[i].userId == this.distributionEngineerList[j].userId) {
this.distributionEngineerList[j].isSend = '1'
}
}
}
let query = {
status: 'NotDone',
actiProcInstId: this.$route.query.actiProcInstId,
@@ -508,16 +516,17 @@
msgType: msgType,
distributionEngineerList: this.distributionEngineerList
}
this.confirmLoading = true
postAction(this.url.DetailEOAdd, query).then((res) => {
if (res.success) {
this.confirmLoading = false
this.getList()
this.visible = false
this.$message.success(this.$t('OperationSuccessful'))
} else {
this.confirmLoading = false
this.$message.warning(res.message)
}
if (res.success) {
this.confirmLoading = false
this.getList()
this.visible = false
this.$message.success(this.$t('OperationSuccessful'))
} else {
this.confirmLoading = false
this.$message.warning(res.message)
}
})
},
feedbackData(url, Action) {
@@ -137,36 +137,42 @@
},
mounted() {
this.dataSource = []
this.dataSource.push({
ProcessType: this.$t('designComplianceReview'),
InitiatorName: this.standardContentListQuery.designInitiatorName,
DutyName: this.standardContentListQuery.designDutyName,
DueDate: this.standardContentListQuery.designDueDate,
DeliverableType: this.standardContentListQuery.designDeliverableTypeName,
DeliverableTemplate: this.standardContentListQuery.designDeliverableTemplate,
DeliverableTemplateName: this.standardContentListQuery.designDeliverableTemplateName,
remark: this.standardContentListQuery.designRemark
})
this.dataSource.push({
ProcessType: this.$t('preHomeConfirmation'),
InitiatorName: this.standardContentListQuery.prehomoInitiatorName,
DutyName: this.standardContentListQuery.prehomoDutyName,
DueDate: this.standardContentListQuery.prehomoDueDate,
DeliverableType: this.standardContentListQuery.prehomoDeliverableTypeName,
DeliverableTemplate: this.standardContentListQuery.prehomoDeliverableTemplate,
DeliverableTemplateName: this.standardContentListQuery.prehomoDeliverableTemplateName,
remark: this.standardContentListQuery.prehomoRemark
})
this.dataSource.push({
ProcessType: this.$t('verificationComplianceReview'),
InitiatorName: this.standardContentListQuery.verifyInitiatorName,
DutyName: this.standardContentListQuery.verifyDutyName,
DueDate: this.standardContentListQuery.verifyDueDate,
DeliverableType: this.standardContentListQuery.verifyDeliverableTypeName,
DeliverableTemplate: this.standardContentListQuery.verifyDeliverableTemplate,
DeliverableTemplateName: this.standardContentListQuery.verifyDeliverableTemplateName,
remark: this.standardContentListQuery.verifyRemark
})
if (this.standardContentListQuery.designDeliverableTypeName){
this.dataSource.push({
ProcessType: this.$t('designComplianceReview'),
InitiatorName: this.standardContentListQuery.designInitiatorName,
DutyName: this.standardContentListQuery.designDutyName,
DueDate: this.standardContentListQuery.designDueDate,
DeliverableType: this.standardContentListQuery.designDeliverableTypeName,
DeliverableTemplate: this.standardContentListQuery.designDeliverableTemplate,
DeliverableTemplateName: this.standardContentListQuery.designDeliverableTemplateName,
remark: this.standardContentListQuery.designRemark
})
}
if (this.standardContentListQuery.prehomoDeliverableTypeName){
this.dataSource.push({
ProcessType: this.$t('preHomeConfirmation'),
InitiatorName: this.standardContentListQuery.prehomoInitiatorName,
DutyName: this.standardContentListQuery.prehomoDutyName,
DueDate: this.standardContentListQuery.prehomoDueDate,
DeliverableType: this.standardContentListQuery.prehomoDeliverableTypeName,
DeliverableTemplate: this.standardContentListQuery.prehomoDeliverableTemplate,
DeliverableTemplateName: this.standardContentListQuery.prehomoDeliverableTemplateName,
remark: this.standardContentListQuery.prehomoRemark
})
}
if (this.standardContentListQuery.verifyDeliverableTypeName){
this.dataSource.push({
ProcessType: this.$t('verificationComplianceReview'),
InitiatorName: this.standardContentListQuery.verifyInitiatorName,
DutyName: this.standardContentListQuery.verifyDutyName,
DueDate: this.standardContentListQuery.verifyDueDate,
DeliverableType: this.standardContentListQuery.verifyDeliverableTypeName,
DeliverableTemplate: this.standardContentListQuery.verifyDeliverableTemplate,
DeliverableTemplateName: this.standardContentListQuery.verifyDeliverableTemplateName,
remark: this.standardContentListQuery.verifyRemark
})
}
},
methods: {
...mapGetters(['userInfo']),
@@ -55,8 +55,8 @@
>
<div slot="standardInformation" slot-scope="text,result" class="box-left">
<div class="content">
<a class="box-content-a">{{result.serialNumber}}</a><br/>
<a>{{result.title}}</a>
<a class="box-content-a" :title="result.serialNumber">{{result.serialNumber}}</a>
<a class="box-content-buttom" :title="result.title">{{result.title}}</a>
</div>
</div>
<div slot="areaOfResponsibility" slot-scope="text,result" class="box-left">
@@ -512,10 +512,20 @@
}
.box-content-a {
margin-bottom: 8px;
display: inline-block;
text-align: left;
margin-bottom: 8px;
font-weight: 400;
display: -webkit-box;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all
}
.box-content-index {
@@ -597,7 +607,18 @@
.box-content-cou {
cursor: pointer;
}
.box-content-buttom{
width: 100%;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all
}
</style>
<style>
.box-input .ant-select-selection {
@@ -323,54 +323,6 @@
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel" prop="typeOfDeliverables">
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.designDeliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.designDeliverableType"-->
<!-- @input="handleInput('designDeliverableType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'deliverable_template'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('deliverableTemplate')">{{$t('deliverableTemplate')}}</span>
</div>
<a-form-model-item class="itemModel" prop="designDeliverableTemplate">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('designDeliverableTemplate')">
{{ (formInline.designDeliverableTemplate === 'null' || formInline.designDeliverableTemplate === '' ||
formInline.designDeliverableTemplate == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
@@ -459,6 +411,54 @@
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel" prop="typeOfDeliverables">
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.designDeliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.designDeliverableType"-->
<!-- @input="handleInput('designDeliverableType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'deliverable_template'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('deliverableTemplate')">{{$t('deliverableTemplate')}}</span>
</div>
<a-form-model-item class="itemModel" prop="designDeliverableTemplate">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('designDeliverableTemplate')">
{{ (formInline.designDeliverableTemplate === 'null' || formInline.designDeliverableTemplate === '' ||
formInline.designDeliverableTemplate == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="24">
<div class="box-title-text">
@@ -486,56 +486,6 @@
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoDeliverableType">
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.prehomoDeliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.prehomoDeliverableType"-->
<!-- :disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.prehomoDeliverableType ? true : false"-->
<!-- @input="handleInput('prehomoDeliverableType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'deliverable_template'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('deliverableTemplate')">{{$t('deliverableTemplate')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoDeliverableTemplate">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('prehomoDeliverableTemplate')">
{{ (formInline.prehomoDeliverableTemplate === 'null' || formInline.prehomoDeliverableTemplate === ''
||
formInline.prehomoDeliverableTemplate == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
@@ -624,6 +574,56 @@
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoDeliverableType">
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.prehomoDeliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.prehomoDeliverableType"-->
<!-- :disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.prehomoDeliverableType ? true : false"-->
<!-- @input="handleInput('prehomoDeliverableType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'deliverable_template'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('deliverableTemplate')">{{$t('deliverableTemplate')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoDeliverableTemplate">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('prehomoDeliverableTemplate')">
{{ (formInline.prehomoDeliverableTemplate === 'null' || formInline.prehomoDeliverableTemplate === ''
||
formInline.prehomoDeliverableTemplate == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="24">
<div class="box-title-text">
@@ -648,55 +648,6 @@
&nbsp;{{$t('verificationAndConformityconfirmation')}}
</div>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel" prop="verifyDeliverableType">
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.verifyDeliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.verifyDeliverableType"-->
<!-- :disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.verifyDeliverableType ? true : false"-->
<!-- @input="handleInput('verifyDeliverableType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'deliverable_template'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('deliverableTemplate')">{{$t('deliverableTemplate')}}</span>
</div>
<a-form-model-item class="itemModel" prop="verifyDeliverableTemplate">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('verifyDeliverableTemplate')">
{{ (formInline.verifyDeliverableTemplate === 'null' || formInline.verifyDeliverableTemplate === '' ||
formInline.verifyDeliverableTemplate == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&
@@ -788,6 +739,55 @@
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel" prop="verifyDeliverableType">
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.verifyDeliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.verifyDeliverableType"-->
<!-- :disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.verifyDeliverableType ? true : false"-->
<!-- @input="handleInput('verifyDeliverableType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'deliverable_template'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('deliverableTemplate')">{{$t('deliverableTemplate')}}</span>
</div>
<a-form-model-item class="itemModel" prop="verifyDeliverableTemplate">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('verifyDeliverableTemplate')">
{{ (formInline.verifyDeliverableTemplate === 'null' || formInline.verifyDeliverableTemplate === '' ||
formInline.verifyDeliverableTemplate == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="24">
<div class="box-title-text">
@@ -901,7 +901,9 @@
]
},
detailedSuccessList: [],
detailedWarningList: []
detailedWarningList: [],
rowKeysSuccessList:[],
rowKeysWarningList:[],
}
},
@@ -1355,27 +1357,50 @@
let isTrue = true
this.detailedSuccessList = []
this.detailedWarningList = []
let dataSource = []
for (let i = 0; i < this.dataSource.length; i++) {
for (let j = 0; j < selectedRowKeys.length; j++) {
if (this.dataSource[i].id == selectedRowKeys[j]) {
if (this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'Rejected') {
if (this.dataSource[i].homologationEngineerId && this.dataSource[i].regulationOwnerId) {
this.detailedSuccessList.push(this.dataSource[i])
} else {
this.detailedWarningList.push( < div > { this.dataSource[i].serialNumber + this.$t('TheEngineerAndCertification') } < /div>)
// this.$message.warning(this.dataSource[i].serialNumber + this.$t('TheEngineerAndCertification'))
// isTrue = false
// return
}
} else {
this.detailedWarningList.push( < div > {this.dataSource[i].serialNumber + ',' + this.$t('pleaseSelectinitiatedOrRejected')} < /div>)
// this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseSelectinitiatedOrRejected'))
// isTrue = false
// return
}
dataSource.push(this.dataSource[i])
}
}
}
for (let i = 0; i < dataSource.length; i++) {
if (dataSource[i].inventoryAffirmStatus == 'Not started' || dataSource[i].inventoryAffirmStatus == 'Rejected') {
if (dataSource[i].homologationEngineerId && dataSource[i].regulationOwnerId) {
if (dataSource[i].designDeliverableType){
if (!dataSource[i].designInitiatorId){
this.detailedWarningList.push( < div > { dataSource[i].serialNumber + ','+this.$t('designComplianceReview')+ this.$t('Sponsor')+this.$t('cannotEmpty') } < /div>)
continue
}
}
if (dataSource[i].prehomoDeliverableType){
if (!dataSource[i].prehomoInitiatorId){
this.detailedWarningList.push( < div > { dataSource[i].serialNumber + ','+this.$t('preHomeConfirmation')+ this.$t('Sponsor')+this.$t('cannotEmpty') } < /div>)
continue
}
}
if (dataSource[i].verifyDeliverableType){
if (!dataSource[i].verifyInitiatorId){
this.detailedWarningList.push( < div > { dataSource[i].serialNumber + ','+this.$t('verificationComplianceReview')+ this.$t('Sponsor')+this.$t('cannotEmpty') } < /div>)
continue
}
}
this.detailedSuccessList.push(dataSource[i])
} else {
this.detailedWarningList.push( < div > { dataSource[i].serialNumber + this.$t('TheEngineerAndCertification') } < /div>)
// this.$message.warning(this.dataSource[i].serialNumber + this.$t('TheEngineerAndCertification'))
// isTrue = false
// return
}
} else {
this.detailedWarningList.push( < div > {dataSource[i].serialNumber + ',' + this.$t('pleaseSelectinitiatedOrRejected')} < /div>)
// this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseSelectinitiatedOrRejected'))
// isTrue = false
// return
}
}
if (this.detailedSuccessList && this.detailedSuccessList.length > 0) {
this.visible = true
this.formInline = {}
@@ -1592,57 +1617,108 @@
getRowKeys(value, callBack) {
let isTrue = true
let dataSource = []
for (let i = 0; i < this.dataSource.length; i++) {
for (let j = 0; j < value.length; j++) {
if (this.dataSource[i].id == value[j]) {
if (this.dataSource[i].inventoryAffirmStatus == 'List to confirm') {
if (this.dataSource[i].roleCode == 1 && this.dataSource[i].regulationOwnerSubmitStatus) {
isTrue = false
this.$message.warning(this.$t('The') + (i + 1) + this.$t('submitted'))
return
} else if (this.dataSource[i].roleCode == 2 && this.dataSource[i].homologationEngineerSubmitStatus) {
isTrue = false
this.$message.warning(this.$t('The') + (i + 1) + this.$t('submitted'))
return
} else if (this.dataSource[i].roleCode == 4 && (this.dataSource[i].homologationEngineerSubmitStatus && this.dataSource[i].regulationOwnerSubmitStatus)) {
isTrue = false
this.$message.warning(this.$t('The') + (i + 1) + this.$t('submitted'))
return
}
} else {
isTrue = false
this.$message.warning(this.$t('The') + (i + 1) + this.$t('incorrectsubmitted'))
return
}
dataSource.push(this.dataSource[i])
}
}
}
if (isTrue) {
callBack()
this.rowKeysSuccessList = []
this.rowKeysWarningList = []
for (let i = 0; i < dataSource.length; i++) {
if (dataSource[i].inventoryAffirmStatus == 'List to confirm') {
if (dataSource[i].roleCode == 1 && dataSource[i].regulationOwnerSubmitStatus) {
this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber + this.$t('submitted') } < /div>)
continue
// isTrue = false
// this.$message.warning(dataSource[i].serialNumber + this.$t('submitted'))
// return
} else if (dataSource[i].roleCode == 2 && dataSource[i].homologationEngineerSubmitStatus) {
this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber + this.$t('submitted') } < /div>)
continue
// isTrue = false
// this.$message.warning(dataSource[i].serialNumber + this.$t('submitted'))
// return
} else if (dataSource[i].roleCode == 4 && (dataSource[i].homologationEngineerSubmitStatus && dataSource[i].regulationOwnerSubmitStatus)) {
this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber + this.$t('submitted') } < /div>)
continue
// isTrue = false
// this.$message.warning(dataSource[i].serialNumber + this.$t('submitted'))
// return
}
if((dataSource[i].designInitiatorId == dataSource[i].regulationOwnerId
&& dataSource[i].designInitiatorId == this.userInfo().id) ||
(dataSource[i].designInitiatorId == dataSource[i].homologationEngineerId
&& dataSource[i].designInitiatorId == this.userInfo().id)){
if(!dataSource[i].designDutyId || !dataSource[i].designDueDate){
this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber+this.$t('confirmationOfDesignConformity') + this.$t('theResponsiblePersonAndDeadlineClank') } < /div>)
continue
}
}
if((dataSource[i].prehomoInitiatorId == dataSource[i].regulationOwnerId
&& dataSource[i].prehomoInitiatorId == this.userInfo().id) ||
(dataSource[i].prehomoInitiatorId == dataSource[i].homologationEngineerId
&& dataSource[i].prehomoInitiatorId == this.userInfo().id)){
if(!dataSource[i].prehomoDutyId || !dataSource[i].prehomoDueDate){
this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber+this.$t('PrehomoConfirmation') + this.$t('theResponsiblePersonAndDeadlineClank') } < /div>)
continue
}
}
if((dataSource[i].verifyInitiatorId == dataSource[i].regulationOwnerId
&& dataSource[i].verifyInitiatorId == this.userInfo().id) ||
(dataSource[i].verifyInitiatorId == dataSource[i].homologationEngineerId
&& dataSource[i].verifyInitiatorId == this.userInfo().id)){
if(!dataSource[i].verifyDutyId || !dataSource[i].verifyDueDate){
this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber+this.$t('verificationAndConformityconfirmation') + this.$t('theResponsiblePersonAndDeadlineClank') } < /div>)
continue
}
}
this.rowKeysSuccessList.push(dataSource[i])
} else {
this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber + this.$t('incorrectsubmitted') } < /div>)
// isTrue = false
// this.$message.warning(dataSource[i].serialNumber+ this.$t('incorrectsubmitted'))
// return
}
}
if (this.rowKeysSuccessList && this.rowKeysSuccessList.length > 0) {
callBack && callBack()
}else{
let that = this
this.$warning({
content: (
< div >
{ that.rowKeysWarningList }
< /div>
)
})
}
},
updateStatusBatch(num, selectedRowKeys) {
let _this = this
let lawsInventoryList = []
for (let i = 0; i < this.dataSource.length; i++) {
for (let j = 0; j < selectedRowKeys.length; j++) {
if (this.dataSource[i].id == selectedRowKeys[j]) {
for (let i = 0; i < this.rowKeysSuccessList.length; i++) {
let roleCode
if (this.dataSource[i].regulationOwnerId == this.userInfo().id &&
this.dataSource[i].homologationEngineerId == this.userInfo().id) {
if (this.rowKeysSuccessList[i].regulationOwnerId == this.userInfo().id &&
this.rowKeysSuccessList[i].homologationEngineerId == this.userInfo().id) {
roleCode = 4
} else if (this.dataSource[i].regulationOwnerId == this.userInfo().id) {
} else if (this.rowKeysSuccessList[i].regulationOwnerId == this.userInfo().id) {
roleCode = 1
} else if (this.dataSource[i].homologationEngineerId == this.userInfo().id) {
} else if (this.rowKeysSuccessList[i].homologationEngineerId == this.userInfo().id) {
roleCode = 2
}
lawsInventoryList.push({
id: this.dataSource[i].id,
id: this.rowKeysSuccessList[i].id,
roleCode: roleCode
})
}
}
}
let query = {
operatorType: 1,
@@ -1661,6 +1737,18 @@
_this.$message.warning(_this.$t('operationFailed'))
_this.confirmLoading = false
}
if(this.rowKeysWarningList && this.rowKeysWarningList.length > 0){
let that = this
this.$warning({
content: (
< div >
{ that.rowKeysWarningList }
< /div>
)
})
}
this.rowKeysWarningList = []
this.rowKeysSuccessList = []
})
},
@@ -8,6 +8,71 @@
@ok="visible = false"
@cancel="visible = false"
>
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="8">
<div class="box-title-text-search">
<div class="title-text-search" :title="$t('areaOfResponsibility')">
<span>{{$t('areaOfResponsibility')}}</span>
</div>
<j-dict-select-tag class="box-input-search" v-model="queryParam.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</div>
</a-col>
<a-col :md="12" :sm="8">
<div class="box-title-text-search">
<div class="title-text-search" :title="$t('engineeringInterfacePerson')">
<span>{{$t('engineeringInterfacePerson')}}</span>
</div>
<PersonnelSelection class="box-input-search"
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
:isInput="true"
:personneQuery="queryParam"
@change="PersonnelSelectionChange"
v-model="queryParam.engineeringInterfacePersonName"/>
</div>
</a-col>
<a-col :md="12" :sm="8">
<div class="box-title-text-search">
<div class="title-text-search" :title="$t('regulatoryEngineer')">
<span>{{$t('regulatoryEngineer')}}</span>
</div>
<PersonnelSelection class="box-input-search"
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
:isInput="true"
:personneQuery="queryParam"
@change="PersonnelSelectionChange"
v-model="queryParam.lawEngineerName"/>
</div>
</a-col>
<a-col :md="12" :sm="8">
<div class="box-title-text-search">
<div class="title-text-search" :title="$t('certifiedEngineer')">
<span>{{$t('certifiedEngineer')}}</span>
</div>
<a-select class="box-input-search"
v-model="queryParam.certificationEngineer"
:placeholder="$t('PleaseSelect')+$t('certifiedEngineer')">
<a-select-option v-for="(item, key) in dictOptionsValue"
:key="item.certificationEngineer"
:value="item.certificationEngineer">
<span class="itemOption" :title=" item.certificationEngineerName ">
{{ item.certificationEngineerName }}
</span>
</a-select-option>
</a-select>
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px;margin-bottom: 20px"
class="table-page-search-submitButtons">
<a-button class="box-button-search" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button-search" style="margin-left: 8px"
@click="searchReset">{{$t('reset')}}</a-button>
</span>
</a-row>
</a-form>
<div class="table-operator">
<div @click="handleModule" v-has="'projectRelatedPersonnel:exportTemplate'" class="operator-text">
<a-icon type="download"/>
@@ -23,12 +88,21 @@
<ImportFile :url="url" :projectId="$route.query.id" :isTrue="true" :accept="'.xls'"
@getList="getPersonnelList"/>
</div>
<div class="operator-text"
@click="batSettingClick"
v-has="'projectRelatedPersonnel:setting'"
v-if="this.$route.query.studioEngineer == this.userInfo().id">
<a-icon type="setting"/>
{{$t('batSetting')}}
</div>
</div>
<!-- rowKey="id"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"-->
<a-table
class="table"
:columns="columns"
rowKey="id"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:pagination="false"
:scroll="{x:800,y: 400}"
:data-source="dataSource"
@@ -84,10 +158,10 @@
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
</div>
<!-- :prop="'lawEngineerName'"-->
<!-- :prop="'lawEngineerName'"-->
<a-form-model-item class="itemModel">
<PersonnelSelection
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
@@ -104,10 +178,10 @@
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
</div>
<!-- :prop="'engineeringInterfacePersonName'"-->
<!-- :prop="'engineeringInterfacePersonName'"-->
<a-form-model-item class="itemModel">
<PersonnelSelection
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
@@ -124,10 +198,10 @@
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>
</div>
<!-- :prop="'certificationEngineer'"-->
<!-- :prop="'certificationEngineer'"-->
<a-form-model-item class="itemModel">
<a-select allowClear
v-model="formInline.certificationEngineer"
@@ -162,12 +236,14 @@
</a-form-model>
</a-spin>
</a-modal>
<personBatting ref="personBattingRef" @personBattingTable="personBattingTable"/>
</div>
</template>
<script>
import PersonnelSelection from '@/components/PersonnelSelection/index'
import personBatting from './personBatting'
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
import ImportFile from '@/components/ImportFile/index'
import { mapGetters } from 'vuex'
@@ -176,11 +252,13 @@
name: 'listOfRelevantPersonnel',
components: {
PersonnelSelection,
ImportFile
ImportFile,
personBatting
},
data() {
return {
visible: false,
queryParam: {},
columnsAll: [
{
title: this.$t('areaOfResponsibility'),
@@ -321,12 +399,25 @@
}
})
},
deleteData(name){
personBattingTable() {
this.selectedRowKeys = []
this.getList()
},
batSettingClick() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
this.$refs.personBattingRef.getData(selectedRowKeys.join(','))
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
deleteData(name) {
this.formInline[name] = ''
this.formInline = {...this.formInline}
this.formInline = { ...this.formInline }
},
getData() {
this.visible = true
this.queryParam = {}
this.getList()
this.queryCertificationEngineer()
},
@@ -336,7 +427,7 @@
editOk() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
if (!this.formInline.certificationEngineer){
if (!this.formInline.certificationEngineer) {
this.formInline.certificationEngineer = ''
}
this.confirmLoading = true
@@ -362,8 +453,13 @@
})
},
PersonnelSelectionChange(value, id) {
this.formInline[value] = id
this.formInline = { ...this.formInline }
if (this.editVisible) {
this.formInline[value] = id
this.formInline = { ...this.formInline }
} else {
this.queryParam[value] = id
this.queryParam = { ...this.queryParam }
}
},
// pageOnChange(page, pageSize) {
// this.pageNo = page
@@ -377,9 +473,17 @@
onSelectChange(value) {
this.selectedRowKeys = value
},
searchQuery() {
this.getList()
},
searchReset() {
this.queryParam = {}
this.getList()
},
getList() {
let query = {
projectId: this.$route.query.id
projectId: this.$route.query.id,
...this.queryParam
}
this.loading = true
postAction(this.url.page, query).then((res) => {
@@ -409,7 +513,20 @@
}
}
</script>
<style>
.box-input-search .ant-select-selection--single {
height: 38px;
}
.box-input-search .ant-select-selection--multiple {
height: 38px;
}
.box-input-search .ant-select-selection__rendered {
line-height: 38px;
height: 38px;
}
</style>
<style scoped>
@import '~@assets/less/common.less';
@@ -472,4 +589,37 @@
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
}
.box-title-text-search {
line-height: 1.4;
display: flex;
align-items: center;
margin-bottom: 10px;
}
.title-text-search {
width: 90px;
color: #000F16;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
margin-top: 3px;
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.box-input-search {
display: inline-block;
width: calc(100% - 100px);
height: 38px;
margin-top: 2px;
}
.box-button-search {
height: 38px;
/*margin-top: 2px;*/
}
</style>
@@ -0,0 +1,180 @@
<template>
<a-modal
:title="$t('batSetting')"
:width="600"
:visible="visible"
:maskClosable="false"
:confirm-loading="confirmLoading"
@ok="editOk"
@cancel="visible = false"
>
<a-spin :spinning="confirmLoading">
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
</div>
<a-form-model-item class="itemModel">
<PersonnelSelection
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
:personneQuery="formInline"
@change="PersonnelSelectionChange"
v-model="formInline.lawEngineerName"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
</div>
<a-form-model-item class="itemModel">
<PersonnelSelection
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
:personneQuery="formInline"
@change="PersonnelSelectionChange"
v-model="formInline.engineeringInterfacePersonName"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-select allowClear
class="box-input"
v-model="formInline.certificationEngineer"
:placeholder="$t('certifiedEngineer')+$t('areaOfResponsibility')">
<a-select-option v-for="(item, key) in dictOptionsValue"
:key="item.certificationEngineer"
:value="item.certificationEngineer">
<span class="itemOption" :title=" item.certificationEngineerName ">
{{ item.certificationEngineerName }}
</span>
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-spin>
</a-modal>
</template>
<script>
import PersonnelSelection from '@/components/PersonnelSelection/index'
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
export default {
name: 'personBatting',
components: {
PersonnelSelection
},
data() {
return {
confirmLoading: false,
formInline: {},
visible: false,
rules: {},
ids: '',
dictOptionsValue: [],
url: {
queryCertificationEngineer: '/project/projectRelatedPersonnel/queryCertificationEngineer'
}
}
},
mounted() {
},
methods: {
getData(ids) {
this.visible = true
this.ids = ids
this.formInline = {}
this.queryCertificationEngineer()
},
queryCertificationEngineer() {
getAction(this.url.queryCertificationEngineer, { projectId: this.$route.query.id }).then((res) => {
if (res.success) {
this.dictOptionsValue = res.result
} else {
this.dictOptionsValue = []
}
})
},
PersonnelSelectionChange(value, id) {
this.formInline[value] = id
this.formInline = { ...this.formInline }
},
editOk() {
let query = {
...this.formInline,
ids: this.ids
}
this.confirmLoading = true
postAction('/project/projectRelatedPersonnel/setBatch', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.confirmLoading = false
this.$emit('personBattingTable')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
}
}
}
</script>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.title-text {
width: 114px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 48px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.Required {
color: red;
margin-right: 4px;
}
.title-text-text {
margin-top: 9px;
}
</style>
@@ -46,7 +46,8 @@
<div class="process-content-content" :style="val.left"
v-for="(val,indexOne) in item.data[0]" :key="indexOne">
<div class="process-content-right-top" :title="val.name">{{val.name}}</div>
<div class="process-content-right-top" v-if="indexOne % 2 == 0" :title="val.name">{{val.name}}</div>
<div class="process-content-right-button" v-if="indexOne % 2 == 1" :title="val.name">{{val.name}}</div>
<a-tooltip placement="topLeft">
<template slot="title">
<span>{{val.time.slice(0,11)}}</span>
@@ -496,23 +497,27 @@
.process-content-right-top {
font-size: 12px;
color: #040B29;
width: 50px;
width: 70px;
background: #fff;
display: inline-block;
overflow: hidden;
position: absolute;
top: -14px;
top: -12px;
left: 50%;
transform: translate(-50%, -50%);
}
.process-content-right-button{
font-size: 12px;
color: #040B29;
width: 70px;
background: #fff;
display: inline-block;
overflow: hidden;
position: absolute;
top: 12px;
left: 50%;
line-height: 1.2;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all;
transform: translate(-50%, -50%);
}
.process-content-right-button {
width: 70px;
font-size: 12px;
@@ -71,7 +71,8 @@
<div class="process-content-right-xian"></div>
<div class="process-content-content" :style="val.left"
v-for="(val,indexOne) in item.data[0]" :key="indexOne">
<div class="process-content-right-top" :title="val.name">{{val.name}}</div>
<div class="process-content-right-top" v-if="indexOne % 2 == 0" :title="val.name">{{val.name}}</div>
<div class="process-content-right-button" v-if="indexOne % 2 == 1" :title="val.name">{{val.name}}</div>
<a-tooltip placement="topLeft">
<template slot="title">
<span>{{val.time.slice(0,11)}}</span>
@@ -647,23 +648,27 @@
.process-content-right-top {
font-size: 12px;
color: #040B29;
width: 50px;
width: 70px;
background: #fff;
display: inline-block;
overflow: hidden;
position: absolute;
top: -14px;
top: -12px;
left: 50%;
line-height: 1.2;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all;
transform: translate(-50%, -50%);
}
.process-content-right-button{
font-size: 12px;
color: #040B29;
width: 70px;
background: #fff;
display: inline-block;
overflow: hidden;
position: absolute;
top: 12px;
left: 50%;
transform: translate(-50%, -50%);
}
.process-content-right-button {
width: 70px;
font-size: 12px;