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

This commit is contained in:
gaosong
2022-08-18 09:41:46 +08:00
91 changed files with 2477 additions and 371 deletions
@@ -824,21 +824,21 @@ CREATE TABLE `sar_file_compare_res_comment` (
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 法规技术评估-条款信息评估结果表 字段增加长度 2022-08-08
-- 法规技术评估-条款信息评估结果表 字段增加长度 2022-08-11 已同步生产环境
ALTER TABLE `laws_weilai`.`laws_technology_evaluation_item_result`
MODIFY COLUMN `technical_file_name` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '技术文件名称' AFTER `evaluation_methods`,
MODIFY COLUMN `section` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '章节' AFTER `technical_file_name`;
-- 问题知识库 字段长度修改 2022-08-08
-- 问题知识库 字段长度修改 2022-08-11 已同步生产环境
ALTER TABLE `laws_weilai`.`problem_knowledge_base`
MODIFY COLUMN `buss_document_library_id` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文档库id' AFTER `target_market`,
MODIFY COLUMN `stand_number` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标准编号' AFTER `buss_document_library_id`,
MODIFY COLUMN `stand_title` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标准标题' AFTER `stand_number`;
-- 问题知识库 字段类型修改 2022-08-09
-- 问题知识库 字段类型修改 2022-08-11 已同步生产环境
ALTER TABLE `laws_weilai`.`problem_knowledge_base`
MODIFY COLUMN `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容(正文)' AFTER `stand_title`;
-- 国家与国旗关系表 2022-08-09
-- 国家与国旗关系表 2022-08-11 已同步生产环境
CREATE TABLE `laws_weilai`.`country_national_flag` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
@@ -852,7 +852,7 @@ CREATE TABLE `laws_weilai`.`country_national_flag` (
`national_flag_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '国旗url',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '国家与国旗中间表' ROW_FORMAT = Dynamic;
-- 初始化数据 2022-08-10
-- 初始化数据 2022-08-11 已同步生产环境
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('1', NULL, NULL, NULL, NULL, NULL, '欧盟', 'EU', NULL, '/jero-boot/nationalFlag/EU.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('10', NULL, NULL, NULL, NULL, NULL, '美国', 'US', NULL, '/jero-boot/nationalFlag/US.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('11', NULL, NULL, NULL, NULL, NULL, '澳大利亚', 'Australia', NULL, '/jero-boot/nationalFlag/Australia.png');
@@ -867,22 +867,22 @@ INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_ti
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('8', NULL, NULL, NULL, NULL, NULL, '海湾地区', 'GCC', NULL, '海湾地区.jpg');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('9', NULL, NULL, NULL, NULL, NULL, '阿联酋', 'UAE', NULL, '/jero-boot/nationalFlag/UAE.png');
-- 法规意见收集-评估结果表字段长度调整 2022-08-11
-- 法规意见收集-评估结果表字段长度调整 2022-08-11 已同步生产环境
ALTER TABLE `laws_weilai`.`laws_opinion_assessment_result`
MODIFY COLUMN `related_section` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '相关章节' AFTER `laws_opinion_gather_id`,
MODIFY COLUMN `issue_or_suggest` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '问题/建议' AFTER `related_section`;
-- 法规技术评估-评估结果表 字段长度调整 2022-08-11
-- 法规技术评估-评估结果表 字段长度调整 2022-08-11 已同步生产环境
ALTER TABLE `laws_weilai`.`laws_technology_evaluation_result`
MODIFY COLUMN `issue_or_suggest` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '问题/建议' AFTER `related_section`,
MODIFY COLUMN `reason` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '理由' AFTER `issue_or_suggest`;
-- 展示区域 英文修改 2022-08-11
-- 展示区域 英文修改 2022-08-11 已同步生产环境
UPDATE `laws_weilai`.`onl_cgform_area` SET `en_name` = 'Relevant Information' WHERE `id` = '1492408622838222850';
UPDATE `laws_weilai`.`onl_cgform_area` SET `en_name` = 'General Information' WHERE `id` = '1499657602378825729';
UPDATE `laws_weilai`.`onl_cgform_area` SET `en_name` = 'Document Files' WHERE `id` = '1499658880093847553';
-- 数据字典 英文修改 2022-08-11
-- 数据字典 英文修改 2022-08-11 已同步生产环境
-- 同步情况 sync_state
UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'No' WHERE `id` = '1507311752583352322';
UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Yes' WHERE `id` = '1507311835571851265';
@@ -899,7 +899,7 @@ UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Development' WHERE `id` =
UPDATE `laws_weilai`.`sys_dict_item` SET `en_name` = 'Production' WHERE `id` = '1513769467044179970';
-- 表字段 英文修改 2022-08-11
-- 表字段 英文修改 2022-08-11 已同步生产环境
-- OCR识别转换记录表
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Conversion Result' WHERE `id` = '6b29f1c0e03533bb380c5ead03195785';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Conversion Time' WHERE `id` = '85894f5ad04de66ccf45ebd96c97b534';
@@ -917,13 +917,35 @@ 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 Content' WHERE `id` = '120a92b6d595c2fd68d2b90278357ce4';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Technical Field' WHERE `id` = 'ccf68e6578a0a446a6ac34018f0a477d';
-- 文档库信息表 2022-08-12
-- 文档库信息表 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
-- 参数项收集清单 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';
-- 国家国旗表 增加旗帜 2022-08-16
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('14', NULL, NULL, NULL, NULL, NULL, '海湾地区', 'GCC', NULL, '/jero-boot/nationalFlag/GCC.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('15', NULL, NULL, NULL, NULL, NULL, '巴西', 'Brazil', NULL, '/jero-boot/nationalFlag/Brazil.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('16', NULL, NULL, NULL, NULL, NULL, '德国', 'Germany', NULL, '/jero-boot/nationalFlag/Germany.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('17', NULL, NULL, NULL, NULL, NULL, '俄国', 'Russia', NULL, '/jero-boot/nationalFlag/Russia.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('18', NULL, NULL, NULL, NULL, NULL, '菲律宾', 'Philippines', NULL, '/jero-boot/nationalFlag/Philippines.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('19', NULL, NULL, NULL, NULL, NULL, '加拿大', 'Canada', NULL, '/jero-boot/nationalFlag/Canada.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('20', NULL, NULL, NULL, NULL, NULL, '墨西哥', 'Mexico', NULL, '/jero-boot/nationalFlag/Mexico.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('21', NULL, NULL, NULL, NULL, NULL, '挪威', 'Norway', NULL, '/jero-boot/nationalFlag/Norway.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('22', NULL, NULL, NULL, NULL, NULL, '泰国', 'Thailand', NULL, '/jero-boot/nationalFlag/Thailand.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('23', NULL, NULL, NULL, NULL, NULL, '印度', 'Hindustan', NULL, '/jero-boot/nationalFlag/Hindustan.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('24', NULL, NULL, NULL, NULL, NULL, '印尼', 'Indonesia', NULL, '/jero-boot/nationalFlag/Indonesia.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('25', NULL, NULL, NULL, NULL, NULL, '越南', 'Vietnam', NULL, '/jero-boot/nationalFlag/Vietnam.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('26', NULL, NULL, NULL, NULL, NULL, '智利', 'Chile', NULL, '/jero-boot/nationalFlag/Chile.png');
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('27', NULL, NULL, NULL, NULL, NULL, '中国香港', 'Hong Kong China', NULL, '/jero-boot/nationalFlag/HongKongChina.png');
-- 删除之前的3中国香港 和8海湾地区
delete from country_national_flag where id in ('3','8');
-- 法规流程历史表增加字段 审批意见 2022-08-16
ALTER TABLE `laws_weilai`.`laws_process_history`
ADD COLUMN `approval_opinion` varchar(2000) NULL COMMENT '审批意见' AFTER `flow_type`;
@@ -36,6 +36,7 @@ import com.jero.modules.cert.report.service.*;
import com.jero.modules.cert.template.entity.CertCategoryParamsInfoPublishEO;
import com.jero.modules.cert.template.entity.ParamsInfoPublishEO;
import com.jero.modules.cert.template.enums.ControlTypeEnum;
import com.jero.modules.cert.template.enums.ParamsIsMustEnum;
import com.jero.modules.cert.template.service.ICertCategoryParamsInfoPublishEOService;
import com.jero.modules.cert.template.service.IParamsInfoPublishEOService;
import com.jero.modules.feishu.service.IFeishuService;
@@ -528,147 +529,196 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
} else if (ControlTypeEnum.TEXT_PULL_SINGLE.getValue().equals(controlType)) {
ParamsConfigDataVO textConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO pullConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
textConfigDataVO.setType(ConfigDataTypeEnum.TEXT.getValue());
textConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
textConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
textConfigDataVO.setControlVerify(paramsCollectManifestEO.getControlVerify());
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) {
textConfigDataVO.setDataValue(paramsConfigDataEO.getTextData());
}
paramsConfigDataVOList.add(textConfigDataVO);
ParamsConfigDataVO pullConfigDataVO = new ParamsConfigDataVO();
pullConfigDataVO.setType(ConfigDataTypeEnum.PULL.getValue());
pullConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
pullConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
pullConfigDataVO.setControlValue(getControlValueMapList(paramsCollectManifestEO.getControlValues()));
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
pullConfigDataVO.setDataValue(paramsConfigDataEO.getPullData());
}
paramsConfigDataVOList.add(pullConfigDataVO);
paramsConfigDataVOList.add(textConfigDataVO);
} else if (ControlTypeEnum.TEXT_PULL_MORE.getValue().equals(controlType)) {
ParamsConfigDataVO textConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO pullMoreConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
pullMoreConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
pullMoreConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
textConfigDataVO.setType(ConfigDataTypeEnum.TEXT.getValue());
textConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
textConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
textConfigDataVO.setControlVerify(paramsCollectManifestEO.getControlVerify());
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) {
textConfigDataVO.setDataValue(paramsConfigDataEO.getTextData());
}
paramsConfigDataVOList.add(textConfigDataVO);
ParamsConfigDataVO pullMoreConfigDataVO = new ParamsConfigDataVO();
pullMoreConfigDataVO.setType(ConfigDataTypeEnum.PULL_MORE.getValue());
pullMoreConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
pullMoreConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
pullMoreConfigDataVO.setControlValue(getControlValueMapList(paramsCollectManifestEO.getControlValues()));
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
pullMoreConfigDataVO.setDataValue(paramsConfigDataEO.getPullData());
}
paramsConfigDataVOList.add(pullMoreConfigDataVO);
paramsConfigDataVOList.add(textConfigDataVO);
} else if (ControlTypeEnum.TEXT_FILE.getValue().equals(controlType)) {
ParamsConfigDataVO textConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
textConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
textConfigDataVO.setType(ConfigDataTypeEnum.TEXT.getValue());
textConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
textConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
textConfigDataVO.setControlVerify(paramsCollectManifestEO.getControlVerify());
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) {
textConfigDataVO.setDataValue(paramsConfigDataEO.getTextData());
}
paramsConfigDataVOList.add(textConfigDataVO);
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
fileConfigDataVO.setType(ConfigDataTypeEnum.FILE.getValue());
fileConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
fileConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
fileConfigDataVO.setTemplateId(templateId);
fileConfigDataVO.setTemplateName(templateName);
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getFileConnectId())) {
fileConfigDataVO.setDataValue(paramsConfigDataEO.getFileConnectId());
}
paramsConfigDataVOList.add(textConfigDataVO);
paramsConfigDataVOList.add(fileConfigDataVO);
} else if (ControlTypeEnum.PULL_SINGLE_FILE.getValue().equals(controlType)) {
ParamsConfigDataVO pullConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
pullConfigDataVO.setType(ConfigDataTypeEnum.PULL.getValue());
pullConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
pullConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
pullConfigDataVO.setControlValue(getControlValueMapList(paramsCollectManifestEO.getControlValues()));
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
pullConfigDataVO.setDataValue(paramsConfigDataEO.getPullData());
}
paramsConfigDataVOList.add(pullConfigDataVO);
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
fileConfigDataVO.setType(ConfigDataTypeEnum.FILE.getValue());
fileConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
fileConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
fileConfigDataVO.setTemplateId(templateId);
fileConfigDataVO.setTemplateName(templateName);
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getFileConnectId())) {
fileConfigDataVO.setDataValue(paramsConfigDataEO.getFileConnectId());
}
paramsConfigDataVOList.add(pullConfigDataVO);
paramsConfigDataVOList.add(fileConfigDataVO);
} else if (ControlTypeEnum.PULL_MORE_FILE.getValue().equals(controlType)) {
ParamsConfigDataVO pullMoreConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
pullMoreConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
pullMoreConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
pullMoreConfigDataVO.setType(ConfigDataTypeEnum.PULL_MORE.getValue());
pullMoreConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
pullMoreConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
pullMoreConfigDataVO.setControlValue(getControlValueMapList(paramsCollectManifestEO.getControlValues()));
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
pullMoreConfigDataVO.setDataValue(paramsConfigDataEO.getPullData());
}
paramsConfigDataVOList.add(pullMoreConfigDataVO);
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
fileConfigDataVO.setType(ConfigDataTypeEnum.FILE.getValue());
fileConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
fileConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
fileConfigDataVO.setTemplateId(templateId);
fileConfigDataVO.setTemplateName(templateName);
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getFileConnectId())) {
fileConfigDataVO.setDataValue(paramsConfigDataEO.getFileConnectId());
}
paramsConfigDataVOList.add(pullMoreConfigDataVO);
paramsConfigDataVOList.add(fileConfigDataVO);
} else if (ControlTypeEnum.TEXT_PULL_SINGLE_FILE.getValue().equals(controlType)) {
ParamsConfigDataVO textConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO pullConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
textConfigDataVO.setType(ConfigDataTypeEnum.TEXT.getValue());
textConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
textConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
textConfigDataVO.setControlVerify(paramsCollectManifestEO.getControlVerify());
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) {
textConfigDataVO.setDataValue(paramsConfigDataEO.getTextData());
}
paramsConfigDataVOList.add(textConfigDataVO);
ParamsConfigDataVO pullConfigDataVO = new ParamsConfigDataVO();
pullConfigDataVO.setType(ConfigDataTypeEnum.PULL.getValue());
pullConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
pullConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
pullConfigDataVO.setControlValue(getControlValueMapList(paramsCollectManifestEO.getControlValues()));
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
pullConfigDataVO.setDataValue(paramsConfigDataEO.getPullData());
}
paramsConfigDataVOList.add(pullConfigDataVO);
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
fileConfigDataVO.setType(ConfigDataTypeEnum.FILE.getValue());
fileConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
fileConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
fileConfigDataVO.setTemplateId(templateId);
fileConfigDataVO.setTemplateName(templateName);
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getFileConnectId())) {
fileConfigDataVO.setDataValue(paramsConfigDataEO.getFileConnectId());
}
paramsConfigDataVOList.add(pullConfigDataVO);
paramsConfigDataVOList.add(textConfigDataVO);
paramsConfigDataVOList.add(fileConfigDataVO);
}
@@ -724,6 +774,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
String dbFieldName = onlCgformField.getDbFieldName();
if ("description".equals(dbFieldName)) {
indexOfDescription = i;
map.put("click2", true);
}
if ("duty_territory".equals(dbFieldName)) {
map.put("click1", true);
@@ -26,6 +26,7 @@ import com.jero.modules.cert.report.mapper.ParamsReportDetailEOMapper;
import com.jero.modules.cert.report.service.*;
import com.jero.modules.cert.report.vo.ParamsReportDetailVO;
import com.jero.modules.cert.template.enums.ControlTypeEnum;
import com.jero.modules.cert.template.enums.ParamsIsMustEnum;
import com.jero.modules.ocr.util.LineHumpUtil;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
@@ -274,147 +275,196 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
} else if (ControlTypeEnum.TEXT_PULL_SINGLE.getValue().equals(controlType)) {
ParamsConfigDataVO textConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO pullConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
textConfigDataVO.setType(ConfigDataTypeEnum.TEXT.getValue());
textConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
textConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
textConfigDataVO.setControlVerify(paramsCollectManifestEO.getControlVerify());
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) {
textConfigDataVO.setDataValue(paramsConfigDataEO.getTextData());
}
paramsConfigDataVOList.add(textConfigDataVO);
ParamsConfigDataVO pullConfigDataVO = new ParamsConfigDataVO();
pullConfigDataVO.setType(ConfigDataTypeEnum.PULL.getValue());
pullConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
pullConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
pullConfigDataVO.setControlValue(getControlValueMapList(paramsCollectManifestEO.getControlValues()));
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
pullConfigDataVO.setDataValue(paramsConfigDataEO.getPullData());
}
paramsConfigDataVOList.add(pullConfigDataVO);
paramsConfigDataVOList.add(textConfigDataVO);
} else if (ControlTypeEnum.TEXT_PULL_MORE.getValue().equals(controlType)) {
ParamsConfigDataVO textConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO pullMoreConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
pullMoreConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
pullMoreConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
textConfigDataVO.setType(ConfigDataTypeEnum.TEXT.getValue());
textConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
textConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
textConfigDataVO.setControlVerify(paramsCollectManifestEO.getControlVerify());
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) {
textConfigDataVO.setDataValue(paramsConfigDataEO.getTextData());
}
paramsConfigDataVOList.add(textConfigDataVO);
ParamsConfigDataVO pullMoreConfigDataVO = new ParamsConfigDataVO();
pullMoreConfigDataVO.setType(ConfigDataTypeEnum.PULL_MORE.getValue());
pullMoreConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
pullMoreConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
pullMoreConfigDataVO.setControlValue(getControlValueMapList(paramsCollectManifestEO.getControlValues()));
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
pullMoreConfigDataVO.setDataValue(paramsConfigDataEO.getPullData());
}
paramsConfigDataVOList.add(pullMoreConfigDataVO);
paramsConfigDataVOList.add(textConfigDataVO);
} else if (ControlTypeEnum.TEXT_FILE.getValue().equals(controlType)) {
ParamsConfigDataVO textConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
textConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
textConfigDataVO.setType(ConfigDataTypeEnum.TEXT.getValue());
textConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
textConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
textConfigDataVO.setControlVerify(paramsCollectManifestEO.getControlVerify());
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) {
textConfigDataVO.setDataValue(paramsConfigDataEO.getTextData());
}
paramsConfigDataVOList.add(textConfigDataVO);
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
fileConfigDataVO.setType(ConfigDataTypeEnum.FILE.getValue());
fileConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
fileConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
fileConfigDataVO.setTemplateId(templateId);
fileConfigDataVO.setTemplateName(templateName);
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getFileConnectId())) {
fileConfigDataVO.setDataValue(paramsConfigDataEO.getFileConnectId());
}
paramsConfigDataVOList.add(textConfigDataVO);
paramsConfigDataVOList.add(fileConfigDataVO);
} else if (ControlTypeEnum.PULL_SINGLE_FILE.getValue().equals(controlType)) {
ParamsConfigDataVO pullConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
pullConfigDataVO.setType(ConfigDataTypeEnum.PULL.getValue());
pullConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
pullConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
pullConfigDataVO.setControlValue(getControlValueMapList(paramsCollectManifestEO.getControlValues()));
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
pullConfigDataVO.setDataValue(paramsConfigDataEO.getPullData());
}
paramsConfigDataVOList.add(pullConfigDataVO);
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
fileConfigDataVO.setType(ConfigDataTypeEnum.FILE.getValue());
fileConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
fileConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
fileConfigDataVO.setTemplateId(templateId);
fileConfigDataVO.setTemplateName(templateName);
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getFileConnectId())) {
fileConfigDataVO.setDataValue(paramsConfigDataEO.getFileConnectId());
}
paramsConfigDataVOList.add(pullConfigDataVO);
paramsConfigDataVOList.add(fileConfigDataVO);
} else if (ControlTypeEnum.PULL_MORE_FILE.getValue().equals(controlType)) {
ParamsConfigDataVO pullMoreConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
pullMoreConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
pullMoreConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
pullMoreConfigDataVO.setType(ConfigDataTypeEnum.PULL_MORE.getValue());
pullMoreConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
pullMoreConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
pullMoreConfigDataVO.setControlValue(getControlValueMapList(paramsCollectManifestEO.getControlValues()));
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
pullMoreConfigDataVO.setDataValue(paramsConfigDataEO.getPullData());
}
paramsConfigDataVOList.add(pullMoreConfigDataVO);
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
fileConfigDataVO.setType(ConfigDataTypeEnum.FILE.getValue());
fileConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
fileConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
fileConfigDataVO.setTemplateId(templateId);
fileConfigDataVO.setTemplateName(templateName);
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getFileConnectId())) {
fileConfigDataVO.setDataValue(paramsConfigDataEO.getFileConnectId());
}
paramsConfigDataVOList.add(pullMoreConfigDataVO);
paramsConfigDataVOList.add(fileConfigDataVO);
} else if (ControlTypeEnum.TEXT_PULL_SINGLE_FILE.getValue().equals(controlType)) {
ParamsConfigDataVO textConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO pullConfigDataVO = new ParamsConfigDataVO();
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
if (ParamsIsMustEnum.YES.getValue().equals(paramsCollectManifestEO.getIsMust())) {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.YES.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
} else {
pullConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
textConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
fileConfigDataVO.setIsMust(ParamsIsMustEnum.NO.getValue());
}
textConfigDataVO.setType(ConfigDataTypeEnum.TEXT.getValue());
textConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
textConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
textConfigDataVO.setControlVerify(paramsCollectManifestEO.getControlVerify());
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) {
textConfigDataVO.setDataValue(paramsConfigDataEO.getTextData());
}
paramsConfigDataVOList.add(textConfigDataVO);
ParamsConfigDataVO pullConfigDataVO = new ParamsConfigDataVO();
pullConfigDataVO.setType(ConfigDataTypeEnum.PULL.getValue());
pullConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
pullConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
pullConfigDataVO.setControlValue(getControlValueMapList(paramsCollectManifestEO.getControlValues()));
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) {
pullConfigDataVO.setDataValue(paramsConfigDataEO.getPullData());
}
paramsConfigDataVOList.add(pullConfigDataVO);
ParamsConfigDataVO fileConfigDataVO = new ParamsConfigDataVO();
fileConfigDataVO.setType(ConfigDataTypeEnum.FILE.getValue());
fileConfigDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
fileConfigDataVO.setIsLock(paramsConfigEO.getIsLock());
fileConfigDataVO.setTemplateId(templateId);
fileConfigDataVO.setTemplateName(templateName);
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getFileConnectId())) {
fileConfigDataVO.setDataValue(paramsConfigDataEO.getFileConnectId());
}
paramsConfigDataVOList.add(pullConfigDataVO);
paramsConfigDataVOList.add(textConfigDataVO);
paramsConfigDataVOList.add(fileConfigDataVO);
} else if (ControlTypeEnum.Title.getValue().equals(controlType)) {
@@ -146,7 +146,7 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> impl
if (cut.equals(CutEnum.CN.getValue())) {
throw new JeroBootException("只能够上传pdf/word/excel/csv/ppt/txt/zip/rar/静态图片类型的文件。请重新选择文件!");
} else {
throw new JeroBootException("Only upload pdf/word/excel/csv/ppt/txt/zip/rar/Static image type file. Please re-select the file!");
throw new JeroBootException("Only upload pdf/word/excel/csv/ppt/txt/zip/rar/Static image type file. Please re select the file!");
}
}
}
@@ -265,7 +265,7 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> impl
if (cut.equals(CutEnum.CN.getValue())) {
throw new JeroBootException("只能够上传pdf/word/excel/csv/ppt/txt/zip/rar/静态图片类型的文件。请重新选择文件!");
} else {
throw new JeroBootException("Only upload pdf/word/excel/csv/ppt/txt/zip/rar/Static image type file. Please re-select the file!");
throw new JeroBootException("Only upload pdf/word/excel/csv/ppt/txt/zip/rar/Static image type file. Please re select the file!");
}
}
}
@@ -357,7 +357,7 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> impl
if (cut.equals(CutEnum.CN.getValue())) {
throw new JeroBootException("只能够上传pdf/word/excel/csv/ppt/txt/zip/rar/静态图片类型的文件。请重新选择文件!");
} else {
throw new JeroBootException("Only upload pdf/word/excel/csv/ppt/txt/zip/rar/Static image type file. Please re-select the file!");
throw new JeroBootException("Only upload pdf/word/excel/csv/ppt/txt/zip/rar/Static image type file. Please re select the file!");
}
}
}
@@ -97,4 +97,7 @@ public class LawsProcessHistoryEO implements Serializable {
@ApiModelProperty(value = "流程类型")
private String flowType;
/**审批意见*/
@ApiModelProperty(value = "审批意见")
private String approvalOpinion;
}
@@ -59,6 +59,6 @@ public class LawsOpinionGatherJob implements Job {
}
}
}
log.info("法规意见收集流程,定时任务开启 =====================================================");
log.info("法规意见收集流程,定时任务结束 =====================================================");
}
}
@@ -14,5 +14,6 @@
<result column="operator_role_code" property="operatorRoleCode" />
<result column="operator_time" property="operatorTime" />
<result column="flow_type" property="flowType" />
<result column="approval_opinion" property="approvalOpinion" />
</resultMap>
</mapper>
@@ -208,8 +208,7 @@ public class LawsTechnologyEvaluationEOController extends JeroController<LawsTec
@ApiOperation(value = "条款导入")
@PostMapping(value = "/importItemExcel")
public Result<?> importItemExcel(MultipartFile file, @RequestParam(name = "cut") String cut, HttpServletRequest request) throws Exception {
List<Map<String,Object>> result = this.lawsTechnologyEvaluationEOService.importItemExcel(file,cut,request);
return Result.OK(result);
return this.lawsTechnologyEvaluationEOService.importItemExcel(file,cut,request);
}
@ApiOperation(value="根据id查询明细数据", notes="根据id查询明细数据")
@@ -85,7 +85,7 @@ public interface ILawsTechnologyEvaluationEOService extends IService<LawsTechnol
void exportItemTemplate(String cut, HttpServletResponse response, HttpServletRequest request);
List<Map<String,Object>> importItemExcel(MultipartFile file, String cut, HttpServletRequest request)throws Exception;
Result<?> importItemExcel(MultipartFile file, String cut, HttpServletRequest request)throws Exception;
List<Map<String, Object>> queryPageDummyById(Map<String, Object> parameter);
}
@@ -312,7 +312,7 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
title = "条款号,条款名称,条款内容";
fileOriName = "条款信息导入模板.xls";
} else {
title = "Item num,Item name,Item Contents";
title = "Item No.,Item Name,Item Content";
fileOriName = "Item information is imported into the template.xls";
}
@@ -356,7 +356,7 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
}
@Override
public List<Map<String,Object>> importItemExcel(MultipartFile file, String cut, HttpServletRequest request)throws Exception {
public Result<?> importItemExcel(MultipartFile file, String cut, HttpServletRequest request)throws Exception {
//校验文件格式
int pos = file.getOriginalFilename().lastIndexOf(".");
String fileSuffixStr = file.getOriginalFilename().substring(pos+1).toLowerCase();
@@ -367,7 +367,7 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
title = "条款号,条款名称,条款内容";
verifyTemplateMsg = "模板不正确,请下载正确的模板导入!";
} else {
title = "Item num,Item name,Item Contents";
title = "Item No.,Item Name,Item Content";
verifyTemplateMsg = "The template is not correct, please download the correct template to import!";
}
@@ -406,12 +406,35 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
}
int rowNos = sheet.getPhysicalNumberOfRows();// 得到excel的总记录条数
for (int i = 0; i < rowNos ; i++) {
Row row = sheet.getRow(i + 1);
if(row != null){
String itemNum = row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString();
String itemNum = "";
Cell itemNumCell = row.getCell(0);
if(itemNumCell != null){
itemNumCell.setCellType(CellType.STRING);
itemNum = itemNumCell.toString().replaceAll("'","").replaceAll("\"","");
}
String itemName = "";
Cell itemNameCell = row.getCell(1);
if(itemNameCell != null){
itemNameCell.setCellType(CellType.STRING);
itemName = itemNameCell.toString().replaceAll("'","").replaceAll("\"","");
}
String itemContents = "";
Cell itemContentsCell = row.getCell(2);
if(itemContentsCell != null){
itemContentsCell.setCellType(CellType.STRING);
itemContents = itemContentsCell.toString().replaceAll("'","").replaceAll("\"","");
}
/*String itemNum = row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString();
String itemName = row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString();
String itemContents = row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString();
String itemContents = row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString();*/
Map<String,Object> itemInfoMap = new HashMap<>();
String itemId = UUID.randomUUID().toString().replace("-", "");
itemInfoMap.put("itemId",itemId);
@@ -421,9 +444,17 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
result.add(itemInfoMap);
}
}
Map map = validateImportDatas(result,cut);
boolean isOk = (boolean) map.get("result");
if (!isOk) {
//验证没有通过
String message = (String) map.get("message");
return Result.error(message);
}
}
}
return result;
return Result.OK(result);
}
@Override
@@ -511,4 +542,105 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
}
return technologyTerritoryName;
}
public Map validateImportDatas(List<Map<String, Object>> dataList,String cut){
//存放数据验证结果信息
List<String> stringMessage = new ArrayList<>();
int i = 0;
for (Map<String, Object> map : dataList) {
i++;
int countError = 0; //记录失败数据数量
String errorMsg = "";
if(CutEnum.CN.getValue().equals(cut)){
errorMsg = "" + i + "行:";
}else{
errorMsg = i + " line";
}
String itemNum = (String) map.get("itemNum");
String itemName = (String) map.get("itemName");
String itemContent = (String) map.get("itemContent");
if(StringUtils.isEmpty(itemNum)){
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
errorMsg += "条款号不能为空;";
}else if (StringUtils.equals(cut,CutEnum.EN.getValue())){
errorMsg += "Item No. cannot be empty;";
}
countError++;
}else if(itemNum.length() > 100){
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
errorMsg += "条款号长度不能超过100;";
}else if (StringUtils.equals(cut,CutEnum.EN.getValue())){
errorMsg += "Item No. length of the cannot exceed 100;";
}
countError++;
}
if(StringUtils.isEmpty(itemName)){
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
errorMsg += "条款名称不能为空;";
}else if (StringUtils.equals(cut,CutEnum.EN.getValue())){
errorMsg += "Item Name cannot be empty;";
}
countError++;
}else if(itemName.length() > 100){
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
errorMsg += "条款名称长度不能超过100;";
}else if (StringUtils.equals(cut,CutEnum.EN.getValue())){
errorMsg += "Item Name length of the cannot exceed 100;";
}
countError++;
}
if(StringUtils.isEmpty(itemContent)){
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
errorMsg += "条款内容不能为空;";
}else if (StringUtils.equals(cut,CutEnum.EN.getValue())){
errorMsg += "Item Content cannot be empty;";
}
countError++;
}else if(itemContent.length() > 500){
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
errorMsg += "条款内容长度不能超过500;";
}else if (StringUtils.equals(cut,CutEnum.EN.getValue())){
errorMsg += "Item Content length of the cannot exceed 500;";
}
countError++;
}
if (countError > 0) {
errorMsg = errorMsg.substring(0,errorMsg.length()-1);
stringMessage.add(errorMsg);
}
}
Map result = new HashMap();
if(CollectionUtils.isEmpty(dataList)){
result.put("result", false);
String message = "";
if (StringUtils.equals(cut, CutEnum.CN.getValue())) {
message = "不能导入空的模板,请检查!";
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
message = "Cannot import empty template, please check!";
}
result.put("message", message);
}else if (stringMessage.isEmpty()) {
result.put("result", true);
result.put("resultList", dataList);
result.put("message", "");
} else {
result.put("result", false);
String html = "";
for (String message : stringMessage) {
html += message + "</br>";
}
result.put("message", html);
}
return result;
}
}
@@ -216,9 +216,12 @@ public class LawsTechnologyEvaluationItemResultEOServiceImpl extends ServiceImpl
List<SysCategory> categoryList = sysCategoryService.list();
for (LawsTechnologyEvaluationItemResultEO data : datas) {
String evaluationMethods = data.getEvaluationMethods();
List<String> evaluationMethodsList = Arrays.asList(evaluationMethods.split(","));
String name = getTreeName(cut, categoryList, evaluationMethodsList);
data.setEvaluationMethodsName(name);
if(StringUtils.isNotEmpty(evaluationMethods)){
List<String> evaluationMethodsList = Arrays.asList(evaluationMethods.split(","));
String name = getTreeName(cut, categoryList, evaluationMethodsList);
data.setEvaluationMethodsName(name);
}
if(StringUtils.isNotEmpty(data.getComplianceResult())){
data.setComplianceResultName(ComplianceResultEnum.getTextByValue(data.getComplianceResult(),cut));
}
@@ -263,7 +266,7 @@ public class LawsTechnologyEvaluationItemResultEOServiceImpl extends ServiceImpl
title = "条款号,条款名称,条款内容,评估人,评估方式,技术文件名称,章节,符合性结果,意见,附件,反馈时间";
fileName = "条款评估结果 " + ".xlsx";
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
title = "Item num,Item name,Item Contents,Evaluator,Evaluation methods,Name of technical document,Section,Compliance results,Opinion,Accessory,Feedback time ";
title = "Item No.,Item Name,Item Content,Assessor,Evaluation method,Name of technical document,chapter,Compliance Results,Opinion,Enclosure,Feedback Time";
fileName = "Item Evaluation results " + ".xlsx";
}
@@ -0,0 +1,48 @@
package com.jero.modules.problemKnowledgeBase.enums;
import com.jero.common.constant.enums.CutEnum;
import org.apache.commons.lang3.StringUtils;
/**
* 问题知识库-查询标识枚举类
*/
public enum QueryFlagEnum {
GET_ALL_APPLY_MARKET("获取所有的适用市场","","0"),
GET_NOT_CREATE_APPLY_MARKET("获取还没有创建过countryCard的适用市场","","1"),
GET_RELEASED_APPLY_MARKET("获取已发布的countryCard的适用市场","","2"),
GET_CREATE_APPLY_MARKET("获取所有自己已创建的countryCard的适用市场","","3"),
;
String cnName;
String enName;
String value;
private QueryFlagEnum(String cnName, String enName, String value) {
this.cnName = cnName;
this.enName = enName;
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value,String cut) {
QueryFlagEnum[] values = values();
for (QueryFlagEnum queryFlagEnum : values) {
if (queryFlagEnum.value.equals(value)) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
return queryFlagEnum.cnName;
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
return queryFlagEnum.enName;
}
}
}
return null;
}
}
@@ -6,9 +6,11 @@ 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.LoginUser;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryNationalFlagEO;
import com.jero.modules.problemKnowledgeBase.enums.QueryFlagEnum;
import com.jero.modules.problemKnowledgeBase.enums.ReleaseStatusEnum;
import com.jero.modules.problemKnowledgeBase.mapper.CountryCardManageReleaseEOMapper;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseDetailEOService;
@@ -18,6 +20,7 @@ import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -216,9 +219,9 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
//获取已经创建了country Card的适用地区该接口只返回在country Card里面没有的适用地区
List<CountryCardManageReleaseEO> countryCardManageReleaseEOList = this.list();
//如果查询标识是空则是在countryCard管理发布页面新增数据时使用管理发布页新增查询的是所有未创建countryCard的适用市场
//如果查询标识不是空则是在CountryCard的首页使用首页查询的是 所有已创建了countryCard的适用市场
if (StringUtils.isEmpty(queryFlag)) {
if (StringUtils.equals(queryFlag, QueryFlagEnum.GET_ALL_APPLY_MARKET.getValue())) {
result = dictModelList;
}else if (StringUtils.equals(queryFlag,QueryFlagEnum.GET_NOT_CREATE_APPLY_MARKET.getValue())) {
if(CollectionUtils.isEmpty(countryCardManageReleaseEOList)){
result = dictModelList;
}else {
@@ -236,7 +239,7 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
}
}
}
}else {
}else if(StringUtils.equals(queryFlag,QueryFlagEnum.GET_RELEASED_APPLY_MARKET.getValue())){
if(CollectionUtils.isEmpty(countryCardManageReleaseEOList)){
result = null;
}else {
@@ -250,6 +253,26 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
}
}
if(flag){
result.add(dictModel);
}
}
}
}else if(StringUtils.equals(queryFlag,QueryFlagEnum.GET_CREATE_APPLY_MARKET.getValue())){
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(CollectionUtils.isEmpty(countryCardManageReleaseEOList)){
result = null;
}else {
for (DictModel dictModel : dictModelList) {
boolean flag = false;
for (CountryCardManageReleaseEO countryCardManageReleaseEO : countryCardManageReleaseEOList) {
if(StringUtils.equals(dictModel.getValue(),countryCardManageReleaseEO.getApplyMarket())
&& StringUtils.equals(countryCardManageReleaseEO.getCreateBy(),currentUser.getUsername())){
flag = true;
break;
}
}
if(flag){
result.add(dictModel);
}
@@ -3,6 +3,7 @@ package com.jero.modules.problemKnowledgeBase.service.impl;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseClassifyEO;
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseClassifyEOMapper;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseClassifyEOService;
import com.jero.modules.project.entity.ConditionAssessmentEO;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.util.StringUtils;
@@ -10,10 +11,8 @@ import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Date;
import java.text.Collator;
import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -99,7 +98,15 @@ public class ProblemKnowledgeBaseClassifyEOServiceImpl extends ServiceImpl<Probl
*/
@Override
public List<ProblemKnowledgeBaseClassifyEO> queryList() {
return list();
List<ProblemKnowledgeBaseClassifyEO> result = this.list();
// 匿名比较器排序
Collections.sort(result, new Comparator<ProblemKnowledgeBaseClassifyEO>() {
@Override
public int compare(ProblemKnowledgeBaseClassifyEO p1, ProblemKnowledgeBaseClassifyEO p2) {
return p1.getProblemLabel().compareTo(p2.getProblemLabel());
}
});
return result;
}
@Override
@@ -50,6 +50,8 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
private IProblemKnowledgeBaseClassifyEOService problemKnowledgeBaseClassifyEOService;
@Autowired
private ISysDictService sysDictService;
@Autowired
private IProblemKnowledgeBaseCommentEOService problemKnowledgeBaseCommentEOService;
/**
* 保存
@@ -108,6 +110,18 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
QueryWrapper deleteWrapper = new QueryWrapper<>();
deleteWrapper.in("problem_knowledge_base_id",ids);
this.problemKnowledgeBaseUserEOService.remove(deleteWrapper);
this.problemKnowledgeBasePraiseEOService.remove(deleteWrapper);
this.problemKnowledgeBaseCollectEOService.remove(deleteWrapper);
this.problemKnowledgeBaseBrowsingHistoryEOService.remove(deleteWrapper);
this.problemKnowledgeBaseCommentEOService.remove(deleteWrapper);
}
/**
@@ -308,20 +322,25 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
String targetMarket = data.getTargetMarket();
if(StringUtils.isNotEmpty(targetMarket) && CollectionUtils.isNotEmpty(regionList)){
String[] targetMarketArr = targetMarket.split(",");
String targetMarket_dicText = "";
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
targetMarket_dicText = regionList.stream().filter(region -> {
boolean flag = false;
if (StringUtils.equals(targetMarket, region.getValue())) {
flag = true;
for (String s : targetMarketArr) {
if (StringUtils.equals(s, region.getValue())) {
flag = true;
}
}
return flag;
}).map(DictModel::getText).collect(Collectors.joining(","));
}else if(StringUtils.equals(cut, CutEnum.EN.getValue())){
targetMarket_dicText = regionList.stream().filter(region -> {
boolean flag = false;
if (StringUtils.equals(targetMarket, region.getValue())) {
flag = true;
for (String s : targetMarketArr) {
if (StringUtils.equals(s, region.getValue())) {
flag = true;
}
}
return flag;
}).map(DictModel::getTextEn).collect(Collectors.joining(","));
@@ -348,11 +367,13 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
List<String> problemKnowledgeBaseIdList = problemKnowledgeBaseUserEOList.stream().map(ProblemKnowledgeBaseUserEO::getProblemKnowledgeBaseId).distinct().collect(Collectors.toList());
queryWrapper.lambda().and(query -> {
query.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.OPEN.getValue()).
or(o -> {
query.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.OPEN.getValue());
if(CollectionUtils.isNotEmpty(problemKnowledgeBaseIdList)){
query.or(o -> {
o.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.PRIVACY.getValue());
o.in(ProblemKnowledgeBaseEO::getId,problemKnowledgeBaseIdList);
});
}
});
String searchStr = problemKnowledgeBaseEO.getSearchStr();
@@ -44,7 +44,6 @@ public class ProjectLibraryBaseController extends JeroController<ProjectLibraryB
*/
@AutoLog(value = "项目库基础表-分页列表查询")
@ApiOperation(value="项目库基础表-分页列表查询", notes="项目库基础表-分页列表查询")
@RequiresPermissions("projectLibraryBase:page")
@PostMapping(value = "/page")
public Result<?> queryPageList(@RequestBody Map<String,Object> params) {
IPage<ProjectLibraryBase> pageList= projectLibraryBaseService.queryPageList(params);
@@ -7,9 +7,9 @@ public enum ProjectTaskPlanningNameEnum {
// PREHOMO_DEADLINE("Pre-Homo","Pre-Homo"),
// ATTESTATION_START_TIME("认证开始","Certification begins"),
// ATTESTATION_END_TIME("认证结束"," End of certification"),
PREHOMO_DEADLINE("Pre-Homo确认","Pre-Homo Confirmation"), // name:Pre-Homo value:Pre-Homo
ATTESTATION_START_TIME("认证结束","Homo Completion"),// name:认证开始 value:Certification begins
ATTESTATION_END_TIME("认证开始","Homo KO"),// name:认证结束 value:End of certification
PREHOMO_DEADLINE("摸底试验结束","Pre-Homo Confirmation"), // name:Pre-Homo value:Pre-Homo
ATTESTATION_START_TIME("认证试验结束","Homo Completion"),// name:认证开始 value:Certification begins
ATTESTATION_END_TIME("认证批准","Homo KO"),// name:认证结束 value:End of certification
VERIFY_DEADLINE("验证符合性确认","Validation Compliance Confirmation"),
;
String name;
@@ -257,7 +257,7 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
title = "编号,标题,状态,技术领域,责任领域,相关项目,设计符合性,Pre-Homo确认,验证符合性";
fileName = "符合性结果" + ".xlsx";
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
title = "Serial number,Title,State,Technology territory,Responsible Field,Relevant project,Design conformance,Pre-Homo Confirm,Verify conformance";
title = "Number,Title,Status,Tech field,Responsible Field,Relevant project,Design Compliance Confirmation,Pre-Homo Confirmation,Validation Compliance Confirmation";
fileName = "Compliance results" + ".xlsx";
}
OutputStream os = null;
@@ -281,7 +281,7 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
//设置居中表头值
for (int i = 0; i < firstLineTitleArr.length; i++){
sheet.setColumnWidth(i,5000);
sheet.setColumnWidth(i,8000);
Cell cell = firstRow.createCell(i);
cell.setCellStyle(titleCellStyle);
cell.setCellValue(firstLineTitleArr[i]);
@@ -367,7 +367,7 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
title = "责任领域,相关项目,设计符合性,Pre-Homo确认,验证符合性";
fileName = "符合性结果" + ".xlsx";
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
title = "Responsible Field,Relevant project,Design conformance,Pre-Homo Confirm,Verify conformance";
title = "Responsible Field,Relevant project,Design Compliance Confirmation,Pre-Homo Confirmation,Validation Compliance Confirmation";
fileName = "Compliance results" + ".xlsx";
}
OutputStream os = null;
@@ -391,7 +391,7 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
//设置居中表头值
for (int i = 0; i < firstLineTitleArr.length; i++){
sheet.setColumnWidth(i,5000);
sheet.setColumnWidth(i,8000);
Cell cell = firstRow.createCell(i);
cell.setCellStyle(titleCellStyle);
cell.setCellValue(firstLineTitleArr[i]);
@@ -134,6 +134,22 @@ public class LawsMonthlyReportTitleTemplateEOController extends JeroController<L
return Result.OK("批量删除成功!");
}
/**
* 目录删除验证
*
* @param ids
* @return
*/
@AutoLog(value = "月报标题模板-批量删除")
@ApiOperation(value="月报标题模板-批量删除", notes="月报标题模板-批量删除")
@GetMapping(value = "/verifyDelete")
public Result<?> verifyDelete(@RequestParam(name="ids",required=true) String ids) {
String flag = this.lawsMonthlyReportTitleTemplateEOService.verifyDelete(Arrays.asList(ids.split(",")));
return Result.OK(flag);
}
/**
* 通过id查询
*
@@ -193,4 +193,10 @@ public class LawsMonthlyReportWriteEO implements Serializable {
@TableField(exist = false)
private String ids;
//新添字段
private String relatedAreasCn;//相关领域中文
private String relatedAreasEn;//相关领域英文
private String source;//来源
private String time;//日期
}
@@ -9,7 +9,8 @@ package com.jero.modules.report.enums;
public enum ContentTemplateEnum {
DEFAULT_TEMPLATE("默认模板","1"),
NEW_REQUEST_LIST_TEMPLATE("新征求意见清单模板","2"),
NEW_RELEASE_STANDARD_MANIFEST_TEMPLATE("新发布标准清单模板","3");
NEW_RELEASE_STANDARD_MANIFEST_TEMPLATE("新发布标准清单模板","3"),
INDUSTRY_INFORMATION_TRENDS("行业资讯动态","4");
@@ -29,5 +29,9 @@
<result column="laws_contact" property="lawsContact" />
<result column="link" property="link" />
<result column="export_state" property="exportState" />
<result column="related_areas_cn" property="relatedAreasCn" />
<result column="related_areas_en" property="relatedAreasEn" />
<result column="source" property="source" />
<result column="time" property="time" />
</resultMap>
</mapper>
@@ -48,6 +48,13 @@ public interface ILawsMonthlyReportTitleTemplateEOService extends IService<LawsM
*/
void deleteByIds(List<String> ids);
/**
* 目录删除验证
* @param ids
* @return
*/
String verifyDelete(List<String> ids);
/**
* 通过id查询
*
@@ -121,6 +121,32 @@ public class LawsMonthlyReportTitleTemplateEOServiceImpl extends ServiceImpl<Law
removeByIds(ids);
}
/**
* 目录删除验证
* @param ids
*/
@Override
public String verifyDelete(List<String> ids) {
//标题下存在内容或子标题时不能删除
//1. 判断是否存在子标题
LambdaQueryWrapper<LawsMonthlyReportTitleTemplateEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsMonthlyReportTitleTemplateEO::getParentId,ids);
List<LawsMonthlyReportTitleTemplateEO> list = this.list(wrapper);
if(list.size() != 0){
//不能删除
return "false";
}
//2. 判断是否存在内容 memories_chapter
LambdaQueryWrapper<LawsMonthlyReportWriteEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(LawsMonthlyReportWriteEO::getMemoriesChapter,ids);
List<LawsMonthlyReportWriteEO> lawsMonthlyReportWriteEOS = lawsMonthlyReportWriteEOService.list(lambdaQueryWrapper);
if(lawsMonthlyReportWriteEOS.size() != 0){
//不能删除
return "false";
}
return "true";
}
/**
* 通过id查询
*
@@ -414,7 +414,16 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
if(StringUtils.isNotBlank(lawsMonthlyReportWriteEO.getIds())){
wrapper.in(LawsMonthlyReportWriteEO::getId,Arrays.asList(lawsMonthlyReportWriteEO.getIds().split(",")));
}
//管理员查看全部数据,其余人只能查看自己的数据
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<String> rolesList = sysBaseApi.getRolesByUsername(currentUser.getUsername());
if(!rolesList.contains(ProjectRoleEnum.ADMIN.getCode())){
wrapper.in(LawsMonthlyReportWriteEO::getCreateBy,currentUser.getUsername());
}
List<LawsMonthlyReportWriteEO> lawsMonthlyReportWriteEOS = this.list(wrapper);
//法规联系人
List<LoginUser> loginUserList = getlawsContact(lawsMonthlyReportWriteEOS);
List<String> lawsMonthlyReportIdList = lawsMonthlyReportWriteEOS.stream().map(LawsMonthlyReportWriteEO::getId).collect(Collectors.toList());
//新征求意见清单模板
@@ -456,8 +465,8 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOService.list();
lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOS.stream()
.filter(e -> memoriesChapterList.contains(e.getId())).collect(Collectors.toList());
String path = uploadpath + "/tempZip";
long l = System.currentTimeMillis();
String path = uploadpath + "/tempZip"+l;
File fileTemp = new File(path);
if (fileTemp.exists()) {
fileTemp.delete();
@@ -465,7 +474,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
fileTemp.mkdirs();
OutputStream os = null;
try {
createWord(path,lawsMonthlyReportWriteEOS,lawsMonthlyReportTitleTemplateEOS);
createWord(path,lawsMonthlyReportWriteEOS,lawsMonthlyReportTitleTemplateEOS,loginUserList);
ZipUtil.zip(path, path + ".zip");
//文件
os = response.getOutputStream();
@@ -477,13 +486,15 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
os.write(len);
}
os.flush();
os.close();
fis.close();
} catch (Exception e) {
}finally {
IOUtils.closeQuietly(os);
File file = new File(uploadpath + "/tempZip");
File file = new File(uploadpath + "/tempZip"+l);
FileUtil.deleteContents(file);
File fileTem = new File(uploadpath + "/tempZip.zip");
File fileTem = new File(uploadpath + "/tempZip"+l+".zip");
FileUtil.deleteContents(fileTem);
}
//导出月报后修改列表状态
@@ -505,6 +516,28 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
}
}
private List<LoginUser> getlawsContact(List<LawsMonthlyReportWriteEO> lawsMonthlyReportWriteEOS) {
List<String> userIdList = lawsMonthlyReportWriteEOS.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);
}
return userList;
}
/**
*创建word文件
@@ -514,7 +547,8 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
*/
private void createWord(String path,
List<LawsMonthlyReportWriteEO> lawsMonthlyReportWriteEOS,
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS){
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS,
List<LoginUser> loginUserList){
//一级菜单
List<String> parentIdList = lawsMonthlyReportTitleTemplateEOS.stream().map(LawsMonthlyReportTitleTemplateEO::getParentId).distinct().collect(Collectors.toList());
LambdaQueryWrapper<LawsMonthlyReportTitleTemplateEO> wrapper = new LambdaQueryWrapper<>();
@@ -583,13 +617,15 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
//内容中文版
XWPFDocument documentContentCn = new XWPFDocument();
FileOutputStream outContentCn = new FileOutputStream(wordFileContentCn);
wordContent(lawsMonthlyReportWriteEOS, lawsMonthlyReportTitleTemplateEOS, reportTitleOneList, titleCN, documentContentCn,CutEnum.CN.getValue());
wordContent(lawsMonthlyReportWriteEOS, lawsMonthlyReportTitleTemplateEOS, reportTitleOneList, titleCN,
documentContentCn,CutEnum.CN.getValue(),loginUserList);
documentContentCn.write(outContentCn);
//内容英文版
XWPFDocument documentContentEn = new XWPFDocument();
FileOutputStream outContentEn = new FileOutputStream(wordFileContentEn);
wordContent(lawsMonthlyReportWriteEOS, lawsMonthlyReportTitleTemplateEOS, reportTitleOneList, titleCN, documentContentEn,CutEnum.EN.getValue());
wordContent(lawsMonthlyReportWriteEOS, lawsMonthlyReportTitleTemplateEOS, reportTitleOneList, titleEN,
documentContentEn,CutEnum.EN.getValue(), loginUserList);
documentContentEn.write(outContentEn);
} catch (IOException e) {
@@ -675,7 +711,8 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
List<LawsMonthlyReportTitleTemplateEO> reportTitleOneList,
String titleCN,
XWPFDocument document,
String cut) {
String cut,
List<LoginUser> loginUserList) {
//数据字典
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.selectItemsAll();
@@ -753,9 +790,12 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
String contentTemplate = lawsMonthlyReportWriteEO.getContentTemplate();
if(ContentTemplateEnum.DEFAULT_TEMPLATE.getValue().equals(contentTemplate)){
//写入模板
WordUtil.exportWordExcelDefault(document,lawsMonthlyReportWriteEO,sysDictItems,categoryList,cut);
WordUtil.exportWordExcelDefault(document,lawsMonthlyReportWriteEO,sysDictItems,categoryList,cut,loginUserList);
}
if(ContentTemplateEnum.INDUSTRY_INFORMATION_TRENDS.getValue().equals(contentTemplate)){
WordUtil.exportWordExcelIndustry(document,lawsMonthlyReportWriteEO,cut);
}
// else if(ContentTemplateEnum.NEW_REQUEST_LIST_TEMPLATE.getValue().equals(contentTemplate)){
// //新征求意见清单模板
// WordUtil.exportWordExcelAsk(document,lawsMonthlyReportWriteEO,cut);
@@ -2,7 +2,7 @@ package com.jero.modules.report.util;
import cn.hutool.core.util.ObjectUtil;
import com.jero.common.constant.enums.CutEnum;
import com.jero.modules.project.service.impl.ProjectLawsInventoryEOServiceImpl;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.report.entity.LawsMonthlyReportWriteEO;
import com.jero.modules.report.entity.NewOpinionTemplateEO;
import com.jero.modules.report.entity.NewStandardTemplateEO;
@@ -36,7 +36,6 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.STFldCharType;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STJc;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;
import java.io.FileInputStream;
import java.io.InputStream;
import java.math.BigInteger;
import java.util.Arrays;
@@ -44,6 +43,7 @@ import java.util.List;
import java.util.stream.Collectors;
public class WordUtil {
/**
* 导出工具示例
*
@@ -350,7 +350,8 @@ public class WordUtil {
LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO,
List<SysDictItem> sysDictItems,
List<SysCategory> categoryList,
String cut) {
String cut,
List<LoginUser> loginUserList) {
String technologyTerritory = lawsMonthlyReportWriteEO.getTechnologyTerritory();//技术领域
String applyCar = lawsMonthlyReportWriteEO.getApplyCar();//适用车型
String applyScope = lawsMonthlyReportWriteEO.getApplyScope();//适用范围
@@ -363,7 +364,8 @@ public class WordUtil {
String contentEn = lawsMonthlyReportWriteEO.getContentEn();//主要内容英文
String workProgressCn = lawsMonthlyReportWriteEO.getWorkProgressCn();//NIO工作进展中文
String workProgressEn = lawsMonthlyReportWriteEO.getWorkProgressEn();//NIO工作进展英文
String lawsContact = lawsMonthlyReportWriteEO.getLawsContact();//法规联系人
String lawsContactTemp = lawsMonthlyReportWriteEO.getLawsContact();//法规联系人
String lawsContact = getLawsContact(loginUserList, lawsContactTemp);
String link = lawsMonthlyReportWriteEO.getLink();//链接
String technologyTerritoryName = "";
if(org.apache.commons.lang3.StringUtils.isNotBlank(technologyTerritory)){
@@ -404,54 +406,163 @@ public class WordUtil {
//第1行
if(CutEnum.CN.getValue().equals(cut)){
//第1行
setCell(table.getRow(0), "技术领域",technologyTerritoryName);
setCell(table, 0, "相关领域",technologyTerritoryName);
//第2行
setCell(table.getRow(1), "适用车型",applyCarName);
setCell(table,1, "适用车型",applyCarName);
//第3行
setCell(table.getRow(2), "适用范围",applyScopeName);
setCell(table,2, "适用范围",applyScopeName);
//第4行
setCell(table.getRow(3), "状态",stateName);
setCell(table,3, "状态",stateName);
//第5行
setCell(table.getRow(4), "用法",useMethodName);
setCell(table,4, "用法",useMethodName);
//第6行
setCell(table.getRow(5), "实施车型",implementCar);
setCell(table,5, "实施车型",implementCar);
//第7行
setCell(table.getRow(6), "新车型实施日期",newCarImplementTime);
setCell(table,6, "新车型实施日期",newCarImplementTime);
//第8行
setCell(table.getRow(7), "在产车实施日期",productionCarImplementTime);
setCell(table,7, "在产车实施日期",productionCarImplementTime);
//第9行
setCell(table.getRow(8), "主要内容中文",contentCn);
setCell(table,8, "主要内容",contentCn);
//第10行
setCell(table.getRow(9), "NIO工作进展中文",workProgressCn);
setCell(table,9, "NIO工作进展",workProgressCn);
//第11行
setCell(table.getRow(10), "法规联系人",lawsContact);
setCell(table,10, "法规联系人",lawsContact);
//第12行
setCell(table.getRow(11), "链接",link);
setCell(table,11, "链接",link);
}else{
//第1行
setCell(table.getRow(0), "Technical Field",technologyTerritoryName);
setCell(table,0, "Related Areas",technologyTerritoryName);
//第2行
setCell(table.getRow(1), "Vehicle Type",applyCarName);
setCell(table,1,"Vehicle Type",applyCarName);
//第3行
setCell(table.getRow(2), "Scope",applyScopeName);
setCell(table,2,"Scope",applyScopeName);
//第4行
setCell(table.getRow(3), "Status",stateName);
setCell(table,3,"Status",stateName);
//第5行
setCell(table.getRow(4), "usage",useMethodName);
setCell(table,4,"usage",useMethodName);
//第6行
setCell(table.getRow(5), "Implementation Model",implementCar);
setCell(table,5,"Implementation Model",implementCar);
//第7行
setCell(table.getRow(6), "New Type Execution Date",newCarImplementTime);
setCell(table,6,"New Type Execution Date",newCarImplementTime);
//第8行
setCell(table.getRow(7), "New Vehicle Execution Date",productionCarImplementTime);
setCell(table,7,"New Vehicle Execution Date",productionCarImplementTime);
//第9行
setCell(table.getRow(8), "Main Content (English)",contentEn);
setCell(table,8,"Main Content",contentEn);
//第10行
setCell(table.getRow(9), "NIO Work Progress (English)",workProgressEn);
setCell(table,9,"NIO Work Progress",workProgressEn);
//第11行
setCell(table.getRow(10), "Regulatory Contact",lawsContact);
setCell(table, 10,"Regulatory Contact",lawsContact);
//第12行
setCell(table.getRow(11), "Link",link);
setCell(table, 11,"Link",link);
}
// if(CutEnum.CN.getValue().equals(cut)){
// //第1行
// setCell(table.getRow(0), "相关领域",technologyTerritoryName);
// //第2行
// setCell(table.getRow(1), "适用车型",applyCarName);
// //第3行
// setCell(table.getRow(2), "适用范围",applyScopeName);
// //第4行
// setCell(table.getRow(3), "状态",stateName);
// //第5行
// setCell(table.getRow(4), "用法",useMethodName);
// //第6行
// setCell(table.getRow(5), "实施车型",implementCar);
// //第7行
// setCell(table.getRow(6), "新车型实施日期",newCarImplementTime);
// //第8行
// setCell(table.getRow(7), "在产车实施日期",productionCarImplementTime);
// //第9行
// setCell(table.getRow(8), "主要内容",contentCn);
// //第10行
// setCell(table.getRow(9), "NIO工作进展",workProgressCn);
// //第11行
// setCell(table.getRow(10), "法规联系人",lawsContact);
// //第12行
// setCell(table.getRow(11), "链接",link);
// }else{
// //第1行
// setCell(table.getRow(0), "Related Areas",technologyTerritoryName);
// //第2行
// setCell(table.getRow(1), "Vehicle Type",applyCarName);
// //第3行
// setCell(table.getRow(2), "Scope",applyScopeName);
// //第4行
// setCell(table.getRow(3), "Status",stateName);
// //第5行
// setCell(table.getRow(4), "usage",useMethodName);
// //第6行
// setCell(table.getRow(5), "Implementation Model",implementCar);
// //第7行
// setCell(table.getRow(6), "New Type Execution Date",newCarImplementTime);
// //第8行
// setCell(table.getRow(7), "New Vehicle Execution Date",productionCarImplementTime);
// //第9行
// setCell(table.getRow(8), "Main Content",contentEn);
// //第10行
// setCell(table.getRow(9), "NIO Work Progress",workProgressEn);
// //第11行
// setCell(table.getRow(10), "Regulatory Contact",lawsContact);
// //第12行
// setCell(table.getRow(11), "Link",link);
// }
}
/**
* 行业资讯动态
* @param document
* @param lawsMonthlyReportWriteEO
* @param cut
*/
public static void exportWordExcelIndustry(XWPFDocument document,
LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO,
String cut) {
String relatedAreasCn = lawsMonthlyReportWriteEO.getRelatedAreasCn();//相关领域中文
String relatedAreasEn = lawsMonthlyReportWriteEO.getRelatedAreasEn();//相关领域英文
String source = lawsMonthlyReportWriteEO.getSource();//来源
String time = lawsMonthlyReportWriteEO.getTime();//日期
String contentCn = lawsMonthlyReportWriteEO.getContentCn();//主要内容中文
String contentEn = lawsMonthlyReportWriteEO.getContentEn();//主要内容英文
String link = lawsMonthlyReportWriteEO.getLink();//链接
XWPFTable table = document.createTable(5, 2);
//表格属性
CTTblPr tablePr = table.getCTTbl().addNewTblPr();
//表格宽度
CTJc cTJc = tablePr.addNewJc();
//居中
cTJc.setVal(STJc.CENTER);
//列宽自动分割
CTTblWidth tableWidth = tablePr.addNewTblW();
//设置表格宽度
tableWidth.setType(STTblWidth.DXA);
tableWidth.setW(BigInteger.valueOf(8000));
//第1行
if(CutEnum.CN.getValue().equals(cut)){
//第1行
setCell(table, 0, "相关领域",relatedAreasCn);
//第2行
setCell(table,1, "来源",source);
//第3行
setCell(table,2, "日期",time);
//第4行
setCell(table,3, "主要内容",contentCn);
//第5行
setCell(table,4, "链接",link);
}else{
//第1行
setCell(table,0, "Related Areas",relatedAreasEn);
//第2行
setCell(table,1,"source",source);
//第3行
setCell(table,2,"Date",time);
//第4行
setCell(table,3,"Main Content",contentEn);
//第5行
setCell(table,4,"Link",link);
}
}
public static void exportWordExcelAsk(XWPFDocument document,
@@ -666,18 +777,49 @@ public class WordUtil {
return fieldValueName;
}
private static void setCell(XWPFTableRow tableRow, String fieldName,String technologyTerritory) {
private static void setCell(XWPFTable table, int number, String fieldName,String technologyTerritory) {
tableRow.setHeight(500);
CTTblWidth ctTblWidth0 = tableRow.getCell(0).getCTTc().addNewTcPr().addNewTcW();
table.getRow(number).setHeight(500);
CTTblWidth ctTblWidth0 = table.getRow(number).getCell(0).getCTTc().addNewTcPr().addNewTcW();
ctTblWidth0.setType(STTblWidth.DXA);
ctTblWidth0.setW(BigInteger.valueOf(3000));
CTTblWidth ctTblWidth1 = tableRow.getCell(1).getCTTc().addNewTcPr().addNewTcW();
ctTblWidth0.setW(BigInteger.valueOf(2000));
CTTblWidth ctTblWidth1 = table.getRow(number).getCell(1).getCTTc().addNewTcPr().addNewTcW();
ctTblWidth1.setType(STTblWidth.DXA);
ctTblWidth1.setW(BigInteger.valueOf(5000));
tableRow.getCell(0).setText(fieldName);
tableRow.getCell(1).setText(technologyTerritory);
table.getRow(number).getCell(0).setText(fieldName);
table.getRow(number).getCell(1).setText(technologyTerritory);
}
// private static void setCell(XWPFTableRow tableRow, String fieldName,String technologyTerritory) {
//
// tableRow.setHeight(500);
// CTTblWidth ctTblWidth0 = tableRow.getCell(0).getCTTc().addNewTcPr().addNewTcW();
// ctTblWidth0.setType(STTblWidth.DXA);
// ctTblWidth0.setW(BigInteger.valueOf(3000));
// CTTblWidth ctTblWidth1 = tableRow.getCell(1).getCTTc().addNewTcPr().addNewTcW();
// ctTblWidth1.setType(STTblWidth.DXA);
// ctTblWidth1.setW(BigInteger.valueOf(5000));
//
// tableRow.getCell(0).setText(fieldName);
// tableRow.getCell(1).setText(technologyTerritory);
// }
private static String getLawsContact(List<LoginUser> userList, String lawsContact) {
if(com.jero.modules.system.util.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(com.jero.modules.system.util.StringUtils.isNotBlank(sb)){
String substring = sb.substring(0, sb.length() - 1);
return substring;
}
}
return null;
}
}
@@ -41,9 +41,12 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
@@ -127,9 +130,63 @@ public class LawsWarnService {
bussDocumentLibraryEOService.dictItem(sysDictItems, entry, cut, onlCgformFieldListTemp,null);
bussDocumentLibraryEOService.treeDictItem(categoryList, entry, treeFieldList, cut,null);
}
//到期前6个月显示红色到期前12个月显示黄色
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String newCarTime = String.valueOf(record.get("xin1_che1_xing2_shi2_shi1_ri4_qi1"));
String implementTime = String.valueOf(record.get("implement_time"));
String currentTime = sdf.format(new Date());
if(StringUtils.isNotBlank(newCarTime) && !"null".equals(newCarTime)){
try {
if(Integer.parseInt(String.valueOf(parameter.get("flag"))) == 0){
Date newCarTimeDate = sdf.parse(newCarTime);
//当前时间的前6个月
String beforeTimeSix = beforeTime(6,new Date());
String beforeTimeTwelve = beforeTime(12,new Date());
Date parseSix = sdf.parse(beforeTimeSix);
Date parseTwelve = sdf.parse(beforeTimeTwelve);
if((newCarTimeDate.after(new Date()) && newCarTimeDate.before(parseSix)) || newCarTime.equals(beforeTimeSix)){
record.put("new_colour","red");
}
if((newCarTimeDate.after(parseSix) && newCarTimeDate.before(parseTwelve)) || newCarTime.equals(beforeTimeTwelve)){
record.put("new_colour","yellow");
}
}
} catch (ParseException e) {
e.printStackTrace();
}
}
if(StringUtils.isNotBlank(implementTime) && !"null".equals(implementTime)){
try {
if(Integer.parseInt(String.valueOf(parameter.get("flag"))) == 1){
Date implementTimeDate = sdf.parse(implementTime);
//当前时间的前6个月
String beforeTimeSix = beforeTime(6,new Date());
String beforeTimeTwelve = beforeTime(12,new Date());
Date parseSix = sdf.parse(beforeTimeSix);
Date parseTwelve = sdf.parse(beforeTimeTwelve);
if((implementTimeDate.after(new Date()) && implementTimeDate.before(parseSix)) || implementTime.equals(beforeTimeSix)){
record.put("implement_colour","red");
}
if((implementTimeDate.after(parseSix) && implementTimeDate.before(parseTwelve)) || implementTime.equals(beforeTimeTwelve)){
record.put("implement_colour","yellow");
}
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
return infoPage;
}
private String beforeTime (int month, Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendarBefore = Calendar.getInstance();
calendarBefore.setTime(date);
calendarBefore.add(Calendar.MONTH, month);
Date dateBefore = calendarBefore.getTime();
String beforeTime = sdf.format(dateBefore);
return beforeTime;
}
public void exportExcel(Map<String, Object> map, HttpServletResponse response, HttpServletRequest request) {
String cut = (String) map.get("cut");
Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

+3 -1
View File
@@ -1168,7 +1168,7 @@ module.exports = {
exportComparisonReport: 'Export Comparison Report',
comparisonDifferenceComment: 'Comparison Difference Comment',
fullTextComments: 'Full text comments',
fileDeclaration: 'file Declaration',
fileDeclaration: 'File Declaration',
FileForDetails: 'File For Details',
Converting: 'Converting',
convertNetwork: 'Convert Network',
@@ -1255,9 +1255,11 @@ module.exports = {
deleteNode:'If there is any file information, the file will be deleted. Are you sure to delete this data?',
HaveReleased:'Have released',
forward:'Forward',
areResponsibilityAreaInformationBatch:'Are you sure you want to modify the responsibility area information in batch',
issuedBy:'Issued by',
pleaseDecompositionStandardOrder:'Please import or bring in at least one decomposition standard order',
currentlyTheFirstOneThatCannotMovedUp:'Currently the first one that cannot be moved up',
currentlyTheLastOneCannotmovedDown:'Currently the last one cannot be moved down',
weilaiRegulationMonthlyReport:'Weilai Regulation Monthly Report',
thereTitleWhichCannotBeDeleted:'There are new contents under this title, which cannot be deleted',
}
+3 -1
View File
@@ -495,7 +495,7 @@ module.exports = {
toBeConfirmed: '待确认',
Operator: '操作人',
role: '角色',
operationContent: '操作内容',
OperationContent: '操作内容',
operationTime: '操作时间',
toDoProcess: '待办流程',
processDone: '已办流程',
@@ -1357,9 +1357,11 @@ module.exports = {
deleteNode:'若有文件信息将同步删除确认删除该条数据',
HaveReleased:'已发布',
forward:'转发',
areResponsibilityAreaInformationBatch:'确实是否批量修改责任领域信息',
issuedBy:'发布人',
pleaseDecompositionStandardOrder:'请导入或带入至少一条分解标准单',
currentlyTheFirstOneThatCannotMovedUp:'当前已是第一个无法进行上移',
currentlyTheLastOneCannotmovedDown:'当前已是最后一个无法进行下移',
weilaiRegulationMonthlyReport:'蔚来法规月报',
thereTitleWhichCannotBeDeleted:'该标题下存在新增内容,不能删除',
}
@@ -278,6 +278,18 @@
<!-- 文本+下拉多选-->
<div v-else-if='detailDate.controlType === "6"' class='add_flex'>
<div v-for='(item,index) in detailDate.list' :key='index' class='add-width'>
<div v-if='item.type==="pull_more"'>
<a-select v-model="item.dataValue"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
mode="multiple" class='selectWid'
:disabled="item.isLock == '1' ? true: false" allowClear>
<a-select-option v-for="(item, key) in item.controlValue" :key="key" :value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
{{ item.label }}
</span>
</a-select-option>
</a-select>
</div>
<div v-if='item.type==="text"'>
<!-- 文本校验 分情况-->
<!-- 1 -->
@@ -369,18 +381,7 @@
v-model="item.dataValue"/>
</div>
</div>
<div v-if='item.type==="pull_more"'>
<a-select v-model="item.dataValue"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
mode="multiple" class='selectWid'
:disabled="item.isLock == '1' ? true: false" allowClear>
<a-select-option v-for="(item, key) in item.controlValue" :key="key" :value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
{{ item.label }}
</span>
</a-select-option>
</a-select>
</div>
</div>
</div>
<!-- 文本+附件-->
@@ -680,8 +681,9 @@
uploadFileChangeDown
},
mounted() {
console.log(this.detailDate)
this.detailDate.list.forEach((item) => {
if (item.type === 'pull_more') {
if (item.type === 'pull_more' && !item.dataValue) {
item.dataValue = []
}
// this.detailDatetransformation.push(item)
@@ -737,11 +739,11 @@
},
watch: {
detailDate(newold, oldold) {
console.log(newold, oldold, 'll')
// console.log(newold, oldold, 'll')
},
formInline: {
handler(newOld, oldval) {
console.log(newOld, oldval, 'll')
// console.log(newOld, oldval, 'll')
},
deep: true
}
@@ -1,7 +1,7 @@
<template>
<div>
<div class="box-title-text">
<a-input class="box-input" :value="value" @input="indexclick($event)"
<a-input class="box-input" :value="value" :title="value" @input="indexclick($event)"
:disabled="isDisabled"
:placeholder="!isDisabled?$t('PleaseEnterOrSelect')+query.db_field_txt:query.db_field_txt"/>
<a-button v-if="!isDisabled" type="primary" class="button-box" @click="standardClick">
@@ -224,7 +224,7 @@
position: absolute;
bottom: 0;
width: 100%;
z-index:100;
z-index: 100;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
@@ -56,12 +56,19 @@
<a-row style="margin-bottom: 12px;">
<a-col :md="12" :xs="24">
<a-form-item :label="$t('FilterMatching')" :labelCol="{md: 6,xs:24}" :wrapperCol="{md: 18,xs:24}" style="width: 100%;">
<a-select v-model="matchType" :getPopupContainer="node=>node.parentNode" style="width: 100%;">
<a-select-option value="and">AND{{$t('AllMatching')}}</a-select-option>
<a-select-option value="or">OR{{$t('AnyOneMatches')}}</a-select-option>
</a-select>
</a-form-item>
<div class="box-title-text">
<div class="title-text" :title="$t('FilterMatching')">
<span>{{$t('FilterMatching')}}</span>
</div>
<!-- :label="$t('FilterMatching')" :labelCol="{md: 6,xs:24}" :wrapperCol="{md: 18,xs:24}" style="width: 100%;"-->
<a-form-item class='box-input'>
<a-select v-model="matchType" :getPopupContainer="node=>node.parentNode" style="width: 100%;">
<a-select-option value="and">AND{{$t('AllMatching')}}</a-select-option>
<a-select-option value="or">OR{{$t('AnyOneMatches')}}</a-select-option>
</a-select>
</a-form-item>
</div>
</a-col>
</a-row>
@@ -627,7 +634,33 @@
</script>
<style lang="less" scoped>
.box-title-text {
line-height: 1.4;
display: flex;
align-items: center;
margin-bottom: 10px;
}
.title-text {
width: 110px;
color: #000F16;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
margin-top: 3px;
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.box-input {
display: inline-block;
width: 70%;
height: 38px;
margin-top: 2px;
}
.j-super-query-box {
display: inline-block;
}
+22 -3
View File
@@ -189,6 +189,14 @@
},
methods: {
searchQuery() {
if (this.isDefault) {
let startTime = moment(new Date()).format('YYYY-MM-DD')
let endTime = this.haflYear()
if (this.queryParam['WarnTime'].length == 0) {
this.queryParam['WarnTime'] = [startTime, endTime]
}
this.queryParam = { ...this.queryParam }
}
eventBUs.$emit('searchQuery', JSON.parse(JSON.stringify(this.queryParam)))
},
searchReset() {
@@ -298,8 +306,7 @@
}
.title-text {
width: 20%;
min-width: 110px;
width: 100px;
color: #000F16;
display: inline-block;
font-weight: 500;
@@ -315,7 +322,7 @@
.box-input {
/*min-width: 200px;*/
display: inline-block;
width: 70%;
width: calc(100% - 116px);
height: 38px;
margin-top: 2px;
}
@@ -324,4 +331,16 @@
height: 38px;
/*margin-top: 2px;*/
}
::v-deep .ant-select-tree {
width: auto;
height: 300px;
overflow: auto;
position: absolute;
/*background: #fff;*/
}
::v-deep .ant-select-tree-dropdown {
min-height: 320px;
}
</style>
@@ -25,6 +25,9 @@
<span style='padding-right: 10px;margin-left: -16px'>{{ item.db_field_txt }} </span>
<a-button @click='onClickSee(item)'>{{$t('See')}}</a-button>
</div>
<span slot="ParameterDescription" slot-scope="text,record" :title="text">
{{ text && text.length > 8 ? text.slice(0, 7) + '...' : text }}
</span>
<span slot="operationbtn" slot-scope="record">
<span v-if='currentPersonRole === "homo"'>
@@ -220,10 +223,10 @@
type: Object,
default: true
},
queryParamQuery: {
type: Object,
default: true
},
// queryParamQuery: {
// type: Object,
// default: true
// },
currentPersonRole: {
type: String,
default: true
@@ -452,6 +455,7 @@
console.log(res)
if (res.data.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
// this.$refs['ruleFormOne'].resetFields()
_this.areaVisiblezr = false
this.getLoginUserType()
} else {
@@ -492,6 +496,7 @@
console.log(res)
if (res.data.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
this.$refs['ruleForm'].resetFields()
_this.areaVisible = false
this.getLoginUserType()
} else {
@@ -515,23 +520,25 @@
},
// 点击工程接口人的详情人员 有权限
areaOfResponsibility(record) {
this.areaVisible = true
// this.$refs.ruleForm.clearValidate()
this.$nextTick(() => {
this.Dateline = { ...this.Dateline }
this.getquerySdtList(record)
this.$refs.ruleForm.clearValidate()
})
this.areaVisible = true
},
// 点击责任领域的详情人员 有权限
ondataValueTobe(record) {
this.areaVisiblezr = true
// this.$refs.ruleForm.clearValidate()
this.$nextTick(() => {
this.Dateline = { ...this.Dateline }
this.getquerySdtId = record.id
this.$refs.ruleFormOne.clearValidate()
})
this.areaVisiblezr = true
},
dataValueTobeinitiated() {
this.$message.warning(this.$t('certifiedEngineer') + this.$t('and') + this.$t('Statusis') + this.$t('CollectionInitiated') + this.$t('ReturnedPerson') + this.$t('alteration') + this.$t('toHavePermission'))
@@ -627,7 +634,7 @@
title: res.db_field_txt,
dataIndex: res.db_field_name,
align: 'center',
ellipsis: true,
// ellipsis: true,
sorter: res.sort,
width: 160
})
@@ -640,6 +647,11 @@
customRender: 'operationzr'
}
}
if(res.click2){
this.columns[index].scopedSlots = {
customRender: 'ParameterDescription'
}
}
if (res.click) {
// 工程接口人列表修改
this.columns[index].scopedSlots = {
@@ -649,7 +661,6 @@
}
})
this.columns = [...this.columns]
console.log(this.columns)
}
})
},
@@ -726,9 +737,6 @@
this.selectedRowKeys = []
},
getTableList(currentPersonRole) {
console.log(currentPersonRole)
console.log(this.queryParamQuery)
// todo
let paramsManifestid
let url
if (this.$route.query.it === undefined) {
@@ -752,7 +760,6 @@
this.loading = true
getAction(url, params).then((res) => {
if (res.success) {
// todo
// console.log(res.result,'res.result')
// let tt = []
// this.dataSource = []
@@ -771,13 +778,14 @@
// })
let tt = []
if (this.currentPersonRole !== 'dre') {
console.log(res.result.records,'res.result.records')
res.result.records.forEach((Obj) => {
Object.keys(Obj).forEach((item) => {
if (Obj[item] instanceof Object && Obj[item].controlType !== undefined) {
Obj[item].list.forEach((itemLi) => {
itemLi.isLock = 1
if (itemLi.type === 'pull_more') {
itemLi.dataValue = itemLi.dataValue === null ? [] : itemLi.dataValue.split(',')
itemLi.dataValue = !itemLi.dataValue ? [] : itemLi.dataValue.split(',')
}
})
}
@@ -790,7 +798,7 @@
if (Obj[item] instanceof Object && Obj[item].controlType !== undefined) {
Obj[item].list.forEach((itemLi) => {
if (itemLi.type === 'pull_more') {
itemLi.dataValue = itemLi.dataValue === null ? [] : itemLi.dataValue.split(',')
itemLi.dataValue = !itemLi.dataValue ? [] : itemLi.dataValue.split(',')
}
})
}
@@ -798,7 +806,7 @@
tt.push(Obj)
})
}
this.dataSource = tt
this.dataSource = JSON.parse(JSON.stringify(tt))
this.total = res.result.total
this.selectedRowKeys = []
this.selectedRowrowValue = []
@@ -875,6 +883,7 @@
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
word-break: break-word;
color: #040B29;
font-weight: 400;
}
@@ -62,7 +62,7 @@ import { mapGetters } from 'vuex'
}
},
created() {
console.log(this.detailDate, 'detailDate')
// console.log(this.detailDate, 'detailDate')
// this.detailDate.list.forEach((item) => {
// if (item.type == 'file' && item.isLock == '1') {
// this.disabled = true
@@ -20,7 +20,7 @@
size="middle"
:loading="loading"
:pagination="false"
:scroll="{x: '100%'}"
:scroll="{x: '100%',y:'calc(100vh - 320px)'}"
:data-source="dataSource"
:columns="columns"
>
@@ -362,7 +362,7 @@
},
completeTask(value, taskId, isTrue) {
let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
value.operatorTime = handlingTime
value.handlingTime = handlingTime
Object.keys(value).forEach(res => {
if (value[res] && value[res] instanceof String) {
value[res] = value[res].replace(/\"/g, '“')
@@ -32,7 +32,6 @@
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="CategoryTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('technicalField')"
@@ -86,7 +85,7 @@
size="middle"
:loading="loading"
:pagination="false"
:scroll="{x: '100%'}"
:scroll="{x: '100%',y:'calc(100vh - 160px)'}"
rowKey="id"
:data-source="dataSource"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@@ -320,8 +319,7 @@
}
.title-text {
width: 20%;
min-width: 110px;
width: 110px;
color: #000F16;
display: inline-block;
font-weight: 500;
@@ -336,7 +334,7 @@
.box-input {
display: inline-block;
width: 70%;
width: calc(100% - 126px);
height: 38px;
margin-top: 2px;
}
@@ -10,6 +10,8 @@
</div>
<a-select :placeholder="$t('PleaseSelect')+$t('applicableMarket')"
:disabled="false"
style="z-index: 100"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="queryParam.applyMarket">
<a-select-option v-for="(item, key) in applyMarketList"
:key="key"
@@ -86,7 +88,7 @@
},
methods: {
getApplyMarketList() {
getAction('/problemKnowledgeBase/countryCardManageReleaseEO/getApplyMarketList', { queryFlag: 'countryCard' }).then((res) => {
getAction('/problemKnowledgeBase/countryCardManageReleaseEO/getApplyMarketList', { queryFlag: '2' }).then((res) => {
if (res.success) {
this.applyMarketList = res.result || []
} else {
@@ -20,8 +20,9 @@
<span>{{$t('applicableMarket')}}</span>
</div>
<a-select class="box-input"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:placeholder="$t('PleaseSelect')+$t('applicableMarket')"
style="width: 100%"
style="width: 100%;"
v-model="queryParam.applyMarket">
<a-select-option v-for="(item, key) in applyMarketList"
:key="key"
@@ -39,8 +40,9 @@
<span>{{$t('releaseStatus')}}</span>
</div>
<a-select class="box-input"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:placeholder="$t('PleaseSelect')+$t('releaseStatus')"
style="width: 100%"
style="width: 100%;"
v-model="queryParam.releaseStatus">
<a-select-option v-for="(item, key) in releaseStatusList"
:key="key"
@@ -192,7 +194,7 @@
methods: {
...mapGetters(['userInfo']),
getApplyMarketList() {
getAction('/problemKnowledgeBase/countryCardManageReleaseEO/getApplyMarketList', { queryFlag: '1' }).then((res) => {
getAction('/problemKnowledgeBase/countryCardManageReleaseEO/getApplyMarketList', { queryFlag: '3' }).then((res) => {
if (res.success) {
this.applyMarketList = res.result || []
} else {
@@ -233,6 +235,7 @@
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
createBy: this.userInfo().username,
...queryParam
}
this.loading = true
@@ -474,4 +477,8 @@
.text-operation {
margin-right: 8px;
}
::v-deep .ant-select-dropdown {
z-index: 100;
}
</style>
@@ -181,7 +181,7 @@
this.editReplacePage(row)
},
getApplyMarketList() {
getAction('/problemKnowledgeBase/countryCardManageReleaseEO/getApplyMarketList', {}).then((res) => {
getAction('/problemKnowledgeBase/countryCardManageReleaseEO/getApplyMarketList', { queryFlag: '1' }).then((res) => {
if (res.success) {
this.applyMarketList = res.result || []
} else {
@@ -186,7 +186,6 @@
})
}
if (content && content.length > 0) {
console.log(content)
content.forEach((res, index) => {
this.contentList[index + 1] = { name: res.lableName }
this.contentList[index + 1].list = []
@@ -228,7 +227,15 @@
}
postAction(this.list, query).then((res) => {
if (res.success) {
this.queryCountryList = res.result || []
this.queryCountryList = []
applyMarkets.split(',').forEach(val => {
res.result.forEach(ol => {
if (val == ol.applyMarket) {
this.queryCountryList.push(ol)
}
})
})
// this.queryCountryList = res.result || []
this.isTrue = false
this.$nextTick(() => {
this.clientWidth = 340 * (this.queryCountryList.length + 1) + 'px'
@@ -350,13 +357,13 @@
border-bottom: 1px #d9d9d9 solid;
.content-box-box-img {
width: 70%;
width: 238px;
height: 100%;
}
.content-box-box-text {
display: inline-block;
width: 30%;
width: calc(100% - 238px);
text-align: center;
font-size: 18px;
font-weight: 500;
@@ -380,13 +387,13 @@
cursor: pointer;
.content-box-box-img {
width: 70%;
width: 238px;
height: 100%;
}
.content-box-box-text {
display: inline-block;
width: 30%;
width: calc(100% - 238px);
text-align: center;
font-size: 18px;
font-weight: 500;
@@ -587,7 +587,12 @@
::v-deep .itemModel-explain .ant-form-explain {
margin-top: 60px
}
::v-deep .ql-tooltip {
z-index: 10 !important;
}
::v-deep .ql-snow .ql-picker {
height: 36px;
}
</style>
@@ -26,15 +26,15 @@
</template>
</div>
<div class="box-content-right">
<div @click="classificationClick" class="operator-text" v-has="'virtual:set:creater'">
<div @click="classificationClick" class="operator-text">
<a-icon type="setting"/>
{{$t('classificationMaintenance')}}
</div>
<div @click="managePublishingClick" class="operator-text" v-has="'virtual:set:creater'">
<div @click="managePublishingClick" class="operator-text">
<a-icon type="carry-out"/>
{{$t('managePublishing')}}
</div>
<div @click="newlyAddedClick" class="operator-text" v-has="'virtual:set:creater'">
<div @click="newlyAddedClick" class="operator-text">
<a-icon type="plus"/>
{{$t('newlyAdded')}}
</div>
@@ -205,6 +205,15 @@
this.$message.warning(this.$t('thereWhichCannotDeleted'))
return
}
getAction('/report/lawsMonthlyReportTitleTemplateEO/verifyDelete', { ids: val.id }).then((res) => {
if (res.result == 'true') {
this.deleteBatch(val)
} else {
this.$message.warning(this.$t('thereTitleWhichCannotBeDeleted'))
}
})
},
deleteBatch(val) {
let _this = this
this.$confirm({
content: _this.$t('ConfirmDelete'),
@@ -44,8 +44,10 @@
<span class="title-text-text" :title="$t('selectedStandard')">{{$t('selectedStandard')}}</span>
</div>
<div class="title-text-content"
:title="selectedRowKeysRecord[0] ? selectedRowKeysRecord[0].serialNumber+' - '+selectedRowKeysRecord[0].title:''"
:class="{'title-text-content-one':!isTrue}">
{{selectedRowKeysRecord[0] ? selectedRowKeysRecord[0].serialNumber+' - '+selectedRowKeysRecord[0].title:''}}
{{selectedRowKeysRecord[0] ?
selectedRowKeysRecord[0].serialNumber+'-'+selectedRowKeysRecord[0].title:''}}
</div>
<div class="title-text-right" v-if="isTrue">
<span :title="$t('standardDecompositionDocument')" @click="standardDecompositionDocumentClick">
@@ -323,6 +325,7 @@
this.formInline.lawsTechnologyEvaluationId = this.$route.query.lawsTechnologyEvaluationId
this.formInline.remark = this.$route.query.remark
this.formInline.standId = this.$route.query.standId
this.formInline = { ...this.formInline }
this.getListOne()
}
eventBUs.$on('searchQuery', search => {
@@ -539,6 +542,8 @@
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)
},
startProcess(value, dataList) {
@@ -694,6 +699,9 @@
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-word;
padding: 0 14px;
box-sizing: border-box;
}
.title-text-right {
@@ -707,6 +715,9 @@
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-word;
padding: 0 14px;
box-sizing: border-box;
color: #21c9cc;
cursor: pointer;
}
@@ -590,6 +590,7 @@
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
word-break: break-word;
color: #040B29;
font-weight: 400;
}
@@ -618,6 +619,7 @@
font-size: 16px;
text-overflow: ellipsis;
white-space: pre-wrap;
word-break: break-word;
overflow: visible;
float: left;
color: #040B29;
@@ -540,6 +540,7 @@
this.form.name = this.nodeItem.name
this.form.itemName = this.nodeItem.itemName
this.form.displaySeq = this.nodeItem.displaySeq
this.form = { ...this.form }
this.menuRightVisible = true
},
//树形删除
@@ -1314,7 +1315,7 @@
max-height: 39vh !important;
}
.ant-modal-body {
.ant-modal-body {
overflow-y: visible !important;
}
@@ -1388,11 +1389,9 @@
/*.title-text {*/
/* min-width: 73px !important;*/
/*}*/
/*.split-detail-wrap {*/
/* height: 481px !important;*/
/*}*/
/*.mainItem {*/
/* height: 500px;*/
/*}*/
@@ -1402,7 +1401,6 @@
/*.split-detail .split-detail-wrap .split-detail-left {*/
/* height: 735px !important;*/
/*}*/
/*.mainItem {*/
/* height: 800px !important;*/
/*}*/
@@ -47,7 +47,8 @@
<div class="detail-content-content" v-for="(item,index) in resultData.resList">
<a-checkbox :value="item.id" class="detail-checkbox">
</a-checkbox>
<div class="detail-content-content-text">
<div class="detail-content-content-text"
:class="{'detail-content-content-text-color':checkboxList.join(',').includes(item.id)}">
<div class="detail-content-content-text-left"
:class="{'detail-content-content-text-dis':isDisplay}">
<div class="detail-content-left">
@@ -64,7 +65,7 @@
</div>
<div class="detail-content-left-button" v-html="item.itemsTextRight"></div>
</div>
<div class="detail-content-bottom">
<div class="detail-content-bottom" :class="{'detail-content-bottom-color':checkboxList.join(',').includes(item.id)}">
<div class="detail-content-bottom-left"
:class="{'detail-content-bottom-left-text':language == 'en-us' ? true:false}"
:title="$t('comparisonDifferenceComment')">
@@ -89,7 +90,7 @@
<div class="detail-content-content">
<a-checkbox @change="fullCheckboxChange" v-model="fullCheckbox" class="detail-checkbox">
</a-checkbox>
<div class="detail-content-content-text">
<div class="detail-content-content-text" :class="{'detail-content-content-text-color':fullCheckbox}">
<div class="detail-content-content-text-left"
:class="{'detail-content-content-text-dis':isDisplay}">
<div class="detail-content-content-text-left-text" :title="resultData.comments">
@@ -533,6 +534,11 @@
}
}
.detail-content-content-text-color {
border: 1px solid #00B3BE;
background: rgba(0,179,190,0.0300);
}
.detail-content-left {
width: 50%;
display: inline-block;
@@ -571,7 +577,9 @@
border-radius: 4px;
float: left;
}
.detail-content-bottom-color{
background: rgba(0,179,190,0.0300);
}
.detail-content-bottom-left {
width: 115px;
font-size: 14px;
@@ -327,7 +327,7 @@
if (detailRightColor && detailRightColor.length > 0) {
detailRightColor[0].classList.remove('detail-content-content-right-data-color-right')
}
if (item.targetStand && item.targetStand >= 0) {
if (item.targetStand > -1) {
let detailContent = document.getElementsByClassName('detail-content-content-right-right-top')
let detailRight = document.getElementsByClassName('detail-content-content-right-data-right')
this.dataRight = this.resultData.textRight[item.targetStand]
@@ -357,7 +357,7 @@
if (detailLeftColor && detailLeftColor.length > 0) {
detailLeftColor[0].classList.remove('detail-content-content-right-data-color')
}
if (item.targetStand && item.targetStand >= 0) {
if (item.targetStand > -1) {
this.dataLeft = this.resultData.textLeft[item.targetStand]
let detailContent = document.getElementsByClassName('detail-content-content-right-top')
let detailLeft = document.getElementsByClassName('detail-content-content-right-data')
@@ -720,10 +720,6 @@
height: 18px !important;
line-height: 18px !important;
}
.text-left-select .ant-select {
max-width: calc(100% - 126px) !important;
}
</style>
<style lang="less" scoped>
@@ -923,4 +919,7 @@
text-justify: inter-ideograph;
word-break: break-all
}
::v-deep .ant-select{
max-width: calc(100% - 126px) !important;
}
</style>
@@ -0,0 +1,278 @@
<template>
<div class="box">
<div class="search-text-title">
<span>{{$t('searchScope')}}</span>
<span>{{ queryParam.selectValue }}</span>
</div>
<a-checkbox-group v-model="checkboxText" v-if="conList.length > 0">
<li v-for="(item,index) in conList" :key="item.id">
<div style="margin-bottom: 10px;position: relative">
<a-checkbox :value="item.id" class="checkbox-left"></a-checkbox>
<div class="text-text-right"
:class="{ 'null-input':item.checked }">
<div class="text-header" @click="titleClick(item)">
<a-tooltip placement="topLeft" overlayClassName="tooltip-index" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="item.title"></span>
</template>
<span class="text-header-text" style="cursor: pointer" v-html="item.title"></span>
</a-tooltip>
</div>
<a-tooltip placement="topLeft" overlayClassName="tooltip-index" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="item.content"></span>
</template>
<div class="text-content" @click="checkedClick(item)" v-html="item.content"
>
</div>
</a-tooltip>
</div>
</div>
</li>
</a-checkbox-group>
<div class="noData" v-else>
暂无数据
</div>
<div class="page" v-if="conList.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
:total="total"
:current="pageNo"
@change="pageOnChange"
@showSizeChange="SizeChange"
/>
</div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
</div>
</template>
<script>
import { getAction, postAction, downloadFile } from '@/api/manage'
import { Base64 } from 'js-base64'
import { mapGetters } from 'vuex'
export default {
name: 'monthlyReportRegulations',
data() {
return {
checkboxText: [],
url: {
getInfoList: 'search/document/getFullTextInfoList'
},
loading: false,
conList: [],
total: 0,
pageSize: 10,
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
pageNo: 1,
queryParam: {}
}
},
watch: {
checkboxText: function(value) {
this.conList.forEach(val => {
val.checked = false
})
if (value.length > 0) {
this.conList.forEach(val => {
value.forEach(res => {
if (res === val.id) {
val.checked = true
}
})
})
}
this.conList = [...this.conList]
}
},
mounted() {
this.conList = []
this.getList()
},
methods: {
...mapGetters(['userInfo']),
checkedClick(item) {
if (item.checked) {
this.checkboxText = this.checkboxText.filter(res => {
return res !== item.id
})
} else {
this.checkboxText.push(item.id)
}
},
ResetSearch() {
this.pageNo = 1
this.checkboxText = []
this.queryParam = {}
this.getList()
},
fileClick(fileQuery) {
let fileName = fileQuery.file_name
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id.slice(0, 32) + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
window.open(url, '_blank')
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
window.open(url, '_blank')
} else {
downloadFile('/sys/common/downLoadFile', fileQuery.file_name, { id: fileQuery.id.slice(0, 32) })
}
},
pageOnChange(page, pageSize) {
this.pageNo = page
this.getList()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
},
searchData(value) {
this.queryParam.selectValue = value || undefined
this.queryParam.selectValueTwo = undefined
this.getList()
},
searchDataTwo(value) {
this.queryParam.selectValueTwo = value
this.getList()
},
getList() {
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
Object.keys(queryParam).forEach(val => {
if (queryParam[val] instanceof Array) {
queryParam[val] = queryParam[val].join(',')
}
})
let checkboxText = JSON.parse(JSON.stringify(this.checkboxText))
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
ids: checkboxText.join(','),
...queryParam
}
this.loading = true
postAction(this.url.getInfoList, query).then((res) => {
if (res.success) {
this.conList = res.result.records
this.total = res.result.total
this.loading = false
} else {
this.conList = []
this.loading = false
}
})
},
titleClick(item) {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
query: {
id: item.id.slice(0, 32),
title: item.title,
serial_number: item.serial_number
}
})
window.open(newUrl.href, '_blank')
}
}
}
</script>
<style>
.highlight-class {
color: #21c9cc;
}
.tooltip-index {
max-width: 600px !important;
}
</style>
<style scoped lang="less">
.box {
padding: 0 0 0 18px;
box-sizing: border-box;
}
.checkbox-left {
float: left;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
.text-text-right {
padding: 19px 28px;
box-sizing: border-box;
margin-left: 38px;
}
.null-input {
background-color: #F2F4F8;
}
.search-text-title {
margin-bottom: 22px;
}
.text-header {
margin-bottom: 11px;
.text-header-text {
font-size: 16px;
font-weight: bold;
color: #040B29;
display: inline-block;
width: 100%;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
word-break: break-word;
}
/*span {*/
/* margin-right: 52px;*/
/* font-size: 16px;*/
/* font-weight: bold;*/
/* color: #040B29;*/
/* display: inline-block;*/
/* max-width: 500px;*/
/* text-overflow: ellipsis;*/
/* white-space: nowrap;*/
/* overflow: hidden;*/
/*}*/
}
.text-content {
font-size: 14px;
font-weight: 400;
color: #040B29;
opacity: 0.7;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all
}
.page {
text-align: right;
margin-top: 20px;
}
.noData {
width: 100%;
text-align: center;
line-height: 10;
}
</style>
@@ -0,0 +1,546 @@
<template>
<div class="search-con-text">
<div class="search-text-wrap">
<div class="text-left">
<div class="text-left-wrap">
<div class="text-left-select">
<span class="text-sel" :title="$t('problemClassification')">{{$t('problemClassification')}}</span>
<a-select :placeholder="$t('PleaseSelect')+$t('problemClassification')"
class="text-select"
v-model="queryParamOne.showPermissions">
<a-select-option v-for="(item, key) in tagList"
:key="key"
:value="item.id">
<span style="display: inline-block;width: 100%" :title=" item.problemLabel ">
{{ item.problemLabel}}
</span>
</a-select-option>
</a-select>
</div>
<div class="text-left-select">
<span class="text-sel" :title="$t('market')">{{$t('market')}}</span>
<j-dict-select-tag class="text-select" v-model="queryParamOne.applyMarket"
:placeholder="$t('PleaseSelect')+$t('market')"
:type="'select'"
:triggerChange="false" :dictCode="'region'"/>
</div>
</div>
<div class="table-page-search-submitButtons submitButtons">
<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>
</div>
</div>
<div class="text-right">
<div class="search-text-list">
<div class="search-text-title">
<div class="search-header-left">
<span>{{$t('searchScope')}}</span>
<span>{{queryParamSeach}}</span>
</div>
</div>
<div class="box-content">
<a-checkbox-group v-model="checkboxText">
<li v-for="item in conList" :key="item.id">
<div style="margin-bottom: 10px;position: relative">
<a-checkbox :value="item.id" class="checkbox-left"></a-checkbox>
<div class="text-text-right"
@click="checkedClick(item)"
:class="{ 'null-input':item.checked }">
<div class="text-header">
<a-tooltip placement="topLeft" overlayClassName="tooltip-index" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="item.title"></span>
</template>
<span style="cursor: pointer" v-html="item.title" @click="titleClick(item)"></span>
</a-tooltip>
</div>
<a-tooltip placement="topLeft" overlayClassName="tooltip-index" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="item.content"></span>
</template>
<div class="text-content" @click="checkedClick(item)" v-html="item.content"
>
</div>
</a-tooltip>
</div>
</div>
</li>
</a-checkbox-group>
</div>
<div class="page">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
:total="total"
:current="pageNo"
@change="pageOnChange"
@showSizeChange="SizeChange"
/>
</div>
</div>
</div>
</div>
<a-modal
:title="$t('viewFile')"
:width="500"
:visible="visible"
@cancel="visible=false"
>
<template slot="footer">
<a-button key="back" @click="visible = false">
{{$t('cancel')}}
</a-button>
</template>
<p v-for="(item,index) in fileList" :key="index"
class="fileText" :title="item.fileName" @click="fileClick(item)">{{ item.fileName }}</p>
</a-modal>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
</div>
</template>
<script>
import eventBUs from '../../../../common/event'
import { getAction, postAction, downloadFile } from '@/api/manage'
import moment from 'moment'
import { Base64 } from 'js-base64'
import { mapGetters } from 'vuex'
export default {
name: 'problemKnowledgeBase',
data() {
return {
searchOption: [],
queryParam: {},
visible: false,
db_field_name: '',
url: {
queryCondition: 'search/document/queryCondition',
getParagraphInfoList: 'search/document/getParagraphInfoList'//段落
},
selectedRowKeys: [],
checkboxText: [],
conList: [],
total: 0,
pageSize: 10,
pageNo: 1,
loading: false,
selectModel: '',
fileList: [],
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
queryParamSeach: '',
mapOne: {},
mapTwo: {},
selectModelName: '',
queryParamOne: {},
searchQueryOne: {},
orderBy: '1',
orderByField: '',
tagList: []
}
},
watch: {
checkboxText: function(value) {
this.conList.forEach(val => {
val.checked = false
})
if (value.length > 0) {
this.conList.forEach(val => {
value.forEach(res => {
if (res === val.id) {
val.checked = true
}
})
})
}
this.conList = [...this.conList]
}
},
mounted() {
this.getCondition()
this.replacePage()
this.getParagraphInfoList()
},
methods: {
...mapGetters(['userInfo']),
replacePage() {
getAction('/problemKnowledgeBase/problemKnowledgeBaseClassifyEO/list', {}).then((res) => {
if (res.success) {
this.tagList = res.result
} else {
this.tagList = []
}
})
},
checkedClick(item) {
if (item.checked) {
this.checkboxText = this.checkboxText.filter(res => {
return res !== item.id
})
} else {
this.checkboxText.push(item.id)
}
},
pageOnChange(page, pageSize) {
this.queryParam = { ...this.queryParamOne, ...this.searchQueryOne }
this.pageNo = page
this.getParagraphInfoList(1)
},
SizeChange(page, pageSize) {
this.queryParam = { ...this.queryParamOne, ...this.searchQueryOne }
this.pageNo = 1
this.pageSize = pageSize
this.getParagraphInfoList(1)
},
getCondition() {
let query = {
flag: 1,
searchFlag: 0
}
getAction(this.url.queryCondition, query).then((res) => {
if (res.success) {
this.searchOption = res.result
} else {
this.searchOption = []
}
})
},
searchReset() {
this.pageNo = 1
this.queryParamOne = {}
this.queryParam = { ...this.queryParamOne, ...this.searchQueryOne }
this.queryParamSeach = ''
this.getParagraphInfoList(1)
},
searchQuery() {
this.ParamSeach()
this.queryParam = { ...this.queryParamOne, ...this.searchQueryOne }
this.pageNo = 1
this.getParagraphInfoList(1)
},
ParamSeach() {
let queryParam = JSON.parse(JSON.stringify(this.searchQueryOne))
if (queryParam[this.selectModel]) {
this.queryParamSeach = this.selectModelName + '' + queryParam[this.selectModel]
} else {
this.queryParamSeach = ''
}
},
searchData(data, selectModel, name) {
this.queryParam = {}
this.searchQueryOne = data || {}
this.queryParam = { ...this.queryParamOne, ...data }
this.selectModel = selectModel
this.selectModelName = name
this.ParamSeach()
this.pageNo = 1
this.getParagraphInfoList(1)
},
searchDataTwo(data, selectModel, name) {
this.queryParam = {}
this.searchQueryOne = data || {}
this.queryParam = { ...this.queryParamOne, ...data }
this.selectModel = selectModel
this.selectModelName = name
this.ParamSeach()
this.pageNo = 1
this.getParagraphInfoList(2)
},
ResetSearch() {
this.queryParam = {}
this.queryParamOne = {}
this.searchQueryOne = {}
this.checkboxText = []
this.selectedRowKeys = []
this.selectModel = ''
this.selectModelName = ''
this.ParamSeach()
this.pageNo = 1
this.getParagraphInfoList(1)
},
getParagraphInfoList(num) {
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
Object.keys(queryParam).forEach(val => {
if (queryParam[val] instanceof Array) {
queryParam[val] = queryParam[val].join(',')
}
if (val.includes('_name')) {
delete queryParam[val]
}
})
this.mapTwo = {}
if (num == 1) {
this.mapOne = queryParam
} else if (num == 2) {
this.mapTwo = queryParam
let checkboxText = JSON.parse(JSON.stringify(this.checkboxText))
this.mapTwo.ids = checkboxText.join(',')
}
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
mapOne: this.mapOne,
mapTwo: this.mapTwo
}
this.loading = true
postAction(this.url.getParagraphInfoList, query).then((res) => {
if (res.success) {
this.conList = res.result.records
this.total = res.result.total
this.loading = false
} else {
this.loading = false
}
})
},
fileClick(fileQuery) {
let fileName = fileQuery.fileName || fileQuery.file_name
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank')
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank')
} else {
downloadFile('/sys/common/downLoadFile', fileQuery.fileName || fileQuery.file_name, { id: fileQuery.id })
}
},
titleClick(item) {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
query: {
id: item.id.slice(0, 32),
title: item.title,
serial_number: item.serial_number
}
})
window.open(newUrl.href, '_blank')
}
}
}
</script>
<style>
.checkbox-left .ant-checkbox-inner {
width: 18px !important;
height: 18px !important;
line-height: 18px !important;
}
.tooltip-index {
max-width: 600px !important;
}
</style>
<style lang="less" scoped>
.search-con-text {
.search-text-wrap {
margin-top: -27px;
height: 100%;
display: flex;
justify-content: flex-start;
.text-left {
width: 358px;
padding: 24px 24px 24px 0;
box-sizing: border-box;
.text-left-wrap {
.text-left-select {
display: flex;
justify-content: space-between;
margin-bottom: 24px;
line-height: 32px;
.text-sel {
font-size: 14px;
font-weight: 400;
color: #000F16;
text-align: right;
margin-right: 14px;
width: 65px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.text-select {
flex: 1;
}
}
}
}
.text-right {
width: calc(100% - 358px);
position: relative;
padding: 26px 0 22px 24px;
box-sizing: border-box;
border-left: 2px solid #E6E7EC;
.search-text-title {
padding: 0 0 24px 0;
.search-header-left {
width: calc(100% - 80px);
display: inline-block;
}
span {
font-size: 14px;
font-weight: 400;
color: #040B29;
}
.search-header-right {
float: right;
margin-top: -7px;
a-icon {
border: 1px solid rgba(0, 0, 0, 0.65);
cursor: pointer;
padding: 2px 5px;
border-right: none;
}
a-icon:last-child {
border-right: 1px solid rgba(0, 0, 0, 0.65);
}
.header-list {
font-size: 20px;
border: 1px solid gray;
border-radius: 3px;
padding: 3px;
}
.header-list:hover {
color: #00B3BE;
border: 1px solid #00B3BE;
}
.header-list-active {
border: 1px solid #00B3BE;
color: #00B3BE;
}
}
}
.search-text-list {
ul {
padding: 0 0 0 18px;
margin: 0;
li {
list-style: none;
.text-content {
font-size: 14px;
font-weight: 400;
color: #040B29;
opacity: 0.8;
}
}
}
}
}
}
}
.checkbox-left {
float: left;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
.text-text-right {
padding: 19px 28px;
box-sizing: border-box;
margin-left: 38px;
}
.null-input {
background-color: #F2F4F8;
}
.text-header {
margin-bottom: 11px;
span {
font-size: 16px;
font-weight: bold;
color: #040B29;
display: inline-block;
width: 100%;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
}
.text-content {
font-size: 14px;
font-weight: 400;
color: #040B29;
opacity: 0.7;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all
}
.box-content {
padding: 0 0 0 8px;
box-sizing: border-box;
}
.page {
text-align: right;
margin-top: 20px;
}
.text-operation {
margin-right: 8px;
}
.submitButtons {
text-align: center;
}
.fileText {
width: 100%;
cursor: pointer;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.textName {
width: 100%;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all
}
</style>
@@ -23,7 +23,8 @@
v-model="selectValueTwo"
:maxLength="100"
@keyup.enter.native="wholeOnSearch(selectValueTwo)"
v-else-if="active === $t('whole')"
v-else-if="active === $t('whole') || active === $t('problemKnowledgeBase')
|| active === $t('monthlyReportRegulations')"
class="inputSearch"
:placeholder="$t('pleaseEnter')+$t('searchContent')"
></a-input>
@@ -33,18 +34,21 @@
>{{$t('query')}}
</a-button>
<a-button class="textSearch"
v-if="active === $t('whole')"
v-if="active === $t('whole') || active === $t('problemKnowledgeBase')
|| active === $t('monthlyReportRegulations')"
@keyup.enter.native="wholeOnSearch(selectValueTwo)"
@click="wholeOnSearch(selectValueTwo)"
>{{$t('query')}}
</a-button>
<a-button class="textSearch"
v-if="active === $t('whole') || active === $t('DocumentLibrary')"
v-if="active === $t('whole') || active === $t('DocumentLibrary')
|| active === $t('problemKnowledgeBase') || active === $t('monthlyReportRegulations')"
@click="wholeTextSearch(selectValueTwo)"
>{{$t('searchInResults')}}
</a-button>
<a-button class="textSearch"
v-if="active === $t('whole') || active === $t('DocumentLibrary')"
v-if="active === $t('whole') || active === $t('DocumentLibrary')
|| active === $t('problemKnowledgeBase') || active === $t('monthlyReportRegulations')"
@click="ResetSearch()"
>{{$t('reset')}}
</a-button>
@@ -61,14 +65,18 @@
<a-tab-pane :key="$t('whole')" :tab="$t('whole')"></a-tab-pane>
<a-tab-pane :key="$t('DocumentLibrary')" :tab="$t('DocumentLibrary')" force-render>
</a-tab-pane>
<!-- <a-tab-pane :key="$t('KnowledgeDatabase')" :tab="$t('KnowledgeDatabase')"></a-tab-pane>-->
<!-- <a-tab-pane :key="$t('DocumentComparisonLibrary')" :tab="$t('DocumentComparisonLibrary')"></a-tab-pane>-->
<!-- <a-tab-pane :key="$t('weekly')" :tab="$t('weekly')"></a-tab-pane>-->
<a-tab-pane :key="$t('problemKnowledgeBase')" :tab="$t('problemKnowledgeBase')" force-render>
</a-tab-pane>
<a-tab-pane :key="$t('monthlyReportRegulations')" :tab="$t('monthlyReportRegulations')" force-render>
</a-tab-pane>
</a-tabs>
</div>
</div>
<whole ref="wholeRef" :url="url" v-if="active === $t('whole')"/>
<DocumentLibrary ref="DocumentLibraryRef" v-else-if="active === $t('DocumentLibrary')"/>
<problemKnowledgeBase ref="problemKnowledgeBaseRef" v-else-if="active === $t('problemKnowledgeBase')"/>
<monthlyReportRegulations ref="monthlyReportRegulationsRef"
v-else-if="active === $t('monthlyReportRegulations')"/>
</div>
</div>
</div>
@@ -78,13 +86,17 @@
<script>
import whole from './components/whole'
import DocumentLibrary from './components/DocumentLibrary'
import problemKnowledgeBase from './components/problemKnowledgeBase'
import monthlyReportRegulations from './components/monthlyReportRegulations'
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
export default {
name: 'searchCenter',
components: {
whole,
DocumentLibrary
DocumentLibrary,
problemKnowledgeBase,
monthlyReportRegulations
},
data() {
return {
@@ -257,6 +269,10 @@
width: 608px;
display: inline-block;
}
::v-deep .input-group .ant-select-selection--single {
height: 40px !important;
}
</style>
<style>
.inputSearch {
@@ -35,11 +35,11 @@
:placeholder="$t('PleaseSelect')+$t('certificationType')"
:type="'select'"
:triggerChange="false" :dictCode="'attestation_type'"/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationType"-->
<!-- @input="handleInput('attestationType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('certificationType')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" dictCode="attestation_type"/>-->
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationType"-->
<!-- @input="handleInput('attestationType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('certificationType')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" dictCode="attestation_type"/>-->
</a-form-model-item>
</div>
</a-col>
@@ -55,11 +55,11 @@
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
:type="'select'"
:triggerChange="false" :dictCode="'attestation_rank'"/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationRank"-->
<!-- @input="handleInput('attestationRank')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('certificationLevel')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" dictCode="attestation_rank"/>-->
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationRank"-->
<!-- @input="handleInput('attestationRank')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('certificationLevel')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" dictCode="attestation_rank"/>-->
</a-form-model-item>
</div>
</a-col>
@@ -73,11 +73,11 @@
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"-->
<!-- @input="handleInput('dutyTerritory')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" dictCode="duty_territory"/>-->
<!-- <j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"-->
<!-- @input="handleInput('dutyTerritory')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" dictCode="duty_territory"/>-->
</a-form-model-item>
</div>
</a-col>
@@ -216,6 +216,13 @@
})
},
handleOk() {
if (this.formInline.dutyTerritory) {
this.handleOnTwo()
} else {
this.handleOkOne()
}
},
handleOkOne() {
let ids = JSON.parse(JSON.stringify(this.ids))
let formInline = JSON.parse(JSON.stringify(this.formInline))
Object.keys(formInline).forEach(res => {
@@ -240,6 +247,37 @@
}
})
},
handleOnTwo() {
let _this = this
this.$confirm({
content: _this.$t('areResponsibilityAreaInformationBatch'),
onOk() {
let ids = JSON.parse(JSON.stringify(_this.ids))
let formInline = JSON.parse(JSON.stringify(_this.formInline))
Object.keys(formInline).forEach(res => {
if (formInline[res] instanceof Array) {
formInline[res] = formInline[res].join(',')
}
})
let query = {
ids: ids.join(','),
...formInline
}
_this.confirmLoading = true
postAction(_this.url.setBatch, query).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.visible = false
_this.confirmLoading = false
_this.$emit('batSettingList')
} else {
_this.$message.warning(res.message)
_this.confirmLoading = false
}
})
}
})
},
handleCancel() {
this.formInline = {}
this.visible = false
@@ -113,11 +113,13 @@
<span class="title-text-text"
:title="$t('correspondingStandard')">{{$t('correspondingStandard')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-input class="box-input"
:disabled="true"
v-model="formInline.correspondingStandard"
:placeholder="$t('PleaseEnter')+$t('correspondingStandard')"/>
<a-form-model-item class="itemModel" prop="correspondingStandard">
<Standardselection :query="{'db_field_txt':$t('correspondingStandard')}"
:standard="formInline"
v-model="formInline.correspondingStandard"/>
<!-- <a-input class="box-input"-->
<!-- v-model="formInline.correspondingStandard"-->
<!-- :placeholder="$t('PleaseEnter')+$t('correspondingStandard')"/>-->
</a-form-model-item>
</div>
</a-col>
@@ -621,8 +623,15 @@
rules: {
subtitle: [
{
max: 100,
message: this.$t('subtitle') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
max: 300,
message: this.$t('subtitle') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
],
correspondingStandard: [
{
max: 300,
message: this.$t('correspondingStandard') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
],
@@ -143,7 +143,7 @@
class="ant-table tableList"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 170px)'}"
:scroll="{x: '100%',y:'calc(100vh - 186px)'}"
rowKey="id"
:data-source="dataSource"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@@ -202,6 +202,9 @@
<span v-else>--</span>
</span>
</a-table>
<div class="buttom-box" v-if="dataSource && dataSource.length > 0">
{{$t('total')+' '+this.dataSource.length+' '+ $t('strip')}}
</div>
</div>
</a-card>
</div>
@@ -796,7 +799,7 @@
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank')
@@ -813,7 +816,7 @@
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id+'&userName='+this.userInfo().username))
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix)
window.open(url, '_blank')
@@ -825,7 +828,7 @@
}
},
download(item) {
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id ,userName:this.userInfo().username})
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id, userName: this.userInfo().username })
},
clickButtonToUpload(item) {
this.loading = true
@@ -1004,6 +1007,14 @@
text-justify: inter-ideograph;
word-break: break-all
}
.buttom-box {
width: 100%;
text-align: right;
font-size: 16px;
font-weight: 500;
color: #000F16;
}
</style>
<style>
.box-input .ant-select-selection {
+8 -4
View File
@@ -87,8 +87,6 @@
class="box-input"
@change="onChange"
style='margin-left: -1px'
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="queryParams.time"
:disabled="false"/>
</div>
@@ -645,6 +643,7 @@ export default {
this.form.authViewIdsName = this.nodeItem.authViewIdsName
this.form.folderName = this.nodeItem.folderName
this.form.orderId = this.nodeItem.orderId
this.form = { ...this.form }
this.menuRightVisible = true
},
//树形删除
@@ -779,7 +778,7 @@ export default {
//搜索
searchQuery(item) {
this.pageNo = 1
if(this.queryParams.time){
if(this.queryParams.time && this.queryParams.time instanceof Array){
this.queryParams.time = this.queryParams.time.join(',')
}
this.loadData(item)
@@ -1086,11 +1085,14 @@ export default {
/deep/.ant-table td{
white-space: nowrap;
}
.ant-calendar-range-picker-input{
width: 46% !important;
}
.title-text {
width: 114px;
text-align: right;
display: inline-block;
font-weight: 500;
font-weight: 400;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
@@ -1098,6 +1100,7 @@ export default {
white-space: nowrap;
height: 42px;
line-height: 48px;
color: #040B29;
}
.box-input {
@@ -1333,6 +1336,7 @@ export default {
width: auto;
overflow: hidden;
text-overflow: ellipsis;
color: #040B29;
}
@@ -43,8 +43,8 @@
:columns="columns"
>
<span slot="projectName" slot-scope="text,record" :title="text">
<a @click="entryNameClick(record)">
{{ text && text.length > 15 ? text.slice(0, 14) + '...' : text }}
<a >
{{ text && text.length > 10 ? text.slice(0, 9) + '...' : text }}
</a>
</span>
<span slot="operation" slot-scope="text,record">
@@ -113,8 +113,9 @@
{
title: this.$t('entryName'),
align: 'center',
width: '10%',
dataIndex: 'projectName'
width: '13%',
dataIndex: 'projectName',
scopedSlots: { customRender: 'projectName' }
},
{
title: this.$t('ListTitle'),
@@ -275,6 +275,12 @@
mounted() {
if (this.evaluatorFeedbackList && this.evaluatorFeedbackList.length > 0) {
this.dataSource = this.evaluatorFeedbackList
if (this.dataSource && this.dataSource.length == 1 && this.$route.query.taskDefinitionKey == 'pgrqr') {
this.$nextTick(() => {
let antTableBody = document.getElementsByClassName('ant-table-body')
antTableBody[0].style = 'position:auto'
})
}
if (this.$route.query.taskDefinitionKey != 'pgrqr') {
this.dataSource.forEach(res => {
res.sponsorFeedback = ''
@@ -145,6 +145,7 @@
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
word-break: break-word;
color: #040B29;
font-weight: 400;
}
@@ -26,34 +26,46 @@
export default {
name: 'regulatoryCirculationHistory',
props: {
isTrue: {
type: Boolean,
default: false
}
},
data() {
return {
dataSource: [],
loading: false,
columns: [
columnsAll: [
{
title: this.$t('OperationContent'),
dataIndex: 'taskDefinitionKeyName',
align: 'center',
width: '25%'
width: '20%'
},
{
title: this.$t('opinion'),
dataIndex: 'approvalOpinion',
align: 'center',
width: '20%'
},
{
title: this.$t('Operator'),
dataIndex: 'createBy',
align: 'center',
width: '25%'
width: '20%'
},
{
title: this.$t('role'),
dataIndex: 'operatorRoleName',
align: 'center',
width: '25%'
width: '20%'
},
{
title: this.$t('OperationTime'),
dataIndex: 'createTime',
align: 'center',
width: '25%',
width: '20%',
customRender: function(t, r, index) {
return moment(t).format('YYYY-MM-DD HH:mm:ss')
}
@@ -64,6 +76,20 @@
mounted() {
this.getList()
},
computed: {
columns() {
let columnsAll = JSON.parse(JSON.stringify(this.columnsAll))
if (!this.isTrue) {
for (let i = 0; i < columnsAll.length; i++) {
if (columnsAll[i].title == this.$t('opinion')) {
columnsAll.splice(i, 1)
i--
}
}
}
return columnsAll
}
},
methods: {
getList() {
let query = {
@@ -77,7 +77,6 @@
},
mounted() {
this.queryForm = this.standardContentQuery
this.queryForm.taskExplain = 'sdf dsjf;l sdf;ldsf ;lsdfkj d;lsfkds;lfdksf第三方是德国搞定过分乐观看待给对方公开地方领导反馈给东丽的反馈给管库给的给'
},
methods: {
urlClick(val) {
@@ -139,6 +138,7 @@
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
word-break: break-word;
color: #040B29;
font-weight: 400;
}
@@ -173,6 +173,7 @@
text-overflow: ellipsis;
white-space: pre-wrap;
overflow: visible;
word-break: break-word;
float: left;
color: #040B29;
font-weight: 400;
@@ -34,7 +34,7 @@
@submit="submit"
@sendBack="sendBack"
/>
<circulationHistory v-if="isDisplay"/>
<circulationHistory :isTrue="true" v-if="isDisplay"/>
</div>
</div>
<JLoading :loading="loading">{{this.$t('pleaseWaitWhileRunning')}}</JLoading>
@@ -309,7 +309,7 @@
completeTask() {
let value = JSON.parse(JSON.stringify(this.queryProject))
let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
value.operatorTime = handlingTime
value.handlingTime = handlingTime
Object.keys(value).forEach(res => {
if (value[res] && value[res] instanceof String) {
value[res] = value[res].replace(/\"/g, '“')
@@ -173,6 +173,8 @@
},
completeTask() {
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 => {
if (value[res] && value[res] instanceof String) {
value[res] = value[res].replace(/\"/g, '“')
@@ -87,13 +87,10 @@
},
{
title: this.$t('createTime'),
dataIndex: 'createTime',
dataIndex: 'creatTime',
align: 'center',
ellipsis: true,
width: 180,
customRender: function(t, r, index) {
return moment(t).format('YYYY-MM-DD HH:mm:ss')
}
},
{
title: this.$t('CompletionTime'),
@@ -101,9 +98,6 @@
align: 'center',
ellipsis: true,
width: 180,
customRender: function(t, r, index) {
return moment(t).format('YYYY-MM-DD HH:mm:ss')
}
},
{
title: this.$t('ProcessStatus'),
@@ -87,13 +87,10 @@
},
{
title: this.$t('createTime'),
dataIndex: 'createTime',
dataIndex: 'creatTime',
align: 'center',
ellipsis: true,
width: 180,
customRender: function(t, r, index) {
return moment(t).format('YYYY-MM-DD HH:mm:ss')
}
},
{
title: this.$t('CompletionTime'),
@@ -101,9 +98,6 @@
align: 'center',
width: 180,
ellipsis: true,
customRender: function(t, r, index) {
return moment(t).format('YYYY-MM-DD HH:mm:ss')
}
},
{
title: this.$t('ProcessStatus'),
@@ -5,13 +5,13 @@
<a-row :gutter="24">
<a-col :md="6" :sm="10">
<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>
</a-form-item>
</a-col>
<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 :value="1">
{{$t('Thepercentage')}}
@@ -49,7 +49,7 @@
<div class="title-text" :title="$t('NareaOfResponsibility')">
<span>{{$t('NareaOfResponsibility')}}</span>
</div>
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
@@ -168,7 +168,8 @@
{{$t('Adjustareasofresponsibility')}}
</div>
</template>
<div class="operator-text" style="position: relative " @click='morepop' v-if='currentPersonRole == "homo" || currentPersonRole == "sdt"'>
<!-- @click='morepop'-->
<div class="operator-text" style="position: relative " v-if='currentPersonRole == "homo" || currentPersonRole == "sdt"'>
<span style="position: absolute;left: -13px;top: -4px">...</span>{{ $t('more') }}
</div>
</a-popconfirm>
@@ -226,8 +227,9 @@
</div>
<div style="width: 100%">
<!-- 表格-10控件-->
<!-- :queryParamQuery='queryParamQuery'-->
<table-collection ref="CollectionTabel" :url='url' :paramsManifest='paramsManifest' @rowValue='rowValue'
:formInline='formInline' :queryParamQuery='queryParamQuery' :currentPersonRole='currentPersonRole'
:formInline='formInline' :currentPersonRole='currentPersonRole'
@getDataSource="getDataSource"
@handlePreservation="handlePreservation"
@value='value'
@@ -268,6 +268,7 @@
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
word-break: break-word;
color: #040B29;
font-weight: 400;
}
@@ -14,18 +14,18 @@
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('areaOfResponsibility')">
<div class="title-text" :title="$t('areaOfResponsibility')">
<span>{{$t('areaOfResponsibility')}}</span>
</div>
<j-dict-select-tag class="box-input" v-model="queryParam.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
<j-multi-select-tag class="box-input" v-model="queryParam.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('CertificationProgress')">
<div class="title-text" :title="$t('CertificationProgress')">
<span>{{$t('CertificationProgress')}}</span>
</div>
<j-dict-select-tag class="box-input" v-model="queryParam.certificationProgress"
@@ -76,6 +76,10 @@
</a-form>
</div>
<div class="table-operator">
<!-- <div class="operator-text" @click="batSettingClick">-->
<!-- <a-icon type="setting"/>-->
<!-- {{ $t('batSetting') }}-->
<!-- </div>-->
<div @click="CertificationDirectory" class="operator-text">
<a-icon type="bulb"/>
{{$t('CertificationDirectory')}}
@@ -86,6 +90,8 @@
</div>
</div>
<div style="width: 100%">
<!-- rowKey="id"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"-->
<a-table
ref="table"
bordered
@@ -98,7 +104,8 @@
>
<div slot="standardInformation" slot-scope="text,result" class="box-left">
<div class="content">
<a class="box-content-a" @click="standardClick(result)" :title="result.serialNumber">{{result.serialNumber}}</a>
<a class="box-content-a" @click="standardClick(result)"
:title="result.serialNumber">{{result.serialNumber}}</a>
<a class="box-content-buttom" :title="result.title">{{result.title}}</a>
</div>
</div>
@@ -170,12 +177,14 @@
</div>
<certificationDirectory :isDisplayNum="isDisplayNum" :url="url" ref="certificationDirectoryRef"/>
<TaskListModel @TaskListModelList="TaskListModelList" ref="TaskListModelRef"/>
<taskBatSetting @taskBatSettingForm="taskBatSettingForm" ref="taskBatSettingRef"></taskBatSetting>
</a-card>
</template>
<script>
import certificationDirectory from './certificationDirectory'
import TaskListModel from './TaskListModel'
import taskBatSetting from './taskBatSetting'
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import { mapGetters } from 'vuex'
import store from '@/store/'
@@ -184,7 +193,8 @@
name: 'TaskList',
components: {
certificationDirectory,
TaskListModel
TaskListModel,
taskBatSetting
},
props: ['isDisplayNum', 'areaOfResponsibility'],
data() {
@@ -332,8 +342,18 @@
this.queryParam = {}
this.getList()
},
onSelectChange() {
batSettingClick() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.$refs.taskBatSettingRef.edit(JSON.parse(JSON.stringify(this.selectedRowKeys)))
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
taskBatSettingForm() {
this.getList()
},
onSelectChange(value) {
this.selectedRowKeys = value
},
handleExport() {
let query = {
@@ -364,7 +384,7 @@
DueDate: 'designDueDate',
remarks: 'designRemark',
projectName: this.$route.query.projectName,
targetMarket:this.$route.query.targetMarket,
targetMarket: this.$route.query.targetMarket,
projectNameId: this.$route.query.projectNameId,
primaryKeyId: val.designTaskDetailId,
PersonChargeFeedback: val.designPersonChargeFeedback
@@ -389,7 +409,7 @@
DueDate: 'prehomoDueDate',
remarks: 'prehomoRemark',
projectName: this.$route.query.projectName,
targetMarket:this.$route.query.targetMarket,
targetMarket: this.$route.query.targetMarket,
projectNameId: this.$route.query.projectNameId,
primaryKeyId: val.prehomoTaskDetailId,
PersonChargeFeedback: val.prehomoPersonChargeFeedback
@@ -414,7 +434,7 @@
DueDate: 'verifyDueDate',
remarks: 'verifyRemark',
projectName: this.$route.query.projectName,
targetMarket:this.$route.query.targetMarket,
targetMarket: this.$route.query.targetMarket,
projectNameId: this.$route.query.projectNameId,
primaryKeyId: val.verifyTaskDetailId,
PersonChargeFeedback: val.verifyPersonChargeFeedback
@@ -431,9 +451,15 @@
this.$refs.certificationDirectoryRef.addModel()
},
getList() {
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
Object.keys(queryParam).forEach(val => {
if (queryParam[val] instanceof Array) {
queryParam[val] = queryParam[val].join(',')
}
})
let query = {
projectLibraryId: this.$route.query.id,
...this.queryParam
...queryParam
}
this.loading = true
getAction(this.url.list, query).then((res) => {
@@ -458,15 +484,15 @@
TaskListModelList() {
this.getList()
},
standardClick(row){
standardClick(row) {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
query: {
id:row.standId
id: row.standId
}
})
window.open(newUrl.href, '_blank')
},
}
}
}
</script>
@@ -659,7 +685,8 @@
.box-content-cou {
cursor: pointer;
}
.box-content-buttom{
.box-content-buttom {
width: 100%;
overflow: hidden;
display: -webkit-box;
@@ -215,6 +215,13 @@
})
},
handleOk() {
if (this.formInline.dutyTerritory) {
this.handleOkTwo()
} else {
this.handleOkOne()
}
},
handleOkOne() {
let ids = JSON.parse(JSON.stringify(this.ids))
let query = {
ids: ids.join(','),
@@ -233,6 +240,31 @@
}
})
},
handleOkTwo() {
let _this = this
this.$confirm({
content: _this.$t('areResponsibilityAreaInformationBatch'),
onOk() {
let ids = JSON.parse(JSON.stringify(_this.ids))
let query = {
ids: ids.join(','),
..._this.formInline
}
_this.confirmLoading = true
postAction(_this.url.setBatch, query).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.visible = false
_this.confirmLoading = false
_this.$emit('batSettingList')
} else {
_this.$message.warning(_this.$t('operationFailed'))
_this.confirmLoading = false
}
})
}
})
},
handleCancel() {
this.formInline = {}
this.visible = false
@@ -838,8 +838,8 @@
rulesData: {
subtitle: [
{
max: 100,
message: this.$t('subtitle') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
max: 300,
message: this.$t('subtitle') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
],
@@ -29,10 +29,10 @@
<div class="title-text" :title="$t('areaOfResponsibility')">
<span>{{ $t('areaOfResponsibility') }}</span>
</div>
<j-dict-select-tag class="box-input" v-model="queryParam.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
<j-multi-select-tag class="box-input" v-model="queryParam.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</div>
</a-col>
<a-col :md="6" :sm="8">
@@ -200,7 +200,7 @@
class="tableList"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 170px)'}"
:scroll="{x: '100%',y:'calc(100vh - 186px)'}"
rowKey="id"
:data-source="dataSource"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@@ -273,6 +273,9 @@
<span v-else>--</span>
</span>
</a-table>
<div class="buttom-box" v-if="dataSource && dataSource.length > 0">
{{$t('total')+' '+this.dataSource.length+' '+ $t('strip')}}
</div>
</div>
<listAddModel :url="url" @addModelList="addModelList" ref="addModelRef"/>
<listEditModel :url="url" @editModelList="addModelList" ref="editModelRef"/>
@@ -1386,9 +1389,15 @@
if (this.formInlineRoleSwitching.roleSwitchingCode == '11' || this.formInlineRoleSwitching.roleSwitchingCode == '12') {
roleCode = 0
}
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
Object.keys(queryParam).forEach(val => {
if (queryParam[val] instanceof Array) {
queryParam[val] = queryParam[val].join(',')
}
})
let query = {
...this.queryParamQuery,
...this.queryParam,
...queryParam,
projectLibraryId: this.$route.query.id,
roleCode: roleCode
}
@@ -2257,6 +2266,14 @@
text-justify: inter-ideograph;
word-break: break-all
}
.buttom-box {
width: 100%;
text-align: right;
font-size: 16px;
font-weight: 500;
color: #000F16;
}
</style>
<style>
.box-input .ant-select-selection {
@@ -0,0 +1,251 @@
<template>
<a-modal
:title="$t('batSetting')"
:width="600"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('CertificationProgress')">{{$t('CertificationProgress')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.certificationProgress"
@input="handleInput('certificationProgress')"
:placeholder="$t('PleaseSelect')+$t('CertificationProgress')"
:type="'select'"
:triggerChange="false" :dictCode="'certification_progress'"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('CurrentStatus')">{{$t('CurrentStatus')}}</span>
</div>
<a-form-model-item class="itemModel" prop="conditionAssessment">
<a-select
v-model="formInline.conditionAssessment"
:placeholder="$t('PleaseSelect')+$t('CurrentProjectStatusEvaluation')">
<a-select-option :value="'1'">
<span style="display: inline-block;width: 100%">
{{ $t('red') }}
</span>
</a-select-option>
<a-select-option :value="'2'">
<span style="display: inline-block;width: 100%">
{{ $t('yellow') }}
</span>
</a-select-option>
<a-select-option :value="'3'">
<span style="display: inline-block;width: 100%">
{{ $t('green') }}
</span>
</a-select-option>
<a-select-option :value="'4'" disabled>
<span style="display: inline-block;width: 100%">
{{ $t('blue') }}
</span>
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import moment from 'moment'
export default {
name: 'taskBatSetting',
props: ['url'],
data() {
return {
visible: false,
confirmLoading: false,
formInline: {},
rules: {},
ids: []
}
},
mounted() {
},
methods: {
edit(data) {
this.visible = true
this.$nextTick(() => {
this.ids = data || []
this.formInline = {}
})
},
handleOk() {
if (this.formInline.dutyTerritory) {
this.handleOkTwo()
} else {
this.handleOkOne()
}
},
handleOkOne() {
let ids = JSON.parse(JSON.stringify(this.ids))
let query = {
ids: ids.join(','),
...this.formInline
}
this.confirmLoading = true
postAction(this.url.setBatch, query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.confirmLoading = false
this.$emit('batSettingList')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
},
handleOkTwo() {
let _this = this
this.$confirm({
content: _this.$t('areResponsibilityAreaInformationBatch'),
onOk() {
let ids = JSON.parse(JSON.stringify(_this.ids))
let query = {
ids: ids.join(','),
..._this.formInline
}
_this.confirmLoading = true
postAction(_this.url.setBatch, query).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.visible = false
_this.confirmLoading = false
_this.$emit('batSettingList')
} else {
_this.$message.warning(_this.$t('operationFailed'))
_this.confirmLoading = false
}
})
}
})
},
handleCancel() {
this.formInline = {}
this.visible = false
},
handleInput(value) {
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField([value])
})
},
}
}
</script>
<style>
.formAdd .ant-form-item-label {
width: 130px;
}
.formAdd .ant-form-item-control-wrapper {
display: inline-block;
width: 100%;
}
/*.formAdd .ant-form-item {*/
/* margin-bottom: 20px;*/
/*}*/
.itemModel .ant-form-item-control-wrapper {
width: 100%;
}
.box-input .ant-select-selection--single {
height: 38px;
}
.box-input .ant-select-selection--multiple {
height: 38px;
}
.box-input .ant-select-selection__rendered {
line-height: 38px;
height: 38px;
}
.box-input .ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
margin-top: 6px;
}
.box-input .ant-calendar-picker {
line-height: 38px;
height: 38px;
}
.box-input .ant-calendar-picker-input {
height: 38px;
}
.box-input .ant-input-number-input-wrap {
line-height: 38px;
height: 38px;
}
.box-input .ant-calendar-picker-input {
padding: 4px 30px 4px 11px;
}
</style>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
}
.title-text {
width: 84px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
</style>
@@ -11,28 +11,44 @@
>
<a-row :gutter='24'>
<a-col :span='9'>
<a-form-model-item :label="$t('areaOfResponsibility')">
<a-select class="box-input" v-model="formData.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')">
<a-select-option v-for="(element,index) in dutyTerritory" :key="element.value" :value="element.value">
{{element.text}}
</a-select-option>
</a-select>
<!-- <j-dict-select-tag class="box-input" v-model="formData.dutyTerritory"-->
<!-- :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
</a-form-model-item>
<div class="box-title-text">
<div class="title-text" :title="$t('areaOfResponsibility')">
<span>{{$t('areaOfResponsibility')}}</span>
</div>
<!-- :label="$t('FilterMatching')" :labelCol="{md: 6,xs:24}" :wrapperCol="{md: 18,xs:24}" style="width: 100%;"-->
<a-form-model-item class='box-input'>
<a-select v-model="formData.dutyTerritory"
style='width: 148%'
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')">
<a-select-option v-for="(element,index) in dutyTerritory" :key="element.value" :value="element.value">
{{element.text}}
</a-select-option>
</a-select>
<!-- <j-dict-select-tag class="box-input" v-model="formData.dutyTerritory"-->
<!-- :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span='9'>
<a-form-model-item :label="$t('RelatedItems')" prop='ListTitle'>
<a-select class="box-input" v-model="formData.projectNameId"
:placeholder="$t('PleaseSelect')+$t('RelatedItems')">
<a-select-option v-for="(element,index) in RelatedItemList" :key="element.id" :value="element.id">
{{element.projectName}}
</a-select-option>
</a-select>
</a-form-model-item>
<div class="box-title-text">
<div class="title-text" :title="$t('RelatedItems')">
<span>{{$t('RelatedItems')}}</span>
</div>
<!-- :label="$t('FilterMatching')" :labelCol="{md: 6,xs:24}" :wrapperCol="{md: 18,xs:24}" style="width: 100%;"-->
<a-form-model-item class='box-input'>
<a-select v-model="formData.projectNameId"
style='width: 148%'
:placeholder="$t('PleaseSelect')+$t('RelatedItems')">
<a-select-option v-for="(element,index) in RelatedItemList" :key="element.id" :value="element.id">
{{element.projectName}}
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
<a-col :span='6' style='margin-top: 4px;'>
<a-button class='box-button' type='primary' @click='searchQuery'>{{ $t('query') }}</a-button>
@@ -58,28 +74,28 @@
@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>
<a v-if="record.designFlowTaskStatus == 'Compliance'" style='color: #26BD4B'>{{ text }}</a>
<a v-if="record.designFlowTaskStatus == 'Non-Compliance'" style='color: #E83030'>{{ text }}</a>
<a v-if="record.designFlowTaskStatus == 'To be tracked'" style='color: #FDA71C'>{{ text }}</a>
<a v-if="record.designFlowTaskStatus == 'NA'" style='color: #707486'>{{ text }}</a>
<a v-if="record.designFlowTaskStatus == 'No rating'" style='color: #00B3BE'>{{ text }}</a>
<a v-if="record.designFlowTaskStatus == 'Termination of task'" 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>
<a v-if="record.prehomoFlowTaskStatus == 'Compliance'" style='color: #26BD4B'>{{ text }}</a>
<a v-if="record.prehomoFlowTaskStatus == 'Non-Compliance'" style='color: #E83030'>{{ text }}</a>
<a v-if="record.prehomoFlowTaskStatus == 'To be tracked'" style='color: #FDA71C'>{{ text }}</a>
<a v-if="record.prehomoFlowTaskStatus == 'NA'" style='color: #707486'>{{ text }}</a>
<a v-if="record.prehomoFlowTaskStatus == 'No rating'" style='color: #00B3BE'>{{ text }}</a>
<a v-if="record.prehomoFlowTaskStatus == 'Termination of task'" 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>
<a v-if="record.verifyFlowTaskStatus == 'Compliance'" style='color: #26BD4B'>{{ text }}</a>
<a v-if="record.verifyFlowTaskStatus == 'Non-Compliance'" style='color: #E83030'>{{ text }}</a>
<a v-if="record.verifyFlowTaskStatus == 'To be tracked'" style='color: #FDA71C'>{{ text }}</a>
<a v-if="record.verifyFlowTaskStatus == 'NA'" style='color: #707486'>{{ text }}</a>
<a v-if="record.verifyFlowTaskStatus == 'No rating'" style='color: #00B3BE'>{{ text }}</a>
<a v-if="record.verifyFlowTaskStatus == 'Termination of task'" style='color: #E83030'>{{ text }}</a>
</span>
<!-- <template slot="file" slot-scope="text, record">-->
@@ -321,6 +337,33 @@ export default {
<style lang='less' scoped>
@import '~@assets/less/common.less';
.box-title-text {
line-height: 1.4;
display: flex;
align-items: center;
margin-bottom: 10px;
}
.title-text {
width: 110px;
color: #000F16;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
margin-top: -15px;
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.box-input {
display: inline-block;
width: 70%;
height: 38px;
margin-top: 2px;
}
.diolag-area {
.table-area {
@@ -175,7 +175,7 @@ export default {
title: this.$t('title'),
align: 'center',
dataIndex: 'title',
width: 180,
width: 250,
scopedSlots: { customRender: 'standard' }
},
{
@@ -193,14 +193,14 @@ export default {
title: this.$t('technicalField'),
align: 'center',
dataIndex: 'technologyTerritory_dicText',
width: 350,
width: 250,
scopedSlots: { customRender: 'technicalField' }
},
{
title: this.$t('RegulatoryProcessEvaluationResults'),
align: 'center',
fixed: 'right',
width: 250,
width: 380,
scopedSlots: { customRender: 'operation' }
}
],
@@ -35,6 +35,39 @@
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:columns="columns"
>
<span slot="vehicleInProductionDate" slot-scope="text,result">
<span v-if="result.xin1_che1_xing2_shi2_shi1_ri4_qi1 == 'yellow'">
{{text}}
</span>
<span v-else-if="result.xin1_che1_xing2_shi2_shi1_ri4_qi1 == 'red'">
{{text}}
</span>
<span v-else>
{{text}}
</span>
</span>
<span slot="ImplementationDate" slot-scope="text,result">
<span v-if="result.new_colour == 'yellow'" style="color: #fdd835">
{{text}}
</span>
<span v-else-if="result.new_colour == 'red'" style="color: red">
{{text}}
</span>
<span v-else>
{{text}}
</span>
</span>
<span slot="vehicleInProductionDate" slot-scope="text,result">
<span v-if="result.implement_colour == 'yellow'" style="color: #fdd835">
{{text}}
</span>
<span v-else-if="result.implement_colour == 'red'" style="color: red">
{{text}}
</span>
<span v-else>
{{text}}
</span>
</span>
</a-table>
<div class="page" v-if="dataSource && dataSource.length > 0">
<a-pagination
@@ -138,14 +171,16 @@
align: 'center',
ellipsis: true,
width: 210,
dataIndex: 'implement_time'
dataIndex: 'implement_time',
scopedSlots: { customRender: 'vehicleInProductionDate' }
},
{
title: this.$t('ImplementationDate'),
align: 'center',
ellipsis: true,
width: 210,
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1'
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
scopedSlots: { customRender: 'ImplementationDate' }
}
]
}