合并分支 'dev_third_stage' 到 'master'

Dev third stage

查看合并请求 laws-nio/laws-weilai!140
This commit is contained in:
肖文钰
2022-08-15 20:08:01 +08:00
70 changed files with 807 additions and 431 deletions
@@ -894,6 +894,10 @@ UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Fail' WHERE `id` = '149678
UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Depart' WHERE `id` = '1174511244036587521'; UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Depart' WHERE `id` = '1174511244036587521';
UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Company' WHERE `id` = '1174511197735665665'; UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Company' WHERE `id` = '1174511197735665665';
UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Position' WHERE `id` = '1174509082208395266'; UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Position' WHERE `id` = '1174509082208395266';
-- 项目状态 project_status 2022-08-12
UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Development' WHERE `id` = '1513769417081630721';
UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Production' WHERE `id` = '1513769467044179970';
-- 表字段 英文修改 2022-08-11 -- 表字段 英文修改 2022-08-11
-- OCR识别转换记录表 -- OCR识别转换记录表
@@ -913,3 +917,13 @@ UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Item No.' WHER
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Item Name' WHERE `id` = '9e91b704de198ccf2f5fb7297e675404'; UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Item Name' WHERE `id` = '9e91b704de198ccf2f5fb7297e675404';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Item Content' WHERE `id` = '120a92b6d595c2fd68d2b90278357ce4'; UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Item Content' WHERE `id` = '120a92b6d595c2fd68d2b90278357ce4';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Technical Field' WHERE `id` = 'ccf68e6578a0a446a6ac34018f0a477d'; UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Technical Field' WHERE `id` = 'ccf68e6578a0a446a6ac34018f0a477d';
-- 文档库信息表 2022-08-12
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Standard Type' WHERE `id` = '441588d80cc31ce68fbdf2ce8b36f93c';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Area' WHERE `id` = '9f82d58f22a12792a53e202d64a39f06';
-- 参数项收集清单 2022-08-12
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Para Batch' WHERE `id` = '161c35a16e92682972dd1aeb26151fa2';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Para Name' WHERE `id` = 'e586bd87d4d826ce3d7d373caf54c6f6';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Status' WHERE `id` = '9050dc65a7b2fe82927b74a9ef4a4bb4';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Responsible Field' WHERE `id` = 'ed57f77975218560b37ea497a20109c6';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Filled by' WHERE `id` = 'a371f6d49781c0921a48f317d1ba69b6';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Eng. Interface' WHERE `id` = '58c3d5a50c86be19d5ab0cd5ac4d6d8b';
@@ -11,15 +11,15 @@ import java.util.Map;
* @Date: Created in 15:17 2022/5/7 * @Date: Created in 15:17 2022/5/7
*/ */
public enum CollectManifestStateEnum { public enum CollectManifestStateEnum {
WAIT_COLLECT("待发起收集","Wait Collect","1"), WAIT_COLLECT("待发起收集","To be collected","1"),
WAIT_SDT("待工程接口人处理","Wait Sdt","2"), WAIT_SDT("待工程接口人处理","To be processed by eng. interface","2"),
SDT_BACK("工程接口人退回","Sdt Back","3"), SDT_BACK("工程接口人退回","Rejected by eng. interface","3"),
WAIT_FILL("待填写","Wait Fill","4"), WAIT_FILL("待填写","To be filled","4"),
DRE_BACK("填写人退回","Dre Back","5"), DRE_BACK("填写人退回","Rejected by the applicant","5"),
SUBMIT("已提交","Submit","6"), SUBMIT("已提交","Submitted","6"),
CERT_BACK("认证工程师退回","Cert Back","7"), CERT_BACK("认证工程师退回","Rejected by homo engineer","7"),
SYNC_REPORT("已同步至上报库","Sync Report","8"), SYNC_REPORT("已同步至上报库","Synced to library","8"),
CHANGE("变更","Change","9"); CHANGE("变更","Modify","9");
String name; String name;
String enName; String enName;
@@ -9,9 +9,9 @@ import java.util.List;
* @Date: Created in 16:47 2022/5/11 * @Date: Created in 16:47 2022/5/11
*/ */
public enum CollectManifestUserTypeEnum { public enum CollectManifestUserTypeEnum {
HOMO("认证工程师", "Homologation Engineer", "homo"), HOMO("认证工程师", "Homo Engineer", "homo"),
SDT("工程接口人", "Sdt People","sdt"), SDT("工程接口人", "Eng. Interface","sdt"),
DRE("填写人", "Dre People","dre"), DRE("填写人", "Filled by","dre"),
STUDIO("R&H Studio","R&H Studio","studio"), STUDIO("R&H Studio","R&H Studio","studio"),
MANAGER("R&H Manager","R&H Manager","manager"), MANAGER("R&H Manager","R&H Manager","manager"),
ADMIN("系统","Administrator","admin"), ADMIN("系统","Administrator","admin"),
@@ -1063,10 +1063,15 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
studioList = projectLibraryBaseList.stream().map(ProjectLibraryBase::getStudioEngineerName).collect(Collectors.toList()); // studio 一个项目只有一个 studioList = projectLibraryBaseList.stream().map(ProjectLibraryBase::getStudioEngineerName).collect(Collectors.toList()); // studio 一个项目只有一个
} }
if (CollectionUtil.isEmpty(userRoleIds) && !studioList.contains(loginUser.getUsername()) String loginUserName = loginUser.getUsername().toLowerCase();
&& !homoList.contains(loginUser.getUsername()) studioList = toLowerCaseOfList(studioList);
&& !sdtList.contains(loginUser.getUsername()) homoList = toLowerCaseOfList(homoList);
&& !dreListOfPCM.contains(loginUser.getUsername())) { sdtList = toLowerCaseOfList(sdtList);
dreListOfPCM = toLowerCaseOfList(dreListOfPCM);
if (CollectionUtil.isEmpty(userRoleIds) && !studioList.contains(loginUserName)
&& !homoList.contains(loginUserName)
&& !sdtList.contains(loginUserName)
&& !dreListOfPCM.contains(loginUserName)) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
@@ -1079,7 +1084,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
return userTypeList; return userTypeList;
} }
if (homoList.contains(loginUser.getUsername())) { if (homoList.contains(loginUserName)) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
map.put("label", CollectManifestUserTypeEnum.HOMO.getName()); map.put("label", CollectManifestUserTypeEnum.HOMO.getName());
@@ -1090,7 +1095,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
userTypeList.add(map); userTypeList.add(map);
} }
if (sdtList.contains(loginUser.getUsername())) { if (sdtList.contains(loginUserName)) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
map.put("label", CollectManifestUserTypeEnum.SDT.getName()); map.put("label", CollectManifestUserTypeEnum.SDT.getName());
@@ -1101,7 +1106,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
userTypeList.add(map); userTypeList.add(map);
} }
if (dreListOfPCM.contains(loginUser.getUsername())) { if (dreListOfPCM.contains(loginUserName)) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
map.put("label", CollectManifestUserTypeEnum.DRE.getName()); map.put("label", CollectManifestUserTypeEnum.DRE.getName());
@@ -1112,7 +1117,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
userTypeList.add(map); userTypeList.add(map);
} }
if (studioList.contains(loginUser.getUsername())) { if (studioList.contains(loginUserName)) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
map.put("label", CollectManifestUserTypeEnum.STUDIO.getName()); map.put("label", CollectManifestUserTypeEnum.STUDIO.getName());
@@ -1140,6 +1145,14 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
return userTypeList; return userTypeList;
} }
private List<String> toLowerCaseOfList(List<String> list) {
List<String> newList = list;
if (CollectionUtil.isNotEmpty(list)) {
newList = list.stream().map(String::toLowerCase).collect(Collectors.toList());
}
return newList;
}
@Override @Override
public Map<String, Object> isCollectFinished(String paramsManifestId) { public Map<String, Object> isCollectFinished(String paramsManifestId) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
@@ -386,7 +386,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
bussExportParams.setSheetName("企业参数表"); bussExportParams.setSheetName("企业参数表");
} else { } else {
bussExportParams.setSheetName("Company Params"); bussExportParams.setSheetName("Company parameter");
} }
bussExportParams.setType(ExcelType.XSSF); // 解决HSSFRichTextString cannot cast XSSFRichTextString问题 bussExportParams.setType(ExcelType.XSSF); // 解决HSSFRichTextString cannot cast XSSFRichTextString问题
bussExportParams.setStyle(CommonExcelExportStyler.class); bussExportParams.setStyle(CommonExcelExportStyler.class);
@@ -727,7 +727,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
// 创建参数对象(用来设定excel得sheet得内容等信息) // 创建参数对象(用来设定excel得sheet得内容等信息)
ExportParams bussExportParams = new ExportParams(); ExportParams bussExportParams = new ExportParams();
// 设置sheet得名称 // 设置sheet得名称
bussExportParams.setSheetName("Company Params"); bussExportParams.setSheetName("Company parameter");
bussExportParams.setType(ExcelType.XSSF); // 解决HSSFRichTextString cannot cast XSSFRichTextString问题 bussExportParams.setType(ExcelType.XSSF); // 解决HSSFRichTextString cannot cast XSSFRichTextString问题
bussExportParams.setStyle(CommonExcelExportStyler.class); bussExportParams.setStyle(CommonExcelExportStyler.class);
// 创建sheet1使用得map // 创建sheet1使用得map
@@ -930,8 +930,8 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
// 第几个sheet页 // 第几个sheet页
if (numSheet == 0) { // 企业参数表 if (numSheet == 0) { // 企业参数表
if (CutEnum.EN.getValue().equals(cut)) { if (CutEnum.EN.getValue().equals(cut)) {
String fields[] ={ "*NIO Number", "*Is Must", "*Params Name","*Params Batch","*Duty Territory", String fields[] ={ "*NIO Number", "*Required", "*Para Name","*Para Batch","*Responsible Field",
"Description", "*Control Type", "Control Verify", "Control Values", "Default Value", "File Template"}; "Description", "*Control Component", "Validate Component", "Component Value", "Default Value", "File Template"};
params.setImportFields(fields); params.setImportFields(fields);
ExcelImportResult<ParamsInfoEnImport> resultEn = ExcelImportUtil.importExcelMore(excelfile,ParamsInfoEnImport.class, params); ExcelImportResult<ParamsInfoEnImport> resultEn = ExcelImportUtil.importExcelMore(excelfile,ParamsInfoEnImport.class, params);
@@ -950,7 +950,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if (certCategoryMap.containsKey(sheetName)) { if (certCategoryMap.containsKey(sheetName)) {
List<CertCategoryParamsInfoCnImport> list = new ArrayList<>(); List<CertCategoryParamsInfoCnImport> list = new ArrayList<>();
if (CutEnum.EN.getValue().equals(cut)) { if (CutEnum.EN.getValue().equals(cut)) {
String fields[] ={ "*NIO Number", "*Number", "*Params Name","Description"}; String fields[] ={ "*NIO Number", "*Number", "*Para Name","Description"};
params.setImportFields(fields); params.setImportFields(fields);
ExcelImportResult<CertCategoryParamsInfoEnImport> resultEn = ExcelImportUtil.importExcelMore(excelfile, CertCategoryParamsInfoEnImport.class, params); ExcelImportResult<CertCategoryParamsInfoEnImport> resultEn = ExcelImportUtil.importExcelMore(excelfile, CertCategoryParamsInfoEnImport.class, params);
@@ -1235,7 +1235,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if(CutEnum.CN.getValue().equals(cut)) { if(CutEnum.CN.getValue().equals(cut)) {
errorMsg += "NIO编号格式错误,仅能为字母,数字,横杠(-),左斜杠,空格;"; errorMsg += "NIO编号格式错误,仅能为字母,数字,横杠(-),左斜杠,空格;";
} else { } else {
errorMsg += "NIO number formatting errors, can only letters, numbers, dash (-),left slash,spaces;"; errorMsg += "NIO number formatting errors, can only letters, numbers, dash (-),left slash,spaces; ";
} }
countError++; countError++;
} }
@@ -1257,10 +1257,10 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
// 是否必填 // 是否必填
String isMust = dto.getIsMust(); String isMust = dto.getIsMust();
resultMap = validateMustAndLength(isMust, "是否必填", "Is Must", IsMustEnum.YES.getValue(), "50", false, cut); resultMap = validateMustAndLength(isMust, "是否必填", "Required", IsMustEnum.YES.getValue(), "50", false, cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
resultMap = getCodeByName(isMust,"是否必填","Is Must","enum",paramsIsMustEnumMap,null,null,cut); resultMap = getCodeByName(isMust,"是否必填","Required","enum",paramsIsMustEnumMap,null,null,cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
isMust = (String)resultMap.get("value"); isMust = (String)resultMap.get("value");
@@ -1268,7 +1268,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
// 参数名称 // 参数名称
String paramsName = dto.getParamsName(); String paramsName = dto.getParamsName();
resultMap = validateMustAndLength(paramsName, "参数名称", "Params Name", IsMustEnum.YES.getValue(), "100", false, cut); resultMap = validateMustAndLength(paramsName, "参数名称", "Para Name", IsMustEnum.YES.getValue(), "100", false, cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
@@ -1285,10 +1285,10 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
// 参数批次 // 参数批次
String paramsBatch = dto.getParamsBatch(); String paramsBatch = dto.getParamsBatch();
resultMap = validateMustAndLength(paramsBatch, "参数批次", "Params Batch", IsMustEnum.YES.getValue(), "50", true, cut); resultMap = validateMustAndLength(paramsBatch, "参数批次", "Para Batch", IsMustEnum.YES.getValue(), "50", true, cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
resultMap = getCodeByName(paramsBatch,"参数批次", "Params Batch", "dicCode",null,itemNameList,dictItemList,cut); resultMap = getCodeByName(paramsBatch,"参数批次", "Para Batch", "dicCode",null,itemNameList,dictItemList,cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
paramsBatch = (String)resultMap.get("value"); paramsBatch = (String)resultMap.get("value");
@@ -1296,10 +1296,10 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
// 责任领域 // 责任领域
String dutyTerritory = dto.getDutyTerritory(); String dutyTerritory = dto.getDutyTerritory();
resultMap = validateMustAndLength(dutyTerritory, "责任领域", "Duty Territory", IsMustEnum.YES.getValue(), "50",true, cut); resultMap = validateMustAndLength(dutyTerritory, "责任领域", "Responsible Field", IsMustEnum.YES.getValue(), "50",true, cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
resultMap = getCodeByName(dutyTerritory,"责任领域", "Duty Territory", "dicCode",null,itemNameList,dictItemList,cut); resultMap = getCodeByName(dutyTerritory,"责任领域", "Responsible Field", "dicCode",null,itemNameList,dictItemList,cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
dutyTerritory = (String)resultMap.get("value"); dutyTerritory = (String)resultMap.get("value");
@@ -1323,10 +1323,10 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
// 控件类型 // 控件类型
String controlType = dto.getControlType(); String controlType = dto.getControlType();
resultMap = validateMustAndLength(controlType, "控件类型", "Control Type", IsMustEnum.YES.getValue(), "50", false, cut); resultMap = validateMustAndLength(controlType, "控件类型", "Control Component", IsMustEnum.YES.getValue(), "50", false, cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
resultMap = getCodeByName(controlType,"控件类型", "Control Type", "enum",controlTypeEnumMap,null,null,cut); resultMap = getCodeByName(controlType,"控件类型", "Control Component", "enum",controlTypeEnumMap,null,null,cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
controlType = (String)resultMap.get("value"); controlType = (String)resultMap.get("value");
@@ -1352,9 +1352,9 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
|| ControlTypeEnum.TEXT_PULL_MORE.getValue().equals(controlType) || ControlTypeEnum.TEXT_PULL_MORE.getValue().equals(controlType)
|| ControlTypeEnum.TEXT_PULL_SINGLE.getValue().equals(controlType) || ControlTypeEnum.TEXT_PULL_SINGLE.getValue().equals(controlType)
|| ControlTypeEnum.TEXT_PULL_SINGLE_FILE.getValue().equals(controlType)) { || ControlTypeEnum.TEXT_PULL_SINGLE_FILE.getValue().equals(controlType)) {
resultMap = validateMustAndLength(controlValues, "控件备选值", "Control Values", IsMustEnum.YES.getValue(), "500", false, cut); resultMap = validateMustAndLength(controlValues, "控件备选值", "Component Value", IsMustEnum.YES.getValue(), "500", false, cut);
} else { } else {
resultMap = validateMustAndLength(controlValues, "控件备选值", "Control Values", IsMustEnum.NO.getValue(), "500", false, cut); resultMap = validateMustAndLength(controlValues, "控件备选值", "Component Value", IsMustEnum.NO.getValue(), "500", false, cut);
dto.setControlValues(null); dto.setControlValues(null);
} }
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
@@ -1367,22 +1367,22 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
|| ControlTypeEnum.TEXT_PULL_MORE.getValue().equals(controlType) || ControlTypeEnum.TEXT_PULL_MORE.getValue().equals(controlType)
|| ControlTypeEnum.TEXT_FILE.getValue().equals(controlType) || ControlTypeEnum.TEXT_FILE.getValue().equals(controlType)
|| ControlTypeEnum.TEXT_PULL_SINGLE_FILE.getValue().equals(controlType)) { || ControlTypeEnum.TEXT_PULL_SINGLE_FILE.getValue().equals(controlType)) {
resultMap = validateMustAndLength(controlVerify, "控件校验", "Control Verify", IsMustEnum.YES.getValue(), "50", false, cut); resultMap = validateMustAndLength(controlVerify, "控件校验", "Validate Component", IsMustEnum.YES.getValue(), "50", false, cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
resultMap = getCodeByName(controlVerify,"控件校验", "Control Verify", "enum",controlVerifyEnumMap,null,null,cut); resultMap = getCodeByName(controlVerify,"控件校验", "Validate Component", "enum",controlVerifyEnumMap,null,null,cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
controlVerify = (String)resultMap.get("value"); controlVerify = (String)resultMap.get("value");
dto.setControlVerify(controlVerify); dto.setControlVerify(controlVerify);
} else { } else {
resultMap = validateMustAndLength(controlVerify, "控件校验", "Control Verify", IsMustEnum.NO.getValue(), "50", false, cut); resultMap = validateMustAndLength(controlVerify, "控件校验", "Validate Component", IsMustEnum.NO.getValue(), "50", false, cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
resultMap = getCodeByName(controlVerify,"控件校验", "Control Verify", "enum",controlVerifyEnumMap,null,null,cut); resultMap = getCodeByName(controlVerify,"控件校验", "Validate Component", "enum",controlVerifyEnumMap,null,null,cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
@@ -1409,7 +1409,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
errorMsg += "附件模板只能上传一个文件;"; errorMsg += "附件模板只能上传一个文件;";
} else { } else {
errorMsg += "File template only can upload one;"; errorMsg += "File template only can upload one; ";
} }
} }
for (String fileName : fileTemplateName.split(",")) { for (String fileName : fileTemplateName.split(",")) {
@@ -1419,7 +1419,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
errorMsg += "附件模板压缩包中没有" + fileName + "文件; "; errorMsg += "附件模板压缩包中没有" + fileName + "文件; ";
} else { } else {
errorMsg += "File template " + fileName + "isn't present in the cabinet;"; errorMsg += "File template " + fileName + "isn't present in the cabinet; ";
} }
countError++; countError++;
} else { } else {
@@ -1493,16 +1493,16 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if(CutEnum.CN.getValue().equals(cut)) { if(CutEnum.CN.getValue().equals(cut)) {
errorMsg += "nio编号格式错误,仅能为字母,数字,横杠(-),左斜杠,空格;"; errorMsg += "nio编号格式错误,仅能为字母,数字,横杠(-),左斜杠,空格;";
} else { } else {
errorMsg += "NIO number formatting errors, can only letters, numbers, dash (-),left slash,spaces;"; errorMsg += "NIO number formatting errors, can only letters, numbers, dash (-),left slash,spaces; ";
} }
countError++; countError++;
} }
if (CollectionUtil.isNotEmpty(ccNioNumberImport)) { if (CollectionUtil.isNotEmpty(ccNioNumberImport)) {
if (ccNioNumberImport.contains(ccDto.getNioNumber())) { if (ccNioNumberImport.contains(ccDto.getNioNumber())) {
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
errorMsg += "NIO编号重复"; errorMsg += "NIO编号重复";
} else { } else {
errorMsg += "NIO number already exists!"; errorMsg += "NIO number already exists; ";
} }
countError++; countError++;
} else { } else {
@@ -1524,14 +1524,14 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if(CutEnum.CN.getValue().equals(cut)) { if(CutEnum.CN.getValue().equals(cut)) {
errorMsg += "编号格式错误,仅能为字母,数字,横杠(-),小数点(.),左斜杠,空格;"; errorMsg += "编号格式错误,仅能为字母,数字,横杠(-),小数点(.),左斜杠,空格;";
} else { } else {
errorMsg += "Number formatting errors, can only letters, numbers, dash (-),dot (.),left slash,spaces;"; errorMsg += "Number formatting errors, can only letters, numbers, dash (-),dot (.),left slash,spaces; ";
} }
countError++; countError++;
} }
} }
// 参数名称 // 参数名称
String paramsName = ccDto.getParamsName(); String paramsName = ccDto.getParamsName();
resultMap = validateMustAndLength(paramsName, "参数名称", "Params Name", IsMustEnum.YES.getValue(),"100", false, cut); resultMap = validateMustAndLength(paramsName, "参数名称", "Para Name", IsMustEnum.YES.getValue(),"100", false, cut);
errorMsg += (String)resultMap.get("errorMsg"); errorMsg += (String)resultMap.get("errorMsg");
countError += (int)resultMap.get("countError"); countError += (int)resultMap.get("countError");
// 参数说明 // 参数说明
@@ -1558,7 +1558,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
stringMessage.add("导入数据中NIO编号:" + reduceOne + "下存在重复认证类别;"); stringMessage.add("导入数据中NIO编号:" + reduceOne + "下存在重复认证类别;");
} else { } else {
stringMessage.add("Repeat cert category exist in NIO Number: " + reduceOne + ";"); stringMessage.add("Repeat cert category exist in NIO Number: " + reduceOne + "; ");
} }
} }
} }
@@ -1579,7 +1579,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
stringMessage.add("导入数据中NIO编号:" + reduceTwo + "下存在重复认证编号;"); stringMessage.add("导入数据中NIO编号:" + reduceTwo + "下存在重复认证编号;");
} else { } else {
stringMessage.add("Repeat number exist in NIO Number: " + reduceTwo + ";"); stringMessage.add("Repeat number exist in NIO Number: " + reduceTwo + "; ");
} }
} }
} }
@@ -1635,7 +1635,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if(CutEnum.CN.getValue().equals(cut)) { if(CutEnum.CN.getValue().equals(cut)) {
errorMsg += fieldNameCn + "为必填项,不能为空;"; errorMsg += fieldNameCn + "为必填项,不能为空;";
} else { } else {
errorMsg += fieldNameEn + " is mandatory and cannot be empty;"; errorMsg += fieldNameEn + " is mandatory and cannot be empty; ";
} }
countError++; countError++;
} }
@@ -1644,7 +1644,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if(CutEnum.CN.getValue().equals(cut)) { if(CutEnum.CN.getValue().equals(cut)) {
errorMsg += fieldNameCn + "不能超过" + dbLength + "个字符;"; errorMsg += fieldNameCn + "不能超过" + dbLength + "个字符;";
} else { } else {
errorMsg += fieldNameEn + " can not be more than " + dbLength + " char;"; errorMsg += fieldNameEn + " can not be more than " + dbLength + " char; ";
} }
countError++; countError++;
} }
@@ -1655,7 +1655,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
errorMsg += fieldNameCn + "为单选项;"; errorMsg += fieldNameCn + "为单选项;";
} else { } else {
errorMsg += fieldNameEn + " is single type;"; errorMsg += fieldNameEn + " is single type; ";
} }
countError++; countError++;
} }
@@ -1687,7 +1687,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if(CutEnum.CN.getValue().equals(cut)) { if(CutEnum.CN.getValue().equals(cut)) {
errorMsg += fieldNameCn + "中的" + lastValue + "与数据字典不匹配;"; errorMsg += fieldNameCn + "中的" + lastValue + "与数据字典不匹配;";
} else { } else {
errorMsg += fieldNameEn +" "+ lastValue + " does not match the data dictionary;"; errorMsg += fieldNameEn +" "+ lastValue + " does not match the data dictionary; ";
} }
countError++; countError++;
} }
@@ -1742,7 +1742,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if(CutEnum.CN.getValue().equals(cut)) { if(CutEnum.CN.getValue().equals(cut)) {
errorMsg += fieldNameCn + "中的" + valueTemp + "与数据字典不匹配;"; errorMsg += fieldNameCn + "中的" + valueTemp + "与数据字典不匹配;";
} else{ } else{
errorMsg += fieldNameEn + " " + valueTemp + " does not match the data dictionary"; errorMsg += fieldNameEn + " " + valueTemp + " does not match the data dictionary; ";
} }
countError++; countError++;
} }
@@ -1777,7 +1777,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
if(CutEnum.CN.getValue().equals(cut)) { if(CutEnum.CN.getValue().equals(cut)) {
errorMsg += fieldNameCn + "中的" + value + "不正确;"; errorMsg += fieldNameCn + "中的" + value + "不正确;";
} else{ } else{
errorMsg += fieldNameEn + " " + value + " is not correct"; errorMsg += fieldNameEn + " " + value + " is not correct; ";
} }
countError++; countError++;
} }
@@ -47,7 +47,7 @@ public class CertCategoryParamsInfoEnExport {
private String paramsNumber; private String paramsNumber;
/**参数名称*/ /**参数名称*/
@Excel(name = "*Params Name", width = 15, orderNum = "3") @Excel(name = "*Para Name", width = 15, orderNum = "3")
@ApiModelProperty(value = "参数名称") @ApiModelProperty(value = "参数名称")
private String paramsName; private String paramsName;
@@ -47,7 +47,7 @@ public class CertCategoryParamsInfoEnImport {
private String paramsNumber; private String paramsNumber;
/**参数名称*/ /**参数名称*/
@Excel(name = "*Params Name", width = 15, orderNum = "3") @Excel(name = "*Para Name", width = 15, orderNum = "3")
@ApiModelProperty(value = "参数名称") @ApiModelProperty(value = "参数名称")
private String paramsName; private String paramsName;
@@ -50,12 +50,12 @@ public class ParamsInfoEnExport {
private String nioNumber; private String nioNumber;
/**是否必填*/ /**是否必填*/
@Excel(name = "*Is Must", width = 15, replace = {"yes_1","no_0"}) @Excel(name = "*Required", width = 15, replace = {"yes_1","no_0"})
@ApiModelProperty(value = "是否必填") @ApiModelProperty(value = "是否必填")
private String isMust; private String isMust;
/**参数名称*/ /**参数名称*/
@Excel(name = "*Params Name", width = 15) @Excel(name = "*Para Name", width = 15)
@ApiModelProperty(value = "参数名称") @ApiModelProperty(value = "参数名称")
private String paramsName; private String paramsName;
@@ -66,13 +66,13 @@ public class ParamsInfoEnExport {
private String technologyTerritory; private String technologyTerritory;
/**参数批次*/ /**参数批次*/
@Excel(name = "*Params Batch", width = 15, dicCode = "params_batch_en") @Excel(name = "*Para Batch", width = 15, dicCode = "params_batch_en")
@Dict(dicCode = "params_batch") @Dict(dicCode = "params_batch")
@ApiModelProperty(value = "参数批次") @ApiModelProperty(value = "参数批次")
private String paramsBatch; private String paramsBatch;
/**责任领域*/ /**责任领域*/
@Excel(name = "*Duty Territory", width = 15, dicCode = "duty_territory_en") @Excel(name = "*Responsible Field", width = 15, dicCode = "duty_territory_en")
@Dict(dicCode = "duty_territory") @Dict(dicCode = "duty_territory")
@ApiModelProperty(value = "责任领域") @ApiModelProperty(value = "责任领域")
private String dutyTerritory; private String dutyTerritory;
@@ -89,17 +89,17 @@ public class ParamsInfoEnExport {
private String certCategory; private String certCategory;
/**控件类型*/ /**控件类型*/
@Excel(name = "*Control Type", width = 15, replace = {"Text_1","Pull single_2","Pull more_3","File_4","Text+Pull single_5","Text+Pull more_6","Text+File_7","Pull single+File_8","Pull more+File_9","Text+Pull single+File_10","Title_11"}) @Excel(name = "*Control Component", width = 15, replace = {"Text_1","Pull single_2","Pull more_3","File_4","Text+Pull single_5","Text+Pull more_6","Text+File_7","Pull single+File_8","Pull more+File_9","Text+Pull single+File_10","Title_11"})
@ApiModelProperty(value = "控件类型") @ApiModelProperty(value = "控件类型")
private String controlType; private String controlType;
/**控件校验*/ /**控件校验*/
@Excel(name = "Control Verify", width = 15, replace = {"Null_1","Chinese_2","Integer_3","Positive float_4","Integer decimal_5","Decimal one_6","Decimal two_7","Decimal three_8","Decimal four_9"}) @Excel(name = "Validate Component", width = 15, replace = {"Null_1","Chinese_2","Integer_3","Positive float_4","Integer decimal_5","Decimal one_6","Decimal two_7","Decimal three_8","Decimal four_9"})
@ApiModelProperty(value = "控件校验") @ApiModelProperty(value = "控件校验")
private String controlVerify; private String controlVerify;
/**控件备选值*/ /**控件备选值*/
@Excel(name = "Control Values", width = 15) @Excel(name = "Component Value", width = 15)
@ApiModelProperty(value = "控件备选值") @ApiModelProperty(value = "控件备选值")
private String controlValues; private String controlValues;
@@ -18,12 +18,12 @@ public class ParamsInfoEnImport {
private String nioNumber; private String nioNumber;
/**是否必填*/ /**是否必填*/
@Excel(name = "*Is Must", width = 15) @Excel(name = "*Required", width = 15)
@ApiModelProperty(value = "是否必填") @ApiModelProperty(value = "是否必填")
private String isMust; private String isMust;
/**参数名称*/ /**参数名称*/
@Excel(name = "*Params Name", width = 15) @Excel(name = "*Para Name", width = 15)
@ApiModelProperty(value = "参数名称") @ApiModelProperty(value = "参数名称")
private String paramsName; private String paramsName;
@@ -33,12 +33,12 @@ public class ParamsInfoEnImport {
private String technologyTerritory; private String technologyTerritory;
/**参数批次*/ /**参数批次*/
@Excel(name = "*Params Batch", width = 15) @Excel(name = "*Para Batch", width = 15)
@ApiModelProperty(value = "参数批次") @ApiModelProperty(value = "参数批次")
private String paramsBatch; private String paramsBatch;
/**责任领域*/ /**责任领域*/
@Excel(name = "*Duty Territory", width = 15) @Excel(name = "*Responsible Field", width = 15)
@ApiModelProperty(value = "责任领域") @ApiModelProperty(value = "责任领域")
private String dutyTerritory; private String dutyTerritory;
@@ -53,17 +53,17 @@ public class ParamsInfoEnImport {
private String certCategory; private String certCategory;
/**控件类型*/ /**控件类型*/
@Excel(name = "*Control Type", width = 15) @Excel(name = "*Control Component", width = 15)
@ApiModelProperty(value = "控件类型") @ApiModelProperty(value = "控件类型")
private String controlType; private String controlType;
/**控件校验*/ /**控件校验*/
@Excel(name = "Control Verify", width = 15) @Excel(name = "Validate Component", width = 15)
@ApiModelProperty(value = "控件校验") @ApiModelProperty(value = "控件校验")
private String controlVerify; private String controlVerify;
/**控件备选值*/ /**控件备选值*/
@Excel(name = "Control Values", width = 15) @Excel(name = "Component Value", width = 15)
@ApiModelProperty(value = "控件备选值") @ApiModelProperty(value = "控件备选值")
private String controlValues; private String controlValues;
@@ -51,7 +51,7 @@ public class PPEmployee {
private String data_provider; // 第三方数据提供商 private String data_provider; // 第三方数据提供商
private String extension_attribute1; // O365标签 private String extension_attribute1; // O365标签
private String working_hour; // 工作制 private String working_hour; // 工作制
private String domain; // 账号所属域 private String domain; // 账号所属域 美国-amer
private String ad_failed; // 创建ad失败原账号 private String ad_failed; // 创建ad失败原账号
private String have_employees; // 是否有下属员工 private String have_employees; // 是否有下属员工
private String id; // id ----id private String id; // id ----id
@@ -227,7 +227,7 @@ public class SyncDataServiceImpl implements ISyncDataService{
JSONObject resultJsonEU = (JSONObject) myJsonEU.get("data"); JSONObject resultJsonEU = (JSONObject) myJsonEU.get("data");
//将第一页的账户信息转换为本地dto集合 //将第一页的账户信息转换为本地dto集合
List<JSONObject> userListEU = JSONObject.parseArray(resultJsonEU.get("list").toString(), JSONObject.class); List<JSONObject> userListEU = JSONObject.parseArray(resultJsonEU.get("list").toString(), JSONObject.class);
List<PPEmployee> currentPPEmployeeListEU = getPPEmployeeList(userListEU, "EN"); List<PPEmployee> currentPPEmployeeListEU = getPPEmployeeList(userListEU, "EU");
ppEmployeeList.addAll(currentPPEmployeeListEU); ppEmployeeList.addAll(currentPPEmployeeListEU);
//获取总记录数 //获取总记录数
@@ -246,7 +246,7 @@ public class SyncDataServiceImpl implements ISyncDataService{
log.debug("【欧洲】打印输出本次同步信息返回结果:"+myJsonEU.get("data").toString()); log.debug("【欧洲】打印输出本次同步信息返回结果:"+myJsonEU.get("data").toString());
resultJsonEU = (JSONObject) myJsonEU.get("data"); resultJsonEU = (JSONObject) myJsonEU.get("data");
userListEU = JSONObject.parseArray(resultJsonEU.get("list").toString(), JSONObject.class); userListEU = JSONObject.parseArray(resultJsonEU.get("list").toString(), JSONObject.class);
currentPPEmployeeListEU = getPPEmployeeList(userListEU, "EN"); currentPPEmployeeListEU = getPPEmployeeList(userListEU, "EU");
ppEmployeeList.addAll(currentPPEmployeeListEU); ppEmployeeList.addAll(currentPPEmployeeListEU);
} }
} }
@@ -261,21 +261,22 @@ public class SyncDataServiceImpl implements ISyncDataService{
for(PPEmployee ppEmployee:ppEmployeeList){ for(PPEmployee ppEmployee:ppEmployeeList){
try { try {
PPEmployeeMap.put(ppEmployee.getWorker_user_id(), ppEmployee); PPEmployeeMap.put(ppEmployee.getWorker_user_id(), ppEmployee);
//1.判断当前账号是否已添加到用户中 if (StringUtils.isNotBlank(ppEmployee.getWorker_user_id())) {
if (!localUserMap.containsKey(ppEmployee.getWorker_user_id())) { ppEmployee.setWorker_user_id(ppEmployee.getWorker_user_id().toLowerCase()); // 转小写
//删除数据库中与该账户相同的数据
if(StringUtils.isNotBlank(ppEmployee.getWorker_user_id())) { //1.判断当前账号是否已添加到用户中
if (!localUserMap.containsKey(ppEmployee.getWorker_user_id())) {
//删除数据库中与该账户相同的数据
// sysUserService.removeById(ppEmployee.getId()); // 这个为什么是逻辑删除 // sysUserService.removeById(ppEmployee.getId()); // 这个为什么是逻辑删除
log.info("需要新增的用户信息为:" + JSONObject.toJSONString(ppEmployee)); log.info("需要新增的用户信息为:" + JSONObject.toJSONString(ppEmployee));
SysUser newUser = sysUserService.addPPUserInfo(ppEmployee); SysUser newUser = sysUserService.addPPUserInfo(ppEmployee);
localUserMap.put(ppEmployee.getWorker_user_id(), newUser); localUserMap.put(ppEmployee.getWorker_user_id(), newUser);
} }else {
SysUser userEO = localUserMap.get(ppEmployee.getWorker_user_id());
} else { log.info("需要更新的用户信息为:" + JSONObject.toJSONString(userEO) + " " + JSONObject.toJSONString(ppEmployee));
SysUser userEO = localUserMap.get(ppEmployee.getWorker_user_id()); if (userEO != null) {
log.info("需要更新的用户信息为:" + JSONObject.toJSONString(userEO) + " " + JSONObject.toJSONString(ppEmployee)); sysUserService.updatePPUserInfo(userEO, ppEmployee);
if(userEO != null) { }
sysUserService.updatePPUserInfo(userEO, ppEmployee);
} }
} }
@@ -2,14 +2,13 @@ package com.jero.modules.compare.controller;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.constant.enums.CutEnum; import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.generater.modules.online.cgform.entity.OnlCgformField; import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl; import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
@@ -17,6 +16,8 @@ import com.jero.modules.compare.entity.SarFileCompareDetailVO;
import com.jero.modules.compare.entity.SarFileCompareInfo; import com.jero.modules.compare.entity.SarFileCompareInfo;
import com.jero.modules.compare.service.ISarFileCompareInfoService; import com.jero.modules.compare.service.ISarFileCompareInfoService;
import com.jero.modules.docTranslation.enums.ReleaseConditionEnum; import com.jero.modules.docTranslation.enums.ReleaseConditionEnum;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.util.StringUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -50,22 +51,33 @@ public class SarFileCompareInfoController extends JeroController<SarFileCompareI
/** /**
* 分页列表查询 * 分页列表查询
*
* @param sarFileCompareInfo
* @param pageNo
* @param pageSize
* @param req
* @return
*/ */
@AutoLog(value = "文档对比信息表-分页列表查询") @AutoLog(value = "文档对比信息表-分页列表查询")
@ApiOperation(value = "文档对比信息表-分页列表查询", notes = "文档对比信息表-分页列表查询") @ApiOperation(value = "文档对比信息表-分页列表查询", notes = "文档对比信息表-分页列表查询")
@GetMapping(value = "/page") @GetMapping(value = "/page")
public Result<?> queryPageList(SarFileCompareInfo sarFileCompareInfo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, public Result<?> queryPageList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "cut", defaultValue = "cn") String cut, HttpServletRequest req) { @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
QueryWrapper<SarFileCompareInfo> queryWrapper = QueryGenerator.initQueryWrapper(sarFileCompareInfo, req.getParameterMap()); @RequestParam(name = "cut", defaultValue = "cn") String cut,
@RequestParam(name = "serialNumber", defaultValue = "") String serialNumber,
@RequestParam(name = "title", defaultValue = "") String title,
@RequestParam(name = "releaseState", defaultValue = "") String releaseState,
HttpServletRequest req) {
LambdaQueryWrapper<SarFileCompareInfo> queryWrapper = new LambdaQueryWrapper<>();
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
queryWrapper.eq("create_by", sysUser.getUsername()).or().eq("release_state", ReleaseConditionEnum.PUBLISHED.getValue()); queryWrapper.and(LambdaQueryWrapper -> LambdaQueryWrapper.eq(SarFileCompareInfo::getCreateBy, sysUser.getUsername()).or().eq(SarFileCompareInfo::getReleaseState, ReleaseConditionEnum.PUBLISHED.getValue()));
queryWrapper.orderByAsc("create_by"); if (StringUtils.isNotBlank(serialNumber)) {
String finalSerialNumber = serialNumber.replace("%", "\\%");;
queryWrapper.and(LambdaQueryWrapper -> LambdaQueryWrapper.like(SarFileCompareInfo::getSerialNumberLeft, finalSerialNumber).or().like(SarFileCompareInfo::getSerialNumberRight, finalSerialNumber));
}
if (StringUtils.isNotBlank(title)) {
String finalTitle = title.replace("%", "\\%");
queryWrapper.and(i -> i.like(SarFileCompareInfo::getTitleLeft, finalTitle).or().like(SarFileCompareInfo::getTitleRight, finalTitle));
}
if (StringUtils.isNotBlank(releaseState)) {
queryWrapper.and(LambdaQueryWrapper -> LambdaQueryWrapper.eq(SarFileCompareInfo::getReleaseState, releaseState));
}
queryWrapper.orderByDesc(SarFileCompareInfo::getCreateTime);
Page<SarFileCompareInfo> page = new Page<>(pageNo, pageSize); Page<SarFileCompareInfo> page = new Page<>(pageNo, pageSize);
IPage<SarFileCompareInfo> pageList = sarFileCompareInfoService.page(page, queryWrapper); IPage<SarFileCompareInfo> pageList = sarFileCompareInfoService.page(page, queryWrapper);
for (SarFileCompareInfo info : pageList.getRecords()) { for (SarFileCompareInfo info : pageList.getRecords()) {
@@ -233,7 +233,7 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl<SarFileCompareInf
SarFileCompareInfo sarFileCompareInfo = new SarFileCompareInfo(); SarFileCompareInfo sarFileCompareInfo = new SarFileCompareInfo();
String id = UUID.randomUUID().toString(); String id = UUID.randomUUID().toString();
sarFileCompareInfo.setId(id); sarFileCompareInfo.setId(id);
sarFileCompareInfo.setFileIdLeft(leftInfo.getId()); sarFileCompareInfo.setFileIdLeft(leftInfo.getFileId());
// 处理文档库id字段 根据编号和标题查询 // 处理文档库id字段 根据编号和标题查询
List<Map<String, Object>> bussDocumentLibraryEOList = bussDocumentLibraryEOService.getListBySerialNumber(leftInfo.getSerialNumber()); List<Map<String, Object>> bussDocumentLibraryEOList = bussDocumentLibraryEOService.getListBySerialNumber(leftInfo.getSerialNumber());
if (CollectionUtil.isNotEmpty(bussDocumentLibraryEOList)) { if (CollectionUtil.isNotEmpty(bussDocumentLibraryEOList)) {
@@ -244,7 +244,7 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl<SarFileCompareInf
sarFileCompareInfo.setFileTypeLeft(leftInfo.getFileType()); sarFileCompareInfo.setFileTypeLeft(leftInfo.getFileType());
sarFileCompareInfo.setSerialNumberLeft(leftInfo.getSerialNumber()); sarFileCompareInfo.setSerialNumberLeft(leftInfo.getSerialNumber());
sarFileCompareInfo.setFileIdRight(rightInfo.getId()); sarFileCompareInfo.setFileIdRight(rightInfo.getFileId());
// 处理文档库id字段 根据编号和标题查询 // 处理文档库id字段 根据编号和标题查询
List<Map<String, Object>> bussDocumentLibraryEOList1 = bussDocumentLibraryEOService.getListBySerialNumber(rightInfo.getSerialNumber()); List<Map<String, Object>> bussDocumentLibraryEOList1 = bussDocumentLibraryEOService.getListBySerialNumber(rightInfo.getSerialNumber());
if (CollectionUtil.isNotEmpty(bussDocumentLibraryEOList1)) { if (CollectionUtil.isNotEmpty(bussDocumentLibraryEOList1)) {
@@ -222,7 +222,7 @@ public class ExtRepoFolderServiceImpl extends ServiceImpl<ExtRepoFolderMapper, E
public List<ERFTreeData> queryTreeList() { public List<ERFTreeData> queryTreeList() {
try { try {
List<ExtRepoFolder> list = queryList(); List<ExtRepoFolder> list = queryList();
List<ERFTreeData> res = getSubFolder(superFolder, list, 1, true); List<ERFTreeData> res = getSubFolder(superFolder, list, 1);
Collections.sort(res); Collections.sort(res);
return res; return res;
} catch (Exception ex) { } catch (Exception ex) {
@@ -235,22 +235,22 @@ public class ExtRepoFolderServiceImpl extends ServiceImpl<ExtRepoFolderMapper, E
/** /**
* 查找子文件夹生成树结构 * 查找子文件夹生成树结构
*/ */
private List<ERFTreeData> getSubFolder(String supId, List<ExtRepoFolder> list, int level, boolean needAuth) { private List<ERFTreeData> getSubFolder(String supId, List<ExtRepoFolder> list, int level) {
List<ERFTreeData> resList = new ArrayList<>(); List<ERFTreeData> resList = new ArrayList<>();
for (ExtRepoFolder erf : list) { for (ExtRepoFolder erf : list) {
if (supId.equals(erf.getSupFolder())) { if (supId.equals(erf.getSupFolder())) {
int childLevel = level + 1; int childLevel = level + 1;
if (!needAuth || haveViewAuth(erf.getId())) { if (haveViewAuth(erf.getId())) {
ERFTreeData date = new ERFTreeData(erf.getFolderName(), erf.getId(), level, erf.getOrderId()); ERFTreeData date = new ERFTreeData(erf.getFolderName(), erf.getId(), level, erf.getOrderId());
date.setAuthManageIdsName(erf.getAuthManageIdsName()); date.setAuthManageIdsName(erf.getAuthManageIdsName());
date.setAuthManageIds(erf.getAuthManageIds()); date.setAuthManageIds(erf.getAuthManageIds());
date.setAuthViewIdsName(erf.getAuthViewIdsName()); date.setAuthViewIdsName(erf.getAuthViewIdsName());
date.setAuthViewIds(erf.getAuthViewIds()); date.setAuthViewIds(erf.getAuthViewIds());
date.setChildren(getSubFolder(erf.getId(), list, childLevel, false)); date.setChildren(getSubFolder(erf.getId(), list, childLevel));
date.sortChildren(); date.sortChildren();
resList.add(date); resList.add(date);
} else { } else {
resList.addAll(getSubFolder(erf.getId(), list, childLevel, true)); resList.addAll(getSubFolder(erf.getId(), list, childLevel));
} }
} }
} }
@@ -67,6 +67,11 @@ public class LarkController {
log.info(""+employeeId+"用户推送知识库一级分类菜单:=========================================================="); log.info(""+employeeId+"用户推送知识库一级分类菜单:==========================================================");
feishuService.sendKnowledgeBaseTypeCard(employeeId.split(",")); feishuService.sendKnowledgeBaseTypeCard(employeeId.split(","));
} }
//判断用户发送的消息内容如果包含"负责人" 那么给用户推送知识库分类负责人信息
if(StringUtils.contains(text,"负责人")){
log.info(""+employeeId+"用户推送知识库负责人:==========================================================");
feishuService.sendKnowledgeBaseTypeChargePersonCard(employeeId.split(","));
}
} }
} }
return decrypt; return decrypt;
@@ -56,4 +56,10 @@ public interface IFeishuService {
* @param jsonObject * @param jsonObject
*/ */
void sendKnowledgeBaseInfoCard(JSONObject jsonObject); void sendKnowledgeBaseInfoCard(JSONObject jsonObject);
/**
* 发送知识库分类负责人卡片消息 用户输入负责人的时候
* @param split
*/
void sendKnowledgeBaseTypeChargePersonCard(String[] split);
} }
@@ -213,6 +213,16 @@ public class FeishuServiceImpl implements IFeishuService {
contentSb.append("}"); contentSb.append("}");
contentSb.append("}"); contentSb.append("}");
} }
if (StrUtil.isNotEmpty(feishuMsgVo.getAssignee())){
contentSb.append(",");
contentSb.append("{");
contentSb.append("\"is_short\": false,");
contentSb.append("\"text\": {");
contentSb.append("\"content\": \"**Assignee** " + feishuMsgVo.getAssignee() + "\",");
contentSb.append("\"tag\": \"lark_md\"");
contentSb.append("}");
contentSb.append("}");
}
if (StrUtil.isNotEmpty(feishuMsgVo.getDueDate())){ if (StrUtil.isNotEmpty(feishuMsgVo.getDueDate())){
contentSb.append(","); contentSb.append(",");
contentSb.append("{"); contentSb.append("{");
@@ -542,4 +552,83 @@ public class FeishuServiceImpl implements IFeishuService {
} }
} }
@Override
public void sendKnowledgeBaseTypeChargePersonCard(String[] userIds) {
String token = null;
try {
token = getTenantAccessToken();
} catch (IOException e) {
e.printStackTrace();
}
// 设置请求头
Map<String, String> headerMap = new HashMap<>();
headerMap.put("Authorization", "Bearer " + token);
headerMap.put("Content-Type", "application/json; charset=utf-8");
String sendJson = " {\n" +
" \"config\": {\n" +
" \"wide_screen_mode\": true\n" +
" },\n" +
" \"header\": {\n" +
" \"title\": {\n" +
" \"tag\": \"plain_text\",\n" +
" \"content\": \"点击下方的分类查看常见问题\"\n" +
" },\n" +
" \"template\": \"green\"\n" +
" }\n" +
"}";
JSONObject jsonObject = JSONObject.parseObject(sendJson);
JSONArray elements = new JSONArray();
JSONObject element = new JSONObject();
element.put("tag","action");
element.put("layout","bisected");
//获取分类
List<ProblemKnowledgeBaseClassifyEO> problemKnowledgeBaseClassifyEOList = this.problemKnowledgeBaseClassifyEOService.list();
this.problemKnowledgeBaseClassifyEOService.disposeData(problemKnowledgeBaseClassifyEOList);
JSONArray actions = new JSONArray();
//组装推送过去的点击按钮
for (ProblemKnowledgeBaseClassifyEO problemKnowledgeBaseClassifyEO : problemKnowledgeBaseClassifyEOList) {
JSONObject buttonObject = new JSONObject();
JSONObject text = new JSONObject();
JSONObject value = new JSONObject();
buttonObject.put("tag","button");
text.put("tag","plain_text");
text.put("content",problemKnowledgeBaseClassifyEO.getProblemLabel() + " [" + problemKnowledgeBaseClassifyEO.getChargePersonIdName() + "]");
value.put("chosen",problemKnowledgeBaseClassifyEO.getChargePersonId());
buttonObject.put("text",text);
buttonObject.put("type","primary");
buttonObject.put("value",value);
actions.add(buttonObject);
}
element.put("actions",actions);
elements.add(element);
jsonObject.put("elements",elements);
// 设置请求参数
JSONObject paramsMap = new JSONObject();
paramsMap.put("user_ids", userIds);
paramsMap.put("msg_type", "interactive");
paramsMap.put("card", jsonObject);
// 发送请求给飞书
String response = null;
try {
response = HttpRequestUtil.getResponseOfPOST(batchSendMessageUrl, headerMap, paramsMap.toJSONString());
} catch (IOException e) {
e.printStackTrace();
}
// 获取返回结果
JSONObject tokenJson = JSONObject.parseObject(response);
if(!tokenJson.get("code").toString().equals("0")) {
log.error("请求出现异常:" + tokenJson.get("msg") + " " + tokenJson);
}
}
} }
@@ -24,5 +24,7 @@ public class FeishuMsgVo {
private String url; //回调的网址 private String url; //回调的网址
private String assignee; //评估人 适用范围责任人提交通知发起人设计符合性pre-homo符合性验证符合性
} }
@@ -72,9 +72,11 @@ public class CountryCardManageReleaseEOController extends JeroController<Country
@AutoLog(value = "问题知识库-country_card-管理发布表-列表查询") @AutoLog(value = "问题知识库-country_card-管理发布表-列表查询")
@ApiOperation(value="问题知识库-country_card-管理发布表-列表查询", notes="问题知识库-country_card-管理发布表-列表查询") @ApiOperation(value="问题知识库-country_card-管理发布表-列表查询", notes="问题知识库-country_card-管理发布表-列表查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public Result<List<CountryCardManageReleaseEO>> queryList() { public Result<List<CountryCardManageReleaseEO>> queryList(CountryCardManageReleaseEO countryCardManageReleaseEO,
List<CountryCardManageReleaseEO> list = countryCardManageReleaseEOService.queryList(); HttpServletRequest req,
return Result.OK(list); @RequestParam(name="cut", defaultValue="cn") String cut) {
List<CountryCardManageReleaseEO> list = countryCardManageReleaseEOService.queryList(countryCardManageReleaseEO,req,cut);
return Result.OK(cut,list);
} }
/** /**
@@ -194,8 +196,9 @@ public class CountryCardManageReleaseEOController extends JeroController<Country
@AutoLog(value = "问题知识库-country_card-管理发布-获取适用市场下拉选") @AutoLog(value = "问题知识库-country_card-管理发布-获取适用市场下拉选")
@ApiOperation(value="问题知识库-country_card-管理发布-获取适用市场下拉选", notes="问题知识库-country_card-管理发布-获取适用市场下拉选") @ApiOperation(value="问题知识库-country_card-管理发布-获取适用市场下拉选", notes="问题知识库-country_card-管理发布-获取适用市场下拉选")
@GetMapping(value = "/getApplyMarketList") @GetMapping(value = "/getApplyMarketList")
public Result<List<DictModel>> getApplyMarketList(@RequestParam(name = "queryFlag",required=false) String queryFlag) { public Result<List<DictModel>> getApplyMarketList(@RequestParam(name = "queryFlag",required=false) String queryFlag,
Result<List<DictModel>> result = this.countryCardManageReleaseEOService.getApplyMarketList(queryFlag); @RequestParam(name = "cut",required = true) String cut) {
Result<List<DictModel>> result = this.countryCardManageReleaseEOService.getApplyMarketList(queryFlag,cut);
return result; return result;
} }
@@ -208,7 +211,8 @@ public class CountryCardManageReleaseEOController extends JeroController<Country
@ApiOperation(value="问题知识库-country_card-管理发布表-根据多个适用地区查询数据", notes="问题知识库-country_card-管理发布表-根据多个适用地区查询数据") @ApiOperation(value="问题知识库-country_card-管理发布表-根据多个适用地区查询数据", notes="问题知识库-country_card-管理发布表-根据多个适用地区查询数据")
@PostMapping(value = "/queryCountryCardManageReleaseByApplyMarkets") @PostMapping(value = "/queryCountryCardManageReleaseByApplyMarkets")
public Result<List<CountryCardManageReleaseEO>> queryCountryCardManageReleaseByApplyMarkets(@RequestBody JSONObject params) { public Result<List<CountryCardManageReleaseEO>> queryCountryCardManageReleaseByApplyMarkets(@RequestBody JSONObject params) {
String cut = params.getString("cut");
List<CountryCardManageReleaseEO> list = countryCardManageReleaseEOService.queryCountryCardManageReleaseByApplyMarkets(params); List<CountryCardManageReleaseEO> list = countryCardManageReleaseEOService.queryCountryCardManageReleaseByApplyMarkets(params);
return Result.OK(list); return Result.OK(cut,list);
} }
} }
@@ -5,6 +5,7 @@ import com.jero.common.api.vo.Result;
import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.DictModel;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO; import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
/** /**
@@ -60,7 +61,9 @@ public interface ICountryCardManageReleaseEOService extends IService<CountryCard
* *
* @return * @return
*/ */
List<CountryCardManageReleaseEO> queryList(); List<CountryCardManageReleaseEO> queryList(CountryCardManageReleaseEO countryCardManageReleaseEO,
HttpServletRequest req,
String cut);
/** /**
* 处理数据 * 处理数据
@@ -79,7 +82,7 @@ public interface ICountryCardManageReleaseEOService extends IService<CountryCard
* 获取适用市场 * 获取适用市场
* @return * @return
*/ */
Result<List<DictModel>> getApplyMarketList(String queryFlag); Result<List<DictModel>> getApplyMarketList(String queryFlag,String cut);
List<CountryCardManageReleaseEO> queryCountryCardManageReleaseByApplyMarkets(JSONObject params); List<CountryCardManageReleaseEO> queryCountryCardManageReleaseByApplyMarkets(JSONObject params);
} }
@@ -3,6 +3,8 @@ package com.jero.modules.problemKnowledgeBase.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.DictModel;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO; import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO; import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
@@ -29,6 +31,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
/** /**
* @Description: 问题知识库-country_card-管理发布表 * @Description: 问题知识库-country_card-管理发布表
* @Author: jero-boot * @Author: jero-boot
@@ -123,8 +127,12 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
* @return * @return
*/ */
@Override @Override
public List<CountryCardManageReleaseEO> queryList() { public List<CountryCardManageReleaseEO> queryList(CountryCardManageReleaseEO countryCardManageReleaseEO,
return list(); HttpServletRequest req,
String cut) {
QueryWrapper<CountryCardManageReleaseEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardManageReleaseEO, req.getParameterMap());
List<CountryCardManageReleaseEO> result = this.list(queryWrapper);
return result;
} }
@Override @Override
@@ -199,7 +207,7 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
} }
@Override @Override
public Result<List<DictModel>> getApplyMarketList(String queryFlag) { public Result<List<DictModel>> getApplyMarketList(String queryFlag,String cut) {
List<DictModel> result = new ArrayList<>(); List<DictModel> result = new ArrayList<>();
//获取所有的适用地区 //获取所有的适用地区
@@ -249,6 +257,12 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
} }
} }
if(StringUtils.equals(cut, CutEnum.EN.getValue())){
result.forEach(data -> {
data.setText(data.getTextEn());
});
}
return Result.OK(result); return Result.OK(result);
} }
@@ -1,6 +1,7 @@
package com.jero.modules.problemKnowledgeBase.service.impl; package com.jero.modules.problemKnowledgeBase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO; import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO; import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
@@ -171,6 +172,12 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
return flag; return flag;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
if(StringUtils.equals(cut, CutEnum.EN.getValue())){
collect.forEach(tempItem -> {
tempItem.setItemText(tempItem.getEnName());
});
}
countryCardTemp.setCountryCardTempItemEOList(collect); countryCardTemp.setCountryCardTempItemEOList(collect);
} }
@@ -1,16 +1,16 @@
package com.jero.modules.project.enums; package com.jero.modules.project.enums;
public enum ProjectTaskPlanningNameEnum { public enum ProjectTaskPlanningNameEnum {
LIST_CONFIRMATION("清单确认"," Checklist confirmation"), LIST_CONFIRMATION("法规清单确认","Regulation List Confirmation"),
LEGAL_TASK_CONFIRMATION("任务确认","Task confirmation"), LEGAL_TASK_CONFIRMATION("法规任务确认","Regulation Task Confirmation"),
DESIGN_DEADLINE("设计符合性","Design compliance"), DESIGN_DEADLINE("设计符合性确认","Design Compliance Confirmation"),
// PREHOMO_DEADLINE("Pre-Homo","Pre-Homo"), // PREHOMO_DEADLINE("Pre-Homo","Pre-Homo"),
// ATTESTATION_START_TIME("认证开始","Certification begins"), // ATTESTATION_START_TIME("认证开始","Certification begins"),
// ATTESTATION_END_TIME("认证结束"," End of certification"), // ATTESTATION_END_TIME("认证结束"," End of certification"),
PREHOMO_DEADLINE("摸底试验结束","Pre-Homo Completion"), // name:Pre-Homo value:Pre-Homo PREHOMO_DEADLINE("Pre-Homo确认","Pre-Homo Confirmation"), // name:Pre-Homo value:Pre-Homo
ATTESTATION_START_TIME("认证试验结束","Homo Test Completion"),// name:认证开始 value:Certification begins ATTESTATION_START_TIME("认证结束","Homo Completion"),// name:认证开始 value:Certification begins
ATTESTATION_END_TIME("认证批准","Type Approval"),// name:认证结束 value:End of certification ATTESTATION_END_TIME("认证开始","Homo KO"),// name:认证结束 value:End of certification
VERIFY_DEADLINE("验证符合性","Verify compliance"), VERIFY_DEADLINE("验证符合性确认","Validation Compliance Confirmation"),
; ;
String name; String name;
String value; String value;
@@ -2273,10 +2273,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
taskType = "Design Compliance Confirmation"; taskType = "Design Compliance Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName(); initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
SysUser initiatorLarkInfo = this.sysUserMapper.selectOne( feishuMsgVo.setAssignee(sysUser.getUsername());
new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getDesignInitiatorId()) // SysUser initiatorLarkInfo = this.sysUserMapper.selectOne(
); // new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getDesignInitiatorId())
initiatorLark = initiatorLarkInfo.getUsername(); // );
// initiatorLark = initiatorLarkInfo.getUsername();
} else if(StringUtils.equals(msgType, MsgTypeEnum.PREHOMO_CHARGE_PERSON_SUBMIT_MSG.getValue())){ } else if(StringUtils.equals(msgType, MsgTypeEnum.PREHOMO_CHARGE_PERSON_SUBMIT_MSG.getValue())){
String prehomoInitiatorId = jsonObject.getString("prehomoInitiatorId"); //pre-Home发起人id String prehomoInitiatorId = jsonObject.getString("prehomoInitiatorId"); //pre-Home发起人id
userIdList.add(prehomoInitiatorId); userIdList.add(prehomoInitiatorId);
@@ -2291,10 +2292,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
taskType = "Pre-Homo Confirmation"; taskType = "Pre-Homo Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName(); initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
SysUser initiatorLarkInfo = this.sysUserMapper.selectOne( feishuMsgVo.setAssignee(sysUser.getUsername());
new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getPrehomoInitiatorId()) // SysUser initiatorLarkInfo = this.sysUserMapper.selectOne(
); // new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getPrehomoInitiatorId())
initiatorLark = initiatorLarkInfo.getUsername(); // );
// initiatorLark = initiatorLarkInfo.getUsername();
} else if(StringUtils.equals(msgType, MsgTypeEnum.VERIFY_CHARGE_PERSON_SUBMIT_MSG.getValue())){ } else if(StringUtils.equals(msgType, MsgTypeEnum.VERIFY_CHARGE_PERSON_SUBMIT_MSG.getValue())){
String verifyInitiatorId = jsonObject.getString("verifyInitiatorId"); //验证符合性发起人id String verifyInitiatorId = jsonObject.getString("verifyInitiatorId"); //验证符合性发起人id
userIdList.add(verifyInitiatorId); userIdList.add(verifyInitiatorId);
@@ -2309,15 +2311,16 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
taskType = "Validation Compliance Confirmation"; taskType = "Validation Compliance Confirmation";
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName(); initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
SysUser initiatorLarkInfo = this.sysUserMapper.selectOne( feishuMsgVo.setAssignee(sysUser.getUsername());
new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getVerifyInitiatorId()) // SysUser initiatorLarkInfo = this.sysUserMapper.selectOne(
); // new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, projectLawsInventoryEO.getVerifyInitiatorId())
initiatorLark = initiatorLarkInfo.getUsername(); // );
// initiatorLark = initiatorLarkInfo.getUsername();
}else if(StringUtils.equals(msgType, MsgTypeEnum.DESIGN_INITIATOR_ACCEPTED_MSG.getValue())){ }else if(StringUtils.equals(msgType, MsgTypeEnum.DESIGN_INITIATOR_ACCEPTED_MSG.getValue())){
String designDutyId = jsonObject.getString("designDutyId"); //设计符合性责任人id String designDutyId = jsonObject.getString("designDutyId"); //设计符合性责任人id
userIdList.add(designDutyId); userIdList.add(designDutyId);
msgContentEN = "The design compliance information of " + serialNumber +" in "+ projectNameInfoEO.getProjectName() msgContentEN = "The design compliance information of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". you sumitted has been approved."; + " you submitted has been approved.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket() msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a design compliance task to complete"; + ": You have a design compliance task to complete";
@@ -2335,7 +2338,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
String prehomoDutyId = jsonObject.getString("prehomoDutyId"); //pre-Home责任人id String prehomoDutyId = jsonObject.getString("prehomoDutyId"); //pre-Home责任人id
userIdList.add(prehomoDutyId); userIdList.add(prehomoDutyId);
msgContentEN = "The Pre-Homo confirmation information of " + serialNumber +" in "+ projectNameInfoEO.getProjectName() msgContentEN = "The Pre-Homo confirmation information of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ ". you sumitted has been approved."; + " you submitted has been approved.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket() msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a Pre-Homo task to complete"; + ": You have a Pre-Homo task to complete";
@@ -2353,7 +2356,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
String verifyDutyId = jsonObject.getString("verifyDutyId"); //验证符合性责任人id String verifyDutyId = jsonObject.getString("verifyDutyId"); //验证符合性责任人id
userIdList.add(verifyDutyId); userIdList.add(verifyDutyId);
msgContentEN = "The validation compliance information of " + serialNumber +" in "+ projectNameInfoEO.getProjectName() msgContentEN = "The validation compliance information of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
+ "you sumitted has been approved."; + " you submitted has been approved.";
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket() msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ ": You have a validation compliance task to complete"; + ": You have a validation compliance task to complete";
@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
@@ -120,7 +121,8 @@ public class ExcelUtil {
int partNameNum = 0; int partNameNum = 0;
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {//获取每个Sheet表 for (int i = 0; i < workbook.getNumberOfSheets(); i++) {//获取每个Sheet表
sheet = workbook.getSheetAt(i); sheet = workbook.getSheetAt(i);
WorksheetPart worksheetPart = (WorksheetPart) pkg.getParts().get(new PartName("/xl/worksheets/" + sheet.getSheetName().toLowerCase() + ".xml")); String sheetName = "sheet" + (i+1); // xml下的表格名称 不是sheet页签名称
WorksheetPart worksheetPart = (WorksheetPart) pkg.getParts().get(new PartName("/xl/worksheets/" + sheetName + ".xml"));
partNameNum++; partNameNum++;
//获得数据的总行数 //获得数据的总行数
@@ -142,6 +144,10 @@ public class ExcelUtil {
if(ObjectUtil.isNull(cell)) { if(ObjectUtil.isNull(cell)) {
continue; continue;
} }
// 判断单元格类型非文本单元格不处理
if(! (org.apache.poi.ss.usermodel.Cell.CELL_TYPE_STRING == cell.getCellType())) {
continue;
}
String cellValue = cell.getStringCellValue(); String cellValue = cell.getStringCellValue();
@@ -149,7 +155,7 @@ public class ExcelUtil {
String key = (String) imgMap.get("key"); String key = (String) imgMap.get("key");
String text = (String) imgMap.get("text"); String text = (String) imgMap.get("text");
byte[] bytes = (byte[]) imgMap.get("bytes"); byte[] bytes = (byte[]) imgMap.get("bytes");
if (("${" + key + "}").equals(cellValue)) { if (StringUtils.isNotEmpty(cellValue) && cellValue.contains("${" + key + "}")) {
// 根据图片大小调整行高 // 根据图片大小调整行高
ByteArrayInputStream in = new ByteArrayInputStream(bytes); ByteArrayInputStream in = new ByteArrayInputStream(bytes);
@@ -161,7 +167,7 @@ public class ExcelUtil {
} }
// 插入图片到表格 // 插入图片到表格
putImagePOI(worksheetPart, pkg, cell, bytes, sheet.getSheetName().toLowerCase(), String.valueOf(partNameNum)); putImagePOI(worksheetPart, pkg, cell, bytes, sheetName, String.valueOf(partNameNum));
} }
} }
j++; // 单元格非空才++ j++; // 单元格非空才++
@@ -162,7 +162,9 @@ public class LawsMonthlyReportWriteEO implements Serializable {
/**法规联系人*/ /**法规联系人*/
@Excel(name = "法规联系人", width = 15) @Excel(name = "法规联系人", width = 15)
@ApiModelProperty(value = "法规联系人") @ApiModelProperty(value = "法规联系人")
private java.lang.String lawsContact; private java.lang.String lawsContact;//存id
@TableField(exist = false)
private java.lang.String lawsContactName;//存用户名
/**链接*/ /**链接*/
@Excel(name = "链接", width = 15) @Excel(name = "链接", width = 15)
@@ -1,6 +1,7 @@
package com.jero.modules.report.service.impl; package com.jero.modules.report.service.impl;
import cn.hutool.core.util.ZipUtil; import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.utils.IOUtils; import com.aliyuncs.utils.IOUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -139,6 +140,9 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
iNewOpinionTemplateEOService.remove(wrapper); iNewOpinionTemplateEOService.remove(wrapper);
//新增 //新增
List<NewOpinionTemplateEO> newOpinionTemplateEOList = lawsMonthlyReportWriteEO.getNewOpinionTemplateEOList(); List<NewOpinionTemplateEO> newOpinionTemplateEOList = lawsMonthlyReportWriteEO.getNewOpinionTemplateEOList();
for (NewOpinionTemplateEO newOpinionTemplateEO : newOpinionTemplateEOList) {
newOpinionTemplateEO.setLawsMonthlyReportWriteId(lawsMonthlyReportWriteEO.getId());
}
iNewOpinionTemplateEOService.saveBatch(newOpinionTemplateEOList); iNewOpinionTemplateEOService.saveBatch(newOpinionTemplateEOList);
}else if (ContentTemplateEnum.NEW_RELEASE_STANDARD_MANIFEST_TEMPLATE.getValue().equals(lawsMonthlyReportWriteEO.getContentTemplate())){ }else if (ContentTemplateEnum.NEW_RELEASE_STANDARD_MANIFEST_TEMPLATE.getValue().equals(lawsMonthlyReportWriteEO.getContentTemplate())){
@@ -149,6 +153,9 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
iNewStandardTemplateEOService.remove(lambdaQueryWrapper); iNewStandardTemplateEOService.remove(lambdaQueryWrapper);
//新增 //新增
List<NewStandardTemplateEO> newStandardTemplateEOList = lawsMonthlyReportWriteEO.getNewStandardTemplateEOList(); List<NewStandardTemplateEO> newStandardTemplateEOList = lawsMonthlyReportWriteEO.getNewStandardTemplateEOList();
for (NewStandardTemplateEO newStandardTemplateEO : newStandardTemplateEOList) {
newStandardTemplateEO.setLawsMonthlyReportWriteId(lawsMonthlyReportWriteEO.getId());
}
iNewStandardTemplateEOService.saveBatch(newStandardTemplateEOList); iNewStandardTemplateEOService.saveBatch(newStandardTemplateEOList);
} }
@@ -289,6 +296,24 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
Page<LawsMonthlyReportWriteEO> pageInfo = this.page(page, queryWrapper); Page<LawsMonthlyReportWriteEO> pageInfo = this.page(page, queryWrapper);
//法规月报id //法规月报id
List<String> lawsMonthlyReportIdList = pageInfo.getRecords().stream().map(LawsMonthlyReportWriteEO::getId).collect(Collectors.toList()); List<String> lawsMonthlyReportIdList = pageInfo.getRecords().stream().map(LawsMonthlyReportWriteEO::getId).collect(Collectors.toList());
List<String> userIdList = pageInfo.getRecords().stream().map(LawsMonthlyReportWriteEO::getLawsContact).collect(Collectors.toList());
List<String> userIds = new ArrayList<>();
for (String s : userIdList) {
if(StringUtils.isNotBlank(s)){
if(s.contains(",")){
userIds.addAll(Arrays.asList(s.split(",")));
}else{
userIds.add(s);
}
}
}
List<JSONObject> jsonObjects = sysBaseApi.queryUsersByIds(StringUtils.join(userIds, ","));
List<LoginUser> userList = new ArrayList<>();
for (JSONObject jsonObject : jsonObjects) {
LoginUser loginUser = JSONObject.parseObject(jsonObject.toJSONString(), LoginUser.class);
userList.add(loginUser);
}
//获取章节目录 //获取章节目录
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOList = lawsMonthlyReportTitleTemplateEOService.list(); List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOList = lawsMonthlyReportTitleTemplateEOService.list();
@@ -311,6 +336,8 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
for (LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO : pageInfo.getRecords()) { for (LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO : pageInfo.getRecords()) {
//处理法规联系人
lawsContact(userList, lawsMonthlyReportWriteEO);
//处理章节目录 //处理章节目录
if(StringUtils.isNotBlank(lawsMonthlyReportWriteEO.getMemoriesChapter())){ if(StringUtils.isNotBlank(lawsMonthlyReportWriteEO.getMemoriesChapter())){
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOList.stream() List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOList.stream()
@@ -356,6 +383,24 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
return pageInfo; return pageInfo;
} }
private void lawsContact(List<LoginUser> userList, LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO) {
String lawsContact = lawsMonthlyReportWriteEO.getLawsContact();
if(StringUtils.isNotBlank(lawsContact)){
List<LoginUser> collect = userList.stream().filter(e -> lawsContact.contains(e.getId())).collect(Collectors.toList());
StringBuilder sb = new StringBuilder();
for (String s : lawsContact.split(",")) {
List<LoginUser> loginUserList = collect.stream().filter(e -> e.getId().equals(s)).collect(Collectors.toList());
if(loginUserList.size() != 0){
sb.append(loginUserList.get(0).getUsername()+",");
}
}
if(StringUtils.isNotBlank(sb)){
String substring = sb.substring(0, sb.length() - 1);
lawsMonthlyReportWriteEO.setLawsContactName(substring);
}
}
}
@Override @Override
public void exportMonthlyReport(HttpServletResponse response, public void exportMonthlyReport(HttpServletResponse response,
HttpServletRequest request, HttpServletRequest request,
@@ -411,8 +456,8 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOService.list(); List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOService.list();
lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOS.stream() lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOS.stream()
.filter(e -> memoriesChapterList.contains(e.getId())).collect(Collectors.toList()); .filter(e -> memoriesChapterList.contains(e.getId())).collect(Collectors.toList());
long l = System.currentTimeMillis();
String path = uploadpath + "/tempZip"; String path = uploadpath + "/tempZip"+l;
File fileTemp = new File(path); File fileTemp = new File(path);
if (fileTemp.exists()) { if (fileTemp.exists()) {
fileTemp.delete(); fileTemp.delete();
@@ -432,16 +477,34 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
os.write(len); os.write(len);
} }
os.flush(); os.flush();
os.close();
fis.close();
} catch (Exception e) { } catch (Exception e) {
}finally { }finally {
IOUtils.closeQuietly(os); IOUtils.closeQuietly(os);
File file = new File(uploadpath + "/tempZip"); File file = new File(uploadpath + "/tempZip"+l);
FileUtil.deleteContents(file); FileUtil.deleteContents(file);
File fileTem = new File(uploadpath + "/tempZip.zip"); File fileTem = new File(uploadpath + "/tempZip"+l+".zip");
FileUtil.deleteContents(fileTem); FileUtil.deleteContents(fileTem);
} }
//导出月报后修改列表状态
List<LawsMonthlyReportWriteEO> list = new ArrayList<>();
if(StringUtils.isBlank(lawsMonthlyReportWriteEO.getIds())){
//导出全部
list = this.list();
}else{
//导出部分
LambdaQueryWrapper<LawsMonthlyReportWriteEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(LawsMonthlyReportWriteEO::getId,Arrays.asList(lawsMonthlyReportWriteEO.getIds().split(",")));
list = this.list(lambdaQueryWrapper);
}
for (LawsMonthlyReportWriteEO monthlyReportWriteEO : list) {
monthlyReportWriteEO.setExportState(ExportStateEnum.HAS_BEEN_EXPORT.getValue());
}
if(list.size() != 0){
this.updateBatchById(list);
}
} }
@@ -461,10 +524,12 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
List<LawsMonthlyReportTitleTemplateEO> reportTitleOneList = lawsMonthlyReportTitleTemplateEOService.list(wrapper); List<LawsMonthlyReportTitleTemplateEO> reportTitleOneList = lawsMonthlyReportTitleTemplateEOService.list(wrapper);
//蔚来汽车法规月报-202004-主页面-CN //蔚来汽车法规月报-202004-主页面-CN
//NIO Monthly Report on Automobile Regulations-202004-Main Page-EN //NIO Monthly Report on Automobile Regulations-202004-Main Page-EN
String memoriesChapterCN = path + File.separator +"蔚来汽车法规月报" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"主页面-CN.docx"; String memoriesChapterCN = path + File.separator +"蔚来汽车法规月报-" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-主页面-CN.docx";
String memoriesChapterEN = path + File.separator +"NIO Monthly Report on Automobile Regulations-" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-Main Page-EN.docx"; String memoriesChapterEN = path + File.separator +"蔚来汽车法规月报-" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-主页面-EN.docx";
String memoriesChapterContentCn = path + File.separator +"蔚来汽车法规月报" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-CN.docx"; // String memoriesChapterEN = path + File.separator +"NIO Monthly Report on Automobile Regulations-" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-Main Page-EN.docx";
String memoriesChapterContentEn = path + File.separator +"Weilai Automobile Regulations Monthly Report-" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-EN.docx"; String memoriesChapterContentCn = path + File.separator +"蔚来汽车法规月报-" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-CN.docx";
String memoriesChapterContentEn = path + File.separator +"蔚来汽车法规月报-" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-EN.docx";
// String memoriesChapterContentEn = path + File.separator +"Weilai Automobile Regulations Monthly Report-" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-EN.docx";
String titleCN = "蔚来汽车法规月报" + lawsMonthlyReportWriteEOS.get(0).getMonth(); String titleCN = "蔚来汽车法规月报" + lawsMonthlyReportWriteEOS.get(0).getMonth();
String titleEN = "NIO Monthly Report on Automobile Regulations-" + lawsMonthlyReportWriteEOS.get(0).getMonth(); String titleEN = "NIO Monthly Report on Automobile Regulations-" + lawsMonthlyReportWriteEOS.get(0).getMonth();
@@ -2,6 +2,7 @@ package com.jero.modules.report.util;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.jero.common.constant.enums.CutEnum; import com.jero.common.constant.enums.CutEnum;
import com.jero.modules.project.service.impl.ProjectLawsInventoryEOServiceImpl;
import com.jero.modules.report.entity.LawsMonthlyReportWriteEO; import com.jero.modules.report.entity.LawsMonthlyReportWriteEO;
import com.jero.modules.report.entity.NewOpinionTemplateEO; import com.jero.modules.report.entity.NewOpinionTemplateEO;
import com.jero.modules.report.entity.NewStandardTemplateEO; import com.jero.modules.report.entity.NewStandardTemplateEO;
@@ -173,7 +174,8 @@ public class WordUtil {
XWPFRun run = logo.createRun(); XWPFRun run = logo.createRun();
String imgFile = logoFilePath; String imgFile = logoFilePath;
InputStream is = new FileInputStream(imgFile); InputStream is = WordUtil.class.getClassLoader().getResourceAsStream("static/home/weilai.png");
// InputStream is = new FileInputStream(imgFile);
XWPFPicture picture = run.addPicture(is, XWPFDocument.PICTURE_TYPE_PNG, imgFile, Units.toEMU(95), Units.toEMU(35)); XWPFPicture picture = run.addPicture(is, XWPFDocument.PICTURE_TYPE_PNG, imgFile, Units.toEMU(95), Units.toEMU(35));
String blipID = ""; String blipID = "";
for(XWPFPictureData picturedata : header.getAllPackagePictures()) { //这段必须有不然打开的logo图片不显示 for(XWPFPictureData picturedata : header.getAllPackagePictures()) { //这段必须有不然打开的logo图片不显示
+13 -12
View File
@@ -211,7 +211,7 @@ module.exports = {
DataLogManagementPage: 'Data Log Management Page', DataLogManagementPage: 'Data Log Management Page',
VersionNumber: 'Version', VersionNumber: 'Version',
DataContent: 'Data Content', DataContent: 'Data Content',
creator: 'Creator', creator: 'Created By',
selectTwoPiecesData: 'Please select two pieces of data', selectTwoPiecesData: 'Please select two pieces of data',
selectSameDatabase: 'Please select the same database table and data ID for comparison', selectSameDatabase: 'Please select the same database table and data ID for comparison',
DataComparison: 'Data Comparison', DataComparison: 'Data Comparison',
@@ -702,7 +702,7 @@ module.exports = {
pleaseEnterTheCorrectWebAddress: 'Please enter the correct web address', pleaseEnterTheCorrectWebAddress: 'Please enter the correct web address',
updateTime: 'Update Time', updateTime: 'Update Time',
comment: 'Comment', comment: 'Comment',
historicalVersion: 'Historical Version', historicalVersion: 'History Version',
versionName: 'Version Name', versionName: 'Version Name',
finalizationTime: 'Finalization Time', finalizationTime: 'Finalization Time',
setting: 'Setting', setting: 'Setting',
@@ -1049,24 +1049,24 @@ module.exports = {
NNNiONumber: 'Number', NNNiONumber: 'Number',
NNiONumber: 'NIO Number', NNiONumber: 'NIO Number',
ParameterNo: 'Number', ParameterNo: 'Number',
NRequired: 'Is Must', NRequired: 'Required',
NParameterName: 'Para Name', NParameterName: 'Para Name',
NtechnicalField: 'Tech field', NtechnicalField: 'Tech field',
NparameterBatch: 'Params Batch', NparameterBatch: 'Params Batch',
NareaOfResponsibility: 'Responsible Field', NareaOfResponsibility: 'Responsible Field',
NParameterDescription: 'Description', NParameterDescription: 'Description',
NcertificationCategory: 'Cert', NcertificationCategory: 'Cert Category',
NcontrolType: 'Control Type', NcontrolType: 'Control Componet',
NcontrolVerification: 'Control Verify', NcontrolVerification: 'Validate Componet',
NcontrolAlternatives: 'Control Values', NcontrolAlternatives: 'Componet Value',
DefaultValue: 'Default Value', DefaultValue: 'Default Value',
NattachmentTemplate: 'File Template', NattachmentTemplate: 'File Template',
Ntext: 'Text', Ntext: 'Text',
NDropdownradio: 'Pull Single', NDropdownradio: 'Pull single',
NDropdownmultipleselection: 'Pull More', NDropdownmultipleselection: 'Pull more',
Nenclosure: 'File', Nenclosure: 'File',
Atext: 'Text+Pull Single', Atext: 'Text+Pull single',
Btext: 'Text+Pull More', Btext: 'Text+Pull more',
Ctext: 'Text+File', Ctext: 'Text+File',
Dtext: 'Pull single+File', Dtext: 'Pull single+File',
Etext: 'Pull more+File', Etext: 'Pull more+File',
@@ -1213,7 +1213,7 @@ module.exports = {
displayPermission: 'Display permission', displayPermission: 'Display permission',
authorizedUser: 'Authorized user', authorizedUser: 'Authorized user',
problemClassification: 'Problem classification', problemClassification: 'Problem classification',
market: 'market', market: 'Market',
documentNumber: 'Document Number', documentNumber: 'Document Number',
documentTitle: 'Document Title', documentTitle: 'Document Title',
bringInDocumentInformation: 'Bring in document information', bringInDocumentInformation: 'Bring in document information',
@@ -1259,4 +1259,5 @@ module.exports = {
pleaseDecompositionStandardOrder:'Please import or bring in at least one decomposition standard order', pleaseDecompositionStandardOrder:'Please import or bring in at least one decomposition standard order',
currentlyTheFirstOneThatCannotMovedUp:'Currently the first one that cannot be moved up', currentlyTheFirstOneThatCannotMovedUp:'Currently the first one that cannot be moved up',
currentlyTheLastOneCannotmovedDown:'Currently the last one cannot be moved down', currentlyTheLastOneCannotmovedDown:'Currently the last one cannot be moved down',
weilaiRegulationMonthlyReport:'Weilai Regulation Monthly Report',
} }
+2 -1
View File
@@ -495,7 +495,7 @@ module.exports = {
toBeConfirmed: '待确认', toBeConfirmed: '待确认',
Operator: '操作人', Operator: '操作人',
role: '角色', role: '角色',
operationContent: '操作内容', OperationContent: '操作内容',
operationTime: '操作时间', operationTime: '操作时间',
toDoProcess: '待办流程', toDoProcess: '待办流程',
processDone: '已办流程', processDone: '已办流程',
@@ -1361,4 +1361,5 @@ module.exports = {
pleaseDecompositionStandardOrder:'请导入或带入至少一条分解标准单', pleaseDecompositionStandardOrder:'请导入或带入至少一条分解标准单',
currentlyTheFirstOneThatCannotMovedUp:'当前已是第一个无法进行上移', currentlyTheFirstOneThatCannotMovedUp:'当前已是第一个无法进行上移',
currentlyTheLastOneCannotmovedDown:'当前已是最后一个无法进行下移', currentlyTheLastOneCannotmovedDown:'当前已是最后一个无法进行下移',
weilaiRegulationMonthlyReport:'蔚来法规月报',
} }
@@ -40,7 +40,7 @@
:dataSource='areaTable' :dataSource='areaTable'
:pagination='false' :pagination='false'
:loading='loading' :loading='loading'
:scroll="{x: '100%',y:600}" :scroll="{x: '100%',y:370}"
:rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}' :rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
@change='handleTableChange'> @change='handleTableChange'>
+10 -1
View File
@@ -69,7 +69,7 @@
methods: { methods: {
onSelect(obj) { onSelect(obj) {
this.$emit('menuSelect', obj) this.$emit('menuSelect', obj)
}, }
} }
} }
</script> </script>
@@ -201,5 +201,14 @@
left: 0 !important; left: 0 !important;
right: inherit !important; right: inherit !important;
} }
</style>
<style scoped>
::v-deep .ant-menu-item a {
overflow: hidden !important;
white-space: nowrap!important;
text-overflow: ellipsis!important;
-o-text-overflow: ellipsis!important;
}
</style> </style>
<!-- update_end author:sunjianlei date:20190530 for: 选中首页的时候不显示背景颜色 --> <!-- update_end author:sunjianlei date:20190530 for: 选中首页的时候不显示背景颜色 -->
+2 -2
View File
@@ -109,7 +109,7 @@ export default {
props = { to: { path: menu.path } } props = { to: { path: menu.path } }
} }
const attrs = { href: menu.path, target: menu.meta.target } const attrs = { href: menu.path, target: menu.meta.target , title:menu.meta.title }
if (menu.children && menu.alwaysShow) { if (menu.children && menu.alwaysShow) {
// 把有子菜单的 并且 父菜单是要隐藏子菜单的 // 把有子菜单的 并且 父菜单是要隐藏子菜单的
@@ -162,7 +162,7 @@ export default {
span span
slot = 'title' > slot = 'title' >
{ this.renderIcon(menu.meta.icon) } { this.renderIcon(menu.meta.icon) }
< span > { menu.meta.title } < /span> < span title={menu.meta.title}> { menu.meta.title } < /span>
< /span> < /span>
{ {
itemArr itemArr
+21 -63
View File
@@ -168,7 +168,7 @@
}, },
searchQueryList: { searchQueryList: {
type: Array, type: Array,
default: ()=>{ default: () => {
return [] return []
} }
}, },
@@ -195,7 +195,7 @@
this.queryParam = {} this.queryParam = {}
if (this.isDefault) { if (this.isDefault) {
let startTime = moment(new Date()).format('YYYY-MM-DD') let startTime = moment(new Date()).format('YYYY-MM-DD')
let endTime = this.getNewDate('after', 6) let endTime = this.haflYear()
this.queryParam['WarnTime'] = [startTime, endTime] this.queryParam['WarnTime'] = [startTime, endTime]
this.queryParam = { ...this.queryParam } this.queryParam = { ...this.queryParam }
} }
@@ -217,68 +217,26 @@
} }
}) })
}, },
getNewDate(flag, many) { haflYear() {
// 先获取当前时间
const thirtyDays = [4, 6, 9, 11] // 30天的月份 var curDate = (new Date()).getTime()
// 将半年的时间单位换算成毫秒
const thirtyOneDays = [1, 3, 5, 7, 8, 10, 12] // 31天的月份 var halfYear = 365 / 2 * 24 * 3600 * 1000
// 半年前的时间毫秒单位
const currDate = new Date() // 今天日期 var pastResult = curDate + halfYear
// 日期函数定义起点为半年前
const year = currDate.getFullYear() var pastDate = new Date(pastResult)
var pastYear = pastDate.getFullYear()
let month = currDate.getMonth() + 1 var pastMonth = pastDate.getMonth() + 1
var pastDay = pastDate.getDate()
let targetDateMilli = 0 if (pastMonth >= 1 && pastMonth <= 9) {
pastMonth = '0' + pastMonth
let GMTDate = '' // 中国标准时间
let targetYear = '' //
let targetMonth = '' //
let targetDate = '' //
let dealTargetDays = '' // 目标日期
const isLeapYear = !!((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) // 是否是闰年
let countDays = 0 // 累计天数
for (let i = 0; i < many; i++) {
if (flag === 'before') {
month = month - 1 <= 0 ? 12 : month - 1
} else {
month = month + 1 > 12 ? 1 : month + 1
}
thirtyDays.includes(month) ? (countDays += 30) : thirtyOneDays.includes(month) ? (countDays += 31) : isLeapYear ? (countDays += 29) : (countDays += 28)
} }
if (pastDay >= 0 && pastDay <= 9) {
targetDateMilli = currDate.setDate( pastDay = '0' + pastDay
currDate.getDate() - (flag === 'before' ? countDays : countDays * -1) }
) var endDate = pastYear + '-' + pastMonth + '-' + (pastDay + 1)
return endDate
GMTDate = new Date(targetDateMilli)
targetYear = GMTDate.getFullYear()
targetMonth = GMTDate.getMonth() + 1
targetDate = GMTDate.getDate()
targetMonth = targetMonth.toString().padStart(2, '0')
targetDate = targetDate.toString().padStart(2, '0')
dealTargetDays = `${targetYear}-${targetMonth}-${targetDate}`
return dealTargetDays
}, },
dateChange(item) { dateChange(item) {
this.queryParam[item] = moment(this.queryParam[item]).format('YYYY-MM-DD') this.queryParam[item] = moment(this.queryParam[item]).format('YYYY-MM-DD')
@@ -362,7 +362,7 @@
}, },
completeTask(value, taskId, isTrue) { completeTask(value, taskId, isTrue) {
let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
value.operatorTime = handlingTime value.handlingTime = handlingTime
Object.keys(value).forEach(res => { Object.keys(value).forEach(res => {
if (value[res] && value[res] instanceof String) { if (value[res] && value[res] instanceof String) {
value[res] = value[res].replace(/\"/g, '“') value[res] = value[res].replace(/\"/g, '“')
@@ -75,7 +75,7 @@
</a-form> </a-form>
</div> </div>
<div class="table-operator"> <div class="table-operator">
<div @click="initiatingProcessClick" class="operator-text"> <div @click="initiatingProcessClick" v-has="'regulatoryComments:initiationProcess'" class="operator-text">
<a-icon type="apartment"/> <a-icon type="apartment"/>
{{$t('initiatingProcess')}} {{$t('initiatingProcess')}}
</div> </div>
@@ -86,7 +86,7 @@
size="middle" size="middle"
:loading="loading" :loading="loading"
:pagination="false" :pagination="false"
:scroll="{x: '100%'}" :scroll="{x: '100%',y:'calc(100vh - 160px)'}"
rowKey="id" rowKey="id"
:data-source="dataSource" :data-source="dataSource"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@@ -232,6 +232,7 @@
searchReset() { searchReset() {
this.queryParam = {} this.queryParam = {}
this.$route.query.serialNumber = '' this.$route.query.serialNumber = ''
this.$route.query.gatherResult = ''
this.pageNo = 1 this.pageNo = 1
this.getList() this.getList()
}, },
@@ -19,7 +19,7 @@
</div> </div>
<a-form-model-item class="itemModel" prop="problemLabel"> <a-form-model-item class="itemModel" prop="problemLabel">
<a-input class="box-input" <a-input class="box-input"
v-model="formInline.problemLabel" v-model.trim="formInline.problemLabel"
:placeholder="$t('PleaseEnter')+$t('problemLabel')"/> :placeholder="$t('PleaseEnter')+$t('problemLabel')"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -34,6 +34,7 @@
</div> </div>
<a-form-model-item class="itemModel" prop="chargePersonIdName"> <a-form-model-item class="itemModel" prop="chargePersonIdName">
<PersonnelSelection <PersonnelSelection
:isSingleChoice="true"
:query="{db_field_name:'chargePersonId',db_field_txt:$t('personCharge')}" :query="{db_field_name:'chargePersonId',db_field_txt:$t('personCharge')}"
:personneQuery="formInline" :personneQuery="formInline"
@change="PersonnelSelectionChange" @change="PersonnelSelectionChange"
@@ -75,8 +76,8 @@
trigger: 'blur' trigger: 'blur'
}, },
{ {
max: 100, max: 200,
message: this.$t('problemLabel') + this.$t('cannotExceed') + 100 + this.$t('Characters'), message: this.$t('problemLabel') + this.$t('cannotExceed') + 200 + this.$t('Characters'),
trigger: 'blur' trigger: 'blur'
} }
] ]
@@ -115,6 +115,7 @@
}, },
handleCancel() { handleCancel() {
this.visible = false this.visible = false
this.$emit('classificationMaintenanceModelForm')
}, },
onChange(page, pageSize) { onChange(page, pageSize) {
this.pageNo = page this.pageNo = page
@@ -47,6 +47,7 @@
<div class="page"> <div class="page">
<a-pagination <a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')" :show-total="total => $t('total')+` ${total} `+$t('strip')"
:pageSizeOptions="['12','24','36','48','60']"
show-quick-jumper show-quick-jumper
show-size-changer show-size-changer
:page-size.sync="pageSize" :page-size.sync="pageSize"
@@ -70,7 +71,7 @@
queryParam: {}, queryParam: {},
conList: [], conList: [],
applyMarketList: [], applyMarketList: [],
pageSize: 10, pageSize: 12,
total: 0, total: 0,
pageNo: 1, pageNo: 1,
loading: false, loading: false,
@@ -19,10 +19,18 @@
<div class="title-text" :title="$t('applicableMarket')"> <div class="title-text" :title="$t('applicableMarket')">
<span>{{$t('applicableMarket')}}</span> <span>{{$t('applicableMarket')}}</span>
</div> </div>
<j-dict-select-tag class="box-input" v-model="queryParam.applyMarket" <a-select class="box-input"
:placeholder="$t('PleaseSelect')+$t('applicableMarket')" :placeholder="$t('PleaseSelect')+$t('applicableMarket')"
:type="'select'" style="width: 100%"
:triggerChange="false" :dictCode="'region'"/> v-model="queryParam.applyMarket">
<a-select-option v-for="(item, key) in applyMarketList"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.title ">
{{ item.title}}
</span>
</a-select-option>
</a-select>
</div> </div>
</a-col> </a-col>
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
@@ -150,6 +158,7 @@
deleteBatch: '/problemKnowledgeBase/countryCardManageReleaseEO/deleteBatch' deleteBatch: '/problemKnowledgeBase/countryCardManageReleaseEO/deleteBatch'
}, },
userInfoQuery: {}, userInfoQuery: {},
applyMarketList: [],
selectedRowKeys: [], selectedRowKeys: [],
columns: [ columns: [
{ {
@@ -177,10 +186,20 @@
mounted() { mounted() {
document.title = 'Country Card-' + this.$t('managePublishing') document.title = 'Country Card-' + this.$t('managePublishing')
this.getList() this.getList()
this.getApplyMarketList()
this.userInfoQuery = this.userInfo() this.userInfoQuery = this.userInfo()
}, },
methods: { methods: {
...mapGetters(['userInfo']), ...mapGetters(['userInfo']),
getApplyMarketList() {
getAction('/problemKnowledgeBase/countryCardManageReleaseEO/getApplyMarketList', { queryFlag: '1' }).then((res) => {
if (res.success) {
this.applyMarketList = res.result || []
} else {
this.applyMarketList = []
}
})
},
searchQuery() { searchQuery() {
this.pageNo = 1 this.pageNo = 1
this.getList() this.getList()
@@ -200,6 +219,7 @@
this.getList() this.getList()
}, },
countryCardReleaseAddForm() { countryCardReleaseAddForm() {
this.getApplyMarketList()
this.pageNo = 1 this.pageNo = 1
this.getList() this.getList()
}, },
@@ -256,6 +276,7 @@
_this.$message.success(_this.$t('OperationSuccessful')) _this.$message.success(_this.$t('OperationSuccessful'))
_this.selectedRowKeys = [] _this.selectedRowKeys = []
_this.getList() _this.getList()
_this.getApplyMarketList()
} else { } else {
_this.$message.warning(res.message) _this.$message.warning(res.message)
} }
@@ -298,10 +319,13 @@
} }
}) })
}, },
viewClick() { viewClick(row) {
let newUrl = this.$router.resolve({ let newUrl = this.$router.resolve({
path: '/countryCardView', path: '/countryCardView',
query: {} query: {
applyMarket: row.applyMarket,
id: row.id
}
}) })
window.open(newUrl.href, '_blank') window.open(newUrl.href, '_blank')
}, },
@@ -314,6 +338,7 @@
if (res.success) { if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful')) _this.$message.success(_this.$t('OperationSuccessful'))
_this.getList() _this.getList()
_this.getApplyMarketList()
} else { } else {
_this.$message.warning(res.message) _this.$message.warning(res.message)
} }
@@ -63,7 +63,7 @@
<a-input class="box-input" <a-input class="box-input"
v-if="record.lableType == 8" v-if="record.lableType == 8"
v-model.trim="record.content" v-model.trim="record.content"
:maxLength="100" :maxLength="300"
:placeholder="$t('PleaseEnter')"/> :placeholder="$t('PleaseEnter')"/>
<a-select :placeholder="$t('PleaseSelect')" <a-select :placeholder="$t('PleaseSelect')"
style="width: 100%" style="width: 100%"
@@ -21,7 +21,7 @@
<a-form-model-item class="itemModel" prop="lableName"> <a-form-model-item class="itemModel" prop="lableName">
<a-input class="box-input" <a-input class="box-input"
:disabled="disabled" :disabled="disabled"
v-model="formInline.lableName" v-model.trim="formInline.lableName"
:placeholder="$t('PleaseEnter')+$t('LabelName')"/> :placeholder="$t('PleaseEnter')+$t('LabelName')"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -77,6 +77,8 @@
</div> </div>
<a-form-model-item class="itemModel" prop="orderNum"> <a-form-model-item class="itemModel" prop="orderNum">
<a-input-number class="box-input" <a-input-number class="box-input"
:max="9999"
:min="0"
:disabled="disabled" :disabled="disabled"
v-model="formInline.orderNum" v-model="formInline.orderNum"
:placeholder="$t('PleaseEnter')+$t('DisplayOrder')"/> :placeholder="$t('PleaseEnter')+$t('DisplayOrder')"/>
@@ -94,7 +96,7 @@
<a-form-model-item class="itemModel" prop="relevantUrl"> <a-form-model-item class="itemModel" prop="relevantUrl">
<a-input class="box-input" <a-input class="box-input"
:disabled="disabled" :disabled="disabled"
v-model="formInline.relevantUrl" v-model.trim="formInline.relevantUrl"
:placeholder="$t('PleaseEnter')+$t('associatedWebsite')"/> :placeholder="$t('PleaseEnter')+$t('associatedWebsite')"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -111,7 +113,7 @@
<a-textarea <a-textarea
:placeholder="$t('PleaseEnter')+$t('describe')" :placeholder="$t('PleaseEnter')+$t('describe')"
:disabled="disabled" :disabled="disabled"
v-model="formInline.description" :rows="4"/> v-model.trim="formInline.description" :rows="4"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -190,8 +192,8 @@
], ],
description: [ description: [
{ {
max: 300, max: 500,
message: this.$t('describe') + this.$t('cannotExceed') + 300 + this.$t('Characters'), message: this.$t('describe') + this.$t('cannotExceed') + 500 + this.$t('Characters'),
trigger: 'blur' trigger: 'blur'
} }
] ]
@@ -6,7 +6,7 @@
<span style="line-height: 66px;display: inline-block;float: left"> <span style="line-height: 66px;display: inline-block;float: left">
<a-icon type="arrow-left" style="margin-right: 6px;"/> <a-icon type="arrow-left" style="margin-right: 6px;"/>
</span> </span>
{{$t('See')}} {{header_text}}
</div> </div>
</div> </div>
<div style="padding-top: 68px;background: #fff"> <div style="padding-top: 68px;background: #fff">
@@ -26,7 +26,7 @@
<div style="width: 100%" v-for="(item1,index) in contentList" class="content-box-top"> <div style="width: 100%" v-for="(item1,index) in contentList" class="content-box-top">
<div v-for="(item2,index2) in item1.list" style="width: 340px;display: inline-block" <div v-for="(item2,index2) in item1.list" style="width: 340px;display: inline-block"
class="content-box-left"> class="content-box-left">
<div class="content-box-box-top" v-if="index == 0"> <div class="content-box-box-top" style="cursor: default" v-if="index == 0">
<img class="content-box-box-img" style="display: inline-block;width: auto" v-if="index2 == 0"> <img class="content-box-box-img" style="display: inline-block;width: auto" v-if="index2 == 0">
<img :src="item2.img" v-else class="content-box-box-img" alt=""> <img :src="item2.img" v-else class="content-box-box-img" alt="">
<span v-if="index2 == 0" class="content-box-box-text"></span> <span v-if="index2 == 0" class="content-box-box-text"></span>
@@ -36,15 +36,28 @@
</div> </div>
<div class="content-box-box" v-else> <div class="content-box-box" v-else>
<a v-if="index2 == 0 && item2.relevantUrl"
style="color: rgb(33, 201, 204)"
:class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}"
class="content-box-box-text content-box-box-text-index"
:href="item2.relevantUrl" target="_blank">{{item2.lableName}}</a>
<span style="color: #21c9cc" <span style="color: #21c9cc"
:class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}" :class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}"
class="content-box-box-text content-box-box-text-index" class="content-box-box-text content-box-box-text-index"
@click="viewFileClick(item2.lableName)" @click="viewFileClick(item2.lableName)"
v-if="item2.lableType == 7 && item2.lableName && index2 != 0"> v-else-if="item2.lableType == 7 && item2.lableName && index2 != 0">
{{$t('viewFile')}} {{$t('viewFile')}}
</span> </span>
<span class="content-box-box-text content-box-box-text-index"
v-else-if="item2.lableType != 7 && !item2.lableName && index2 != 0"
style="cursor: default"
:title="item2.lableName"
:class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}">
{{item2.lableName}}
</span>
<span class="content-box-box-text content-box-box-text-index" <span class="content-box-box-text content-box-box-text-index"
v-else v-else
style="cursor: default"
:title="item2.lableName" :title="item2.lableName"
:class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}"> :class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}">
{{item2.lableName}} {{item2.lableName}}
@@ -94,6 +107,7 @@
queryCountryList: [], queryCountryList: [],
countryCardViewList: [], countryCardViewList: [],
applyMarkets: '', applyMarkets: '',
header_text: '',
url: { url: {
list: '/problemKnowledgeBase/countryCardTempEO/list', list: '/problemKnowledgeBase/countryCardTempEO/list',
deleteOne: '' deleteOne: ''
@@ -138,6 +152,9 @@
this.displayList.forEach(val => { this.displayList.forEach(val => {
val.showOrNot = true val.showOrNot = true
}) })
this.$nextTick(() => {
this.$refs.displayInformationModelRef.dataListOne = JSON.parse(JSON.stringify(this.displayList))
})
this.consolidateData() this.consolidateData()
this.loading = false this.loading = false
} else { } else {
@@ -169,12 +186,14 @@
}) })
} }
if (content && content.length > 0) { if (content && content.length > 0) {
console.log(content)
content.forEach((res, index) => { content.forEach((res, index) => {
this.contentList[index + 1] = { name: res.lableName } this.contentList[index + 1] = { name: res.lableName }
this.contentList[index + 1].list = [] this.contentList[index + 1].list = []
this.contentList[index + 1].list.push({ this.contentList[index + 1].list.push({
lableName: res.lableName, lableName: res.lableName,
lableType: res.lableType lableType: res.lableType,
relevantUrl: res.relevantUrl
}) })
}) })
} }
@@ -215,6 +234,11 @@
this.clientWidth = 340 * (this.queryCountryList.length + 1) + 'px' this.clientWidth = 340 * (this.queryCountryList.length + 1) + 'px'
this.isTrue = true this.isTrue = true
}) })
let content = []
this.queryCountryList.forEach(val => {
content.push(val.applyMarket_dictText)
})
this.header_text = content.join('-')
callback && callback() callback && callback()
if (!callback) { if (!callback) {
this.consolidateData() this.consolidateData()
@@ -9,6 +9,27 @@
@close="handleCancel" @close="handleCancel"
:visible="visible" :visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;"> style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="8" style="line-height: 48px">
<div class="box-title-text">
<div class="title-text" :title="$t('LabelName')">
<span>{{$t('LabelName')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('LabelName')"
v-model="queryParam.labelName"></a-input>
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24">
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
</a-col>
</span>
</a-row>
</a-form>
</div>
<div style="margin-bottom: 60px"> <div style="margin-bottom: 60px">
<a-table <a-table
v-if="this.visible" v-if="this.visible"
@@ -42,9 +63,11 @@
list: '/problemKnowledgeBase/countryCardTempEO/list', list: '/problemKnowledgeBase/countryCardTempEO/list',
deleteOne: '' deleteOne: ''
}, },
queryParam: {},
visible: false, visible: false,
selectedRowKeys: [], selectedRowKeys: [],
dataList: [], dataList: [],
dataListOne: [],
loading: false, loading: false,
confirmLoading: false, confirmLoading: false,
columns: [ columns: [
@@ -67,10 +90,24 @@
mounted() { mounted() {
}, },
methods: { methods: {
searchQuery() {
if (this.queryParam.labelName) {
this.dataList = this.dataList.filter(res => {
return res.lableName.includes(this.queryParam.labelName)
})
this.dataList = [...this.dataList]
}
},
searchReset() {
this.queryParam = {}
this.dataList = JSON.parse(JSON.stringify(this.dataListOne))
this.dataList = [...this.dataList]
},
getData(data) { getData(data) {
this.visible = true this.visible = true
this.$nextTick(() => { this.$nextTick(() => {
this.dataList = data this.queryParam = {}
this.dataList = JSON.parse(JSON.stringify(data))
this.dataList = [...this.dataList] this.dataList = [...this.dataList]
}) })
}, },
@@ -78,11 +115,16 @@
this.visible = false this.visible = false
}, },
handleSubmit() { handleSubmit() {
this.$emit('displayInformationModelForm', this.dataList) this.$emit('displayInformationModelForm', this.dataListOne)
this.visible = false this.visible = false
}, },
onCheckAllChange(index) { onCheckAllChange(index) {
this.dataList[index].showOrNot = !this.dataList[index].showOrNot this.dataList[index].showOrNot = !this.dataList[index].showOrNot
this.dataListOne.forEach(res => {
if (res.id == this.dataList[index].id) {
res.showOrNot = !res.showOrNot
}
})
} }
} }
} }
@@ -107,18 +149,41 @@
border-radius: 0 0 2px 2px; border-radius: 0 0 2px 2px;
} }
.box-title { .box-title-text {
width: 100%; line-height: 1.4;
text-align: right; display: flex;
margin-bottom: 20px; align-items: center;
margin-bottom: 10px;
} }
.operator-text { .title-text {
cursor: pointer; width: 20%;
margin-right: 13px; min-width: 110px;
font-size: 14px; color: #000F16;
font-weight: 400;
color: #040B29;
display: inline-block; 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 {
display: inline-block;
width: 70%;
height: 38px;
margin-top: 2px;
}
.box-button {
height: 38px;
/*margin-top: 2px;*/
}
.text-operation {
margin-right: 8px;
} }
</style> </style>
@@ -59,7 +59,7 @@
<a-form-model-item class="itemModel" prop="title"> <a-form-model-item class="itemModel" prop="title">
<a-input class="box-input" <a-input class="box-input"
:disabled="disabled" :disabled="disabled"
v-model="formInline.title" v-model.trim="formInline.title"
:placeholder="$t('PleaseEnter')+$t('title')"/> :placeholder="$t('PleaseEnter')+$t('title')"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -573,6 +573,7 @@
.box-button { .box-button {
height: 38px; height: 38px;
margin-top: 4px;
} }
.submit-button { .submit-button {
@@ -586,4 +587,7 @@
::v-deep .itemModel-explain .ant-form-explain { ::v-deep .itemModel-explain .ant-form-explain {
margin-top: 60px margin-top: 60px
} }
::v-deep .ql-tooltip {
z-index: 10 !important;
}
</style> </style>
@@ -1,15 +1,17 @@
<template> <template>
<div class="box"> <div class="box">
<div class="search-detail-wrap"> <div class="search-detail-wrap">
<div class="box-title-text"> <a-form layout="inline" @keyup.enter.native="onSearch">
<div class="title-text" :title="$t('searchContent')"> <div class="box-title-text">
<span>{{$t('searchContent')}}</span> <div class="title-text" :title="$t('searchContent')">
<span>{{$t('searchContent')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('searchContent')"
v-model="searchStr"></a-input>
<a-button class="box-button" type="primary" @click="onSearch">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="ResetSearch">{{$t('reset')}}</a-button>
</div> </div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('searchContent')" </a-form>
v-model="searchStr"></a-input>
<a-button class="box-button" type="primary" @click="onSearch">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="ResetSearch">{{$t('reset')}}</a-button>
</div>
</div> </div>
<div class="box-content"> <div class="box-content">
<div class="box-content-left"> <div class="box-content-left">
@@ -75,7 +77,8 @@
/> />
</div> </div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading> <JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
<classificationMaintenanceModel ref="classificationMaintenanceModelRef"/> <classificationMaintenanceModel @classificationMaintenanceModelForm="classificationMaintenanceModelForm"
ref="classificationMaintenanceModelRef"/>
</div> </div>
</template> </template>
@@ -120,6 +123,9 @@
} }
}) })
}, },
classificationMaintenanceModelForm() {
this.replacePage()
},
onSearch() { onSearch() {
this.pageNo = 1 this.pageNo = 1
this.getList() this.getList()
@@ -134,6 +140,7 @@
}, },
ResetSearch() { ResetSearch() {
this.searchStr = '' this.searchStr = ''
this.selectedTags = []
this.pageNo = 1 this.pageNo = 1
this.getList() this.getList()
}, },
@@ -354,6 +361,18 @@
text-align: center; text-align: center;
line-height: 10; line-height: 10;
} }
::v-deep .ant-tag {
padding: 2px 4px;
background: #9B9DA9;
color: #fff!important;
}
::v-deep .ant-tag-checkable:not(.ant-tag-checkable-checked):hover{
color: #fff!important;
}
::v-deep .ant-tag-checkable-checked{
background: #21c9cc;
}
</style> </style>
<style> <style>
.box-content-left .ant-tag { .box-content-left .ant-tag {
@@ -12,15 +12,17 @@
<div style="padding-top: 68px;background: #fff"> <div style="padding-top: 68px;background: #fff">
<div class="detail-content" style="padding: 30px"> <div class="detail-content" style="padding: 30px">
<div class="search-detail-wrap"> <div class="search-detail-wrap">
<div class="box-title-text"> <a-form layout="inline" @keyup.enter.native="onSearch">
<div class="title-text" :title="$t('searchContent')"> <div class="box-title-text">
<span>{{$t('searchContent')}}</span> <div class="title-text" :title="$t('searchContent')">
<span>{{$t('searchContent')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('searchContent')"
v-model="searchStr"></a-input>
<a-button class="box-button" type="primary" @click="onSearch">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="ResetSearch">{{$t('reset')}}</a-button>
</div> </div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('searchContent')" </a-form>
v-model="searchStr"></a-input>
<a-button class="box-button" type="primary" @click="onSearch">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="ResetSearch">{{$t('reset')}}</a-button>
</div>
</div> </div>
<div v-if="conList.length > 0" style="height: calc(100vh - 240px);overflow:auto;"> <div v-if="conList.length > 0" style="height: calc(100vh - 240px);overflow:auto;">
<div v-for="(item,index) in conList" :key="item.id"> <div v-for="(item,index) in conList" :key="item.id">
@@ -22,7 +22,7 @@
{{$t('issuedBy')}}:{{this.queryForm.createBy}} {{$t('issuedBy')}}:{{this.queryForm.createBy}}
</span> </span>
<span> <span>
{{$t('releaseDate')}}:{{this.queryForm.createTime}} {{$t('releaseDate')}}:{{this.queryForm.createTime?this.queryForm.createTime.slice(0,11):''}}
</span> </span>
</div> </div>
<div class="content-text"> <div class="content-text">
@@ -254,21 +254,26 @@
this.$message.warning(this.$t('pleaseEnter')) this.$message.warning(this.$t('pleaseEnter'))
return return
} }
let query = { this.$refs.ruleForm.validate(valid => {
problemKnowledgeBaseId: this.$route.query.id, if (valid) {
commentContent: this.formInline.commentContent, let query = {
commentUserId: this.userInfo().id problemKnowledgeBaseId: this.$route.query.id,
} commentContent: this.formInline.commentContent,
this.loading = true commentUserId: this.userInfo().id
postAction('/problemKnowledgeBase/problemKnowledgeBaseCommentEO/add', query).then((res) => { }
if (res.success) { this.loading = true
this.$message.success(this.$t('OperationSuccessful')) postAction('/problemKnowledgeBase/problemKnowledgeBaseCommentEO/add', query).then((res) => {
this.releaseData() if (res.success) {
this.formInline = {} this.$message.success(this.$t('OperationSuccessful'))
this.loading = false this.$refs.ruleForm.clearValidate()
} else { this.releaseData()
this.$message.warning(this.$t('operationFailed')) this.formInline = {}
this.loading = false this.loading = false
} else {
this.$message.warning(this.$t('operationFailed'))
this.loading = false
}
})
} }
}) })
}, },
@@ -398,6 +403,7 @@
font-size: 16px; font-size: 16px;
color: #040B29; color: #040B29;
font-weight: 400; font-weight: 400;
word-break: break-word;
} }
.content-icon { .content-icon {
@@ -510,4 +516,5 @@
font-size: 16px; font-size: 16px;
margin-bottom: 20px; margin-bottom: 20px;
} }
</style> </style>
@@ -131,7 +131,7 @@
align: 'center', align: 'center',
width: 170, width: 170,
ellipsis: true, ellipsis: true,
dataIndex: 'lawsContact' dataIndex: 'lawsContactName'
}, },
{ {
title: this.$t('completedBy'), title: this.$t('completedBy'),
@@ -187,7 +187,7 @@
this.pageNo = page this.pageNo = page
this.getList() this.getList()
}, },
SizeChange(page,pageSize) { SizeChange(page, pageSize) {
this.pageNo = 1 this.pageNo = 1
this.pageSize = pageSize this.pageSize = pageSize
this.getList() this.getList()
@@ -227,10 +227,11 @@
ids: selectedRowKeys.join(','), ids: selectedRowKeys.join(','),
...this.queryParam ...this.queryParam
} }
downloadFile(this.url.exportData, this.$t('monthlyReportRegulations') + '.zip', query, this.Deselect) downloadFile(this.url.exportData, this.$t('weilaiRegulationMonthlyReport') + '-' + this.queryParam.month + '.zip', query, this.Deselect)
}, },
Deselect() { Deselect() {
this.selectedRowKeys = [] this.selectedRowKeys = []
this.getList()
}, },
addContentClick() { addContentClick() {
this.$refs.fillAddRef.add() this.$refs.fillAddRef.add()
@@ -50,9 +50,9 @@
<a-select :placeholder="$t('PleaseSelect')+$t('ParentName')" <a-select :placeholder="$t('PleaseSelect')+$t('ParentName')"
class="box-input" class="box-input"
:getPopupContainer="triggerNode=> triggerNode.parentNode" :getPopupContainer="triggerNode=> triggerNode.parentNode"
:popper-append-to-body="false"
allowClear allowClear
:disabled="isParentId" :disabled="isParentId"
style='z-index: 99'
v-model="formInline.parentId"> v-model="formInline.parentId">
<a-select-option v-for="(item, key) in ParentList" <a-select-option v-for="(item, key) in ParentList"
:key="item.id" :key="item.id"
@@ -75,13 +75,13 @@
{{$t('fileExport')}} {{$t('fileExport')}}
</div> </div>
</div> </div>
<div> <div style="margin-bottom: 20px">
<a-table <a-table
ref="table" ref="table"
size="middle" size="middle"
:loading="loading" :loading="loading"
:pagination="false" :pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 100px)'}" :scroll="{x: '100%',y:'calc(100vh - 260px)'}"
rowKey="id" rowKey="id"
:data-source="dataSource" :data-source="dataSource"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@@ -323,6 +323,7 @@
this.formInline.lawsTechnologyEvaluationId = this.$route.query.lawsTechnologyEvaluationId this.formInline.lawsTechnologyEvaluationId = this.$route.query.lawsTechnologyEvaluationId
this.formInline.remark = this.$route.query.remark this.formInline.remark = this.$route.query.remark
this.formInline.standId = this.$route.query.standId this.formInline.standId = this.$route.query.standId
this.formInline = {...this.formInline}
this.getListOne() this.getListOne()
} }
eventBUs.$on('searchQuery', search => { eventBUs.$on('searchQuery', search => {
@@ -539,6 +540,8 @@
value[res] = value[res].replace(/\'/g, '') value[res] = value[res].replace(/\'/g, '')
} }
}) })
let operatorTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
value.handlingTime = operatorTime
this.startProcess(value, dataList) this.startProcess(value, dataList)
}, },
startProcess(value, dataList) { startProcess(value, dataList) {
@@ -301,6 +301,7 @@
searchReset() { searchReset() {
this.queryParam = {} this.queryParam = {}
this.$route.query.serialNumber = '' this.$route.query.serialNumber = ''
this.$route.query.flowStatus = ''
this.pageNo = 1 this.pageNo = 1
this.getList() this.getList()
}, },
@@ -540,6 +540,7 @@
this.form.name = this.nodeItem.name this.form.name = this.nodeItem.name
this.form.itemName = this.nodeItem.itemName this.form.itemName = this.nodeItem.itemName
this.form.displaySeq = this.nodeItem.displaySeq this.form.displaySeq = this.nodeItem.displaySeq
this.form = { ...this.form }
this.menuRightVisible = true this.menuRightVisible = true
}, },
//树形删除 //树形删除
@@ -1314,7 +1315,7 @@
max-height: 39vh !important; max-height: 39vh !important;
} }
.ant-modal-body { .ant-modal-body {
overflow-y: visible !important; overflow-y: visible !important;
} }
@@ -1388,11 +1389,9 @@
/*.title-text {*/ /*.title-text {*/
/* min-width: 73px !important;*/ /* min-width: 73px !important;*/
/*}*/ /*}*/
/*.split-detail-wrap {*/ /*.split-detail-wrap {*/
/* height: 481px !important;*/ /* height: 481px !important;*/
/*}*/ /*}*/
/*.mainItem {*/ /*.mainItem {*/
/* height: 500px;*/ /* height: 500px;*/
/*}*/ /*}*/
@@ -1402,7 +1401,6 @@
/*.split-detail .split-detail-wrap .split-detail-left {*/ /*.split-detail .split-detail-wrap .split-detail-left {*/
/* height: 735px !important;*/ /* height: 735px !important;*/
/*}*/ /*}*/
/*.mainItem {*/ /*.mainItem {*/
/* height: 800px !important;*/ /* height: 800px !important;*/
/*}*/ /*}*/
@@ -79,13 +79,13 @@
<a-textarea <a-textarea
:placeholder="$t('PleaseEnter')+title" :placeholder="$t('PleaseEnter')+title"
:disabled="false" :disabled="false"
v-model="formInline.replyContent" :rows="4"/> v-model.trim="formInline.replyContent" :rows="4"/>
</a-form-model-item> </a-form-model-item>
<a-form-model-item v-else-if="title == $t('publishComment')" class="itemModel" :prop="'commentContent'"> <a-form-model-item v-else-if="title == $t('publishComment')" class="itemModel" :prop="'commentContent'">
<a-textarea <a-textarea
:placeholder="$t('PleaseEnter')+title" :placeholder="$t('PleaseEnter')+title"
:disabled="false" :disabled="false"
v-model="formInline.commentContent" :rows="4"/> v-model.trim="formInline.commentContent" :rows="4"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -391,7 +391,7 @@
} }
.box-input { .box-input {
width: calc(100% - 168px); width: calc(100% - 183px);
margin-right: 8px; margin-right: 8px;
} }
@@ -130,7 +130,7 @@
</div> </div>
<a-form-model-item class="itemModel" style="width: calc(100% - 113px)" prop="comment"> <a-form-model-item class="itemModel" style="width: calc(100% - 113px)" prop="comment">
<a-textarea :placeholder="$t('pleaseEnter')+$t('fullTextComments')" <a-textarea :placeholder="$t('pleaseEnter')+$t('fullTextComments')"
v-model="formInlineText.comment" v-model.trim="formInlineText.comment"
:rows="4"/> :rows="4"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -140,7 +140,7 @@
</div> </div>
<a-form-model-item class="itemModel" style="width: calc(100% - 113px)" prop="comment"> <a-form-model-item class="itemModel" style="width: calc(100% - 113px)" prop="comment">
<a-textarea :placeholder="$t('pleaseEnter')+$t('comparativeComments')" <a-textarea :placeholder="$t('pleaseEnter')+$t('comparativeComments')"
v-model="formInlineText.comment" v-model.trim="formInlineText.comment"
:rows="4"/> :rows="4"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -187,6 +187,7 @@
} else { } else {
this.isDisplay = true this.isDisplay = true
} }
document.title = this.$t('DocumentComparison') + ' - ' + this.$t('comparisonResults')
this.language = localStorage.getItem('language') || '' this.language = localStorage.getItem('language') || ''
this.getData() this.getData()
}, },
@@ -207,7 +208,7 @@
includeComments: fullCheckbox, includeComments: fullCheckbox,
infoId: this.$route.query.id infoId: this.$route.query.id
} }
downloadFile(this.url.exportData, this.resultData.serialNumberLeft + ' - ' + this.resultData.serialNumberRight + '.xls', query, this.Deselect) downloadFile(this.url.exportData, this.resultData.serialNumberLeft + ' - ' + this.resultData.serialNumberRight + this.$t('comparisonResults') + '.xls', query, this.Deselect)
}, },
Deselect() { Deselect() {
this.checkboxList = [] this.checkboxList = []
@@ -449,6 +450,9 @@
border-radius: 4px 0px 0px 4px; border-radius: 4px 0px 0px 4px;
border-right: 1px #EFF1F3 solid; border-right: 1px #EFF1F3 solid;
padding-left: 24px; padding-left: 24px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
.detail-content-header-content-content { .detail-content-header-content-content {
@@ -459,6 +463,9 @@
border-radius: 4px 0px 0px 4px; border-radius: 4px 0px 0px 4px;
border-right: 1px #EFF1F3 solid; border-right: 1px #EFF1F3 solid;
padding-left: 24px; padding-left: 24px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
.detail-content-header-content-right { .detail-content-header-content-right {
@@ -468,6 +475,9 @@
background: rgba(4, 11, 41, 0.0300); background: rgba(4, 11, 41, 0.0300);
border-radius: 4px 0px 0px 4px; border-radius: 4px 0px 0px 4px;
padding-left: 24px; padding-left: 24px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
} }
@@ -182,6 +182,7 @@
}, },
mounted() { mounted() {
this.getData() this.getData()
document.title = this.$t('DocumentComparison') + ' - ' + this.$t('edit')
}, },
methods: { methods: {
Fallback() { Fallback() {
@@ -326,12 +327,14 @@
if (detailRightColor && detailRightColor.length > 0) { if (detailRightColor && detailRightColor.length > 0) {
detailRightColor[0].classList.remove('detail-content-content-right-data-color-right') detailRightColor[0].classList.remove('detail-content-content-right-data-color-right')
} }
let detailContent = document.getElementsByClassName('detail-content-content-right-right-top') if (item.targetStand && item.targetStand >= 0) {
let detailRight = document.getElementsByClassName('detail-content-content-right-data-right') let detailContent = document.getElementsByClassName('detail-content-content-right-right-top')
this.dataRight = this.resultData.textRight[item.targetStand] let detailRight = document.getElementsByClassName('detail-content-content-right-data-right')
if (detailRight && detailRight.length > 0) { this.dataRight = this.resultData.textRight[item.targetStand]
detailRight[item.targetStand].classList.add('detail-content-content-right-data-color-right') if (detailRight && detailRight.length > 0) {
detailContent[0].scrollTop = detailRight[item.targetStand].offsetTop - 150 detailRight[item.targetStand].classList.add('detail-content-content-right-data-color-right')
detailContent[0].scrollTop = detailRight[item.targetStand].offsetTop - 150
}
} }
} }
}, },
@@ -354,12 +357,14 @@
if (detailLeftColor && detailLeftColor.length > 0) { if (detailLeftColor && detailLeftColor.length > 0) {
detailLeftColor[0].classList.remove('detail-content-content-right-data-color') detailLeftColor[0].classList.remove('detail-content-content-right-data-color')
} }
this.dataLeft = this.resultData.textLeft[item.targetStand] if (item.targetStand && item.targetStand >= 0) {
let detailContent = document.getElementsByClassName('detail-content-content-right-top') this.dataLeft = this.resultData.textLeft[item.targetStand]
let detailLeft = document.getElementsByClassName('detail-content-content-right-data') let detailContent = document.getElementsByClassName('detail-content-content-right-top')
if (detailLeft && detailLeft.length > 0) { let detailLeft = document.getElementsByClassName('detail-content-content-right-data')
detailLeft[item.targetStand].classList.add('detail-content-content-right-data-color') if (detailLeft && detailLeft.length > 0 && item.targetStand >= 0) {
detailContent[0].scrollTop = detailLeft[item.targetStand].offsetTop - 150 detailLeft[item.targetStand].classList.add('detail-content-content-right-data-color')
detailContent[0].scrollTop = detailLeft[item.targetStand].offsetTop - 150
}
} }
} }
}, },
@@ -71,6 +71,7 @@
{{$t('selectedStandard')}} {{$t('selectedStandard')}}
</span> </span>
<span class="box-button-standard-right" <span class="box-button-standard-right"
:title="selectedRowKeysLeftRecord[0]?selectedRowKeysLeftRecord[0].serialNumber+' '+selectedRowKeysLeftRecord[0].fileName:$t('noComparisonDocumentSelected')"
:class="{'box-button-standard-right-color':selectedRowKeysLeftRecord[0]}"> :class="{'box-button-standard-right-color':selectedRowKeysLeftRecord[0]}">
{{selectedRowKeysLeftRecord[0]?selectedRowKeysLeftRecord[0].serialNumber+' '+selectedRowKeysLeftRecord[0].fileName:$t('noComparisonDocumentSelected')}} {{selectedRowKeysLeftRecord[0]?selectedRowKeysLeftRecord[0].serialNumber+' '+selectedRowKeysLeftRecord[0].fileName:$t('noComparisonDocumentSelected')}}
</span> </span>
@@ -135,6 +136,7 @@
{{$t('selectedStandard')}} {{$t('selectedStandard')}}
</span> </span>
<span class="box-button-standard-right" <span class="box-button-standard-right"
:title="selectedRowKeysRightRecord[0]?selectedRowKeysRightRecord[0].serialNumber+' '+selectedRowKeysRightRecord[0].fileName:$t('noComparisonDocumentSelected')"
:class="{'box-button-standard-right-color':selectedRowKeysRightRecord[0]}"> :class="{'box-button-standard-right-color':selectedRowKeysRightRecord[0]}">
{{selectedRowKeysRightRecord[0]?selectedRowKeysRightRecord[0].serialNumber+' '+selectedRowKeysRightRecord[0].fileName:$t('noComparisonDocumentSelected')}} {{selectedRowKeysRightRecord[0]?selectedRowKeysRightRecord[0].serialNumber+' '+selectedRowKeysRightRecord[0].fileName:$t('noComparisonDocumentSelected')}}
</span> </span>
@@ -242,6 +244,7 @@
mounted() { mounted() {
this.getListLeft() this.getListLeft()
this.getListRight() this.getListRight()
document.title = this.$t('DocumentComparison') + ' - ' + this.$t('initiateComparison')
}, },
methods: { methods: {
Fallback() { Fallback() {
@@ -348,7 +351,7 @@
let query = { let query = {
pageNo: this.pageNoLeft, pageNo: this.pageNoLeft,
pageSize: this.pageSizeLeft, pageSize: this.pageSizeLeft,
fileId:'1', fileId: '1',
...queryParam ...queryParam
} }
this.loadingLeft = true this.loadingLeft = true
@@ -372,7 +375,7 @@
let query = { let query = {
pageNo: this.pageNoRight, pageNo: this.pageNoRight,
pageSize: this.pageSizeRight, pageSize: this.pageSizeRight,
fileId:'1', fileId: '1',
...queryParam ...queryParam
} }
this.loadingRight = true this.loadingRight = true
@@ -532,6 +535,8 @@
.box-button-standard-right { .box-button-standard-right {
width: calc(100% - 111px); width: calc(100% - 111px);
height: 46px; height: 46px;
padding: 0 4px;
box-sizing: border-box;
display: inline-block; display: inline-block;
border: 1px solid #CED0D8; border: 1px solid #CED0D8;
overflow: hidden; overflow: hidden;
@@ -8,8 +8,8 @@
<div class="title-text" :title="$t('standard')"> <div class="title-text" :title="$t('standard')">
<span>{{$t('standard')}}</span> <span>{{$t('standard')}}</span>
</div> </div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')" <a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParam.serialNumber"></j-input> v-model="queryParam.serialNumber"></a-input>
</div> </div>
</a-col> </a-col>
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
@@ -17,8 +17,8 @@
<div class="title-text" :title="$t('title')"> <div class="title-text" :title="$t('title')">
<span>{{$t('title')}}</span> <span>{{$t('title')}}</span>
</div> </div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')" <a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')"
v-model="queryParam.title"></j-input> v-model="queryParam.title"></a-input>
</div> </div>
</a-col> </a-col>
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
+14 -6
View File
@@ -191,7 +191,11 @@
:title="$t('Foldername')">{{$t('Foldername')}}</span> :title="$t('Foldername')">{{$t('Foldername')}}</span>
</div> </div>
<a-form-model-item prop="folderName" style='width: 72%'> <a-form-model-item prop="folderName" style='width: 72%'>
<a-input v-model.trim="form.folderName" :min="1" :max="100" style='width: 130%' class="box-input add-input" :placeholder="$t('PleaseEnter')+$t('Foldername')" /> <a-input
v-model.trim="form.folderName"
:min="1" :max="100" style='width: 130%'
class="box-input add-input"
:placeholder="$t('PleaseEnter')+$t('Foldername')" />
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -641,6 +645,7 @@ export default {
this.form.authViewIdsName = this.nodeItem.authViewIdsName this.form.authViewIdsName = this.nodeItem.authViewIdsName
this.form.folderName = this.nodeItem.folderName this.form.folderName = this.nodeItem.folderName
this.form.orderId = this.nodeItem.orderId this.form.orderId = this.nodeItem.orderId
this.form = { ...this.form }
this.menuRightVisible = true this.menuRightVisible = true
}, },
//树形删除 //树形删除
@@ -1235,7 +1240,10 @@ export default {
} }
} }
} }
::v-deep .ant-modal-body {
max-height: 500px;
overflow-y: auto;
}
///deep/ .ant-table-body { ///deep/ .ant-table-body {
// overflow: hidden !important; ????? // overflow: hidden !important; ?????
//} //}
@@ -1346,10 +1354,10 @@ export default {
} }
.ant-modal-body { /*.ant-modal-body {*/
max-height: 500px; /* max-height: 500px;*/
overflow-y: auto; /* overflow-y: auto;*/
} /*}*/
.split-detail-table { .split-detail-table {
.ant-table-body { .ant-table-body {
@@ -43,8 +43,8 @@
:columns="columns" :columns="columns"
> >
<span slot="projectName" slot-scope="text,record" :title="text"> <span slot="projectName" slot-scope="text,record" :title="text">
<a @click="entryNameClick(record)"> <a >
{{ text && text.length > 15 ? text.slice(0, 14) + '...' : text }} {{ text && text.length > 10 ? text.slice(0, 9) + '...' : text }}
</a> </a>
</span> </span>
<span slot="operation" slot-scope="text,record"> <span slot="operation" slot-scope="text,record">
@@ -113,8 +113,9 @@
{ {
title: this.$t('entryName'), title: this.$t('entryName'),
align: 'center', align: 'center',
width: '10%', width: '13%',
dataIndex: 'projectName' dataIndex: 'projectName',
scopedSlots: { customRender: 'projectName' }
}, },
{ {
title: this.$t('ListTitle'), title: this.$t('ListTitle'),
@@ -77,7 +77,6 @@
}, },
mounted() { mounted() {
this.queryForm = this.standardContentQuery this.queryForm = this.standardContentQuery
this.queryForm.taskExplain = 'sdf dsjf;l sdf;ldsf ;lsdfkj d;lsfkds;lfdksf第三方是德国搞定过分乐观看待给对方公开地方领导反馈给东丽的反馈给管库给的给'
}, },
methods: { methods: {
urlClick(val) { urlClick(val) {
@@ -309,7 +309,7 @@
completeTask() { completeTask() {
let value = JSON.parse(JSON.stringify(this.queryProject)) let value = JSON.parse(JSON.stringify(this.queryProject))
let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
value.operatorTime = handlingTime value.handlingTime = handlingTime
Object.keys(value).forEach(res => { Object.keys(value).forEach(res => {
if (value[res] && value[res] instanceof String) { if (value[res] && value[res] instanceof String) {
value[res] = value[res].replace(/\"/g, '“') value[res] = value[res].replace(/\"/g, '“')
@@ -173,6 +173,8 @@
}, },
completeTask() { completeTask() {
let value = JSON.parse(JSON.stringify(this.queryProject)) let value = JSON.parse(JSON.stringify(this.queryProject))
let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
value.handlingTime = handlingTime
Object.keys(value).forEach(res => { Object.keys(value).forEach(res => {
if (value[res] && value[res] instanceof String) { if (value[res] && value[res] instanceof String) {
value[res] = value[res].replace(/\"/g, '“') value[res] = value[res].replace(/\"/g, '“')
@@ -87,13 +87,10 @@
}, },
{ {
title: this.$t('createTime'), title: this.$t('createTime'),
dataIndex: 'createTime', dataIndex: 'creatTime',
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
width: 180, width: 180,
customRender: function(t, r, index) {
return moment(t).format('YYYY-MM-DD HH:mm:ss')
}
}, },
{ {
title: this.$t('CompletionTime'), title: this.$t('CompletionTime'),
@@ -101,9 +98,6 @@
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
width: 180, width: 180,
customRender: function(t, r, index) {
return moment(t).format('YYYY-MM-DD HH:mm:ss')
}
}, },
{ {
title: this.$t('ProcessStatus'), title: this.$t('ProcessStatus'),
@@ -87,13 +87,10 @@
}, },
{ {
title: this.$t('createTime'), title: this.$t('createTime'),
dataIndex: 'createTime', dataIndex: 'creatTime',
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
width: 180, width: 180,
customRender: function(t, r, index) {
return moment(t).format('YYYY-MM-DD HH:mm:ss')
}
}, },
{ {
title: this.$t('CompletionTime'), title: this.$t('CompletionTime'),
@@ -101,9 +98,6 @@
align: 'center', align: 'center',
width: 180, width: 180,
ellipsis: true, ellipsis: true,
customRender: function(t, r, index) {
return moment(t).format('YYYY-MM-DD HH:mm:ss')
}
}, },
{ {
title: this.$t('ProcessStatus'), title: this.$t('ProcessStatus'),
@@ -5,13 +5,13 @@
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :md="6" :sm="10"> <a-col :md="6" :sm="10">
<a-form-item :label="$t('Collectlist')"> <a-form-item :label="$t('Collectlist')">
<a-select v-model="queryParam.ctype" @change="getonChange" :getPopupContainer="triggerNode => triggerNode.parentNode"> <a-select v-model="queryParam.ctype" @change="getonChange" :getPopupContainer="triggerNode => triggerNode.parentNode" :popper-append-to-body="false">
<a-select-option v-for="d in options" :key="d.value" :value="d.value" >{{ d.label }}</a-select-option> <a-select-option v-for="d in options" :key="d.value" :value="d.value" >{{ d.label }}</a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :md="6" :sm="14"> <a-col :md="6" :sm="14">
<a-form-model-item :label="$t('Statisticalmodels')" prop="value" class="process-form-item"> <a-form-model-item :label="$t('Statisticalmodels')" prop="value" style='width: 388px' class="process-form-item">
<a-radio-group v-model="queryParam.value" @change="onChange" style='width: 253px'> <a-radio-group v-model="queryParam.value" @change="onChange" style='width: 253px'>
<a-radio :value="1"> <a-radio :value="1">
{{$t('Thepercentage')}} {{$t('Thepercentage')}}
@@ -877,6 +877,7 @@
sqp['superQueryMatchType'] = matchType sqp['superQueryMatchType'] = matchType
} }
this.queryParamQuery = sqp this.queryParamQuery = sqp
this.$refs.CollectionTabel.pageNo = 1
// this.$refs.CollectionTabel.getTableList(this.queryParamQuery) // this.$refs.CollectionTabel.getTableList(this.queryParamQuery)
eventBUs.$emit('getTableList',this.queryParamQuery) eventBUs.$emit('getTableList',this.queryParamQuery)
}, },
@@ -1563,12 +1564,13 @@
handleCody() { handleCody() {
}, },
searchQuery() { searchQuery() {
this.pageNo = 1 this.$refs.CollectionTabel.pageNo = 1
this.$refs.CollectionTabel.getTableList() this.$refs.CollectionTabel.getTableList()
}, },
searchReset() { searchReset() {
this.formInline = {} this.formInline = {}
this.queryParamQuery = {} this.queryParamQuery = {}
this.$refs.CollectionTabel.pageNo = 1
this.$refs.CollectionTabel.getTableListReset() this.$refs.CollectionTabel.getTableListReset()
this.$refs.globalAdvancedQueryRef.handleReset() this.$refs.globalAdvancedQueryRef.handleReset()
// this.$refs.globalAdvancedQueryRef.emitCallback() // this.$refs.globalAdvancedQueryRef.emitCallback()
@@ -57,6 +57,30 @@
:scroll='{x: 600}' :scroll='{x: 600}'
@change='handleTableChange'> @change='handleTableChange'>
<span slot="status" slot-scope="text,record" :title="text" >
<a v-if="record.designFlowTaskStatus_dicText == '符合'" style='color: #26BD4B'>{{ text }}</a>
<a v-if="record.designFlowTaskStatus_dicText == '不符合'" style='color: #E83030'>{{ text }}</a>
<a v-if="record.designFlowTaskStatus_dicText == '待追踪'" style='color: #FDA71C'>{{ text }}</a>
<a v-if="record.designFlowTaskStatus_dicText == '不涉及'" style='color: #707486'>{{ text }}</a>
<a v-if="record.designFlowTaskStatus_dicText == '待确认'" style='color: #00B3BE'>{{ text }}</a>
<a v-if="record.designFlowTaskStatus_dicText == '任务终止'" style='color: #E83030'>{{ text }}</a>
</span>
<span slot="statusprehomo" slot-scope="text,record" :title="text" >
<a v-if="record.prehomoFlowTaskStatus_dicText == '符合'" style='color: #26BD4B'>{{ text }}</a>
<a v-if="record.prehomoFlowTaskStatus_dicText == '不符合'" style='color: #E83030'>{{ text }}</a>
<a v-if="record.prehomoFlowTaskStatus_dicText == '待追踪'" style='color: #FDA71C'>{{ text }}</a>
<a v-if="record.prehomoFlowTaskStatus_dicText == '不涉及'" style='color: #707486'>{{ text }}</a>
<a v-if="record.prehomoFlowTaskStatus_dicText == '待确认'" style='color: #00B3BE'>{{ text }}</a>
<a v-if="record.prehomoFlowTaskStatus_dicText == '任务终止'" style='color: #E83030'>{{ text }}</a>
</span>
<span slot="filstatuse" slot-scope="text,record" :title="text" >
<a v-if="record.verifyFlowTaskStatus_dicText == '符合'" style='color: #26BD4B'>{{ text }}</a>
<a v-if="record.verifyFlowTaskStatus_dicText == '不符合'" style='color: #E83030'>{{ text }}</a>
<a v-if="record.verifyFlowTaskStatus_dicText == '待追踪'" style='color: #FDA71C'>{{ text }}</a>
<a v-if="record.verifyFlowTaskStatus_dicText == '不涉及'" style='color: #707486'>{{ text }}</a>
<a v-if="record.verifyFlowTaskStatus_dicText == '待确认'" style='color: #00B3BE'>{{ text }}</a>
<a v-if="record.verifyFlowTaskStatus_dicText == '任务终止'" style='color: #E83030'>{{ text }}</a>
</span>
<!-- <template slot="file" slot-scope="text, record">--> <!-- <template slot="file" slot-scope="text, record">-->
<!-- <a class="action-edit" href="javascript:;" @click="dowloadfile(record)" v-has="'bqnrzdpzxlbj'">{{record.exportFileName}}</a>--> <!-- <a class="action-edit" href="javascript:;" @click="dowloadfile(record)" v-has="'bqnrzdpzxlbj'">{{record.exportFileName}}</a>-->
@@ -125,22 +149,24 @@ export default {
title: this.$t('designComplianceReview'), title: this.$t('designComplianceReview'),
align: 'center', align: 'center',
width: 250, width: 250,
dataIndex: 'designStatus_dicText', dataIndex: 'designFlowTaskStatus_dicText',
scopedSlots: { customRender: 'status' },
ellipsis: true ellipsis: true
}, },
{ {
title: this.$t('preHomeConfirmation'), title: this.$t('preHomeConfirmation'),
align: 'center', align: 'center',
width: 270, width: 270,
dataIndex: 'prehomoStatus_dicText', dataIndex: 'prehomoFlowTaskStatus_dicText',
scopedSlots: { customRender: 'statusprehomo' },
ellipsis: true ellipsis: true
}, },
{ {
title: this.$t('verificationComplianceReview'), title: this.$t('verificationComplianceReview'),
align: 'center', align: 'center',
width: 270, width: 270,
dataIndex: 'verifyStatus_dicText', dataIndex: 'verifyFlowTaskStatus_dicText',
scopedSlots: { customRender: 'file' }, scopedSlots: { customRender: 'filstatuse' },
ellipsis: true ellipsis: true
} }
], ],
@@ -232,74 +232,32 @@
}, },
clearSelected() { clearSelected() {
let startTime = moment(new Date()).format('YYYY-MM-DD') let startTime = moment(new Date()).format('YYYY-MM-DD')
let endTime = this.getNewDate('after', 6) let endTime = this.haflYear()
this.searchParmes['WarnTime'] = [startTime, endTime] this.searchParmes['WarnTime'] = [startTime, endTime]
this.searchParmes = { ...this.searchParmes } this.searchParmes = { ...this.searchParmes }
this.pageNo = 1 this.pageNo = 1
this.getList() this.getList()
}, },
getNewDate(flag, many) { haflYear() {
// 先获取当前时间
const thirtyDays = [4, 6, 9, 11] // 30天的月份 var curDate = (new Date()).getTime()
// 将半年的时间单位换算成毫秒
const thirtyOneDays = [1, 3, 5, 7, 8, 10, 12] // 31天的月份 var halfYear = 365 / 2 * 24 * 3600 * 1000
// 半年前的时间毫秒单位
const currDate = new Date() // 今天日期 var pastResult = curDate + halfYear
// 日期函数定义起点为半年前
const year = currDate.getFullYear() var pastDate = new Date(pastResult)
var pastYear = pastDate.getFullYear()
let month = currDate.getMonth() + 1 var pastMonth = pastDate.getMonth() + 1
var pastDay = pastDate.getDate()
let targetDateMilli = 0 if (pastMonth >= 1 && pastMonth <= 9) {
pastMonth = '0' + pastMonth
let GMTDate = '' // 中国标准时间
let targetYear = '' //
let targetMonth = '' //
let targetDate = '' //
let dealTargetDays = '' // 目标日期
const isLeapYear = !!((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) // 是否是闰年
let countDays = 0 // 累计天数
for (let i = 0; i < many; i++) {
if (flag === 'before') {
month = month - 1 <= 0 ? 12 : month - 1
} else {
month = month + 1 > 12 ? 1 : month + 1
}
thirtyDays.includes(month) ? (countDays += 30) : thirtyOneDays.includes(month) ? (countDays += 31) : isLeapYear ? (countDays += 29) : (countDays += 28)
} }
if (pastDay >= 0 && pastDay <= 9) {
targetDateMilli = currDate.setDate( pastDay = '0' + pastDay
currDate.getDate() - (flag === 'before' ? countDays : countDays * -1) }
) var endDate = pastYear + '-' + pastMonth + '-' + (pastDay + 1)
return endDate
GMTDate = new Date(targetDateMilli)
targetYear = GMTDate.getFullYear()
targetMonth = GMTDate.getMonth() + 1
targetDate = GMTDate.getDate()
targetMonth = targetMonth.toString().padStart(2, '0')
targetDate = targetDate.toString().padStart(2, '0')
dealTargetDays = `${targetYear}-${targetMonth}-${targetDate}`
return dealTargetDays
}, },
pageOnChange(page) { pageOnChange(page) {
this.pageNo = page this.pageNo = page