diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index 9a570c70a..c29d15589 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -682,3 +682,8 @@ ALTER TABLE `project_certification_inventory` ADD COLUMN `duty_depart` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '责任部门' AFTER `attestation_type`; +-- 认证清单 添加关联平台件认证清单id 2023-12-7 未同步生产环境 +ALTER TABLE `project_certification_inventory` +ADD COLUMN `platform_certification_inventory_id` varchar(36) NULL COMMENT '平台件-认证清单id' AFTER `remark`; + + diff --git a/jero-boot/db/蔚来标准sql/dev_third_record.sql b/jero-boot/db/蔚来标准sql/dev_third_record.sql index d6822f8ff..950e7cb13 100644 --- a/jero-boot/db/蔚来标准sql/dev_third_record.sql +++ b/jero-boot/db/蔚来标准sql/dev_third_record.sql @@ -566,7 +566,7 @@ INSERT INTO `laws_weilai`.`sys_dict_item` (`id`, `dict_id`, `item_text`, `item_v -- 文档翻译-发布情况数据字典 2022-7-25 已同步生产环境 INSERT INTO `laws_weilai`.`sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `type`, `dict_en_name`, `is_tag_dict`, `is_read_only`, `attribute_type`, `order_num`) VALUES ('1550314527293128705', '文档翻译-发布情况', 'release_condition', '文档翻译-发布情况', 0, 'admin', '2022-07-22 10:59:21', 'admin', '2022-07-22 11:01:07', NULL, NULL, 1, 0, '1', 2); -INSERT INTO `laws_weilai`.`sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`) VALUES ('1550314666682433537', '1550314527293128705', '已发布', 'published', '已发布', 1, 1, 'admin', '2022-07-22 10:59:55', NULL, NULL, 1, NULL, NULL, '0', 'Have published'); +INSERT INTO `laws_weilai`.`sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`) VALUES ('1550314666682433537', '1550314527293128705', '已发布', 'Have released', '已发布', 1, 1, 'admin', '2022-07-22 10:59:55', NULL, NULL, 1, NULL, NULL, '0', 'Have published'); INSERT INTO `laws_weilai`.`sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`) VALUES ('1550314731320852482', '1550314527293128705', '草稿', 'draft', '草稿', 2, 1, 'admin', '2022-07-22 11:00:10', NULL, NULL, 1, NULL, NULL, '0', 'Draft'); -- 文档翻译-翻译结果数据字典 2022-7-25 已同步生产环境 @@ -1343,6 +1343,71 @@ ALTER TABLE `problem_management` ADD COLUMN `project_type` varchar(255) NULL COMMENT '相关项目类型' AFTER `problem_priority`; +-- 市场法规清单历史表 2023-10-30 已同步生产环境 +CREATE TABLE `dummy_inventory_info_history` ( + `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 '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建日期', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新日期', + `sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门', + `dummy_inventory_base_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '法规清单基础表id', + `serial_number` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编号', + `title` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `shi4_yong4_fan4_wei2` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '适用范围', + `state` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态', + `technology_territory` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '技术领域', + `xin1_che1_xing2_shi2_shi1_ri4_qi1` datetime(0) NULL DEFAULT NULL COMMENT '新车型实施日期', + `implement_time` datetime(0) NULL DEFAULT NULL COMMENT '在产车实施日期', + `corresponding_standard` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对应标准', + `corresponding_standard_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对应标准id', + `wvta_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'WVTA ID', + `subtitle` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子标题', + `implement_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实施类别', + `attestation_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '认证类型', + `attestation_rank` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '认证级别', + `duty_territory` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '责任领域', + `remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `design_deliverable_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设计符合性确认-交付物类型', + `design_deliverable_template` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设计符合性确认-交付物模板', + `design_initiator` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设计符合性确认-发起人', + `design_duty` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设计符合性确认-责任人', + `prehomo_deliverable_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'prehomo确认-交付物类型', + `prehomo_deliverable_template` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'prehomo确认-交付物模板', + `prehomo_initiator` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'prehomo确认-发起人', + `prehomo_duty` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'prehomo确认-责任人', + `verify_deliverable_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '验证符合性确认-交付物类型', + `verify_deliverable_template` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '验证符合性确认-交付物模板', + `verify_initiator` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '验证符合性确认-发起人', + `verify_duty` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '验证符合性确认-责任人', + `region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '适用地区', + `applicable_supplement` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '适用增补件', + `verify_remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '验证备注', + `prehomo_remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'pre备注', + `design_remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设计备注', + `buss_document_library_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文档库id', + `duty_depart` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '责任部门', + `market_list_version_update_log_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '市场清单版本更新log表id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- OTA升级活动是否提供用户确认 2023-11-11 已同步数据库 +INSERT INTO `sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `type`, `dict_en_name`, `is_tag_dict`, `is_read_only`, `attribute_type`, `order_num`) VALUES ('1665537106720296962', 'OTA-升级影响评估-升级确认', 'O_T_A_-_sheng1_ji2_ying3_xiang3_ping2_gu1_-_sheng1_ji2_que4_ren4', NULL, '0', 'admin', '2023-06-05 09:52:45', 'song.gao2.o', '2023-08-31 09:57:28', NULL, NULL, '1', '0', '1', '4'); +INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`, `stat_node`) VALUES ('1665537773488803842', '1665537106720296962', '车辆信息娱乐系统', 'd546d06291b14f248a9d551bbc308317', NULL, '1', '1', 'admin', '2023-06-05 09:55:24', NULL, NULL, '1', NULL, NULL, '0', 'Vehicle infotainment system', NULL); +INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`, `stat_node`) VALUES ('1665537835442868226', '1665537106720296962', '车辆仪表盘', '4b0e60e866a442e7a1198787ac0c432c', NULL, '2', '1', 'admin', '2023-06-05 09:55:39', NULL, NULL, '1', NULL, NULL, '0', 'Vehicle dashboard', NULL); +INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`, `stat_node`) VALUES ('1665537903860355073', '1665537106720296962', '移动应用程序', '225b9b71bc594c42847ad209af7266ab', NULL, '3', '1', 'admin', '2023-06-05 09:55:55', NULL, NULL, '1', NULL, NULL, '0', 'Mobile application', NULL); +INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`, `stat_node`) VALUES ('1665537980683227138', '1665537106720296962', '电子邮件', 'bebb284fe5814eb48a9d39ff369f8447', NULL, '4', '1', 'admin', '2023-06-05 09:56:13', NULL, NULL, '1', NULL, NULL, '0', 'E-mail', NULL); +INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`, `stat_node`) VALUES ('1665538039910993922', '1665537106720296962', '合同协议', '2502a124b6c44dd391afff9759ec4e25', NULL, '5', '1', 'admin', '2023-06-05 09:56:28', NULL, NULL, '1', NULL, NULL, '0', 'Contract agreement', NULL); +INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`, `stat_node`) VALUES ('1665538110215917569', '1665537106720296962', '短信', 'ce0225b4ecd146e4a8d88068fb05aa78', NULL, '6', '1', 'admin', '2023-06-05 09:56:44', NULL, NULL, '1', NULL, NULL, '0', 'Short message', NULL); +INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`, `stat_node`) VALUES ('1665538157657690114', '1665537106720296962', '其他', '344a3320beba45afb3718c59b7a7144a', NULL, '7', '1', 'admin', '2023-06-05 09:56:56', NULL, NULL, '1', NULL, NULL, '0', 'others', NULL); + +ALTER TABLE `ota_ba_sj_sjyxpg` + ADD COLUMN `yhqr_xlk` varchar(50) NULL COMMENT '升级活动是否提供用户确认选项-下拉框' AFTER `yhqr`, +ADD COLUMN `yhqr_qt` varchar(1000) NULL COMMENT '升级活动是否提供用户确认选项-其他文本' AFTER `yhqr_xlk`; +ADD COLUMN `yhqr_no` varchar(1000) NULL COMMENT '升级活动是否提供用户确认选项-否文本' AFTER `yhqr_qt`; + + + diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java index b4c675812..303bda11b 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java @@ -7,18 +7,18 @@ import org.apache.commons.lang3.StringUtils; */ public enum ProjectRoleEnum { STUDIO_ENGINEER("studio工程师","0","R&H Studio","R&H Studio"), - REGULATI_ENGINEER("法规工程师","1","studio","Regulation"), - HOMOLOGATION_ENGINEER("认证工程师","2","homo","homo"), - REGULATI_AND_HOMOLOGATION_ENGINEER("法规工程师/认证工程师","4","Regulatory Engineer/Certification Engineer","Regulatory Engineer/Certification Engineer"), + REGULATI_ENGINEER("法规工程师","1","studio","Regulation Engineer"), + HOMOLOGATION_ENGINEER("认证工程师","2","homo","Homo Engineer"), + REGULATI_AND_HOMOLOGATION_ENGINEER("法规工程师/认证工程师","4","Regulatory Engineer/Certification Engineer","Regulation Engineer/Homo Engineer"), MANAGER("领导角色","11","R&H Manager","R&H Manager"), ADMIN("系统管理员","12","admin","admin"), VIEWER("Viewer","13","Viewer","Viewer"), BRAND_ADMINISTRATOR("品牌管理员","14","BrandAdministrator","BrandAdministrator"), //法规清单使用 - INTERFACE_PERSON1("工程接口人","30","Interface person","Interface person"), + INTERFACE_PERSON1("工程接口人","30","Interface person","Eng. Interface"), PERSON_LIABLE1("责任人","31","Person liable","Person liable"), // 项目库-认证清单使用。 - INTERFACE_PERSON("工程接口人","20","Interface person","Interface person"), + INTERFACE_PERSON("工程接口人","20","Interface person","Eng. Interface"), PERSON_LIABLE("责任人","21","Person liable","Person liable"), ; diff --git a/jero-boot/jero-boot-modules/pom.xml b/jero-boot/jero-boot-modules/pom.xml index 1f4c12fa2..28338b917 100644 --- a/jero-boot/jero-boot-modules/pom.xml +++ b/jero-boot/jero-boot-modules/pom.xml @@ -124,7 +124,7 @@ cn.afterturn easypoi-base - 3.2.0 + 3.3.0 org.apache.poi @@ -143,12 +143,31 @@ cn.afterturn easypoi-web - 3.2.0 + 3.3.0 cn.afterturn easypoi-annotation - 3.2.0 + 3.3.0 + + + com.monitorjbl + xlsx-streamer + 1.2.0 + + + org.apache.poi + poi-ooxml-schemas + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + com.github.junrar diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java index 14c8158b0..fc2056eed 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java @@ -163,7 +163,7 @@ public class ParamsManifestEOController extends JeroController updateModel(String mid, String version,String cid) { boolean isSuccess = paramsManifestEOService.updateModel(mid,version, cid); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java index a1013f53f..4571e69bf 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java @@ -33,6 +33,8 @@ public interface ParamsCollectManifestEOMapper extends BaseMapper getListInfo(@Param("sqlJoin") String sqlJoin, @Param("paramsManifestEO")ParamsManifestEO paramsManifestEO); + List queryByProjectId(@Param("projectId") String projectId); List getList(@Param("params") Map params); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml index d49dcd42e..d4b74d554 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml @@ -149,6 +149,15 @@ ) temp ${sqlJoin} + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml index 3b8f336e0..7c97b3e40 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml @@ -52,7 +52,7 @@ pm.params_template_publish_version as params_template_publish_version, pm.project_version as project_version, pm.explanation as explanation, - if (pt.params_template_name is not null, pt.params_template_name, pm.params_template_name) as params_template_name + pt.params_template_name as params_template_name diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index c447b23a5..dcaf163db 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import com.jero.common.api.vo.Result; @@ -23,6 +24,7 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.query.QueryRuleEnum; import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.PageUtil; import com.jero.common.util.oss.CosBootUtil; import com.jero.generater.modules.online.cgform.entity.OnlCgformField; import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl; @@ -62,6 +64,7 @@ import com.jero.modules.cert.report.service.IParamsReportConfigEOService; import com.jero.modules.cert.report.service.IParamsReportDetailEOService; import com.jero.modules.cert.report.service.IParamsReportEOService; import com.jero.modules.cert.report.service.IReportCertCategoryParamsInfoEOService; +import com.jero.modules.cert.template.entity.CertCategoryParamsInfoEO; import com.jero.modules.cert.template.entity.CertCategoryParamsInfoPublishEO; import com.jero.modules.cert.template.entity.ParamsInfoPublishEO; import com.jero.modules.cert.template.enums.ControlTypeEnum; @@ -69,7 +72,9 @@ import com.jero.modules.cert.template.enums.ControlVerifyEnum; 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.cert.template.service.impl.CertCategoryParamsInfoEOServiceImpl; import com.jero.modules.document.vo.QueryConditionVO; +import com.jero.modules.dummy.enums.OrderEnum; import com.jero.modules.feishu.enums.TemplateInfoEnum2; import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.feishu.vo.FeishuMsg2Vo; @@ -149,6 +154,7 @@ import java.lang.reflect.Modifier; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; +import java.text.Collator; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; @@ -159,6 +165,7 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.NoSuchElementException; import java.util.Objects; @@ -247,6 +254,10 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl queryConditionVOList = JSONObject.parseArray(paramsCollectManifestVO.getQueryConditionVOListStr(), QueryConditionVO.class); this.createAdvanceedSearchCondition(queryConditionVOList, sqlJoinSb); } - + List categoryListtoHump = new ArrayList<>(); if (StringUtils.isEmpty(paramsCollectManifestVO.getOrderByField())) { sqlJoinSb.append(" ORDER BY del_flag DESC") .append(", add_flag DESC") .append(", change_flag DESC") .append(", nio_number ASC"); } else { - // 拼接动态排序字段 - sqlJoinSb.append(" ORDER BY ").append(paramsCollectManifestVO.getOrderByField()); - // 拼接排序方式 - if (StringUtils.equals(paramsCollectManifestVO.getOrderBy(), "1")) { - sqlJoinSb.append(" ASC"); - } else { - sqlJoinSb.append(" DESC"); + List categoryList = new ArrayList<>(); + List sysDictItemList = sysDictItemService.selectItemsByDictCode("cert_category"); + if(ObjectUtil.isNotEmpty(sysDictItemList)){ + categoryList = sysDictItemList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList()); + if(ObjectUtil.isNotEmpty(categoryList)){ + for (String s : categoryList) { + String toHump = LineHumpUtil.lineToHump(s); + categoryListtoHump.add(toHump); + } + } + } + if(ObjectUtil.isEmpty(categoryListtoHump) + ||(ObjectUtil.isNotEmpty(categoryListtoHump) && !categoryListtoHump.contains(paramsCollectManifestVO.getOrderByField()))){ + // 拼接动态排序字段 + sqlJoinSb.append(" ORDER BY ").append(paramsCollectManifestVO.getOrderByField()); + // 拼接排序方式 + if (StringUtils.equals(paramsCollectManifestVO.getOrderBy(), "1")) { + sqlJoinSb.append(" ASC"); + } else { + sqlJoinSb.append(" DESC"); + } } } - - IPage pageInfo = paramsCollectManifestEOMapper.selectpage(page, sqlJoinSb.toString(), paramsManifestEO); // 查询固定列 - List list = pageInfo.getRecords(); // 查询固定列 + List paramsCollectManifestEOS = paramsCollectManifestEOMapper.getListInfo(sqlJoinSb.toString(), paramsManifestEO);// 查询固定列 +// IPage pageInfo = paramsCollectManifestEOMapper.selectpage(page, sqlJoinSb.toString(), paramsManifestEO); // 查询固定列 +// List list = pageInfo.getRecords(); // 查询固定列 List paramsConfigEOList = paramsConfigEOService.queryList(paramsManifestId); // 查询配置列 List paramsConfigIdList = paramsConfigEOList.stream().map(ParamsConfigEO::getId).collect(Collectors.toList()); List paramsConfigDataEOList = paramsConfigDataEOService.queryListByConfigIdList(paramsConfigIdList); // 查询所有配置数据 + List categoryParamsInfoEOList = new ArrayList<>(); + if(ObjectUtil.isNotEmpty(paramsCollectManifestEOS)){ + String paramsTemplateId = paramsCollectManifestEOS.get(0).getParamsTemplateId();//模板id + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(CertCategoryParamsInfoEO::getParamsTemplateId,paramsTemplateId); + categoryParamsInfoEOList = certCategoryParamsInfoEOService.list(wrapper); + } + // 普通数据字典 List dictItemList = new ArrayList<>(); List dictCodeList = new ArrayList<>(); @@ -819,7 +852,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl> listMap = new ArrayList<>(); - list.forEach(collectManifestEO -> { // 参数收集清单 + List finalCategoryParamsInfoEOList = categoryParamsInfoEOList; + paramsCollectManifestEOS.forEach(collectManifestEO -> { // 参数收集清单 // 处理数据字典字段 中英文切换 认证类型,责任领域 List certCategory = Arrays.asList(collectManifestEO.getCertCategory().split(",")); List dutyTerritory = Arrays.asList(collectManifestEO.getDutyTerritory().split(",")); // 单选 @@ -863,6 +897,17 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl certCategoryParamsInfoEOS = finalCategoryParamsInfoEOList.stream() + .filter(e -> e.getParamsTemplateId().equals(collectManifestEO.getParamsTemplateId()) + && e.getNioNumber().equals(collectManifestEO.getNioNumber())).collect(Collectors.toList()); + if(ObjectUtil.isNotEmpty(certCategoryParamsInfoEOS)){ + for (CertCategoryParamsInfoEO certCategoryParamsInfoEO : certCategoryParamsInfoEOS) { + String toHump = LineHumpUtil.lineToHump(certCategoryParamsInfoEO.getCertCategory()); + manifestMap.put(toHump,certCategoryParamsInfoEO.getParamsNumber()); + } + } + if (StringUtils.isNotEmpty(paramsManifestEO.getReferencesColName())) { Map referencesColMap = new HashMap<>(); referencesColMap.put("referencesColFlag",true); @@ -956,11 +1001,352 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl categoryListtoHump, List> listMap) { + if(ObjectUtil.isNotEmpty(categoryListtoHump) + && StringUtils.isNotBlank(paramsCollectManifestVO.getOrderByField()) + && categoryListtoHump.contains(paramsCollectManifestVO.getOrderByField())){ + Collator comparator = Collator.getInstance(Locale.CHINESE); + if (OrderEnum.POSITIVE.getValue().equals(paramsCollectManifestVO.getOrderBy())) { + Collections.sort(listMap, (e1, e2) -> { + String e1ReleaseName = StringUtils.isNotBlank((String) e1.get(paramsCollectManifestVO.getOrderByField())) ? (String) e1.get(paramsCollectManifestVO.getOrderByField()) : ""; + String e2ReleaseName = StringUtils.isNotBlank((String) e2.get(paramsCollectManifestVO.getOrderByField())) ? (String) e2.get(paramsCollectManifestVO.getOrderByField()) : ""; + return comparator.compare(e1ReleaseName, e2ReleaseName); + }); + } else if (OrderEnum.REVERSE.getValue().equals(paramsCollectManifestVO.getOrderBy())) { + Collections.sort(listMap, (e1, e2) -> { + String e1ReleaseName = StringUtils.isNotBlank((String) e1.get(paramsCollectManifestVO.getOrderByField())) ? (String) e1.get(paramsCollectManifestVO.getOrderByField()) : ""; + String e2ReleaseName = StringUtils.isNotBlank((String) e2.get(paramsCollectManifestVO.getOrderByField())) ? (String) e2.get(paramsCollectManifestVO.getOrderByField()) : ""; + return comparator.compare(e2ReleaseName, e1ReleaseName); + }); + } + } + } +// public IPage queryList(IPage page, ParamsCollectManifestVO paramsCollectManifestVO, String cut) { +// String paramsManifestId = paramsCollectManifestVO.getParamsManifestId(); +// ParamsManifestEO paramsManifestEO = paramsManifestEOService.queryById(paramsManifestId); +// +// String userTypes = paramsCollectManifestVO.getUserTypes(); +// if (StringUtils.isBlank(userTypes)) { +// if (CutEnum.CN.getValue().equals(cut)) { +// throw new JeroBootException("用户类型参数不能为空!"); +// } else { +// throw new JeroBootException("User type can not be null!"); +// } +// } +// if (!CollectManifestUserTypeEnum.doesValueExist(userTypes)) { +// if (CutEnum.CN.getValue().equals(cut)) { +// throw new JeroBootException("用户类型不存在!"); +// } else { +// throw new JeroBootException("User type is not exist!"); +// } +// } +// +// StringBuilder sqlJoinSb = new StringBuilder(); +// sqlJoinSb.append("where control_type not in ").append("('").append(ControlTypeEnum.Title.getValue()).append("')"); +// +// LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录用户 +// if ("sdt".equals(userTypes)) { +// sqlJoinSb.append(" and sdt = '").append(loginUser.getUsername()).append("'"); +// sqlJoinSb.append(" and state in ('2','4','5','6','7','8')"); +// } else if ("dre".equals(userTypes)) { +// sqlJoinSb.append(" and dre = '").append(loginUser.getUsername()).append("'"); +// sqlJoinSb.append(" and state in ('4','6','7','8')"); +// } else if ("guest".equals(userTypes)) { +// return page; +// } else if (CollectManifestUserTypeEnum.VIEWER.getValue().equals(userTypes)) { +// List dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(loginUser.getId()); +// StringBuilder dutyTerritorySb = new StringBuilder(); +// for (int i = 0; i < dutyTerritoryList.size(); i++) { +// dutyTerritorySb.append("'").append(dutyTerritoryList.get(i)).append("'"); +// // 如果还有下一条 +// if (i + 1 < dutyTerritoryList.size()) { +// dutyTerritorySb.append(","); +// } +// } +// +// sqlJoinSb.append(" and (").append("sdt = '").append(loginUser.getUsername()).append("'") +// .append(" or dre = '").append(loginUser.getUsername()).append("'") +// .append(" or duty_territory in (").append(dutyTerritorySb.toString()).append(")") +// .append(")"); +// } +// // 搜索NIO编号或认证类别编号 精确搜索 +// if (StringUtils.isNotEmpty(paramsCollectManifestVO.getAllNumber())) { +// paramsCollectManifestVO.setAllNumber(paramsCollectManifestVO.getAllNumber().replaceAll("'", "\'")); +// sqlJoinSb.append(" and (").append("nio_number = '").append(paramsCollectManifestVO.getAllNumber()).append("'"); +// sqlJoinSb.append(" or nio_number in (") +// .append("select nio_number from cert_category_params_info_publish where params_number = '").append(paramsCollectManifestVO.getAllNumber()).append("'") +// .append(")"); +// sqlJoinSb.append(")"); +// } +// if (StringUtils.isNotEmpty(paramsCollectManifestVO.getDutyTerritory())) { +// List dutyTerritoryList = Arrays.asList(paramsCollectManifestVO.getDutyTerritory().split(",")); +// StringBuilder dutyTerritoryListSb = new StringBuilder(); +// for (int i = 0; i < dutyTerritoryList.size(); i++) { +// dutyTerritoryListSb.append("'").append(dutyTerritoryList.get(i)).append("'"); +// if (i + 1 < dutyTerritoryList.size()) { +// dutyTerritoryListSb.append(","); +// } +// } +// +// sqlJoinSb.append(" and duty_territory in (").append(dutyTerritoryListSb.toString()).append(")"); +// } +// +// if (StringUtils.isNotEmpty(paramsCollectManifestVO.getParamsName())) { +// paramsCollectManifestVO.setParamsName(paramsCollectManifestVO.getParamsName().replaceAll("'", "\'")); +// sqlJoinSb.append(" and params_name like '%").append(paramsCollectManifestVO.getParamsName()).append("%'"); +// } +// +// if (StringUtils.isNotEmpty(paramsCollectManifestVO.getSdt())) { +// paramsCollectManifestVO.setSdt(paramsCollectManifestVO.getSdt().replaceAll("'", "\'")); +// sqlJoinSb.append(" and sdt like '%").append(paramsCollectManifestVO.getSdt()).append("%'"); +// } +// +// if (StringUtils.isNotEmpty(paramsCollectManifestVO.getDre())) { +// paramsCollectManifestVO.setDre(paramsCollectManifestVO.getDre().replaceAll("'", "\'")); +// sqlJoinSb.append(" and dre like '%").append(paramsCollectManifestVO.getDre()).append("%'"); +// } +// +// if (StringUtils.isNotEmpty(paramsCollectManifestVO.getState())) { +// paramsCollectManifestVO.setDre(paramsCollectManifestVO.getState().replaceAll("'", "\'")); +// String state = paramsCollectManifestVO.getState().replaceAll("'", "\'"); +//// state = "1,2,3,9"; +// StringBuilder sb = new StringBuilder(); +// for (String s : Arrays.asList(state.split(","))) { +// sb.append("'"+s+"',"); +// } +// String substring = sb.substring(0,sb.length() - 1); +// sqlJoinSb.append(" and state in ( ").append(substring).append(" )"); +// } +//// if (StringUtils.isNotEmpty(paramsCollectManifestVO.getState())) { +//// paramsCollectManifestVO.setDre(paramsCollectManifestVO.getState().replaceAll("'", "\'")); +//// sqlJoinSb.append(" and state = '").append(paramsCollectManifestVO.getDre()).append("'"); +//// } +// if (StringUtils.isNotEmpty(paramsCollectManifestVO.getCertCategory())) { +// sqlJoinSb.append(" and cert_category like '%").append(paramsCollectManifestVO.getCertCategory()).append("%'"); +// } +// +// // 如果高级查询条件不为空,拼接参数 +// if (StringUtils.isNotEmpty(paramsCollectManifestVO.getQueryConditionVOListStr())) { +// List queryConditionVOList = JSONObject.parseArray(paramsCollectManifestVO.getQueryConditionVOListStr(), QueryConditionVO.class); +// this.createAdvanceedSearchCondition(queryConditionVOList, sqlJoinSb); +// } +// +// if (StringUtils.isEmpty(paramsCollectManifestVO.getOrderByField())) { +// sqlJoinSb.append(" ORDER BY del_flag DESC") +// .append(", add_flag DESC") +// .append(", change_flag DESC") +// .append(", nio_number ASC"); +// } else { +// List categoryList = new ArrayList<>(); +// List categoryListtoHump = new ArrayList<>(); +// List sysDictItemList = sysDictItemService.selectItemsByDictCode("cert_category"); +// if(ObjectUtil.isNotEmpty(sysDictItemList)){ +// categoryList = sysDictItemList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList()); +// if(ObjectUtil.isNotEmpty(categoryList)){ +// for (String s : categoryList) { +// String toHump = LineHumpUtil.lineToHump(s); +// categoryListtoHump.add(toHump); +// } +// } +// } +// if(ObjectUtil.isEmpty(categoryListtoHump) +// ||(ObjectUtil.isNotEmpty(categoryListtoHump) && !categoryListtoHump.contains(paramsCollectManifestVO.getOrderByField()))){ +// // 拼接动态排序字段 +// sqlJoinSb.append(" ORDER BY ").append(paramsCollectManifestVO.getOrderByField()); +// // 拼接排序方式 +// if (StringUtils.equals(paramsCollectManifestVO.getOrderBy(), "1")) { +// sqlJoinSb.append(" ASC"); +// } else { +// sqlJoinSb.append(" DESC"); +// } +// } +// } +// +// IPage pageInfo = paramsCollectManifestEOMapper.selectpage(page, sqlJoinSb.toString(), paramsManifestEO); // 查询固定列 +// List list = pageInfo.getRecords(); // 查询固定列 +// List paramsConfigEOList = paramsConfigEOService.queryList(paramsManifestId); // 查询配置列 +// List paramsConfigIdList = paramsConfigEOList.stream().map(ParamsConfigEO::getId).collect(Collectors.toList()); +// List paramsConfigDataEOList = paramsConfigDataEOService.queryListByConfigIdList(paramsConfigIdList); // 查询所有配置数据 +// +// List categoryParamsInfoEOList = new ArrayList<>(); +// if(ObjectUtil.isNotEmpty(list)){ +// String paramsTemplateId = list.get(0).getParamsTemplateId();//模板id +// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); +// wrapper.eq(CertCategoryParamsInfoEO::getParamsTemplateId,paramsTemplateId); +// categoryParamsInfoEOList = certCategoryParamsInfoEOService.list(wrapper); +// } +// +// // 普通数据字典 +// List dictItemList = new ArrayList<>(); +// List dictCodeList = new ArrayList<>(); +// dictCodeList.add("duty_territory"); +// dictCodeList.add("cert_category"); +// for (String dictCode : dictCodeList) { +// List dictItems = sysDictItemService.selectItemsByDictCode(dictCode); +// dictItemList.addAll(dictItems); +// } +// +// List> listMap = new ArrayList<>(); +// List finalCategoryParamsInfoEOList = categoryParamsInfoEOList; +// list.forEach(collectManifestEO -> { // 参数收集清单 +// // 处理数据字典字段 中英文切换 认证类型,责任领域 +// List certCategory = Arrays.asList(collectManifestEO.getCertCategory().split(",")); +// List dutyTerritory = Arrays.asList(collectManifestEO.getDutyTerritory().split(",")); // 单选 +// String certCategoryName = ""; +// String dutyTerritoryName = ""; +// if (CutEnum.CN.getValue().equals(cut)) { +// certCategoryName = dictItemList.stream() +// .filter(e -> certCategory.contains(e.getItemValue())) +// .map(SysDictItem::getItemText) +// .collect(Collectors.joining(",")); +// +// dutyTerritoryName = dictItemList.stream() +// .filter(e -> dutyTerritory.contains(e.getItemValue())) +// .map(SysDictItem::getItemText) +// .collect(Collectors.joining(",")); +// +// } else if (CutEnum.EN.getValue().equals(cut)) { +// certCategoryName = dictItemList.stream() +// .filter(e -> certCategory.contains(e.getItemValue())) +// .map(SysDictItem::getEnName) +// .collect(Collectors.joining(",")); +// +// dutyTerritoryName = dictItemList.stream() +// .filter(e -> dutyTerritory.contains(e.getItemValue())) +// .map(SysDictItem::getEnName) +// .collect(Collectors.joining(",")); +// +// } +// +// collectManifestEO.setCertCategory(certCategoryName); +// collectManifestEO.setDutyTerritory(dutyTerritoryName); +// +// // 处理状态字段 +// Map collectManifestStateMap = CollectManifestStateEnum.toMap(cut); +// String stateName = collectManifestStateMap.get(collectManifestEO.getState()); +// collectManifestEO.setState(stateName); +// +// List configIdList = new ArrayList<>(); // 配置列名 +// +// Map manifestMap = objectToMap(collectManifestEO); // 对象转map +// String controlType = collectManifestEO.getControlType(); +// String paramsCollectManifestId = collectManifestEO.getId(); +// +// //认证类型 +// List certCategoryParamsInfoEOS = finalCategoryParamsInfoEOList.stream() +// .filter(e -> e.getParamsTemplateId().equals(collectManifestEO.getParamsTemplateId()) +// && e.getNioNumber().equals(collectManifestEO.getNioNumber())).collect(Collectors.toList()); +// if(ObjectUtil.isNotEmpty(certCategoryParamsInfoEOS)){ +// for (CertCategoryParamsInfoEO certCategoryParamsInfoEO : certCategoryParamsInfoEOS) { +// String toHump = LineHumpUtil.lineToHump(certCategoryParamsInfoEO.getCertCategory()); +// manifestMap.put(toHump,certCategoryParamsInfoEO.getParamsNumber()); +// } +// } +// +// if (StringUtils.isNotEmpty(paramsManifestEO.getReferencesColName())) { +// Map referencesColMap = new HashMap<>(); +// referencesColMap.put("referencesColFlag",true); +// Map referencesColConfigDataVOMap = new HashMap<>(); +// String referencesCol = collectManifestEO.getReferencesCol(); +// if (StringUtils.isNotBlank(referencesCol)) { +// String[] referencesColArr = referencesCol.split("
"); +// int index = 0; +// for (String col : referencesColArr) { +// List referencesColVOList = getReferencesColList(controlType, col, collectManifestEO, userTypes); // 重新组合配置数据 +// String key = index+"+"+UUID.randomUUID().toString().replaceAll("-",""); +// referencesColConfigDataVOMap.put(key,referencesColVOList); +// index++; +// } +// +// referencesColMap.put("controlType", controlType); +// referencesColMap.put("paramsConfigData", referencesColConfigDataVOMap); +// manifestMap.put("referencesCol", referencesColMap); +// } else { +// List referencesColVOList = getReferencesColList(controlType, " # # #", collectManifestEO, userTypes); // 重新组合配置数据 +// referencesColMap.put("controlType", controlType); +// +// String key = "0+"+UUID.randomUUID().toString().replaceAll("-",""); +// referencesColConfigDataVOMap.put(key,referencesColVOList); +// referencesColMap.put("paramsConfigData", referencesColConfigDataVOMap); +// manifestMap.put("referencesCol", referencesColMap); +// } +// } +// +// if (CollectionUtil.isNotEmpty(paramsConfigEOList)) { +// paramsConfigEOList.forEach(paramsConfigEO -> { // 参数配置 +// Map paramsConfigDataVO = new HashMap<>(); +// Map configMap = new HashMap<>(); +// String paramsConfigId = paramsConfigEO.getId(); +// List paramsConfigDatas = this.getConfigDataEOListByConfigIdAndCollectManifestId(paramsConfigId, paramsCollectManifestId, paramsConfigDataEOList); // 参数配置数据 +// if(CollectionUtils.isNotEmpty(paramsConfigDatas)){ +// // 匿名比较器排序 +// Collections.sort(paramsConfigDatas, new Comparator() { +// @Override +// public int compare(ParamsConfigDataEO p1, ParamsConfigDataEO p2) { +// if (p2.getOrderNum() == null || p1.getOrderNum() == null) { +// return 0; +// } +// return p1.getOrderNum().compareTo(p2.getOrderNum()); +// } +// }); +// for (ParamsConfigDataEO paramsConfigDataEO : paramsConfigDatas) { +// List paramsConfigDataVOList = this.getConfigDataVOList(controlType, paramsConfigEO, paramsConfigDataEO, collectManifestEO); // 重新组合配置数据 +// String num = "0"; +// if(ObjectUtil.isNotEmpty(paramsConfigDataEO.getOrderNum())){ +// num = String.valueOf(paramsConfigDataEO.getOrderNum()); +// } +// paramsConfigDataVO.put(num + "+" + paramsConfigDataEO.getId(), paramsConfigDataVOList); +// } +// }else{ +// ParamsConfigDataEO paramsConfigDataEO = this.getConfigDataEOByConfigIdAndCollectManifestId(paramsConfigId, paramsCollectManifestId, paramsConfigDataEOList); // 参数配置数据 +// List paramsConfigDataVOList = this.getConfigDataVOList(controlType, paramsConfigEO, paramsConfigDataEO, collectManifestEO); // 重新组合配置数据 +// String key = UUID.randomUUID().toString().replaceAll("-", ""); +// paramsConfigDataVO.put("0+" + key, paramsConfigDataVOList); +// } +// configMap.put("controlType",controlType); +// configMap.put("paramsConfigData",paramsConfigDataVO); +// configMap.put("configId",paramsConfigEO.getId()); +// manifestMap.put(paramsConfigEO.getId(),configMap); +// +// configIdList.add(paramsConfigEO.getId()); +// }); +// } +// +// // 处理负责领域 +// Map dutyTerritoryMap = new HashMap<>(); +// dutyTerritoryMap.put("id", collectManifestEO.getId()); +// dutyTerritoryMap.put("state", collectManifestEO.getState()); +// dutyTerritoryMap.put("dataValue", collectManifestEO.getDutyTerritory()); +// manifestMap.put("dutyTerritory", dutyTerritoryMap); +// +// // 处理工程接口人 +// Map sdtMap = new HashMap<>(); +// sdtMap.put("id", collectManifestEO.getId()); +// sdtMap.put("state", collectManifestEO.getState()); +// sdtMap.put("dutyTerritory", StringUtils.join(dutyTerritory, ",")); +// if (StringUtils.isNotBlank(collectManifestEO.getSdt())) { +// sdtMap.put("dataValue", collectManifestEO.getSdt()); +// } else { +// sdtMap.put("dataValue", null); +// } +// manifestMap.put("sdt", sdtMap); +// +// // 配置列名数组 +// manifestMap.put("configIds", configIdList); +// +// listMap.add(manifestMap); +// }); +// +// pageInfo.setRecords(listMap); +// return pageInfo; +// } + /** * 重新组装配置数据 用于返回前端 * @@ -1533,6 +1919,23 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl列表是否显示0否 1是) fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowList()))).collect(Collectors.toList()); } + //参数项认证清单-认证类型 + List categoryList = new ArrayList<>(); + if(ModuleEnum.PARAMS_COLLECT_MANIFEST.getValue().equals(flag)){ + List sysDictItemList = sysDictItemService.selectItemsByDictCode("cert_category"); + if(ObjectUtil.isNotEmpty(sysDictItemList)){ + categoryList = sysDictItemList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList()); + } + List onlCgformFieldList = new LinkedList<>(); + for (SysDictItem sysDictItem : sysDictItemList) { + OnlCgformField onlCgformField = new OnlCgformField(); + onlCgformField.setDbFieldTxt(sysDictItem.getItemText()); + onlCgformField.setDbFieldEnName(sysDictItem.getEnName()); + onlCgformField.setDbFieldName(sysDictItem.getItemValue()); + onlCgformFieldList.add(onlCgformField); + } + fieldList.addAll(onlCgformFieldList); + } ParamsManifestEO paramsManifestEO = paramsManifestEOService.getById(paramsManifestId); List paramsConfigEOList = paramsConfigEOService.queryList(paramsManifestId); List> listConfig = new LinkedList<>(); @@ -1590,6 +1993,10 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl queryList(ParamsManifestEO paramsManifestEO) { + IPage page = new Page(1, 100); + IPage pageList = pageInfo(page, paramsManifestEO); List resList = new ArrayList<>(); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if(StringUtils.isNotEmpty(paramsManifestEO.getTitle())){ - queryWrapper.eq(ParamsManifestEO::getTitle, paramsManifestEO.getTitle()); - } - queryWrapper.eq(ParamsManifestEO::getProjectId, paramsManifestEO.getProjectId()); - List paramsManifestEOList = list(queryWrapper); - resList.addAll(paramsManifestEOList); +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// if(StringUtils.isNotEmpty(paramsManifestEO.getTitle())){ +// queryWrapper.eq(ParamsManifestEO::getTitle, paramsManifestEO.getTitle()); +// } +// queryWrapper.eq(ParamsManifestEO::getProjectId, paramsManifestEO.getProjectId()); + List paramsManifestEOList = pageList.getRecords(); for (ParamsManifestEO pm : paramsManifestEOList) { pm.setIsHistory("0"); } + resList.addAll(paramsManifestEOList); + List hisList = paramsManifestHistoryEOService.getHistoryListByProjectId(paramsManifestEO.getProjectId()); if(CollectionUtils.isNotEmpty(hisList)){ for (ParamsManifestHistoryEO his : hisList) { @@ -294,10 +297,17 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl> listAll = paramsCollectManifestEOMapper.listInfoForExport(paramsCollectManifestEO, null); if(CollectionUtils.isEmpty(listAll)){ listAll = paramsCollectManifestHistoryEOMapper.listInfoForExport(paramsCollectManifestEO, null); + + if(ObjectUtil.isNotEmpty(listAll)){ + //过滤掉控件类型为标题的数据 + listAll = listAll.stream().filter(e->!ControlTypeEnum.Title.getValue().equals(e.get("control_type"))).collect(Collectors.toList()); + } } if(ObjectUtil.isNotEmpty(firstLevelDutyTerritoryMap)){ diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java index f41bf40a0..2d39a24d8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java @@ -6,6 +6,7 @@ import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ZipUtil; +import cn.hutool.poi.excel.ExcelReader; import com.aliyuncs.utils.IOUtils; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -25,6 +26,7 @@ import com.jero.modules.cert.template.mapper.ParamsInfoEOMapper; import com.jero.modules.cert.template.service.ICertCategoryParamsInfoEOService; import com.jero.modules.cert.template.service.IParamsInfoEOService; import com.jero.modules.cert.template.utils.CommonExcelExportStyler; +import com.jero.modules.cert.template.utils.RightSheetExcelImportUtil; import com.jero.modules.cert.template.vo.*; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; @@ -34,6 +36,7 @@ import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.service.ISysDictItemService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; +import com.monitorjbl.xlsx.StreamingReader; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -904,8 +907,11 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl paramsInfoEOList = new ArrayList<>(); Map> certCategoryParamsInfoEOListMap = new HashMap<>(); @@ -936,16 +942,16 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl resultEn = ExcelImportUtil.importExcelMore(excelfile,ParamsInfoEnImport.class, params); - List paramsInfoEOListEn = resultEn.getList(); + // importExcelBySax 方法有bug,仅能导入第一个sheet页,所以仅针对numSheet为0的时候使用 + List paramsInfoEOListEn = RightSheetExcelImportUtil.importExcelBySax(new FileInputStream(excelfile), ParamsInfoCnImport.class, params); + copyParamsInfoList(paramsInfoEOListEn, paramsInfoEOList); } else { String fields[] ={ "*NIO编号", "*是否必填", "*参数名称","*参数批次","*责任领域", "参数说明", "*控件类型", "控件校验", "控件备选值", "默认值", "附件模板"}; params.setImportFields(fields); - - ExcelImportResult result = ExcelImportUtil.importExcelMore(excelfile, ParamsInfoCnImport.class, params); - paramsInfoEOList = result.getList(); + // importExcelBySax 方法有bug,仅能导入第一个sheet页,所以仅针对numSheet为0的时候使用 + paramsInfoEOList = RightSheetExcelImportUtil.importExcelBySax(new FileInputStream(excelfile), ParamsInfoCnImport.class, params); } } else { // 认证类别参数表 @@ -955,15 +961,13 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl resultEn = ExcelImportUtil.importExcelMore(excelfile, CertCategoryParamsInfoEnImport.class, params); - List listEn = resultEn.getList(); + List listEn = RightSheetExcelImportUtil.importExcelBySax(new FileInputStream(excelfile), CertCategoryParamsInfoEnImport.class, params); copycertCategoryParamsInfoList(listEn, list); } else { String fields[] ={ "*NIO编号", "*编号", "*参数名称","参数说明"}; params.setImportFields(fields); - ExcelImportResult result = ExcelImportUtil.importExcelMore(excelfile, CertCategoryParamsInfoCnImport.class, params); - list = result.getList(); + list = RightSheetExcelImportUtil.importExcelBySax(new FileInputStream(excelfile), CertCategoryParamsInfoCnImport.class, params); } if (CollectionUtil.isNotEmpty(list)) { list.remove(0); // 去掉填写说明 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/utils/RightSheetExcelImportUtil.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/utils/RightSheetExcelImportUtil.java new file mode 100644 index 000000000..bbf4b787d --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/utils/RightSheetExcelImportUtil.java @@ -0,0 +1,20 @@ +package com.jero.modules.cert.template.utils; + +import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.imports.sax.SaxReadExcel; +import cn.afterturn.easypoi.excel.imports.sax.parse.ISaxRowRead; +import cn.afterturn.easypoi.handler.inter.IExcelReadRowHandler; + +import java.io.InputStream; +import java.util.List; + +/** + * 覆写为正确的sheet读取的工具类 + */ +public class RightSheetExcelImportUtil { + + public static List importExcelBySax(InputStream inputstream, Class pojoClass, ImportParams params) { + return (new RightSheetSaxReadExcel()).readExcel(inputstream, pojoClass, params, (ISaxRowRead)null, (IExcelReadRowHandler)null); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/utils/RightSheetSaxReadExcel.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/utils/RightSheetSaxReadExcel.java new file mode 100644 index 000000000..ef2442881 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/utils/RightSheetSaxReadExcel.java @@ -0,0 +1,81 @@ +package com.jero.modules.cert.template.utils; + +import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.imports.sax.SaxReadExcel; +import cn.afterturn.easypoi.excel.imports.sax.SheetHandler; +import cn.afterturn.easypoi.excel.imports.sax.parse.ISaxRowRead; +import cn.afterturn.easypoi.excel.imports.sax.parse.SaxRowRead; +import cn.afterturn.easypoi.exception.excel.ExcelImportException; +import cn.afterturn.easypoi.handler.inter.IExcelReadRowHandler; +import org.apache.poi.openxml4j.opc.OPCPackage; +import org.apache.poi.xssf.eventusermodel.XSSFReader; +import org.apache.poi.xssf.model.SharedStringsTable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xml.sax.ContentHandler; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; +import org.xml.sax.helpers.XMLReaderFactory; + +import java.io.InputStream; +import java.util.Iterator; +import java.util.List; + +/** + * 修复SaxReadExcel Sheet不正确的问题 + */ +public class RightSheetSaxReadExcel extends SaxReadExcel { + + private static final Logger LOGGER = LoggerFactory.getLogger(RightSheetSaxReadExcel.class); + + @Override + public List readExcel(InputStream inputstream, Class pojoClass, ImportParams params, ISaxRowRead rowRead, IExcelReadRowHandler hanlder) { + try { + OPCPackage opcPackage = OPCPackage.open(inputstream); + return this.readExcel(opcPackage, pojoClass, params, rowRead, hanlder); + } catch (Exception var7) { + LOGGER.error(var7.getMessage(), var7); + throw new ExcelImportException(var7.getMessage()); + } + } + + private List readExcel(OPCPackage opcPackage, Class pojoClass, ImportParams params, ISaxRowRead rowRead, IExcelReadRowHandler hanlder) { + try { + XSSFReader xssfReader = new XSSFReader(opcPackage); + SharedStringsTable sst = xssfReader.getSharedStringsTable(); + if (rowRead == null) { + rowRead = new SaxRowRead(pojoClass, params, hanlder); + } + + XMLReader parser = this.fetchSheetParser(sst, (ISaxRowRead)rowRead); + Iterator sheets = xssfReader.getSheetsData(); + int sheetIndex = 0; + + while (sheets.hasNext() && sheetIndex < params.getSheetNum() + params.getStartSheetIndex()) { + if (sheetIndex < params.getStartSheetIndex()) { + sheets.next(); + } else { + InputStream sheet = sheets.next(); + InputSource sheetSource = new InputSource(sheet); + parser.parse(sheetSource); + sheet.close(); + } + sheetIndex++; + } + + return ((ISaxRowRead)rowRead).getList(); + } catch (Exception var13) { + LOGGER.error(var13.getMessage(), var13); + throw new ExcelImportException("SAX导入数据失败"); + } + } + + private XMLReader fetchSheetParser(SharedStringsTable sst, ISaxRowRead rowRead) throws SAXException { + XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser"); + ContentHandler handler = new SheetHandler(sst, rowRead); + parser.setContentHandler(handler); + return parser; + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/enums/ReleaseConditionEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/enums/ReleaseConditionEnum.java index 1504bb042..f8645d384 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/enums/ReleaseConditionEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/enums/ReleaseConditionEnum.java @@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils; */ public enum ReleaseConditionEnum { - PUBLISHED("已发布","published","Published"), + PUBLISHED("已发布","published","Released"), DRAFT("草稿","draft","Draft"), ; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/controller/DummyInventoryInfoHistoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/controller/DummyInventoryInfoHistoryEOController.java new file mode 100644 index 000000000..44d5bf2d7 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/controller/DummyInventoryInfoHistoryEOController.java @@ -0,0 +1,180 @@ +package com.jero.modules.dummy.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.dummy.entity.DummyInventoryInfoHistoryEO; +import com.jero.modules.dummy.service.IDummyInventoryInfoHistoryEOService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; + + + /** + * @Description: 市场法规清单历史版本 + * @Author: jero-boot + * @Date: 2023-10-30 + * @Version: V1.0 + */ +@Api(tags="市场法规清单历史版本") +@RestController +@RequestMapping("/dummy/dummyInventoryInfoHistoryEO") +@Slf4j +public class DummyInventoryInfoHistoryEOController extends JeroController { + @Autowired + private IDummyInventoryInfoHistoryEOService dummyInventoryInfoHistoryEOService; + + /** + * 分页列表查询 + * + * @param dummyInventoryInfoHistoryEO + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "市场法规清单历史版本-分页列表查询") + @ApiOperation(value="市场法规清单历史版本-分页列表查询", notes="市场法规清单历史版本-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryInfoHistoryEO, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = dummyInventoryInfoHistoryEOService.getPageInfo(page,dummyInventoryInfoHistoryEO); +// IPage pageList = dummyInventoryInfoHistoryEOService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @return + */ + @AutoLog(value = "市场法规清单历史版本-列表查询") + @ApiOperation(value="市场法规清单历史版本-列表查询", notes="市场法规清单历史版本-列表查询") + @GetMapping(value = "/list") + public Result> queryList() { + List list = dummyInventoryInfoHistoryEOService.queryList(); + return Result.OK(list); + } + + /** + * 添加 + * + * @param dummyInventoryInfoHistoryEO + * @return + */ + @AutoLog(value = "市场法规清单历史版本-添加") + @ApiOperation(value="市场法规清单历史版本-添加", notes="市场法规清单历史版本-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO) { + dummyInventoryInfoHistoryEOService.add(dummyInventoryInfoHistoryEO); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param dummyInventoryInfoHistoryEO + * @return + */ + @AutoLog(value = "市场法规清单历史版本-编辑") + @ApiOperation(value="市场法规清单历史版本-编辑", notes="市场法规清单历史版本-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO) { + dummyInventoryInfoHistoryEOService.editById(dummyInventoryInfoHistoryEO); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "市场法规清单历史版本-通过id删除") + @ApiOperation(value="市场法规清单历史版本-通过id删除", notes="市场法规清单历史版本-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + dummyInventoryInfoHistoryEOService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "市场法规清单历史版本-批量删除") + @ApiOperation(value="市场法规清单历史版本-批量删除", notes="市场法规清单历史版本-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.dummyInventoryInfoHistoryEOService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "市场法规清单历史版本-通过id查询") + @ApiOperation(value="市场法规清单历史版本-通过id查询", notes="市场法规清单历史版本-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO = dummyInventoryInfoHistoryEOService.queryById(id); + if(dummyInventoryInfoHistoryEO==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(dummyInventoryInfoHistoryEO); + } + + /** + * 导出excel + * + * @param request + * @param dummyInventoryInfoHistoryEO + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO) { + return super.exportXls(request, dummyInventoryInfoHistoryEO, DummyInventoryInfoHistoryEO.class, "市场法规清单历史版本"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, DummyInventoryInfoHistoryEO.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoHistoryEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoHistoryEO.java new file mode 100644 index 000000000..92a9a1577 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoHistoryEO.java @@ -0,0 +1,330 @@ +package com.jero.modules.dummy.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + + +/** + * @Description: 市场法规清单历史版本 + * @Author: jero-boot + * @Date: 2023-10-30 + * @Version: V1.0 + */ +@Data +@TableName("dummy_inventory_info_history") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="dummy_inventory_info_history对象", description="市场法规清单历史版本") +public class DummyInventoryInfoHistoryEO implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; + + /**法规清单基础表id*/ + @Excel(name = "法规清单基础表id", width = 15) + @ApiModelProperty(value = "法规清单基础表id") + private java.lang.String dummyInventoryBaseId; + + /**编号*/ + @Excel(name = "编号", width = 15) + @ApiModelProperty(value = "编号") + private java.lang.String serialNumber; + + /**标题*/ + @Excel(name = "标题", width = 15) + @ApiModelProperty(value = "标题") + private java.lang.String title; + + /**适用范围*/ + @Excel(name = "适用范围", width = 15) + @ApiModelProperty(value = "适用范围") + private java.lang.String shi4Yong4Fan4Wei2; + + /**状态*/ + @Excel(name = "状态", width = 15) + @ApiModelProperty(value = "状态") + private java.lang.String state; + + /**技术领域*/ + @Excel(name = "技术领域", width = 15) + @ApiModelProperty(value = "技术领域") + private java.lang.String technologyTerritory; + + /**新车型实施日期*/ + @Excel(name = "新车型实施日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "新车型实施日期") + private java.util.Date xin1Che1Xing2Shi2Shi1Ri4Qi1; + + /**在产车实施日期*/ + @Excel(name = "在产车实施日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "在产车实施日期") + private java.util.Date implementTime; + + /**对应标准*/ + @Excel(name = "对应标准", width = 15) + @ApiModelProperty(value = "对应标准") + private java.lang.String correspondingStandard; + + /**对应标准id*/ + @Excel(name = "对应标准id", width = 15) + @ApiModelProperty(value = "对应标准id") + private java.lang.String correspondingStandardId; + + /**WVTA ID*/ + @Excel(name = "WVTA ID", width = 15) + @ApiModelProperty(value = "WVTA ID") + private java.lang.String wvtaId; + + /**子标题*/ + @Excel(name = "子标题", width = 15) + @ApiModelProperty(value = "子标题") + private java.lang.String subtitle; + + /**实施类别*/ + @Excel(name = "实施类别", width = 15) + @ApiModelProperty(value = "实施类别") + private java.lang.String implementType; + + /**认证类型*/ + @Excel(name = "认证类型", width = 15) + @ApiModelProperty(value = "认证类型") + private java.lang.String attestationType; + + /**认证级别*/ + @Excel(name = "认证级别", width = 15) + @ApiModelProperty(value = "认证级别") + private java.lang.String attestationRank; + + /**责任领域*/ + @Excel(name = "责任领域", width = 15) + @ApiModelProperty(value = "责任领域") + private java.lang.String dutyTerritory; + + /**备注*/ + @Excel(name = "备注", width = 15) + @ApiModelProperty(value = "备注") + private java.lang.String remark; + + /**设计符合性确认-交付物类型*/ + @Excel(name = "设计符合性确认-交付物类型", width = 15) + @ApiModelProperty(value = "设计符合性确认-交付物类型") + private java.lang.String designDeliverableType; + + /**设计符合性确认-交付物模板*/ + @Excel(name = "设计符合性确认-交付物模板", width = 15) + @ApiModelProperty(value = "设计符合性确认-交付物模板") + private java.lang.String designDeliverableTemplate; + + /**设计符合性确认-发起人*/ + @Excel(name = "设计符合性确认-发起人", width = 15) + @ApiModelProperty(value = "设计符合性确认-发起人") + private java.lang.String designInitiator; + + /**设计符合性确认-责任人*/ + @Excel(name = "设计符合性确认-责任人", width = 15) + @ApiModelProperty(value = "设计符合性确认-责任人") + private java.lang.String designDuty; + + /**prehomo确认-交付物类型*/ + @Excel(name = "prehomo确认-交付物类型", width = 15) + @ApiModelProperty(value = "prehomo确认-交付物类型") + private java.lang.String prehomoDeliverableType; + + /**prehomo确认-交付物模板*/ + @Excel(name = "prehomo确认-交付物模板", width = 15) + @ApiModelProperty(value = "prehomo确认-交付物模板") + private java.lang.String prehomoDeliverableTemplate; + + /**prehomo确认-发起人*/ + @Excel(name = "prehomo确认-发起人", width = 15) + @ApiModelProperty(value = "prehomo确认-发起人") + private java.lang.String prehomoInitiator; + + /**prehomo确认-责任人*/ + @Excel(name = "prehomo确认-责任人", width = 15) + @ApiModelProperty(value = "prehomo确认-责任人") + private java.lang.String prehomoDuty; + + /**验证符合性确认-交付物类型*/ + @Excel(name = "验证符合性确认-交付物类型", width = 15) + @ApiModelProperty(value = "验证符合性确认-交付物类型") + private java.lang.String verifyDeliverableType; + + /**验证符合性确认-交付物模板*/ + @Excel(name = "验证符合性确认-交付物模板", width = 15) + @ApiModelProperty(value = "验证符合性确认-交付物模板") + private java.lang.String verifyDeliverableTemplate; + + /**验证符合性确认-发起人*/ + @Excel(name = "验证符合性确认-发起人", width = 15) + @ApiModelProperty(value = "验证符合性确认-发起人") + private java.lang.String verifyInitiator; + + /**验证符合性确认-责任人*/ + @Excel(name = "验证符合性确认-责任人", width = 15) + @ApiModelProperty(value = "验证符合性确认-责任人") + private java.lang.String verifyDuty; + + /**适用地区*/ + @Excel(name = "适用地区", width = 15) + @ApiModelProperty(value = "适用地区") + private java.lang.String region; + + /**适用增补件*/ + @Excel(name = "适用增补件", width = 15) + @ApiModelProperty(value = "适用增补件") + private java.lang.String applicableSupplement; + + /**验证备注*/ + @Excel(name = "验证备注", width = 15) + @ApiModelProperty(value = "验证备注") + private java.lang.String verifyRemark; + + /**pre备注*/ + @Excel(name = "pre备注", width = 15) + @ApiModelProperty(value = "pre备注") + private java.lang.String prehomoRemark; + + /**设计备注*/ + @Excel(name = "设计备注", width = 15) + @ApiModelProperty(value = "设计备注") + private java.lang.String designRemark; + + /**文档库id*/ + @Excel(name = "文档库id", width = 15) + @ApiModelProperty(value = "文档库id") + private java.lang.String bussDocumentLibraryId; + + /**责任部门*/ + @Excel(name = "责任部门", width = 15) + @ApiModelProperty(value = "责任部门") + private java.lang.String dutyDepart; + + @ApiModelProperty(value = "市场清单版本更新log表id") + private java.lang.String marketListVersionUpdateLogId; + + @TableField(exist = false) + private String xin1Che1Xing2Shi2Shi1Ri4Qi1String; + + @TableField(exist = false) + private String implementTimeString; + + @TableField(exist = false) + private java.lang.String designDeliverableTypeName; + + @TableField(exist = false) + private java.lang.String prehomoDeliverableTypeName; + + @TableField(exist = false) + private java.lang.String verifyDeliverableTypeName; + + @TableField(exist = false) + private java.lang.String technologyTerritoryName; + + @TableField(exist = false) + private java.lang.String designDeliverableTemplateName; + + @TableField(exist = false) + private java.lang.String prehomoDeliverableTemplateName; + + @TableField(exist = false) + private java.lang.String verifyDeliverableTemplateName; + + @TableField(exist = false) + private String cut; + + @TableField(exist = false) + private String region_dictText; + + @TableField(exist = false) + private java.lang.String shi4Yong4Fan4Wei2Str; + + @TableField(exist = false) + private java.lang.String stateStr; + + @TableField(exist = false) + private String implementType_dictText; + + @TableField(exist = false) + private String attestationType_dictText; + + @TableField(exist = false) + private java.lang.String attestationRankStr; + + @TableField(exist = false) + private java.lang.String dutyTerritoryStr; + + @TableField(exist = false) + private String designInitiator_dictText; + + @TableField(exist = false) + private String designDuty_dictText; + + @TableField(exist = false) + private String prehomoInitiator_dictText; + + @TableField(exist = false) + private String prehomoDuty_dictText; + + @TableField(exist = false) + private String verifyInitiator_dictText; + + @TableField(exist = false) + private String verifyDuty_dictText; + + @TableField(exist = false) + private String state_dictText; + + @TableField(exist = false) + private String shi4Yong4Fan4Wei2_dictText; + + @TableField(exist = false) + private String attestationRank_dictText; + + @TableField(exist = false) + private String dutyTerritory_dictText; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/DummyInventoryInfoHistoryEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/DummyInventoryInfoHistoryEOMapper.java new file mode 100644 index 000000000..6c87d1752 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/DummyInventoryInfoHistoryEOMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.dummy.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.jero.modules.dummy.entity.DummyInventoryInfoHistoryEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 市场法规清单历史版本 + * @Author: jero-boot + * @Date: 2023-10-30 + * @Version: V1.0 + */ +public interface DummyInventoryInfoHistoryEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/xml/DummyInventoryInfoHistoryEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/xml/DummyInventoryInfoHistoryEOMapper.xml new file mode 100644 index 000000000..62bb8dfd3 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/mapper/xml/DummyInventoryInfoHistoryEOMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryInfoHistoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryInfoHistoryEOService.java new file mode 100644 index 000000000..144e2de66 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryInfoHistoryEOService.java @@ -0,0 +1,66 @@ +package com.jero.modules.dummy.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.dummy.entity.DummyInventoryInfoHistoryEO; + +import java.util.List; + +/** + * @Description: 市场法规清单历史版本 + * @Author: jero-boot + * @Date: 2023-10-30 + * @Version: V1.0 + */ +public interface IDummyInventoryInfoHistoryEOService extends IService { + + /** + * 保存 + * + * @param dummyInventoryInfoHistoryEO + * @return + */ + void add(DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO); + + /** + * 更新 + * + * @param dummyInventoryInfoHistoryEO + * @return + */ + void editById(DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + DummyInventoryInfoHistoryEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); + + IPage getPageInfo(Page page,DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java index f06bd5cd0..fcfa46069 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java @@ -17,6 +17,7 @@ import com.jero.modules.domain.service.DomainUserRelService; import com.jero.modules.dummy.entity.DummyContentChangeEO; import com.jero.modules.dummy.entity.DummyInventoryBaseEO; import com.jero.modules.dummy.entity.DummyInventoryInfoEO; +import com.jero.modules.dummy.entity.DummyInventoryInfoHistoryEO; import com.jero.modules.dummy.entity.DummyLogEO; import com.jero.modules.dummy.entity.DummyReadEO; import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum; @@ -49,6 +50,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -65,6 +67,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.UUID; import java.util.stream.Collectors; /** @@ -113,6 +116,8 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl createByNameList =new ArrayList<>(); -// if (StringUtils.isNotBlank(baseEO.getCreateBy())) { -// createByNameList = Arrays.asList(baseEO.getCreateBy().split(",")); -// -// if (CollectionUtils.isNotEmpty(createByNameList)){ -// if (!createByNameList.contains(loginUserName)) { -// if (CutEnum.CN.getValue().equals(dummyInventoryBaseEO.getCut())) { -// throw new JeroBootException("当前用户非创建者,无法发布"); -// } else { -// throw new JeroBootException("The current user is not the creator and cannot be issued."); -// } -// } -// } -// } Date now = new Date(); UpdateWrapper baseWrapper=new UpdateWrapper<>(); baseWrapper.set("state",dummyInventoryBaseEO.getState()); @@ -365,6 +356,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(DummyInventoryInfoEO::getDummyInventoryBaseId,dummyInventoryBaseEO.getId()); + List dummyInventoryInfoEOList = iDummyInventoryInfoEOService.list(wrapper); + if(ObjectUtils.isNotEmpty(dummyInventoryInfoEOList)){ + List dummyInventoryInfoHistoryEOList = new ArrayList<>(); + for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOList) { + DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO = new DummyInventoryInfoHistoryEO(); + BeanUtils.copyProperties(dummyInventoryInfoEO,dummyInventoryInfoHistoryEO); + dummyInventoryInfoHistoryEO.setId(UUID.randomUUID().toString().replace("-", "")); + dummyInventoryInfoHistoryEO.setMarketListVersionUpdateLogId(mlvLogEo.getId()); + dummyInventoryInfoHistoryEOList.add(dummyInventoryInfoHistoryEO); + } + dummyInventoryInfoHistoryEOService.saveBatch(dummyInventoryInfoHistoryEOList); + } + } + + + // this.updateById(dummyInventoryBaseEO); //不管有没有维护清单,都返回操作成功 //发布与撤回均需要发消息(向订阅的人员发消息) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java index 7ff8f138f..d8fbb7cfc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java @@ -211,7 +211,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl implements IDummyInventoryInfoHistoryEOService { + + @Autowired + private IPhasedImplementationDetailsEOService phasedImplementationDetailsEOService; + @Autowired + private IOSSFileService iOSSFileService; + @Autowired + private SysCategoryServiceImpl sysCategoryService; + @Autowired + private SysDictItemServiceImpl sysDictItemServiceImpl; + + + + /** + * 保存 + * + * @param dummyInventoryInfoHistoryEO + * @return + */ + @Override + public void add(DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO) { + Date now = new Date(); + dummyInventoryInfoHistoryEO.setCreateTime(now); + dummyInventoryInfoHistoryEO.setUpdateTime(now); + save(dummyInventoryInfoHistoryEO); + } + + /** + * 更新 + * + * @param dummyInventoryInfoHistoryEO + * @return + */ + @Override + public void editById(DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO) { + Date now = new Date(); + dummyInventoryInfoHistoryEO.setUpdateTime(now); + saveOrUpdate(dummyInventoryInfoHistoryEO); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public DummyInventoryInfoHistoryEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } + + @Override + public IPage getPageInfo(Page page,DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(DummyInventoryInfoHistoryEO::getDummyInventoryBaseId,dummyInventoryInfoHistoryEO.getDummyInventoryBaseId()); + wrapper.eq(DummyInventoryInfoHistoryEO::getMarketListVersionUpdateLogId,dummyInventoryInfoHistoryEO.getMarketListVersionUpdateLogId()); + Page historyEOPage = this.page(page, wrapper); + + treeDict(dummyInventoryInfoHistoryEO, historyEOPage.getRecords()); + + disposeData(historyEOPage.getRecords()); + + dataDicDispose(historyEOPage.getRecords(),dummyInventoryInfoHistoryEO.getCut()); + + return historyEOPage; + } + + private void disposeData(List datas) { + if(CollectionUtils.isNotEmpty(datas)){ + List bussDocumentLibraryIdList = datas.stream().map(DummyInventoryInfoHistoryEO::getBussDocumentLibraryId).distinct().collect(Collectors.toList()); + QueryWrapper phasedDetailsQueryWrap = new QueryWrapper<>(); + phasedDetailsQueryWrap.lambda().in(PhasedImplementationDetailsEO::getBussDocumentLibraryId,bussDocumentLibraryIdList); + List phasedDetailsList = this.phasedImplementationDetailsEOService.list(phasedDetailsQueryWrap); + + // 新车型分阶段实施数据信息 + List newCarModelPhasedDetailsList = phasedDetailsList.stream().filter(phasedDetails -> { + boolean flag = false; + if(StringUtils.contains(phasedDetails.getImplementationType(), ImplementationTypeEnum.NEW_CAR_MODEL.getItemValue())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + // 在产车分阶段实施数据信息 + List carInProductionPhasedDetailsList = phasedDetailsList.stream().filter(phasedDetails -> { + boolean flag = false; + if(StringUtils.contains(phasedDetails.getImplementationType(), ImplementationTypeEnum.CAR_IN_PRODUCTION.getItemValue())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + for (DummyInventoryInfoHistoryEO data : datas) { + // 处理新车型实施日期展示 + List newCarModelDateList = newCarModelPhasedDetailsList.stream().filter(phasedDetails -> { + boolean flag = false; + if (StringUtils.equals(phasedDetails.getBussDocumentLibraryId(), data.getBussDocumentLibraryId())) { + flag = true; + } + return flag; + }).map(PhasedImplementationDetailsEO::getImplementationDate).collect(Collectors.toList()); + if(data.getXin1Che1Xing2Shi2Shi1Ri4Qi1() != null){ + newCarModelDateList.add(data.getXin1Che1Xing2Shi2Shi1Ri4Qi1()); + } + String newCarModelDateStr = DateUtils.formatDateList(newCarModelDateList); + data.setXin1Che1Xing2Shi2Shi1Ri4Qi1String(newCarModelDateStr); + + // 处理在产车实施日期展示 + List carInProductionDateList = carInProductionPhasedDetailsList.stream().filter(phasedDetails -> { + boolean flag = false; + if (StringUtils.equals(phasedDetails.getBussDocumentLibraryId(), data.getBussDocumentLibraryId())) { + flag = true; + } + return flag; + }).map(PhasedImplementationDetailsEO::getImplementationDate).collect(Collectors.toList()); + if(data.getImplementTime() != null){ + carInProductionDateList.add(data.getImplementTime()); + } + String carInProductionDateStr = DateUtils.formatDateList(carInProductionDateList); + data.setImplementTimeString(carInProductionDateStr); + } + } + } + + public void dataDicDispose(List datas, String cut){ + if(CollectionUtils.isNotEmpty(datas)){ + List sysDictItems = this.sysDictItemServiceImpl.getBaseMapper().selectItemsAll(); + + for (DummyInventoryInfoHistoryEO data : datas) { + // 适用地区 + String region = data.getRegion(); + if(StringUtils.isNotEmpty(region)){ + String region_dictText = this.disposeShowDictItemValue(sysDictItems, region,cut, DummyInventoryBaseFieldEnum.REGION.getValue()); + data.setRegion_dictText(region_dictText); + } + + // 适用范围 + String shi4Yong4Fan4Wei2 = data.getShi4Yong4Fan4Wei2(); + if(StringUtils.isNotEmpty(shi4Yong4Fan4Wei2)){ + String shi4Yong4Fan4Wei2_dictText = this.disposeShowDictItemValue(sysDictItems, shi4Yong4Fan4Wei2,cut, DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getValue()); + data.setShi4Yong4Fan4Wei2_dictText(shi4Yong4Fan4Wei2_dictText); + data.setShi4Yong4Fan4Wei2Str(shi4Yong4Fan4Wei2_dictText); + }else{ + data.setShi4Yong4Fan4Wei2Str(""); + } + + // 状态 + String state = data.getState(); + if(StringUtils.isNotEmpty(state)){ + String state_dictText = this.disposeShowDictItemValue(sysDictItems, state,cut, DummyInventoryBaseFieldEnum.STATE.getValue()); + data.setState_dictText(state_dictText); + data.setStateStr(state_dictText); + }else{ + data.setStateStr(""); + } + + // 实施类别 + String implementType = data.getImplementType(); + if(StringUtils.isNotEmpty(implementType)){ + String implementType_dictText = this.disposeShowDictItemValue(sysDictItems, implementType,cut, DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getValue()); + data.setImplementType_dictText(implementType_dictText); + } + + // 认证类别 + String attestationType = data.getAttestationType(); + if(StringUtils.isNotEmpty(attestationType)){ + String attestationType_dictText = this.disposeShowDictItemValue(sysDictItems, attestationType,cut, DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getValue()); + data.setAttestationType_dictText(attestationType_dictText); + } + + // 认证级别 + String attestationRank = data.getAttestationRank(); + if(StringUtils.isNotEmpty(attestationRank)){ + String attestationRank_dictText = this.disposeShowDictItemValue(sysDictItems, attestationRank,cut, DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getValue()); + data.setAttestationRank_dictText(attestationRank_dictText); + data.setAttestationRankStr(attestationRank_dictText); + }else{ + data.setAttestationRankStr(""); + } + + // 责任领域 + String dutyTerritory = data.getDutyTerritory(); + if(StringUtils.isNotEmpty(dutyTerritory)){ + String dutyTerritory_dictText = this.disposeShowDictItemValue(sysDictItems, dutyTerritory,cut, DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getValue()); + data.setDutyTerritory_dictText(dutyTerritory_dictText); + data.setDutyTerritoryStr(dutyTerritory_dictText); + }else{ + data.setDutyTerritoryStr(""); + } + + // 设计符合性-发起人 + String designInitiator = data.getDesignInitiator(); + if(StringUtils.isNotEmpty(designInitiator)){ + String designInitiator_dictText = this.disposeShowDictItemValue(sysDictItems, designInitiator,cut, DummyInventoryBaseFieldEnum.DESIGN_INITIATOR.getValue()); + data.setDesignInitiator_dictText(designInitiator_dictText); + } + + // 设计符合性-责任人 + String designDuty = data.getDesignDuty(); + if(StringUtils.isNotEmpty(designDuty)){ + String designDuty_dictText = this.disposeShowDictItemValue(sysDictItems, designDuty,cut, DummyInventoryBaseFieldEnum.DESIGN_DUTY.getValue()); + data.setDesignDuty_dictText(designDuty_dictText); + } + + // preHomo-发起人 + String prehomoInitiator = data.getPrehomoInitiator(); + if(StringUtils.isNotEmpty(prehomoInitiator)){ + String prehomoInitiator_dictText = this.disposeShowDictItemValue(sysDictItems, prehomoInitiator,cut, DummyInventoryBaseFieldEnum.PREHOMO_INITIATOR.getValue()); + data.setPrehomoInitiator_dictText(prehomoInitiator_dictText); + } + + // preHomo-责任人 + String prehomoDuty = data.getPrehomoDuty(); + if(StringUtils.isNotEmpty(prehomoDuty)){ + String prehomoDuty_dictText = this.disposeShowDictItemValue(sysDictItems, prehomoDuty,cut, DummyInventoryBaseFieldEnum.PREHOMO_DUTY.getValue()); + data.setPrehomoDuty_dictText(prehomoDuty_dictText); + } + + // 验证符合性-发起人 + String verifyInitiator = data.getVerifyInitiator(); + if(StringUtils.isNotEmpty(verifyInitiator)){ + String verifyInitiator_dictText = this.disposeShowDictItemValue(sysDictItems, verifyInitiator,cut, DummyInventoryBaseFieldEnum.VERIFY_INITIATOR.getValue()); + data.setVerifyInitiator_dictText(verifyInitiator_dictText); + } + + // 验证符合性-责任人 + String verifyDuty = data.getVerifyDuty(); + if(StringUtils.isNotEmpty(verifyDuty)){ + String verifyDuty_dictText = this.disposeShowDictItemValue(sysDictItems, verifyDuty,cut, DummyInventoryBaseFieldEnum.VERIFY_DUTY.getValue()); + data.setVerifyDuty_dictText(verifyDuty_dictText); + } + } + } + } + + private void treeDict(DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO, + List dummyInventoryInfoHistoryEOList) { + + List deliverableList = new ArrayList<>(); + if(dummyInventoryInfoHistoryEOList.size() != 0){ + for (DummyInventoryInfoHistoryEO record : dummyInventoryInfoHistoryEOList) { + //设计符合性确认交付物模板 + if(StringUtils.isNotBlank(record.getDesignDeliverableTemplate())){ + deliverableList.addAll(Arrays.asList(record.getDesignDeliverableTemplate().split(","))); + } + // Prehomo确认交付物模板 + if(StringUtils.isNotBlank(record.getPrehomoDeliverableTemplate())){ + deliverableList.addAll(Arrays.asList(record.getPrehomoDeliverableTemplate().split(","))); + } + // 验证符合性确认交付物模板 + if(StringUtils.isNotBlank(record.getVerifyDeliverableTemplate())){ + deliverableList.addAll(Arrays.asList(record.getVerifyDeliverableTemplate().split(","))); + } + } + + //文件 + List fileInfos = new ArrayList<>(); + if(deliverableList.size() != 0){ + fileInfos = iOSSFileService.getFileInfos(StringUtils.join(deliverableList, ",")); + } + + //树形结构数据字典(技术领域) + List categoryList = sysCategoryService.list(); + + for (DummyInventoryInfoHistoryEO record : dummyInventoryInfoHistoryEOList) { + if(StringUtils.isBlank(record.getWvtaId())){ + record.setWvtaId(""); + } + //技术领域 + if (categoryList.size() != 0 && StringUtils.isNotBlank(record.getTechnologyTerritory())) { + List technologyTerritoryList = Arrays.asList(record.getTechnologyTerritory().split(",")); + String technologyTerritoryName = getTreeName(dummyInventoryInfoHistoryEO, categoryList, technologyTerritoryList); + record.setTechnologyTerritoryName(technologyTerritoryName); + } + //设计交付物类型 + if(StringUtils.isNotBlank(record.getDesignDeliverableType())){ + List designDeliverableTypeList = Arrays.asList(record.getDesignDeliverableType().split(",")); + String name = getTreeName(dummyInventoryInfoHistoryEO, categoryList, designDeliverableTypeList); + record.setDesignDeliverableTypeName(name); + } + + //pre交付物类型 + if(StringUtils.isNotBlank(record.getPrehomoDeliverableType())){ + List prehomoDeliverableTypeList = Arrays.asList(record.getPrehomoDeliverableType().split(",")); + String name = getTreeName(dummyInventoryInfoHistoryEO, categoryList, prehomoDeliverableTypeList); + record.setPrehomoDeliverableTypeName(name); + } + + //验证交付物类型 + if(StringUtils.isNotBlank(record.getVerifyDeliverableType())){ + List verifyDeliverableTypeList = Arrays.asList(record.getVerifyDeliverableType().split(",")); + String name = getTreeName(dummyInventoryInfoHistoryEO, categoryList, verifyDeliverableTypeList); + record.setVerifyDeliverableTypeName(name); + } + + //交付物类型模板 + if(fileInfos.size() != 0){ + if(StringUtils.isNotBlank(record.getDesignDeliverableTemplate())){ + String fileName = getFileName(fileInfos,record.getDesignDeliverableTemplate()); + if(StringUtils.isNotBlank(fileName)){ + record.setDesignDeliverableTemplateName(fileName); + } + } + if(StringUtils.isNotBlank(record.getPrehomoDeliverableTemplate())){ + String fileName = getFileName(fileInfos,record.getPrehomoDeliverableTemplate()); + if(StringUtils.isNotBlank(fileName)){ + record.setPrehomoDeliverableTemplateName(fileName); + } + } + if(StringUtils.isNotBlank(record.getVerifyDeliverableTemplate())){ + String fileName = getFileName(fileInfos,record.getVerifyDeliverableTemplate()); + if(StringUtils.isNotBlank(fileName)){ + record.setVerifyDeliverableTemplateName(fileName); + + } + } + } + } + } + } + + private String getTreeName(DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO, + List categoryList, + List technologyTerritoryList) { + StringBuilder sb = new StringBuilder(); + for (String technologyTerritory : technologyTerritoryList) { + List collect = categoryList.stream().filter(e -> technologyTerritory.equals(e.getId())).collect(Collectors.toList()); + if(collect.size() != 0){ + if (CutEnum.CN.getValue().equals(dummyInventoryInfoHistoryEO.getCut())) { + sb.append(collect.get(0).getName() + ","); + } else { + sb.append(collect.get(0).getEnName()); + } + } + } + String technologyTerritoryName = ""; + if (StringUtils.isNotBlank(sb)) { + technologyTerritoryName = sb.substring(0, sb.length() - 1); + } + return technologyTerritoryName; + } + + private String getFileName(List fileInfos,String deliverableTemplate){ + StringBuilder sb = new StringBuilder(); + for (String s : deliverableTemplate.split(",")) { + List collect = fileInfos.stream().filter(e -> s.equals(e.getId())).collect(Collectors.toList()); + if(collect.size() != 0){ + sb.append(collect.get(0).getFileName() + ","); + } + } + String sbStr = ""; + if(StringUtils.isNotBlank(sb)){ + sbStr = sb.substring(0, sb.length() - 1); + } + return sbStr; + } + + public String disposeShowDictItemValue(List sysDictItems,String fieldValues,String cut,String dicCode){ + String result = ""; + List sysDictItemList = sysDictItems.stream().filter(e -> { + boolean flag = false; + if(StringUtils.equals(e.getDictCode(),dicCode)){ + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(sysDictItemList)){ + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + result = sysDictItemList.stream().filter(e -> { + boolean flag = false; + List fieldValueStrList = Arrays.asList(fieldValues.split(",")); + for (String fieldValueStr : fieldValueStrList) { + if(StringUtils.equals(fieldValueStr,e.getItemValue())){ + flag = true; + break; + } + } + return flag; + }).map(SysDictItem::getItemText).collect(Collectors.joining(",")); + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + result = sysDictItemList.stream().filter(e -> { + boolean flag = false; + List fieldValueStrList = Arrays.asList(fieldValues.split(",")); + for (String fieldValueStr : fieldValueStrList) { + if(StringUtils.equals(fieldValueStr,e.getItemValue())){ + flag = true; + break; + } + } + return flag; + }).map(SysDictItem::getEnName).collect(Collectors.joining(",")); + } + } + return result; + } + + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/HttpUtils.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/HttpUtils.java new file mode 100644 index 000000000..bb6c2c43a --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/HttpUtils.java @@ -0,0 +1,153 @@ +package com.jero.modules.dummy.util; +import java.io.BufferedReader; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; +import java.net.URL; +import java.net.URLConnection; +import java.util.List; +import java.util.Map; + +public class HttpUtils { + /** + * 向指定URL发送GET方法的请求 + * + * @param url + * 发送请求的URL + * @param param + * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return URL 所代表远程资源的响应结果 + */ + public static String sendGet(String url, String param) { + String result = ""; + BufferedReader in = null; + try { + String urlNameString = url + "?" + param; + URL realUrl = new URL(urlNameString); + // 打开和URL之间的连接 + URLConnection connection = realUrl.openConnection(); + // 设置通用的请求属性 + connection.setRequestProperty("accept", "*/*"); + + connection.setRequestProperty("connection", "Keep-Alive"); + + connection.setRequestProperty("user-agent", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + + connection.setRequestProperty("X-Access-Token",""); + // 建立实际的连接 + connection.connect(); + // 获取所有响应头字段 + Map> map = connection.getHeaderFields(); + // 遍历所有的响应头字段 + for (String key : map.keySet()) { + System.out.println(key + "--->" + map.get(key)); + } +// String fileName = map.get("Content-Disposition").get(0); + // 定义 BufferedReader输入流来读取URL的响应 + OutputStream out = new FileOutputStream("E:\\DeskTop\\获取文件\\"+"fileName"+"xls"); + in = new BufferedReader(new InputStreamReader( + connection.getInputStream(),"UTF-8")); + String line; + while ((line = in.readLine()) != null) { + result += line; + out.write(line.getBytes()); + } + } catch (Exception e) { + System.out.println("发送GET请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输入流 + finally { + try { + if (in != null) { + in.close(); + } + } catch (Exception e2) { + e2.printStackTrace(); + } + } + int a=0; + return result; + } + + /** + * 向指定 URL 发送POST方法的请求 + * + * @param url + * 发送请求的 URL + * @param param + * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return 所代表远程资源的响应结果 + */ + public static String sendPost(String url, String param) { + PrintWriter out = null; + BufferedReader in = null; + String result = ""; + try { + URL realUrl = new URL(url); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("Content-Type","application/json"); + conn.setRequestProperty("user-agent", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + //海外平台调取接口的时候,是否是免登录的,如果不是免登录需要提供一个永久有效的token + conn.setRequestProperty("X-Access-Token","eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NTY3ODI3MjEsInVzZXJuYW1lIjoid2FuZ2NoZW5nanVuIn0.AmJATH62P5G-0ojON0Q2PW-IHuwf1MbSU8N-gYsNUls"); + // 发送POST请求必须设置如下两行 + conn.setDoOutput(true); + conn.setDoInput(true); + // 获取URLConnection对象对应的输出流 + out = new PrintWriter(conn.getOutputStream()); + // 发送请求参数 + out.print(param); + // flush输出流的缓冲 + out.flush(); + // 定义BufferedReader输入流来读取URL的响应 + in = new BufferedReader( + new InputStreamReader(conn.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!"+e); + e.printStackTrace(); + } + //使用finally块来关闭输出流、输入流 + finally{ + try{ + if(out!=null){ + out.close(); + } + if(in!=null){ + in.close(); + } + } + catch(IOException ex){ + ex.printStackTrace(); + } + } + return result; + } + + public static void main(String[] args) { + String fileId = "75c2dbf7a66062b3b816847dc62b18f311"; + String key = "E26A7BEDE06C013A"; + String param = "fileId="+fileId+"&key="+key; + + String res= sendGet("http://localhost:8081/jeecg-boot/sys/common/static/getFileForeign",param); + System.out.println(res); + try { + System.out.println(new String(res.getBytes("GBK"),"UTF-8")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/home/controller/PhoneHomePermissionController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/home/controller/PhoneHomePermissionController.java new file mode 100644 index 000000000..2a291061e --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/home/controller/PhoneHomePermissionController.java @@ -0,0 +1,383 @@ +package com.jero.modules.home.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.api.vo.Result; +import com.jero.common.constant.CommonConstant; +import com.jero.common.constant.enums.CutEnum; +import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.MD5Util; +import com.jero.common.util.oConvertUtils; +import com.jero.modules.ota.entity.OtaManageReceiveNsdp; +import com.jero.modules.ota.service.IOtaManageApplyEOService; +import com.jero.modules.system.entity.SysPermission; +import com.jero.modules.system.enums.SysPermissionEnum; +import com.jero.modules.system.mapper.TodoCenterMapper; +import com.jero.modules.system.service.ISysPermissionService; +import com.jero.modules.system.util.PermissionDataUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 菜单权限表 为了做待办中心消息提醒放过来的 + *

+ * + * @Author scott + * @since 2018-12-21 + */ +@Slf4j +@RestController +@RequestMapping("/phone/home/permission") +public class PhoneHomePermissionController { + + @Autowired + private ISysPermissionService sysPermissionService; + + @Autowired + private TodoCenterMapper todoCenterMapper; + + @Autowired + private IOtaManageApplyEOService otaManageApplyEOService; + + + + /** + * 查询用户拥有的菜单权限和按钮权限 + * + * @return + */ + @RequestMapping(value = "/getUserPermissionByToken", method = RequestMethod.GET) + public Result getUserPermissionByToken(String cut) { + Result result = new Result(); + try { + //直接获取当前用户不适用前端token + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (oConvertUtils.isEmpty(loginUser)) { + return Result.error("请登录系统!"); + } + List metaList = sysPermissionService.queryByUser(loginUser.getUsername()); + //添加首页路由 + //update-begin-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 + if (!PermissionDataUtil.hasIndexPage(metaList)) { + SysPermission indexMenu = sysPermissionService.list(new LambdaQueryWrapper().eq(SysPermission::getName, "首页")).get(0); + metaList.add(0, indexMenu); + } + //update-end-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 + JSONObject json = new JSONObject(); + JSONArray menujsonArray = new JSONArray(); + this.getPermissionJsonArray(menujsonArray, metaList, null, cut); + JSONArray authjsonArray = new JSONArray(); + this.getAuthJsonArray(authjsonArray, metaList); + //查询所有的权限 + LambdaQueryWrapper query = new LambdaQueryWrapper(); + query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0); + query.eq(SysPermission::getMenuType, CommonConstant.MENU_TYPE_2); + //query.eq(SysPermission::getStatus, "1"); + List allAuthList = sysPermissionService.list(query); + JSONArray allauthjsonArray = new JSONArray(); + this.getAllAuthJsonArray(allauthjsonArray, allAuthList); + //路由菜单 + json.put("menu", menujsonArray); + //按钮权限(用户拥有的权限集合) + json.put("auth", authjsonArray); + //全部权限配置集合(按钮权限,访问权限) + json.put("allAuth", allauthjsonArray); + result.setResult(json); + result.success("查询成功"); + } catch (Exception e) { + result.error500("查询失败:" + e.getMessage()); + log.error(e.getMessage(), e); + } + return result; + } + + /** + * 获取菜单JSON数组 + * + * @param jsonArray + * @param metaList + * @param parentJson + */ + private void getPermissionJsonArray(JSONArray jsonArray, List metaList, JSONObject parentJson, String cut) { + for (SysPermission permission : metaList) { + if (permission.getMenuType() == null) { + continue; + } + String tempPid = permission.getParentId(); + JSONObject json = getPermissionJsonObject(permission, cut); + if (json == null) { + continue; + } + if (parentJson == null && oConvertUtils.isEmpty(tempPid)) { + jsonArray.add(json); + if (!permission.isLeaf()) { + getPermissionJsonArray(jsonArray, metaList, json, cut); + } + } else if (parentJson != null && oConvertUtils.isNotEmpty(tempPid) && tempPid.equals(parentJson.getString("id"))) { + // 类型( 0:一级菜单 1:子菜单 2:按钮 ) + if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_2)) { + JSONObject metaJson = parentJson.getJSONObject("meta"); + if (metaJson.containsKey("permissionList")) { + metaJson.getJSONArray("permissionList").add(json); + } else { + JSONArray permissionList = new JSONArray(); + permissionList.add(json); + metaJson.put("permissionList", permissionList); + } + // 类型( 0:一级菜单 1:子菜单 2:按钮 ) + } else if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_1) || permission.getMenuType().equals(CommonConstant.MENU_TYPE_0)) { + if (parentJson.containsKey("children")) { + parentJson.getJSONArray("children").add(json); + } else { + JSONArray children = new JSONArray(); + children.add(json); + parentJson.put("children", children); + } + + if (!permission.isLeaf()) { + getPermissionJsonArray(jsonArray, metaList, json, cut); + } + } + } + + } + } + + + /** + * 获取权限JSON数组 + * + * @param jsonArray + * @param metaList + */ + private void getAuthJsonArray(JSONArray jsonArray, List metaList) { + for (SysPermission permission : metaList) { + if (permission.getMenuType() == null) { + continue; + } + JSONObject json = null; + if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_2) && CommonConstant.STATUS_1.equals(permission.getStatus())) { + json = new JSONObject(); + json.put("action", permission.getPerms()); + json.put("type", permission.getPermsType()); + json.put("describe", permission.getName()); + jsonArray.add(json); + } + } + } + + + /** + * 获取权限JSON数组 + * + * @param jsonArray + * @param allList + */ + private void getAllAuthJsonArray(JSONArray jsonArray, List allList) { + JSONObject json = null; + for (SysPermission permission : allList) { + json = new JSONObject(); + json.put("action", permission.getPerms()); + json.put("status", permission.getStatus()); + //1显示2禁用 + json.put("type", permission.getPermsType()); + json.put("describe", permission.getName()); + jsonArray.add(json); + } + } + + + /** + * 根据菜单配置生成路由json + * + * @param permission + * @return + */ + private JSONObject getPermissionJsonObject(SysPermission permission, String cut) { + JSONObject json = new JSONObject(); + // 类型(0:一级菜单 1:子菜单 2:按钮) + if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_2)) { + //json.put("action", permission.getPerms()); + //json.put("type", permission.getPermsType()); + //json.put("describe", permission.getName()); + return null; + } else if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_0) || permission.getMenuType().equals(CommonConstant.MENU_TYPE_1)) { + json.put("id", permission.getId()); + if (permission.isRoute()) { + json.put("route", "1");// 表示生成路由 + } else { + json.put("route", "0");// 表示不生成路由 + } + + if (isWWWHttpUrl(permission.getUrl())) { + json.put("path", MD5Util.MD5Encode(permission.getUrl(), "utf-8")); + } else { + json.put("path", permission.getUrl()); + } + + // 重要规则:路由name (通过URL生成路由name,路由name供前端开发,页面跳转使用) + if (oConvertUtils.isNotEmpty(permission.getComponentName())) { + json.put("name", permission.getComponentName()); + } else { + json.put("name", urlToRouteName(permission.getUrl())); + } + + // 是否隐藏路由,默认都是显示的 + if (permission.isHidden()) { + json.put("hidden", true); + } + // 聚合路由 + if (permission.isAlwaysShow()) { + json.put("alwaysShow", true); + } + json.put("component", permission.getComponent()); + JSONObject meta = new JSONObject(); + // 由用户设置是否缓存页面 用布尔值 + if (permission.isKeepAlive()) { + meta.put("keepAlive", true); + } else { + meta.put("keepAlive", false); + } + + /*update_begin author:wuxianquan date:20190908 for:往菜单信息里添加外链菜单打开方式 */ + //外链菜单打开方式 + if (permission.isInternalOrExternal()) { + meta.put("internalOrExternal", true); + } else { + meta.put("internalOrExternal", false); + } + /* update_end author:wuxianquan date:20190908 for: 往菜单信息里添加外链菜单打开方式*/ + + if (CutEnum.EN.getValue().equals(cut)) { + meta.put("title", permission.getMenuEn()); + } else { + meta.put("title", permission.getName()); + } + + //update-begin--Author:scott Date:20201015 for:路由缓存问题,关闭了tab页时再打开就不刷新 #842 + String component = permission.getComponent(); + if (oConvertUtils.isNotEmpty(permission.getComponentName()) || oConvertUtils.isNotEmpty(component)) { + meta.put("componentName", oConvertUtils.getString(permission.getComponentName(), component.substring(component.lastIndexOf("/") + 1))); + } + //update-end--Author:scott Date:20201015 for:路由缓存问题,关闭了tab页时再打开就不刷新 #842 + + if (oConvertUtils.isEmpty(permission.getParentId())) { + // 一级菜单跳转地址 + json.put("redirect", permission.getRedirect()); + if (oConvertUtils.isNotEmpty(permission.getIcon())) { + meta.put("icon", permission.getIcon()); + } + } else { + if (oConvertUtils.isNotEmpty(permission.getIcon())) { + meta.put("icon", permission.getIcon()); + } + } + if (isWWWHttpUrl(permission.getUrl())) { + meta.put("url", permission.getUrl()); + } + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + Map params = new HashMap<>(); + params.put("currentUserId", currentUser.getId()); + + List flowTypeList = new ArrayList<>(); + //项目法规任务 + if (StringUtils.equals(permission.getId(), SysPermissionEnum.PROJECT_REGULATION_TASKS.getId())) { + flowTypeList.add("1"); + flowTypeList.add("2"); + flowTypeList.add("3"); + flowTypeList.add("4"); + flowTypeList.add("10"); + flowTypeList.add("21"); + params.put("flowTypeList", flowTypeList); + //存在待办任务标识,true为有 + boolean existTaskFlag = false; + int result = todoCenterMapper.todoCenterTaskCount(params); + if (result > 0) { + existTaskFlag = true; + } + //查询当前登录用户是否有项目法规任务 + meta.put("existTask", existTaskFlag); + } + //法规评估任务 + if (StringUtils.equals(permission.getId(), SysPermissionEnum.REGULATORY_ASSESSMENT_TASKS.getId())) { + flowTypeList.add("5"); + flowTypeList.add("6"); + params.put("flowTypeList", flowTypeList); + int result = todoCenterMapper.todoCenterTaskCount(params); + boolean existTaskFlag = false; + if (result > 0) { + existTaskFlag = true; + } + meta.put("existTask", existTaskFlag); + } + //项目参数任务 + if (StringUtils.equals(permission.getId(), SysPermissionEnum.PROJECT_PARAMETER_TASKS.getId())) { + boolean existTaskFlag = false; + existTaskFlag = sysPermissionService.judgeToDo(); + meta.put("existTask", existTaskFlag); + } + //OTA任务 + if (StringUtils.equals(permission.getId(), SysPermissionEnum.OTA_TASKS.getId())) { + boolean existTaskFlag = false; + List otaList = otaManageApplyEOService.getOtaTodoList(new OtaManageReceiveNsdp()); + if(!otaList.isEmpty()){ + existTaskFlag = true; + } + meta.put("existTask", existTaskFlag); + } + + json.put("meta", meta); + } + + return json; + } + + /** + * 判断是否外网URL 例如: http://localhost:8080/jero-boot/swagger-ui.html#/ 支持特殊格式: {{ + * window._CONFIG['domianURL'] }}/druid/ {{ JS代码片段 }},前台解析会自动执行JS代码片段 + * + * @return + */ + private boolean isWWWHttpUrl(String url) { + if (url != null && (url.startsWith("http://") || url.startsWith("https://") || url.startsWith("{{"))) { + return true; + } + return false; + } + + /** + * 通过URL生成路由name(去掉URL前缀斜杠,替换内容中的斜杠‘/’为-) 举例: URL = /isystem/role RouteName = + * isystem-role + * + * @return + */ + private String urlToRouteName(String url) { + if (oConvertUtils.isNotEmpty(url)) { + if (url.startsWith("/")) { + url = url.substring(1); + } + url = url.replace("/", "-"); + + // 特殊标记 + url = url.replace(":", "@"); + return url; + } else { + return null; + } + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/enums/GatherResultEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/enums/GatherResultEnum.java index ef0721ab5..af48b5c33 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/enums/GatherResultEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/enums/GatherResultEnum.java @@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils; */ public enum GatherResultEnum { - UNDERWAY("进行中","Underway","Underway"), + UNDERWAY("进行中","Underway","In progress"), COMPLETED("已完成","Completed","Completed"), ; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/controller/MarketListVersionUpdateLogEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/controller/MarketListVersionUpdateLogEOController.java index 5b309a684..c525115dd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/controller/MarketListVersionUpdateLogEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/controller/MarketListVersionUpdateLogEOController.java @@ -1,25 +1,33 @@ package com.jero.modules.log.controller; -import java.util.Arrays; -import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.query.QueryGenerator; import com.jero.modules.log.entity.MarketListVersionUpdateLogEO; import com.jero.modules.log.service.IMarketListVersionUpdateLogEOService; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.extern.slf4j.Slf4j; -import com.jero.common.system.base.controller.JeroController; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import com.jero.common.aspect.annotation.AutoLog; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; /** @@ -35,7 +43,7 @@ import com.jero.common.aspect.annotation.AutoLog; public class MarketListVersionUpdateLogEOController extends JeroController { @Autowired private IMarketListVersionUpdateLogEOService marketListVersionUpdateLogEOService; - + /** * 分页列表查询 * @@ -53,9 +61,10 @@ public class MarketListVersionUpdateLogEOController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(marketListVersionUpdateLogEO, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage pageList = marketListVersionUpdateLogEOService.page(page, queryWrapper); - return Result.OK(pageList); + IPage pageInfo = marketListVersionUpdateLogEOService.getPageInfo(queryWrapper, pageNo, pageSize); +// Page page = new Page(pageNo, pageSize); +// IPage pageList = marketListVersionUpdateLogEOService.page(page, queryWrapper); + return Result.OK(pageInfo); } /** diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/entity/MarketListVersionUpdateLogEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/entity/MarketListVersionUpdateLogEO.java index 421932ae8..cb531db99 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/entity/MarketListVersionUpdateLogEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/entity/MarketListVersionUpdateLogEO.java @@ -1,20 +1,21 @@ package com.jero.modules.log.entity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + import java.io.Serializable; import java.util.Date; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - /** * @Description: 市场清单版本更新log表 * @Author: jero-boot @@ -78,4 +79,13 @@ public class MarketListVersionUpdateLogEO implements Serializable { @ApiModelProperty(value = "清单id") private String listId; + @TableField(exist = false) + @ApiModelProperty(value = "清单名称") + private String name; + + @TableField(exist = false) + @ApiModelProperty(value = "适用说明") + private String useExplain; + + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/IMarketListVersionUpdateLogEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/IMarketListVersionUpdateLogEOService.java index cd43030f5..c505c930c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/IMarketListVersionUpdateLogEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/IMarketListVersionUpdateLogEOService.java @@ -1,7 +1,10 @@ package com.jero.modules.log.service; -import com.jero.modules.log.entity.MarketListVersionUpdateLogEO; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.log.entity.MarketListVersionUpdateLogEO; + import java.util.List; /** @@ -58,4 +61,6 @@ public interface IMarketListVersionUpdateLogEOService extends IService queryList(); + + IPage getPageInfo(QueryWrapper queryWrapper,Integer pageNo,Integer pageSize); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java index d11b33a94..471b6b0f2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java @@ -1,29 +1,42 @@ package com.jero.modules.log.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.util.PageUtil; +import com.jero.modules.dummy.entity.DummyInventoryBaseEO; +import com.jero.modules.dummy.service.impl.DummyInventoryBaseEOServiceImpl; import com.jero.modules.log.entity.MarketListVersionUpdateLogEO; import com.jero.modules.log.mapper.MarketListVersionUpdateLogEOMapper; import com.jero.modules.log.service.IMarketListVersionUpdateLogEOService; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; + import java.util.Date; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; +import java.util.stream.Collectors; /** * @Description: 市场清单版本更新log表 * @Author: jero-boot - * @Date: 2023-04-24 + * @Date: 2023-04-24 * @Version: V1.0 */ @Service public class MarketListVersionUpdateLogEOServiceImpl extends ServiceImpl implements IMarketListVersionUpdateLogEOService { - /** - * 保存 - * - * @param marketListVersionUpdateLogEO - * @return - */ - @Override + @Autowired + private DummyInventoryBaseEOServiceImpl dummyInventoryBaseEOService; + + /** + * 保存 + * + * @param marketListVersionUpdateLogEO + * @return + */ + @Override public void add(MarketListVersionUpdateLogEO marketListVersionUpdateLogEO) { Date now = new Date(); marketListVersionUpdateLogEO.setCreateTime(now); @@ -31,59 +44,90 @@ public class MarketListVersionUpdateLogEOServiceImpl extends ServiceImpl ids) { removeByIds(ids); } - /** - * 通过id查询 - * - * @param id - * @return - */ - @Override + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override public MarketListVersionUpdateLogEO queryById(String id) { return getById(id); } /** - * 列表查询 - * - * @return - */ - @Override + * 列表查询 + * + * @return + */ + @Override public List queryList() { return list(); } + + @Override + public IPage getPageInfo(QueryWrapper queryWrapper, + Integer pageNo, + Integer pageSize) { + queryWrapper.lambda().orderByAsc(MarketListVersionUpdateLogEO::getCreateTime); + List marketListVersionUpdateLogEOList = this.list(queryWrapper); + if (ObjectUtils.isNotEmpty(marketListVersionUpdateLogEOList) + && marketListVersionUpdateLogEOList.size() == 1) { + return new Page<>(); + } + if (ObjectUtils.isNotEmpty(marketListVersionUpdateLogEOList) + && marketListVersionUpdateLogEOList.size() > 1) { + marketListVersionUpdateLogEOList.remove(marketListVersionUpdateLogEOList.size() - 1); + } + IPage pageList = PageUtil.getPages(pageNo, pageSize, marketListVersionUpdateLogEOList); + if (ObjectUtils.isNotEmpty(pageList.getRecords())) { + List idList = pageList.getRecords().stream().map(MarketListVersionUpdateLogEO::getListId).distinct().collect(Collectors.toList()); + List dummyInventoryBaseEOList = dummyInventoryBaseEOService.listByIds(idList); + + for (MarketListVersionUpdateLogEO record : pageList.getRecords()) { + List baseEOList = dummyInventoryBaseEOList.stream() + .filter(e -> e.getId().equals(record.getListId())).collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(baseEOList)){ + record.setName(baseEOList.get(0).getName()); + record.setUseExplain(baseEOList.get(0).getUseExplain()); + } + } + } + return pageList; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaBaSjSjyxpg.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaBaSjSjyxpg.java index cb092367c..97b64eafb 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaBaSjSjyxpg.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/entity/OtaBaSjSjyxpg.java @@ -126,6 +126,22 @@ public class OtaBaSjSjyxpg implements Serializable { @ApiModelProperty(value = "升级活动是否提供用户确认选项") private java.lang.Integer yhqr; + /**升级活动是否提供用户确认选项-下拉框*/ + @Excel(name = "升级活动是否提供用户确认选项-下拉框", width = 15) + @ApiModelProperty(value = "升级活动是否提供用户确认选项-下拉框") + @Dict(dicCode = "_sheng1_ji2_ying3_xiang3_ping2_gu1_-_sheng1_ji2_que4_ren4") + private java.lang.String yhqrXlk; + + /**升级活动是否提供用户确认选项-其他文本*/ + @Excel(name = "升级活动是否提供用户确认选项-其他文本", width = 15) + @ApiModelProperty(value = "升级活动是否提供用户确认选项-其他文本") + private java.lang.String yhqrQt; + + /**升级活动是否提供用户确认选项-否文本*/ + @Excel(name = "升级活动是否提供用户确认选项-否文本", width = 15) + @ApiModelProperty(value = "升级活动是否提供用户确认选项-否文本") + private java.lang.String yhqrNo; + /**升级包测试*/ @Excel(name = "升级包测试", width = 15) @ApiModelProperty(value = "升级包测试") diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxListServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxListServiceImpl.java index 0b3e47927..1f4b3fe3b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxListServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxListServiceImpl.java @@ -179,7 +179,7 @@ public class OtaBaCxListServiceImpl extends ServiceImpl vehicleCollect = vehicleSet.stream().filter(e -> e.contains(otaManageApplyEO.getAppliedVehicleProject())).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(vehicleCollect)){ + continue; + } } if (StringUtils.isNotEmpty(otaManageApplyEO.getMarket()) && !marketSet.contains(otaManageApplyEO.getMarket())) { continue; @@ -995,8 +999,10 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl carList = new ArrayList<>(carSet); + Collections.sort(carList); result.put("plannedBpLaunchBatchList", plannedBpLaunchBatchList); - result.put("carSet", carSet); + result.put("carSet", carList); result.put("marketSet", marketSet); } return result; @@ -1032,7 +1038,9 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl carList = new ArrayList<>(vehicleSet); + Collections.sort(carList); + resList.addAll(carList); return resList; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java index 6d0b819b8..9f6459510 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java @@ -2611,181 +2611,185 @@ public class PlatformProjectLawsInventoryEOServiceImpl extends ServiceImpl projectRelatedPersonnelTempList = projectRelatedPersonnels.stream().filter(relatedPersonnel -> { - boolean flag = false; - for (String duty : dutyTerritory.split(",")) { - if (StringUtils.equals(duty, relatedPersonnel.getDutyTerritory())) { - flag = true; + if ((projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + || projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue())) + && (projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + || projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue()))) { + String dutyTerritory = projectLawsInventoryEO.getDutyTerritory(); + if (StringUtils.isNotEmpty(dutyTerritory)) { + List projectRelatedPersonnelTempList = projectRelatedPersonnels.stream().filter(relatedPersonnel -> { + boolean flag = false; + for (String duty : dutyTerritory.split(",")) { + if (StringUtils.equals(duty, relatedPersonnel.getDutyTerritory())) { + flag = true; + } } - } - return flag; - }).collect(Collectors.toList()); + return flag; + }).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(projectRelatedPersonnelTempList)) { + if (CollectionUtils.isNotEmpty(projectRelatedPersonnelTempList)) { - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - //法规工程师 - if (StringUtils.isEmpty(projectLawsInventoryEO.getRegulationOwnerId())) { - String userId = ToGetAUserId(ProjectRoleEnum.REGULATI_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setRegulationOwnerId(userId); - } - } else { - String userId = ToGetAUserId(ProjectRoleEnum.REGULATI_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getRegulationOwnerId()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setRegulationOwnerId(userId); - } else { - updateWrapper.set(ProjectLawsInventoryEO::getRegulationOwnerId, null); - } - } - - //认证工程师 - if (StringUtils.isEmpty(projectLawsInventoryEO.getHomologationEngineerId())) { - String userId = ToGetAUserId(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setHomologationEngineerId(userId); - } - } else { - String userId = ToGetAUserId(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getHomologationEngineerId()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setHomologationEngineerId(userId); - } else { - updateWrapper.set(ProjectLawsInventoryEO::getHomologationEngineerId, null); - } - } - - //项目接口人 - if (StringUtils.isEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) { - String userId = ToGetAUserId(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setEngineeringInterfacePerson(userId); - } - } else { - String userId = ToGetAUserId(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getEngineeringInterfacePerson()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setEngineeringInterfacePerson(userId); - } else { - updateWrapper.set(ProjectLawsInventoryEO::getEngineeringInterfacePerson, null); - } - } - - //设计符合性确认 - //发起人角色 - String designInitiator = projectLawsInventoryEO.getDesignInitiator(); - if (StringUtils.isNotEmpty(designInitiator)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getDesignInitiatorId())) { - String userId = ToGetAUserId(designInitiator, projectRelatedPersonnelTempList, studioEngineer); + //法规工程师 + if (StringUtils.isEmpty(projectLawsInventoryEO.getRegulationOwnerId())) { + String userId = ToGetAUserId(ProjectRoleEnum.REGULATI_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setDesignInitiatorId(userId); + projectLawsInventoryEO.setRegulationOwnerId(userId); } } else { - String userId = ToGetAUserId(designInitiator, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getDesignInitiatorId()); + String userId = ToGetAUserId(ProjectRoleEnum.REGULATI_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getRegulationOwnerId()); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setDesignInitiatorId(userId); + projectLawsInventoryEO.setRegulationOwnerId(userId); } else { - updateWrapper.set(ProjectLawsInventoryEO::getDesignInitiatorId, null); + updateWrapper.set(ProjectLawsInventoryEO::getRegulationOwnerId, null); } } - } - //责任人角色 - String designDuty = projectLawsInventoryEO.getDesignDuty(); - if (StringUtils.isNotEmpty(designDuty)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getDesignDutyId())) { - String userId = ToGetAUserId(designDuty, projectRelatedPersonnelTempList, studioEngineer); + //认证工程师 + if (StringUtils.isEmpty(projectLawsInventoryEO.getHomologationEngineerId())) { + String userId = ToGetAUserId(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setDesignDutyId(userId); + projectLawsInventoryEO.setHomologationEngineerId(userId); } } else { - String userId = ToGetAUserId(designDuty, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getDesignDutyId()); + String userId = ToGetAUserId(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getHomologationEngineerId()); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setDesignDutyId(userId); + projectLawsInventoryEO.setHomologationEngineerId(userId); } else { - updateWrapper.set(ProjectLawsInventoryEO::getDesignDutyId, null); + updateWrapper.set(ProjectLawsInventoryEO::getHomologationEngineerId, null); } } - } - - //prehomo确认 - //发起人角色 - String prehomoInitiator = projectLawsInventoryEO.getPrehomoInitiator(); - if (StringUtils.isNotEmpty(prehomoInitiator)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getPrehomoInitiatorId())) { - String userId = ToGetAUserId(prehomoInitiator, projectRelatedPersonnelTempList, studioEngineer); + //项目接口人 + if (StringUtils.isEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) { + String userId = ToGetAUserId(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), projectRelatedPersonnelTempList, studioEngineer); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setPrehomoInitiatorId(userId); + projectLawsInventoryEO.setEngineeringInterfacePerson(userId); } } else { - String userId = ToGetAUserId(prehomoInitiator, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getPrehomoInitiatorId()); + String userId = ToGetAUserId(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getEngineeringInterfacePerson()); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setPrehomoInitiatorId(userId); + projectLawsInventoryEO.setEngineeringInterfacePerson(userId); } else { - updateWrapper.set(ProjectLawsInventoryEO::getPrehomoInitiatorId, null); + updateWrapper.set(ProjectLawsInventoryEO::getEngineeringInterfacePerson, null); } } - } - //责任人角色 - String prehomoDuty = projectLawsInventoryEO.getPrehomoDuty(); - if (StringUtils.isNotEmpty(prehomoDuty)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getPrehomoDutyId())) { - String userId = ToGetAUserId(prehomoDuty, projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setPrehomoDutyId(userId); - } - } else { - String userId = ToGetAUserId(prehomoDuty, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getPrehomoDutyId()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setPrehomoDutyId(userId); + //设计符合性确认 + //发起人角色 + String designInitiator = projectLawsInventoryEO.getDesignInitiator(); + if (StringUtils.isNotEmpty(designInitiator)) { + if (StringUtils.isEmpty(projectLawsInventoryEO.getDesignInitiatorId())) { + String userId = ToGetAUserId(designInitiator, projectRelatedPersonnelTempList, studioEngineer); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setDesignInitiatorId(userId); + } } else { - updateWrapper.set(ProjectLawsInventoryEO::getPrehomoDutyId, null); + String userId = ToGetAUserId(designInitiator, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getDesignInitiatorId()); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setDesignInitiatorId(userId); + } else { + updateWrapper.set(ProjectLawsInventoryEO::getDesignInitiatorId, null); + } } } - } - //验证符合性确认 - //发起人角色 - String verifyInitiator = projectLawsInventoryEO.getVerifyInitiator(); - if (StringUtils.isNotEmpty(verifyInitiator)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getVerifyInitiatorId())) { - String userId = ToGetAUserId(verifyInitiator, projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setVerifyInitiatorId(userId); - } - } else { - String userId = ToGetAUserId(verifyInitiator, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getVerifyInitiatorId()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setVerifyInitiatorId(userId); + //责任人角色 + String designDuty = projectLawsInventoryEO.getDesignDuty(); + if (StringUtils.isNotEmpty(designDuty)) { + if (StringUtils.isEmpty(projectLawsInventoryEO.getDesignDutyId())) { + String userId = ToGetAUserId(designDuty, projectRelatedPersonnelTempList, studioEngineer); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setDesignDutyId(userId); + } } else { - updateWrapper.set(ProjectLawsInventoryEO::getVerifyInitiatorId, null); + String userId = ToGetAUserId(designDuty, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getDesignDutyId()); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setDesignDutyId(userId); + } else { + updateWrapper.set(ProjectLawsInventoryEO::getDesignDutyId, null); + } } } - } - //责任人角色 - String verifyDuty = projectLawsInventoryEO.getVerifyDuty(); - if (StringUtils.isNotEmpty(verifyDuty)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getVerifyDutyId())) { - String userId = ToGetAUserId(verifyDuty, projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setVerifyDutyId(userId); - } - } else { - String userId = ToGetAUserId(verifyDuty, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getVerifyDutyId()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setVerifyDutyId(userId); + + //prehomo确认 + //发起人角色 + String prehomoInitiator = projectLawsInventoryEO.getPrehomoInitiator(); + if (StringUtils.isNotEmpty(prehomoInitiator)) { + if (StringUtils.isEmpty(projectLawsInventoryEO.getPrehomoInitiatorId())) { + String userId = ToGetAUserId(prehomoInitiator, projectRelatedPersonnelTempList, studioEngineer); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setPrehomoInitiatorId(userId); + } } else { - updateWrapper.set(ProjectLawsInventoryEO::getVerifyDutyId, null); + String userId = ToGetAUserId(prehomoInitiator, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getPrehomoInitiatorId()); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setPrehomoInitiatorId(userId); + } else { + updateWrapper.set(ProjectLawsInventoryEO::getPrehomoInitiatorId, null); + } } } + + //责任人角色 + String prehomoDuty = projectLawsInventoryEO.getPrehomoDuty(); + if (StringUtils.isNotEmpty(prehomoDuty)) { + if (StringUtils.isEmpty(projectLawsInventoryEO.getPrehomoDutyId())) { + String userId = ToGetAUserId(prehomoDuty, projectRelatedPersonnelTempList, studioEngineer); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setPrehomoDutyId(userId); + } + } else { + String userId = ToGetAUserId(prehomoDuty, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getPrehomoDutyId()); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setPrehomoDutyId(userId); + } else { + updateWrapper.set(ProjectLawsInventoryEO::getPrehomoDutyId, null); + } + } + } + + //验证符合性确认 + //发起人角色 + String verifyInitiator = projectLawsInventoryEO.getVerifyInitiator(); + if (StringUtils.isNotEmpty(verifyInitiator)) { + if (StringUtils.isEmpty(projectLawsInventoryEO.getVerifyInitiatorId())) { + String userId = ToGetAUserId(verifyInitiator, projectRelatedPersonnelTempList, studioEngineer); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setVerifyInitiatorId(userId); + } + } else { + String userId = ToGetAUserId(verifyInitiator, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getVerifyInitiatorId()); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setVerifyInitiatorId(userId); + } else { + updateWrapper.set(ProjectLawsInventoryEO::getVerifyInitiatorId, null); + } + } + } + + //责任人角色 + String verifyDuty = projectLawsInventoryEO.getVerifyDuty(); + if (StringUtils.isNotEmpty(verifyDuty)) { + if (StringUtils.isEmpty(projectLawsInventoryEO.getVerifyDutyId())) { + String userId = ToGetAUserId(verifyDuty, projectRelatedPersonnelTempList, studioEngineer); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setVerifyDutyId(userId); + } + } else { + String userId = ToGetAUserId(verifyDuty, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getVerifyDutyId()); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setVerifyDutyId(userId); + } else { + updateWrapper.set(ProjectLawsInventoryEO::getVerifyDutyId, null); + } + } + } + updateWrapper.eq(ProjectLawsInventoryEO::getId, projectLawsInventoryEO.getId()); + super.update(projectLawsInventoryEO, updateWrapper); } - updateWrapper.eq(ProjectLawsInventoryEO::getId, projectLawsInventoryEO.getId()); - super.update(projectLawsInventoryEO, updateWrapper); } } //this.baseMapper.updateById(projectLawsInventoryEO); @@ -3187,7 +3191,7 @@ public class PlatformProjectLawsInventoryEOServiceImpl extends ServiceImpl queryPageProblem(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + String serialNumber, + String cut) { + List pageInfo = iNcrTrackService.queryPageProblem(serialNumber,cut); + //表头排序 +// orderHeader(ncrTrackVO, pageInfo); + Page pages = PageUtil.getPages(pageNo,pageSize,pageInfo); + return Result.OK(cut,pages); + } + private void orderHeader(NcrTrackVO ncrTrackVO, List pageInfo) { String orderBy = ncrTrackVO.getOrderBy(); String orderByField = ncrTrackVO.getOrderByField(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java index b630cae1a..a7601051c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java @@ -386,4 +386,16 @@ public class ProjectCertificationInventoryEOController extends JeroController matchRelevantPeople(@RequestBody Map params){ return this.projectCertificationInventoryEOService.matchRelevantPeople(params); } + + @AutoLog(value = "认证清单关联按平台件") + @ApiOperation(value="认证清单关联按平台件", notes="认证清单关联按平台件") + @GetMapping(value = "/connectPlatform") + public Result connectPlatform(String id,String cut) { + List projectCertificationInventoryEOList = projectCertificationInventoryEOService.connectPlatform(id,cut); + if(projectCertificationInventoryEOList==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(projectCertificationInventoryEOList); + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectCertificationInventoryEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectCertificationInventoryEO.java index 816d2d002..4e2469f9a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectCertificationInventoryEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectCertificationInventoryEO.java @@ -268,4 +268,10 @@ public class ProjectCertificationInventoryEO implements Serializable { @ApiModelProperty(value = "关联平台件数据") @TableField(exist = false) private List projectCertificationInventoryEOS; + + @TableField(exist = false) + private String projectName; + + @ApiModelProperty(value = "平台件-认证清单id") + private String platformCertificationInventoryId; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationInventoryFlowStatusEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationInventoryFlowStatusEnum.java index ec640d4ef..331276984 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationInventoryFlowStatusEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationInventoryFlowStatusEnum.java @@ -26,9 +26,9 @@ public enum CertificationInventoryFlowStatusEnum { LIST_TO_BE_RELEASED("清单待发布","List to be released","List to be released"), LIST_TO_BE_CHECKED("任务待发起","Task to be initiated","List to be checked"), - CERTIFICATION_RETURNED("认证退回","Certification returned","Certification returned"), + CERTIFICATION_RETURNED("认证退回","Homo rejects","Certification returned"), TASK_TO_BE_CONFIRMED("任务待确认","Task to be confirmed","Task to be confirmed"), - REFUSAL_OF_RESPONSIBLE_PERSON("责任人拒绝","Refusal of responsible person","Refusal of responsible person"), + REFUSAL_OF_RESPONSIBLE_PERSON("责任人拒绝","Rejected by the responsible person","Refusal of responsible person"), ACCEPTED_OF_RESPONSIBLE_PERSON("责任人接受","Accepted of responsible person","Accepted of responsible person"), RESULTS_TO_BE_SUBMITTED("结果待提交","Results to be submitted","Results to be submitted"), //ENGINEER_RETURN("工程师退回","Engineer return","Engineer return"), diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/FlowStateDesignEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/FlowStateDesignEnum.java new file mode 100644 index 000000000..7db45a64c --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/FlowStateDesignEnum.java @@ -0,0 +1,64 @@ +package com.jero.modules.project.enums; + +import java.util.LinkedList; +import java.util.List; + +/** + * 设计符合性确认流程状态顺序枚举类 + */ +public enum FlowStateDesignEnum { + LIST_TO_BE_CHECKED("任务待发起","Task to be initiated","List to be checked"), + TASK_TO_BE_CONFIRMED("任务待确认","Task to be confirmed","Task to be confirmed"), + REFUSAL_OF_RESPONSIBLE_PERSON("责任人拒绝","Rejected by the responsible person","Duty Person Rejected"), + RESULTS_TO_BE_SUBMITTED("结果待提交","Results to be submitted","Results to be submitted"), + RESULTS_TO_BE_REVIEWED("结果待审查","Results to be reviewed","Results to be reviewed"), + TO_TRACK("待追踪","To be tracked","To be tracked"), + CONFORMITY("符合","Compliance","Compliance"), + INCONFORMITY("不符合","Non-Compliance","Non-Compliance"), + UNINVOLVED("不涉及","NA","NA"), + + ; + + String nameCn; + String nameEn; + String value; + + private FlowStateDesignEnum(String nameCn, String nameEn, String value) { + this.nameCn = nameCn; + this.nameEn = nameEn; + this.value = value; + } + + public String getNameCn() { + return nameCn; + } + + public void setNameCn(String nameCn) { + this.nameCn = nameCn; + } + + public String getNameEn() { + return nameEn; + } + + public void setNameEn(String nameEn) { + this.nameEn = nameEn; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static List getValueInfo() { + List result = new LinkedList<>(); + FlowStateDesignEnum[] values = values(); + for (FlowStateDesignEnum flowStateEnum : values) { + result.add(flowStateEnum.getValue()); + } + return result; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/FlowStateEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/FlowStateEnum.java index a35b3aa1b..8d32a6e80 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/FlowStateEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/FlowStateEnum.java @@ -14,7 +14,7 @@ public enum FlowStateEnum { LIST_TO_BE_RELEASED("清单待发布","List to be released","List to be released"), LIST_TO_BE_CHECKED("任务待发起","Task to be initiated","List to be checked"), REGULATORY_ENGINEER_RETURNS("法规退回","Regulatory engineer returns","Regulatory engineer returns"), - REFUSAL_OF_RESPONSIBLE_PERSON("责任人拒绝","Refusal of responsible person","Duty Person Rejected"), + REFUSAL_OF_RESPONSIBLE_PERSON("责任人拒绝","Rejected by the responsible person","Duty Person Rejected"), TASK_TO_BE_CONFIRMED("任务待确认","Task to be confirmed","Task to be confirmed"), RESULTS_TO_BE_SUBMITTED("结果待提交","Results to be submitted","Results to be submitted"), RESULTS_TO_BE_REVIEWED("结果待审查","Results to be reviewed","Results to be reviewed"), diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java index 24bfda6e3..e126952f1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectRoleEnum.java @@ -8,9 +8,9 @@ import com.jero.modules.system.util.StringUtils; */ public enum ProjectRoleEnum { STUDIO_ENGINEER("studio工程师","0","R&H Studio"), - REGULATI_ENGINEER("法规工程师","1","Regulatory Engineer"), - HOMOLOGATION_ENGINEER("认证工程师","2","Certification Engineer"), - ENGINEERING_INTERFACE_PERSON("工程接口人","3","Engineering interface person"), + REGULATI_ENGINEER("法规工程师","1","Regulation Engineer"), + HOMOLOGATION_ENGINEER("认证工程师","2","Homo Engineer"), + ENGINEERING_INTERFACE_PERSON("工程接口人","3","Eng. Interface"), REGULATI_AND_HOMOLOGATION_ENGINEER("法规与认证工程师","4","Regulatory and certification engineer"), DESIGNINITIATOR("设计符合性确认-发起人","5",""), DESIGNDUTY("设计符合性确认-责任人","6",""), diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml index 5419e9765..661bce3cb 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml @@ -55,7 +55,8 @@ plb.power, plb.producer, sdi.item_text brandText, - sdi.en_name brandTextEn + sdi.en_name brandTextEn, + plb.platform_type from project_library_base as plb left join project_name_info as pni on plb.project_name_id=pni.id left join sys_user as studiouser on plb.studio_engineer=studiouser.id diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/INcrTrackService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/INcrTrackService.java index 4b476cc2d..2671ea93c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/INcrTrackService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/INcrTrackService.java @@ -2,6 +2,7 @@ package com.jero.modules.project.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.project.entity.ProblemManagementEO; import com.jero.modules.project.vo.NcrTrackVO; import javax.servlet.http.HttpServletRequest; @@ -17,6 +18,8 @@ public interface INcrTrackService extends IService { List getPageInfo(NcrTrackVO ncrTrackVO); + List queryPageProblem(String serialNumber, String cut); + Page getPages(Integer currentPage, Integer pageSize, List list); void exportData(HttpServletResponse response, diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java index f205301bb..fa799af82 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java @@ -345,4 +345,6 @@ public interface IProjectCertificationInventoryEOService extends IService params); + + List connectPlatform(String id,String cut); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java index c25c47fb8..0819dd09f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java @@ -388,6 +388,10 @@ public class NcrTrackServiceImpl extends ServiceImpl return trackVOList; } } + public List queryPageProblem(String serialNumber,String cut) { + List problemManagement = getProblemManagement(serialNumber, cut); + return problemManagement; + } private void heartSort(NcrTrackVO ncrTrackVO, List trackVOList) { Collator comparator = Collator.getInstance(Locale.CHINESE); @@ -727,6 +731,9 @@ public class NcrTrackServiceImpl extends ServiceImpl problemManagementEO.setProjectName(StringUtils.join(projectNameList,",")); } } + if(StringUtils.isEmpty(problemManagementEO.getProjectName()) && StringUtils.isNotEmpty(problemManagementEO.getProjectId())){ + problemManagementEO.setProjectName(problemManagementEO.getProjectId()); + } //相关文件连接 if(StringUtils.isNotBlank(problemManagementEO.getFileLink())){ @@ -779,6 +786,183 @@ public class NcrTrackServiceImpl extends ServiceImpl } return ncrTrackVOList; } + private List getProblemManagement(String serialNumber,String cut) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(BussDocumentLibraryEO::getSerialNumber, serialNumber); + List bussDocumentLibraryEOS = bussDocumentLibraryEOService.list(queryWrapper); + if(ObjectUtils.isEmpty(bussDocumentLibraryEOS)){ + return new ArrayList<>(); + } + //wen4_ti2_lei4_xing2 问题类型 + List problemTypeList = sysDictService.queryDictItemsByCode(DicCodeEnum.PROBLEM_TYPE.getCode()); + + List dictModelListTemp = problemTypeList.stream().filter(e -> "Lessons Learned".equals(e.getText())).collect(Collectors.toList()); + if(ObjectUtils.isEmpty(dictModelListTemp)){ + return new ArrayList<>(); + } + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.like(ProblemManagementEO::getLawsId,bussDocumentLibraryEOS.get(0).getId()); + lambdaQueryWrapper.eq(ProblemManagementEO::getProblemType,dictModelListTemp.get(0).getValue()); + lambdaQueryWrapper.orderByDesc(ProblemManagementEO::getCreateTime); + List managementEOList = problemManagementEOService.list(lambdaQueryWrapper); + //法规 + List lawsIdList = managementEOList.stream() + .filter(e->StringUtils.isNotBlank(e.getLawsId())).map(ProblemManagementEO::getLawsId).collect(Collectors.toList()); + //项目 + List projectIdList = managementEOList.stream() + .filter(e->StringUtils.isNotBlank(e.getProjectId())).map(ProblemManagementEO::getProjectId).collect(Collectors.toList()); + //相关文件 + List fileList = managementEOList.stream() + .filter(e -> StringUtils.isNotBlank(e.getFile())).map(ProblemManagementEO::getFile).collect(Collectors.toList()); + //审批证据 + List approvalEvidenceList = managementEOList.stream() + .filter(e -> StringUtils.isNotBlank(e.getApprovalEvidence())).map(ProblemManagementEO::getApprovalEvidence).collect(Collectors.toList()); + List connectList = new ArrayList<>(); + if(!fileList.isEmpty()){ + connectList.addAll(fileList); + } + if(!approvalEvidenceList.isEmpty()){ + connectList.addAll(approvalEvidenceList); + } + List fileInfoList = new ArrayList<>(); + if(!connectList.isEmpty()){ + fileInfoList = iOSSFileService.getFileInfosByConnectId(StringUtils.join(connectList,",")); + } + + List documentLibraryEOList = new ArrayList<>(); + if(!lawsIdList.isEmpty()){ + Set lawIdSet = new HashSet<>(); + for (String lawIds : lawsIdList) { + lawIdSet.addAll(Arrays.asList(lawIds.split(","))); + } + if(!lawIdSet.isEmpty()){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(BussDocumentLibraryEO::getId, lawIdSet); + documentLibraryEOList = bussDocumentLibraryEOService.list(wrapper); + } + } + + List projectLibraryBaseList = new ArrayList<>(); + if(!projectIdList.isEmpty()){ + Set projectIdSet = new HashSet<>(); + for (String projectIds : projectIdList) { + projectIdSet.addAll(Arrays.asList(projectIds.split(","))); + } + if(!projectIdSet.isEmpty()){ + projectLibraryBaseList = problemManagementEOMapper.queryByIds(StringUtils.join(projectIdSet,",")); + } + } + + List problemPriorityList = sysDictService.queryDictItemsByCode(DicCodeEnum.PROBLEM_PRIORITY.getCode()); + for (ProblemManagementEO problemManagementEO : managementEOList) { + problemManagementEO.setFlag(DataEnum.NEW.getValue()); + //问题类型 + List dictModelList = problemTypeList.stream().filter(e -> e.getValue().equals(problemManagementEO.getProblemType())).collect(Collectors.toList()); + List dictModelListPp = problemPriorityList.stream().filter(e -> e.getValue().equals(problemManagementEO.getProblemPriority())).collect(Collectors.toList()); + + if(!dictModelList.isEmpty()){ + if(CutEnum.CN.getValue().equals(cut)){ + problemManagementEO.setProblemType_dictText(dictModelList.get(0).getText()); + }else{ + problemManagementEO.setProblemType_dictText(dictModelList.get(0).getTextEn()); + } + } + if(!dictModelListPp.isEmpty()){ + if(CutEnum.CN.getValue().equals(cut)){ + problemManagementEO.setProblemPriority_dictText(dictModelListPp.get(0).getText()); + }else{ + problemManagementEO.setProblemPriority_dictText(dictModelListPp.get(0).getTextEn()); + } + } + + //相关法规 + if(StringUtils.isNotBlank(problemManagementEO.getLawsId())){ + if(!documentLibraryEOList.isEmpty()){ + List documentLibraryEOListTemp = documentLibraryEOList.stream() + .filter(e->StringUtils.isNotBlank(problemManagementEO.getLawsId()) + && problemManagementEO.getLawsId().contains(e.getId())).collect(Collectors.toList()); + List serialNumberList = documentLibraryEOListTemp.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList()); + problemManagementEO.setLawsName(com.jero.modules.system.util.StringUtils.join(serialNumberList,",")); + } + } + //相关项目 + if(StringUtils.isNotBlank(problemManagementEO.getProjectId())){ + List projectLibraryBaseListTemp = projectLibraryBaseList.stream() + .filter(e->StringUtils.isNotBlank(problemManagementEO.getProjectId()) + && problemManagementEO.getProjectId().contains(e.getId())).collect(Collectors.toList()); + //目标市场数据字典 + List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); + List projectNameList = new ArrayList<>(); + for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseListTemp) { + //目标市场 + String targetMarket = problemManagementEOService.getMarket(cut, targetMarketList, projectLibraryBase); + //主项目的版本号 + String projectVersion = ""; + if(com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getParentId())){ + projectVersion = "00"; + }else{ + projectVersion = projectLibraryBase.getProjectVersion(); + } + projectNameList.add(projectLibraryBase.getProjectName() + + "-" + projectLibraryBase.getYearName() + + "-" + targetMarket + +"-"+projectVersion); + } + if(!projectNameList.isEmpty()){ + problemManagementEO.setProjectName(StringUtils.join(projectNameList,",")); + } + } + if(StringUtils.isEmpty(problemManagementEO.getProjectName()) && StringUtils.isNotEmpty(problemManagementEO.getProjectId())){ + problemManagementEO.setProjectName(problemManagementEO.getProjectId()); + } + + + //相关文件连接 + if(StringUtils.isNotBlank(problemManagementEO.getFileLink())){ + List list = new ArrayList<>(); + for (String fileLink : problemManagementEO.getFileLink().split(",")) { + ProblemManagementVO problemManagementVO = new ProblemManagementVO(); + problemManagementVO.setFileLink(fileLink); + list.add(problemManagementVO); + } + problemManagementEO.setFileLinkList(list); + } + + //审批证据连接 + if(StringUtils.isNotBlank(problemManagementEO.getApprovalEvidenceLink())){ + List list = new ArrayList<>(); + for (String approvalEvidenceLink : problemManagementEO.getApprovalEvidenceLink().split(",")) { + ProblemManagementVO problemManagementVO = new ProblemManagementVO(); + problemManagementVO.setApprovalEvidenceLink(approvalEvidenceLink); + list.add(problemManagementVO); + } + problemManagementEO.setApprovalEvidenceLinkList(list); + } + //进度追踪 + if(StringUtils.isNotBlank(problemManagementEO.getProgressTracking())){ + List list = new ArrayList<>(); + for (String progressTracking : problemManagementEO.getProgressTracking().split(",")) { + ProblemManagementVO problemManagementVO = new ProblemManagementVO(); + problemManagementVO.setProgressTracking(progressTracking); + list.add(problemManagementVO); + } + problemManagementEO.setProgressTrackingList(list); + } + //相关文件 + if(StringUtils.isNotBlank(problemManagementEO.getFile())){ + List collect = fileInfoList.stream() + .filter(e -> e.getConnectId().equals(problemManagementEO.getFile())).collect(Collectors.toList()); + problemManagementEO.setFileList(collect); + } + //审批证据 + if(StringUtils.isNotBlank(problemManagementEO.getApprovalEvidence())){ + List collect = fileInfoList.stream() + .filter(e -> e.getConnectId().equals(problemManagementEO.getApprovalEvidence())).collect(Collectors.toList()); + problemManagementEO.setApprovalEvidenceFileList(collect); + } + } + return managementEOList; + } private String getMarket(List targetMarketList, NcrTrackVO trackVO,String cut) { //目标市场 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index 21e198a8d..5062b405c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -38,7 +38,6 @@ import com.jero.modules.project.entity.ProjectCertificationInventoryDutyEnginner import com.jero.modules.project.entity.ProjectCertificationInventoryEO; import com.jero.modules.project.entity.ProjectCertificationInventoryEOEn; import com.jero.modules.project.entity.ProjectCertificationInventoryLogEO; -import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectLibraryRoleRelEO; import com.jero.modules.project.entity.ProjectRelatedPersonnel; @@ -209,6 +208,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl sysUserList = this.sysUserService.querySysUserListByIdList(userIdList); - + List standIdList = datas.stream().map(ProjectCertificationInventoryEO::getBussDocumentLibraryId).distinct().collect(Collectors.toList()); + List docList = iBussDocumentLibraryEOService.listByIds(standIdList); for (ProjectCertificationInventoryEO data : datas) { + //处理编号,认证清单中若状态为符合时则编号标题不再随文档库变化 + if ((!data.getFlowStatus().equals(CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue()) + || !data.getFlowStatus().equals(CertificationInventoryFlowStatusEnum.UNINVOLVED.getValue())) + && StringUtils.isNotBlank(data.getBussDocumentLibraryId())) { + BussDocumentLibraryEO docObj = null; + for (BussDocumentLibraryEO obj : docList) { + if (obj.getId().equals(data.getBussDocumentLibraryId())) { + docObj = obj; + break; + } + } + if(null != docObj){ + data.setSerialNumber(docObj.getSerialNumber()); + } + } if(StringUtils.isNotEmpty(data.getSdt())){ String sdtName = sysUserList.stream().filter(sysUser -> { boolean flag = false; @@ -3290,7 +3307,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl { @@ -3372,6 +3389,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl { @@ -4475,34 +4493,34 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl prpEoList = this.projectRelatedPersonnelService.list(prpQueryWrap); - QueryWrapper lawsInventoryEOQueryWrap = new QueryWrapper<>(); - lawsInventoryEOQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); - List projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryEOQueryWrap); +// QueryWrapper lawsInventoryEOQueryWrap = new QueryWrapper<>(); +// lawsInventoryEOQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); +// List projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryEOQueryWrap); List projectCertificationInventoryEOList = new ArrayList<>(); List noSerialNumberList = new ArrayList<>(); for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : authDummyInventoryInfoEOList) { - if(CollectionUtils.isEmpty(projectLawsInventoryEOList)){ - break; - } +// if(CollectionUtils.isEmpty(projectLawsInventoryEOList)){ +// break; +// } // 根据选择调取的数据法规编号,跟当前项目中 法规清单数据法规编号对比,如果有,则加入,如果没有,则不加入。 - List lawsInventoryEOListTemp = projectLawsInventoryEOList.stream().filter(lawsInventoryEO -> { - boolean flag = false; - String adiSn = authDummyInventoryInfoEO.getSerialNumber(); - BussDocumentLibraryEO bl = iBussDocumentLibraryEOService.getBySerialNumber(adiSn); - if(ObjectUtils.isNotEmpty(bl)){ - if (StringUtils.equals(bl.getId(), lawsInventoryEO.getStandId())) { - flag = true; - } - } +// List lawsInventoryEOListTemp = projectLawsInventoryEOList.stream().filter(lawsInventoryEO -> { +// boolean flag = false; +// String adiSn = authDummyInventoryInfoEO.getSerialNumber(); +// BussDocumentLibraryEO bl = iBussDocumentLibraryEOService.getBySerialNumber(adiSn); +// if(ObjectUtils.isNotEmpty(bl)){ +// if (StringUtils.equals(bl.getId(), lawsInventoryEO.getStandId())) { +// flag = true; +// } +// } +// +// return flag; +// }).collect(Collectors.toList()); - return flag; - }).collect(Collectors.toList()); - - if(CollectionUtils.isNotEmpty(lawsInventoryEOListTemp)){ +// if(CollectionUtils.isNotEmpty(lawsInventoryEOListTemp)){ ProjectCertificationInventoryEO projectCertificationInventoryEOTemp = new ProjectCertificationInventoryEO(); BeanUtils.copyProperties(authDummyInventoryInfoEO,projectCertificationInventoryEOTemp); @@ -4549,20 +4567,20 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl saveDataList = this.dataUniqueCheck(projectCertificationInventoryEOList, cut, result, projectLibraryId); @@ -5457,22 +5475,22 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl lwrapper = new LambdaQueryWrapper<>(); - lwrapper.in(ProjectLawsInventoryEO::getSerialNumber,serialNumberList); - List projectLawsInventoryEOList = projectLawsInventoryEOService.list(lwrapper); - List LawSerialNumberListTemp = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.toList()); - if(serialNumberList.size() != LawSerialNumberListTemp.size()){ - //存在法规清单中没有的数据 - List collect = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).collect(Collectors.toList()); - List serialNumbers = serialNumberList.stream().filter(e -> !collect.contains(e)).collect(Collectors.toList()); - if(serialNumbers.size() > 0){ - if(CutEnum.CN.getValue().equals(datas.get(0).getCut())){ - throw new JeroBootException(StringUtils.join(serialNumbers,",")+"法规清单中不存在,不能添加"); - }else{ - throw new JeroBootException(StringUtils.join(serialNumbers,",")+" does not exist in the project laws and cannot be added"); - } - } - } +// LambdaQueryWrapper lwrapper = new LambdaQueryWrapper<>(); +// lwrapper.in(ProjectLawsInventoryEO::getSerialNumber,serialNumberList); +// List projectLawsInventoryEOList = projectLawsInventoryEOService.list(lwrapper); +// List LawSerialNumberListTemp = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.toList()); +// if(serialNumberList.size() != LawSerialNumberListTemp.size()){ +// //存在法规清单中没有的数据 +// List collect = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).collect(Collectors.toList()); +// List serialNumbers = serialNumberList.stream().filter(e -> !collect.contains(e)).collect(Collectors.toList()); +// if(serialNumbers.size() > 0){ +// if(CutEnum.CN.getValue().equals(datas.get(0).getCut())){ +// throw new JeroBootException(StringUtils.join(serialNumbers,",")+"法规清单中不存在,不能添加"); +// }else{ +// throw new JeroBootException(StringUtils.join(serialNumbers,",")+" does not exist in the project laws and cannot be added"); +// } +// } +// } // else{ // for (ProjectCertificationInventoryEO projectCertificationInventoryEO : datas) { // List collect = bussDocumentLibraryEOList.stream() @@ -7374,6 +7392,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl connectPlatform(String id,String cut) { + //认证清单平台件关联表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(LawsInventoryPlatformEO::getLawsInventoryId,id); + List lawsInventoryPlatformEOList = lawsInventoryPlatformEOService.list(wrapper); + if(ObjectUtils.isEmpty(lawsInventoryPlatformEOList)){ + return new ArrayList<>(); + } + ProjectCertificationInventoryEO certificationInventoryEO = projectCertificationInventoryEOService.queryById(lawsInventoryPlatformEOList.get(0).getLawsInventoryId()); + //平台件的平台件认证清单 + ProjectCertificationInventoryEO certificationInventoryEOTemp = + projectCertificationInventoryEOService.queryById(certificationInventoryEO.getPlatformCertificationInventoryId()); + + + //交付物模板 + String deliverableTemplate = certificationInventoryEOTemp.getDeliverableTemplate(); + if(StringUtils.isNotBlank(deliverableTemplate)){ + List fileInfos = iOSSFileService.getFileInfos(StringUtils.join(deliverableTemplate, ",")); + certificationInventoryEOTemp.setDeliverableTemplateName(fileInfos.get(0).getFileName()); + } + //交付物类型 + String deliverableType = certificationInventoryEOTemp.getDeliverableType(); + if(StringUtils.isNotBlank(deliverableType)){ + List categoryList = sysCategoryService.list(); + String name = getTreeName(cut, categoryList, Arrays.asList(deliverableType.split(","))); + certificationInventoryEOTemp.setDeliverableTypeName(name); + } + + + //平台件认证清单对应的法规 + List projectLibraryBaseList = projectLibraryBaseMapper.queryById(certificationInventoryEOTemp.getProjectLibraryId()); + //平台件项目名称 + if(ObjectUtils.isNotEmpty(projectLibraryBaseList)){ + ProjectLibraryBase projectLibraryBase = projectLibraryBaseList.get(0); + //目标市场 英文 + List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); + Map paramEn = new HashMap<>(); + paramEn.put("cut",cut); + String targetMarket = projectLibraryBaseServiceImpl.getMarket(paramEn, targetMarketList, projectLibraryBase); + String projectName = projectLibraryBase.getPlatformType()+"-"+projectLibraryBase.getPower()+"-"+projectLibraryBase.getProducer()+"-"+targetMarket; + certificationInventoryEOTemp.setProjectName(projectName); + } + List projectCertificationInventoryEOList = new ArrayList<>(); + projectCertificationInventoryEOList.add(certificationInventoryEOTemp); + return projectCertificationInventoryEOList; + } + + + + + + + + + + + + + + + + + + + + + // @Override // public void listPlatform(Map params) { // String cut = (String) params.get("cut");// diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 0a84814f0..2effaaaf2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -76,7 +76,7 @@ import com.jero.modules.project.enums.DataEnum; import com.jero.modules.project.enums.DataSourceEnum; import com.jero.modules.project.enums.DesignComplianceStatusEnum; import com.jero.modules.project.enums.FlowFlagEnum; -import com.jero.modules.project.enums.FlowStateEnum; +import com.jero.modules.project.enums.FlowStateDesignEnum; import com.jero.modules.project.enums.InventoryAffirmNodeEnum; import com.jero.modules.project.enums.InventoryAffirmStatusEnum; import com.jero.modules.project.enums.JumpLinkEnum; @@ -434,7 +434,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectLawsInventoryEOListTemp = new ArrayList<>(); for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOListNew) { List collect = projectLawsInventoryEOList.stream() - .filter(e -> e.getSerialNumber().equals(dummyInventoryInfoEO.getSerialNumber())).collect(Collectors.toList()); + .filter(e -> e.getSerialNumber().equals(dummyInventoryInfoEO.getSerialNumber())&&e.getDutyTerritory().equals(dummyInventoryInfoEO.getDutyTerritory())).collect(Collectors.toList()); if (collect.size() != 0) { for (ProjectLawsInventoryEO lawsInventoryEO : collect) { //数据对比 @@ -1556,7 +1556,31 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl standIdList = list.stream().map(ProjectLawsInventoryEO::getStandId).distinct().collect(Collectors.toList()); + List docList = bussDocumentLibraryEOService.listByIds(standIdList); for (ProjectLawsInventoryEO projectLawsInventoryEO : list) { + //处理编号,法规清单中若状态为符合时则编号标题不再随文档库变化 + if ((!projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue()) + || !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue()) + || !projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue()) + || !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) + && StringUtils.isNotBlank(projectLawsInventoryEO.getStandId())) { + BussDocumentLibraryEO docObj = null; + for (BussDocumentLibraryEO obj : docList) { + if (obj.getId().equals(projectLawsInventoryEO.getStandId())) { + docObj = obj; + break; + } + } + if(null != docObj){ + projectLawsInventoryEO.setSerialNumber(docObj.getSerialNumber()); + if (StringUtils.equals(cut, CutEnum.CN.getValue())) { + projectLawsInventoryEO.setTitle(docObj.getTitle()); + } else { + projectLawsInventoryEO.setTitle(docObj.getTitleEn()); + } + } + } //处理交付物类型 String designDeliverableType = projectLawsInventoryEO.getDesignDeliverableType(); String prehomoDeliverableType = projectLawsInventoryEO.getPrehomoDeliverableType(); @@ -2632,181 +2656,149 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectRelatedPersonnelTempList = projectRelatedPersonnels.stream().filter(relatedPersonnel -> { - boolean flag = false; - for (String duty : dutyTerritory.split(",")) { - if (StringUtils.equals(duty, relatedPersonnel.getDutyTerritory())) { - flag = true; + if ((projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + || projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue())) + && (projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + || projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue()))) { + String dutyTerritory = projectLawsInventoryEO.getDutyTerritory(); + if (StringUtils.isNotEmpty(dutyTerritory)) { + List projectRelatedPersonnelTempList = projectRelatedPersonnels.stream().filter(relatedPersonnel -> { + boolean flag = false; + for (String duty : dutyTerritory.split(",")) { + if (StringUtils.equals(duty, relatedPersonnel.getDutyTerritory())) { + flag = true; + } } - } - return flag; - }).collect(Collectors.toList()); + return flag; + }).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(projectRelatedPersonnelTempList)) { + if (CollectionUtils.isNotEmpty(projectRelatedPersonnelTempList)) { - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - //法规工程师 - if (StringUtils.isEmpty(projectLawsInventoryEO.getRegulationOwnerId())) { - String userId = ToGetAUserId(ProjectRoleEnum.REGULATI_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setRegulationOwnerId(userId); - } - } else { - String userId = ToGetAUserId(ProjectRoleEnum.REGULATI_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getRegulationOwnerId()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setRegulationOwnerId(userId); - } else { - updateWrapper.set(ProjectLawsInventoryEO::getRegulationOwnerId, null); - } - } - - //认证工程师 - if (StringUtils.isEmpty(projectLawsInventoryEO.getHomologationEngineerId())) { - String userId = ToGetAUserId(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setHomologationEngineerId(userId); - } - } else { - String userId = ToGetAUserId(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getHomologationEngineerId()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setHomologationEngineerId(userId); - } else { - updateWrapper.set(ProjectLawsInventoryEO::getHomologationEngineerId, null); - } - } - - //项目接口人 - if (StringUtils.isEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) { - String userId = ToGetAUserId(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setEngineeringInterfacePerson(userId); - } - } else { - String userId = ToGetAUserId(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getEngineeringInterfacePerson()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setEngineeringInterfacePerson(userId); - } else { - updateWrapper.set(ProjectLawsInventoryEO::getEngineeringInterfacePerson, null); - } - } - - //设计符合性确认 - //发起人角色 - String designInitiator = projectLawsInventoryEO.getDesignInitiator(); - if (StringUtils.isNotEmpty(designInitiator)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getDesignInitiatorId())) { - String userId = ToGetAUserId(designInitiator, projectRelatedPersonnelTempList, studioEngineer); + //法规工程师 + if (StringUtils.isEmpty(projectLawsInventoryEO.getRegulationOwnerId())) { + String userId = ToGetAUserId(ProjectRoleEnum.REGULATI_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setDesignInitiatorId(userId); + projectLawsInventoryEO.setRegulationOwnerId(userId); } } else { - String userId = ToGetAUserId(designInitiator, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getDesignInitiatorId()); + String userId = ToGetAUserId(ProjectRoleEnum.REGULATI_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getRegulationOwnerId()); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setDesignInitiatorId(userId); + projectLawsInventoryEO.setRegulationOwnerId(userId); } else { - updateWrapper.set(ProjectLawsInventoryEO::getDesignInitiatorId, null); + updateWrapper.set(ProjectLawsInventoryEO::getRegulationOwnerId, null); } } - } - //责任人角色 - String designDuty = projectLawsInventoryEO.getDesignDuty(); - if (StringUtils.isNotEmpty(designDuty)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getDesignDutyId())) { - String userId = ToGetAUserId(designDuty, projectRelatedPersonnelTempList, studioEngineer); + //认证工程师 + if (StringUtils.isEmpty(projectLawsInventoryEO.getHomologationEngineerId())) { + String userId = ToGetAUserId(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setDesignDutyId(userId); + projectLawsInventoryEO.setHomologationEngineerId(userId); } } else { - String userId = ToGetAUserId(designDuty, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getDesignDutyId()); + String userId = ToGetAUserId(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getHomologationEngineerId()); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setDesignDutyId(userId); + projectLawsInventoryEO.setHomologationEngineerId(userId); } else { - updateWrapper.set(ProjectLawsInventoryEO::getDesignDutyId, null); + updateWrapper.set(ProjectLawsInventoryEO::getHomologationEngineerId, null); } } - } - - //prehomo确认 - //发起人角色 - String prehomoInitiator = projectLawsInventoryEO.getPrehomoInitiator(); - if (StringUtils.isNotEmpty(prehomoInitiator)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getPrehomoInitiatorId())) { - String userId = ToGetAUserId(prehomoInitiator, projectRelatedPersonnelTempList, studioEngineer); + //项目接口人 + if (StringUtils.isEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) { + String userId = ToGetAUserId(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), projectRelatedPersonnelTempList, studioEngineer); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setPrehomoInitiatorId(userId); + projectLawsInventoryEO.setEngineeringInterfacePerson(userId); } } else { - String userId = ToGetAUserId(prehomoInitiator, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getPrehomoInitiatorId()); + String userId = ToGetAUserId(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getEngineeringInterfacePerson()); if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setPrehomoInitiatorId(userId); + projectLawsInventoryEO.setEngineeringInterfacePerson(userId); } else { - updateWrapper.set(ProjectLawsInventoryEO::getPrehomoInitiatorId, null); + updateWrapper.set(ProjectLawsInventoryEO::getEngineeringInterfacePerson, null); } } - } - //责任人角色 - String prehomoDuty = projectLawsInventoryEO.getPrehomoDuty(); - if (StringUtils.isNotEmpty(prehomoDuty)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getPrehomoDutyId())) { - String userId = ToGetAUserId(prehomoDuty, projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setPrehomoDutyId(userId); - } - } else { - String userId = ToGetAUserId(prehomoDuty, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getPrehomoDutyId()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setPrehomoDutyId(userId); + //设计符合性确认 + //发起人角色 + String designInitiator = projectLawsInventoryEO.getDesignInitiator(); + if (StringUtils.isNotEmpty(designInitiator)) { + if (StringUtils.isEmpty(projectLawsInventoryEO.getDesignInitiatorId())) { + String userId = ToGetAUserId(designInitiator, projectRelatedPersonnelTempList, studioEngineer); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setDesignInitiatorId(userId); + } } else { - updateWrapper.set(ProjectLawsInventoryEO::getPrehomoDutyId, null); + String userId = ToGetAUserId(designInitiator, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getDesignInitiatorId()); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setDesignInitiatorId(userId); + } else { + updateWrapper.set(ProjectLawsInventoryEO::getDesignInitiatorId, null); + } } } - } - //验证符合性确认 - //发起人角色 - String verifyInitiator = projectLawsInventoryEO.getVerifyInitiator(); - if (StringUtils.isNotEmpty(verifyInitiator)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getVerifyInitiatorId())) { - String userId = ToGetAUserId(verifyInitiator, projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setVerifyInitiatorId(userId); - } - } else { - String userId = ToGetAUserId(verifyInitiator, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getVerifyInitiatorId()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setVerifyInitiatorId(userId); + //责任人角色 + String designDuty = projectLawsInventoryEO.getDesignDuty(); + if (StringUtils.isNotEmpty(designDuty)) { + if (StringUtils.isEmpty(projectLawsInventoryEO.getDesignDutyId())) { + String userId = ToGetAUserId(designDuty, projectRelatedPersonnelTempList, studioEngineer); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setDesignDutyId(userId); + } } else { - updateWrapper.set(ProjectLawsInventoryEO::getVerifyInitiatorId, null); + String userId = ToGetAUserId(designDuty, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getDesignDutyId()); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setDesignDutyId(userId); + } else { + updateWrapper.set(ProjectLawsInventoryEO::getDesignDutyId, null); + } } } - } - //责任人角色 - String verifyDuty = projectLawsInventoryEO.getVerifyDuty(); - if (StringUtils.isNotEmpty(verifyDuty)) { - if (StringUtils.isEmpty(projectLawsInventoryEO.getVerifyDutyId())) { - String userId = ToGetAUserId(verifyDuty, projectRelatedPersonnelTempList, studioEngineer); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setVerifyDutyId(userId); - } - } else { - String userId = ToGetAUserId(verifyDuty, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getVerifyDutyId()); - if (StringUtils.isNotEmpty(userId)) { - projectLawsInventoryEO.setVerifyDutyId(userId); + //验证符合性确认 + //发起人角色 + String verifyInitiator = projectLawsInventoryEO.getVerifyInitiator(); + if (StringUtils.isNotEmpty(verifyInitiator)) { + if (StringUtils.isEmpty(projectLawsInventoryEO.getVerifyInitiatorId())) { + String userId = ToGetAUserId(verifyInitiator, projectRelatedPersonnelTempList, studioEngineer); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setVerifyInitiatorId(userId); + } } else { - updateWrapper.set(ProjectLawsInventoryEO::getVerifyDutyId, null); + String userId = ToGetAUserId(verifyInitiator, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getVerifyInitiatorId()); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setVerifyInitiatorId(userId); + } else { + updateWrapper.set(ProjectLawsInventoryEO::getVerifyInitiatorId, null); + } } } + + //责任人角色 + String verifyDuty = projectLawsInventoryEO.getVerifyDuty(); + if (StringUtils.isNotEmpty(verifyDuty)) { + if (StringUtils.isEmpty(projectLawsInventoryEO.getVerifyDutyId())) { + String userId = ToGetAUserId(verifyDuty, projectRelatedPersonnelTempList, studioEngineer); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setVerifyDutyId(userId); + } + } else { + String userId = ToGetAUserId(verifyDuty, projectRelatedPersonnelTempList, studioEngineer, projectLawsInventoryEO.getVerifyDutyId()); + if (StringUtils.isNotEmpty(userId)) { + projectLawsInventoryEO.setVerifyDutyId(userId); + } else { + updateWrapper.set(ProjectLawsInventoryEO::getVerifyDutyId, null); + } + } + } + updateWrapper.eq(ProjectLawsInventoryEO::getId, projectLawsInventoryEO.getId()); + super.update(projectLawsInventoryEO, updateWrapper); } - updateWrapper.eq(ProjectLawsInventoryEO::getId, projectLawsInventoryEO.getId()); - super.update(projectLawsInventoryEO, updateWrapper); } } //this.baseMapper.updateById(projectLawsInventoryEO); @@ -3208,7 +3200,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl { @@ -10454,6 +10453,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl { @@ -10550,6 +10550,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl { @@ -12283,7 +12284,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl result) { - List valueList = FlowStateEnum.getValueInfo(); + List valueList = FlowStateDesignEnum.getValueInfo();//修改为按高嵩提供的流程顺序 List lawsInventoryPlatformEOList = new ArrayList<>(); List projectLawsInventoryEOS = new ArrayList<>(); @@ -12767,6 +12768,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl sysDictItems = this.sysDictItemServiceImpl.selectItemsAll(); List categoryList = sysCategoryService.list(); + List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(LawsInventoryPlatformEO::getLawsInventoryId,lawsInventoryId); @@ -12820,7 +12822,15 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl libraryBaseList = projectLibraryBaseList.stream() .filter(e -> e.getId().equals(projectLawsInventoryEO.getProjectLibraryId())).collect(Collectors.toList()); if(ObjectUtils.isNotEmpty(libraryBaseList)){ - projectLawsInventoryEO.setProjectName(libraryBaseList.get(0).getProjectNameId()); + //项目名称 + List projectLibraryBases = libraryBaseList.stream() + .filter(e -> e.getId().equals(projectLawsInventoryEO.getProjectLibraryId())).collect(Collectors.toList()); + Map paramEn = new HashMap<>(); + paramEn.put("cut",cut); + String targetMarket = projectLibraryBaseService.getMarket(paramEn, targetMarketList, projectLibraryBases.get(0)); + String projectName = projectLibraryBases.get(0).getPlatformType() + "-" + projectLibraryBases.get(0).getPower() + + "-" + projectLibraryBases.get(0).getProducer() + "-" + targetMarket; + projectLawsInventoryEO.setProjectName(projectName); } //流程状态 String flowStatus = ""; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 5cc79a024..6e029ab76 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -38,6 +38,7 @@ import com.jero.modules.project.enums.CertificationInventoryFlowStatusEnum; import com.jero.modules.project.enums.CertificationProgressEnum; import com.jero.modules.project.enums.ComplianceFlowStatusEnum; import com.jero.modules.project.enums.DesignComplianceStatusEnum; +import com.jero.modules.project.enums.FlowStateDesignEnum; import com.jero.modules.project.enums.FlowStateEnum; import com.jero.modules.project.enums.HSStatisticalNodesEnum; import com.jero.modules.project.enums.OperatorTypeEnum; @@ -2199,23 +2200,15 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl lawsInventoryEOQueryWrapper = new QueryWrapper<>(); lawsInventoryEOQueryWrapper.lambda().in(ProjectLawsInventoryEO::getProjectLibraryId,Arrays.asList(id.split(","))); List projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper); - if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){ - List projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList()); - //任务确认统计 -// List> taskToConfirmMapList = this.projectLawsInventoryEOService.getTaskToConfirmStatistics(projectLawsInventoryEOList); -// int taskAffirmStatusCount = 0; -// if(CollectionUtils.isNotEmpty(taskToConfirmMapList)){ -// //taskAffirmStatusCount -// for (Map taskToConfirm : taskToConfirmMapList) { -// taskAffirmStatusCount += (int) taskToConfirm.get("taskAffirmStatusCount"); -// } -// } -// taskToConfirmMap.put("taskToConfirmMapList",taskToConfirmMapList); -// taskToConfirmMap.put("count",taskAffirmStatusCount); -// result.put("taskToConfirmMap",taskToConfirmMap); + //法规符合性管理统计(统计的是法规清单)------------------------------------------------------------------------------------------------------------------------------ + if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){ + //法规清单绑定平台件,需要特殊处理 + projectLawsInventoryEOList = getProjectLawsInventoryEOS(projectLawsInventoryEOList); //设计任务确认 - List> designTaskToConfirmMapList = this.projectLawsInventoryEOService.getDesignTaskToConfirmStatistics(projectLawsInventoryEOList); + List> designTaskToConfirmMapList = + this.projectLawsInventoryEOService.getDesignTaskToConfirmStatistics(projectLawsInventoryEOList); + int designTaskAffirmStatusCount = 0; if(CollectionUtils.isNotEmpty(designTaskToConfirmMapList)){ //taskAffirmStatusCount @@ -2228,7 +2221,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl> verifyTaskToConfirmMapList = this.projectLawsInventoryEOService.getVerifyTaskToConfirmStatistics(projectLawsInventoryEOList); + List> verifyTaskToConfirmMapList + = this.projectLawsInventoryEOService.getVerifyTaskToConfirmStatistics(projectLawsInventoryEOList); int verifyTaskAffirmStatusCount = 0; if(CollectionUtils.isNotEmpty(verifyTaskToConfirmMapList)){ //taskAffirmStatusCount @@ -2241,7 +2235,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl> designComplianceMapList = this.projectLawsInventoryEOService.getDesignComplianceStatistice(projectLawsInventoryEOList); + List> designComplianceMapList + = this.projectLawsInventoryEOService.getDesignComplianceStatistice(projectLawsInventoryEOList); int designFlowTaskStatusCount = 0; if(CollectionUtils.isNotEmpty(designComplianceMapList)){ for (Map designCompliance : designComplianceMapList) { @@ -2253,7 +2248,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl> verifyComplianceMapList = this.projectLawsInventoryEOService.getVerifyComplianceStatistice(projectLawsInventoryEOList); + List> verifyComplianceMapList + = this.projectLawsInventoryEOService.getVerifyComplianceStatistice(projectLawsInventoryEOList); int verifyFlowTaskStatusCount = 0; if(CollectionUtils.isNotEmpty(verifyComplianceMapList)){ for (Map verifyCompliance : verifyComplianceMapList) { @@ -2274,9 +2270,14 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl> rzTaskToConfirmMapList = this.projectCertificationInventoryEOService.getTaskToConfirmStatistics(pciEoList); + List> rzTaskToConfirmMapList = + this.projectCertificationInventoryEOService.getTaskToConfirmStatistics(pciEoList); int taskAffirmStatusCount = 0; if(CollectionUtils.isNotEmpty(rzTaskToConfirmMapList)){ for (Map rzTaskToConfirm : rzTaskToConfirmMapList) { @@ -2288,7 +2289,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl> prehomoMapList = this.projectCertificationInventoryEOService.getPrehomoStatistice(pciEoList); + List> prehomoMapList = + this.projectCertificationInventoryEOService.getPrehomoStatistice(pciEoList); int preHomoCount = 0; if (CollectionUtils.isNotEmpty(prehomoMapList)) { for (Map prehomo : prehomoMapList) { @@ -2299,6 +2301,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl> allMapList = this.projectCertificationInventoryEOService.getAllCertificationProgressStatistics(pciEoList); List> carMapList = this.projectCertificationInventoryEOService.getCarCertificationProgressStatistics(pciEoList); @@ -2465,6 +2469,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper); + //如果法规清单关联平台件,需要特殊处理 + projectLawsInventoryEOList = getProjectLawsInventoryEOS(projectLawsInventoryEOList); + List sysDictItems = new ArrayList<>(); // 法规清单所有的责任领域 String pliDutyTerritoryStr = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getDutyTerritory).collect(Collectors.joining(",")); @@ -2635,6 +2642,10 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl projectCertificationInventoryEOList = this.projectCertificationInventoryEOService.list(pciQueryWrap); + //如果认证清单关联平台件,需要特殊处理 + projectCertificationInventoryEOList = getProjectCertificationInventoryEOS(projectCertificationInventoryEOList); + + String pciDutyTerritoryStr = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getDutyTerritory).collect(Collectors.joining(",")); if (StringUtils.isNotEmpty(pciDutyTerritoryStr)) { List pciDutyTerritoryList = Arrays.asList(pciDutyTerritoryStr.split(",")).stream().distinct().collect(Collectors.toList()); @@ -2708,6 +2719,116 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl getProjectCertificationInventoryEOS(List projectCertificationInventoryEOList) { + //认证清单关联平台件(实际是一个认证清单只关联一个平台件) + List projectCertificationInventoryIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getId).collect(Collectors.toList()); + //认证清单关联的平台件 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(LawsInventoryPlatformEO::getLawsInventoryId,projectCertificationInventoryIdList); + List lawsInventoryPlatformEOList = lawsInventoryPlatformEOService.list(wrapper); + List projectCertificationInventoryEOListTemp = new ArrayList<>(); + List yesList = new ArrayList<>(); + List noList = new ArrayList<>(); + if(ObjectUtils.isNotEmpty(lawsInventoryPlatformEOList)){ + List idList = lawsInventoryPlatformEOList.stream() + .map(LawsInventoryPlatformEO::getPlatformLawsInventoryId).collect(Collectors.toList()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(ProjectCertificationInventoryEO::getId,idList); + projectCertificationInventoryEOListTemp = projectCertificationInventoryEOService.list(queryWrapper); + for (ProjectCertificationInventoryEO certificationInventoryEO : projectCertificationInventoryEOList) { + List collect = lawsInventoryPlatformEOList.stream() + .filter(e -> e.getLawsInventoryId().equals(certificationInventoryEO.getId())) + .collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect)){ + yesList.add(certificationInventoryEO); + }else{ + noList.add(certificationInventoryEO); + } + } + } + if(ObjectUtils.isNotEmpty(projectCertificationInventoryEOList) + && ObjectUtils.isNotEmpty(yesList) + && projectCertificationInventoryEOList.size() != yesList.size()){ + //法规清单有数据且部分关联了平台件 + projectCertificationInventoryEOList = noList; + projectCertificationInventoryEOList.addAll(projectCertificationInventoryEOListTemp); + }else if(ObjectUtils.isNotEmpty(projectCertificationInventoryEOList) + && ObjectUtils.isNotEmpty(yesList) + && projectCertificationInventoryEOList.size() == yesList.size()){ + //认证清单有数据且全部关联了平台件 + projectCertificationInventoryEOList = projectCertificationInventoryEOListTemp; + } + return projectCertificationInventoryEOList; + } + + @NotNull + private List getProjectLawsInventoryEOS(List projectLawsInventoryEOList) { + List projectLawsInventoryIdList = projectLawsInventoryEOList.stream() + .distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList()); + //法规清单关联的所有平台件 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(LawsInventoryPlatformEO::getLawsInventoryId,projectLawsInventoryIdList); + List lawsInventoryPlatformEOList = lawsInventoryPlatformEOService.list(wrapper); + //区分哪些法规清单关联了平台件,哪些法规清单没有关联平台件 + List yesList = new ArrayList<>(); + List noList = new ArrayList<>(); + List projectLawsInventoryPlatFormList = new ArrayList<>(); + if(ObjectUtils.isNotEmpty(lawsInventoryPlatformEOList)){ + //所关联平台件的法规清单id + List idList = lawsInventoryPlatformEOList.stream() + .map(LawsInventoryPlatformEO::getPlatformLawsInventoryId).collect(Collectors.toList()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(ProjectLawsInventoryEO::getId,idList); + projectLawsInventoryPlatFormList = projectLawsInventoryEOMapper.selectList(queryWrapper); + List valueInfo = FlowStateDesignEnum.getValueInfo(); + for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOList) { + //每条法规关联的平台件 + List collect = lawsInventoryPlatformEOList.stream() + .filter(e -> e.getLawsInventoryId().equals(projectLawsInventoryEO.getId())).collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect)){ + List platformLawsInventoryIdList = collect.stream().map(LawsInventoryPlatformEO::getPlatformLawsInventoryId).collect(Collectors.toList()); + //关联的平台件数据 + List platformList = projectLawsInventoryPlatFormList.stream() + .filter(e -> platformLawsInventoryIdList.contains(e.getId())).collect(Collectors.toList()); + for (ProjectLawsInventoryEO lawsInventoryEO : platformList) { + for (String value : valueInfo) { + if(value.equals(lawsInventoryEO.getDesignFlowStatus())){ + projectLawsInventoryEO.setDesignFlowStatus(value); + break; + } + } + for (String value : valueInfo) { + if(value.equals(lawsInventoryEO.getVerifyFlowStatus())){ + projectLawsInventoryEO.setVerifyFlowStatus(value); + break; + } + } + } + } + +// if(ObjectUtils.isNotEmpty(collect)){ +// yesList.add(projectLawsInventoryEO); +// }else{ +// noList.add(projectLawsInventoryEO); +// } + } + } +// if(ObjectUtils.isNotEmpty(projectLawsInventoryEOList) +// && ObjectUtils.isNotEmpty(yesList) +// && yesList.size() != projectLawsInventoryEOList.size() +// ){ +// //法规清单有数据且部分关联平台件数据 +// projectLawsInventoryEOList = noList; +// projectLawsInventoryEOList.addAll(projectLawsInventoryPlatFormList); +// }else if(ObjectUtils.isNotEmpty(projectLawsInventoryEOList) +// && ObjectUtils.isNotEmpty(yesList) +// && yesList.size() == projectLawsInventoryEOList.size()){ +// //法规清单有数据且全部关联了平台件 +// projectLawsInventoryEOList = projectLawsInventoryPlatFormList; +// } + return projectLawsInventoryEOList; + } + /** * 项目库详情统计-根据责任领域分组统计数据-表头排序 * @param dataList @@ -2716,38 +2837,47 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl> dataList,Map params) { String orderByField = (String) params.get("orderByField"); String orderBy = (String) params.get("orderBy"); + //默认按数量倒序 + if(null == orderByField){ + orderByField = "amount"; + } + if(null == orderBy){ + orderBy = "2"; + } if(CollectionUtils.isNotEmpty(dataList)){ Collator comparator = Collator.getInstance(Locale.CHINESE); - Collections.sort(dataList,(data1,data2)->{ + String finalOrderByField = orderByField; + String finalOrderBy = orderBy; + Collections.sort(dataList,(data1, data2)->{ String param1 = ""; String param2 = ""; // 一级责任领域名称 - if("dutyTerritoryName".equals(orderByField)){ + if("dutyTerritoryName".equals(finalOrderByField)){ param1 = StringUtils.isNotEmpty((String) data1.get("dutyTerritoryName")) ? (String) data1.get("dutyTerritoryName") : ""; param2 = StringUtils.isNotEmpty((String) data2.get("dutyTerritoryName")) ? (String) data2.get("dutyTerritoryName") : ""; - if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + if(OrderEnum.POSITIVE.getValue().equals(finalOrderBy)){ return comparator.compare(param1,param2); - }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + }else if(OrderEnum.REVERSE.getValue().equals(finalOrderBy)){ return comparator.compare(param2,param1); } } // 数量 - if(StringUtils.isEmpty(orderByField) || "amount".equals(orderByField)){ + if(StringUtils.isEmpty(finalOrderByField) || "amount".equals(finalOrderByField)){ double p1 = data1.get("amount") != null ? (double) data1.get("amount") : 0; double p2 = data2.get("amount") != null ? (double) data2.get("amount") : 0; - if(StringUtils.isEmpty(orderBy) || OrderEnum.POSITIVE.getValue().equals(orderBy)){ + if(StringUtils.isEmpty(finalOrderBy) || OrderEnum.POSITIVE.getValue().equals(finalOrderBy)){ return (int)(p1 - p2); - }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + }else if(OrderEnum.REVERSE.getValue().equals(finalOrderBy)){ return (int)(p2 - p1); } } // 占比 - if("percentage".equals(orderByField)){ + if("percentage".equals(finalOrderByField)){ double p1 = StringUtils.isNotEmpty((String) data1.get("percentage")) ? Double.parseDouble (((String) data1.get("percentage")).replace("%","")) : 0; double p2 = StringUtils.isNotEmpty((String) data2.get("percentage")) ? Double.parseDouble (((String) data2.get("percentage")).replace("%","")) : 0; - if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + if(OrderEnum.POSITIVE.getValue().equals(finalOrderBy)){ return (int)(p1 - p2); - }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + }else if(OrderEnum.REVERSE.getValue().equals(finalOrderBy)){ return (int)(p2 - p1); } } @@ -3121,9 +3251,15 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl plbList = this.getList(new ProjectLibraryBase()); + ProjectLibraryBase plbWra = new ProjectLibraryBase(); + //只查询在研状态 + plbWra.setProjectStatus("b99df0cf14984eaa9b9e80623be3f480"); + List plbList = this.getList(plbWra); JSONArray resList = new JSONArray(); for (ProjectLibraryBase plb: plbList) { + if(StringUtils.isNotBlank(plb.getPlatform()) && plb.getPlatform().equals("YES")){ + continue; + } JSONObject jsonObject = new JSONObject(); jsonObject.put("projectId",plb.getId()); jsonObject.put("projectName",plb.getShowName()); @@ -3161,9 +3297,15 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl plbList = this.getList(new ProjectLibraryBase()); + ProjectLibraryBase plbWra = new ProjectLibraryBase(); + //只查询在研状态 + plbWra.setProjectStatus("b99df0cf14984eaa9b9e80623be3f480"); + List plbList = this.getList(plbWra); JSONArray resList = new JSONArray(); for (ProjectLibraryBase plb: plbList) { + if(StringUtils.isNotBlank(plb.getPlatform()) && plb.getPlatform().equals("YES")){ + continue; + } JSONObject jsonObject = new JSONObject(); jsonObject.put("projectId",plb.getId()); jsonObject.put("projectName",plb.getShowName()); @@ -3366,6 +3508,11 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl pliQueryWrap = new QueryWrapper<>(); pliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); List pliEOList = this.projectLawsInventoryEOMapper.selectList(pliQueryWrap); + + //法规清单绑定平台件,需要特殊处理 + pliEOList = getProjectLawsInventoryEOS(pliEOList); + + List sysDictItems = new ArrayList<>(); String pliDutyTerritoryStr = pliEOList.stream().map(ProjectLawsInventoryEO::getDutyTerritory).collect(Collectors.joining(",")); if (StringUtils.isNotEmpty(pliDutyTerritoryStr)) { @@ -3612,6 +3759,11 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl sysDictItems = new ArrayList<>(); if (StringUtils.isNotEmpty(pciDutyTerritoryStr)) { @@ -3840,7 +3992,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl map : mapList) { + if("title".equals(map.get("db_field_name")) + && CutEnum.EN.getValue().equals(cut)){ + map.put("db_field_name","title_en"); + } + } + //添加正文 Map map = new HashMap<>(); if(CutEnum.CN.getValue().equals(cut)){ @@ -210,7 +221,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { JSONArray jsonArrySort = new JSONArray(); JSONObject sort = new JSONObject(); Map mapSort = new HashMap<>(); - Map mapSortTemp = new HashMap<>(); + Map mapSortTemp = new LinkedHashMap<>(); if(StringUtils.isNotBlank(orderBy) && StringUtils.isNotBlank(orderByField)){ //orderBy=1正序,orderBy=1倒序 if("1".equals(orderBy)){ @@ -223,10 +234,30 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { }else{ mapSortTemp.put(orderByField,mapSort); } + sort.putAll(mapSortTemp); }else{ - mapSortTemp.put("create_time","desc"); + if(ObjectUtils.isNotEmpty(((Map) map.get("mapOne")).get("serial_number")) + || ObjectUtils.isNotEmpty(((Map) map.get("mapTwo")).get("serial_number")) + || ObjectUtils.isNotEmpty(((Map) map.get("mapOne")).get("title")) + || ObjectUtils.isNotEmpty(((Map) map.get("mapTwo")).get("title")) + || ObjectUtils.isNotEmpty(((Map) map.get("mapOne")).get("title_en")) + || ObjectUtils.isNotEmpty(((Map) map.get("mapTwo")).get("title_en"))){ + Map score = new HashMap<>(); + score.put("order","desc"); + mapSortTemp.put("_score",score); + +// Map map1 = new HashMap<>(); +// map1.put("order","desc"); +// mapSortTemp.put("serial_number.keyword",map1); + sort = new JSONObject(mapSortTemp); + }else{ + mapSortTemp.put("serial_number.keyword","asc"); + sort.putAll(mapSortTemp); + } +// sort.putAll(mapSortTemp); +// mapSortTemp.put("create_time","desc"); } - sort.putAll(mapSortTemp); + jsonArrySort.add(sort); //封装查询条件 @@ -326,26 +357,67 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { String value = (String) entry.getValue(); if (ObjectUtils.isNotEmpty(value)) { for (String s : value.split(",")) { - Map map = new HashMap<>(); - Map queryMap = new HashMap<>(); - Map queryMapTemp = new HashMap<>(); + JSONArray should = new JSONArray(); + s = s.toLowerCase(); + if(s.contains(" ")){ + for (String valueTemp : s.split(" ")) { + Map mapTemp = new HashMap(); + mapTemp.put(key,"*"+valueTemp+"*"); + Map map1 = new HashMap<>(); + map1.put("wildcard",mapTemp); + should.add(map1); + } + JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should); + must.add(jsonObject); + }else{ + Map map = new HashMap<>(); + Map queryMap = new HashMap<>(); + Map queryMapTemp = new HashMap<>(); - if (key.equals("serial_number")){ - s = s.toLowerCase(); - queryMap.put(key, "*" + s + "*"); - map.put("wildcard", queryMap); - } else { - s = s.toLowerCase(); - queryMapTemp.put("query", s); - queryMapTemp.put("minimum_should_match", 2); - queryMap.put(key, queryMapTemp); - map.put("match",queryMap); + if (key.equals("serial_number")){ + s = s.toLowerCase(); + queryMap.put(key, "*" + s + "*"); + map.put("wildcard", queryMap); + } else { + s = s.toLowerCase(); + queryMapTemp.put("query", s); + queryMapTemp.put("minimum_should_match", 2); + queryMap.put(key, queryMapTemp); + map.put("match",queryMap); + } + must.add(map); } - must.add(map); } } } } + //封装输入框查询条件 +// if (ObjectUtils.isNotEmpty(inputMap)) { +// for (Map.Entry entry : inputMap.entrySet()) { +// String key = entry.getKey(); +// String value = (String) entry.getValue(); +// if (ObjectUtils.isNotEmpty(value)) { +// for (String s : value.split(",")) { +// Map map = new HashMap<>(); +// Map queryMap = new HashMap<>(); +// Map queryMapTemp = new HashMap<>(); +// +// if (key.equals("serial_number")){ +// s = s.toLowerCase(); +// queryMap.put(key, "*" + s + "*"); +// map.put("wildcard", queryMap); +// } else { +// s = s.toLowerCase(); +// queryMapTemp.put("query", s); +// queryMapTemp.put("minimum_should_match", 2); +// queryMap.put(key, queryMapTemp); +// map.put("match",queryMap); +// } +// must.add(map); +// } +// } +// } +// } //封装下拉,树形查询条件 if (ObjectUtils.isNotEmpty(otherMap)) { for (Map.Entry entry : otherMap.entrySet()) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/enums/FlowTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/enums/FlowTypeEnum.java index 77c6683f8..9189e8856 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/enums/FlowTypeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/enums/FlowTypeEnum.java @@ -12,7 +12,7 @@ public enum FlowTypeEnum { RWQRLC("1","任务确认流程","RWQRLC","任务确认流程","rwqrlc","清单任务确认","List task confirmation"), SJFHXSHLC("2","设计符合性审查流程","SJFHXSHLC","设计符合性审查流程","sjfhxlc","设计符合性流程","Design Compliance Process"), PREHOMOQRLC("3","prehomo确认流程","PREHOMOQRLC","prehomo确认流程","prehomoqrlc","Pre-Homo确认","Pre-Homo Confirmation"), - YZFHXSCLC("4","验证符合性审查流程","YZFHXSCLC","验证符合性审查流程","yzfhxsclc","验证符合性流程","Verification Compliance Process"), + YZFHXSCLC("4","验证符合性审查流程","YZFHXSCLC","验证符合性审查流程","yzfhxsclc","验证符合性流程","Validation Compliance Process"), FGYJSJLC("5","法规意见收集流程","FGYJSJLC","法规意见收集流程","fgyjsjlc","法规意见收集","Opinion Collection on Regulation"), FGJSPG("6","法规技术评估流程","FGJSPG","法规技术评估流程","fgjspglc","法规技术评估","Regulatory Technical Assessment"), QDQR("10","清单确认","QDQR","清单确认流程","qdqr","法规清单发布","Regulation List Release"), diff --git a/jero-web/src/assets/editdelete.png b/jero-web/src/assets/editdelete.png new file mode 100644 index 000000000..64821d6a4 Binary files /dev/null and b/jero-web/src/assets/editdelete.png differ diff --git a/jero-web/src/assets/medieProgress.png b/jero-web/src/assets/medieProgress.png new file mode 100644 index 000000000..322ed983e Binary files /dev/null and b/jero-web/src/assets/medieProgress.png differ diff --git a/jero-web/src/assets/progressAdd.png b/jero-web/src/assets/progressAdd.png new file mode 100644 index 000000000..927f128a3 Binary files /dev/null and b/jero-web/src/assets/progressAdd.png differ diff --git a/jero-web/src/assets/progressDelete.png b/jero-web/src/assets/progressDelete.png new file mode 100644 index 000000000..0b94bd85d Binary files /dev/null and b/jero-web/src/assets/progressDelete.png differ diff --git a/jero-web/src/assets/progressExit.png b/jero-web/src/assets/progressExit.png new file mode 100644 index 000000000..79dcec12a Binary files /dev/null and b/jero-web/src/assets/progressExit.png differ diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 722f78b1a..c07f2063a 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1,7 +1,7 @@ module.exports = { home: 'Home', account: 'User Account', - EnterAccountFuzzyQuery: 'Enter Account Fuzzy Search', + EnterAccountFuzzyQuery: 'Enter User Account Fuzzy Search', Gender: 'Gender', pleaseSelect: 'Please Select ', male: 'Male', @@ -22,7 +22,7 @@ module.exports = { import: 'Import', recycleBin: 'Recycle Bin', delete: 'Delete', - thaw: 'Thaw', + thaw: 'Unfreeze', batchOperation: 'Batch Operation', selected: 'Selected', term: 'Item', @@ -32,8 +32,8 @@ module.exports = { areYouSure: 'Confirm to delete?', details: 'Details', password: 'Password', - freezePassword: 'Are you sure to freeze?', - youThaw: 'Are you sure to thaw?', + freezePassword: 'Confirm to freeze?', + youThaw: 'Confirm to unfreeze?', freezePasManagementPage: 'This is the user management page?', serialNumber: 'No.', userAccount: 'User Account', @@ -41,12 +41,12 @@ module.exports = { department: 'Department', status: 'Status', operation: 'Operation', - aRcord: 'A Rcord', - OperationAllowedAccount: 'This Operation is not Allowed for administrator account, please select again!', + aRcord: 'A record', + OperationAllowedAccount: 'This operation is not allowed for administrator account, please select again!', confirm: 'Confirm', selectedAccount: 'Selected account?', whether: 'Whether', - adminDoNotAllowOperation: 'The administrator account does not Allow this Operation!', + adminDoNotAllowOperation: 'The administrator account does not allow this operation!', advancedQuery: 'Advanced Search', constructor: 'Constructor', advancedQueryEffective: 'Advanced Search on', @@ -92,7 +92,7 @@ module.exports = { newRole: 'Create New Role', RoleManagement: 'Role Management', toGrantAuthorization: 'Authorize', - newUser: 'New User', + newUser: 'Create New User', ExistingUsers: 'Existing Users', total: 'Total', strip: 'Items', @@ -117,11 +117,12 @@ module.exports = { enterDepartmentName: 'Please enter department name', addTo: 'Add', cancel: 'Cancel', - checkAll: 'Check All', + checkAll: 'Select All', DeselectAll: 'Deselect All', ExpandAll: 'Expand All', MergeAll: 'Merge All', TreeOperation: 'Tree Operation', + DictionaryEnName: 'Dictionary English name', essentialInformation: 'General Information', DetailsPhasedImplementation: 'Phased Implementation', Statutenumberclause: 'Regulation Number/Clause', @@ -157,6 +158,7 @@ module.exports = { DepartmentRole: 'Department Role', DictionaryName: 'Dictionary Name', enterDictionary: 'Please enter a dictionary name', + enterEnDictionary: 'Please enter the English name of the dictionary', DictionaryNumber: 'Dictionary NO.', enterDictionaryNumber: 'Please enter the dictionary no.', DictionaryInformation: 'Dictionary Information', @@ -176,8 +178,8 @@ module.exports = { DataRules: 'Data Rules', menuMnagementPage: 'This is the menu management page', MenuName: 'Menu Name', - MenuEnName: 'Menu En Name', - enterMenuEnName: 'Please enter menu En name', + MenuEnName: 'Menu English name', + enterMenuEnName: 'Please enter the English name of the menu', MenuType: 'Menu Type', menu: 'Menu', ButtonsPermissions: 'Buttons / Permissions', @@ -199,7 +201,7 @@ module.exports = { SearchLog: 'Search Log', enterSearchKeyword: 'Please enter a search keyword', enterSearchContent: 'Please enter Search Content', - enterStandard: 'Please enter No.', + enterStandard: 'Please enter the number', entertitle: 'Please enter title', OperationType: 'Operation Type', selectOperationType: 'Please select Operation type', @@ -213,7 +215,7 @@ module.exports = { LogContent: 'Log Content', OperatorID: 'Operator ID', OperatorName: 'Operator Name', - ElapsedTime: 'Elapsed Time (MS)', + ElapsedTime: 'Time consuming (MS)', LogType: 'Log Type', tableName: 'Table Name', enterTableName: 'Please enter a table name', @@ -228,7 +230,7 @@ module.exports = { selectSameDatabase: 'Please select the same database table and data ID for comparison', DataComparison: 'Data Comparison', PromptInformation: 'Prompt Information', - enterAccountNumber: 'Please enter the account number', + enterAccountNumber: 'Please enter the account', AddExistingUsers: 'Add Existing Users', newUser: 'New User', disassociate: 'Disassociate', @@ -264,7 +266,7 @@ module.exports = { FirstLevelMenu: 'First Level Menu', Submenu: 'Submenu', enterMenuName: 'Please enter menu name', - SuperiorMenu: 'Duperior Menu', + SuperiorMenu: 'Superior menu', selectSuperiorMenu: 'Please select superior menu', selectParentMenu: 'Please select parent menu', MenuPath: 'Menu Route', @@ -280,11 +282,11 @@ module.exports = { selectAuthorizationPolicy: 'Please select authorization policy', selectStatus: 'Please select a status', MenuIcon: 'Menu Icon', - ClickSelectIcon: 'Click the select icon', + ClickSelectIcon: 'Click to select the icon', enterMenuSort: 'Please enter menu sort', - RouteMenu: 'Route Menu', + RouteMenu: 'Whether to route the menu', HideRoute: 'Hidden Route', - CacheRoute: 'Cache Route', + CacheRoute: 'Whether to cache routes', AggregateRouting: 'Aggregated Route', OpenMode: 'Open Mode', external: 'External', @@ -335,7 +337,7 @@ module.exports = { MailboxExists: 'Mailbox Already Exists', enterMailboxCorrect: 'Please enter a mailbox in the correct format', UserExists: 'User name already exists', - nameExists: 'User name already exists', + nameExists: 'The Employee ID already exists', uploadPictures: 'Please Upload Pictures', DepartmentSearch: 'Department Search', selectSuperiorDepartment: 'Please select superior Department', @@ -346,11 +348,11 @@ module.exports = { BatchRestore: 'Batch Restore', RestoreUser: 'Restore User', FailedQuery: 'Failed to Search deleted users:', - headPortrait: 'Head Portrait', + headPortrait: 'Avatar', RestorUser: 'Restore User', - sureRestore: 'Are you sure you want to restore this', + sureRestore: 'Confirm to restore this user?', Users: 'Users', - reduction: 'Reduction', + reduction: 'Restore this user successfully!', UsersSucceeded: 'Users Succeeded!', standard: 'No.', title: 'Title', @@ -362,12 +364,12 @@ module.exports = { ModificationContent: 'Modification Content', personnel: 'Personnel', dataExport: 'Data Export', - exportWithFile: 'Export With File', + exportWithFile: 'Doc Export', Push: 'Push', templateDownload: 'Download Template', textInformation: 'Document Information', relatedInformation: 'Relevant Information', - RetrieveFiles: 'Select Stored File', + RetrieveFiles: 'Retrieve stored files', SplitText: 'Split Library File', ImportResults: 'Import Split Results', copy: 'Copy', @@ -378,7 +380,7 @@ module.exports = { SubscriptionManagement: 'Select Tech Fields', BatchCancellation: 'Batch Delete', clickUpload: 'Click To Upload', - viewUploadedFiles: 'View Uploaded Files', + viewUploadedFiles: 'View uploaded files', standardSelection: 'Standard Selection', Collection: 'Collect', CancelCollection: 'Delete Collection', @@ -403,7 +405,7 @@ module.exports = { GeneralExportInformation: 'General export information', CustomizeExportInformation: 'Customize export information', DocumentComparisonLibrary: 'Document Comparison Library', - weekly: 'Weekly', + weekly: 'Weekly Report', SyncLibrary: 'Sync To doc. Library', check: 'Proofread', enName: 'English Name', @@ -434,7 +436,7 @@ module.exports = { MessageCenter: 'Message Center', SeeMore: 'See More', OperationSuccessful: 'Operation Successful', - Intheexport: 'In The Export...', + Intheexport: 'Exporting...', OperationFailed: 'Operation Failed', PersonnelSelection: 'Select People', EmployeeNumber: 'Employee ID', @@ -454,8 +456,8 @@ module.exports = { Module: 'Module', PleaseSelectModule: 'Please select the module', AttributeName: 'Attribute Name', - PleaseEnterPropertyName: 'Please enter a property name', - PleaseEnterYourEnglishName: 'Please enter your English name', + PleaseEnterPropertyName: 'Please enter the attribute name', + PleaseEnterYourEnglishName: 'Please enter the English name', PleaseSelectAttributeType: 'Please select an attribute type', OptionContent: 'Option Content', PleaseSelectOptionContent: 'Please select the option content', @@ -467,15 +469,15 @@ module.exports = { DocumentLibraryListDisplay: 'Document Library List Display', SelectWhetherDisplayList: 'Please select whether to display the document library list', SelectDisplayArea: 'Please select a display area', - Search: 'Search', + Search: 'Whether to search', SelectWhetherToSearch: 'Please select whether to search', DisplayOtherModules: 'Display Of Other Modules', RegulationsListDisplay: 'Regulation List Display', selectDisplayListRegulations: 'Please select whether to display the list of regulations', SearchCenterDisplay: 'Search Center Display', - selectSearchCenterDisplayed: 'Please select whether the search center is displayed', + selectSearchCenterDisplayed: 'Please select whether to display the search center', selectWhetherRequired: 'Please select whether it is required', - SortNumber: 'Order', + SortNumber: 'Sorting number', enterDisplayArea: 'Please enter the display area', charactersLength: '1 - 50 characters in length', enterSortingNumber: 'Please enter the sorting number', @@ -527,10 +529,10 @@ module.exports = { characters: 'Characters', Processing: 'Handling', See: 'View', - labelNameCannotDuplicate: 'Label name cannot be duplicate', + labelNameCannotDuplicate: 'Tag names cannot be repeated', list: 'List', paragraph: 'Paragraph', - enterNumber: 'Please enter No.', + enterNumber: 'Please enter the number', enterTitle: 'Please enter title', backDocument: 'Postback to Document Library', fileName: 'File Name', @@ -546,7 +548,7 @@ module.exports = { functionalAreas: 'Functional Areas', technicalField: 'Technical Field', informationCategory: 'Info Type', - contentValidity: 'Content Validity', + contentValidity: 'Contents profile', TechnicalfieldSupplementCn: 'Tech Field Supplement (CN)', TechnicalfieldSupplementEn: 'Tech Field Supplement (EN)', content: 'Content', @@ -564,7 +566,7 @@ module.exports = { fileUploadFailed: 'File Upload Failed', deletedSuccessfully: 'Deleted Successfully', uploadSuccessful: 'Upload Successful', - noDelete: 'The Exhibition area has associated data, which cannot be deleted!', + noDelete: 'This display area has associated data and cannot be deleted!', numberRows: 'Number of rows', numberColumns: 'Number of columns', table: 'Table', @@ -576,7 +578,7 @@ module.exports = { searchScope: 'Search Scope', newNode: 'Add Node', modifyNode: 'Modify Node', - deleteNode: 'If there is file information, it will be deleted synchronously, confirm to delete the data?', + deleteNode: 'Delete Node', ImplementationDate: 'New Type Execution Date', ImplementationDateOne: 'New Type Execution Date', vehicleInProductionDate: 'New Vehicle Execution Date', @@ -588,13 +590,13 @@ module.exports = { batchSettingInformation: 'Batch Setting Information', batchSettingPersonnel: 'Batch Setting Personnel', selectDirectoryTerms: 'Please Select the directory location to add terms', - StandardBreakdown: 'Standard Breakdown', - OnlyWordItem: 'Only the GSO file type can split PDF files. Please re select the file', + StandardBreakdown: 'Regulation Checklist', + OnlyWordItem: 'Only the GSO file type can split PDF files. Please select the file again', OnlyWord: 'Only word files can be imported', labelAreaDeleted: 'If it is deleted, All label items under the display area will be deleted', searchInResults: 'Search In Results', searchContent: 'Search Content', - viewFile: 'View', + viewFile: 'View uploaded files', fileFormatIncorrect: 'The file format is incorrect', pleaseUploadFile: 'Please upload the file', documentSplitList: 'Document Split List Display', @@ -679,7 +681,7 @@ module.exports = { addATable: 'Please add a table', pleaseUploadSplitFile: 'Please Upload Split File', release: 'Release', - confirmRelease: 'Confirm to Release', + confirmRelease: 'Confirm to Release?', UploadMost: 'You can only upload 20 at most', FileUploadFailed: 'File upload failed', FileUploadedSuccessfully: 'File uploaded Successfully', @@ -746,11 +748,11 @@ module.exports = { timeOperation: 'You have permission to operate this button.', NiOnumberis: 'NiO number is', NoOperationPermissionForthisbutton: 'No Operation permission for this button', - Attentionfreeze: 'Note: Note: The item can no longer be configured after its frozen. ', + Attentionfreeze: 'Note: The frozen configuration content cannot be edited after freezing.', Filledperson: 'The project contact person has not been filled in. Please fill in the project contact person before issuing and collecting.', - Datastatusis: 'Datastatusis', - Datastateexcept: 'Data state except', - Dropdownradio: 'Drop Down Radio', + Datastatusis: 'Data status is', + Datastateexcept: 'Data status except', + Dropdownradio: 'Drop down radio selection', Dropdownmultipleselection: 'Drop down multiple selection', a: '+', positiveInteger: 'Positive Integer', @@ -773,7 +775,7 @@ module.exports = { FourDecimalplaces: 'Four Decimal places', Positivefloatingpointnumber: 'Positive floating point number', oneconfigurationInformation: 'Contains at least one configuration Information', - Correspondingstandarddeleted: 'Correspondingstandarddeleted', + Correspondingstandarddeleted: 'The corresponding standard has been deleted', changeTheTitle: 'Title already exists, please change the title', resetPassword: 'Reset Password', DepartmentAllocation: 'Department Assignment', @@ -782,7 +784,7 @@ module.exports = { from: 'From', ReferenceTo: 'To', checkTheDeadline: 'Select the collection deadline of the parameter item', - accountNumber: 'Account Number', + accountNumber: 'Account', fullName: 'Full Name', configurationInformation: 'Configuration Information', modifyprojectInterfacePerson: 'Modify Project Interface Person', @@ -790,12 +792,12 @@ module.exports = { ParameterLibrary: 'Parameter Library', referenceparameter: 'Reference parameter', tempSave: 'Save', - Assignedby: 'Assign', - CompulsoryWithdrawal: 'Revoke', + Assignedby: 'Assign filler', + CompulsoryWithdrawal: 'Force withdraw', SynchronousReportLibrary: 'Sync to the Library', FreezeConfiguration: 'Freeze Configuration', distributionAndCollection: 'Distribute & Collect', - OneclickCollection: 'One-click Collection', + OneclickCollection: 'One-click distribution and collection', deleteConfiguration: 'Delete Configuration', addConfiguration: 'Add Configuration', electricMachinery: 'E-motor', @@ -808,7 +810,7 @@ module.exports = { changeExtension: 'Extension', addDetailList: 'Add List', editDetailList: 'Edit List', - detailedList: 'DetailedList', + detailedList: 'List', copyParamDetailList: 'Copy Parameter List', collectionCompletionTime: 'Collection Completion Time', parameterTemplateName: 'Parameter Template Name', @@ -816,9 +818,9 @@ module.exports = { templateName: 'Template Name', pleaseSelectData: 'Please Select Data', templateCopy: 'Template Copy', - NiOnumberalreadyexists: 'NiO number already exists, please replace NiO number', + NiOnumberalreadyexists: 'NIO number already exists, please change the NIO number', attachmentTemplate: 'Attachment Template', - controlAlternatives: 'Control Component', + controlAlternatives: 'Control alternative value', controlVerification: 'Validate Component', controlType: 'Control Component', certificationCategory: 'Cert Category', @@ -842,10 +844,10 @@ module.exports = { opinion: 'Opinion', OperationNode: 'Operation Node', taskDataConfirmation: 'Please select data with List Confirmation Status labeled Accepted and Task Confirmation Status labeled Not Initiated or Rejected, and the Eng. Interface cannot be empty', - selectInquiry: 'Select Inquiry', + selectInquiry: 'Select Inquirer', sendBack: 'Reject', taskConfirmationProcess: 'Task confirmation process', - notFinished: 'Assigned', + notFinished: 'Incomplete', Finished: 'Completed', theRequirementst: 'The Eng. Interface confirms the compliance requirements', dataLoading: 'Data loading...', @@ -877,7 +879,7 @@ module.exports = { engineer: 'Engineer', engineeringConfirmationDetails: 'Engineering Deliverable Details', reminder: 'Reminder', - adopt: 'Approve', + adopt: 'Pass', reviewedByThePersonInCharge: 'Reviewed by Owner', onlyDeleted: 'Only delete data when the process is not started or already ended', experimentPassed: 'Test Passed', @@ -894,7 +896,7 @@ module.exports = { number: 'No.', Deadline: 'Due Date', toBeConfirmed: 'To Be Confirmed', - designComplianceReview: 'Design Compliance Check', + designComplianceReview: 'Design Compliance Confirmation', preHomeConfirmation: 'Pre-Homo Check', verificationComplianceReview: 'Validation Compliance Confirmation', verificationComplianceExamine: 'Validation Compliance Review', @@ -994,7 +996,7 @@ module.exports = { Submitted: 'Submitted', ReturnedEngineer: 'Rejected by homo engineer', SynchronizedLibrary: 'Synced to Library', - Statusis: 'Statusis', + Statusis: 'Status is', toHavePermission: 'To Have Permission', and: 'And', judge: 'Determine', @@ -1002,7 +1004,7 @@ module.exports = { roleSwitching: 'Role Switching', setCreator: 'Set Creator', documentLibraryDetails: 'Document Library Details', - question: 'Reminder', + question: 'Remind', ConfirmQuestion: 'Confirm to remind?', disableInput: 'Disable Input', taskConfirmationDeadline: 'Task Confirmation Deadline', @@ -1074,7 +1076,7 @@ module.exports = { Copyfailed: 'Copy Failed', Synchronizedatabase: 'Synchronize the data of the selected row to the database?', Aftersynchronization: 'After synchronization, the parameter items cannot be modified.', - FNumber: 'Number', + FNumber: 'Account', NNNiONumber: 'NIO Number', NNiONumber: 'NIO Number', ParameterNo: 'No.', @@ -1087,29 +1089,29 @@ module.exports = { NcertificationCategory: 'Cert Category', NcontrolType: 'Control Component', NcontrolVerification: 'Validate Component', - NcontrolAlternatives: 'Componet Value', + NcontrolAlternatives: 'Control alternative value', DefaultValue: 'Default Value', - NattachmentTemplate: 'File Template', + NattachmentTemplate: 'Attachment Template', Ntext: 'Text', - NDropdownradio: 'Pull single', - NDropdownmultipleselection: 'Pull more', + NDropdownradio: 'Drop down radio selection', + NDropdownmultipleselection: 'Drop down multiple selection', Nenclosure: 'File', - Atext: 'Pull single+Text', - Btext: 'Pull more+Text', - Ctext: 'Text+File', - Dtext: 'Pull single+File', - Etext: 'Pull more+File', - Ftext: 'Pull single+Text+File', + Atext: 'Drop down radio selection + text', + Btext: 'Drop down multiple selection + text', + Ctext: 'Text+Attachment', + Dtext: 'Drop down radio selection + attachment', + Etext: 'Drop down multiple selection + attachment', + Ftext: 'Drop down radio selection+text+attachment', Gtext: 'Title', - Nnothing: 'Null', + Nnothing: 'Nothing', Nchinese: 'Chinese', NpositiveInteger: 'Integer', - NPositivefloatingpointnumber: 'Positive Float', - NintegerOrDecimal: 'Integer Decimal', - NOneDecimalPlace: 'Decimal One', - NTwoDecimalplaces: 'Decimal Two', - NThreedecimalplaces: 'Decimal Three', - NFourDecimalplaces: 'Decimal Four', + NPositivefloatingpointnumber: 'Positive floating point number', + NintegerOrDecimal: 'Integer Or Decimal', + NOneDecimalPlace: 'One Decimal Places', + NTwoDecimalplaces: 'Two Decimal places', + NThreedecimalplaces: 'Three decimal places', + NFourDecimalplaces: 'Four Decimal places', yes: 'Yes', Copyparameterlist: 'Copy Parameter List', Templatenamelist: 'Template name - parameter item collection list', @@ -1118,28 +1120,28 @@ module.exports = { requiredParametersEmpty: 'Required parameters cannot be empty', PleaseTaskConfirmationRejected: 'Please select data with List Confirmation Status labeled Accepted and Task Confirmation Status labeled Not Initiated or Rejected', theProjectContactEmpty: 'The Eng. Interface cannot be empty', - pleaseSelectinitiatedOrRejected: 'Please select the data whose design compliance confirmation process status is List Pending Release, Regulatory Engineer Returned or Verification Compliance Confirmation Process status is List Pending Release, Regulatory Engineer Returned', + pleaseSelectinitiatedOrRejected: 'Please select the data with Design Compliance Confirmation status labeled to be released, or Regulation Engineer Rejected, or Validation Compliance Confirmation status labeled to be released, Regulation Engineer Rejected', TheEngineerAndCertification: 'The Homo Engineer cannot be empty', - pleaseSelectTheDataverificationVerified: 'Please select the data whose design compliance confirmation process status is List Pending Verification, Responsible Person Rejected, or Verification Compliance Confirmation process status is List Pending Verification, Responsible Person Rejected', + pleaseSelectTheDataverificationVerified: 'Please select the data with Design Compliance Confirmation status labeled to be reviewed, or Owner Rejected, or Validation Compliance Confirmation status labeled to be reviewed, Owner Rejected', pleaseSelectTheDataverification: 'Select the data whose design conformance verification process state is Task ready to start and the responsible person refuses, or verify conformance verification process state is task ready to start and the responsible person refuses', theResponsiblePersonAndDeadlineClank: 'The responsible person and deadline of cannot be blank', - bringInTheProjectInterface: 'Assign to Owner', + bringInTheProjectInterface: 'Bring in Eng. Interface', theCurrentListSaved: 'The current list data has been submitted and cannot be temporarily saved', defaultTemplate: 'Default Template', newRequestCommentListTemplate: 'New request for comment list template', NewReleasedStandardTemplate: 'New released standard template', pleaseSelectStandard: 'Please select a standard', - theResponsiblePersonEmpty: 'The responsible person of cannot be empty', - theDeadlineEmpty: 'The deadline of cannot be empty', - theDeliveryTypeCannotBeEmpty: 'The delivery type of cannot be empty', + theResponsiblePersonEmpty: 'The owner cannot be empty', + theDeadlineEmpty: 'The deadline cannot be empty', + theDeliveryTypeCannotBeEmpty: 'The deliverable type of cannot be empty', For: 'For', markedRejection: 'Marked Rejection', RegulationListConfirmationTask: 'Regulation List Confirmation Task', RegulationListConfirmationNotification: 'Regulation List Confirmation Notification', - RegulationTaskConfirmation: 'Regulation Task Confirmation', + RegulationTaskConfirmation: 'Task confirmation task', DesignComplianceTask: 'Design Compliance Task', PreHomoTask: 'Pre-Homo Task', - ValidationTask: 'Validation Task', + ValidationTask: 'Validation Compliance Task', DesignComplianceNotification: 'Design Compliance Notification', PreHomoNotification: 'Pre-Homo Notification', ValidationComplianceNotification: 'Validation Compliance Notification', @@ -1152,7 +1154,7 @@ module.exports = { pleaseSelectStandardFirst: 'Please select a standard first', RelevantMaterials: 'Supporting Doc.', evaluatorFeedback: 'Evaluator Feedback', - nameTechnicalDocument: 'Technical Document', + nameTechnicalDocument: 'Technical document name', chapter: 'Chapter', problemDescription: 'Problem Description', filingExternalOpinions: 'Comments Archive', @@ -1184,7 +1186,7 @@ module.exports = { RegulatoryProcessEvaluationResults: 'Regulatory Process Evaluation Results', ViewConformanceResults: 'View Conformance Results', CommentsCollectionResultsForReference: 'Opinion Collection Results', - TechnicalEvaluationResultsForReference: 'Technical Evaluation Result', + TechnicalEvaluationResultsForReference: 'Technical Evaluation Result Reference', ComplianceConfirmationRecord: 'Compliance Confirmation Record', complianceConfirmation: 'Compliance Confirmation', noComparisonDocumentSelected: 'No document selected for comparison', @@ -1202,9 +1204,9 @@ module.exports = { fullTextComments: 'Full Text Comment', pleaseEnterfullTextComments: 'Please enter Full Text Comment', fileDeclaration: 'File Description', - FileForDetails: 'File For Details', + FileForDetails: 'File details', Converting: 'Converting', - convertNetwork: 'Convert Network', + convertNetwork: 'Convert successfully', convertFailed: 'Convert Failed', standardData: 'Standard Data', Theorganization: 'The Organization', @@ -1273,9 +1275,9 @@ module.exports = { simplifiedChinese: 'Simplified Chinese', uploadOnly: 'Upload only', turnOnAutoMatch: 'Open Automatic Matching', - Adjustareasofresponsibility: 'Adjust areas of responsibility', + Adjustareasofresponsibility: 'Adjust Responsible Field', regulatoryTechnicalAssessment: 'Regulatory Technical Assessment', - punctuationmark: 'You can only enter English punctuation marks except the # sign', + punctuationmark: 'You can only enter English punctuation marks except the # sign and comma', created: 'Time of Creation', updated: 'Last Updated', OpenOne: 'Public', @@ -1283,18 +1285,18 @@ module.exports = { Paraname: 'Para Name', Parabatch: 'Para Batch', freeze: 'Please select the configuration you want to freeze', - optionDropDownBox: 'Option drop - down box', - attachmentUpload: 'File', + optionDropDownBox: 'Drop down selection', + attachmentUpload: 'Attachment upload', textInput: 'Text Input', - deleteNode: 'If there is any file information, the file will be deleted. Are you sure to delete this data?', + deleteNodeOne: 'If there is any file information, the file will be deleted. Are you sure to delete this data?', HaveReleased: 'Released', forward: 'Forward', - areResponsibilityAreaInformationBatch: 'Are you sure you want to modify the responsibility area information in batch', + areResponsibilityAreaInformationBatch: 'Confirm to modify the Responsible Field 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', + weilaiRegulationMonthlyReport: 'NIO Regulation Monthly Report', onlyTheDataWhoseStatusNotInitiatedAcceptedChanged: 'Only the data whose list confirmation status is accepted and the task list status is not initiated or the task list status is accepted can be changed', thereTitleWhichCannotBeDeleted: 'There are new contents under this title, which cannot be deleted', industryInformationDynamicTemplate: 'Industry information dynamic template', @@ -1303,13 +1305,13 @@ module.exports = { source: 'Source', sourceEn: 'Source (English)', onlyone: 'Only one merge delimiter can be entered', - theInconsistentSameResponsibility: 'The selected data responsibility fields are inconsistent; Please select the same responsibility', + theInconsistentSameResponsibility: 'The selected data responsible field are inconsistent; Please select the same responsible field', taskConfirmedPersonnelCannotBeSetBatch: 'When the task confirmation status is to be confirmed, personnel cannot be set in batch', - theSelectedDataResponsibilityFieldCannotEmpty: 'The selected data responsibility field cannot be empty', - theTaskConfirmationStatusCannot: 'Only the list confirmation status is "reject" or "accept" and the task confirmation status cannot be "data to be confirmed"', + theSelectedDataResponsibilityFieldCannotEmpty: 'The selected data responsible field cannot be empty', + theTaskConfirmationStatusCannot: 'Only the list confirmation status can be changed to reject or accept, and the task confirmation status cannot be changed to data to be confirmed', BatchMaintenanceProgress: 'Batch Maintenance Progress', BatchChangeStatus: 'Batch Change Status', - CollectinguthenticationParameters: 'Collecting Authentication Parameters', + CollectinguthenticationParameters: 'Homo Parameter Collection', rejectedBy: 'Rejected By', rejectionTime: 'Rejection Time', rejectReason: 'Reject Reason', @@ -1320,7 +1322,7 @@ module.exports = { onlyCompletedDataCanBeDeleted: 'Only completed data can be deleted', reportedDelete: 'You\'re about to permanently delete the parameter list', reportDelete: ',including its parameters and export history. Once you confirm and press Delete, it cannot be undone or recovered.', - confirmdelete: 'Confirm the listing title you want to delete', + confirmdelete: 'Please confirm the title of the list to be deleted', Deletetitle: 'Delete the title', toConfirmed: 'to confirm', confirmtitle: 'The title is incorrect. Please re-enter it', @@ -1332,7 +1334,7 @@ module.exports = { processNodesAreInconsistentPleaseSelectConsistentData: 'Process nodes are inconsistent; Please select consistent data', exportFileName: 'Export file name', initiateSupplementaryProcess: 'Initiate supplementary process', - whetherTheDisassemblySheetIncluded: 'Checklist Included', + whetherTheDisassemblySheetIncluded: 'Included Checklist', inRecentMonths3: 'In recent 3 months', inRecentMonths6: 'In recent 6 months', inRecentYear1: 'In recent 1 year', @@ -1354,7 +1356,7 @@ module.exports = { secondaryDirectory: 'Secondary Directory', OnlyPersonsCanBeSelected: 'The maximum upper limit is exceeded; Only 100 persons can be selected', projectVersion: 'Project Version', - softwareVersion: 'Homo Software Version', + softwareVersion: 'Software Version', versionStatistics: 'Version statistics', addSubproject: 'Add Subproject', Topping: 'Top', @@ -1365,12 +1367,12 @@ module.exports = { taskConfirmationHandling: 'Task confirmation handling', relatedVersion: 'Related Version', filledBy: 'Filled by', - parameterToBeInitiated: 'To be initiated', + parameterToBeInitiated: 'Parameters to be initiated', listTaskConfirmation: 'List task confirmation', completednum: 'To be filled', filledBynum: 'Filled by', - filledByPhone: 'To be assigned', - parameterToBeInitiatednum: 'Parameter to be initiated', + filledByPhone: 'Filled by', + parameterToBeInitiatednum: 'Parameters to be initiated', listToConfirm: 'To Be Confirmed', toSubmit: 'To Be Submitted', toAudit: 'To Be Audited', @@ -1384,11 +1386,11 @@ module.exports = { cancelTopping: 'Cancel Topping', relatedProjectVersion: 'Related Project Version', Importfailure: 'Import failure', - CuiBan: 'CuiBan', + CuiBan: 'Remind', brand: 'Brand', allsubitemsitem: 'Delete all subitems under this item?', contactTheFounder: 'Contact author', - certificationCategoryNumber: 'certification Category Number', + certificationCategoryNumber: 'Cert Category NO.', historicalrecord: 'Revision History', Referenceparametercolumn: 'Set reference parameter', Updateparametercolumn: 'Update reference parameter', @@ -1396,10 +1398,10 @@ module.exports = { columnforced: 'Confirm a forced retraction?', customize: 'List Setting', customColumn: 'Custom column', - afterdate: 'In... After the date', - afterdatein: 'In... After date (inclusive)', - beforedate: 'In... Before date', - beforedatein: 'In... Before date (inclusive)', + afterdate:'After the date...', + afterdatein: 'After the date (inclusive)...', + beforedate: 'Before the date...', + beforedatein: 'Before the date (inclusive)...', inRecentMonthsin6: 'Within 6 months (implemented)', batchUpdateDeadline: 'Batch update deadline', timeInterval: 'Time Interval', @@ -1429,7 +1431,7 @@ module.exports = { confirmLaunchTask: 'Confirm to initiate a task ?', conditionsNotMet: 'Conditions not met', onlyProcessStatusReturned: 'Only data with process status of List to Be Checked and Rejected by Owner can be returned', - onlyProcessReturned: 'Only data whose process status is Task ready to be started or rejected by the responsible person can be initiated, and the deliverable type, project interface person, responsible person, and deadline cannot be left blank', + onlyProcessReturned: 'Only data with a process status is list to be verified and rejected by the owner can be initiated, and the deliverable type, engineering interface person, owner, and deadline cannot be empty', confirmToAcceptTheTask: 'Confirm to accept the task?', confirmRejectTask: 'Confirm to reject the task ?', onlyDataStatusConfirmedSelected: 'Only data with process status of Task to Be Confirmed can be selected', @@ -1461,85 +1463,85 @@ module.exports = { verificationAndVerification: 'Validation Check', projectInterfacePersonRegulationEngineerSetting: 'Eng. Interface - Regulation Engineer Setting', projectInterfacePersonCertificationEngineerSetting: 'Eng. Interface - Homo Engineer Setting', - registrationnumber: 'Product registration number', - noticebatch: 'Notice batch', + registrationnumber: 'Product Registration Number', + noticebatch: 'MIIT Batch', producttrademark: 'Product Trademark', productname: 'Product Name', - createvehicleandfunctionrecords: 'Create vehicle and function records', - citeforrecord: 'Cite for record', - datamaintenance: 'Data maintenance', - dataimport: 'Data import', - maintenance: 'maintenance', - recordstatus: 'Record status', - filingtime: 'Filing time', - createanupgradeactivityrecord: 'Create an upgrade activity record', + createvehicleandfunctionrecords: 'Create Model and Function Records', + citeforrecord: 'Reference Record', + datamaintenance: 'Data Maintenance', + dataimport: 'Data Import', + maintenance: 'Maintenance', + recordstatus: 'Record Status', + filingtime: 'Record Submission Time', + createanupgradeactivityrecord: 'Create Upgrade Activity Record', endUpgrade: 'End Upgrade', - upgraderesult: 'Upgrade result', - upgraderegistrationnumber: 'Upgrade registration number', - basicinformationofvehicletype: 'Basic information of vehicle type', - onlineupgraderequirements: 'Online upgrade requirements', - safetymeasure: 'Safety measure', - upgradedonline: 'Name and parameters of the system that can be upgraded online', - beupgradedonline: 'The name and parameters of the driver assistance feature that can be upgraded online', - recordparameters: 'Driver assistance system basic record parameters', - other: 'other', - fillintherecord: 'Fill in the record', - specificrequirements: 'Specific requirements', - relevantverification: 'Whether to carry out relevant verification', - certifyingmaterials: 'Certifying materials', - aspect: 'aspect', - havemeasures: 'Have measures', - systemclass: 'System class', - whetheritcanbeupgraded: 'Whether it can be upgraded', - technicalparameters: 'Upgrade Bulletin technical parameters that may change (if any)', - architecturetopologydiagram: 'System - Electronic Controller Architecture Topology diagram (Attachment includes topology diagram description)', - controllerparameter: 'Controller parameter', - electronic: 'Electronic controller name', - electronicController: 'Electronic controller name (Hardware)', + upgraderesult: 'Upgrade Result', + upgraderegistrationnumber: 'Upgrade Registration Number', + basicinformationofvehicletype: 'Basic Model Imformation', + onlineupgraderequirements: 'Online Upgrade Requirement', + safetymeasure: 'Safety Measure', + upgradedonline: 'Online Upgraded System Name and Parameter', + beupgradedonline: 'Online upgraded Driving Assistance Function Name and Parameter', + recordparameters: 'Basic Registration parameter of Driving Assistance System', + other: 'Other', + fillintherecord: 'Filled History', + specificrequirements: 'Specific Requirements', + relevantverification: 'Carry Out Relevant Validation', + certifyingmaterials: 'Evidence', + aspect: 'Aspect', + havemeasures: 'Measure', + systemclass: 'System Type', + whetheritcanbeupgraded: 'Upgradable', + technicalparameters: 'Upgrade MIIT Technical Parameters that may change (if any)', + architecturetopologydiagram: 'System-Electronic Controller Architecture Topology Diagram (Attachment must include a topology diagram introduction)', + controllerparameter: 'Controller Parameter', + electronic: 'Electronic Controller Name', + electronicController: 'Electronic Controller Name (Hardware)', electroniccontrollername: 'Electronic Controller Vehicle Safety Integrity Level (ASIL)', - electroniccontrollerproductionenterprises: 'Electronic controller production enterprises', - electroniccontrollertype: 'Electronic controller type', - hardwareversioninformation: 'Hardware version information', - initialsoftwareversionnumber: 'Initial software version number', - inflammatorydata: 'Initial package for integrity of inflammatory data', + electroniccontrollerproductionenterprises: 'Electronic Controller Manufacturer', + electroniccontrollertype: 'Electronic Controller Type', + hardwareversioninformation: 'Hardware Version Information', + initialsoftwareversionnumber: 'Initial Software Version Number', + inflammatorydata: 'Integrity Verification Data for the Initial Package', environmentalprotection: 'Whether the upgrade affects the vehicle safety, energy saving, environmental protection, anti-theft and other performance', - operatingsystemtype: 'Operating system type', - operatingsystemmanufacturer: 'Operating system manufacturer', - operatingsystemversion: 'Operating system version', - addcontroller: 'Add controller', + operatingsystemtype: 'Operating System Type', + operatingsystemmanufacturer: 'Operating System Manufacturer', + operatingsystemversion: 'Operating System Version', + addcontroller: 'Add System', addsystem: 'Add system', - functionname: 'Function name', - configuration: 'Delete Configuration', - drivingautomationlevel: 'Driving automation level', - functiondescription: 'Function description', - applicationconditions: 'Application conditions', - componentname: 'Component name', - fillincontent: 'Fill in content', + functionname: 'Function Name', + configuration: 'Configuration', + drivingautomationlevel: 'Driving Automation Level', + functiondescription: 'Function Description', + applicationconditions: 'Application Condition(Boundary Condition)', + componentname: 'Component Name', + fillincontent: 'Content', upgradepacketprotectionmeasuresa: 'Software version (set) identification and storage', - controlsystem: 'This section describes how to identify and save the software upgrade version (set) of the electronic control system', - vehicledynamictype: 'Vehicle dynamic type', - upgradetargetmodel: 'Upgrade target model', - thetargetvehicleofthisupgrade: 'The target vehicle of this upgrade', - upgradeimpactassessment: 'Upgrade impact assessment', - upgradehavechanged: 'The system name and parameters of the upgrade have changed', - auxiliaryupgradehavechanged: 'The name and parameters of auxiliary functions in this upgrade have changed', + controlsystem: 'Describe how the software upgrade version (set) of the electronic control system is recognized and saved', + vehicledynamictype: 'Vehicle Power Type', + upgradetargetmodel: 'Upgrade Models', + thetargetvehicleofthisupgrade: 'Target vehicle for this upgrade', + upgradeimpactassessment: 'Upgrade Impact Assessment', + upgradehavechanged: 'System name and parameter changes for this upgrade', + auxiliaryupgradehavechanged: 'Driving assistance function name and parameter changes for this upgrade', usernotification: 'Content and method of user notification', - informationaboutotherupgradetasks: 'Information about other upgrade tasks', - totalquantity: 'Total quantity (vehicles)', - dateofproduction: 'Date of production', - VINcodelist: 'VIN code list', - VINcodeupload: 'VIN code upload', + informationaboutotherupgradetasks: 'Other Upgraded Task Imformation', + totalquantity: 'Total Quantity (Vehicles)', + dateofproduction: 'Production Date', + VINcodelist: 'VIN Code List', + VINcodeupload: 'VIN Code Upload', Tasknode: 'Task Node', Taskresponsibilityrecognition: 'Responsibilty Confirmation', - uploadattachment: 'Upload', + uploadattachment: 'Upload Attachment', Processhistory: 'Process History', historyData: '1. Regulatory Engineer, 2. Responsible person, 3. Responsible person, 4. Regulatory Engineer', resultofhandling: 'Result', - cause: 'cause', - networksecurityrequirements: 'Network security requirements', - upgradefunctionrequirements: 'Upgrade function requirements', - usernotificationrequirement: 'User notification requirement', - ineffectiveupgrades: 'The authenticity and integrity of the upgrade package should be protected to reasonably prevent damage to it and to reasonably prevent ineffective upgrades', + cause: 'Cause', + networksecurityrequirements: 'Network Security Requirements', + upgradefunctionrequirements: 'Upgrade Function Requirements', + usernotificationrequirement: 'User Notification Requirements', + ineffectiveupgrades: 'The authenticity and integrity of the upgrade package shall be protected so as to reasonably prevent it from being compromised and to reasonably prevent ineffective upgrades', againstunauthorized: 'The software version (set) on the vehicle should be protected against unauthorized modification', communicationinterfacethathasateastusedastandard: 'The vehicle should have the ability to update the software version (set) and should be easily read in a standardized manner by using an electronic communication interface that has at least used a standard interface (such as an OBD port)', softwareupgrade: 'Ensure that the vehicle meets prerequisites before performing a software upgrade', @@ -1567,113 +1569,113 @@ module.exports = { '(a) To inform the vehicle user of the result of the vehicle upgrade (success or failure);\n' + '\n' + '(b) If the upgrade is successful, inform the vehicle user of the changes implemented and any relevant updates to the user manual (if applicable).', - upgradepacketprotectionmeasures: 'Upgrade packet protection measures', - otaupgradedsecuritymeasuresforvehicles: 'OTA upgraded security measures for vehicles', - authenticityandintegrityprotectionmechanism: 'Authenticity and integrity protection mechanism (multiple options)', - failsafmechanism: 'Fail-safe mechanism (optional)', - vehiclesafetyMeasuresafterUpgradefailure: 'Vehicle safety Measures after Upgrade failure (optional)', - informationsecuritymechanism: 'Information security mechanism (multiple options)', - dynamicsystem: 'Dynamic system', - transmissionsystem: 'Transmission system', + upgradepacketprotectionmeasures: 'Upgrade Packet Protection Measures', + otaupgradedsecuritymeasuresforvehicles: 'Upgraded Security for OTA', + authenticityandintegrityprotectionmechanism: 'Authenticity, Integrity Protection Mechanisms (multiple options)', + failsafmechanism: 'Anti-failure protection mechanism (multiple options)', + vehiclesafetyMeasuresafterUpgradefailure: 'Vehicle safety Measures after Upgrade failure (multiple options)', + informationsecuritymechanism: 'Information Security Mechanism(multiple options)', + dynamicsystem: 'Power System', + transmissionsystem: 'Transmission System', steeringsystem: 'Steering system', - brakingsystem: 'Braking system', - bodysystem: 'Body system', - vehicleenergysystem: 'Vehicle energy system', - forwardcollisionwarning: 'Forward collision warning (FCW)', + brakingsystem: 'Braking System', + bodysystem: 'Body System', + vehicleenergysystem: 'Vehicle Energy System', + forwardcollisionwarning: 'Forward Collision Warning (FCW)', laneDepartureWarning: 'Lane Departure Warning (LDW)', - multiareamonitoring: 'Multi-area monitoring (BSD)', - residentfatiguebasket: 'Resident fatigue basket AU CDFM)', - automaticemergencybraking: 'Automatic emergency braking (AEB)', + multiareamonitoring: 'Blind Spot Detection (BSD)', + residentfatiguebasket: 'Driver Fatigue Monitoring(DFM)', + automaticemergencybraking: 'Autonomous Emergency Braking(AEB)', adaptiveCruiseControl: 'Adaptive Cruise Control (ACC)', laneKeepingAssist: 'Lane Keeping Assist (LKA)', - intelligentParkingAssistance: 'Intelligent Parking Assistance (IPA)', - trafficCongestionAssistance: 'Traffic Congestion Assistance (TJA)', + intelligentParkingAssistance: 'Intelligent Parking Assist (IPA)', + trafficCongestionAssistance: 'Traffic Jam Assist', millimeterwaveradar: 'Millimeter wave radar', ultrasonicradar: 'Ultrasonic radar', - camera: 'camera', - asternimage: 'Astern image /360 (look around)', - Monocularbinocularmultiocular: 'Monocular/binocular/multiocular', - driverattentionmonitoringsystem: 'Driver attention monitoring system DMS', - positioningandnavigationsystem: 'Positioning and navigation system', - vehiclecommunicationsystem: 'Vehicle communication system', - driversurveillancecamera: 'Driver surveillance camera', - drivermonitoringinfraredsensor: 'Driver monitoring infrared sensor', - vehiclesatellitepositioningequipment: 'Vehicle satellite positioning equipment', - inertialnavigationsystem: 'Inertial navigation system', - wheelspeedmeter: 'Wheel speed meter', - highprecisionmap: 'High precision map', - electronicfence: 'Electronic fence', - signalingdevices: 'Driver assistance system controls, indicators and signaling devices', - driverassistancefunctioncontrols: 'Driver assistance function controls', - drivingassistancefunctionindicatorsignaldevice: 'Driving assistance function indicator/signal device', - steerinwheelreleaseindicatorsignaldevice: 'Steering wheel release indicator/signal device', - driverattentionindicatorsignaldevice: 'Driver attention indicator/signal device', - automaticDrivingDataRecordingSystem: 'Automatic Driving Data Recording System (DSSAD)', - eventdatarecordingsystem: 'Event data recording system (EDR)', - layoutposition: 'Layout position', - specificationmodel: 'Specification and model', - productionenterprise: 'Production enterprise', - qualitativelydescriberelevantplaces: 'Qualitatively describe relevant places', - systemname: 'System name', - systemspecificationmodel: 'System specification model', - systemproductionenterprise: 'System production enterprise', - softwareversionnumber: 'Software version number', - softwaredevelopmententerprise: 'Software development enterprise', - controlname: 'Control name', - hardwarespecificationmodel: 'Hardware specification model', - nameofindicatorsignaldevice: 'Name of indicator/signal device', - otaupgradefunctionmodule: 'OTA upgrade function module', + camera: 'Camera', + asternimage: 'Reversing camera/360 (surround view)', + Monocularbinocularmultiocular: 'Monocular/Binocular/Multiocular', + driverattentionmonitoringsystem: 'Driver Monitor System(DMS)', + positioningandnavigationsystem: 'Positioning and Navigation System', + vehiclecommunicationsystem: 'Vehicle Communication System', + driversurveillancecamera: 'Driver Surveillance Camera', + drivermonitoringinfraredsensor: 'Driver Monitoring Infrared Sensor', + vehiclesatellitepositioningequipment: 'Vehicle-mounted satellite positioning equipment (device for receiving satellite signals and auxiliary positioning signals, PPP/GNSS/RTK)', + inertialnavigationsystem: 'Inertial Navigation System', + wheelspeedmeter: 'Wheel Speedometer', + highprecisionmap: 'High-precision Map', + electronicfence: 'Electronic Fence', + signalingdevices: 'Driving Assistance System Controls, Indicators and Tell-tales', + driverassistancefunctioncontrols: 'Driving Assistance Function Controls', + drivingassistancefunctionindicatorsignaldevice: 'Driving Assistance Function Indicators/Tell-tales', + steerinwheelreleaseindicatorsignaldevice: 'Steering Wheel Hands Off Reminder/Tell-tales', + driverattentionindicatorsignaldevice: 'Driver Attention Reminder Indicators/Tell-tales', + automaticDrivingDataRecordingSystem: 'Data Storage System for Automated Driving(DSSAD)', + eventdatarecordingsystem: 'Event Data Recording System (EDR)', + layoutposition: 'Placement', + specificationmodel: 'Specification Model', + productionenterprise: 'Manufacturer', + qualitativelydescriberelevantplaces: 'Qualitative description of relevant places', + systemname: 'System Name', + systemspecificationmodel: 'System Specification Model', + systemproductionenterprise: 'System Manufacturer', + softwareversionnumber: 'Software Version Number', + softwaredevelopmententerprise: 'Software Development Enterprise', + controlname: 'Control Name', + hardwarespecificationmodel: 'Hardware Specification Model', + nameofindicatorsignaldevice: 'Indicators/Tell-tales Name', + otaupgradefunctionmodule: 'OTA Upgrade Function Module', upgradePurpose: 'Upgrade Purpose (multiple options)', impactassessmentofupgradeactivities: 'Impact assessment of upgrade activities', - correspondingvehicletype: 'Whether to change the technical parameters of the Announcement of the corresponding vehicle type', - technicalperformancechanges: 'Whether it involves product safety, environmental protection, energy saving, anti-theft and other technical performance changes', - technicalstandardsandsafetytechnicalconditions: 'Whether in line with national laws, administrative regulations, rules and regulations, as well as road motor vehicle announcement management related to the national technical standards and safety technical conditions', + correspondingvehicletype: 'Whether the change corresponds to the MIIT technical parameters for the model', + technicalperformancechanges: 'Whether it involves changes in product safety, environmental protection, energy saving, anti-theft and other technical performance', + technicalstandardsandsafetytechnicalconditions: 'Whether it complies with national laws, administrative regulations and rules, as well as national technical standards and safety technical conditions related to road motor vehicle announcement management, etc.', autoautonomousdrivingfunction: 'Whether it involves upgrades related to the auto autonomous driving function', - vehiclepriortothereleaseoftheupgrade: 'Confirm the compatibility of the upgrade package with the target vehicle configuration, including a compatibility assessment of the latest known software and hardware configuration of the target vehicle prior to the release of the upgrade', - conditionsareupgradesperformed: 'How and under what conditions are upgrades performed', - upgradefailureorinterruption: 'Safety mechanism for vehicle after upgrade failure or interruption (multiple options available)', + vehiclepriortothereleaseoftheupgrade: 'Whether the compatibility of the upgrade package with the target vehicle configuration is confirmed, including conducting a compatibility assessment with the latest known software and hardware configurations of the target vehicle before releasing the upgrade', + conditionsareupgradesperformed: 'How to perform the upgrade and under what conditions', + upgradefailureorinterruption: 'Safety mechanisms for vehicle after an upgrade failure or interruption (multiple options)', upgradeactivitiesaffectvehiclesafety: 'Whether the upgrade activities affect vehicle safety', upgradeactivityprovidesuserconfirmationoptions: 'Whether the upgrade activity provides user confirmation options', upgradepackagetest: 'Upgrade package test (multiple options)', - reliabilityofonlineupgradeactivities: 'It has verified the safety and reliability of online upgrade activities', - adjustmentofchangedBulletinparameters: 'Adjustment of changed Bulletin parameters (if any)', - preupgrade: 'pre-upgrade', - afterupgrade: 'After upgrade', - nameoftheupgradedelectroniccontroller: 'Name of the upgraded electronic controller', - adaptivehardwareversion: 'Adaptive hardware version', - beforethesoftwareversionupgraded: 'Before the software version is upgraded', - afterthesoftwareversionupgraded: 'After the software version is upgraded', - beforetheOSversionupgraded: 'Before the OS version is upgraded', - aftertheoperatingsystemversionupgraded: 'After the operating system version is upgraded', - initialpackageforintegrityinflammatorydata: 'Initial package for integrity of inflammatory data', + reliabilityofonlineupgradeactivities: 'Whether the safety and reliability of the online upgrade activity has been verified', + adjustmentofchangedBulletinparameters: 'Corresponding adjustments to the changed MIIT parameters (if any)', + preupgrade: 'Before Upgrade', + afterupgrade: 'After Upgrade', + nameoftheupgradedelectroniccontroller: 'Upgraded Electronic Controller Name', + adaptivehardwareversion: 'Adapted Hardware Version', + beforethesoftwareversionupgraded: 'Before software version number upgrade', + afterthesoftwareversionupgraded: 'After software version number upgrade', + beforetheOSversionupgraded: 'Before the operating system version number is upgraded', + aftertheoperatingsystemversionupgraded: 'After the operating system version number is upgraded', + initialpackageforintegrityinflammatorydata: 'Integrity Verification Data for the Initial Package', upgradepackageintegrityverificationdata: 'Upgrade package integrity verification data', - upgradepackagesize: 'Upgrade package size', + upgradepackagesize: 'Upgrade package size (MB)', differentialupgradeornot: 'Differential upgrade or not', - upgradedestinationype: 'Upgrade destination type', - functionalchangedescription: 'Functional change description', - variationofapplicableconditions: 'Variation of applicable conditions', - upgradetheelectroniccontrollerinvolved: 'Upgrade the electronic controller involved', - beforetheupgrade: 'Before the upgrade', - pgradepurpose: 'Upgrade purpose', + upgradedestinationype: 'Upgrade Destination Type', + functionalchangedescription: 'Function Change Description', + variationofapplicableconditions: 'Variation of Applicable Conditions', + upgradetheelectroniccontrollerinvolved: 'Upgrade involving electronic controllers', + beforetheupgrade: 'Before upgrade execution', + pgradepurpose: 'Upgrade Purpose', vehiclefunctionalityasaresultofsoftwareupgradeactivities: 'Any changes in vehicle functionality as a result of software upgrade activities', estimatedupgradeexecutionTime: 'Estimated upgrade execution Time (minutes)', - upgradeexecutionperiodasksifthevehicleisusable: 'The upgrade execution period asks if the vehicle is usable', + upgradeexecutionperiodasksifthevehicleisusable: 'Whether the vehicle is available or not during upgrade execution', vehiclefeaturesthatarenotavailableduringupgradeexecution: 'Vehicle features that are not available during upgrade execution', - vehicleusersafelyperformtheupgrade: 'Any guidance information to help the vehicle user safely perform the upgrade', - aftertheupgrade: 'After the upgrade', - notifiestheuseroftheupgradesuccessorfailure: 'Notifies the user of the upgrade success or failure', - informimplementationchanges: 'Inform implementation changes', - allupdatestotheusermanualareinformed: 'All updates to the user manual are informed', - usernotificationmode: 'User notification mode', - userinformstherelevantfile: 'user informs the relevant file', - taskname: 'Task name', - updatereleasetime: 'Update release time', - upgradeplanexpirationtime: 'Upgrade plan expiration time', - Listoftreatableregulations: 'List of treatable regulations', - Listofuntractableregulations: 'List of untractable regulations', + vehicleusersafelyperformtheupgrade: 'Any guidance to help vehicle users perform upgrades safely', + aftertheupgrade: 'After upgrade execute', + notifiestheuseroftheupgradesuccessorfailure: 'Inform the user whether the upgrade is successful or failed', + informimplementationchanges: 'Notify of implemented changes', + allupdatestotheusermanualareinformed: 'Inform of all updates to the user manual', + usernotificationmode: 'Ways of informing the user(multiple options)', + userinformstherelevantfile: 'Inform the user of relevant documents', + taskname: 'Task Name', + updatereleasetime: 'Upgrade Release Time', + upgradeplanexpirationtime: 'Upgrade Deadline', + Listoftreatableregulations: 'Available List', + Listofuntractableregulations: 'Unavailable List', project: 'Project', Categoryofdeliverables: 'Deliverable Type', - Taskconfirmationresult: 'Task confirmation result', + Taskconfirmationresult: 'Task Confirmation Result', Compliancetaskhandling: 'Compliance task handling', theDataYouSelectedContainsSkip: 'The data selected contains empty deliverable; please confirm whether to skip', designComplianceProcessFor: 'Design Compliance Process for', @@ -1682,69 +1684,69 @@ module.exports = { theDeadlineComplianceProcessCannotEmpty: 'The deadline for validation compliance process cannot be empty', theDeadlineForTheDesignCannotBeEmpty: 'The deadline for design compliance process cannot be empty', thePersonResponsibleForDesignCannotBeBlank: 'The owner for design compliance process cannot be empty', - recordmaintenance: 'Record maintenance', + recordmaintenance: 'Record Maintenance', module: 'module', - selectTheVehicleTemplate: 'Select the vehicle template', - theNameOfFirm: 'The name of firm', + selectTheVehicleTemplate: 'Select model template', + theNameOfFirm: 'Company Name', productClass: 'Product class', - communicationTerminal: 'Communication terminal (optional)', - otaUpgradeManagementSystem: 'OTA upgrade management system', + communicationTerminal: 'Communication Terminal (multiple options)', + otaUpgradeManagementSystem: 'OTA Upgrade Management System', pleaseStateTheDistribution: 'Please describe the integration and distribution of the management system and electronic controller', next: 'Next', last: 'Last', designComplianceReviewAdmin: 'Design Compliance Review', missionAccomplished: 'Task Completed', - yesisselected: 'If Yes is selected, enter', - forwardXquantity: 'For example, forward X quantity, backward X quantity, right X quantity, etc', - upgraderecordnumber: 'Upgrade record number', - Modelandfunctionrecord: 'Model and function record "Announcement" batch', + yesisselected: 'If Yes is selected, please enter', + forwardXquantity: 'e.g. forward × quantity, backward × quantity, back-left × quantity, back-right × quantity, etc.', + upgraderecordnumber: 'Upgrade Record Number', + Modelandfunctionrecord: 'Model and Function registration MIIT batch', taskTypeMismatch: 'Task Type Mismatch', taskNodeMismatch: 'Task Node Mismatch', - ifNot: 'If not, fill in "none" or "not involved"', + ifNot: 'If none, fill in "none" or "not involved"', designComplianceProcess: 'Design Compliance Process', validationComplianceProcess: 'Validation Compliance Process', - onlyDataInTheReminderProcessBanBeProcessed: 'Only data in the reminder process can be processed', + onlyDataInTheReminderProcessBanBeProcessed: 'Only remind data in the process', expeditionProcess: 'Reminder Process', - addfunction: 'Add function', - controllername: 'Controller name', - hardwaremanufacturer: 'Hardware manufacturer', + addfunction: 'Add Function', + controllername: 'Controller Name', + hardwaremanufacturer: 'Hardware Manufacturer', softwareversion: 'Software Version', returntofill: 'Return to fill', thereAreCurrentlyNoRegulationsToHandle: 'No regulations to be processed now', certificationSubmission: 'Application Submitted', certificationSubmissionEndTime: 'Application Submitted End Time', - upgradecompletion: 'Upgrade completion', + upgradecompletion: 'Upgrade completion status', implementedupgrade: 'Whether the implemented upgrade is consistent with the record', - numberofvehicles: 'Number of vehicles that have completed upgrades', - vehicleshavenotcompletedonlineupgrade: 'The reason why some vehicles have not completed online upgrade', + numberofvehicles: 'Number of upgraded vehicles', + vehicleshavenotcompletedonlineupgrade: 'The cause of some vehicles have not completed online upgrade', implementationrecords: 'Fault handling measures and emergency response implementation records', onlyDataWithListStatusDraftCanBeDeleted: 'Only data with a list status of Draft can be deleted', implementationDateTwo: 'Implementation Date', reasonForReturn: 'Reason for Reject', pleaseFillInTheInformationTaskProcess: 'Please fill in the information of the Eng. Interface and the owner before initiating the task process', complianceReporting: 'Compliance Reporting', - youCanOnlySelectStatusClearSubmit: 'You can only select data with a process status of Clear to Submit', - note: 'Note: The attachment includes the list of test items and test report. Test standard or technical specification', - notecsv: 'Note: CSV format is supported. The value is within 20M', - format: 'It supports doc/docx/pdf format and is less than 50M in size', + youCanOnlySelectStatusClearSubmit: 'Only data whose process status is list to be submitted can be selected', + note: 'Attachments include a list of test items, test reports, test standards or technical specifications', + notecsv: 'CSV only, less than 20M', + format: 'doc/docx/pdf, less than 50M', cantTransferToYourself: 'Can\'t transfer to yourself', theDataYouInitiate: 'The data you selected does not meet the process initiation criteria. Please recheck and initiate', dataWithProcessReleasedCannotBeReset: 'Data with a process status of list to be released cannot be reset', reasonForReturnOfDesignCompliance: 'Reason for the return by the regulation engineer', - noteone: 'Note: CSV format is supported. The value is within 20M and the number is 1 to 10', - notetwo: '\n1. Provide the modified or expanded batch of "Announcement" and supporting materials;\n2. Verification materials shall be submitted to ensure that products meet the relevant requirements of national laws and regulations, technologies, standards and technical specifications;\n', + noteone: 'CSV only, less than 20M and 20 in quantity.', + notetwo: '\n1, Provide changed or expanded MIIT batches and supporting materials;\n2, Homologation materials should be submitted to ensure that the products comply with national laws and regulations, technology, standards and technical specifications and other relevant requirements;\n', notethree: 'Provide supporting materials', - verifyComplianceConfirmReturnReason: 'Verify compliance Confirm return reason', + verifyComplianceConfirmReturnReason: 'Validation compliance Confirmation reject reason', theDeliverablesCannotReferencedPleaseReselect: 'The deliverables of this project cannot be referenced, please reselect', marketRegulationListMaintenance: 'Market Regulation List Maintenance', regulatoryListTemplate: 'Market Regulation List Template', - gnxtwh: 'Functional system maintenance', - gnxt: 'Functional system', - dykzq: 'Corresponding controller', + gnxtwh: 'Functional System Maintenance', + gnxt: 'Functional System', + dykzq: 'Corresponding Controller', releaseRegulatoryList: 'Regulation List Release', preHomoFlow: 'Pre-Homo Process', verifyConformanceConfirmation: 'Validation Compliance Confirmation', - designConformanceVerification: 'Design Compliance Check', + designConformanceVerification: 'Design Compliance Confirmation', nomorethan: 'No more than 10', marketCertificationList: 'Market Homologation List', uploadedfilelarger: 'The uploaded file is larger than', @@ -1762,7 +1764,7 @@ module.exports = { nonCompliance: 'Non-compliance', toBeTracked: 'To be tracked', NA: 'NA', - electroniccontrollerparameter: 'Electronic controller parameter', + electroniccontrollerparameter: 'Electronic Controller Parameter', reviewAndPass: 'Approve', reviewAndReturn: 'Reject', marketRegulationListDetails: 'Market Regulation List Details', @@ -1771,25 +1773,25 @@ module.exports = { andTheAndTaskPendingConfirmation: 'And the process status is Result Pending Submission, Review Returned, and Task Pending Confirmation', andProcessStatusIsTaskPendingConfirmation: 'And the process status is Task Pending Confirmation', andPendingSubmissionReviewReturned: 'And the process status is result pending submission, review returned', - deliverablesFor: 'Deliverables for', + deliverablesFor: 'Deliverable results', dutyPersonRejected: 'Rejected by the responsible person', acceptanceTheResponsiblePerson: 'Acceptance by the responsible person', theCurrentlySelectedDataContainsReviewed: 'The currently selected data contains reviewed data. Are you sure to return it?', reviewTheReasonForReturn: 'Review the reason for return', reasonForTaskRejection: 'Reason for task rejection', reasonForReturningToStudio: 'Reason for returning to Studio', - theDeliveryProcessCannotBeEmpty: 'The delivery type of the design compliance process cannot be empty', - theVerificationComplianceProcessCannotBeEmpty: 'The delivery type of the verification compliance process cannot be empty', + theDeliveryProcessCannotBeEmpty: 'The deliverable type of the design compliance process cannot be empty', + theVerificationComplianceProcessCannotBeEmpty: 'The XX of the validation compliance process cannot be empty', deadlineForConfirmationDesignComplianceResponsibility: 'Deadline for Confirmation of Design Compliance Responsibility', - deadlineForVerifyingComplianceResponsibilityConfirmation: 'Deadline for verifying compliance responsibility confirmation', + deadlineForVerifyingComplianceResponsibilityConfirmation: 'Deadline for validation compliance responsibility confirmation', batchTaskResponsibilityConfirmation: 'Responsibilty Confirmation in Batch', batchComplianceConfirmation: 'Compliance Confirmation in Batch', onlyDataWithApprovedCanCeSelected: 'Only data with a process status of result pending review or approved can be selected', deadlineForResponsibilityConfirmation: 'Deadline for Responsibility Confirmation', checkRegulatoryCompletedBefore: 'Check the implementation of regulatory requirements before product design freezes. Task delivery requirements will first be input and confirmed with the engineering team in G1, and compliance confirmation and review will be completed before G3.', - checkVerificationResultsBeforeMP: 'Check the verification results required by regulations before mass production of the product. Task delivery requirements will first be input and confirmed with the engineering team in G1, and compliance confirmation and review will be completed before MP.', + checkVerificationResultsBeforeMP: 'Check the validation results required by regulations before mass production of the product. Task delivery requirements will first be input and confirmed with the engineering team in G1, and compliance confirmation and review will be completed before MP.', modifyOperator: 'Change Operator', - onlyDesignComplianceConfirmationSelected: 'Only data with a design compliance confirmation process status of task to be confirmed, result to be submitted, or verification compliance confirmation process status of task to be confirmed, result to be submitted can be selected', + onlyDesignComplianceConfirmationSelected: 'Only data with a design compliance confirmation process status of task to be confirmed, result to be submitted, or validation compliance confirmation process status of task to be confirmed, result to be submitted can be selected', oneThePersonnelMustBeSelected: 'One of the personnel must be selected', pleaseSelectRegulatoryCurrentLogin: 'Please select Regulatory Engineer as the data for the current login', cannotSetResponsibilityAreas: 'Cannot set an interface person due to different responsibility areas', @@ -1798,21 +1800,21 @@ module.exports = { deliveryDate: 'Delivery Date', regulatoryEngineerReturns: 'Regulatory engineer returns', designProcessStatus: 'Design Process Status', - verifyProcessStatus: 'Verify Process Status', + verifyProcessStatus: 'Validation Process Status', design: 'Design', verify: 'Validation', inventoryVerifyEndTime: 'Inventory Verify End Time', - taskConfirmEndTime: 'Task Confirm End Time', - responsiblepersonfordesigncompliance: 'Responsible person for design compliance', - responsiblepersonforverifyingcompliance: 'Responsible person for verifying compliance', - verifytheconformancedeliverabletype: 'Verify the conformance deliverable type', - designaconformancedeliverabletype: 'Design a conformance deliverable type', + taskConfirmEndTime: 'Responsibility confirmation deadline', + responsiblepersonfordesigncompliance: 'Design Compliance Owner', + responsiblepersonforverifyingcompliance: 'Validation Compliance Owner', + verifytheconformancedeliverabletype: 'Validation Compliance Deliverable Type', + designaconformancedeliverabletype: 'Design Compliance Deliverable Type', reasonForReturnOfCompliance: 'Reason for compliance return', have: 'Yes', supplementarySubmission: 'Supplementary Submission', confirmSupplementarySubmission: 'Confirm Supplementary Submission ?', onlyProcessStatusOfApprovedCanBeSelected: 'Only data with a process status of approved can be selected', - andTheOperatorCurrentData: ' And the operator is the responsible person for the current data', + andTheOperatorCurrentData: ', and the logged-in person is the person responsible for the current data', upgradeInstructions: 'Upgrade Instructions', upgradeOrNot: 'Upgrade or not', operationRecords: 'Operation Record', @@ -1834,25 +1836,25 @@ module.exports = { proportion: 'Proportion', projectProgressStatistics: 'Project Progress Statistics', GRPSystemProjectProgressStatistics: 'GRP system project progress statistics', - statisticalNodes: 'Duty Department', + statisticalNodes: 'Responsible Department', proportionWithInTheAreaOfResponsibility: 'Proportion within the Responsible Field', contentsearch: 'Content Search', masterProject: 'Master Project', deliveryTime: 'Delivery Time', expectedDeliveryTime: 'Expected Delivery Time', changeAuthor: 'Change Author', - requireddataisnull: 'Required data is null', + requireddataisnull: 'Required data is empty', theProcessThatNeedsToBeReset: 'The process that needs to be reset', toResubmit: 'To Resubmit', - selectDesignConformanceAsConformance: 'Select Design Conformance verification process state as Conformance or Verify conformance verification process state as conformance obtained data', + selectDesignConformanceAsConformance: 'Please select data whose design compliance confirmation process status is in compliance or validation compliance confirmation process status is in compliance', submissionProcess: 'Submission Process', - localapproval1: 'Local Approval1', - localapproval2: 'LoLocal Approved2', + localapproval1: 'Local Approved1', + localapproval2: 'Local Approved2', averageapprovalperiod: 'Average approval period', day: 'day', passreturntime: 'Pass/return time', approvalcycle: 'Approval cycle(day)', - transittime: 'Transit Time', + transittime: 'Passing time', returntime: 'Return time', operationguide: 'Project operation guide', copyLink: 'Copy link', @@ -1866,7 +1868,7 @@ module.exports = { phoneSearch: 'Search', taskStatistics: 'Task Statistics', mine: 'Mine', - regulatoryCertificationProcess: 'Regulatoion Homologation Process', + regulatoryCertificationProcess: 'Regulation Homologation Process', authenticationParameterCollection: 'Homo Parameter Collection', regulatoryCertificationProcessData: 'Regulatoion Homologation Process Data', regulationListIssuance: 'Regulation List Release', @@ -1960,7 +1962,7 @@ module.exports = { Rematchornot: 'Rematch or not', Modifyremarks: 'Modify remarks', Reasonforreturn: 'Reason for return', - maintenanceTemplate: 'Maintenance template', + maintenanceTemplate: 'Maintenance Template', UserFeedback: 'User Feedback', Relevantlawsregulations: 'Relevant Regulations', Problemstate: 'Issue State', @@ -1971,7 +1973,7 @@ module.exports = { progresstracking: 'Progress Track', Fileupload: 'File upload', Addresslink: 'Address link', - Problemanagement: 'Problem management', + Problemanagement: 'Problem Management', Correspondingversion: 'Corresponding version', Listcreationtime: 'List creation time', Chinesecharacters: 'The role code cannot enter Chinese characters', @@ -1996,39 +1998,42 @@ module.exports = { power: 'Latent Parameter', producer: 'producer', Nameplatelabel: 'Nameplate label', - Batteryfilingrecord: 'Battery filing record', - Modelinformation: 'Model information', - Batterynationalcode: 'Battery national code', - Recordnformation: 'Record information', - Electriccellproductionenterprises: 'Electric cell production enterprises', - Assemblymanufacturer: 'Assembly manufacturer', + Batteryfilingrecord: 'Battery Filing Record', + Modelinformation: 'Model Information', + Batterynationalcode: 'Battery National Code', + Recordnformation: 'Record Information', + Electriccellproductionenterprises: 'Electric Cell Production Enterprises', + Assemblymanufacturer: 'Assembly Manufacturer', PartNumberCN: 'Part Number (Domestic)', PartNumberEU: 'Part Number (Foreign)', - bitfilecode: '24-bit file code', - Vendorcode: 'Vendor code', - Productclasscode: 'Product class code', - Batterytypecode: 'Battery type code', - Specificationcode: 'Specification code', - Traceinformationcode: 'Trace information code', - Productionyearmonthdateserialnumber: 'Production year month date serial number', - dimension: 'dimension(mm)', - Ratedcapacity: 'Rated capacity(Ah)', - Nominalvoltage: 'Nominal voltage(V)', - Ratedmass: 'Rated mass(kg)', - Numbercontainedmodules: 'Number of contained modules', - Moduleseriesparallelmode: 'Module series parallel mode', - modulspecificationcodeused: 'The module or monomer specification code used', - Coolingmode: 'Cooling mode', - Filingcompletiontime: 'Filing completion time', + bitfilecode: '24-bit File Code', + Vendorcode: 'Vendor Code', + Productclasscode: 'Product Type', + Batterytypecode: 'Battery Type Code', + Specificationcode: 'Specification Code', + Traceinformationcode: 'Trace Information Code', + Productionyearmonthdateserialnumber: 'Production Year Month Date Serial Number', + dimension: 'Dimension(mm)', + Ratedcapacity: 'Rated Capacity(Ah)', + Nominalvoltage: 'Nominal Voltage(V)', + Ratedmass: 'Rated Mass(kg)', + Numbercontainedmodules: 'Number of Contained Modules', + Moduleseriesparallelmode: 'Module Series Parallel Mode', + modulspecificationcodeused: 'The Module or Monomer Specification Code Used', + Coolingmode: 'Cooling Mode', + Filingcompletiontime: 'Filing Completion Time', Platformdevelopmentvalvepoint: 'Platform development valve point', Compliancemanagementvalvepoint: 'Compliance management valve point', - designTaskValidation: 'Design task validation', - verificationTaskValidation: 'Verification task validation', + designTaskValidation: 'Design Task Confirmation', + verificationTaskValidation: 'Validation Task Confirmation', platformType: 'Platform Type', - extensionItems:'Extension Items', - problemPriority:'Problem Priority', - high:'High', - centre:'Centre', - low:'Low', - interfacePerson:'Interface person', + extensionItems: 'Extension Items', + problemPriority: 'Problem Priority', + high: 'High', + centre: 'Centre', + low: 'Low', + interfacePerson: 'Eng. Interface', + regulationEngineerInitiateProcess: 'Regulation Engineer Initiate Process', + parameterCollectionDescription:'In the extension parameter collection list, the data highlighted in red represents the deleted parameters after template update, the data highlighted in yellow represents the changed parameters after template update, and for the newly added parameters after template update, homo engineer should find in "More-Add" and add them to the parameter collection list.', + experienceReference:'Experience reference', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index f422e901f..eb71f41de 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -33,7 +33,7 @@ module.exports = { details: '详情', password: '密码', freezePassword: '确定冻结吗?', - youThaw: '确定解冻吗', + youThaw: '确定解冻吗?', freezePasManagementPage: '这是用户管理页面?', serialNumber: '序号', userAccount: '用户账号', @@ -102,7 +102,6 @@ module.exports = { strip: '条', RoleCode: '角色编码', createTime: '创建时间', - userName: '用户名称', userManual: '用户手册', selectOneRule: '请选择一个角色!', setAttribute: '请设置url.list2属性!', @@ -167,7 +166,6 @@ module.exports = { enterDictionaryNumber: '请输入字典编号', DictionaryInformation: '字典信息', RefreshCache: '刷新缓存', - recycleBin: '回收站', DictionaryConfiguration: '字典配置', dataDictionaryPage: '这是数据字典页面', describe: '描述', @@ -217,7 +215,6 @@ module.exports = { LogContent: '日志内容', OperatorID: '操作人ID', OperatorName: '操作人名称', - ElapsedTime: '耗时(毫秒)', LogType: '日志类型', tableName: '表名', enterTableName: '请输入表名', @@ -232,9 +229,7 @@ module.exports = { selectSameDatabase: '请选择相同的数据库表和数据ID进行比较', DataComparison: '数据比较', PromptInformation: '提示信息', - enterAccountNumber: '请输入账号', AddExistingUsers: '添加已有用户', - newUser: '新建用户', disassociate: '取消关联', AssignDepartmentRoles: '分配部门角色', userDetail: '用户详情', @@ -289,7 +284,6 @@ module.exports = { enterMenuSort: '请输入菜单排序', RouteMenu: '是否路由菜单', HideRoute: '隐藏路由', - CacheRoute: '是否缓存路由', AggregateRouting: '聚合路由', OpenMode: '打开方式', external: '外部', @@ -353,9 +347,7 @@ module.exports = { FailedQuery: '查询已删除的用户失败:', headPortrait: '头像', RestorUser: '恢复用户', - sureRestore: '您确定要恢复这', Users: '个用户吗?', - reduction: '还原', UsersSucceeded: '个用户成功!', standard: '编号', title: '标题', @@ -372,7 +364,6 @@ module.exports = { templateDownload: '模板下载', textInformation: '文本信息', relatedInformation: '关联信息', - RetrieveFiles: '调取已入库文件', SplitText: '拆分已入库文本', ImportResults: '导入拆分结果', copy: '复制', @@ -382,7 +373,6 @@ module.exports = { BatchCancel: '批量取消收藏', SubscriptionManagement: '订阅领域管理', BatchCancellation: '批量取消', - enterMenuEnName: '请输入菜单英文名称', MenuEnName: '菜单英文名称', clickUpload: '点击上传', viewUploadedFiles: '查看已上传文件', @@ -403,7 +393,6 @@ module.exports = { DocumentSplitting: '文档拆分', DocumentTranslation: '文档翻译', DocumentComparison: '文档对比', - KnowledgeDatabase: '知识问答库', StandardDetails: '标准详情', whole: '全部', DocumentLibrary: '文档库', @@ -491,7 +480,6 @@ module.exports = { charactersLength1to300: '长度在 1 - 300字符', OnlyOneSelected: '只能选择一条数据', OnlyPDF: '只能导入pdf文件', - open: '展开', away: '收起', terminationProcess: '终止流程', issue: '下发', @@ -791,7 +779,6 @@ module.exports = { FourDecimalplaces: '四位小数', Positivefloatingpointnumber: '正浮点数', oneconfigurationInformation: '至少含有一个配置信息', - Correspondingstandarddeleted: '对应标准已删除', changeTheTitle: '标题已存在,请更换标题', resetPassword: '重置密码', departmentAllocation: '部门配置', @@ -800,7 +787,6 @@ module.exports = { from: '从', ReferenceTo: '引用到', checkTheDeadline: '选中参数项收集截止时间', - accountNumber: '账号', fullName: '姓名', configurationInformation: '配置信息', modifyprojectInterfacePerson: '修改工程接口人', @@ -859,10 +845,8 @@ module.exports = { result: '结果', opinion: '意见', OperationNode: '操作节点', - selectInquiry: '选择询问人', sendBack: '退回', taskConfirmationProcess: '任务确认流程', - notFinished: '未完成', Finished: '已完成', theRequirementst: '工程接口人确认符合性要求', dataLoading: '数据加载中...', @@ -893,7 +877,6 @@ module.exports = { engineer: '工程师', engineeringConfirmationDetails: '工程交付详情', reminder: '提醒', - adopt: '通过', reviewedByThePersonInCharge: '负责人审核', onlyDeleted: '只能删除流程未开始和流程结束的数据', experimentPassed: '实验通过', @@ -985,7 +968,6 @@ module.exports = { theNumberAgain: '编号已存在不能重复添加', myList: '我的待办', myNews: '我的消息', - monthlyReportRegulations: '法规月报', Pending: '待处理', custom: '自定义', notSelected: '未选择', @@ -1014,7 +996,6 @@ module.exports = { roleSwitching: '角色切换', setCreator: '设置创建人', documentLibraryDetails: '文档库详情', - question: '催办', ConfirmQuestion: '确认催办?', OnlyOrTaskconfirmationOut: '只有清单确认状态或任务确认状态为待确认时才可以进行催办', disableInput: '禁止输入', @@ -1230,23 +1211,17 @@ module.exports = { English: '英文', requiredParametersEmpty: '必填参数不能为空', theResponsiblePersonAndDeadlineClank: '的责任人、截止时间不能为空', - bringInTheProjectInterface: '带入工程接口人', theCurrentListSaved: '当前列表数据已全部提交,无法进行暂存', defaultTemplate: '默认模板', newRequestCommentListTemplate: '新征求意见清单模板', NewReleasedStandardTemplate: '新发布标准模板', pleaseSelectStandard: '请选择标准', - theResponsiblePersonEmpty: '的责任人不能为空', - theDeadlineEmpty: '的截止时间不能为空', - theDeliveryTypeCannotBeEmpty: '的交付物类型不能为空', For: '针对于', markedRejection: '标注的驳回意见', RegulationListConfirmationTask: '清单确认任务', RegulationListConfirmationNotification: '清单确认通知', - RegulationTaskConfirmation: '任务确认任务', DesignComplianceTask: '设计符合性任务', PreHomoTask: 'Pre-Homo任务', - ValidationTask: '验证符合性任务', DesignComplianceNotification: '设计符合性通知', PreHomoNotification: 'Pre-Homo通知', ValidationComplianceNotification: '验证符合性通知', @@ -1259,7 +1234,6 @@ module.exports = { standardDecompositionDocument: '带入标准分解单', pleaseSelectStandardFirst: '请先选择标准', evaluatorFeedback: '评估人反馈', - nameTechnicalDocument: '技术文件名称', chapter: '章节', problemDescription: '问题说明', filingExternalOpinions: '对外意见归档', @@ -1281,7 +1255,6 @@ module.exports = { theDoesNotSupportPreview: '当前文件格式不支持预览', releaseSituation: '发布情况', comparisonResults: '对比结果', - Published: '已发布', initiateComparison: '发起对比', translationLanguage: '翻译语言', translationResults: '翻译结果', @@ -1290,7 +1263,6 @@ module.exports = { RegulatoryProcessEvaluationResults: '法规流程评估结果', ViewConformanceResults: '查看符合性结果', CommentsCollectionResultsForReference: '意见收集结果', - TechnicalEvaluationResultsForReference: '技术评估结果', ComplianceConfirmationRecord: '符合性确认记录', complianceConfirmation: '符合性确认', Deriveconformanceresults: '导出符合性结果', @@ -1306,9 +1278,7 @@ module.exports = { comparisonDifferenceComment: '对比差异评论', fullTextComments: '全文评论', fileDeclaration: '文件说明', - FileForDetails: '文件详情', Converting: '转换中', - convertNetwork: '转换完成', convertFailed: '转换失败', standardData: '标准数据', Theorganization: '组织机构', @@ -1383,12 +1353,11 @@ module.exports = { created: '创建时间', updated: '更新时间', optionDropDownBox: '下拉选择', - attachmentUpload: '附件上传', textInput: '文本输入', Paraname: '参数名称', Parabatch: '参数批次', freeze: '请选择冻结配置', - deleteNode: '若有文件信息将同步删除,确认删除该条数据?', + deleteNodeOne: '若有文件信息将同步删除,确认删除该条数据?', HaveReleased: '已发布', forward: '转发', areResponsibilityAreaInformationBatch: '确实是否批量修改责任领域信息', @@ -1407,7 +1376,6 @@ module.exports = { onlyone: '只能输入一个合并分隔符', theInconsistentSameResponsibility: '所选的数据责任领域不一致;请选择相同的责任领域', taskConfirmedPersonnelCannotBeSetBatch: '任务确认状态为待确认时无法批量设置人员', - theSelectedDataResponsibilityFieldCannotEmpty: '所选数据责任领域不能为空', theTaskConfirmationStatusCannot: '只能变更清单确认状态为拒绝或接受、及任务确认状态不能为待确认的数据', BatchMaintenanceProgress: '批量维护进度', BatchChangeStatus: '批量修改状态', @@ -1443,7 +1411,6 @@ module.exports = { notExport: '未导出', hasBeenExport: '已导出', firstLevelDirectory: '一级目录', - deselectAll: '取消全选', classification: '分类', consistentAssessment: '一致', viewConsistentAssessment: '查看一致项', @@ -1485,7 +1452,6 @@ module.exports = { relatedProjectVersion: '相关项目版本', Importfailure: '导入失败', CuiBan: '催办', - certificationCategoryNumber: '认证类别编号', historicalrecord: '历史记录', Referenceparametercolumn: '设置参考列', Updateparametercolumn: '更新参考列', @@ -1527,7 +1493,6 @@ module.exports = { confirmLaunchTask: '确认发起任务?', conditionsNotMet: '不满足条件', onlyProcessStatusReturned: '只能退回流程状态为清单待校核和责任人拒绝的数据', - onlyProcessReturned: '只能发起流程状态为任务待发起和责任人拒绝的数据,并且交付物类型、工程接口人、责任人、截止时间不能为空', confirmToAcceptTheTask: '确认接受任务?', confirmRejectTask: '确认拒绝任务?', onlyDataStatusConfirmedSelected: '只能选择流程状态为任务待确认的数据', @@ -1636,8 +1601,8 @@ module.exports = { uploadattachment: '上传附件', Processhistory: '流程历史', resultofhandling: '处理结果', - Listoftreatableregulations: '可处理法规列表', - Listofuntractableregulations: '不可处理法规列表', + Listoftreatableregulations: '可办理列表', + Listofuntractableregulations: '不可办理列表', project: '项目', Categoryofdeliverables: "交付物类型", Taskconfirmationresult: '任务确认结果', @@ -1848,7 +1813,6 @@ module.exports = { designConformanceVerification: '设计符合性确认', nomorethan: '不能超过10个', uploadedfilelarger: '文件大于', - marketCertificationList: '市场认证清单', marketCertificationListDetails: '市场认证清单详情', andTheProcessStatusTheList: '并且流程状态不能为清单待校核的数据', pleasefillintherange: '请填写范围', @@ -1872,13 +1836,10 @@ module.exports = { andTheAndTaskPendingConfirmation: '并且流程状态为结果待提交、审查退回、任务待确认', andProcessStatusIsTaskPendingConfirmation: '并且流程状态为任务待确认', andPendingSubmissionReviewReturned: '并且流程状态为结果待提交、审查退回', - deliverablesFor: '的交付结果', - dutyPersonRejected: '责任人拒绝', theCurrentlySelectedDataContainsReviewed: '当前选择的数据中包含审查通过的数据,确认退回吗?', reviewTheReasonForReturn: '审查退回原因', reasonForTaskRejection: '任务拒绝原因', reasonForReturningToStudio: '退回至Studio原因', - theDeliveryProcessCannotBeEmpty: '设计符合性流程的交付物类型不能为空', theVerificationComplianceProcessCannotBeEmpty: '验证符合性流程的交付物类型不能为空', deadlineForConfirmationDesignComplianceResponsibility: '设计符合性责任确认截止日期', deadlineForVerifyingComplianceResponsibilityConfirmation: '验证符合性责任确认截止日期', @@ -1990,66 +1951,9 @@ module.exports = { browsingTime:'浏览时间', pleaseViewOnPc:'请在pc的查看', taskHandling:'任务办理', - notOnlyRz: '否', - EnterValue: '请输入值', - SavedQuery: '保存的查询', - NoQueriesSaved: '没有保存任何查询', - SavedName: '保存的名称', - CannotQueryEmpty: '不能查询空条件', - EmptyCannotSaved: '空条件不能保存', - cannotEmpty: '不能为空', - name: '名称', - AlreadyExists: '已存在,是否覆盖?', - SavedSuccessfully: '保存成功', - DeleteQuery: '是否删除当前查询', - VersionNotSupported: '版本不支持', - SaveQueryCriteria: '保存查询条件', - roleName: '角色名称', - newRole: '新建角色', - RoleManagement: '角色管理', - toGrantAuthorization: '授权', - newUser: '新增用户', - ExistingUsers: '已有用户', - total: '共', - strip: '条', - RoleCode: '角色编码', - createTime: '创建时间', - userName: '用户名称', - userManual: '用户手册', - selectOneRule: '请选择一个角色!', - setAttribute: '请设置url.list2属性!', - setDelAttribute: '请设置url.delete2 属性!', - setDelBatAttribute: '请设置url.deleteBatch2 属性!', - selectARecored: '请选择一条记录!', - confirmDeletion: '确认删除', - deleteAData: '是否删除选中数据?', - AddDepartment: '添加部门', - AddSubordinate: '添加下级', - DepartmentInformation: '部门信息', - BatchDelete: '批量删除', - DeleteMultiplePiecesData: '删除多条数据', - CurrentSelection: '当前选择', - Deselect: '取消选择', - enterDepartmentName: '请输入部门名称', - addTo: '添加', - cancel: '取消', - checkAll: '全部勾选', - DeselectAll: '取消全选', - ExpandAll: '展开所有', - MergeAll: '合并所有', - TreeOperation: '树操作', - essentialInformation: '基本信息', - DetailsPhasedImplementation: '分阶段实施详情', - Statutenumberclause: '法规编号/条款', - Typeofimplementation: '实施类型', + ImplementationDate: '实施时间', - OrganizationName: '机构名称', - EnterOrganizationDepartment: '请输入机构/部门名称', - SuperiorDepartment: '上级部门', - enterOrganizationCode: '请输入机构编码', - nothing: '无', - OrganizationType: '机构类型', - PleaseSelectOrganizationType: '请选择机构类型', + company: '公司', post: '岗位', sort: '排序', @@ -2072,14 +1976,10 @@ module.exports = { permissionTemporrily: '普通员工暂此权限', DepartmentRole: '部门角色', DictionaryName: '字典名称', - DictionaryEnName: '字典英文名称', - enterDictionary: '请输入字典名称', - enterEnDictionary: '请输入字典英文名称', DictionaryNumber: '字典编号', enterDictionaryNumber: '请输入字典编号', DictionaryInformation: '字典信息', RefreshCache: '刷新缓存', - recycleBin: '回收站', DictionaryConfiguration: '字典配置', dataDictionaryPage: '这是数据字典页面', describe: '描述', @@ -2115,7 +2015,6 @@ module.exports = { SearchLog: '搜索日志', enterSearchKeyword: '请输入搜索关键词', enterSearchContent: '请输入搜索内容', - enterStandard: '请输入编号', entertitle: '请输入标题', OperationType: '操作类型', selectOperationType: '请选择操作类型', @@ -2146,7 +2045,6 @@ module.exports = { PromptInformation: '提示信息', enterAccountNumber: '请输入账号', AddExistingUsers: '添加已有用户', - newUser: '新建用户', disassociate: '取消关联', AssignDepartmentRoles: '分配部门角色', userDetail: '用户详情', @@ -2181,7 +2079,6 @@ module.exports = { Submenu: '子菜单', ButtonsPermissions: '按钮/权限', enterMenuName: '请输入菜单名称', - SuperiorMenu: '上级菜单', selectSuperiorMenu: '请选择上级菜单', selectParentMenu: '请选择父级菜单', MenuPath: '菜单路径', @@ -2197,9 +2094,7 @@ module.exports = { selectAuthorizationPolicy: '请选择授权策略', selectStatus: '请选择状态', MenuIcon: '菜单图标', - ClickSelectIcon: '点击选择图标', enterMenuSort: '请输入菜单排序', - RouteMenu: '是否路由菜单', HideRoute: '隐藏路由', CacheRoute: '是否缓存路由', AggregateRouting: '聚合路由', @@ -2252,7 +2147,6 @@ module.exports = { MailboxExists: '邮箱已存在', enterMailboxCorrect: '请输入正确格式的邮箱', UserExists: '用户名已存在', - nameExists: '工号已存在', uploadPictures: '请上传图片', DepartmentSearch: '部门搜索', selectSuperiorDepartment: '请选择上级部门', @@ -2263,7 +2157,6 @@ module.exports = { BatchRestore: '批量还原', RestoreUser: '还原用户', FailedQuery: '查询已删除的用户失败:', - headPortrait: '头像', RestorUser: '恢复用户', sureRestore: '您确定要恢复这', Users: '个用户吗?', @@ -2279,7 +2172,6 @@ module.exports = { ModificationContent: '修改内容', personnel: '人员', dataExport: '数据导出', - exportWithFile: '带文件导出', Push: '推送', templateDownload: '模板下载', textInformation: '文本信息', @@ -2295,9 +2187,7 @@ module.exports = { SubscriptionManagement: '订阅领域管理', BatchCancellation: '批量取消', enterMenuEnName: '请输入菜单英文名称', - MenuEnName: '菜单英文名称', clickUpload: '点击上传', - viewUploadedFiles: '查看已上传文件', standardSelection: '标准选择', Collection: '收藏', CancelCollection: '取消收藏', @@ -2352,8 +2242,6 @@ module.exports = { MessageNotification: '消息通知', MessageCenter: '消息中心', SeeMore: '查看更多', - OperationSuccessful: '操作成功', - Intheexport: '导出中...', operationFailed: '操作失败', PersonnelSelection: '人员选择', EmployeeNumber: '员工号', @@ -2373,7 +2261,6 @@ module.exports = { Module: '所属模块', PleaseSelectModule: '请选择所属模块', AttributeName: '属性名称', - PleaseEnterPropertyName: '请输入属性名称', PleaseEnterYourEnglishName: '请输入英文名称', PleaseSelectAttributeType: '请选择属性类型', OptionContent: '选项内容', @@ -2386,15 +2273,12 @@ module.exports = { DocumentLibraryListDisplay: '文档库列表展示', SelectWhetherDisplayList: '请选择是否文档库列表展示', SelectDisplayArea: '请选择展示区域', - Search: '是否搜索', SelectWhetherToSearch: '请选择是否搜索', DisplayOtherModules: '其它模块展示', RegulationsListDisplay: '法规清单展示', selectDisplayListRegulations: '请选择法规清单是否展示', SearchCenterDisplay: '搜索中心展示', - selectSearchCenterDisplayed: '请选择搜索中心是否展示', selectWhetherRequired: '请选择是否必填', - SortNumber: '排序号', enterDisplayArea: '请输入展示区域', charactersLength: '长度在 1 - 50字符', enterSortingNumber: '请输入排序号', @@ -2403,7 +2287,6 @@ module.exports = { charactersLength1to300: '长度在 1 - 300字符', OnlyOneSelected: '只能选择一条数据', OnlyPDF: '只能导入pdf文件', - open: '展开', away: '收起', terminationProcess: '终止流程', issue: '下发', @@ -2448,10 +2331,8 @@ module.exports = { characters: '字符', Processing: '办理', See: '查看', - labelNameCannotDuplicate: '标签名称不能重复', list: '列表', paragraph: '段落', - enterNumber: '请输入编号', enterTitle: '请输入标题', backDocument: '回传至文档库', fileName: '文件名称', @@ -2467,7 +2348,6 @@ module.exports = { functionalAreas: '功能领域', technicalField: '技术领域', informationCategory: '信息类别', - contentValidity: '内容简介', TechnicalfieldSupplementCn: '技术领域补充(中文)', TechnicalfieldSupplementEn: '技术领域补充(英文)', content: '内容', @@ -2485,7 +2365,6 @@ module.exports = { fileUploadFailed: '文件上传失败', deletedSuccessfully: '删除成功', uploadSuccessful: '上传成功', - noDelete: '该展示区域有关联数据,无法删除!', numberRows: '行数', numberColumns: '列数', table: '表格', @@ -2497,7 +2376,6 @@ module.exports = { searchScope: '检索范围', newNode: '新增节点', modifyNode: '修改节点', - deleteNode: '删除节点', ImplementationDate: '新车型实施日期', ImplementationDateOne: '新车型实施日期', vehicleInProductionDate: '在产车实施日期', @@ -2510,13 +2388,10 @@ module.exports = { batchSettingPersonnel: '批量设置人员', selectDirectoryTerms: '请选择添加条款的目录位置', selectDirectorylocation: '请选择添加文件夹的目录位置', - OnlyWordItem: '只有GSO文件类型,才能拆分pdf文件,请重新选择文件', OnlyWord: '只能导入word文件', labelAreaDeleted: '若进行删除,则该展示区域下标签项都将被删除', - StandardBreakdown: '标准分解单', searchInResults: '结果中检索', searchContent: '搜索内容', - viewFile: '查看已上传文件', fileFormatIncorrect: '文件格式不正确', pleaseUploadFile: '请上传文件', documentSplitList: '文档拆分列表展示', @@ -2544,11 +2419,7 @@ module.exports = { PrehomoConfirmation: 'Pre-Homo确认', verificationAndConformityconfirmation: '验证符合性确认', StandardImplementationDate: '标准实施日期', - regulatoryEngineer: '法规工程师', - certifiedEngineer: '认证工程师', - regulatoryEngineerOrcertifiedEngineer: '法规工程师/认证工程师', judge: '判断', - engineeringInterfacePerson: '工程接口人', typeOfDeliverables: '交付物类型', deliverableTemplate: '交付物模板', entryName: '项目名称', @@ -2622,8 +2493,6 @@ module.exports = { listConfirmation: '清单确认', ListConfirmationDeadline: '清单确认截止时间', dataConfirmation: '请选择清单确认状态为未发起或拒绝的数据,以及法规工程师、认证工程师不为空', - pleaseSelectinitiatedOrRejected: '请选择设计符合性确认流程状态为清单待发布、法规工程师退回或验证符合性确认流程状态为清单待发布、法规工程师退回的数据', - pleaseSelectTheDataverificationVerified: '请选择设计符合性确认流程状态为清单待校核、责任人拒绝或验证符合性确认流程状态为清单待校核、责任人拒绝的数据', pleaseSelectTheDataverification: '请选择设计符合性确认流程状态为任务待发起、责任人拒绝或验证符合性确认流程状态为任务待发起、责任人拒绝的数据', TheEngineerAndCertification: '的法规工程师不能为空', taskDataConfirmation: '请选择清单确认状态为接受及任务确认状态为未发起或拒绝的数据,以及工程接口人不为空', @@ -2676,12 +2545,7 @@ module.exports = { timeoperation: '时,才有权限操作此按钮。', NiOnumberis: 'NIO编号为', NoOperationPermissionForthisbutton: '没有此按钮的操作权限', - Attentionfreeze: '注:冻结后该冻结配置内容不可进行编辑。', Filledperson: '工程接口人没有填写,请填写完工程接口人再进行下发收集。', - Datastatusis: '数据状态为', - Datastateexcept: '数据状态除了', - Dropdownradio: '下拉单选', - Dropdownmultipleselection: '下拉多选', a: '+', positiveInteger: '正整数', // 参数收集 @@ -2695,12 +2559,8 @@ module.exports = { thisbuttonCompleted: '当状态为"已完成或未收集"时,才可操作此按钮', Frozenstatus: '冻结状态,仅可以查看', chinese: '中文', - integerOrDecimal: '整数或小数', - OneDecimalPlace: '一位小数', - TwoDecimalplaces: '两位小数', Threedecimalplaces: '三位小数', FourDecimalplaces: '四位小数', - Positivefloatingpointnumber: '正浮点数', oneconfigurationInformation: '至少含有一个配置信息', Correspondingstandarddeleted: '对应标准已删除', changeTheTitle: '标题已存在,请更换标题', @@ -2719,12 +2579,9 @@ module.exports = { ParameterLibrary: '参数库', referenceparameter: '引用参数', tempSave: '暂存', - Assignedby: '分配填写人', - CompulsoryWithdrawal: '强制撤回', SynchronousReportLibrary: '同步上报库', FreezeConfiguration: '冻结配置', distributionAndCollection: '下发收集', - OneclickCollection: '一键下发收集', deleteConfiguration: '删除配置', addConfiguration: '添加配置', electricMachinery: '电机', @@ -2737,7 +2594,6 @@ module.exports = { changeExtension: '变更扩展', addDetailList: '添加清单', editDetailList: '编辑清单', - detailedList: '清单', copyParamDetailList: '复制参数清单', collectionCompletionTime: '收集完成时间', parameterTemplateName: '参数模板名称', @@ -2745,9 +2601,7 @@ module.exports = { templateName: '模板名称', pleaseSelectData: '请选择数据', templateCopy: '模板复制', - NiOnumberalreadyexists: 'NIO编号已存在,请更换NIO编号', attachmentTemplate: '附件模板', - controlAlternatives: '控件备选值', controlVerification: '控件校验', controlType: '控件类型', certificationCategory: '认证类别', @@ -2877,7 +2731,6 @@ module.exports = { pleaseSubmitStatus: '请把工程确认的数据都点为确认状态进行提交', modelName: '车型名称', modelYear: '年款', - NoteConfirmTheChange: '注意:重置后所选条目数据将变为清单待发布状态,历史数据将消失,请确认是否进行流程重置', onlyDataChanged: '只能变更任务确认状态为接受的数据', inquiry: '询问', ConfirmationDeadline: '确认截止时间', @@ -2915,7 +2768,6 @@ module.exports = { Submitted: '已提交', ReturnedEngineer: '认证工程师退回', SynchronizedLibrary: '已同步至上报库', - Statusis: '状态为', toHavePermission: '才有权限', and: '并且', pleaseWaitWhileRunning: '运行中请稍等', @@ -2995,7 +2847,6 @@ module.exports = { Copyfailed: '复制失败', Synchronizedatabase: '是否同步选中行数据至上报库?', Aftersynchronization: '同步后的参数项将不可修改', - FNumber: '账号', NNNiONumber: 'NIO编号', NNiONumber: 'NIO编号', ParameterNo: '编号', @@ -3008,27 +2859,13 @@ module.exports = { NcertificationCategory: '认证类别', NcontrolType: '控件类型', NcontrolVerification: '控件校验', - NcontrolAlternatives: '控件备选值', DefaultValue: '默认值', NattachmentTemplate: '附件模板', Ntext: '文本', - NDropdownradio: '下拉单选', - NDropdownmultipleselection: '下拉多选', Nenclosure: '附件', - Atext: '下拉单选+文本', - Btext: '下拉多选+文本', - Ctext: '文本+附件', - Dtext: '下拉单选+附件', - Etext: '下拉多选+附件', - Ftext: '下拉单选+文本+附件', Gtext: '标题', - Nnothing: '无', Nchinese: '中文', NpositiveInteger: '整数', - NPositivefloatingpointnumber: '正浮点数', - NintegerOrDecimal: '整数或小数', - NOneDecimalPlace: '一位小数', - NTwoDecimalplaces: '两位小数', NThreedecimalplaces: '三位小数', NFourDecimalplaces: '四位小数', Copyparameterlist: '复制参数清单', @@ -3037,23 +2874,17 @@ module.exports = { English: '英文', requiredParametersEmpty: '必填参数不能为空', theResponsiblePersonAndDeadlineClank: '的责任人、截止时间不能为空', - bringInTheProjectInterface: '带入工程接口人', theCurrentListSaved: '当前列表数据已全部提交,无法进行暂存', defaultTemplate: '默认模板', newRequestCommentListTemplate: '新征求意见清单模板', NewReleasedStandardTemplate: '新发布标准模板', pleaseSelectStandard: '请选择标准', - theResponsiblePersonEmpty: '的责任人不能为空', - theDeadlineEmpty: '的截止时间不能为空', - theDeliveryTypeCannotBeEmpty: '的交付物类型不能为空', For: '针对于', markedRejection: '标注的驳回意见', RegulationListConfirmationTask: '清单确认任务', RegulationListConfirmationNotification: '清单确认通知', - RegulationTaskConfirmation: '任务确认任务', DesignComplianceTask: '设计符合性任务', PreHomoTask: 'Pre-Homo任务', - ValidationTask: '验证符合性任务', DesignComplianceNotification: '设计符合性通知', PreHomoNotification: 'Pre-Homo通知', ValidationComplianceNotification: '验证符合性通知', @@ -3066,7 +2897,6 @@ module.exports = { standardDecompositionDocument: '带入标准分解单', pleaseSelectStandardFirst: '请先选择标准', evaluatorFeedback: '评估人反馈', - nameTechnicalDocument: '技术文件名称', chapter: '章节', problemDescription: '问题说明', filingExternalOpinions: '对外意见归档', @@ -3087,7 +2917,6 @@ module.exports = { theDoesNotSupportPreview: '当前文件格式不支持预览', releaseSituation: '发布情况', comparisonResults: '对比结果', - Published: '已发布', initiateComparison: '发起对比', translationLanguage: '翻译语言', translationResults: '翻译结果', @@ -3095,7 +2924,6 @@ module.exports = { category: '类别', RegulatoryProcessEvaluationResults: '法规流程评估结果', ViewConformanceResults: '查看符合性结果', - TechnicalEvaluationResultsForReference: '技术评估结果参考', ComplianceConfirmationRecord: '符合性确认记录', complianceConfirmation: '符合性确认', Deriveconformanceresults: '导出符合性结果', @@ -3113,9 +2941,7 @@ module.exports = { fullTextComments: '全文评论', pleaseEnterfullTextComments: '请输入全文评论', fileDeclaration: '文件说明', - FileForDetails: '文件详情', Converting: '转换中', - convertNetwork: '转换完成', convertFailed: '转换失败', standardData: '标准数据', Theorganization: '组织机构', @@ -3138,23 +2964,17 @@ module.exports = { English: '英文', requiredParametersEmpty: '必填参数不能为空', theResponsiblePersonAndDeadlineClank: '的责任人、截止时间不能为空', - bringInTheProjectInterface: '带入工程接口人', theCurrentListSaved: '当前列表数据已全部提交,无法进行暂存', defaultTemplate: '默认模板', newRequestCommentListTemplate: '新征求意见清单模板', NewReleasedStandardTemplate: '新发布标准模板', pleaseSelectStandard: '请选择标准', - theResponsiblePersonEmpty: '的责任人不能为空', - theDeadlineEmpty: '的截止时间不能为空', - theDeliveryTypeCannotBeEmpty: '的交付物类型不能为空', For: '针对于', markedRejection: '标注的驳回意见', RegulationListConfirmationTask: '清单确认任务', RegulationListConfirmationNotification: '清单确认通知', - RegulationTaskConfirmation: '任务确认任务', DesignComplianceTask: '设计符合性任务', PreHomoTask: 'Pre-Homo任务', - ValidationTask: '验证符合性任务', DesignComplianceNotification: '设计符合性通知', PreHomoNotification: 'Pre-Homo通知', ValidationComplianceNotification: '验证符合性通知', @@ -3167,7 +2987,6 @@ module.exports = { standardDecompositionDocument: '带入标准分解单', pleaseSelectStandardFirst: '请先选择标准', evaluatorFeedback: '评估人反馈', - nameTechnicalDocument: '技术文件名称', chapter: '章节', problemDescription: '问题说明', filingExternalOpinions: '对外意见归档', @@ -3189,7 +3008,6 @@ module.exports = { theDoesNotSupportPreview: '当前文件格式不支持预览', releaseSituation: '发布情况', comparisonResults: '对比结果', - Published: '已发布', initiateComparison: '发起对比', translationLanguage: '翻译语言', translationResults: '翻译结果', @@ -3198,7 +3016,6 @@ module.exports = { RegulatoryProcessEvaluationResults: '法规流程评估结果', ViewConformanceResults: '查看符合性结果', CommentsCollectionResultsForReference: '意见收集结果', - TechnicalEvaluationResultsForReference: '技术评估结果', ComplianceConfirmationRecord: '符合性确认记录', complianceConfirmation: '符合性确认', Deriveconformanceresults: '导出符合性结果', @@ -3214,9 +3031,7 @@ module.exports = { comparisonDifferenceComment: '对比差异评论', fullTextComments: '全文评论', fileDeclaration: '文件说明', - FileForDetails: '文件详情', Converting: '转换中', - convertNetwork: '转换完成', convertFailed: '转换失败', standardData: '标准数据', Theorganization: '组织机构', @@ -3283,28 +3098,21 @@ module.exports = { simplifiedChinese: '简体中文', uploadOnly: '只能上传', turnOnAutoMatch: '打开自动匹配', - Adjustareasofresponsibility: '调整责任领域', regulatoryTechnicalAssessment: '法规技术评估', OpenOne: '公开', Privacy: '私密', - punctuationmark: '只能输入除#号外的英文标点符号', created: '创建时间', updated: '更新时间', - optionDropDownBox: '下拉选择', attachmentUpload: '附件上传', textInput: '文本输入', Paraname: '参数名称', Parabatch: '参数批次', freeze: '请选择冻结配置', - deleteNode: '若有文件信息将同步删除,确认删除该条数据?', - HaveReleased: '已发布', forward: '转发', - areResponsibilityAreaInformationBatch: '确实是否批量修改责任领域信息', issuedBy: '发布人', pleaseDecompositionStandardOrder: '请导入或带入至少一条分解标准单', currentlyTheFirstOneThatCannotMovedUp: '当前已是第一个无法进行上移', currentlyTheLastOneCannotmovedDown: '当前已是最后一个无法进行下移', - weilaiRegulationMonthlyReport: '蔚来法规月报', onlyTheDataWhoseStatusNotInitiatedAcceptedChanged: '只能变更清单确认状态为接受并且任务清单状态为未发起或任务清单状态为接受的数据', thereTitleWhichCannotBeDeleted: '该标题下存在新增内容,不能删除', industryInformationDynamicTemplate: '行业资讯动态模板', @@ -3313,13 +3121,10 @@ module.exports = { source: '来源', sourceEn: '来源(英文)', onlyone: '只能输入一个合并分隔符', - theInconsistentSameResponsibility: '所选的数据责任领域不一致;请选择相同的责任领域', taskConfirmedPersonnelCannotBeSetBatch: '任务确认状态为待确认时无法批量设置人员', theSelectedDataResponsibilityFieldCannotEmpty: '所选数据责任领域不能为空', - theTaskConfirmationStatusCannot: '只能变更清单确认状态为拒绝或接受、及任务确认状态不能为待确认的数据', BatchMaintenanceProgress: '批量维护进度', BatchChangeStatus: '批量修改状态', - CollectinguthenticationParameters: '认证参数收集', rejectedBy: '拒绝人', rejectionTime: '拒绝时间', rejectReason: '拒绝原因', @@ -3327,7 +3132,6 @@ module.exports = { regulatoryAndTechnicalAssessment: '法规技术评估', listConfirmationRejectionReason: '清单确认驳回原因', taskConfirmationRejectionReason: '任务确认驳回原因', - reportedDelete: '您将永久删除清单', reportDelete: ',包括清单参数项及导出历史。一旦删除将无法撤销或恢复。', confirmdelete: '请确认要删除的清单标题', Deletetitle: '删除标题', @@ -3341,7 +3145,6 @@ module.exports = { processNodesAreInconsistentPleaseSelectConsistentData: '流程节点不一致;请选择一致的数据', exportFileName: '导出文件名称', initiateSupplementaryProcess: '发起补充流程', - whetherTheDisassemblySheetIncluded: '是否含有拆解单', inRecentMonths3: '近3个月内', inRecentMonths6: '近6个月内', inRecentYear1: '近1年内', @@ -3352,7 +3155,6 @@ module.exports = { notExport: '未导出', hasBeenExport: '已导出', firstLevelDirectory: '一级目录', - deselectAll: '取消全选', classification: '分类', consistentAssessment: '一致', viewConsistentAssessment: '查看一致项', @@ -3373,12 +3175,9 @@ module.exports = { taskStatus: '任务状态', taskConfirmationHandling: '任务确认办理', relatedVersion: '相关版本', - filledBy: '待分配填写人', - parameterToBeInitiated: '参数待发起', listTaskConfirmation: '清单任务确认', completednum: '待填写', filledBynum: '待分配填写人', - parameterToBeInitiatednum: '参数待发起', listToConfirm: '待确认', toSubmit: '待提交', toAudit: '待审核', @@ -3392,7 +3191,6 @@ module.exports = { cancelTopping: '取消置顶', relatedProjectVersion: '相关项目版本', Importfailure: '导入失败', - CuiBan: '催办', certificationCategoryNumber: '认证类别编号', historicalrecord: '历史记录', Referenceparametercolumn: '设置参考列', @@ -3404,10 +3202,6 @@ module.exports = { contactTheFounder: '联系作者', customize: '列表设置', customColumn: '自定义列', - afterdate: '在...日期之后', - afterdatein: '在...日期之后(包含)', - beforedate: '在...日期之前', - beforedatein: '在...日期之前(包含)', inRecentMonthsin6: '近6个月内(已实施)', batchUpdateDeadline: '批量更新截止时间', timeInterval: '时间区间', @@ -3543,8 +3337,6 @@ module.exports = { uploadattachment: '上传附件', Processhistory: '流程历史', historyData: '1.法规工程师,2.责任人,3.责任人,4.法规工程师', - Listoftreatableregulations: '可处理法规列表', - Listofuntractableregulations: '不可处理法规列表', project: '项目', Categoryofdeliverables: "交付物类型", Taskconfirmationresult: '任务确认结果', @@ -3685,7 +3477,6 @@ module.exports = { designComplianceProcessFor: '的设计符合性流程', validationComplianceProcessFor: '的验证符合性流程', designComplianceProcess: '设计符合性流程', - validationComplianceProcess: '验证符合性流程', thePersonResponsibleForVerifyingEmpty: '验证符合性流程的责任人不能为空', theDeadlineComplianceProcessCannotEmpty: '验证符合性流程的截止时间不能为空', theDeadlineForTheDesignCannotBeEmpty: '设计符合性流程的截止时间不能为空', @@ -3794,9 +3585,7 @@ module.exports = { onlyDataWithApprovedCanCeSelected: '只能选择流程状态为结果待审查、审查通过的数据', deadlineForResponsibilityConfirmation: '责任确认截止日期', checkRegulatoryCompletedBefore: "检查法规要求在产品设计冻结前的落实,任务交付要求将首先在G1与工程团队完成输入和确认,并于G3前完成符合性确认和审查。", - checkVerificationResultsBeforeMP:'检查法规要求在产品量产前的验证结果,任务交付要求将首先在G1与工程团队完成输入和确认,并于MP前完成符合性确认和审查。', modifyOperator:'修改操作人', - onlyDesignComplianceConfirmationSelected:'只能选择设计符合性确认流程状态为任务待确认、结果待提交或验证符合性确认流程状态为任务待确认、结果待提交的数据', oneThePersonnelMustBeSelected:'必须选择其中一个人员', pleaseSelectRegulatoryCurrentLogin:'请选择法规工程师为当前登录人的数据', cannotSetResponsibilityAreas:'所属不同责任领域,不能设置接口人', @@ -3805,20 +3594,13 @@ module.exports = { deliveryDate:'交付日期', regulatoryEngineerReturns:'法规退回', designProcessStatus:'设计流程状态', - verifyProcessStatus:'验证流程状态', design:'设计', verify:'验证', inventoryVerifyEndTime:'清单校核截止时间', - taskConfirmEndTime:'责任确认截止时间', - responsiblepersonfordesigncompliance:'设计符合性责任人', - responsiblepersonforverifyingcompliance:'验证符合性责任人', - verifytheconformancedeliverabletype:'验证符合性交付物类型', - designaconformancedeliverabletype:'设计符合性交付物类型', reasonForReturnOfCompliance: '符合性退回原因', supplementarySubmission:'补充提交', confirmSupplementarySubmission:'确认补充提交?', onlyProcessStatusOfApprovedCanBeSelected:'只能选择流程状态为审查通过的数据', - andTheOperatorCurrentData:',并且登录人为当前数据的责任人', upgradeInstructions:'升版说明', upgradeOrNot:'是否升版', operationRecords:'操作记录', @@ -3846,10 +3628,8 @@ module.exports = { deliveryTime:'交付时间', expectedDeliveryTime:'预计交付时间', changeAuthor:'更改作者', - requireddataisnull:'必填数据为空', theProcessThatNeedsToBeReset:'需要重置的流程', toResubmit:'重新提交', - selectDesignConformanceAsConformance:'请选择设计符合性确认流程状态为符合或验证符合性确认流程状态为符合的数据', submissionProcess:'提交流程', localapproval1:'地方批准1', localapproval2:'地方批准2', @@ -3987,4 +3767,7 @@ module.exports = { centre:'中', low:'低', interfacePerson:'接口人', + regulationEngineerInitiateProcess:'法规工程师发起流程', + parameterCollectionDescription:'变更扩展参数收集清单中,标红数据为模板更新后被删除参数,标黄数据为模板更新后变更参数,模板更新新增参数请认证工程师在“更多-添加”中查阅并添加至参数收集清单中。', + experienceReference:'经验参考', } \ No newline at end of file diff --git a/jero-web/src/components/Standardselection/index.vue b/jero-web/src/components/Standardselection/index.vue index 41854300a..79797040e 100644 --- a/jero-web/src/components/Standardselection/index.vue +++ b/jero-web/src/components/Standardselection/index.vue @@ -303,6 +303,11 @@ width: 80px; overflow: hidden; padding: 0; + background: #FFFFFF; + border-radius: 4px 4px 4px 4px; + opacity: 1; + border: 1px solid #00BEBE; + color: #01A0AC; } .drawer-bootom-button { @@ -359,7 +364,7 @@ ::v-deep .box-input-select .ant-select-selection--multiple::-webkit-scrollbar { /*height: 52px!important;*/ - display: block; + display: none; } .itemOption { diff --git a/jero-web/src/components/UpdateLog/versionUpdatedRecordList.vue b/jero-web/src/components/UpdateLog/versionUpdatedRecordList.vue index 1642c6f6c..a5c7cb8a6 100644 --- a/jero-web/src/components/UpdateLog/versionUpdatedRecordList.vue +++ b/jero-web/src/components/UpdateLog/versionUpdatedRecordList.vue @@ -10,12 +10,7 @@ :loading="loading" > - - - - + {{record.versionNum}}
@@ -36,6 +31,7 @@ + + \ No newline at end of file diff --git a/jero-web/src/components/globalAdvancedQuery/index.vue b/jero-web/src/components/globalAdvancedQuery/index.vue index d67d3003e..4a00f2d4c 100644 --- a/jero-web/src/components/globalAdvancedQuery/index.vue +++ b/jero-web/src/components/globalAdvancedQuery/index.vue @@ -632,6 +632,12 @@ delete item.options //update-end-author:taoyan date:20200819 for:【开源问题】 高级查询 下拉框作为并且选项很多多多 LOWCOD-779 } + if (Array.isArray(item.tree)) { + // 如果有字典属性,就不需要保存 options 了 + //update-begin-author:taoyan date:20200819 for:【开源问题】 高级查询 下拉框作为并且选项很多多多 LOWCOD-779 + delete item.tree + //update-end-author:taoyan date:20200819 for:【开源问题】 高级查询 下拉框作为并且选项很多多多 LOWCOD-779 + } } } return array diff --git a/jero-web/src/components/tableCollection/index.vue b/jero-web/src/components/tableCollection/index.vue index 598cb8ea0..2eed64c34 100644 --- a/jero-web/src/components/tableCollection/index.vue +++ b/jero-web/src/components/tableCollection/index.vue @@ -15,28 +15,28 @@ sticky :columns="columns" :rowClassName="rowClassName" - @onHeaderRow='onHeaderRow' + @onHeaderRow="onHeaderRow" > {{ text }} - {{text}} + {{ text }}
- - {{ item.db_field_txt }} - {{$t('See')}} + {{ item.db_field_txt }} + {{ $t('See') }}
- {{$t('See')}} + {{ $t('See') }} {{ text && text.length > 8 ? text.slice(0, 7) + '...' : text }} @@ -47,14 +47,16 @@ {{ (record.dataValue == null || record.dataValue == 'undefined')? '--': record.dataValue}} + @click="areaOfResponsibility(record)">{{ (record.dataValue == null || record.dataValue == 'undefined') ? '--' : record.dataValue }} - {{ (record.dataValue == null || record.dataValue == 'undefined')? '--': record.dataValue}} + {{ (record.dataValue == null || record.dataValue == 'undefined') ? '--' : record.dataValue }} - {{ (record.dataValue == null || record.dataValue == 'undefined')? '--': record.dataValue}} + {{ (record.dataValue == null || record.dataValue == 'undefined') ? '--' : record.dataValue }} @@ -62,27 +64,36 @@ - {{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '')? '--': record.dataValue }} + {{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '') ? '--' : record.dataValue + }} - {{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '')? '--': record.dataValue }} + {{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '') ? '--' : record.dataValue + }} - {{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '')? '--': record.dataValue }} + {{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '') ? '--' : record.dataValue + }} - + @collectionForm="collectionForm"/>
+
+ {{ $t('explain') + ': ' }} + {{ $t('parameterCollectionDescription') }} +
- - - - + + + @@ -125,27 +136,27 @@ - - - - + + + @@ -167,9 +178,9 @@ @@ -183,7 +194,7 @@ @ok="handleOk" @cancel="handleCancel" > - + @@ -220,48 +231,48 @@ - +
- {{$t('configurationName')}}: + {{ $t('configurationName') }}: {{configDetail.configName}} + >{{ configDetail.configName }}
- {{$t('Model')}}: + {{ $t('Model') }}: {{configDetail.carType}} + >{{ configDetail.carType }}
- {{$t('electricMachinery')}}: + {{ $t('electricMachinery') }}: {{configDetail.motor}} + >{{ configDetail.motor }}
- {{$t('Version')}}: + {{ $t('Version') }}: {{configDetail.version}} + >{{ configDetail.version }}
- {{$t('Battery')}}: + {{ $t('Battery') }}: {{configDetail.battery}} + >{{ configDetail.battery }}
- +
- {{$t('ParameterDescription')}}: + {{ $t('ParameterDescription') }}: {{this.description}} + >{{ this.description }}
@@ -271,14 +282,14 @@ - \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/ProjectDetails/index.vue b/jero-web/src/views/projectManagement/ProjectDetails/index.vue index d24bf45f4..a1fd5ec66 100644 --- a/jero-web/src/views/projectManagement/ProjectDetails/index.vue +++ b/jero-web/src/views/projectManagement/ProjectDetails/index.vue @@ -17,13 +17,13 @@ - - - - - - - +
+ + {{$t('comment')}} +
- {{$t('ParameteItemCollectionList')}}({{this.$route.query.type == '1' ? $t(this.$route.query.projectName) : $t(this.$route.query.projectName.slice(0,-3)) + '-' + $t(this.$route.query.projectVersion)}}) — {{$t(this.$route.query.title)}} — {{$t(this.$route.query.version)}} + {{ $t('ParameteItemCollectionList') }}({{ this.$route.query.type == '1' ? $t(this.$route.query.projectName) : $t(this.$route.query.projectName.slice(0, -3)) + '-' + $t(this.$route.query.projectVersion) }}) — {{ $t(this.$route.query.title) }} — {{ $t(this.$route.query.version) }}
@@ -22,8 +22,8 @@
- - {{rolename}} + + {{ rolename }}
@@ -33,13 +33,13 @@
-
+
- +
- {{$t('ParameterNo')}} + {{ $t('ParameterNo') }}
@@ -48,7 +48,7 @@
- {{$t('NParameterName')}} + {{ $t('NParameterName') }}
@@ -68,7 +68,7 @@
- {{$t('NareaOfResponsibility')}} + {{ $t('NareaOfResponsibility') }}
- {{ item.value}} + {{ item.value }} @@ -94,18 +94,18 @@
- {{$t('certificationCategory')}} + {{ $t('certificationCategory') }}
+ :triggerChange="false" :dictCode="'cert_category'" />
- {{$t('dre')}} + {{ $t('dre') }}
@@ -114,7 +114,7 @@
- {{$t('sdt')}} + {{ $t('sdt') }}
@@ -123,7 +123,7 @@
- {{$t('status')}} + {{ $t('status') }}
- {{ item.text}} + {{ item.text }} @@ -148,13 +148,15 @@ {{ !toggleSearchStatus ? $t('open') : $t('away') }} - + - {{$t('reset')}} - {{$t('query')}} + {{ $t('reset') }} + {{ $t('query') }} + :fieldList="fieldList" /> @@ -169,12 +171,12 @@ - + @@ -257,66 +259,66 @@
- - {{$t('distributionAndCollection')}} + + {{ $t('distributionAndCollection') }}
- - {{$t('Assignedby')}} + + {{ $t('Assignedby') }}
- - {{$t('dataExport')}} + + {{ $t('dataExport') }}
- - {{$t('Derivedlist')}} + + {{ $t('Derivedlist') }}
- - {{$t('referenceparameter')}} + + {{ $t('referenceparameter') }}
- - {{$t('tempSave')}} + + {{ $t('tempSave') }}
- - {{$t('submit')}} + + {{ $t('submit') }}
- - {{$t('sendBack')}} + + {{ $t('sendBack') }}
- +
- - {{$t('export')}} + + {{ $t('export') }}
- - {{$t('CompulsoryWithdrawal')}} + + {{ $t('CompulsoryWithdrawal') }}
@@ -347,7 +349,7 @@
- + {{ $t('customize') }}
@@ -365,49 +367,50 @@
- - {{$t('dataExport')}} + + {{ $t('dataExport') }}
- - {{$t('Derivedlist')}} + + {{ $t('Derivedlist') }}
- + @listReset="listReset" @LoginUserType="LoginUserType" />
+
- - + + - + - - - + + + @@ -421,64 +424,65 @@ -
- {{$t('Attentionfreeze')}} +
+ {{ $t('Attentionfreeze') }}
- - + + - - + + - + - + - - + + - - + + - - + + - + @@ -517,7 +521,7 @@
* - {{$t('roleSwitching')}} + {{ $t('roleSwitching') }}
- - {{$t('NiOnumberis')}} + + {{ $t('NiOnumberis') }} - - {{ item.nioNumber }}、 + + {{ item.nioNumber }}、 - - {{$t('Filledperson')}} + + {{ $t('Filledperson') }} -
-
{{$t('NiOnumberis')}}{{ item.nioNumber }},{{$t('Statusis')}}{{ item.state }},{{$t('NoOperationPermissionForthisbutton')}}。 +
+
{{ $t('NiOnumberis') }}{{ item.nioNumber }},{{ $t('Statusis') }}{{ item.state }},{{ $t('NoOperationPermissionForthisbutton') }}。
-
- {{ currentPersonRole =='homo'? $t('certifiedEngineer'): (currentPersonRole =='sdt'? - $t('engineeringInterfacePerson'): $t('completedBy')) }}{{jurisdiction === 'homoQZTH'? $t('Datastateexcept') - : $t('Datastatusis')}} +
+ {{ currentPersonRole == 'homo' ? $t('certifiedEngineer') : (currentPersonRole == 'sdt' ? + $t('engineeringInterfacePerson') : $t('completedBy')) + }}{{ jurisdiction === 'homoQZTH' ? $t('Datastateexcept') + : $t('Datastatusis') }} - '{{$t('CollectionInitiated')}}'、'{{$t('ReturnedPerson')}}'{{$t('or')}}'{{$t('alteration')}}' + '{{ $t('CollectionInitiated') }}'、'{{ $t('ReturnedPerson') }}'{{ $t('or') }}'{{ $t('alteration') }}' - '{{$t('Submitted')}}'{{$t('or')}}'{{$t('alteration')}}' + '{{ $t('Submitted') }}'{{ $t('or') }}'{{ $t('alteration') }}' - '{{$t('CollectionInitiated')}}' + '{{ $t('CollectionInitiated') }}' - '{{$t('handledInterface')}}'{{$t('or')}}'{{$t('Filledreturn')}}' + '{{ $t('handledInterface') }}'{{ $t('or') }}'{{ $t('Filledreturn') }}' - '{{$t('completed')}}''{{$t('or')}}'{{$t('Filledreturn')}}''{{$t('or')}}'{{$t('ReturnedEngineer')}}' + '{{ $t('completed') }}''{{ $t('or') }}'{{ $t('Filledreturn') }}''{{ $t('or') }}'{{ $t('ReturnedEngineer') }}' - '{{$t('completed')}}'{{$t('or')}}'{{$t('ReturnedEngineer')}}'{{$t('or')}}'{{$t('alteration')}}' + '{{ $t('completed') }}'{{ $t('or') }}'{{ $t('ReturnedEngineer') }}'{{ $t('or') }}'{{ $t('alteration') }}' - - {{$t('Submitted')}} + + {{ $t('Submitted') }} -

'{{$t('handledInterface')}}'

- {{$t('or')}} -

'{{$t('Filledreturn')}}'

+

'{{ $t('handledInterface') }}'

+ {{ $t('or') }} +

'{{ $t('Filledreturn') }}'

-

'{{$t('completed')}}'

- {{$t('or')}} -

'{{$t('ReturnedEngineer')}}'

+

'{{ $t('completed') }}'

+ {{ $t('or') }} +

'{{ $t('ReturnedEngineer') }}'

-

'{{$t('SynchronizedLibrary')}}'

- {{$t('or')}} -

'{{$t('CollectionInitiated')}}'

+

'{{ $t('SynchronizedLibrary') }}'

+ {{ $t('or') }} +

'{{ $t('CollectionInitiated') }}'

- - {{$t('completed')}} + + {{ $t('completed') }} - - {{$t('Submitted')}} + + {{ $t('Submitted') }} - {{$t('timeoperation')}} + {{ $t('timeoperation') }}
@@ -649,8 +654,8 @@ :loading="loading" > - {{$t('download')}} - {{$t('delete')}} + {{ $t('download') }} + {{ $t('delete') }} @@ -681,29 +686,29 @@ @cancel="handleCancel" >
-
+
* - {{$t('exportOption')}} + {{ $t('exportOption') }}
- {{$t('includeTitle')}} + {{ $t('includeTitle') }} - {{$t('Notitleincluded')}} + {{ $t('Notitleincluded') }} @@ -723,9 +728,9 @@ > -
- {{$t('Exportsuccessexportlist')}} + {{ $t('Exportsuccessexportlist') }} @@ -733,1024 +738,785 @@ - {{this.$t('pleaseWaitWhileRunning')}} - + {{ this.$t('pleaseWaitWhileRunning') }} +
- \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/certificationList/components/addCodeNumber.vue b/jero-web/src/views/projectManagement/components/certificationList/components/addCodeNumber.vue index dc711e17d..66def7fbc 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/components/addCodeNumber.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/components/addCodeNumber.vue @@ -19,7 +19,7 @@ {{$t('standard')}}
+ v-model="queryParam.serial_number">
@@ -53,6 +64,9 @@ {{$t('reset')}} {{$t('query')}} +
@@ -70,18 +84,18 @@ :loading="loading">
- +
+ +
@@ -96,21 +110,27 @@ \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/listEditModel.vue b/jero-web/src/views/projectManagement/components/listEditModel.vue index dac7d0fda..4664b8487 100644 --- a/jero-web/src/views/projectManagement/components/listEditModel.vue +++ b/jero-web/src/views/projectManagement/components/listEditModel.vue @@ -758,22 +758,22 @@ ], designRemark: [ { - max: 300, - message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 300 + this.$t('Characters'), + max: 1000, + message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 1000 + this.$t('Characters'), trigger: 'blur' } ], verifyRemark: [ { - max: 300, - message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 300 + this.$t('Characters'), + max: 1000, + message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 1000 + this.$t('Characters'), trigger: 'blur' } ], prehomoRemark: [ { - max: 300, - message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 300 + this.$t('Characters'), + max: 1000, + message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 1000 + this.$t('Characters'), trigger: 'blur' } ], diff --git a/jero-web/src/views/projectManagement/components/listOfRegulations.vue b/jero-web/src/views/projectManagement/components/listOfRegulations.vue index 4995c32d8..6538bf28a 100644 --- a/jero-web/src/views/projectManagement/components/listOfRegulations.vue +++ b/jero-web/src/views/projectManagement/components/listOfRegulations.vue @@ -1403,17 +1403,17 @@ value: 'attestationRank', text: this.$t('certificationLevel'), dictCode: 'attestation_rank'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框 - } - // { - // type: 'deliverables', - // value: 'designDeliverableType', - // text: this.$t('designaconformancedeliverabletype'), - // }, - // { - // type: 'deliverables', - // value: 'verifyDeliverableType', - // text: this.$t('verifytheconformancedeliverabletype'), - // }, + }, + { + type: 'deliverables', + value: 'designDeliverableType', + text: this.$t('designaconformancedeliverabletype'), + }, + { + type: 'deliverables', + value: 'verifyDeliverableType', + text: this.$t('verifytheconformancedeliverabletype'), + }, // { // type: 'Personnel', // value: 'designDutyId', @@ -2997,7 +2997,7 @@ this.confirmLoading = false this.getList() } else { - this.$message.warning(this.$t('operationFailed')) + this.$message.warning(res.message) this.confirmLoading = false } let that = this diff --git a/jero-web/src/views/projectManagement/platformItemLibraryDetails/index.vue b/jero-web/src/views/projectManagement/platformItemLibraryDetails/index.vue index 663ec2e0c..b2f8697c8 100644 --- a/jero-web/src/views/projectManagement/platformItemLibraryDetails/index.vue +++ b/jero-web/src/views/projectManagement/platformItemLibraryDetails/index.vue @@ -199,16 +199,16 @@ export default { }, roleSwitchListEn: { '0': 'R&H Studio', - '1': 'studio', - '2': 'homo', - '4': 'Regulatory Engineer/Certification Engineer', + '1': 'Studio', + '2': 'Homo Engineer', + '4': 'Regulation Engineer/Homo Engineer', '11': 'R&H Manager', '12': 'admin', '13': 'Viewer', '14': 'BrandAdministrator', - '20': 'Interface person', + '20': 'Eng. Interface', '21': 'Person liable', - '30': 'Engineering interface person', + '30': 'Eng. Interface', '31': 'Person liable' }, areaOfResponsibility: {}, diff --git a/jero-web/src/views/projectManagement/projectNonConformance/moudles/addModel.vue b/jero-web/src/views/projectManagement/projectNonConformance/moudles/addModel.vue index 4bdffcda9..0a95a7847 100644 --- a/jero-web/src/views/projectManagement/projectNonConformance/moudles/addModel.vue +++ b/jero-web/src/views/projectManagement/projectNonConformance/moudles/addModel.vue @@ -3,7 +3,7 @@ - +
* @@ -27,8 +27,6 @@
- -
@@ -44,6 +42,9 @@
+ + +
@@ -59,8 +60,6 @@
- -
@@ -80,6 +79,9 @@
+ + +
@@ -94,7 +96,7 @@ :getPopupContainer="triggerNode=> triggerNode.parentNode" showSearch @change="platformChange" - :style="formInline.projectType == 'none' ? 'width:100%' : 'width:50%'" + :style="!formInline.projectType ? 'width:100%' : 'width:calc(50% - 6px);'" optionFilterProp="label" :autoClearSearchValue="false" :placeholder="$t('PleaseSelect')+$t('type')"> @@ -113,7 +115,7 @@ v-model="formInline.projectId" :getPopupContainer="triggerNode=> triggerNode.parentNode" showSearch - style="width: 50%;float: right" + style="width: calc(50% - 6px);float: right;margin-left: 12px" optionFilterProp="label" :autoClearSearchValue="false" :placeholder="$t('PleaseSelect')+$t('RelatedItems')"> @@ -132,7 +134,7 @@ v-model="formInline.projectId" :getPopupContainer="triggerNode=> triggerNode.parentNode" showSearch - style="width: 50%;float: right" + style="width: calc(50% - 6px);float: right;margin-left: 10px" mode="multiple" optionFilterProp="label" :autoClearSearchValue="false" @@ -149,8 +151,7 @@
- - +
@@ -179,6 +180,8 @@
+ +
@@ -208,8 +211,6 @@
- -
@@ -236,9 +237,9 @@
-
+ +
- + + + +
- {{$t('putAway')}} - {{$t('open')}} + + @@ -273,22 +274,31 @@ :title="$t('documents')">{{$t('documents')}}
-
+
- - + + + + + + + + + +
{{ (formInline.file === 'null' || formInline.file === '' || formInline.file == null) ? $t('Fileupload') : $t('viewUploadedFiles') @@ -307,10 +317,16 @@ :title="$t('progresstracking')">{{$t('progresstracking')}}
-
+ {{ $t('newlyAdded') }} + +
-
+
@@ -321,11 +337,41 @@ -
- +
+
+
+
+ + {{$t('putAway')}} +
+
+ + {{$t('delete')}} +
+
+
+
+
+
+
+ + {{$t('open')}} +
+
+ + {{$t('delete')}} +
+
+
+ + + +
@@ -333,13 +379,13 @@ - {{$t('newlyAdded')}} - {{$t('delete')}} + + + + - {{$t('putAway')}} - {{$t('open')}} + +
@@ -375,21 +421,31 @@ :title="$t('examineapproveevidence')">{{$t('examineapproveevidence')}}
-
+
- - + + + + + + + + +
{{ (formInline.approvalEvidence === 'null' || formInline.approvalEvidence === '' || formInline.approvalEvidence == null) ? $t('Fileupload') : $t('viewUploadedFiles') @@ -408,47 +464,6 @@
- - - - -
-
- * - - {{$t('progresstracking')}} -
- - - - - - - - -
-
-
-
-
+
@@ -475,6 +491,7 @@ import 'quill/dist/quill.snow.css' import 'quill/dist/quill.bubble.css' import Standardselection from '@/components/Standardselection/index' + import viewImg from './viewImg' import TrackingModel from './TrackingModel' import uploadFile from '@/components/uploadFile/file' import { quillEditor } from 'vue-quill-editor' @@ -484,6 +501,7 @@ import { mapGetters } from 'vuex' import axios from 'axios' import Vue from 'vue' + import { ImagePreview } from 'vant' const toolbarOptions = [ ['bold', 'italic', 'underline', 'strike'], // toggled buttons @@ -515,7 +533,8 @@ Standardselection, uploadFile, quillEditor, - TrackingModel + TrackingModel, + viewImg }, data() { return { @@ -590,7 +609,6 @@ ] }, visible: false, - visibletrack: false, rulestracking: { progressTracking: [ { @@ -602,9 +620,7 @@ }, formInline: { fileLinkList: [{}], - progressTrackingList: [{ - isDescription: true - }], + progressTrackingList: [], approvalEvidenceLinkList: [{}], dutyTerritory: undefined, projectId: undefined, @@ -700,14 +716,15 @@ this.problemState = this.$t('emptyc') } let time = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') - let text = '

' + this.userInfo().username + ' ' + time + '

' + ' ' + this.$t('Problemstate') + this.$t('by') + '\'' + this.problemState + '\'' + this.$t('Changeto') + '\'' + value + '\'' - if (JSON.stringify(this.formInline.progressTrackingList[0]) == '{}' || this.formInline.progressTrackingList[0].progressTracking == '') { - this.formInline.progressTrackingList.forEach((item, index) => { - item.progressTracking = text - }) - return - } - this.formInline.progressTrackingList.push({ progressTracking: text }) + let text = '

' + '' + this.userInfo().username + ' ' + '' + time + '' + '

' + '

' + this.$t('Problemstate') + this.$t('by') + '\'' + this.problemState + '\'' + this.$t('Changeto') + '\'' + value + '\'' + '

' + // if (JSON.stringify(this.formInline.progressTrackingList[0]) == '{}' || this.formInline.progressTrackingList[0].progressTracking == '') { + // this.formInline.progressTrackingList.forEach((item, index) => { + // item.progressTracking = text + // }) + // return + // } + + this.formInline.progressTrackingList.push({ progressTracking: text, isDescription: true }) } }, Standardselectioninput(val) { @@ -747,7 +764,7 @@ this.disabled = false this.formInline = { fileLinkList: [{}], - progressTrackingList: [{}], + progressTrackingList: [], approvalEvidenceLinkList: [{}] } this.isDisplayIndex = true @@ -782,7 +799,11 @@ this.formInline.problemState = undefined } if (this.formInline.progressTrackingList == null) { - this.formInline.progressTrackingList = [{}] + this.formInline.progressTrackingList = [] + } else { + this.formInline.progressTrackingList.forEach(val => { + val.isDescription = true + }) } if (this.formInline.approvalEvidenceLinkList == null) { this.formInline.approvalEvidenceLinkList = [{}] @@ -815,19 +836,19 @@ }, TrackingModelForm(row) { let time = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') - console.log(row) - let text = '

' + this.userInfo().username + ' ' + time + '

' + row - console.log(text) - this.formInline.progressTrackingList.forEach((item, index) => { - if (!item.progressTracking) { - this.formInline.progressTrackingList.splice(0, 1) - } - }) - this.formInline.progressTrackingList.splice(this.index + 1, 1, { progressTracking: text }) + let text = '

' + '' + this.userInfo().username + '' + '' + time + '' + '

' + row + // this.formInline.progressTrackingList.forEach((item, index) => { + // if (!item.progressTracking) { + // this.formInline.progressTrackingList.splice(0, 1) + // } + // }) + this.formInline.progressTrackingList.push({ progressTracking: text, isDescription: true }) + + // this.formInline.progressTrackingList.splice(this.index + 1, 1, { progressTracking: text }) console.log(this.formInline.progressTrackingList) }, addprogresstrackingClick(index) { - this.index = index + this.index = this.formInline.progressTrackingList.length - 1 this.formInlinetracking = {} this.$refs.TrackingModelRef.add() this.$nextTick(() => { @@ -837,38 +858,17 @@ }) }, deleteprogresstrackingClick(index, item) { - if (item.progressTracking && item.progressTracking != '') { - if (index == 0) { - item.progressTracking = '' - } else { - this.formInline.progressTrackingList.splice(index, 1) - } - } + /* if (this.formInline.progressTrackingList.length > 1) { + + } else { + item.progressTracking = '' + }*/ + this.formInline.progressTrackingList.splice(index, 1) this.formInline = { ...this.formInline } }, handleCancel() { this.visible = false }, - Cancel() { - this.visibletrack = false - this.formInlinetracking = {} - this.$refs.ruleFormtracking.clearValidate() - }, - handleOk() { - let time = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') - this.$refs.ruleFormtracking.validate(valid => { - if (valid) { - let text = this.userInfo().username + ' ' + time + ' ' + this.formInlinetracking.progressTracking - this.formInline.progressTrackingList.forEach((item, index) => { - if (!item.progressTracking) { - this.formInline.progressTrackingList.splice(0, 1) - } - }) - this.formInline.progressTrackingList.splice(this.index + 1, 1, { progressTracking: text }) - this.visibletrack = false - } - }) - }, handleSubmit() { this.$refs.ruleForm.validate(valid => { if (valid) { @@ -1045,7 +1045,7 @@ } else if (value == 'numberPlatform' || value == 'carPlatform') { this.formInline.projectId = undefined this.getPlatform(value) - }else{ + } else { this.formInline.projectId = undefined } this.formInline = { ...this.formInline } @@ -1054,6 +1054,18 @@ getAction('/project/projectLibraryBase/getPlatform', { platform: platform }).then((res) => { this.relatedItemsList = res || [] }) + }, + progressTrackingOpenClick(e) { + if (e.target.localName == 'img') { + ImagePreview( + { + images: [ + e.target.currentSrc + ], + closeable: true + }) + // this.$refs.viewImgRef.getData(e.target.currentSrc) + } } } } @@ -1070,14 +1082,41 @@ .text-class { color: rgba(0, 0, 0, 0.65); font-weight: bold; + background: #F5F6F7; + width: 100%; + border-radius: 4px 4px 0px 0px; + position: absolute; + top: 0; + height: 46px; + line-height: 46px; + } + + .usernameClass { + font-size: 14px; + font-family: PingFang SC, PingFang SC; + font-weight: 400; + color: #040B29; + margin-right: 6px; + } + + .timeClass { + font-size: 14px; + font-family: PingFang SC, PingFang SC; + font-weight: 400; + color: #9598A4; } p { margin: 0; padding: 0; } + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/projectNonConformance/moudles/detilModel.vue b/jero-web/src/views/projectManagement/projectNonConformance/moudles/detilModel.vue index 995ce517f..1c86b30b9 100644 --- a/jero-web/src/views/projectManagement/projectNonConformance/moudles/detilModel.vue +++ b/jero-web/src/views/projectManagement/projectNonConformance/moudles/detilModel.vue @@ -12,52 +12,43 @@ - +
{{$t('title')}}
- - - +
+ {{formInline.title}} +
-
-
{{$t('problemType')}}
- - - -
-
- -
-
- - {{'PS-issue'}} -
-
- {{formInline.psIssue}} +
+ {{formInline.problemType_dictText}}
+ + +
+
+ {{'PS-issue'}} +
+ +
+
@@ -65,14 +56,14 @@ {{$t('Relevantlawsregulations')}}
- - - +
+ {{formInline.lawsName || '--'}} +
+
+ +
@@ -80,72 +71,21 @@ {{$t('RelatedItems')}}
- - - - - {{ item.name}} - - - - - - - {{item}} - - - - - - - {{ item.projectName}} - - - - +
+ + {{formInline.projectType ? formInline.projectType == 'numberPlatform' || + formInline.projectType == 'carPlatform' ? formInline.problemType_dictText+' '+formInline.projectId : + formInline.projectType == 'model' ? formInline.problemType_dictText+' '+formInline.projectName : + formInline.problemType_dictText : '--'}} + +
-
- +
@@ -153,71 +93,34 @@ {{$t('statisticalNodes')}}
- - - - - {{ item.key }} - - - - -
-
- -
-
- - {{$t('Problemstate')}} +
+ {{formInline.dutyTerritory}}
- - - - - {{ item }} - - - -
+ +
+
+ + {{$t('Problemstate')}} +
+
+ {{formInline.problemState}} +
+
+
{{$t('problemPriority')}}
- - - +
+ {{formInline.problemPriority_dictText}} +
@@ -228,12 +131,13 @@ {{$t('descriptions')}}
- -
- - - -
+
+
+ +
+
@@ -244,14 +148,14 @@ {{$t('documents')}}
- -
+ @@ -262,16 +166,30 @@ {{$t('progresstracking')}}
- +
-
- - - - - +
+
+
+
+ + {{$t('putAway')}} +
+
+
+
+
+
+
+ + {{$t('open')}} +
+
+
- +
@@ -282,11 +200,9 @@ {{$t('conculsion')}}
- - - +
+ {{formInline.conclusion}} +
@@ -298,14 +214,16 @@ {{$t('examineapproveevidence')}}
- -
+ @@ -315,17 +233,22 @@ {{$t('close')}}
+
+ + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue index d4d1345ad..67e121cec 100644 --- a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue +++ b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue @@ -121,6 +121,9 @@ {{$t('accept')}} @@ -81,6 +82,26 @@
+ + +
+
+ * + {{$t('expectedDeliveryTime')}} +
+
+ + + +
+
@@ -140,6 +161,7 @@ props: {}, data() { return { + isDeliveryTime: false, titleName: '', allTitle: '', visible: false, @@ -247,19 +269,40 @@ message: this.$t('feedbackMessage') + this.$t('cannotExceed') + 300 + this.$t('Characters'), trigger: 'blur' } - ] + ], + deliveryTime: [ + { + required: true, + message: this.$t('expectedDeliveryTime') + this.$t('cannotEmpty'), + trigger: 'change' + } + ], }, formInline: {}, uploadName: '' } }, methods: { + dateChange(item) { + this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : '' + this.formInline = { ...this.formInline } + }, + reviewResultChange(value) { + if (value.target.value == 'To be tracked') { + this.isDeliveryTime = true + } else { + this.isDeliveryTime = false + this.formInline.deliveryTime = '' + } + this.formInline = { ...this.formInline } + }, ...mapGetters(['userInfo']), confirmation(data, name) { this.visible = true this.processableList = [] this.noProcessableList = [] this.formInline = {} + this.isDeliveryTime = false data.forEach(res => { res = JSON.parse(res) if (name == this.$t('Taskresponsibilityrecognition')) { @@ -306,6 +349,9 @@ taskIds.push(res.taskId) }) let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') + if (this.formInline.flag == 'To be tracked') { + this.formInline.approvalOpinion = this.formInline.approvalOpinion + ';' + this.$t('expectedDeliveryTime') + ':' + this.formInline.deliveryTime + } let query = { ...this.formInline, taskIds: taskIds.join(','), @@ -481,7 +527,7 @@ color: red; } - ::v-deep .ant-drawer-header .ant-drawer-title{ + ::v-deep .ant-drawer-header .ant-drawer-title { font-weight: bold; } \ No newline at end of file diff --git a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/designCompliance.vue b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/designCompliance.vue index ac852e480..271c5c668 100644 --- a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/designCompliance.vue +++ b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/designCompliance.vue @@ -32,6 +32,8 @@ :standardContentQuery="queryProject" /> +
-
@@ -76,6 +77,7 @@ import reviewedByThePersonInCharge from './reviewedByThePersonInCharge' import circulationHistory from './circulationHistory' import referenceDeliverablesList from './referenceDeliverablesList' + import experienceReferenceList from '@/components/experienceReferenceList/index' import { getAction, postAction, deleteAction, downloadFile, putAction } from '@/api/manage' import { mapGetters } from 'vuex' @@ -88,7 +90,8 @@ reviewedByThePersonInCharge, footerProcess, circulationHistory, - referenceDeliverablesList + referenceDeliverablesList, + experienceReferenceList }, data() { return { @@ -295,7 +298,7 @@ getAction(this.url.queryProjectLawsInventoryInfoById, query).then((res) => { if (res.success) { this.queryProject = res.result[0] || {} - if(this.queryData.platform){ + if (this.queryData.platform) { this.queryProject.platform = this.queryData.platform } // if (this.queryData.TaskKey == 'zrrqr' || this.queryData.TaskKey == 'dezrrqr') { @@ -303,6 +306,9 @@ // } this.loading = false this.isDisplay = true + this.$nextTick(() => { + this.$refs.experienceReferenceListRef.getData(this.queryProject.serialNumber) + }) } else { this.queryProject = {} this.loading = false