Merge branch 'fix_20230911_UAT' into 'master'

修改文档库文档编号、标题变化,虚拟清单,法规清单不联动(法规/认证清单中若状态为符合时则编号标题不再随文档库变化)

See merge request laws-nio/laws-weilai!365
This commit is contained in:
高嵩
2023-12-19 01:15:36 +00:00
96 changed files with 8469 additions and 4688 deletions
@@ -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`;
@@ -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`;
@@ -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"),
;
+22 -3
View File
@@ -124,7 +124,7 @@
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
<version>3.3.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.poi</groupId>
@@ -143,12 +143,31 @@
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>com.monitorjbl</groupId>
<artifactId>xlsx-streamer</artifactId>
<version>1.2.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.junrar</groupId>
@@ -163,7 +163,7 @@ public class ParamsManifestEOController extends JeroController<ParamsManifestEO,
}
}
@ApiOperation(value = "参数清单-更新模板更新参数", notes = "参数清单-更新模板更新参数")
@ApiOperation(value = "参数清单-更新模板", notes = "参数清单-更新模板更新参数")
@PostMapping(value = "/updateModel")
public Result<?> updateModel(String mid, String version,String cid) {
boolean isSuccess = paramsManifestEOService.updateModel(mid,version, cid);
@@ -33,6 +33,8 @@ public interface ParamsCollectManifestEOMapper extends BaseMapper<ParamsCollectM
IPage selectpage(@Param("page") IPage page, @Param("sqlJoin") String sqlJoin, @Param("paramsManifestEO")ParamsManifestEO paramsManifestEO);
List<ParamsCollectManifestEO> getListInfo(@Param("sqlJoin") String sqlJoin, @Param("paramsManifestEO")ParamsManifestEO paramsManifestEO);
List<ParamsCollectManifestEO> queryByProjectId(@Param("projectId") String projectId);
List<ParamsCollectManifestEO> getList(@Param("params") Map<String, Object> params);
@@ -149,6 +149,15 @@
) temp
${sqlJoin}
</select>
<select id="getListInfo" resultMap="ParamsCollectManifestEOResultMap">
select *
from (
select pcm.*
from params_collect_manifest pcm
where pcm.params_manifest_id = #{paramsManifestEO.id}
) temp
${sqlJoin}
</select>
<select id="queryByProjectId" resultMap="ParamsCollectManifestEOResultMap">
SELECT * from params_collect_manifest pcm LEFT JOIN params_manifest pm ON pm.id = pcm.params_manifest_id WHERE pm.project_id = #{projectId}
</select>
@@ -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
</sql>
<sql id="BaseQuerySql">
@@ -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<ParamsCollec
private IParamsCollectManifestUserTypeLogEOService paramsCollectManifestUserTypeLogEOService;
@Autowired
private IParamsCollectExportService paramsCollectExportService;
@Autowired
private CertCategoryParamsInfoEOServiceImpl certCategoryParamsInfoEOService;
/**
* 保存
@@ -785,29 +796,51 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
List<QueryConditionVO> queryConditionVOList = JSONObject.parseArray(paramsCollectManifestVO.getQueryConditionVOListStr(), QueryConditionVO.class);
this.createAdvanceedSearchCondition(queryConditionVOList, sqlJoinSb);
}
List<String> 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<String> categoryList = new ArrayList<>();
List<SysDictItem> 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<ParamsCollectManifestEO> list = pageInfo.getRecords(); // 查询固定列
List<ParamsCollectManifestEO> paramsCollectManifestEOS = paramsCollectManifestEOMapper.getListInfo(sqlJoinSb.toString(), paramsManifestEO);// 查询固定列
// IPage pageInfo = paramsCollectManifestEOMapper.selectpage(page, sqlJoinSb.toString(), paramsManifestEO); // 查询固定列
// List<ParamsCollectManifestEO> list = pageInfo.getRecords(); // 查询固定列
List<ParamsConfigEO> paramsConfigEOList = paramsConfigEOService.queryList(paramsManifestId); // 查询配置列
List<String> paramsConfigIdList = paramsConfigEOList.stream().map(ParamsConfigEO::getId).collect(Collectors.toList());
List<ParamsConfigDataEO> paramsConfigDataEOList = paramsConfigDataEOService.queryListByConfigIdList(paramsConfigIdList); // 查询所有配置数据
List<CertCategoryParamsInfoEO> categoryParamsInfoEOList = new ArrayList<>();
if(ObjectUtil.isNotEmpty(paramsCollectManifestEOS)){
String paramsTemplateId = paramsCollectManifestEOS.get(0).getParamsTemplateId();//模板id
LambdaQueryWrapper<CertCategoryParamsInfoEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CertCategoryParamsInfoEO::getParamsTemplateId,paramsTemplateId);
categoryParamsInfoEOList = certCategoryParamsInfoEOService.list(wrapper);
}
// 普通数据字典
List<SysDictItem> dictItemList = new ArrayList<>();
List<String> dictCodeList = new ArrayList<>();
@@ -819,7 +852,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
}
List<Map<String, Object>> listMap = new ArrayList<>();
list.forEach(collectManifestEO -> { // 参数收集清单
List<CertCategoryParamsInfoEO> finalCategoryParamsInfoEOList = categoryParamsInfoEOList;
paramsCollectManifestEOS.forEach(collectManifestEO -> { // 参数收集清单
// 处理数据字典字段 中英文切换 认证类型责任领域
List<String> certCategory = Arrays.asList(collectManifestEO.getCertCategory().split(","));
List<String> dutyTerritory = Arrays.asList(collectManifestEO.getDutyTerritory().split(",")); // 单选
@@ -863,6 +897,17 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
String controlType = collectManifestEO.getControlType();
String paramsCollectManifestId = collectManifestEO.getId();
//认证类型
List<CertCategoryParamsInfoEO> 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<String, Object> referencesColMap = new HashMap<>();
referencesColMap.put("referencesColFlag",true);
@@ -956,11 +1001,352 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
listMap.add(manifestMap);
});
pageInfo.setRecords(listMap);
return pageInfo;
//表头排序(认证类型)
headSort(paramsCollectManifestVO, categoryListtoHump, listMap);
Page pages = PageUtil.getPages((int)page.getCurrent(), (int)page.getSize(), listMap);
return pages;
}
private void headSort(ParamsCollectManifestVO paramsCollectManifestVO, List<String> categoryListtoHump, List<Map<String, Object>> 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<String> 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<String> 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<QueryConditionVO> 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<String> categoryList = new ArrayList<>();
// List<String> categoryListtoHump = new ArrayList<>();
// List<SysDictItem> 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<ParamsCollectManifestEO> list = pageInfo.getRecords(); // 查询固定列
// List<ParamsConfigEO> paramsConfigEOList = paramsConfigEOService.queryList(paramsManifestId); // 查询配置列
// List<String> paramsConfigIdList = paramsConfigEOList.stream().map(ParamsConfigEO::getId).collect(Collectors.toList());
// List<ParamsConfigDataEO> paramsConfigDataEOList = paramsConfigDataEOService.queryListByConfigIdList(paramsConfigIdList); // 查询所有配置数据
//
// List<CertCategoryParamsInfoEO> categoryParamsInfoEOList = new ArrayList<>();
// if(ObjectUtil.isNotEmpty(list)){
// String paramsTemplateId = list.get(0).getParamsTemplateId();//模板id
// LambdaQueryWrapper<CertCategoryParamsInfoEO> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(CertCategoryParamsInfoEO::getParamsTemplateId,paramsTemplateId);
// categoryParamsInfoEOList = certCategoryParamsInfoEOService.list(wrapper);
// }
//
// // 普通数据字典
// List<SysDictItem> dictItemList = new ArrayList<>();
// List<String> dictCodeList = new ArrayList<>();
// dictCodeList.add("duty_territory");
// dictCodeList.add("cert_category");
// for (String dictCode : dictCodeList) {
// List<SysDictItem> dictItems = sysDictItemService.selectItemsByDictCode(dictCode);
// dictItemList.addAll(dictItems);
// }
//
// List<Map<String, Object>> listMap = new ArrayList<>();
// List<CertCategoryParamsInfoEO> finalCategoryParamsInfoEOList = categoryParamsInfoEOList;
// list.forEach(collectManifestEO -> { // 参数收集清单
// // 处理数据字典字段 中英文切换 认证类型责任领域
// List<String> certCategory = Arrays.asList(collectManifestEO.getCertCategory().split(","));
// List<String> 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<String, String> collectManifestStateMap = CollectManifestStateEnum.toMap(cut);
// String stateName = collectManifestStateMap.get(collectManifestEO.getState());
// collectManifestEO.setState(stateName);
//
// List<String> configIdList = new ArrayList<>(); // 配置列名
//
// Map<String, Object> manifestMap = objectToMap(collectManifestEO); // 对象转map
// String controlType = collectManifestEO.getControlType();
// String paramsCollectManifestId = collectManifestEO.getId();
//
// //认证类型
// List<CertCategoryParamsInfoEO> 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<String, Object> referencesColMap = new HashMap<>();
// referencesColMap.put("referencesColFlag",true);
// Map<String,Object> referencesColConfigDataVOMap = new HashMap<>();
// String referencesCol = collectManifestEO.getReferencesCol();
// if (StringUtils.isNotBlank(referencesCol)) {
// String[] referencesColArr = referencesCol.split("</br>");
// int index = 0;
// for (String col : referencesColArr) {
// List<ParamsConfigDataVO> 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<ParamsConfigDataVO> 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<String, Object> paramsConfigDataVO = new HashMap<>();
// Map<String, Object> configMap = new HashMap<>();
// String paramsConfigId = paramsConfigEO.getId();
// List<ParamsConfigDataEO> paramsConfigDatas = this.getConfigDataEOListByConfigIdAndCollectManifestId(paramsConfigId, paramsCollectManifestId, paramsConfigDataEOList); // 参数配置数据
// if(CollectionUtils.isNotEmpty(paramsConfigDatas)){
// // 匿名比较器排序
// Collections.sort(paramsConfigDatas, new Comparator<ParamsConfigDataEO>() {
// @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<ParamsConfigDataVO> 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<ParamsConfigDataVO> 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<String, Object> dutyTerritoryMap = new HashMap<>();
// dutyTerritoryMap.put("id", collectManifestEO.getId());
// dutyTerritoryMap.put("state", collectManifestEO.getState());
// dutyTerritoryMap.put("dataValue", collectManifestEO.getDutyTerritory());
// manifestMap.put("dutyTerritory", dutyTerritoryMap);
//
// // 处理工程接口人
// Map<String, Object> 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<ParamsCollec
//过滤列表字段(is_show_list-->列表是否显示0否 1是)
fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowList()))).collect(Collectors.toList());
}
//参数项认证清单-认证类型
List<String> categoryList = new ArrayList<>();
if(ModuleEnum.PARAMS_COLLECT_MANIFEST.getValue().equals(flag)){
List<SysDictItem> sysDictItemList = sysDictItemService.selectItemsByDictCode("cert_category");
if(ObjectUtil.isNotEmpty(sysDictItemList)){
categoryList = sysDictItemList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList());
}
List<OnlCgformField> 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<ParamsConfigEO> paramsConfigEOList = paramsConfigEOService.queryList(paramsManifestId);
List<Map<String, Object>> listConfig = new LinkedList<>();
@@ -1590,6 +1993,10 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
if (!"references_col".equals(dbFieldName)) {
map.put("db_field_name", LineHumpUtil.lineToHump(dbFieldName));
}
if(ObjectUtil.isNotEmpty(categoryList) && categoryList.contains(dbFieldName)){
map.put("show", "1");//认证类型动态表头默认不展示列表设置展示用show=1来区分
map.put("sort", "true");
}
if (CutEnum.CN.getValue().equals(cut)) {
if ("references_col".equals(dbFieldName)) {
if (ObjectUtils.isNotEmpty(paramsManifestEO) && StringUtils.isNotBlank(paramsManifestEO.getReferencesColName())) {
@@ -158,17 +158,20 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
@Override
public List<ParamsManifestEO> queryList(ParamsManifestEO paramsManifestEO) {
IPage page = new Page(1, 100);
IPage pageList = pageInfo(page, paramsManifestEO);
List<ParamsManifestEO> resList = new ArrayList<>();
LambdaQueryWrapper<ParamsManifestEO> queryWrapper = new LambdaQueryWrapper<>();
if(StringUtils.isNotEmpty(paramsManifestEO.getTitle())){
queryWrapper.eq(ParamsManifestEO::getTitle, paramsManifestEO.getTitle());
}
queryWrapper.eq(ParamsManifestEO::getProjectId, paramsManifestEO.getProjectId());
List<ParamsManifestEO> paramsManifestEOList = list(queryWrapper);
resList.addAll(paramsManifestEOList);
// LambdaQueryWrapper<ParamsManifestEO> queryWrapper = new LambdaQueryWrapper<>();
// if(StringUtils.isNotEmpty(paramsManifestEO.getTitle())){
// queryWrapper.eq(ParamsManifestEO::getTitle, paramsManifestEO.getTitle());
// }
// queryWrapper.eq(ParamsManifestEO::getProjectId, paramsManifestEO.getProjectId());
List<ParamsManifestEO> paramsManifestEOList = pageList.getRecords();
for (ParamsManifestEO pm : paramsManifestEOList) {
pm.setIsHistory("0");
}
resList.addAll(paramsManifestEOList);
List<ParamsManifestHistoryEO> hisList = paramsManifestHistoryEOService.getHistoryListByProjectId(paramsManifestEO.getProjectId());
if(CollectionUtils.isNotEmpty(hisList)){
for (ParamsManifestHistoryEO his : hisList) {
@@ -294,10 +297,17 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
target.setParamsName(source.getParamsName());
target.setParamsBatch(source.getParamsBatch());
target.setDutyTerritory(source.getDutyTerritory());
if(!StringUtils.equals(source.getControlType(),target.getControlType())){
target.setState(CollectManifestStateEnum.WAIT_COLLECT.getValue());
}
target.setControlType(source.getControlType());
if(!StringUtils.equals(source.getControlValues(),target.getControlValues())){
target.setState(CollectManifestStateEnum.WAIT_COLLECT.getValue());
}
target.setControlValues(source.getControlValues());
target.setControlVerify(source.getControlVerify());
target.setFileTemplateConnectId(source.getFileTemplateConnectId());
target.setDescription(source.getDescription());
break;
}
}
@@ -307,7 +317,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
BeanUtils.copyProperties(source, target);
target.setId(UUID.randomUUID().toString().replace("-", ""));
target.setParamsManifestId(cid);
target.setState(CollectManifestStateEnum.WAIT_FILL.getValue());
target.setState(CollectManifestStateEnum.WAIT_COLLECT.getValue());
target.setDelFlag(CollectManifestChangeFlagEnum.DELETE_BEFORE.getValue()); // 设置删除标识
target.setAddFlag(CollectManifestChangeFlagEnum.ADD_BEFORE.getValue()); // 设置添加标识
target.setChangeFlag(CollectManifestChangeFlagEnum.CHANGE_BEFORE.getValue()); // 设置变更标识
@@ -1222,6 +1232,11 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
List<Map<String, Object>> 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)){
@@ -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<ParamsInfoEOMapper, Par
// 导入参数设置默认即可
ImportParams params = new ImportParams();
try {
// 取数据
XSSFWorkbook workbook=new XSSFWorkbook(new FileInputStream(excelfile));
Workbook workbook = StreamingReader.builder()
.rowCacheSize(10 * 10)
.bufferSize(1024 * 4)
.open(new FileInputStream(excelfile));
List<ParamsInfoCnImport> paramsInfoEOList = new ArrayList<>();
Map<String,List<CertCategoryParamsInfoCnImport>> certCategoryParamsInfoEOListMap = new HashMap<>();
@@ -936,16 +942,16 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
"Description", "*Control Component", "Validate Component", "Component Value", "Default Value", "File Template"};
params.setImportFields(fields);
ExcelImportResult<ParamsInfoEnImport> resultEn = ExcelImportUtil.importExcelMore(excelfile,ParamsInfoEnImport.class, params);
List<ParamsInfoEnImport> paramsInfoEOListEn = resultEn.getList();
// importExcelBySax 方法有bug仅能导入第一个sheet页所以仅针对numSheet为0的时候使用
List<ParamsInfoEnImport> paramsInfoEOListEn = RightSheetExcelImportUtil.importExcelBySax(new FileInputStream(excelfile), ParamsInfoCnImport.class, params);
copyParamsInfoList(paramsInfoEOListEn, paramsInfoEOList);
} else {
String fields[] ={ "*NIO编号", "*是否必填", "*参数名称","*参数批次","*责任领域",
"参数说明", "*控件类型", "控件校验", "控件备选值", "默认值", "附件模板"};
params.setImportFields(fields);
ExcelImportResult<ParamsInfoCnImport> 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<ParamsInfoEOMapper, Par
String fields[] ={ "*NIO Number", "*Number", "*Para Name","Description"};
params.setImportFields(fields);
ExcelImportResult<CertCategoryParamsInfoEnImport> resultEn = ExcelImportUtil.importExcelMore(excelfile, CertCategoryParamsInfoEnImport.class, params);
List<CertCategoryParamsInfoEnImport> listEn = resultEn.getList();
List<CertCategoryParamsInfoEnImport> listEn = RightSheetExcelImportUtil.importExcelBySax(new FileInputStream(excelfile), CertCategoryParamsInfoEnImport.class, params);
copycertCategoryParamsInfoList(listEn, list);
} else {
String fields[] ={ "*NIO编号", "*编号", "*参数名称","参数说明"};
params.setImportFields(fields);
ExcelImportResult<CertCategoryParamsInfoCnImport> 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); // 去掉填写说明
@@ -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 <T> List<T> importExcelBySax(InputStream inputstream, Class<?> pojoClass, ImportParams params) {
return (new RightSheetSaxReadExcel()).readExcel(inputstream, pojoClass, params, (ISaxRowRead)null, (IExcelReadRowHandler)null);
}
}
@@ -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 <T> List<T> 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 <T> List<T> 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<InputStream> 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;
}
}
@@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils;
*/
public enum ReleaseConditionEnum {
PUBLISHED("已发布","published","Published"),
PUBLISHED("已发布","published","Released"),
DRAFT("草稿","draft","Draft"),
;
@@ -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<DummyInventoryInfoHistoryEO, IDummyInventoryInfoHistoryEOService> {
@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<DummyInventoryInfoHistoryEO> queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryInfoHistoryEO, req.getParameterMap());
Page<DummyInventoryInfoHistoryEO> page = new Page<DummyInventoryInfoHistoryEO>(pageNo, pageSize);
IPage<DummyInventoryInfoHistoryEO> pageList = dummyInventoryInfoHistoryEOService.getPageInfo(page,dummyInventoryInfoHistoryEO);
// IPage<DummyInventoryInfoHistoryEO> pageList = dummyInventoryInfoHistoryEOService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "市场法规清单历史版本-列表查询")
@ApiOperation(value="市场法规清单历史版本-列表查询", notes="市场法规清单历史版本-列表查询")
@GetMapping(value = "/list")
public Result<List<DummyInventoryInfoHistoryEO>> queryList() {
List<DummyInventoryInfoHistoryEO> 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);
}
}
@@ -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;
}
@@ -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<DummyInventoryInfoHistoryEO> {
}
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.dummy.mapper.DummyInventoryInfoHistoryEOMapper">
<resultMap id="DummyInventoryInfoHistoryEOResultMap" type="com.jero.modules.dummy.entity.DummyInventoryInfoHistoryEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="dummy_inventory_base_id" property="dummyInventoryBaseId" />
<result column="serial_number" property="serialNumber" />
<result column="title" property="title" />
<result column="shi4_yong4_fan4_wei2" property="shi4Yong4Fan4Wei2" />
<result column="state" property="state" />
<result column="technology_territory" property="technologyTerritory" />
<result column="xin1_che1_xing2_shi2_shi1_ri4_qi1" property="xin1Che1Xing2Shi2Shi1Ri4Qi1" />
<result column="implement_time" property="implementTime" />
<result column="corresponding_standard" property="correspondingStandard" />
<result column="corresponding_standard_id" property="correspondingStandardId" />
<result column="wvta_id" property="wvtaId" />
<result column="subtitle" property="subtitle" />
<result column="implement_type" property="implementType" />
<result column="attestation_type" property="attestationType" />
<result column="attestation_rank" property="attestationRank" />
<result column="duty_territory" property="dutyTerritory" />
<result column="remark" property="remark" />
<result column="design_deliverable_type" property="designDeliverableType" />
<result column="design_deliverable_template" property="designDeliverableTemplate" />
<result column="design_initiator" property="designInitiator" />
<result column="design_duty" property="designDuty" />
<result column="prehomo_deliverable_type" property="prehomoDeliverableType" />
<result column="prehomo_deliverable_template" property="prehomoDeliverableTemplate" />
<result column="prehomo_initiator" property="prehomoInitiator" />
<result column="prehomo_duty" property="prehomoDuty" />
<result column="verify_deliverable_type" property="verifyDeliverableType" />
<result column="verify_deliverable_template" property="verifyDeliverableTemplate" />
<result column="verify_initiator" property="verifyInitiator" />
<result column="verify_duty" property="verifyDuty" />
<result column="region" property="region" />
<result column="applicable_supplement" property="applicableSupplement" />
<result column="verify_remark" property="verifyRemark" />
<result column="prehomo_remark" property="prehomoRemark" />
<result column="design_remark" property="designRemark" />
<result column="buss_document_library_id" property="bussDocumentLibraryId" />
<result column="duty_depart" property="dutyDepart" />
</resultMap>
</mapper>
@@ -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<DummyInventoryInfoHistoryEO> {
/**
* 保存
*
* @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<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
DummyInventoryInfoHistoryEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<DummyInventoryInfoHistoryEO> queryList();
IPage<DummyInventoryInfoHistoryEO> getPageInfo(Page<DummyInventoryInfoHistoryEO> page,DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO);
}
@@ -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<DummyInventoryB
private DummyInventoryBaseEOMapper dummyInventoryBaseEOMapper;
@Autowired
private IMarketListVersionUpdateLogEOService marketListVersionUpdateLogEOService;
@Autowired
private DummyInventoryInfoHistoryEOServiceImpl dummyInventoryInfoHistoryEOService;
/**
* 保存
@@ -343,20 +348,6 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
String loginUserName = sysUser.getUsername();
DummyInventoryBaseEO baseEO = queryById(dummyInventoryBaseEO.getId());
List<String> 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<DummyInventoryBaseEO> baseWrapper=new UpdateWrapper<>();
baseWrapper.set("state",dummyInventoryBaseEO.getState());
@@ -365,6 +356,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
baseWrapper.set("update_by",sysUser.getUsername())
.set("update_time",now);
}
MarketListVersionUpdateLogEO mlvLogEo = new MarketListVersionUpdateLogEO();
if(StringUtils.equals(dummyInventoryBaseEO.getUpgradeOrNot(), YesOrNoEnum.YES.getValue())){
String upgradeExplanation = dummyInventoryBaseEO.getUpgradeExplanation();
String versionNum = dummyInventoryBaseEO.getVersionNum();
@@ -372,7 +364,6 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
baseWrapper.set("version_num",versionNum);
// 将数据添加到市场清单版本更新log中
MarketListVersionUpdateLogEO mlvLogEo = new MarketListVersionUpdateLogEO();
mlvLogEo.setListId(dummyInventoryBaseEO.getId());
mlvLogEo.setVersionNum(versionNum);
mlvLogEo.setUpgradeExplanation(upgradeExplanation);
@@ -381,6 +372,28 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
}
baseWrapper.eq("id",dummyInventoryBaseEO.getId());
dummyInventoryBaseEOMapper.update(null,baseWrapper);
//发布的时候升版如果选择是则将发布的这个版本数据保存到历史
if(InventoryStateEnum.ISSUE.getValue().equals(dummyInventoryBaseEO.getState())
&& YesOrNoEnum.YES.getValue().equals(dummyInventoryBaseEO.getUpgradeOrNot())){
LambdaQueryWrapper<DummyInventoryInfoEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DummyInventoryInfoEO::getDummyInventoryBaseId,dummyInventoryBaseEO.getId());
List<DummyInventoryInfoEO> dummyInventoryInfoEOList = iDummyInventoryInfoEOService.list(wrapper);
if(ObjectUtils.isNotEmpty(dummyInventoryInfoEOList)){
List<DummyInventoryInfoHistoryEO> 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);
//不管有没有维护清单,都返回操作成功
//发布与撤回均需要发消息(向订阅的人员发消息)
@@ -211,7 +211,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
log.info("二阶段消耗时间:" + (System.currentTimeMillis() - startTime));
this.dataDicDispose(dummyInventoryInfoEOList,dummyInventoryInfoEO.getCut());
log.info("三阶段消耗时间:" + (System.currentTimeMillis() - startTime));
treeDict(dummyInventoryInfoEO, dummyInventoryInfoEOList,sysDictItems);
// treeDict(dummyInventoryInfoEO, dummyInventoryInfoEOList,sysDictItems);
// 数据处理
this.disposeData(dummyInventoryInfoEOList,dummyInventoryInfoEO.getCut());
//表头排序
@@ -0,0 +1,470 @@
package com.jero.modules.dummy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.constant.enums.CutEnum;
import com.jero.common.util.DateUtils;
import com.jero.modules.document.entity.PhasedImplementationDetailsEO;
import com.jero.modules.document.enums.ImplementationTypeEnum;
import com.jero.modules.document.service.IPhasedImplementationDetailsEOService;
import com.jero.modules.dummy.entity.DummyInventoryInfoHistoryEO;
import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum;
import com.jero.modules.dummy.mapper.DummyInventoryInfoHistoryEOMapper;
import com.jero.modules.dummy.service.IDummyInventoryInfoHistoryEOService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description: 市场法规清单历史版本
* @Author: jero-boot
* @Date: 2023-10-30
* @Version: V1.0
*/
@Service
public class DummyInventoryInfoHistoryEOServiceImpl extends ServiceImpl<DummyInventoryInfoHistoryEOMapper, DummyInventoryInfoHistoryEO> 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<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public DummyInventoryInfoHistoryEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<DummyInventoryInfoHistoryEO> queryList() {
return list();
}
@Override
public IPage<DummyInventoryInfoHistoryEO> getPageInfo(Page<DummyInventoryInfoHistoryEO> page,DummyInventoryInfoHistoryEO dummyInventoryInfoHistoryEO) {
LambdaQueryWrapper<DummyInventoryInfoHistoryEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DummyInventoryInfoHistoryEO::getDummyInventoryBaseId,dummyInventoryInfoHistoryEO.getDummyInventoryBaseId());
wrapper.eq(DummyInventoryInfoHistoryEO::getMarketListVersionUpdateLogId,dummyInventoryInfoHistoryEO.getMarketListVersionUpdateLogId());
Page<DummyInventoryInfoHistoryEO> historyEOPage = this.page(page, wrapper);
treeDict(dummyInventoryInfoHistoryEO, historyEOPage.getRecords());
disposeData(historyEOPage.getRecords());
dataDicDispose(historyEOPage.getRecords(),dummyInventoryInfoHistoryEO.getCut());
return historyEOPage;
}
private void disposeData(List<DummyInventoryInfoHistoryEO> datas) {
if(CollectionUtils.isNotEmpty(datas)){
List<String> bussDocumentLibraryIdList = datas.stream().map(DummyInventoryInfoHistoryEO::getBussDocumentLibraryId).distinct().collect(Collectors.toList());
QueryWrapper<PhasedImplementationDetailsEO> phasedDetailsQueryWrap = new QueryWrapper<>();
phasedDetailsQueryWrap.lambda().in(PhasedImplementationDetailsEO::getBussDocumentLibraryId,bussDocumentLibraryIdList);
List<PhasedImplementationDetailsEO> phasedDetailsList = this.phasedImplementationDetailsEOService.list(phasedDetailsQueryWrap);
// 新车型分阶段实施数据信息
List<PhasedImplementationDetailsEO> 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<PhasedImplementationDetailsEO> 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<Date> 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<Date> 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<DummyInventoryInfoHistoryEO> datas, String cut){
if(CollectionUtils.isNotEmpty(datas)){
List<SysDictItem> 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<DummyInventoryInfoHistoryEO> dummyInventoryInfoHistoryEOList) {
List<String> 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<OSSFile> fileInfos = new ArrayList<>();
if(deliverableList.size() != 0){
fileInfos = iOSSFileService.getFileInfos(StringUtils.join(deliverableList, ","));
}
//树形结构数据字典(技术领域)
List<SysCategory> categoryList = sysCategoryService.list();
for (DummyInventoryInfoHistoryEO record : dummyInventoryInfoHistoryEOList) {
if(StringUtils.isBlank(record.getWvtaId())){
record.setWvtaId("");
}
//技术领域
if (categoryList.size() != 0 && StringUtils.isNotBlank(record.getTechnologyTerritory())) {
List<String> technologyTerritoryList = Arrays.asList(record.getTechnologyTerritory().split(","));
String technologyTerritoryName = getTreeName(dummyInventoryInfoHistoryEO, categoryList, technologyTerritoryList);
record.setTechnologyTerritoryName(technologyTerritoryName);
}
//设计交付物类型
if(StringUtils.isNotBlank(record.getDesignDeliverableType())){
List<String> designDeliverableTypeList = Arrays.asList(record.getDesignDeliverableType().split(","));
String name = getTreeName(dummyInventoryInfoHistoryEO, categoryList, designDeliverableTypeList);
record.setDesignDeliverableTypeName(name);
}
//pre交付物类型
if(StringUtils.isNotBlank(record.getPrehomoDeliverableType())){
List<String> prehomoDeliverableTypeList = Arrays.asList(record.getPrehomoDeliverableType().split(","));
String name = getTreeName(dummyInventoryInfoHistoryEO, categoryList, prehomoDeliverableTypeList);
record.setPrehomoDeliverableTypeName(name);
}
//验证交付物类型
if(StringUtils.isNotBlank(record.getVerifyDeliverableType())){
List<String> 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<SysCategory> categoryList,
List<String> technologyTerritoryList) {
StringBuilder sb = new StringBuilder();
for (String technologyTerritory : technologyTerritoryList) {
List<SysCategory> 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<OSSFile> fileInfos,String deliverableTemplate){
StringBuilder sb = new StringBuilder();
for (String s : deliverableTemplate.split(",")) {
List<OSSFile> 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<SysDictItem> sysDictItems,String fieldValues,String cut,String dicCode){
String result = "";
List<SysDictItem> 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<String> 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<String> 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;
}
}
@@ -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<String, List<String>> 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();
}
}
}
@@ -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;
/**
* <p>
* 菜单权限表 为了做待办中心消息提醒放过来的
* </p>
*
* @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<JSONObject> result = new Result<JSONObject>();
try {
//直接获取当前用户不适用前端token
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (oConvertUtils.isEmpty(loginUser)) {
return Result.error("请登录系统!");
}
List<SysPermission> metaList = sysPermissionService.queryByUser(loginUser.getUsername());
//添加首页路由
//update-begin-author:taoyan date:20200211 for: TASK #3368 路由缓存首页的缓存设置有问题需要根据后台的路由配置来实现是否缓存
if (!PermissionDataUtil.hasIndexPage(metaList)) {
SysPermission indexMenu = sysPermissionService.list(new LambdaQueryWrapper<SysPermission>().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<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
query.eq(SysPermission::getMenuType, CommonConstant.MENU_TYPE_2);
//query.eq(SysPermission::getStatus, "1");
List<SysPermission> 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<SysPermission> 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<SysPermission> 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<SysPermission> 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<String, Object> params = new HashMap<>();
params.put("currentUserId", currentUser.getId());
List<String> 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<OtaManageReceiveNsdp> 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;
}
}
}
@@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils;
*/
public enum GatherResultEnum {
UNDERWAY("进行中","Underway","Underway"),
UNDERWAY("进行中","Underway","In progress"),
COMPLETED("已完成","Completed","Completed"),
;
@@ -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<MarketListVersionUpdateLogEO, IMarketListVersionUpdateLogEOService> {
@Autowired
private IMarketListVersionUpdateLogEOService marketListVersionUpdateLogEOService;
/**
* 分页列表查询
*
@@ -53,9 +61,10 @@ public class MarketListVersionUpdateLogEOController extends JeroController<Marke
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<MarketListVersionUpdateLogEO> queryWrapper = QueryGenerator.initQueryWrapper(marketListVersionUpdateLogEO, req.getParameterMap());
Page<MarketListVersionUpdateLogEO> page = new Page<MarketListVersionUpdateLogEO>(pageNo, pageSize);
IPage<MarketListVersionUpdateLogEO> pageList = marketListVersionUpdateLogEOService.page(page, queryWrapper);
return Result.OK(pageList);
IPage<MarketListVersionUpdateLogEO> pageInfo = marketListVersionUpdateLogEOService.getPageInfo(queryWrapper, pageNo, pageSize);
// Page<MarketListVersionUpdateLogEO> page = new Page<MarketListVersionUpdateLogEO>(pageNo, pageSize);
// IPage<MarketListVersionUpdateLogEO> pageList = marketListVersionUpdateLogEOService.page(page, queryWrapper);
return Result.OK(pageInfo);
}
/**
@@ -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;
}
@@ -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<MarketLis
* @return
*/
List<MarketListVersionUpdateLogEO> queryList();
IPage<MarketListVersionUpdateLogEO> getPageInfo(QueryWrapper<MarketListVersionUpdateLogEO> queryWrapper,Integer pageNo,Integer pageSize);
}
@@ -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<MarketListVersionUpdateLogEOMapper, MarketListVersionUpdateLogEO> 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<MarketL
save(marketListVersionUpdateLogEO);
}
/**
* 更新
*
* @param marketListVersionUpdateLogEO
* @return
*/
@Override
/**
* 更新
*
* @param marketListVersionUpdateLogEO
* @return
*/
@Override
public void editById(MarketListVersionUpdateLogEO marketListVersionUpdateLogEO) {
Date now = new Date();
Date now = new Date();
marketListVersionUpdateLogEO.setUpdateTime(now);
saveOrUpdate(marketListVersionUpdateLogEO);
saveOrUpdate(marketListVersionUpdateLogEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> 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<MarketListVersionUpdateLogEO> queryList() {
return list();
}
@Override
public IPage<MarketListVersionUpdateLogEO> getPageInfo(QueryWrapper<MarketListVersionUpdateLogEO> queryWrapper,
Integer pageNo,
Integer pageSize) {
queryWrapper.lambda().orderByAsc(MarketListVersionUpdateLogEO::getCreateTime);
List<MarketListVersionUpdateLogEO> 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<MarketListVersionUpdateLogEO> pageList = PageUtil.getPages(pageNo, pageSize, marketListVersionUpdateLogEOList);
if (ObjectUtils.isNotEmpty(pageList.getRecords())) {
List<String> idList = pageList.getRecords().stream().map(MarketListVersionUpdateLogEO::getListId).distinct().collect(Collectors.toList());
List<DummyInventoryBaseEO> dummyInventoryBaseEOList = dummyInventoryBaseEOService.listByIds(idList);
for (MarketListVersionUpdateLogEO record : pageList.getRecords()) {
List<DummyInventoryBaseEO> 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;
}
}
@@ -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 = "升级包测试")
@@ -179,7 +179,7 @@ public class OtaBaCxListServiceImpl extends ServiceImpl<OtaBaCxListMapper, OtaBa
otaBaCxList.setSpzq(String.valueOf(daysDifference));
}
otaBaCxList.setBz(bz);
this.deleteById(otaBaCxList.getId());
// this.deleteById(otaBaCxList.getId());
this.saveOrUpdate(otaBaCxList);
//添加历史记录数据
OtaBaCxLsjl lsjl = new OtaBaCxLsjl();
@@ -182,7 +182,7 @@ public class OtaBaSjListServiceImpl extends ServiceImpl<OtaBaSjListMapper, OtaBa
otaBaSjList.setSpzq(String.valueOf(daysDifference));
}
otaBaSjList.setBz(bz);
this.deleteById(otaBaSjList.getId());
// this.deleteById(otaBaSjList.getId());
this.saveOrUpdate(otaBaSjList);
//添加历史记录数据
OtaBaSjLsjl lsjl = new OtaBaSjLsjl();
@@ -86,7 +86,11 @@ public class OtaBaSjSjmbcxServiceImpl extends ServiceImpl<OtaBaSjSjmbcxMapper, O
otaBaSjSjmbcx.setCreateTime(now);
} else {
otaBaSjSjmbcxOld = this.getByOtaId(otaBaSjSjmbcx.getOtaId());
otaBaSjSjmbcx.setId(otaBaSjSjmbcxOld.getId());
if(ObjectUtils.isEmpty(otaBaSjSjmbcxOld)){
otaBaSjSjmbcx.setId(UUID.randomUUID().toString().replace("-", ""));
}else{
otaBaSjSjmbcx.setId(otaBaSjSjmbcxOld.getId());
}
otaBaSjList = otaBaSjListService.queryById(otaBaSjSjmbcx.getOtaId());
otaBaSjList.updateData(otaBaSjSjmbcx);
otaBaSjListService.editById(otaBaSjList);
@@ -350,7 +350,22 @@ public class OtaBaSjSjyxpgServiceImpl extends ServiceImpl<OtaBaSjSjyxpgMapper, O
cell.setCellValue(ImportFileUtil.getCellValueYesOrNoInt(pg.getSfyxaq()));
row = s.getRow(9);
cell = row.getCell(1);
cell.setCellValue(ImportFileUtil.getCellValueYesOrNoInt(pg.getYhqr()));
//选是有下拉框下拉框选其他有文本选否有文本
Integer yhqr = pg.getYhqr();
if (null == yhqr) {
yhqr = 2;
}
String yhqrStr = ImportFileUtil.getCellValueYesOrNoInt(pg.getYhqr());
if (1 == yhqr) {
String yhqrXlk = ComparisonUtil.queryDictTextByKey("_sheng1_ji2_ying3_xiang3_ping2_gu1_-_sheng1_ji2_que4_ren4", pg.getYhqrXlk(), sysDictService);
yhqrStr += " - " + yhqrXlk;
if ("其他".equals(yhqrXlk)) {
yhqrStr += " - " + pg.getYhqrQt();
}
} else if (2 == yhqr) {
yhqrStr += " - " + pg.getYhqrNo();
}
cell.setCellValue(yhqrStr);
row = s.getRow(10);
cell = row.getCell(1);
cell.setCellValue(ComparisonUtil.queryDictTextByKey("package_test", pg.getSjbcs(), sysDictService));
@@ -258,8 +258,12 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
continue;
}
}
if (StringUtils.isNotEmpty(otaManageApplyEO.getAppliedVehicleProject()) && !vehicleSet.contains(otaManageApplyEO.getAppliedVehicleProject())) {
continue;
if (StringUtils.isNotEmpty(otaManageApplyEO.getAppliedVehicleProject())) {
List<String> 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<OtaManageApplyEOMap
}
}
}
List<String> 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<OtaManageApplyEOMap
} else {
resList.add("All");
}
resList.addAll(vehicleSet);
List<String> carList = new ArrayList<>(vehicleSet);
Collections.sort(carList);
resList.addAll(carList);
return resList;
}
@@ -2611,181 +2611,185 @@ public class PlatformProjectLawsInventoryEOServiceImpl extends ServiceImpl<Platf
}
}
}*/
String dutyTerritory = projectLawsInventoryEO.getDutyTerritory();
if (StringUtils.isNotEmpty(dutyTerritory)) {
List<ProjectRelatedPersonnel> 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<ProjectRelatedPersonnel> 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<ProjectLawsInventoryEO> updateWrapper = new LambdaUpdateWrapper<>();
LambdaUpdateWrapper<ProjectLawsInventoryEO> 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<Platf
"\nRegulation No: " + LAW_EN +
"\nInitiator: " + sysUser.getUsername() +
"\nDue Date: " + sdf.format(projectLawsInventoryEO.getTaskAffirmDueDate());
color = MsgColorEnum.GREEN.getValue();
color = MsgColorEnum.RED.getValue();
} else if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_DRE_ACCEPTED.getValue())) {
userIdList.add(engineeringInterfacePerson);
@@ -3260,7 +3260,7 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
"lock," +
"Reject,"+
"Not started," +
"Ongoing," +
"In progress," +
"Test Passed," +
"Test Failed," +
"Component report not submitted," +
@@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringUtils;
*/
public enum ReleaseStatusEnum {
HAVE_RELEASED("已发布","Have released","Have released"),
HAVE_RELEASED("已发布","Released","Have released"),
DRAFT("草稿","Draft","Draft"),
;
@@ -3,7 +3,9 @@ package com.jero.modules.project.controller;
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.util.PageUtil;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.project.entity.ProblemManagementEO;
import com.jero.modules.project.service.INcrTrackService;
import com.jero.modules.project.vo.NcrTrackVO;
import io.swagger.annotations.Api;
@@ -63,6 +65,26 @@ public class NcrTrackController {
return Result.OK(ncrTrackVO.getCut(),pages);
}
/**
* 法规清单或者认证清单关联问题管理列表
*
* @param serialNumber
* @return
*/
@AutoLog(value = "法规清单或者认证清单关联问题管理列表")
@ApiOperation(value="法规清单或者认证清单关联问题管理列表", notes="法规清单或者认证清单关联问题管理列表")
@GetMapping(value = "/queryPageProblem")
public Result<?> queryPageProblem(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
String serialNumber,
String cut) {
List<ProblemManagementEO> 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<NcrTrackVO> pageInfo) {
String orderBy = ncrTrackVO.getOrderBy();
String orderByField = ncrTrackVO.getOrderByField();
@@ -386,4 +386,16 @@ public class ProjectCertificationInventoryEOController extends JeroController<Pr
public Result<?> matchRelevantPeople(@RequestBody Map<String,Object> params){
return this.projectCertificationInventoryEOService.matchRelevantPeople(params);
}
@AutoLog(value = "认证清单关联按平台件")
@ApiOperation(value="认证清单关联按平台件", notes="认证清单关联按平台件")
@GetMapping(value = "/connectPlatform")
public Result<?> connectPlatform(String id,String cut) {
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = projectCertificationInventoryEOService.connectPlatform(id,cut);
if(projectCertificationInventoryEOList==null) {
return Result.error("未找到对应数据");
}
return Result.OK(projectCertificationInventoryEOList);
}
}
@@ -268,4 +268,10 @@ public class ProjectCertificationInventoryEO implements Serializable {
@ApiModelProperty(value = "关联平台件数据")
@TableField(exist = false)
private List<ProjectCertificationInventoryEO> projectCertificationInventoryEOS;
@TableField(exist = false)
private String projectName;
@ApiModelProperty(value = "平台件-认证清单id")
private String platformCertificationInventoryId;
}
@@ -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"),
@@ -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<String> getValueInfo() {
List<String> result = new LinkedList<>();
FlowStateDesignEnum[] values = values();
for (FlowStateDesignEnum flowStateEnum : values) {
result.add(flowStateEnum.getValue());
}
return result;
}
}
@@ -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"),
@@ -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",""),
@@ -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
@@ -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<NcrTrackVO> {
List<NcrTrackVO> getPageInfo(NcrTrackVO ncrTrackVO);
List<ProblemManagementEO> queryPageProblem(String serialNumber, String cut);
Page getPages(Integer currentPage, Integer pageSize, List<NcrTrackVO> list);
void exportData(HttpServletResponse response,
@@ -345,4 +345,6 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
* @return
*/
String listPlatform(Map<String, Object> params);
List<ProjectCertificationInventoryEO> connectPlatform(String id,String cut);
}
@@ -388,6 +388,10 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
return trackVOList;
}
}
public List<ProblemManagementEO> queryPageProblem(String serialNumber,String cut) {
List<ProblemManagementEO> problemManagement = getProblemManagement(serialNumber, cut);
return problemManagement;
}
private void heartSort(NcrTrackVO ncrTrackVO, List<NcrTrackVO> trackVOList) {
Collator comparator = Collator.getInstance(Locale.CHINESE);
@@ -727,6 +731,9 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
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<NcrTrackMapper, NcrTrackVO>
}
return ncrTrackVOList;
}
private List<ProblemManagementEO> getProblemManagement(String serialNumber,String cut) {
LambdaQueryWrapper<BussDocumentLibraryEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(BussDocumentLibraryEO::getSerialNumber, serialNumber);
List<BussDocumentLibraryEO> bussDocumentLibraryEOS = bussDocumentLibraryEOService.list(queryWrapper);
if(ObjectUtils.isEmpty(bussDocumentLibraryEOS)){
return new ArrayList<>();
}
//wen4_ti2_lei4_xing2 问题类型
List<DictModel> problemTypeList = sysDictService.queryDictItemsByCode(DicCodeEnum.PROBLEM_TYPE.getCode());
List<DictModel> dictModelListTemp = problemTypeList.stream().filter(e -> "Lessons Learned".equals(e.getText())).collect(Collectors.toList());
if(ObjectUtils.isEmpty(dictModelListTemp)){
return new ArrayList<>();
}
LambdaQueryWrapper<ProblemManagementEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(ProblemManagementEO::getLawsId,bussDocumentLibraryEOS.get(0).getId());
lambdaQueryWrapper.eq(ProblemManagementEO::getProblemType,dictModelListTemp.get(0).getValue());
lambdaQueryWrapper.orderByDesc(ProblemManagementEO::getCreateTime);
List<ProblemManagementEO> managementEOList = problemManagementEOService.list(lambdaQueryWrapper);
//法规
List<String> lawsIdList = managementEOList.stream()
.filter(e->StringUtils.isNotBlank(e.getLawsId())).map(ProblemManagementEO::getLawsId).collect(Collectors.toList());
//项目
List<String> projectIdList = managementEOList.stream()
.filter(e->StringUtils.isNotBlank(e.getProjectId())).map(ProblemManagementEO::getProjectId).collect(Collectors.toList());
//相关文件
List<String> fileList = managementEOList.stream()
.filter(e -> StringUtils.isNotBlank(e.getFile())).map(ProblemManagementEO::getFile).collect(Collectors.toList());
//审批证据
List<String> approvalEvidenceList = managementEOList.stream()
.filter(e -> StringUtils.isNotBlank(e.getApprovalEvidence())).map(ProblemManagementEO::getApprovalEvidence).collect(Collectors.toList());
List<String> connectList = new ArrayList<>();
if(!fileList.isEmpty()){
connectList.addAll(fileList);
}
if(!approvalEvidenceList.isEmpty()){
connectList.addAll(approvalEvidenceList);
}
List<OSSFile> fileInfoList = new ArrayList<>();
if(!connectList.isEmpty()){
fileInfoList = iOSSFileService.getFileInfosByConnectId(StringUtils.join(connectList,","));
}
List<BussDocumentLibraryEO> documentLibraryEOList = new ArrayList<>();
if(!lawsIdList.isEmpty()){
Set<String> lawIdSet = new HashSet<>();
for (String lawIds : lawsIdList) {
lawIdSet.addAll(Arrays.asList(lawIds.split(",")));
}
if(!lawIdSet.isEmpty()){
LambdaQueryWrapper<BussDocumentLibraryEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(BussDocumentLibraryEO::getId, lawIdSet);
documentLibraryEOList = bussDocumentLibraryEOService.list(wrapper);
}
}
List<ProjectLibraryBase> projectLibraryBaseList = new ArrayList<>();
if(!projectIdList.isEmpty()){
Set<String> projectIdSet = new HashSet<>();
for (String projectIds : projectIdList) {
projectIdSet.addAll(Arrays.asList(projectIds.split(",")));
}
if(!projectIdSet.isEmpty()){
projectLibraryBaseList = problemManagementEOMapper.queryByIds(StringUtils.join(projectIdSet,","));
}
}
List<DictModel> problemPriorityList = sysDictService.queryDictItemsByCode(DicCodeEnum.PROBLEM_PRIORITY.getCode());
for (ProblemManagementEO problemManagementEO : managementEOList) {
problemManagementEO.setFlag(DataEnum.NEW.getValue());
//问题类型
List<DictModel> dictModelList = problemTypeList.stream().filter(e -> e.getValue().equals(problemManagementEO.getProblemType())).collect(Collectors.toList());
List<DictModel> 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<BussDocumentLibraryEO> documentLibraryEOListTemp = documentLibraryEOList.stream()
.filter(e->StringUtils.isNotBlank(problemManagementEO.getLawsId())
&& problemManagementEO.getLawsId().contains(e.getId())).collect(Collectors.toList());
List<String> 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<ProjectLibraryBase> projectLibraryBaseListTemp = projectLibraryBaseList.stream()
.filter(e->StringUtils.isNotBlank(problemManagementEO.getProjectId())
&& problemManagementEO.getProjectId().contains(e.getId())).collect(Collectors.toList());
//目标市场数据字典
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
List<String> 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<ProblemManagementVO> 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<ProblemManagementVO> 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<ProblemManagementVO> 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<OSSFile> collect = fileInfoList.stream()
.filter(e -> e.getConnectId().equals(problemManagementEO.getFile())).collect(Collectors.toList());
problemManagementEO.setFileList(collect);
}
//审批证据
if(StringUtils.isNotBlank(problemManagementEO.getApprovalEvidence())){
List<OSSFile> collect = fileInfoList.stream()
.filter(e -> e.getConnectId().equals(problemManagementEO.getApprovalEvidence())).collect(Collectors.toList());
problemManagementEO.setApprovalEvidenceFileList(collect);
}
}
return managementEOList;
}
private String getMarket(List<DictModel> targetMarketList, NcrTrackVO trackVO,String cut) {
//目标市场
@@ -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<Proj
private ProjectLibraryBaseMapper projectLibraryBaseMapper;
@Autowired
private ISysDictService sysDictService;
@Autowired
private ProjectLibraryBaseServiceImpl projectLibraryBaseServiceImpl;
@Value(value = "${jero.backUrl}")
@@ -1396,8 +1397,24 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
userIdList.addAll(datas.stream().map(ProjectCertificationInventoryEO::getSdt).collect(Collectors.toList()));
userIdList.addAll(datas.stream().map(ProjectCertificationInventoryEO::getDutyPerson).collect(Collectors.toList()));
List<SysUser> sysUserList = this.sysUserService.querySysUserListByIdList(userIdList);
List<String> standIdList = datas.stream().map(ProjectCertificationInventoryEO::getBussDocumentLibraryId).distinct().collect(Collectors.toList());
List<BussDocumentLibraryEO> 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<Proj
int taskToBeConfirmedCount = 0;//任务待确认
int acceptedCount = 0;//责任人接受
int rejectedCount = 0;//责任人拒绝
//车型项目库数据统计-------------------------------------------------------------------------------
if(CollectionUtils.isNotEmpty(pciEoList)){
// 清单待发布
listToBeReleasedCount = (int) pciEoList.stream().filter(pciEo -> {
@@ -3372,6 +3389,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
int reviewAndPassCount = 0;//审查通过
int reviewAndReturnCount = 0;//审查退回
//车型项目库数据统计------------------------------------------------------------------------------
if(CollectionUtils.isNotEmpty(pciEoList)){
// 任务待确认
taskToBeConfirmedCount = (int) pciEoList.stream().filter(pciEo -> {
@@ -4475,34 +4493,34 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
prpQueryWrap.lambda().eq(ProjectRelatedPersonnel::getProjectId,projectLibraryId);
List<ProjectRelatedPersonnel> prpEoList = this.projectRelatedPersonnelService.list(prpQueryWrap);
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrap = new QueryWrapper<>();
lawsInventoryEOQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId);
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryEOQueryWrap);
// QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrap = new QueryWrapper<>();
// lawsInventoryEOQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId);
// List<ProjectLawsInventoryEO> projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryEOQueryWrap);
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = new ArrayList<>();
List<String> noSerialNumberList = new ArrayList<>();
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : authDummyInventoryInfoEOList) {
if(CollectionUtils.isEmpty(projectLawsInventoryEOList)){
break;
}
// if(CollectionUtils.isEmpty(projectLawsInventoryEOList)){
// break;
// }
// 根据选择调取的数据法规编号跟当前项目中 法规清单数据法规编号对比如果有则加入如果没有则不加入
List<ProjectLawsInventoryEO> 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<ProjectLawsInventoryEO> 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<Proj
projectCertificationInventoryEOTemp.setUpdateTime(new Date());
projectCertificationInventoryEOTemp.setCertificationProgress(CertificationProgressEnum.NOT_START.getValue());
projectCertificationInventoryEOList.add(projectCertificationInventoryEOTemp);
}else {
noSerialNumberList.add(authDummyInventoryInfoEO.getSerialNumber());
}
// }else {
// noSerialNumberList.add(authDummyInventoryInfoEO.getSerialNumber());
// }
}
if(CollectionUtils.isNotEmpty(noSerialNumberList)){
// 判断调取的数据中是否有 在当前项目库法规清单中 没有的编号
if (StringUtils.equals(cut, CutEnum.CN.getValue())) {
result.add("您所选的数据中包含当前项目中不包含的法规编号信息,已为您过滤添加。");
}else {
result.add("The data you have selected contains regulatory number information that is not included in the current project, and has been filtered and added for you.");
}
}
// if(CollectionUtils.isNotEmpty(noSerialNumberList)){
// // 判断调取的数据中是否有 在当前项目库法规清单中 没有的编号
// if (StringUtils.equals(cut, CutEnum.CN.getValue())) {
// result.add("您所选的数据中包含当前项目中不包含的法规编号信息,已为您过滤添加。");
// }else {
// result.add("The data you have selected contains regulatory number information that is not included in the current project, and has been filtered and added for you.");
// }
// }
// List<ProjectCertificationInventoryEO> saveDataList = this.dataUniqueCheck(projectCertificationInventoryEOList, cut, result, projectLibraryId);
@@ -5457,22 +5475,22 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
}
}else{
//验证编号在法规清单中是否存在
LambdaQueryWrapper<ProjectLawsInventoryEO> lwrapper = new LambdaQueryWrapper<>();
lwrapper.in(ProjectLawsInventoryEO::getSerialNumber,serialNumberList);
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = projectLawsInventoryEOService.list(lwrapper);
List<String> LawSerialNumberListTemp = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.toList());
if(serialNumberList.size() != LawSerialNumberListTemp.size()){
//存在法规清单中没有的数据
List<String> collect = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).collect(Collectors.toList());
List<String> 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<ProjectLawsInventoryEO> lwrapper = new LambdaQueryWrapper<>();
// lwrapper.in(ProjectLawsInventoryEO::getSerialNumber,serialNumberList);
// List<ProjectLawsInventoryEO> projectLawsInventoryEOList = projectLawsInventoryEOService.list(lwrapper);
// List<String> LawSerialNumberListTemp = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.toList());
// if(serialNumberList.size() != LawSerialNumberListTemp.size()){
// //存在法规清单中没有的数据
// List<String> collect = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).collect(Collectors.toList());
// List<String> 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<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream()
@@ -7374,6 +7392,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
for (int i = 1; i < projectCertificationInventoryEOList.size(); i++) {
ProjectCertificationInventoryEO projectCertificationInventoryEOTemp = new ProjectCertificationInventoryEO();
BeanUtils.copyProperties(projectCertificationInventoryEO,projectCertificationInventoryEOTemp);
projectCertificationInventoryEOTemp.setPlatformCertificationInventoryId(projectCertificationInventoryEOList.get(i).getId());
projectCertificationInventoryEOTemp.setId(UUID.randomUUID().toString().replace("-", ""));
list.add(projectCertificationInventoryEOTemp);
@@ -7441,6 +7460,81 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
inventoryPlatformEO.setPlatformLawsInventoryId(certificationInventoryEO.getId());
lawsInventoryPlatformEOS.add(inventoryPlatformEO);
}
/**
* 认证清单关联按平台件
* @param id
* @param cut
* @return
*/
@Override
public List<ProjectCertificationInventoryEO> connectPlatform(String id,String cut) {
//认证清单平台件关联表
LambdaQueryWrapper<LawsInventoryPlatformEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsInventoryPlatformEO::getLawsInventoryId,id);
List<LawsInventoryPlatformEO> 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<OSSFile> fileInfos = iOSSFileService.getFileInfos(StringUtils.join(deliverableTemplate, ","));
certificationInventoryEOTemp.setDeliverableTemplateName(fileInfos.get(0).getFileName());
}
//交付物类型
String deliverableType = certificationInventoryEOTemp.getDeliverableType();
if(StringUtils.isNotBlank(deliverableType)){
List<SysCategory> categoryList = sysCategoryService.list();
String name = getTreeName(cut, categoryList, Arrays.asList(deliverableType.split(",")));
certificationInventoryEOTemp.setDeliverableTypeName(name);
}
//平台件认证清单对应的法规
List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseMapper.queryById(certificationInventoryEOTemp.getProjectLibraryId());
//平台件项目名称
if(ObjectUtils.isNotEmpty(projectLibraryBaseList)){
ProjectLibraryBase projectLibraryBase = projectLibraryBaseList.get(0);
//目标市场 英文
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
Map<String,Object> 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<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = new ArrayList<>();
projectCertificationInventoryEOList.add(certificationInventoryEOTemp);
return projectCertificationInventoryEOList;
}
// @Override
// public void listPlatform(Map<String,Object> params) {
// String cut = (String) params.get("cut");//
@@ -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<ProjectLawsIn
List<ProjectLawsInventoryEO> projectLawsInventoryEOListTemp = new ArrayList<>();
for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOListNew) {
List<ProjectLawsInventoryEO> 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<ProjectLawsIn
bussDocumentLibraryEOS = iBussDocumentLibraryEOService.list(lambdaQueryWrapper);
}
List<String> standIdList = list.stream().map(ProjectLawsInventoryEO::getStandId).distinct().collect(Collectors.toList());
List<BussDocumentLibraryEO> 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<ProjectLawsIn
}
}
}*/
String dutyTerritory = projectLawsInventoryEO.getDutyTerritory();
if (StringUtils.isNotEmpty(dutyTerritory)) {
List<ProjectRelatedPersonnel> 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<ProjectRelatedPersonnel> 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<ProjectLawsInventoryEO> updateWrapper = new LambdaUpdateWrapper<>();
LambdaUpdateWrapper<ProjectLawsInventoryEO> 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<ProjectLawsIn
"\nRegulation No: " + LAW_EN +
"\nInitiator: " + sysUser.getUsername() +
"\nDue Date: " + sdf.format(projectLawsInventoryEO.getTaskAffirmDueDate());
color = MsgColorEnum.GREEN.getValue();
color = MsgColorEnum.RED.getValue();
} else if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_DRE_ACCEPTED.getValue())) {
userIdList.add(engineeringInterfacePerson);
@@ -3715,7 +3707,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
private ProjectLawsInventoryEO dataCompare(ProjectLawsInventoryEO projectLawsInventoryEO, DummyInventoryInfoEO dummyInventoryInfoEO) {
//编号
if (StringUtils.isBlank(projectLawsInventoryEO.getSerialNumber())) {
projectLawsInventoryEO.setSendMsgFlag(dummyInventoryInfoEO.getSerialNumber());
projectLawsInventoryEO.setSerialNumber(dummyInventoryInfoEO.getSerialNumber());
}
//标题
if (StringUtils.isBlank(projectLawsInventoryEO.getTitle())) {
@@ -9408,12 +9400,18 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
projectLawsInventoryEO.setDesignFlowStatus(ComplianceFlowStatusEnum.UNINVOLVED.getValue());
}else if (StringUtils.equals(projectLawsInventoryEO.getDesignFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())
|| StringUtils.equals(projectLawsInventoryEO.getDesignFlowStatus(), ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue())) {
if(ObjectUtils.isEmpty(projectLawsInventoryEO.getDesignDueDate())){
return Result.error("编号:"+projectLawsInventoryEO.getSerialNumber()+"的设计符合性交付日期不能为空!");
}
projectLawsInventoryEO.setDesignFlowStatus(ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue());
}
if(StringUtils.equals(projectLawsInventoryEO.getVerifyDeliverableType(),naType)){
projectLawsInventoryEO.setVerifyFlowStatus(ComplianceFlowStatusEnum.UNINVOLVED.getValue());
}else if (StringUtils.equals(projectLawsInventoryEO.getVerifyFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())
|| StringUtils.equals(projectLawsInventoryEO.getVerifyFlowStatus(), ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue())) {
if(ObjectUtils.isEmpty(projectLawsInventoryEO.getVerifyDueDate())){
return Result.error("编号:"+projectLawsInventoryEO.getSerialNumber()+"的验证符合性交付日期不能为空!");
}
projectLawsInventoryEO.setVerifyFlowStatus(ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue());
}
projectLawsInventoryEO.setInventoryAffirmDueDate(endTime);
@@ -10369,6 +10367,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
int taskToBeConfirmedCount = 0;//任务待确认
int acceptedCount = 0;//责任人接收
int rejectedCount = 0;//责任人拒绝
//车型项目库法规统计数据统计-----------------------------------------------
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){
// 清单待发布
listToBeReleasedCount = (int) projectLawsInventoryEOList.stream().filter(pliEo -> {
@@ -10454,6 +10453,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
int complianceCount = 0;//符合
int nonComplianceCount = 0;//不符合
int toBeTrackedCount = 0;//待追踪
//车型项目库法规清单数据统计------------------------------------------------------------------------
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){
// 任务待确认
taskToBeConfirmedCount = (int) projectLawsInventoryEOList.stream().filter(pliEo -> {
@@ -10550,6 +10550,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
int complianceCount = 0;//符合
int nonComplianceCount = 0;//不符合
int toBeTrackedCount = 0;//待追踪
//平车型项目库数据统计-----------------------------------------------------------------------------------------
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){
// 任务待确认
taskToBeConfirmedCount = (int) projectLawsInventoryEOList.stream().filter(pliEo -> {
@@ -12283,7 +12284,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
public void platformDispose(ProjectLawsInventoryEO projectLawsInventoryEO, List<ProjectLawsInventoryEO> result) {
List<String> valueList = FlowStateEnum.getValueInfo();
List<String> valueList = FlowStateDesignEnum.getValueInfo();//修改为按高嵩提供的流程顺序
List<LawsInventoryPlatformEO> lawsInventoryPlatformEOList = new ArrayList<>();
List<ProjectLawsInventoryEO> projectLawsInventoryEOS = new ArrayList<>();
@@ -12767,6 +12768,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
List<SysDictItem> sysDictItems = this.sysDictItemServiceImpl.selectItemsAll();
List<SysCategory> categoryList = sysCategoryService.list();
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
LambdaQueryWrapper<LawsInventoryPlatformEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(LawsInventoryPlatformEO::getLawsInventoryId,lawsInventoryId);
@@ -12820,7 +12822,15 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
List<ProjectLibraryBase> libraryBaseList = projectLibraryBaseList.stream()
.filter(e -> e.getId().equals(projectLawsInventoryEO.getProjectLibraryId())).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(libraryBaseList)){
projectLawsInventoryEO.setProjectName(libraryBaseList.get(0).getProjectNameId());
//项目名称
List<ProjectLibraryBase> projectLibraryBases = libraryBaseList.stream()
.filter(e -> e.getId().equals(projectLawsInventoryEO.getProjectLibraryId())).collect(Collectors.toList());
Map<String,Object> 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 = "";
@@ -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<ProjectLibraryBas
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrapper = new QueryWrapper<>();
lawsInventoryEOQueryWrapper.lambda().in(ProjectLawsInventoryEO::getProjectLibraryId,Arrays.asList(id.split(",")));
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper);
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){
List<String> projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList());
//任务确认统计
// List<Map<String,Object>> taskToConfirmMapList = this.projectLawsInventoryEOService.getTaskToConfirmStatistics(projectLawsInventoryEOList);
// int taskAffirmStatusCount = 0;
// if(CollectionUtils.isNotEmpty(taskToConfirmMapList)){
// //taskAffirmStatusCount
// for (Map<String, Object> 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<Map<String,Object>> designTaskToConfirmMapList = this.projectLawsInventoryEOService.getDesignTaskToConfirmStatistics(projectLawsInventoryEOList);
List<Map<String,Object>> designTaskToConfirmMapList =
this.projectLawsInventoryEOService.getDesignTaskToConfirmStatistics(projectLawsInventoryEOList);
int designTaskAffirmStatusCount = 0;
if(CollectionUtils.isNotEmpty(designTaskToConfirmMapList)){
//taskAffirmStatusCount
@@ -2228,7 +2221,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
result.put("designTaskToConfirmMap",designTaskToConfirmMap);
//验证任务确认
List<Map<String,Object>> verifyTaskToConfirmMapList = this.projectLawsInventoryEOService.getVerifyTaskToConfirmStatistics(projectLawsInventoryEOList);
List<Map<String,Object>> verifyTaskToConfirmMapList
= this.projectLawsInventoryEOService.getVerifyTaskToConfirmStatistics(projectLawsInventoryEOList);
int verifyTaskAffirmStatusCount = 0;
if(CollectionUtils.isNotEmpty(verifyTaskToConfirmMapList)){
//taskAffirmStatusCount
@@ -2241,7 +2235,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
result.put("verifyTaskToConfirmMap",verifyTaskToConfirmMap);
//设计符合性
List<Map<String,Object>> designComplianceMapList = this.projectLawsInventoryEOService.getDesignComplianceStatistice(projectLawsInventoryEOList);
List<Map<String,Object>> designComplianceMapList
= this.projectLawsInventoryEOService.getDesignComplianceStatistice(projectLawsInventoryEOList);
int designFlowTaskStatusCount = 0;
if(CollectionUtils.isNotEmpty(designComplianceMapList)){
for (Map<String, Object> designCompliance : designComplianceMapList) {
@@ -2253,7 +2248,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
result.put("designComplianceMap",designComplianceMap);
//验证符合性
List<Map<String,Object>> verifyComplianceMapList = this.projectLawsInventoryEOService.getVerifyComplianceStatistice(projectLawsInventoryEOList);
List<Map<String,Object>> verifyComplianceMapList
= this.projectLawsInventoryEOService.getVerifyComplianceStatistice(projectLawsInventoryEOList);
int verifyFlowTaskStatusCount = 0;
if(CollectionUtils.isNotEmpty(verifyComplianceMapList)){
for (Map<String, Object> verifyCompliance : verifyComplianceMapList) {
@@ -2274,9 +2270,14 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
}
return flag;
}).distinct().collect(Collectors.toList());
//认证活动管理统计统计的是认证清单------------------------------------------------------------------------------------------------------------------------------
if(CollectionUtils.isNotEmpty(pciEoList)){
//认证清单绑定平台件需要特殊处理
pciEoList = getProjectCertificationInventoryEOS(pciEoList);
// 认证清单-任务确认统计
List<Map<String,Object>> rzTaskToConfirmMapList = this.projectCertificationInventoryEOService.getTaskToConfirmStatistics(pciEoList);
List<Map<String,Object>> rzTaskToConfirmMapList =
this.projectCertificationInventoryEOService.getTaskToConfirmStatistics(pciEoList);
int taskAffirmStatusCount = 0;
if(CollectionUtils.isNotEmpty(rzTaskToConfirmMapList)){
for (Map<String, Object> rzTaskToConfirm : rzTaskToConfirmMapList) {
@@ -2288,7 +2289,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
result.put("rzTaskToConfirmMap",rzTaskToConfirmMap);
// Pre-Homo 统计
List<Map<String,Object>> prehomoMapList = this.projectCertificationInventoryEOService.getPrehomoStatistice(pciEoList);
List<Map<String,Object>> prehomoMapList =
this.projectCertificationInventoryEOService.getPrehomoStatistice(pciEoList);
int preHomoCount = 0;
if (CollectionUtils.isNotEmpty(prehomoMapList)) {
for (Map<String, Object> prehomo : prehomoMapList) {
@@ -2299,6 +2301,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
prehomoMap.put("count",preHomoCount);
result.put("prehomoMap",prehomoMap);
// 认证进度 统计
List<Map<String,Object>> allMapList = this.projectCertificationInventoryEOService.getAllCertificationProgressStatistics(pciEoList);
List<Map<String,Object>> carMapList = this.projectCertificationInventoryEOService.getCarCertificationProgressStatistics(pciEoList);
@@ -2465,6 +2469,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId);
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper);
//如果法规清单关联平台件需要特殊处理
projectLawsInventoryEOList = getProjectLawsInventoryEOS(projectLawsInventoryEOList);
List<SysDictItem> sysDictItems = new ArrayList<>();
// 法规清单所有的责任领域
String pliDutyTerritoryStr = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getDutyTerritory).collect(Collectors.joining(","));
@@ -2635,6 +2642,10 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
pciQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryId);
pciQueryWrap.lambda().ne(ProjectCertificationInventoryEO::getFlowStatus, FlowStateEnum.UNINVOLVED.getValue());
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = this.projectCertificationInventoryEOService.list(pciQueryWrap);
//如果认证清单关联平台件需要特殊处理
projectCertificationInventoryEOList = getProjectCertificationInventoryEOS(projectCertificationInventoryEOList);
String pciDutyTerritoryStr = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getDutyTerritory).collect(Collectors.joining(","));
if (StringUtils.isNotEmpty(pciDutyTerritoryStr)) {
List<String> pciDutyTerritoryList = Arrays.asList(pciDutyTerritoryStr.split(",")).stream().distinct().collect(Collectors.toList());
@@ -2708,6 +2719,116 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
return result;
}
private List<ProjectCertificationInventoryEO> getProjectCertificationInventoryEOS(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList) {
//认证清单关联平台件实际是一个认证清单只关联一个平台件
List<String> projectCertificationInventoryIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getId).collect(Collectors.toList());
//认证清单关联的平台件
LambdaQueryWrapper<LawsInventoryPlatformEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsInventoryPlatformEO::getLawsInventoryId,projectCertificationInventoryIdList);
List<LawsInventoryPlatformEO> lawsInventoryPlatformEOList = lawsInventoryPlatformEOService.list(wrapper);
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOListTemp = new ArrayList<>();
List<ProjectCertificationInventoryEO> yesList = new ArrayList<>();
List<ProjectCertificationInventoryEO> noList = new ArrayList<>();
if(ObjectUtils.isNotEmpty(lawsInventoryPlatformEOList)){
List<String> idList = lawsInventoryPlatformEOList.stream()
.map(LawsInventoryPlatformEO::getPlatformLawsInventoryId).collect(Collectors.toList());
LambdaQueryWrapper<ProjectCertificationInventoryEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(ProjectCertificationInventoryEO::getId,idList);
projectCertificationInventoryEOListTemp = projectCertificationInventoryEOService.list(queryWrapper);
for (ProjectCertificationInventoryEO certificationInventoryEO : projectCertificationInventoryEOList) {
List<LawsInventoryPlatformEO> 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<ProjectLawsInventoryEO> getProjectLawsInventoryEOS(List<ProjectLawsInventoryEO> projectLawsInventoryEOList) {
List<String> projectLawsInventoryIdList = projectLawsInventoryEOList.stream()
.distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList());
//法规清单关联的所有平台件
LambdaQueryWrapper<LawsInventoryPlatformEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsInventoryPlatformEO::getLawsInventoryId,projectLawsInventoryIdList);
List<LawsInventoryPlatformEO> lawsInventoryPlatformEOList = lawsInventoryPlatformEOService.list(wrapper);
//区分哪些法规清单关联了平台件哪些法规清单没有关联平台件
List<ProjectLawsInventoryEO> yesList = new ArrayList<>();
List<ProjectLawsInventoryEO> noList = new ArrayList<>();
List<ProjectLawsInventoryEO> projectLawsInventoryPlatFormList = new ArrayList<>();
if(ObjectUtils.isNotEmpty(lawsInventoryPlatformEOList)){
//所关联平台件的法规清单id
List<String> idList = lawsInventoryPlatformEOList.stream()
.map(LawsInventoryPlatformEO::getPlatformLawsInventoryId).collect(Collectors.toList());
LambdaQueryWrapper<ProjectLawsInventoryEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(ProjectLawsInventoryEO::getId,idList);
projectLawsInventoryPlatFormList = projectLawsInventoryEOMapper.selectList(queryWrapper);
List<String> valueInfo = FlowStateDesignEnum.getValueInfo();
for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOList) {
//每条法规关联的平台件
List<LawsInventoryPlatformEO> collect = lawsInventoryPlatformEOList.stream()
.filter(e -> e.getLawsInventoryId().equals(projectLawsInventoryEO.getId())).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(collect)){
List<String> platformLawsInventoryIdList = collect.stream().map(LawsInventoryPlatformEO::getPlatformLawsInventoryId).collect(Collectors.toList());
//关联的平台件数据
List<ProjectLawsInventoryEO> 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<ProjectLibraryBas
private void projectDetailsStatisticsGroupByTerritoryHearSort(List<Map<String, Object>> dataList,Map<String,Object> 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<ProjectLibraryBas
@Override
public JSONArray getProjectInfo() {
Date now = new Date();
List<ProjectLibraryBase> plbList = this.getList(new ProjectLibraryBase());
ProjectLibraryBase plbWra = new ProjectLibraryBase();
//只查询在研状态
plbWra.setProjectStatus("b99df0cf14984eaa9b9e80623be3f480");
List<ProjectLibraryBase> 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<ProjectLibraryBas
@Override
public JSONArray getProjectProgressInfo() {
List<ProjectLibraryBase> plbList = this.getList(new ProjectLibraryBase());
ProjectLibraryBase plbWra = new ProjectLibraryBase();
//只查询在研状态
plbWra.setProjectStatus("b99df0cf14984eaa9b9e80623be3f480");
List<ProjectLibraryBase> 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<ProjectLibraryBas
QueryWrapper<ProjectLawsInventoryEO> pliQueryWrap = new QueryWrapper<>();
pliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId);
List<ProjectLawsInventoryEO> pliEOList = this.projectLawsInventoryEOMapper.selectList(pliQueryWrap);
//法规清单绑定平台件需要特殊处理
pliEOList = getProjectLawsInventoryEOS(pliEOList);
List<SysDictItem> 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<ProjectLibraryBas
}
return flag;
}).distinct().collect(Collectors.toList());
//认证清单绑定平台件需要特殊处理
projectCertificationInventoryEOList = getProjectCertificationInventoryEOS(projectCertificationInventoryEOList);
String pciDutyTerritoryStr = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getDutyTerritory).collect(Collectors.joining(","));
List<SysDictItem> sysDictItems = new ArrayList<>();
if (StringUtils.isNotEmpty(pciDutyTerritoryStr)) {
@@ -3840,7 +3992,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
"lock," +
"Reject,"+
"Not started," +
"Ongoing," +
"In progress," +
"Test Passed," +
"Test Failed," +
"Component report not submitted," +
@@ -1341,7 +1341,7 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
"lock," +
"Reject,"+
"Not started," +
"Ongoing," +
"In progress," +
"Test Passed," +
"Test Failed," +
"Component report not submitted," +
@@ -1250,7 +1250,7 @@ public class WordUtil {
setBlank(text, run, sb, itemText);
}
if ("Usage".equals(fieldName)) {
String itemText = "Mandatory,Recommend,if fitted";
String itemText = "Mandatory,Recommend,Mandatory if fitted";
setBlank(text, run, sb, itemText);
}
}
@@ -1270,7 +1270,7 @@ public class WordUtil {
text = "Voluntary";
}
if (text.equals("installation is compliant")) {
text = "if fitted";
text = "Mandatory if fitted";
}
if (text.equals("Public Notice")) {
@@ -1395,7 +1395,7 @@ public class WordUtil {
case "Voluntary":
blank = "\r\n";
break;
case "if fitted":
case "Mandatory if fitted":
blank = "";
break;
case "Publicity":
@@ -44,8 +44,12 @@ import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.swing.*;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -96,6 +100,13 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
}
//删除英文标题
mapList.remove(index);
for (Map<String, Object> map : mapList) {
if("title".equals(map.get("db_field_name"))
&& CutEnum.EN.getValue().equals(cut)){
map.put("db_field_name","title_en");
}
}
//添加正文
Map<String, Object> 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<String,Object> mapSort = new HashMap<>();
Map<String,Object> mapSortTemp = new HashMap<>();
Map<String,Object> 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<String, Object>) map.get("mapOne")).get("serial_number"))
|| ObjectUtils.isNotEmpty(((Map<String, Object>) map.get("mapTwo")).get("serial_number"))
|| ObjectUtils.isNotEmpty(((Map<String, Object>) map.get("mapOne")).get("title"))
|| ObjectUtils.isNotEmpty(((Map<String, Object>) map.get("mapTwo")).get("title"))
|| ObjectUtils.isNotEmpty(((Map<String, Object>) map.get("mapOne")).get("title_en"))
|| ObjectUtils.isNotEmpty(((Map<String, Object>) map.get("mapTwo")).get("title_en"))){
Map<String,Object> score = new HashMap<>();
score.put("order","desc");
mapSortTemp.put("_score",score);
// Map<String,Object> 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<String, Object> map = new HashMap<>();
Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>();
JSONArray should = new JSONArray();
s = s.toLowerCase();
if(s.contains(" ")){
for (String valueTemp : s.split(" ")) {
Map<String,Object> mapTemp = new HashMap();
mapTemp.put(key,"*"+valueTemp+"*");
Map<String,Object> map1 = new HashMap<>();
map1.put("wildcard",mapTemp);
should.add(map1);
}
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should);
must.add(jsonObject);
}else{
Map<String, Object> map = new HashMap<>();
Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> 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<String, Object> entry : inputMap.entrySet()) {
// String key = entry.getKey();
// String value = (String) entry.getValue();
// if (ObjectUtils.isNotEmpty(value)) {
// for (String s : value.split(",")) {
// Map<String, Object> map = new HashMap<>();
// Map<String, Object> queryMap = new HashMap<>();
// Map<String, Object> 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<String, Object> entry : otherMap.entrySet()) {
@@ -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"),
Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

File diff suppressed because it is too large Load Diff
+9 -226
View File
@@ -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:'经验参考',
}
@@ -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 {
@@ -10,12 +10,7 @@
:loading="loading"
>
<span slot="content" slot-scope="text,record">
<a-tooltip placement="topLeft" overlayClassName="tooltipColor">
<template slot="title">
<span v-html="text"></span>
</template>
<span v-html="text"></span>
</a-tooltip>
<a @click="versionNumClick(record)">{{record.versionNum}}</a>
</span>
</a-table>
<div class="page" v-if="dataSource.length > 0">
@@ -36,6 +31,7 @@
<script>
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'versionUpdatedRecordList',
mixins: [ResizeHeader, ResizeColumnProvide],
@@ -57,7 +53,8 @@
dataIndex: 'versionNum',
align: 'left',
ellipsis: true,
width: 100
width: 100,
scopedSlots: { customRender: 'content' }
},
{
title: this.$t('upgradeInstructions'),
@@ -116,6 +113,21 @@
this.loading = false
}
})
},
versionNumClick(row) {
let newUrl = this.$router.resolve({
path: '/virtualListDetails',
query: {
name: row.name,
useExplain: row.useExplain,
versionNum:row.versionNum,
id: row.listId,
title: '市场清单详情',
isColophon: 'yes',
marketListVersionUpdateLogId:row.id
}
})
window.open(newUrl.href, '_blank')
}
}
}
@@ -0,0 +1,147 @@
<template>
<div class="box">
<div v-if="experienceReferenceList && experienceReferenceList.length > 0"
class='title'>{{$t('experienceReference')}}</div>
<a-table
v-if="experienceReferenceList && experienceReferenceList.length > 0"
:components="drag(experienceReferenceColumns,'experienceReferenceColumns')"
:columns="experienceReferenceColumns"
rowKey="id"
:scroll="{x: 1000,y:400}"
:data-source="experienceReferenceList"
:pagination="false"
:loading="loading">
<span slot="titleName"
:title="record.title"
slot-scope="text,record">
<a @click="titleClick(record)" style='color:#00B3BE;cursor: pointer'>
{{record.title}}
</a>
</span>
</a-table>
<div class="page" v-if="experienceReferenceList.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
:total="total"
:pageSizeOptions="['10','20','30','50']"
:current="pageNo"
@change="onChangeSize"
@showSizeChange="SizeChange"
/>
</div>
<detilModel ref="detilModelRef"/>
<designCompliance ref="designComplianceRef"/>
</div>
</template>
<script>
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import { getAction, postAction, downloadFile } from '@/api/manage'
import detilModel from '../../views/projectManagement/projectNonConformance/moudles/detilModel'
import designCompliance from '../../views/toDoCenter/projectRegulationTasks/components/designCompliance'
export default {
name: 'index',
mixins: [ResizeHeader, ResizeColumnProvide],
components: {
detilModel,
designCompliance
},
data() {
return {
pageNo: 1,
pageSize: 10,
total: 0,
experienceReferenceColumns: [
{
title: this.$t('title'),
dataIndex: 'title',
align: 'left',
ellipsis: true,
width: 200,
scopedSlots: { customRender: 'titleName' }
},
{
title: this.$t('RelatedItems'),
dataIndex: 'projectName',
align: 'left',
ellipsis: true,
width: 200
},
{
title: this.$t('statisticalNodes'),
dataIndex: 'dutyTerritory',
align: 'left',
ellipsis: true,
width: 200
},
{
title: this.$t('createTime'),
dataIndex: 'createTime',
align: 'left',
ellipsis: true,
width: 200
}
],
experienceReferenceList: [],
loading: false,
serialNumber: ''
}
},
methods: {
titleClick(row) {
this.$refs.detilModelRef.edit(JSON.parse(JSON.stringify(row)))
},
getData(serialNumber) {
this.serialNumber = serialNumber
this.pageNo = 1
this.getList()
},
onChangeSize(page, pageSize) {
this.pageNo = page
this.getList()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
},
getList() {
this.loading = true
getAction('/project/ncrTrackController/queryPageProblem', {
serialNumber: this.serialNumber,
pageNo: this.pageNo,
pageSize: this.pageSize
}).then((res) => {
if (res.success) {
this.experienceReferenceList = res.result.records || []
this.total = res.result.total || 0
} else {
this.experienceReferenceList = []
this.total = 0
}
this.loading = false
})
}
}
}
</script>
<style scoped>
.title {
font-size: 16px;
font-weight: bold;
margin-bottom: 20px;
}
.page {
text-align: right;
margin-top: 20px;
margin-bottom: 20px;
}
</style>
@@ -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
+113 -81
View File
@@ -15,28 +15,28 @@
sticky
:columns="columns"
:rowClassName="rowClassName"
@onHeaderRow='onHeaderRow'
@onHeaderRow="onHeaderRow"
>
<span slot="titleName" slot-scope="text,record" :title="text">
{{ text }}
</span>
<span slot="paramsName" slot-scope="text,record">
<span class="textName" :title="text">{{text}}</span>
<span class="textName" :title="text">{{ text }}</span>
</span>
<div :slot="'titleName'+(index+1)" v-for="(item,index) in content">
<span v-if='item.isLock == 1' style='padding-right: 20px'><a-icon type="lock" theme="twoTone"
<span v-if="item.isLock == 1" style="padding-right: 20px"><a-icon type="lock" theme="twoTone"
two-tone-color="#00B3BE"/></span>
<span style='padding-right: 10px'>{{ item.db_field_txt }} </span>
<a-button @click='onClickSee(item)'>{{$t('See')}}</a-button>
<span style="padding-right: 10px">{{ item.db_field_txt }} </span>
<a-button @click="onClickSee(item)">{{ $t('See') }}</a-button>
</div>
<!-- {{ text && text.length > 8 ? text.slice(0, 7) + '...' : text }}-->
<span slot="ParameterDescription" slot-scope="text,record" :title="text">
<a-button @click='onClickTitle(record)'>{{$t('See')}}</a-button>
<a-button @click="onClickTitle(record)">{{ $t('See') }}</a-button>
</span>
<!-- 历史记录-->
<template slot="Operation" slot-scope="text, record">
<a-button class="action-dict" @click="UpdateLog(record)">{{$t('historicalrecord')}}</a-button>
<a-button class="action-dict" @click="UpdateLog(record)">{{ $t('historicalrecord') }}</a-button>
</template>
<span slot="paramsNameDescription" slot-scope="text,record" :title="text">
{{ text && text.length > 8 ? text.slice(0, 7) + '...' : text }}
@@ -47,14 +47,16 @@
<span
v-if='record.state == "待发起收集" || record.state == "工程接口人退回" || record.state == "变更" || record.state == "To be collected" || record.state == "Rejected by eng. interface" || record.state == "Modify"'>
<span
@click='areaOfResponsibility(record)'>{{ (record.dataValue == null || record.dataValue == 'undefined')? '--': record.dataValue}}</span>
@click="areaOfResponsibility(record)">{{ (record.dataValue == null || record.dataValue == 'undefined') ? '--' : record.dataValue }}</span>
</span>
<span v-else>
<span @click='dataValueTobeinitiated(record)'>{{ (record.dataValue == null || record.dataValue == 'undefined')? '--': record.dataValue}}</span>
<span
@click="dataValueTobeinitiated(record)">{{ (record.dataValue == null || record.dataValue == 'undefined') ? '--' : record.dataValue }}</span>
</span>
</span>
<span v-else>
<span @click='dataValueTobeinitiated(record)'>{{ (record.dataValue == null || record.dataValue == 'undefined')? '--': record.dataValue}}</span>
<span
@click="dataValueTobeinitiated(record)">{{ (record.dataValue == null || record.dataValue == 'undefined') ? '--' : record.dataValue }}</span>
</span>
</span>
<span slot="operationzr" slot-scope="record">
@@ -62,27 +64,36 @@
<!-- 责任领域 -->
<span
v-if='record.state == "待发起收集" || record.state == "工程接口人退回" || record.state == "To be collected" || record.state == "Rejected by eng. interface"'>
<span :title='record.dataValue'
@click='ondataValueTobe(record)'>{{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '')? '--': record.dataValue }}</span>
<span :title="record.dataValue"
@click="ondataValueTobe(record)">{{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '') ? '--' : record.dataValue
}}</span>
</span>
<span v-else>
<span :title='record.dataValue' @click='dataValueTobe(record)'>{{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '')? '--': record.dataValue }}</span>
<span :title="record.dataValue"
@click="dataValueTobe(record)">{{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '') ? '--' : record.dataValue
}}</span>
</span>
</span>
<span v-else>
<span :title='record.dataValue' @click='dataValueTobe(record)'>{{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '')? '--': record.dataValue }}</span>
<span :title="record.dataValue"
@click="dataValueTobe(record)">{{ (record.dataValue == null || record.dataValue == 'undefined' || record.dataValue == '') ? '--' : record.dataValue
}}</span>
</span>
</span>
<span slot="detailClick" slot-scope="text,record">
<collection-type :detailDate='text' :recordList='record' :columName='content'
<collection-type :detailDate="text" :recordList="record" :columName="content"
:currentPersonRole="currentPersonRole"
@consolidateData="consolidateData"
@collectionForm='collectionForm'/>
@collectionForm="collectionForm"/>
</span>
</a-table>
</div>
<div class="page">
<div class="box-button-text" v-if="this.$route.query.version && this.$route.query.version != '1'">
<span>{{ $t('explain') + ': ' }}</span>
<span>{{ $t('parameterCollectionDescription') }}</span>
</div>
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
@@ -90,26 +101,26 @@
:page-size.sync="pageSize"
:total="total"
:current="pageNo"
:pageSizeOptions='pageSizeOptions'
:pageSizeOptions="pageSizeOptions"
@change="pageOnChange"
@showSizeChange="SizeChange"
/>
</div>
<!-- 修改工程接口人--->
<a-modal v-model="areaVisible" :title="$t('modifyprojectInterfacePerson')" width='620px' :footer="null"
<a-modal v-model="areaVisible" :title="$t('modifyprojectInterfacePerson')" width="620px" :footer="null"
@cancel="cancleImports">
<a-form-model
class='tag-module'
ref='ruleForm'
:model='Dateline'
:rules='rules'
:label-col='labelCol'
:wrapper-col='wrapperCol'
class="tag-module"
ref="ruleForm"
:model="Dateline"
:rules="rules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
>
<a-row :gutter='24'>
<a-col :span='24'>
<a-form-model-item ref='region' :label="$t('engineeringInterfacePerson')" prop='querySdt'>
<a-row :gutter="24">
<a-col :span="24">
<a-form-model-item ref="region" :label="$t('engineeringInterfacePerson')" prop="querySdt">
<a-select allowClear :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
v-model="Dateline.querySdt">
<a-select-option v-for="(item, key) in querySdtList" :key="key" :value="item.value">
@@ -125,27 +136,27 @@
<div class="imports-footer">
<div class="imports-footer-wrap">
<a-button class="imports-btn imports-sub" type="primary" @click="handleSubmit">{{$t('preservation')}}
<a-button class="imports-btn imports-sub" type="primary" @click="handleSubmit">{{ $t('preservation') }}
</a-button>
<a-button class="imports-btn" type="primary" @click="cancleImports">{{$t('cancel')}}</a-button>
<a-button class="imports-btn" type="primary" @click="cancleImports">{{ $t('cancel') }}</a-button>
</div>
</div>
</a-modal>
<!-- 修改责任领域--->
<a-modal v-model="areaVisiblezr" :title="$t('areaOfResponsibility')" width='620px' :footer="null"
<a-modal v-model="areaVisiblezr" :title="$t('areaOfResponsibility')" width="620px" :footer="null"
@cancel="cancel">
<a-form-model
class='tag-module'
ref='ruleFormOne'
:model='Dateline'
:rules='rules'
:label-col='labelCol'
:wrapper-col='wrapperCol'
class="tag-module"
ref="ruleFormOne"
:model="Dateline"
:rules="rules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
>
<a-row :gutter='24'>
<a-col :span='24'>
<a-form-model-item ref='region' :label="$t('areaOfResponsibility')" prop='queryzr'>
<a-row :gutter="24">
<a-col :span="24">
<a-form-model-item ref="region" :label="$t('areaOfResponsibility')" prop="queryzr">
<!-- <a-select allowClear :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"-->
<!-- v-model="Dateline.querySdt">-->
<!-- <a-select-option v-for="(item, key) in querySdtList" :key="key" :value="item.value">-->
@@ -167,9 +178,9 @@
<div class="imports-footer-wrap">
<a-button class="imports-btn imports-sub" :loading="confirmLoading" type="primary" @click="handleSubmitzr">
{{$t('preservation')}}
{{ $t('preservation') }}
</a-button>
<a-button class="imports-btn" type="primary" @click="cancel">{{$t('cancel')}}</a-button>
<a-button class="imports-btn" type="primary" @click="cancel">{{ $t('cancel') }}</a-button>
</div>
</div>
</a-modal>
@@ -183,7 +194,7 @@
@ok="handleOk"
@cancel="handleCancel"
>
<historyTable :columnshistory='columnshistory' :dataSourcehistory='dataSourcehistory'></historyTable>
<historyTable :columnshistory="columnshistory" :dataSourcehistory="dataSourcehistory"></historyTable>
<!-- <a-table-->
<!-- class="table"-->
<!-- :columns="columnshistory"-->
@@ -220,48 +231,48 @@
</div>
</a-modal>
<!-- 配置信息--->
<a-modal v-model="areaVisibleView" :title="$t('configurationInformation')" width='550px' :footer="null">
<a-modal v-model="areaVisibleView" :title="$t('configurationInformation')" width="550px" :footer="null">
<div class="content-text">
<div class="text-field">
<span class="text-field-left" :title="$t('configurationName')">{{$t('configurationName')}}:</span>
<span class="text-field-left" :title="$t('configurationName')">{{ $t('configurationName') }}:</span>
<span class="text-field-right"
:title="configDetail.configName"
>{{configDetail.configName}}</span>
>{{ configDetail.configName }}</span>
</div>
</div>
<div class="content-text">
<div class="text-field">
<span class="text-field-left" :title="$t('Model')">{{$t('Model')}}:</span>
<span class="text-field-left" :title="$t('Model')">{{ $t('Model') }}:</span>
<span class="text-field-right" :title="configDetail.carType"
>{{configDetail.carType}}</span>
>{{ configDetail.carType }}</span>
</div>
<div class="text-field">
<span class="text-field-left" :title="$t('electricMachinery')">{{$t('electricMachinery')}}:</span>
<span class="text-field-left" :title="$t('electricMachinery')">{{ $t('electricMachinery') }}:</span>
<span class="text-field-right" :title="configDetail.motor"
>{{configDetail.motor}}</span>
>{{ configDetail.motor }}</span>
</div>
</div>
<div class="content-text">
<div class="text-field">
<span class="text-field-left" :title="$t('Version')">{{$t('Version')}}:</span>
<span class="text-field-left" :title="$t('Version')">{{ $t('Version') }}:</span>
<span class="text-field-right" :title="configDetail.version"
>{{configDetail.version}}</span>
>{{ configDetail.version }}</span>
</div>
<div class="text-field">
<span class="text-field-left" :title="$t('Battery')">{{$t('Battery')}}:</span>
<span class="text-field-left" :title="$t('Battery')">{{ $t('Battery') }}:</span>
<span class="text-field-right" :title="configDetail.battery"
>{{configDetail.battery}}</span>
>{{ configDetail.battery }}</span>
</div>
</div>
</a-modal>
<!-- 参数说明--->
<a-modal v-model="seeVisibleView" :title="$t('ParameterDescription')" width='550px' :footer="null">
<a-modal v-model="seeVisibleView" :title="$t('ParameterDescription')" width="550px" :footer="null">
<div class="content-text">
<div class="textfield">
<span class="textfield-left" :title="$t('ParameterDescription')">{{$t('ParameterDescription')}}:</span>
<span class="textfield-left" :title="$t('ParameterDescription')">{{ $t('ParameterDescription') }}:</span>
<span class="textfield-right"
:title="this.description"
>{{this.description}}</span>
>{{ this.description }}</span>
</div>
</div>
</a-modal>
@@ -271,14 +282,14 @@
<script>
import eventBUs from '../../common/event'
import { getAction, postAction } from '@/api/manage'
import {getAction, postAction} from '@/api/manage'
import CollectionType from '@/components/CollectionType'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import {ACCESS_TOKEN} from '@/store/mutation-types'
import axios from 'axios'
import Vue from 'vue'
// import VueDraggableResizable from 'vue-draggable-resizable'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import {mapGetters} from 'vuex'
import {ResizeHeader, ResizeColumnProvide} from '@/mixins/header'
import historyTable from './historyTable.vue'
export default {
@@ -401,12 +412,12 @@
]
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 14 }
xs: {span: 24},
sm: {span: 14}
},
labelCol: {
xs: { span: 24 },
sm: { span: 7 }
xs: {span: 24},
sm: {span: 7}
},
queryParamQuery: {},
queryParam: {},
@@ -425,7 +436,7 @@
align: 'left',
width: 320,
ellipsis: true,
scopedSlots: { customRender: 'content' }
scopedSlots: {customRender: 'content'}
},
{
title: this.$t('OperationTime'),
@@ -446,7 +457,7 @@
},
watch: {
currentPersonRole: {
handler: function() {
handler: function () {
this.getTableList()
},
immediate: true
@@ -464,7 +475,7 @@
},
handleInput(value) {
this.$nextTick(() => {
this.Dateline = { ...this.Dateline }
this.Dateline = {...this.Dateline}
this.$refs.ruleFormOne.validateField([value])
})
},
@@ -503,7 +514,7 @@
axios({
url: url,
method: 'get',
transformRequest: [function(data) {
transformRequest: [function (data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
@@ -557,7 +568,7 @@
url: '/jero-boot/params/collectManifest/updateDutyTerritory',
method: 'post',
data: param,
transformRequest: [function(data) {
transformRequest: [function (data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
@@ -591,14 +602,14 @@
// 工程接口人 保存
handleSubmit(record) {
let _this = this
let param = { sdt: this.Dateline.querySdt, ids: this.getquerySdtId }
let param = {sdt: this.Dateline.querySdt, ids: this.getquerySdtId}
this.$refs.ruleForm.validate(valid => {
if (valid) {
axios({
url: '/jero-boot/params/collectManifest/updateSdt',
method: 'post',
data: param,
transformRequest: [function(data) {
transformRequest: [function (data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
@@ -641,7 +652,7 @@
// this.$refs.ruleForm.clearValidate()
this.$nextTick(() => {
this.Dateline = { ...this.Dateline }
this.Dateline = {...this.Dateline}
this.getquerySdtList(record)
this.$refs.ruleForm.clearValidate()
})
@@ -652,7 +663,7 @@
// this.$refs.ruleForm.clearValidate()
this.$nextTick(() => {
this.Dateline = { ...this.Dateline }
this.Dateline = {...this.Dateline}
this.getquerySdtId = record.id
this.$refs.ruleFormOne.clearValidate()
})
@@ -743,7 +754,7 @@
}
getAction('/params/userTypeLog/queryCurrentType', query).then((res) => {
if (res.success) {
this.queryParamQuery = { ...this.queryParamQuery }
this.queryParamQuery = {...this.queryParamQuery}
if (res.result && res.result.userType) {
if (!(result.some(val => val.value == res.result.userType))) {
@@ -897,7 +908,10 @@
if (res.headFieldCn == '操作') {
res.field = 'operation'
}
checkedList.push(res.field)
if (!res.show) {
checkedList.push(res.field)
}
// checkedList.push(res.field)
if (res.type) {
// console.log('配置')
this.columns.push({
@@ -923,7 +937,8 @@
// ellipsis: true,
fixed: res.click5 ? 'left' : '',
sorter: res.sort,
width: 160
width: 160,
show: res.show
})
this.columns[index].scopedSlots = {
customRender: 'titleName'
@@ -969,6 +984,12 @@
this.colIndexs.push(index)
}
})
for (let i = 0; i < this.columns.length; i++) {
if (this.columns[i].show == '1') {
this.columns.splice(i, 1)
i--
}
}
this.columns = [...this.columns]
this.colIndexs.forEach((item) => {
this.minWidthColumns.push([this.columns[item], 300])
@@ -1151,7 +1172,7 @@
// console.log(this.currentPersonRole)
if ((this.currentPersonRole == 'homo' || this.currentPersonRole == 'admin') && item == 'referencesCol') {
itemLi.isLock = 0
}else if(this.currentPersonRole == 'homo' && (Obj.state == '变更' || Obj.state == 'Modify')){
} else if (this.currentPersonRole == 'homo' && (Obj.state == '变更' || Obj.state == 'Modify')) {
itemLi.isLock = 0
Obj[item].referencesColFlag = '1'
} else {
@@ -1237,7 +1258,7 @@
}
}
</script>
<style lang='less'>
<style lang="less">
.imports-footer {
.imports-footer-wrap {
margin: 20px 0;
@@ -1256,6 +1277,7 @@
.textData {
font-family: cursive;
}
.nio-drag-handler {
position: absolute;
right: 0;
@@ -1265,11 +1287,13 @@
z-index: 1;
border-right: 1px #e8e8e8 solid;
}
.nio-drag-handler:hover,
.nio-drag-handler:focus{
cursor: col-resize!important;
border-right: 2px solid #0bd9d9!important;
.nio-drag-handler:focus {
cursor: col-resize !important;
border-right: 2px solid #0bd9d9 !important;
}
.nio-header-th {
position: relative;
isolation: isolate;
@@ -1387,6 +1411,14 @@
::v-deep .ant-table-placeholder {
margin-top: 8px !important;
}
.box-button-text {
white-space: pre-wrap;
word-break: break-all;
width: 40%;
float: left;
text-align: left;
}
</style>
<style>
.resize-table-th {
@@ -152,7 +152,7 @@
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
title: this.$t('regulatoryEngineer') + this.$t('initiatingProcess'),
title: this.$t('regulationEngineerInitiateProcess'),
//url传参严格按照当前命名
url: {
seachList: 'document/bussDocumentLibraryEO/queryCondition', //搜索字段
@@ -247,7 +247,7 @@
}
},
mounted() {
document.title = this.$t('regulatoryEngineer') + this.$t('initiatingProcess')
document.title = this.$t('regulationEngineerInitiateProcess')
this.getList()
eventBUs.$on('searchQuery', search => {
Object.keys(search).forEach(res => {
@@ -261,7 +261,7 @@
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
title: this.$t('regulatoryEngineer') + this.$t('initiatingProcess'),
title: this.$t('regulationEngineerInitiateProcess'),
//url传参严格按照当前命名
url: {
seachList: 'document/bussDocumentLibraryEO/queryCondition', //搜索字段
@@ -385,7 +385,7 @@
}
},
mounted() {
document.title = this.$t('regulatoryEngineer') + this.$t('initiatingProcess')
document.title = this.$t('regulationEngineerInitiateProcess')
this.getEvaluationMethodTree()
if (this.$route.query.whetherTobring == '1') {
this.formInline.whetherTobring = '1'
@@ -42,17 +42,23 @@
</div>
<div @click="CollectionClick({'collectFlag':collectFlag,'id':documentId})"
v-has="'bussLog:collect'" class="operator-text-text"
:title="$t('Collection')">
:title="collectFlag == '1' ? $t('CancelCollection') : $t('Collection')">
<a-icon class="icon" type="star" />
{{ collectFlag == '1' ? $t('CancelCollection') : $t('Collection') }}
</div>
<div @click="shareClick" v-has="'bussLog:share'" class="operator-text-text"
:title="$t('share')">
<a-icon type="share-alt" />
{{ $t('share') }}
</div>
<!-- <div @click="shareClick" v-has="'bussLog:share'" class="operator-text-text"-->
<!-- :title="$t('share')">-->
<!-- <a-icon type="share-alt" />-->
<!-- {{ $t('share') }}-->
<!-- </div>-->
<div @click="subscribeClick({'subscribeFlag':subscribeFlag,'id':documentId})"
v-has="'bussLog:subscribe'" class="operator-text-text"
:title="subscribeFlag == '1' ? $t('CancelSubscribe') : $t('subscribe')">
<a-icon type="pushpin" />
{{ subscribeFlag == '1' ? $t('CancelSubscribe') : $t('subscribe') }}
</div>
</div>
</div>
<div style="margin-top: 68px;background: #fff" class="detail-box">
@@ -466,6 +472,28 @@ export default {
}
})
},
subscribeClick(val){
let _this = this
this.$confirm({
content: val.subscribeFlag == 0 || !val.subscribeFlag ? _this.$t('ConfirmSubscribe') : _this.$t('cancelConfirmSubscribe'),
onOk() {
let url = ''
if (val.subscribeFlag == 0 || !val.subscribeFlag) {
url = 'document/bussDocumentLibraryEO/addSubscribe'
} else {
url = 'document/bussDocumentLibraryEO/cancelSubscribe'
}
getAction(url, { id: val.id }).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.getWdkCollectAndSubscribeInfoByUser()
} else {
_this.$message.warning(_this.$t('operationFailed'))
}
})
}
})
},
CollectionClick(val) {
let _this = this
this.$confirm({
@@ -959,14 +987,14 @@ body {
font-weight: 400;
color: #040B29;
display: inline-block;
width: 130px;
max-width: 130px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
text-align: center;
height: 40px;
border: 1px solid #CED0D8;
border-radius: 4px;
//border: 1px solid #CED0D8;
//border-radius: 4px;
line-height: 40px;
padding: 0 5px;
}
@@ -62,7 +62,8 @@
</div>
<div class="table-page-search-submitButtons submitButtons">
<a-button class="box-button" @click="searchReset">{{$t('reset')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" type="primary" @click="searchQuery">{{$t('query')}}
</a-button>
</div>
</div>
<div class="text-right">
@@ -106,13 +107,29 @@
<a @click="handleCompare(record)" class="text-operation"> {{$t('Push')}}</a>
</span>
<span slot="serial_number" slot-scope="text,record">
<span style="cursor: pointer" :title="record.serial_number" class="textName" v-html="record.serial_number"
@click="titleClick(record)"></span>
<a-tooltip placement="topLeft" overlayClassName="tooltip-index" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="record.serial_number"></span>
</template>
<span style="cursor: pointer" class="textName" v-html="record.serial_number"
@click="titleClick(record)"></span>
</a-tooltip>
<!-- <span style="cursor: pointer" class="textName" v-html="record.serial_number"-->
<!-- @click="titleClick(record)"></span>-->
</span>
<span slot="titleName" slot-scope="text,record">
<span style="cursor: pointer" class="textName" v-html="language == 'en-us'?record.title_en:record.title"
:title="language == 'en-us'?record.title_en:record.title"
@click="titleClick(record)"></span>
<a-tooltip placement="topLeft" overlayClassName="tooltip-index" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="language == 'en-us'?record.title_en:record.title"></span>
</template>
<span style="cursor: pointer" class="textName"
v-html="language == 'en-us'?record.title_en:record.title"
:title="language == 'en-us'?record.title_en:record.title"
@click="titleClick(record)"></span>
</a-tooltip>
<!-- <span style="cursor: pointer" class="textName" v-html="language == 'en-us'?record.title_en:record.title"-->
<!-- :title="language == 'en-us'?record.title_en:record.title"-->
<!-- @click="titleClick(record)"></span>-->
</span>
<span slot="file_name" slot-scope="text,record">
<a style="color:#21c9cc" @click="fileNameClick(record)">
@@ -246,7 +263,7 @@
components: {
libraryPush
},
mixins:[ResizeHeader, ResizeColumnProvide],
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
searchOption: [],
@@ -363,7 +380,7 @@
searchQueryOne: {},
orderBy: '1',
orderByField: '',
language:localStorage.getItem('language'),
language: localStorage.getItem('language')
}
},
watch: {
@@ -632,10 +649,15 @@
postAction(this.url.getInfoList, query).then((res) => {
if (res.success) {
this.dataSource = res.result.records
let text = this.queryParam[this.selectModel] ? this.queryParam[this.selectModel].split(' ') : []
this.dataSource.forEach((val) => {
if (val[this.selectModel] && val[this.selectModel].includes(this.queryParam[this.selectModel])) {
val[this.selectModel] = val[this.selectModel].replace(this.queryParam[this.selectModel], `<text style="color:#21c9cc">${this.queryParam[this.selectModel]}</text>`)
}
text.forEach(ol => {
// if (val[this.selectModel] && val[this.selectModel].includes(ol)) {
if (val[this.selectModel]) {
val[this.selectModel] = val[this.selectModel].replace(ol, `<text style="color:#21c9cc">${ol}</text>`)
}
// }
})
})
this.total = res.result.total
this.loading = false
@@ -703,7 +725,7 @@
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank')
}else if(fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg'){
} else if (fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank')
} else {
@@ -741,7 +763,7 @@
}
</style>
<style lang="less" scoped>
@import'~@assets/less/common.less';
@import '~@assets/less/common.less';
.search-con-text {
@@ -960,7 +982,7 @@
/* max-width: calc(100% - 126px) !important;*/
/*}*/
/deep/.ant-table-thead > tr > th {
/deep/ .ant-table-thead > tr > th {
font-weight: bolder;
}
@@ -32,9 +32,15 @@
<span class="text-left" style="width: 72px" :title="$t('instructionForUse')">
{{$t('instructionForUse')}}
</span>
<span class="text-right" :title="$route.query.useExplain">
<span class="text-right" style="margin-right: 100px" :title="$route.query.useExplain">
{{$route.query.useExplain}}
</span>
<span class="text-left" style="width: 72px" :title="$t('VersionNumber')">
{{$t('VersionNumber')}}
</span>
<span class="text-right" :title="$route.query.versionNum">
{{$route.query.versionNum}}
</span>
</div>
</div>
</div>
@@ -68,8 +74,8 @@
<div class="title-text" :title="$t('areaOfResponsibility')">
<span>{{$t('areaOfResponsibility')}}</span>
</div>
<!-- <j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('subtitle')"-->
<!-- v-model="queryParam.dutyTerritory"></j-input>-->
<!-- <j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('subtitle')"-->
<!-- v-model="queryParam.dutyTerritory"></j-input>-->
<j-multi-select-tag class="box-input-search" v-model="queryParam.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
@@ -137,8 +143,8 @@
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@handleSuperQuery="handleSuperQuery"
:fieldList="fieldList"/>
@handleSuperQuery="handleSuperQuery"
:fieldList="fieldList"/>
</a-col>
</span>
</a-row>
@@ -350,9 +356,9 @@
@showSizeChange="SizeChange"
/>
</div>
<!-- <div class="buttom-box" v-if="dataSource && dataSource.length > 0">-->
<!-- {{$t('total')+' '+this.dataSource.length+' '+ $t('strip')}}-->
<!-- </div>-->
<!-- <div class="buttom-box" v-if="dataSource && dataSource.length > 0">-->
<!-- {{$t('total')+' '+this.dataSource.length+' '+ $t('strip')}}-->
<!-- </div>-->
</div>
</a-card>
</div>
@@ -474,7 +480,7 @@
exportTemplate: '/dummy/dummyInventoryInfoEO/exportTemplate',
getSysCategoryTree: '/sys/category/getSysCategoryTree',
logList: '/dummy/dummyLogEO/page',
versionList:'/log/marketListVersionUpdateLogEO/page',
versionList: '/log/marketListVersionUpdateLogEO/page'
},
loading: false,
dataSource: [],
@@ -722,7 +728,7 @@
ellipsis: true
}
]
},
}
// {
// title: this.$t('operation'),
// align: 'left',
@@ -1067,7 +1073,7 @@
dictCode: 'duty_territory'//只要 dictCode 有值无论 type 是什么都显示为字典下拉框
}
],
firstLevelDutyTerritoryList:[],
firstLevelDutyTerritoryList: []
}
},
created() {
@@ -1130,8 +1136,8 @@
this.getList()
},
UpdateLogClick() {
this.$refs.UpdateLogRef.getList({ dummyInventoryBaseId: this.$route.query.id, },
{listId:this.$route.query.id,listType:'Market Regulation List'})
this.$refs.UpdateLogRef.getList({ dummyInventoryBaseId: this.$route.query.id },
{ listId: this.$route.query.id, listType: 'Market Regulation List' })
},
searchQuery() {
this.getList()
@@ -1235,9 +1241,9 @@
moduleFlag: this.$route.query.title == '市场清单详情' ? '虚拟清单详情' : '维护清单'
}).then((res) => {
if (res.success) {
if(res.result && res.result.length > 0){
if (res.result && res.result.length > 0) {
this.columnsAll = res.result
}else{
} else {
this.columnsAll = this.column
}
for (let j = 0; j < this.columnsAll.length; j++) {
@@ -1324,7 +1330,14 @@
pageSize: this.pageSize
}
this.loading = true
getAction(this.url.list, query).then((res) => {
let url = ''
if (this.$route.query.isColophon && this.$route.query.isColophon == 'yes') {
url = '/dummy/dummyInventoryInfoHistoryEO/page'
query.marketListVersionUpdateLogId = this.$route.query.marketListVersionUpdateLogId
} else {
url = this.url.list
}
getAction(url, query).then((res) => {
if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
this.pageNo = 1
@@ -1469,7 +1482,7 @@
edit(item) {
this.$refs.editModelRef.editModel(JSON.parse(JSON.stringify(item)))
},
viewClick(item){
viewClick(item) {
this.$refs.editModelRef.viewModel(JSON.parse(JSON.stringify(item)))
},
deleteLib(val) {
@@ -1567,13 +1580,13 @@
},
viewFileClick(item) {
this.$refs.viewFileModelRef.clickButtonToUpload(item)
},
}
}
}
</script>
<style lang="less" scoped>
@import'~@assets/less/common.less';
@import '~@assets/less/common.less';
.doc-detail {
background: #fff;
@@ -1721,7 +1734,7 @@
font-weight: 400;
color: #040B29;
display: inline-block;
max-width: calc(50% - 240px);
max-width: calc(33.3% - 200px);
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
@@ -1800,18 +1813,22 @@
/deep/ .ant-table-column-title {
font-weight: bold !important;
}
::v-deep .ant-table-thead > tr > th .ant-table-header-column {
max-width: none !important;
}
.viewFile {
color: #00B3BE;
cursor: pointer;
}
::v-deep .ant-table-thead > tr > th[colspan]:not([colspan='1']){
::v-deep .ant-table-thead > tr > th[colspan]:not([colspan='1']) {
text-align: left;
padding-left: 16px!important;
padding-left: 16px !important;
border-right: 1px solid #e8e8e8;
}
.page {
text-align: right;
margin-top: 20px;
@@ -441,6 +441,7 @@
path: '/virtualListDetails',
query: {
name: item.name,
versionNum:item.versionNum,
useExplain: item.useExplain,
id: item.id,
title: '维护市场清单'
@@ -495,6 +496,7 @@
query: {
name: item.name,
useExplain: item.useExplain,
versionNum:item.versionNum,
id: item.id,
title: '市场清单详情'
}
+1 -1
View File
@@ -696,7 +696,7 @@
//树形删除
orgDelete() {
this.$confirm({
content: this.$t('deleteNode'),
content: this.$t('deleteNodeOne'),
onOk:
async () => {
deleteAction(`extRepo/extRepoFolder/delete`, { id: this.nodeItem.key }).then(res => {
@@ -139,30 +139,30 @@
<td :height="qrheight" style='position: relative'>
<div>
<a-radio-group class='box-input-qr' @change='qrchange' v-model="form.yhqr">
<a-radio :value="'1'"> {{ $t('yes') }} </a-radio>
<a-radio :value="'2'"> {{ $t('not') }} </a-radio>
<a-radio :value="1"> {{ $t('yes') }} </a-radio>
<a-radio :value="2"> {{ $t('not') }} </a-radio>
</a-radio-group>
</div>
<div v-if='flagqr'>
<j-dict-select-tag class="box-input2"
v-model="form.flagqr"
v-model="form.yhqrXlk"
:disabled="disable"
dictCode="O_T_A_-_sheng1_ji2_ying3_xiang3_ping2_gu1_-_sheng1_ji2_que4_ren4"
:placeholder="$t('PleaseSelect')"
:type="'select'"
@input="handleInput(form.flagqr)"
@input="handleInput(form.yhqrXlk)"
:triggerChange="false"/>
</div>
<div v-if='flagqrqt'>
<a-input class="box-input-qr2"
v-model="form.qttext"
:title="form.qttext ? form.qttext : $t('PleaseEnter')"
v-model="form.yhqrQt"
:title="form.yhqrQt ? form.yhqrQt : $t('PleaseEnter')"
:placeholder="$t('PleaseEnter')"></a-input>
</div>
<div v-if='flagly'>
<a-input class="box-input2"
v-model="form.ly"
:title="form.ly ? form.ly : $t('PleaseEnter')+ $t('reason')"
v-model="form.yhqrNo"
:title="form.yhqrNo ? form.yhqrNo : $t('PleaseEnter')+ $t('reason')"
:placeholder="$t('PleaseEnter')+ $t('reason')"></a-input>
</div>
</td>
@@ -434,11 +434,11 @@ this.$forceUpdate()
this.flagly = true
this.qrheight = '100px'
}
if(this.form.yhqr == '1' && this.form.flagqr == '344a3320beba45afb3718c59b7a7144a'){
if(this.form.yhqr == '1' && this.form.yhqrXlk == '344a3320beba45afb3718c59b7a7144a'){
this.qrheight = '150px'
this.flagqrqt = true
this.flagly = false
}else if(this.form.yhqr == '1' && this.form.flagqr != '344a3320beba45afb3718c59b7a7144a'){
}else if(this.form.yhqr == '1' && this.form.yhqrXlk != '344a3320beba45afb3718c59b7a7144a'){
this.flagqr = true
this.flagqrqt = false
this.flagly = false
@@ -489,7 +489,7 @@ this.$forceUpdate()
this.qrheight = '100px'
this.flagqr = true
this.flagly = false
if(this.form.flagqr == '344a3320beba45afb3718c59b7a7144a'){
if(this.form.yhqrXlk == '344a3320beba45afb3718c59b7a7144a'){
this.qrheight = '150px'
this.flagqrqt = true
}
@@ -257,7 +257,21 @@ export default {
if (res.result.dllx1 == null || res.result.dllx1 == "") {
this.form.dllx1 = undefined
}else{
let list = []
getAction('sys/dict/getDictItems/vehicle_dynamic_type1', { }).then((res) => {
if (res.success) {
res.result.forEach((item,index) => {
let w = item.value
let a = w.indexOf("-")
let l = w.substring(0,a)
if(this.form.dllx1 == l){
list.push(item)
}
})
this.projectNameList2 = list
}
})
}
if (res.result.dllx2 == null || res.result.dllx2 == "") {
this.form.dllx2 = undefined
@@ -453,6 +467,7 @@ export default {
.title-text-text {
margin-top: 9px;
word-break: break-all;
}
.itemModel {
@@ -153,7 +153,7 @@
<a-col :span="24">
<div class="box-title-text-add">
<div class="title-text-add">
<span class="title-text-text plus3" :title="$t('Vehicledynamictype')">{{$t('Vehicledynamictype')}}</span>
<span class="title-text-text plus3" :title="$t('vehicledynamictype')">{{$t('vehicledynamictype')}}</span>
</div>
<a-form-model-item class="itemModel">
<div style="display:flex;flex-wrap: nowrap;width: 100%;">
@@ -1155,6 +1155,15 @@ button{
justify-content: left;
align-items: center;
padding: 10px;
word-break: break-all;
text-overflow: ellipsis;
overflow: hidden;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
display: -webkit-box;
}
.text-text-three{
/*display: inline-block;*/
@@ -1168,6 +1177,15 @@ button{
justify-content: left;
align-items: center;
padding: 10px;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all
}
.text-text-five{
/*display: inline-block;*/
@@ -69,13 +69,14 @@
{{ text && text.length > 50 ? text.slice(0, 49) + '...' : text }}
</span>
<span slot="operation" slot-scope="text,record">
<a class="text-operation" v-has="'params:template:edit'" @click="edit(record)">{{$t('edit')}}</a>
<a class="text-operation" :disabled="record.status == '1' ? true : false" v-has="'params:template:edit'" @click="edit(record)">{{$t('edit')}}</a>
<a class="text-operation"
v-has="'params:template:publish'"
@click="withdrawOrRelease(record)">{{record.status && record.status == '1'? $t('withdraw') : $t('release')}}</a>
<a class="text-operation" v-has="'params:template:maintenanceTemplate'"
<a class="text-operation" :disabled="record.status == '1' ? true : false" v-has="'params:template:maintenanceTemplate'"
@click="maintenanceTemplateClick(record)">{{$t('maintenanceTemplate')}}</a>
<a class="text-operation" v-has="'params:template:delete'" @click="deleteLib(record)">{{$t('deleteLib')}}</a>
<a class="text-operation" :disabled="record.status == '1' ? true : false"
v-has="'params:template:delete'" @click="deleteLib(record)">{{$t('deleteLib')}}</a>
</span>
</a-table>
</div>
@@ -91,6 +92,7 @@
@showSizeChange="SizeChange"
/>
</div>
<JLoading :loading="JLoading">{{ $t('pleaseWaitWhileRunning') }}</JLoading>
<addModel :url="url" ref="addModelRef" @addModelList="addModelList"/>
<a-modal class="show-copy" v-model="areaVisible" :title="$t('templateCopy')" :footer="null" @cancel="hideModal">
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
@@ -139,6 +141,7 @@ export default {
token:Vue.ls.get(ACCESS_TOKEN),
loading: false,
toggleSearchStatus: false,
JLoading:false,
selectedRowKeys: [],
selectedRowKeysArray: '',
orderBy: '1',
@@ -299,13 +302,16 @@ export default {
this.$confirm({
content: item.status && item.status == '1' ? _this.$t('confirmWithdraw') : _this.$t('confirmRelease'),
onOk() {
_this.JLoading = true
if (item.status && item.status == '1'){
getAction('params/paramsInfo/withdraw', { paramsTemplateId: item.id }).then((res) => {
if (res.success) {
_this.$message.success(res.result)
_this.getList()
_this.JLoading = false
} else {
_this.$message.warning(res.message)
_this.JLoading = false
}
})
}else{
@@ -313,8 +319,10 @@ export default {
if (res.success) {
_this.$message.success(res.result)
_this.getList()
_this.JLoading = false
} else {
_this.$message.warning(res.message)
_this.JLoading = false
}
})
}
@@ -15,15 +15,15 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('NNiONumber')">{{$t('NNiONumber')}}</span>
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('NNiONumber')">{{ $t('NNiONumber') }}</span>
</div>
<a-form-model-item class="itemModel" prop="nioNumber">
<a-input class="box-input"
:disabled="disabled"
v-model.trim="formInline.nioNumber"
:placeholder="$t('PleaseEnter')+$t('NNiONumber')"/>
:placeholder="$t('PleaseEnter')+$t('NNiONumber')" />
</a-form-model-item>
</div>
</a-col>
@@ -31,14 +31,14 @@
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text" :title="$t('NRequired')">{{$t('NRequired')}}</span>
<span class="title-text-text" :title="$t('NRequired')">{{ $t('NRequired') }}</span>
</div>
<a-form-model-item class="itemModel" prop="isMust">
<a-select allowClear :disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('NRequired')" v-model='formInline.isMust'>
<a-select-option :key="'1'" :value="'1'">{{$t('yes')}}
:placeholder="$t('PleaseSelect')+$t('NRequired')" v-model="formInline.isMust">
<a-select-option :key="'1'" :value="'1'">{{ $t('yes') }}
</a-select-option>
<a-select-option :key="'0'" :value="'0'">{{$t('notOnlyRz')}}
<a-select-option :key="'0'" :value="'0'">{{ $t('notOnlyRz') }}
</a-select-option>
</a-select>
</a-form-model-item>
@@ -49,51 +49,52 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('Paraname')">{{$t('Paraname')}}</span>
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('Paraname')">{{ $t('Paraname') }}</span>
</div>
<a-form-model-item class="itemModel" prop="paramsName">
<a-input class="box-input"
:disabled="disabled"
v-model.trim="formInline.paramsName"
:placeholder="$t('PleaseEnter')+$t('Paraname')"/>
:placeholder="$t('PleaseEnter')+$t('Paraname')" />
</a-form-model-item>
</div>
</a-col>
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="Required">*</span>-->
<!-- <span class="title-text-text" :title="$t('NtechnicalField')">{{$t('NtechnicalField')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="technologyTerritory">-->
<!-- <a-tree-select-->
<!-- tree-node-filter-prop="title"-->
<!-- v-model="formInline.technologyTerritory"-->
<!-- :maxTagCount="1"-->
<!-- class="box-input"-->
<!-- :getPopupContainer="triggerNode=> triggerNode.parentNode"-->
<!-- style="width: 100%"-->
<!-- :tree-data="CategoryTreeList"-->
<!-- tree-checkable-->
<!-- :placeholder="$t('PleaseSelect')+$t('NtechnicalField')"-->
<!-- />-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="Required">*</span>-->
<!-- <span class="title-text-text" :title="$t('NtechnicalField')">{{$t('NtechnicalField')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="technologyTerritory">-->
<!-- <a-tree-select-->
<!-- tree-node-filter-prop="title"-->
<!-- v-model="formInline.technologyTerritory"-->
<!-- :maxTagCount="1"-->
<!-- class="box-input"-->
<!-- :getPopupContainer="triggerNode=> triggerNode.parentNode"-->
<!-- style="width: 100%"-->
<!-- :tree-data="CategoryTreeList"-->
<!-- tree-checkable-->
<!-- :placeholder="$t('PleaseSelect')+$t('NtechnicalField')"-->
<!-- />-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text" :title="$t('NareaOfResponsibility')">{{$t('NareaOfResponsibility')}}</span>
<span class="title-text-text"
:title="$t('NareaOfResponsibility')">{{ $t('NareaOfResponsibility') }}</span>
</div>
<a-form-model-item class="itemModel" prop="dutyTerritory">
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
:triggerChange="false" :dictCode="'duty_territory'" />
</a-form-model-item>
</div>
</a-col>
@@ -102,16 +103,16 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('Parabatch')">{{$t('Parabatch')}}</span>
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('Parabatch')">{{ $t('Parabatch') }}</span>
</div>
<a-form-model-item class="itemModel" prop="paramsBatch">
<j-dict-select-tag class="box-input" v-model="formInline.paramsBatch"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('Parabatch')"
:type="'select'"
:triggerChange="false" :dictCode="'params_batch'"/>
:triggerChange="false" :dictCode="'params_batch'" />
</a-form-model-item>
</div>
</a-col>
@@ -122,47 +123,47 @@
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('NParameterDescription')">{{$t('NParameterDescription')}}</span>
:title="$t('NParameterDescription')">{{ $t('NParameterDescription') }}</span>
</div>
<a-form-model-item class="itemModel-text" prop="description">
<a-input class="box-input add-input"
style='height: 95px; width: 100%'
style="height: 95px; width: 100%"
type="textarea"
:disabled="disabled"
v-model.trim="formInline.description"
:placeholder="$t('PleaseEnter')+$t('NParameterDescription')"/>
:placeholder="$t('PleaseEnter')+$t('NParameterDescription')" />
</a-form-model-item>
</div>
</a-col>
</a-row>
<!-- v-if='required'-->
<a-row :gutter="24" >
<!-- v-if='required'-->
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('NcertificationCategory')">{{$t('NcertificationCategory')}}</span>
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('NcertificationCategory')">{{ $t('NcertificationCategory') }}</span>
</div>
<a-form-model-item class="itemModel-multi" prop="certCategory">
<j-multi-select-tag-only-rz class="box-input" v-model="formInline.certCategory"
@change='Onchange'
v-on:changelabel='Onchangelabel'
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('NcertificationCategory')"
:type="'checkbox'"
:triggerChange="false" :dictCode="'cert_category'"/>
@change="Onchange"
v-on:changelabel="Onchangelabel"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('NcertificationCategory')"
:type="'checkbox'"
:triggerChange="false" :dictCode="'cert_category'" />
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" style='margin-top: 5px'>
<a-row :gutter="24" style="margin-top: 5px">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('NcontrolType')">{{$t('NcontrolType')}}</span>
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('NcontrolType')">{{ $t('NcontrolType') }}</span>
</div>
<a-form-model-item class="itemModel" prop="controlType">
<a-select :placeholder="$t('PleaseSelect')+$t('NcontrolType')"
@@ -178,16 +179,19 @@
</a-form-model-item>
</div>
</a-col>
<!-- 控件校验-->
<a-col :span="12" v-if='this.formInline.controlType =="1" || this.formInline.controlType =="5" || this.formInline.controlType =="6" || this.formInline.controlType =="7" || this.formInline.controlType =="10"'>
<!-- 控件校验-->
<a-col :span="12"
v-if='this.formInline.controlType =="1" || this.formInline.controlType =="5" || this.formInline.controlType =="6" || this.formInline.controlType =="7" || this.formInline.controlType =="10"'>
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text" :title="$t('NcontrolVerification')">{{$t('NcontrolVerification')}}</span>
<span class="title-text-text"
:title="$t('NcontrolVerification')">{{ $t('NcontrolVerification') }}</span>
</div>
<a-form-model-item class="itemModel" prop="controlVerify">
<a-select :disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('NcontrolVerification')" allowClear v-model="formInline.controlVerify">
:placeholder="$t('PleaseSelect')+$t('NcontrolVerification')" allowClear
v-model="formInline.controlVerify">
<a-select-option v-for="(item, key) in controlVerification" :key="key" :value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
{{ item.label }}
@@ -202,7 +206,7 @@
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('DefaultValue')">{{$t('DefaultValue')}}</span>
:title="$t('DefaultValue')">{{ $t('DefaultValue') }}</span>
</div>
<a-form-model-item class="itemModel" prop="titleDefaultValue">
<a-input class="box-input"
@@ -210,19 +214,20 @@
:disabled="disabled"
:maxlength="100"
v-model="formInline.titleDefaultValue"
:placeholder="$t('PleaseEnter')+$t('DefaultValue')"/>
:placeholder="$t('PleaseEnter')+$t('DefaultValue')" />
</a-form-model-item>
</div>
</a-col>
</a-row>
<!-- 控件备选值-->
<!-- 控件备选值-->
<a-row :gutter="24">
<a-col :span="12" v-if='this.formInline.controlType =="2" || this.formInline.controlType =="3" || this.formInline.controlType =="5" || this.formInline.controlType =="6" || this.formInline.controlType =="8" || this.formInline.controlType =="9" || this.formInline.controlType =="10"'>
<a-col :span="12"
v-if='this.formInline.controlType =="2" || this.formInline.controlType =="3" || this.formInline.controlType =="5" || this.formInline.controlType =="6" || this.formInline.controlType =="8" || this.formInline.controlType =="9" || this.formInline.controlType =="10"'>
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('NcontrolAlternatives')">{{$t('NcontrolAlternatives')}}</span>
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('NcontrolAlternatives')">{{ $t('NcontrolAlternatives') }}</span>
</div>
<a-form-model-item class="itemModel" prop="controlValues">
<a-input class="box-input add-input"
@@ -230,47 +235,49 @@
type="textarea"
@input="onInput"
v-model.trim="formInline.controlValues"
:placeholder="$t('PleaseEnter')+$t('NcontrolAlternatives')"/>
:placeholder="$t('PleaseEnter')+$t('NcontrolAlternatives')" />
</a-form-model-item>
</div>
</a-col>
<!-- 附件模板-->
<a-col :span="12" v-if='this.formInline.controlType =="4" || this.formInline.controlType =="7" || this.formInline.controlType =="8" || this.formInline.controlType =="9" || this.formInline.controlType =="10"'>
<!-- 附件模板-->
<a-col :span="12"
v-if='this.formInline.controlType =="4" || this.formInline.controlType =="7" || this.formInline.controlType =="8" || this.formInline.controlType =="9" || this.formInline.controlType =="10"'>
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('NattachmentTemplate')">{{$t('NattachmentTemplate')}}</span>
:title="$t('NattachmentTemplate')">{{ $t('NattachmentTemplate') }}</span>
</div>
<a-form-model-item class="itemModel" prop="paramsTemplateName">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('fileTemplateConnectId')">
{{ (formInline.fileTemplateConnectId === 'null' || formInline.fileTemplateConnectId === '' ||
formInline.fileTemplateConnectId == null) ? $t('clickUpload') : $t('viewUploadedFiles')}}
{{ (formInline.fileTemplateConnectId === 'null' || formInline.fileTemplateConnectId === '' ||
formInline.fileTemplateConnectId == null) ? $t('clickUpload') : $t('viewUploadedFiles') }}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
<!-- v-if='required'-->
<a-row :gutter="24" >
<a-col :span="24" >
<!-- v-if='required'-->
<a-row :gutter="24">
<a-col :span="24">
<a-tabs>
<a-tab-pane v-for='(item,index) in contentList' :tab="item.cut == 'cn' ? item.text : item.textEn" :key="index + 1">
<a-tab-pane v-for="(item,index) in contentList" :tab="item.cut == 'cn' ? item.text : item.textEn"
:key="index + 1">
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('ParameterNo')">{{$t('ParameterNo')}}</span>
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('ParameterNo')">{{ $t('ParameterNo') }}</span>
</div>
<a-form-model-item class="itemModel">
<a-input class="box-input"
:disabled="disabled"
v-model.trim="item.paramsNumber"
:placeholder="$t('PleaseEnter')+$t('ParameterNo')"/>
:placeholder="$t('PleaseEnter')+$t('ParameterNo')" />
</a-form-model-item>
</div>
</a-col>
@@ -278,13 +285,13 @@
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text" :title="$t('NParameterName')">{{$t('NParameterName')}}</span>
<span class="title-text-text" :title="$t('NParameterName')">{{ $t('NParameterName') }}</span>
</div>
<a-form-model-item class="itemModel">
<a-input class="box-input"
:disabled="disabled"
v-model.trim="item.paramsName"
:placeholder="$t('PleaseEnter')+$t('NParameterName')"/>
:placeholder="$t('PleaseEnter')+$t('NParameterName')" />
</a-form-model-item>
</div>
</a-col>
@@ -294,21 +301,21 @@
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('NParameterDescription')">{{$t('NParameterDescription')}}</span>
:title="$t('NParameterDescription')">{{ $t('NParameterDescription') }}</span>
</div>
<a-form-model-item class="itemModel">
<a-input class="box-input add-input"
style='height: 95px; width: 100%'
style="height: 95px; width: 100%"
:disabled="disabled"
type="textarea"
:maxLength="1000"
v-model="item.description"
:placeholder="$t('PleaseEnter')+$t('NParameterDescription')"/>
:placeholder="$t('PleaseEnter')+$t('NParameterDescription')" />
</a-form-model-item>
</div>
</a-col>
</a-row>
<!-- </a-form-model>-->
<!-- </a-form-model>-->
</a-tab-pane>
</a-tabs>
</a-col>
@@ -316,8 +323,9 @@
</a-form-model>
</a-spin>
<div class="drawer-bootom-button">
<a-button style="margin-right: 8px" @click="handleCancel">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit" type="primary" v-if="!disabled" :loading="confirmLoading">{{$t('submit')}}</a-button>
<a-button style="margin-right: 8px" @click="handleCancel">{{ $t('cancel') }}</a-button>
<a-button @click="handleSubmit" type="primary" v-if="!disabled" :loading="confirmLoading">{{ $t('submit') }}
</a-button>
</div>
</a-drawer>
<uploadFileChange :isParameter="true" ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFileChange>
@@ -328,6 +336,7 @@
import PersonnelSelection from '@/components/PersonnelSelection/index'
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
import uploadFileChange from '@/components/uploadFileChange/file'
export default {
name: 'addModel',
components: {
@@ -335,11 +344,11 @@ export default {
PersonnelSelection
},
props: {
url: {
type: Object,
default: {},
require: true
},
url: {
type: Object,
default: {},
require: true
},
certCategoryParamsInfoEOListItem: {
type: Array,
default: [],
@@ -349,39 +358,39 @@ export default {
data() {
return {
controlType: [ // 控件类型
{value:'1', label: this.$t('Ntext') },
{value:'2', label: this.$t('NDropdownradio') },
{value:'3', label: this.$t('NDropdownmultipleselection') },
{value:'4', label: this.$t('Nenclosure') },
{value:'5', label: this.$t('Atext') },
{value:'6', label: this.$t('Btext') },
{value:'7', label: this.$t('Ctext') },
{value:'8', label: this.$t('Dtext') },
{value:'9', label: this.$t('Etext') },
{value:'10', label: this.$t('Ftext') },
{value:'11', label: this.$t('Gtext') },
{ value: '1', label: this.$t('Ntext') },
{ value: '2', label: this.$t('NDropdownradio') },
{ value: '3', label: this.$t('NDropdownmultipleselection') },
{ value: '4', label: this.$t('Nenclosure') },
{ value: '5', label: this.$t('Atext') },
{ value: '6', label: this.$t('Btext') },
{ value: '7', label: this.$t('Ctext') },
{ value: '8', label: this.$t('Dtext') },
{ value: '9', label: this.$t('Etext') },
{ value: '10', label: this.$t('Ftext') },
{ value: '11', label: this.$t('Gtext') }
],
controlVerification: [ // 控件校验
{value:'1', label: this.$t('Nnothing') },
{value:'2', label: this.$t('Nchinese') },
{value:'3', label: this.$t('NpositiveInteger') },
{value:'4', label: this.$t('NPositivefloatingpointnumber') },
{value:'5', label: this.$t('NintegerOrDecimal')},
{value:'6', label: this.$t('NOneDecimalPlace') },
{value:'7', label: this.$t('NTwoDecimalplaces') },
{value:'8', label: this.$t('NThreedecimalplaces') },
{value:'9', label: this.$t('NFourDecimalplaces') },
{ value: '1', label: this.$t('Nnothing') },
{ value: '2', label: this.$t('Nchinese') },
{ value: '3', label: this.$t('NpositiveInteger') },
{ value: '4', label: this.$t('NPositivefloatingpointnumber') },
{ value: '5', label: this.$t('NintegerOrDecimal') },
{ value: '6', label: this.$t('NOneDecimalPlace') },
{ value: '7', label: this.$t('NTwoDecimalplaces') },
{ value: '8', label: this.$t('NThreedecimalplaces') },
{ value: '9', label: this.$t('NFourDecimalplaces') }
],
CategoryTreeList: [], // 技术领域
certCategoryParamsInfoEOList: [], // 认证类别得tab栏
formInline: {},
confirmLoading: false,
required:true,
required: true,
visible: false,
rules: {
nioNumber:[
{ required: true, message: this.$t('PleaseEnter')+this.$t('NiONumber'), trigger: 'blur' },
{ min:1, max: 20, message: this.$t('cantExeed')+'20'+this.$t('characters'), trigger: 'blur' },
nioNumber: [
{ required: true, message: this.$t('PleaseEnter') + this.$t('NiONumber'), trigger: 'blur' },
{ min: 1, max: 20, message: this.$t('cantExeed') + '20' + this.$t('characters'), trigger: 'blur' },
{
pattern: /^[0-9a-zA-Z-/ ]{1,}$/,
message: this.$t('onlyThree'),
@@ -392,57 +401,57 @@ export default {
// { required: true, message: this.$t('pleaseSelect')+this.$t('certificationCategory'), type: 'array', trigger: 'change' },
],
isMust: [
{ required: true, message: this.$t('PleaseEnter')+this.$t('Required'), trigger: 'change' },
{ required: true, message: this.$t('PleaseEnter') + this.$t('Required'), trigger: 'change' }
],
paramsName: [
{ required: true, message: this.$t('pleaseSelect')+this.$t('Paraname'), trigger: 'blur' },
{ min:1, max: 500, message: this.$t('cantExeed')+'500'+this.$t('characters'), trigger: 'blur' },
{ required: true, message: this.$t('pleaseSelect') + this.$t('Paraname'), trigger: 'blur' },
{ min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' }
],
technologyTerritory: [
{ required: true, message: this.$t('pleaseSelect')+this.$t('technicalField'), trigger: 'change' },
{ required: true, message: this.$t('pleaseSelect') + this.$t('technicalField'), trigger: 'change' }
],
paramsBatch: [
{ required: true, message: this.$t('PleaseSelect')+this.$t('parameterBatch'), trigger: 'change' },
{ required: true, message: this.$t('PleaseSelect') + this.$t('parameterBatch'), trigger: 'change' }
],
dutyTerritory: [
{ required: true, message: this.$t('PleaseSelect')+this.$t('areaOfResponsibility'), trigger: 'change' },
{ required: true, message: this.$t('PleaseSelect') + this.$t('areaOfResponsibility'), trigger: 'change' }
],
description: [
{ min:1, max: 2000, message: this.$t('cantExeed')+'2000'+this.$t('characters'), trigger: 'blur' },
{ min: 1, max: 2000, message: this.$t('cantExeed') + '2000' + this.$t('characters'), trigger: 'blur' }
],
controlType: [
{ required: true, message: this.$t('pleaseSelect')+this.$t('controlType'), trigger: 'change' },
{ required: true, message: this.$t('pleaseSelect') + this.$t('controlType'), trigger: 'change' }
],
controlVerify: [
{ required: true, message: this.$t('PleaseEnter')+this.$t('controlVerification'), trigger: 'change' },
{ required: true, message: this.$t('PleaseEnter') + this.$t('controlVerification'), trigger: 'change' }
],
controlValues: [
{ required: true, message: this.$t('PleaseEnter')+this.$t('controlAlternatives'), trigger: 'blur' },
{ min:1, max: 500, message: this.$t('cantExeed')+'500'+this.$t('characters'), trigger: 'blur' },
{ required: true, message: this.$t('PleaseEnter') + this.$t('controlAlternatives'), trigger: 'blur' },
{ min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' },
{ validator: this.test }
],
titleDefaultValue: [
{ required: true, message: this.$t('PleaseEnter')+this.$t('DefaultValue'), trigger: 'blur' },
{ min:1, max: 100, message: this.$t('cantExeed')+'100'+this.$t('characters'), trigger: 'blur' },
],
{ required: true, message: this.$t('PleaseEnter') + this.$t('DefaultValue'), trigger: 'blur' },
{ min: 1, max: 100, message: this.$t('cantExeed') + '100' + this.$t('characters'), trigger: 'blur' }
]
},
rulesItem: {
paramsNumber: [
{ required: true, message: this.$t('PleaseEnter')+this.$t('standard'), trigger: 'change' }
{ required: true, message: this.$t('PleaseEnter') + this.$t('standard'), trigger: 'change' }
]
},
disabled: false,
projectNameList: [],
title: '',
cut:'',
cut: '',
stateOne: '',
contentList : [],
contentList: [],
contentListed: [], // 编辑 contentList 所带出来的数据
SelectChangelabel: false, // 控件校验
inputChangelabel: false, // 控件备选值校验
buttonChangelabel: false, // 模板校验
contentListStart: [], // 认证类别编辑
flag: 1, // 判断师新增编辑 默认新增
flag: 1 // 判断师新增编辑 默认新增
}
},
mounted() {
@@ -466,7 +475,7 @@ export default {
}
},
getcontentListedEdit() {
getAction('sys/dict/getDictItems/cert_category', { }).then((res) => {
getAction('sys/dict/getDictItems/cert_category', {}).then((res) => {
if (res.success) {
let tt = []
res.result.forEach((item) => {
@@ -474,17 +483,17 @@ export default {
certCategory: item.value,
paramsNumber: item.paramsNumber, // 编号
paramsName: item.paramsName, //参数名称
description: item.description, // 描述
description: item.description // 描述
}
tt.push(Object.assign(obj,item))
tt.push(Object.assign(obj, item))
})
this.contentListStart = tt
console.log(this.contentListStart)
}
})
},
controlTypeChange(value){
this.$refs.ruleForm.clearValidate(['controlVerify','titleDefaultValue','controlValues'])
controlTypeChange(value) {
this.$refs.ruleForm.clearValidate(['controlVerify', 'titleDefaultValue', 'controlValues'])
// if(value == 11){
// this.required = false
// }else {
@@ -515,20 +524,20 @@ export default {
},
Onchangelabel(val) {
let _tt = []
if(this.flag == 1) {
if(this.cut == 'cn'){
if (this.flag == 1) {
if (this.cut == 'cn') {
this.contentListStart.forEach((itemVal) => {
val.forEach((item) => {
if(itemVal.value === item.value) {
if (itemVal.value === item.value) {
itemVal.cut = 'cn'
_tt.push(itemVal)
}
})
})
}else {
} else {
this.contentListStart.forEach((itemVal) => {
val.forEach((item) => {
if(itemVal.value === item.value) {
if (itemVal.value === item.value) {
itemVal.cut = 'en'
_tt.push(itemVal)
}
@@ -540,10 +549,10 @@ export default {
} else {
let _mm = []
if(this.cut == 'cn'){
if (this.cut == 'cn') {
this.contentListStart.forEach((itemVal) => {
val.forEach((item) => {
if(itemVal.value === item.value) {
if (itemVal.value === item.value) {
itemVal.cut = 'cn'
_mm.push(itemVal)
}
@@ -552,20 +561,20 @@ export default {
_mm.forEach((item) => {
this.contentListed.forEach((itemVal) => {
// 原编辑的数据
if(itemVal.certCategory === item.value) {
item.textVal= itemVal.textVal,
item.certCategory= itemVal.certCategory,
item.paramsNumber= itemVal.paramsNumber, // 编号
item.paramsName= itemVal.paramsName, //参数名称
item.cut= itemVal.cut, //中英文标识
item.description= itemVal.description // 描述
if (itemVal.certCategory === item.value) {
item.textVal = itemVal.textVal,
item.certCategory = itemVal.certCategory,
item.paramsNumber = itemVal.paramsNumber, // 编号
item.paramsName = itemVal.paramsName, //参数名称
item.cut = itemVal.cut, //中英文标识
item.description = itemVal.description // 描述
}
})
})
}else {
} else {
this.contentListStart.forEach((itemVal) => {
val.forEach((item) => {
if(itemVal.value === item.value) {
if (itemVal.value === item.value) {
itemVal.cut = 'en'
_mm.push(itemVal)
}
@@ -574,13 +583,13 @@ export default {
_mm.forEach((item) => {
this.contentListed.forEach((itemVal) => {
// 原编辑的数据
if(itemVal.certCategory === item.value) {
item.textVal= itemVal.textVal,
item.certCategory= itemVal.certCategory,
item.paramsNumber= itemVal.paramsNumber, // 编号
item.paramsName= itemVal.paramsName, //参数名称
item.cut= itemVal.cut, //中英文标识
item.description= itemVal.description // 描述
if (itemVal.certCategory === item.value) {
item.textVal = itemVal.textVal,
item.certCategory = itemVal.certCategory,
item.paramsNumber = itemVal.paramsNumber, // 编号
item.paramsName = itemVal.paramsName, //参数名称
item.cut = itemVal.cut, //中英文标识
item.description = itemVal.description // 描述
}
})
})
@@ -594,23 +603,24 @@ export default {
let arr = []
let newArray = []
this.arr = []
this.contentListStart.forEach((item,index) => {
this.contentListStart.forEach((item, index) => {
this.arr.push(item.certCategory)
})
console.log(this.arr)
this.tabList = val.split(',')
this.arr.forEach(item => {
if (!this.tabList.includes(item)) {
newArray.push(item);
this.contentList.forEach((item1,index1) => {
if(item == item1.certCategory){
item1.paramsNumber= '', // 编号
item1.paramsName= '', //参数名称
item1.description= '' // 描述
newArray.push(item)
this.contentList.forEach((item1, index1) => {
if (item == item1.certCategory) {
item1.paramsNumber = '', // 编号
item1.paramsName = '', //参数名称
item1.description = '' // 描述
}
})
console.log(this.contentList)
};
}
})
},
@@ -618,7 +628,7 @@ export default {
let value = r.target.value
r.target.value = value.replace(/[!#]/g, '')
this.formInline.controlValues = r.target.value
this.formInline = {...this.formInline}
this.formInline = { ...this.formInline }
},
getSysCategoryTree() {
getAction('/sys/category/getSysCategoryTree', {}).then((res) => {
@@ -647,7 +657,7 @@ export default {
// 获取认证类别
this.getcontentListedEdit()
this.formInline.isMust = '0'
this.formInline = {...this.formInline}
this.formInline = { ...this.formInline }
this.contentListed = [] // 防止编辑数据带出
this.contentList = []
this.$nextTick(() => {
@@ -674,19 +684,19 @@ export default {
this.flag = 0
// 获取认证类别
this.getcontentListedEdit()
value.certCategoryParamsInfoEOList.map((item, index) => {
if(this.cut == 'cn'){
item.cut = 'cn'
this.contentListed.push(item)
item.text = item.certCategory_dictText
}else {
item.cut = 'en'
this.contentListed.push(item)
item.textEn = item.certCategory_dictText
}
value.certCategoryParamsInfoEOList.map((item, index) => {
if (this.cut == 'cn') {
item.cut = 'cn'
this.contentListed.push(item)
item.text = item.certCategory_dictText
} else {
item.cut = 'en'
this.contentListed.push(item)
item.textEn = item.certCategory_dictText
}
})
this.contentList = this.contentListed
})
this.contentList = this.contentListed
console.log(this.contentList)
},
viewModel(value) {
@@ -710,11 +720,11 @@ export default {
// 获取认证类别
this.getcontentListedEdit()
value.certCategoryParamsInfoEOList.map((item, index) => {
if(this.cut == 'cn'){
if (this.cut == 'cn') {
item.cut = 'cn'
this.contentListed.push(item)
item.text = item.certCategory_dictText
}else {
} else {
item.cut = 'en'
this.contentListed.push(item)
item.textEn = item.certCategory_dictText
@@ -729,49 +739,49 @@ export default {
this.$refs['ruleForm'].resetFields()
},
handleSubmit() {
// && this.formInline.controlType != 11
if(this.formInline.certCategory == undefined ) {
this.$message.warning(this.$t('certificationCategory')+this.$t('cannotEmpty'))
// && this.formInline.controlType != 11
if (this.formInline.certCategory == undefined) {
this.$message.warning(this.$t('certificationCategory') + this.$t('cannotEmpty'))
return
}
let falg = 1
this.contentList.forEach((item,index) => {
let reg = /^[0-9a-zA-Z-/. ]{1,}$/
// 编号的限制
if(item.paramsNumber == '' || item.paramsNumber === undefined ) {
this.$message.warning(this.$t('standard')+this.$t('cannotEmpty'))
falg = 0
return
} else if(item.paramsNumber.length > 20){
this.$message.warning(this.$t('standard')+this.$t('cantExeed')+'20'+this.$t('Characters'))
falg = 0
return
} else if(item.paramsNumber.match(reg) === null) {
this.$message.warning(this.$t('standard')+this.$t('onlyThree'))
this.contentList.forEach((item, index) => {
let reg = /^[0-9a-zA-Z-/. ]{1,}$/
// 编号的限制
if (item.paramsNumber == '' || item.paramsNumber === undefined) {
this.$message.warning(this.$t('standard') + this.$t('cannotEmpty'))
falg = 0
return
} else if (item.paramsNumber.length > 20) {
this.$message.warning(this.$t('standard') + this.$t('cantExeed') + '20' + this.$t('Characters'))
falg = 0
return
} else if (item.paramsNumber.match(reg) === null) {
this.$message.warning(this.$t('standard') + this.$t('onlyThree'))
falg = 0
return
}
// 参数名称的限制
if (item.paramsNumber == '' || item.paramsNumber === undefined) {
this.$message.warning(this.$t('ParameterName') + this.$t('cannotEmpty'))
falg = 0
return
} else if (item.paramsName.length > 500) {
this.$message.warning(this.$t('ParameterName') + this.$t('cantExeed') + '500' + this.$t('Characters'))
falg = 0
return
}
if (item.description !== undefined && item.description !== null) {
// 参数说明的限制
if (item.description.length > 2000) {
this.$message.warning(this.$t('ParameterDescription') + this.$t('cantExeed') + '2000' + this.$t('Characters'))
falg = 0
return
}
// 参数名称的限制
if(item.paramsNumber == '' || item.paramsNumber === undefined) {
this.$message.warning(this.$t('ParameterName')+this.$t('cannotEmpty'))
falg = 0
return
} else if(item.paramsName.length > 500){
this.$message.warning(this.$t('ParameterName')+this.$t('cantExeed')+'500'+this.$t('Characters'))
falg = 0
return
}
if(item.description !== undefined && item.description !== null){
// 参数说明的限制
if(item.description.length > 2000){
this.$message.warning(this.$t('ParameterDescription')+this.$t('cantExeed')+'2000'+this.$t('Characters'))
falg = 0
return
}
}
})
}
})
if(falg === 1) {
if (falg === 1) {
this.$refs.ruleForm.validate(valid => {
if (valid) {
let url = ''
@@ -791,6 +801,11 @@ export default {
}
})
let querycontentList = JSON.parse(JSON.stringify(this.contentList))
if (querycontentList && querycontentList.length > 0) {
for (let i = 0; i < querycontentList.length; i++) {
delete querycontentList[i].id
}
}
query.certCategoryParamsInfoEOList = querycontentList
// if(this.formInline.controlType == 11){
// query.certCategoryParamsInfoEOList = []
@@ -824,8 +839,8 @@ export default {
this.formInline[value] = id
this.formInline = { ...this.formInline }
},
projectNameChange(value){
},
projectNameChange(value) {
}
}
}
</script>
@@ -833,9 +848,11 @@ export default {
.formAdd .ant-form-item-label {
width: 130px;
}
/deep/.add-input{
min-height: 95px!important;
/deep/ .add-input {
min-height: 95px !important;
}
.formAdd .ant-form-item-control-wrapper {
display: inline-block;
width: 100%;
@@ -886,9 +903,11 @@ export default {
display: flex;
/*align-items: center;*/
}
/deep/.ant-form-item-control {
/deep/ .ant-form-item-control {
line-height: 10px;
}
.title-text {
width: 114px;
text-align: right;
@@ -908,11 +927,13 @@ export default {
height: 38px;
width: 100%;
}
.itemModel-text {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
@@ -938,7 +959,7 @@ export default {
position: absolute;
bottom: 0;
width: 100%;
z-index:100;
z-index: 100;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
@@ -951,7 +972,8 @@ export default {
.ant-input-disabled {
color: rgba(0, 0, 0, 0.65) !important;
}
.ant-select-disabled{
.ant-select-disabled {
color: rgba(0, 0, 0, 0.65) !important;
}
</style>
@@ -17,13 +17,13 @@
<!-- <a-icon type="qrcode"/>-->
<!-- {{ $t('globalReplacement') }}-->
<!-- </div>-->
<!-- <div class="operator-text"-->
<!-- v-if="textTitle === $t('listOfRegulations')"-->
<!-- v-has="'projectComment:list'"-->
<!-- @click="commentClick">-->
<!-- <a-icon type="message"/>-->
<!-- {{$t('comment')}}-->
<!-- </div>-->
<div class="operator-text"
v-if="textTitle === $t('listOfRegulations')"
v-has="'projectComment:list'"
@click="commentClick">
<a-icon type="message"/>
{{$t('comment')}}
</div>
<div class="operator-text"
v-if="textTitle === $t('listOfRegulations')"
v-has="'projectComment:list'"
@@ -293,16 +293,16 @@ export default {
},
roleSwitchListEn: {
'0': 'R&H Studio',
'1': 'Regulation',
'2': 'homo',
'4': 'Regulatory Engineer/Certification Engineer',
'1': 'Regulation Engineer',
'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: {},
File diff suppressed because it is too large Load Diff
@@ -19,7 +19,7 @@
<span>{{$t('standard')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParam.serialNumber"></j-input>
v-model="queryParam.serial_number"></j-input>
</div>
</a-col>
<template v-if="toggleSearchStatus">
@@ -34,16 +34,27 @@
</a-col>
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('areaOfResponsibility')">
<span>{{$t('areaOfResponsibility')}}</span>
<div class="title-text" :title="$t('status')">
<span>{{$t('status')}}</span>
</div>
<j-dict-select-tag class="box-input"
v-model="queryParam.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
<j-dict-select-tag class="box-input" v-model="queryParam.state"
:placeholder="$t('PleaseSelect')+$t('status')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
:triggerChange="false" :dictCode="'state'"/>
</div>
</a-col>
<!-- <a-col :md="12" :sm="8">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text" :title="$t('areaOfResponsibility')">-->
<!-- <span>{{$t('areaOfResponsibility')}}</span>-->
<!-- </div>-->
<!-- <j-dict-select-tag class="box-input"-->
<!-- v-model="queryParam.dutyTerritory"-->
<!-- :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
<!-- </div>-->
<!-- </a-col>-->
</template>
<span style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
@@ -53,6 +64,9 @@
</a>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@handleSuperQuery="handleSuperQuery"
:fieldList="fieldList"/>
</a-col>
</span>
</a-row>
@@ -70,18 +84,18 @@
:loading="loading">
</a-table>
</div>
<!-- <div class="page" v-if="dataList.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
:total="total"
:current="pageNo"
@change="onChange"
@showSizeChange="SizeChange"
/>
</div>-->
<div class="page" v-if="dataList.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
:total="total"
:current="pageNo"
@change="onChange"
@showSizeChange="SizeChange"
/>
</div>
</div>
@@ -96,21 +110,27 @@
<script>
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
export default {
name: 'addCodeNumber',
mixins: [ResizeHeader, ResizeColumnProvide],
components: {
globalAdvancedQuery
},
data() {
return {
url: {
addModelList: '/project/projectLawsInventoryEO/list'
//project/projectLawsInventoryEO/list
addModelList: '/project/projectLawsInventoryEO/queryPageDummy',
queryConditionInventory: '/project/projectLawsInventoryEO/queryConditionInventory',
},
visible: false,
toggleSearchStatus: false,
columns: [
{
title: this.$t('standard'),
dataIndex: 'serialNumber',
dataIndex: 'serial_number',
align: 'left',
ellipsis: true,
width: 250
@@ -123,18 +143,25 @@
width: 250
},
{
title: this.$t('certificationType'),
dataIndex: 'attestationType_dictText',
title: this.$t('zoneOfApplication'),
dataIndex: 'region',
align: 'left',
ellipsis: true,
width: 228
},
{
title: this.$t('ImplementationDate'),
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true,
width: 190
},
{
title: this.$t('areaOfResponsibility'),
dataIndex: 'dutyTerritory_dictText',
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true,
width: 100
width: 190
}
],
dataList: [],
@@ -144,13 +171,27 @@
pageSize: 10,
total: 0,
queryParam: {},
confirmLoading: false
confirmLoading: false,
queryConditionVOList: [],
fieldList:[],
}
},
mounted() {
},
methods: {
queryConditionInventory() {
let query = {
flag: 1
}
getAction(this.url.queryConditionInventory, query).then((res) => {
if (res.success) {
this.fieldList = res.result || []
} else {
this.fieldList = []
}
})
},
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
@@ -158,6 +199,8 @@
this.visible = true
this.queryParam = {}
this.selectedRowKeys = []
this.queryConditionVOList = []
this.queryConditionInventory()
this.replacePage()
},
handleCancel() {
@@ -170,6 +213,9 @@
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
this.replacePage()
},
onChange(page, pageSize) {
@@ -182,18 +228,20 @@
this.replacePage()
},
replacePage() {
let queryConditionVOList = JSON.parse(JSON.stringify(this.queryConditionVOList))
let query = {
// pageNo: this.pageNo,
// pageSize: this.pageSize,
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.queryParam,
projectLibraryId: this.$route.query.id,
roleCode: 0
// projectLibraryId: this.$route.query.id,
queryConditionVOList: JSON.stringify(queryConditionVOList)
// roleCode: 0
}
this.loading = true
getAction(this.url.addModelList, query).then((res) => {
postAction(this.url.addModelList, query).then((res) => {
if (res.success) {
this.dataList = res.result || []
// this.total = res.result.total
this.dataList = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
this.dataList = []
@@ -217,8 +265,8 @@
this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
if (this.selectedRowKeys.length < 2) {
let fgid = this.selectedRowList[0].standId
let regulationIndex = this.selectedRowList[0].serialNumber
let fgid = this.selectedRowList[0].id
let regulationIndex = this.selectedRowList[0].serial_number
this.confirmLoading = false
this.visible = false
this.$emit('regulation', regulationIndex, fgid)
@@ -230,6 +278,20 @@
this.$message.warning(this.$t('selectLeastOne'))
this.confirmLoading = false
}
},
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.superQueryFlag = false
} else {
this.$refs.globalAdvancedQueryRef.superQueryFlag = true
this.queryConditionVOList = params
this.queryConditionVOList.forEach(res => {
res.type = matchType
})
}
this.replacePage()
}
}
}
@@ -500,12 +500,12 @@
</span>
</a-select-option>
</a-select>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"-->
<!-- @input="handleInput('dutyTerritory')"-->
<!-- @changeQuery="handleChange"-->
<!-- :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
<!-- <j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"-->
<!-- @input="handleInput('dutyTerritory')"-->
<!-- @changeQuery="handleChange"-->
<!-- :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
</a-form-model-item>
</div>
</a-col>
@@ -578,7 +578,7 @@
:title="$t('deliverableTemplate')">{{$t('deliverableTemplate')}}</span>
</div>
<a-form-model-item class="itemModel" prop="deliverableTemplate">
<!-- this.$refs.uploadFile.disabled = isTrue-->
<!-- this.$refs.uploadFile.disabled = isTrue-->
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('deliverableTemplate')">
{{ (formInline.deliverableTemplate === 'null' || formInline.deliverableTemplate === ''
@@ -690,6 +690,30 @@
</div>
</a-col>
</a-row>
<div class="header-text-text" v-if='dataList && dataList.length > 0'>
&nbsp;{{$t('PlatformInformation')}}
</div>
<a-table
v-if='dataList && dataList.length > 0'
:components="drag(columns,'columns')"
:columns="columns"
rowKey="id"
:scroll="{x: 1000}"
:data-source="dataList"
:pagination="false"
:loading="loading">
<span slot="deliverableTemplate"
:title="record.deliverableTemplateName"
slot-scope="text,record">
<a style='color:#00B3BE;cursor: pointer'
@click="down(record.deliverableTemplate,record.deliverableTemplateName)">
{{record.deliverableTemplateName}}
</a>
</span>
</a-table>
</div>
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="24">-->
@@ -721,12 +745,14 @@
import addCodeNumber from './addCodeNumber'
import PersonnelSelection from '@/components/PersonnelSelection/index'
import uploadFile from '@/components/uploadFile/file'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
import { mapGetters } from 'vuex'
import moment from 'moment'
export default {
name: 'addModel',
mixins: [ResizeHeader, ResizeColumnProvide],
components: {
PersonnelSelection,
uploadFile,
@@ -734,10 +760,12 @@
},
data() {
return {
dataList: [],
formInline: {},
loading: false,
confirmLoading: false,
visible: false,
disabledType:'',
disabledType: '',
personnelVisible: false,
yearNameDataList: [],
firstLevelDutyTerritoryList: [],
@@ -804,13 +832,13 @@
trigger: 'blur'
}
],
remark:[
remark: [
{
max: 500,
message: this.$t('remarks') + this.$t('cannotExceed') + 500 + this.$t('Characters'),
trigger: 'blur'
}
],
]
},
disabled: false,
flowdisabled: false,
@@ -824,7 +852,31 @@
edit: '/project/projectCertificationInventoryEO/edit',
list: '/project/projectLawsInventoryEO/list'
},
engineeringInterfacePersonList: []
engineeringInterfacePersonList: [],
columns: [
{
title: this.$t('entryName'),
dataIndex: 'projectName',
align: 'left',
ellipsis: true,
width: 120
},
{
title: this.$t('typeOfDeliverables'),
dataIndex: 'deliverableTypeName',
align: 'left',
ellipsis: true,
width: 160
},
{
title: this.$t('deliverableTemplate'),
dataIndex: 'deliverableTemplateName',
align: 'left',
ellipsis: true,
width: 200,
scopedSlots: { customRender: 'deliverableTemplate' }
}
]
}
},
mounted() {
@@ -877,7 +929,7 @@
},
DutyDepartChangeOne(event) {
this.formInline.dutyTerritory = []
this.formInline = {...this.formInline}
this.formInline = { ...this.formInline }
this.getDutyTerritoryOne(event.join(','))
},
getDutyTerritoryOne(row) {
@@ -923,18 +975,31 @@
if (value.dutyTerritory && value.dutyTerritory.length > 0) {
this.queryPersonByProject(value.dutyTerritory.join(','))
}
console.log(value)
if(value.projectCertificationInventoryEOS && (value.projectCertificationInventoryEOS.length > 0 || value.projectCertificationInventoryEOS != null)){
if (value.projectCertificationInventoryEOS && (value.projectCertificationInventoryEOS.length > 0 || value.projectCertificationInventoryEOS != null)) {
this.flowdisabled = true
this.$refs.uploadFile.disabled = true
}
this.getRegulationNo()
this.getConnectPlatform(this.formInline.id)
this.title = this.$t('edit')
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.clearValidate()
})
},
getConnectPlatform(id) {
let query = {
id: id
}
this.dataList = []
getAction('/project/projectCertificationInventoryEO/connectPlatform', query).then((res) => {
if (res.success) {
this.dataList = res.result || []
} else {
this.dataList = []
}
})
},
handleCancel() {
this.visible = false
this.personnelVisible = false
@@ -1012,9 +1077,9 @@
DutyDepartChange(index) {
this.formInline.dataList[index].dutyTerritory = []
this.formInline = { ...this.formInline }
this.getDutyTerritory(this.formInline.dataList[index].dutyDepart.join(','),index)
this.getDutyTerritory(this.formInline.dataList[index].dutyDepart.join(','), index)
},
getDutyTerritory(row,index) {
getDutyTerritory(row, index) {
let query = {
dutyDepart: row
}
@@ -1024,7 +1089,7 @@
} else {
this.formInline.dataList[index].dutyTerritoryList = []
}
this.formInline = {...this.formInline}
this.formInline = { ...this.formInline }
})
},
handleInput(value, id, index, array) {
@@ -1126,6 +1191,9 @@
this.handleInput('dataList.' + index + '.dutyTerritory')
this.queryPersonByProject(this.formInline.dataList[index].dutyTerritory.join(','), index)
},
down(id, name) {
downloadFile('/sys/common/downLoadFile', name, { id: id })
},
queryPersonByProject(row, index) {
let query = {
projectId: this.$route.query.id,
@@ -1299,11 +1367,21 @@
::v-deep .ant-form-item-with-help {
margin-bottom: 25px;
}
.itemModel-text {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.header-text-text {
font-size: 16px;
font-weight: bold;
margin-left: 15px;
/*border-bottom: 1px #d9d9d9 dashed;*/
height: 30px;
margin-bottom: 30px;
}
</style>
<style>
.ant-input-disabled {
@@ -78,7 +78,15 @@
v-model="queryParam.serialNumber"></j-input>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('category')">
<span>{{ $t('category') }}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('category')"
v-model="queryParam.category"></j-input>
</div>
</a-col>
</template>
<span style="float: right;overflow: hidden;margin-right: 11px; " class="table-page-search-submitButtons">
<a-col :md="6" :sm="24">
@@ -648,11 +656,11 @@
'Component report not submitted': 'TrackedColor'
},
fieldList: [
{
type: 'string',
value: 'category',
text: this.$t('category')
},
// {
// type: 'string',
// value: 'category',
// text: this.$t('category')
// },
{
type: 'string',
value: 'configItem',
@@ -4,7 +4,7 @@
<a-drawer
:title="$t('Processdetails')"
:maskClosable="false"
:width="800"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
@@ -48,272 +48,487 @@
</a-col>
</a-row>
<div style='margin-bottom: 30px'>
<div v-for='(item,index) in dataList' :key='index'>
<div class='title' :title="item.projectName">{{item.projectName}}</div>
<div style='height:100%'>
<a-row :gutter="24">
<a-col :span="12">
<div class='detail-box'>
<span class='detail-text' :title="$t('ProcessStatus')">{{$t('ProcessStatus')}}</span>
<span class="title-text-text" :title="flag == 'design'?item.designFlowStatusName : item.verifyFlowStatusName">
{{flag == 'design'?item.designFlowStatusName : item.verifyFlowStatusName}}</span>
</div>
</a-col>
<a-col :span="12">
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class='detail-box'>
<span class='detail-text' :title="$t('Sponsor')">{{$t('Sponsor')}}</span>
<span class="title-text-text" :title="item.createBy">
{{item.createBy}}</span>
</div>
</a-col>
<a-col :span="12">
<div class='detail-box'>
<span class='detail-text' :title="$t('personLiable')">{{$t('personLiable')}}</span>
<span class="title-text-text" :title="flag == 'design'?item.designDutyIdName : item.verifyDutyIdName">
{{flag == 'design'?item.designDutyIdName : item.verifyDutyIdName}}</span>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class='detail-box'>
<span class='detail-text' :title="$t('statisticalNodes')">{{$t('statisticalNodes')}}</span>
<span class="title-text-text" :title="item.dutyDepart">
{{item.dutyDepart}}</span>
</div>
</a-col>
<a-col :span="12">
<div class='detail-box'>
<span class='detail-text' :title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
<span class="title-text-text" :title="item.dutyTerritory_dictText">
{{item.dutyTerritory_dictText}}</span>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class='detail-box'>
<span class='detail-text' :title="$t('deliverableTemplate')">{{$t('deliverableTemplate')}}</span>
<a style='color:#00B3BE' class="title-text-text text-operation" @click="down(flag == 'design'?item.designDeliverableTemplate : item.verifyDeliverableTemplate),flag == 'design'?item.designDeliverableTemplateName : item.verifyDeliverableTemplateName" :title="flag == 'design'?item.designDeliverableTemplateName : item.verifyDeliverableTemplateName">
{{flag == 'design'?item.designDeliverableTemplateName : item.verifyDeliverableTemplateName }}</a>
</div>
</a-col>
<a-col :span="12">
<div class='detail-box'>
<span class='detail-text' :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
<span class="title-text-text" :title="flag == 'design'?item.designDeliverableTypeName : item.verifyDeliverableTypeName">
{{flag == 'design'?item.designDeliverableTypeName : item.verifyDeliverableTypeName}}</span>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class='detail-box' style='display:flex'>
<span class='detail-text' :title="$t('descriptionDeliverables')">{{$t('descriptionDeliverables')}}</span>
<span class="title-text-description" :title="flag == 'design'?item.designRemark : item.verifyRemark">
{{flag == 'design'?item.designRemark : item.verifyRemark}}</span>
</div>
</a-col>
</a-row>
</div>
</div>
<experienceReferenceList ref="experienceReferenceListRef"/>
<div style='margin-bottom: 30px;margin-top: 20px'>
<a-table
v-if='dataList && dataList.length > 0'
:components="drag(columns,'columns')"
:columns="columns"
rowKey="id"
:scroll="{x: 1000}"
:data-source="dataList"
:pagination="false"
:loading="loading">
<span slot="ProcessStatus"
:title="flag == 'design'?record.designFlowStatusName : record.verifyFlowStatusName"
slot-scope="text,record">
<a
@click="processStatusClick(record,flag == 'design'?$t('designComplianceProcess') : $t('validationComplianceProcess'))">
{{flag == 'design'?record.designFlowStatusName : record.verifyFlowStatusName}}
</a>
</span>
<span slot="personLiable"
:title="flag == 'design'?record.designDutyIdName : record.verifyDutyIdName"
slot-scope="text,record">
{{flag == 'design'?record.designDutyIdName : record.verifyDutyIdName}}
</span>
<span slot="deliverableTemplate"
:title="flag == 'design'?record.designDeliverableTemplateName : record.verifyDeliverableTemplateName"
slot-scope="text,record">
<a style='color:#00B3BE;cursor: pointer'
@click="down(flag == 'design'?record.designDeliverableTemplate : record.verifyDeliverableTemplate,flag == 'design'?record.designDeliverableTemplateName : record.verifyDeliverableTemplateName)">
{{flag == 'design'?record.designDeliverableTemplateName : record.verifyDeliverableTemplateName}}
</a>
</span>
<span slot="typeOfDeliverables"
:title="flag == 'design'?record.designDeliverableTypeName : record.verifyDeliverableTypeName"
slot-scope="text,record">
{{flag == 'design'?record.designDeliverableTypeName : record.verifyDeliverableTypeName}}
</span>
<span slot="descriptionDeliverables"
:title="flag == 'design'?record.designRemark : record.verifyRemark"
slot-scope="text,record">
{{flag == 'design'?record.designRemark : record.verifyRemark}}
</span>
<span slot="deliveryDate"
:title="flag == 'design'?record.designDueDate : record.verifyDueDate"
slot-scope="text,record">
{{flag == 'design'?record.designDueDate : record.verifyDueDate}}
</span>
</a-table>
<!-- <div v-for='(item,index) in dataList' :key='index'>-->
<!-- <div class='title' :title="item.projectName">{{item.projectName}}</div>-->
<!-- <div style='height:100%'>-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="12">-->
<!-- <div class='detail-box'>-->
<!-- <span class='detail-text' :title="$t('ProcessStatus')">{{$t('ProcessStatus')}}</span>-->
<!-- <span class="title-text-text"-->
<!-- :title="flag == 'design'?item.designFlowStatusName : item.verifyFlowStatusName">-->
<!-- {{flag == 'design'?item.designFlowStatusName : item.verifyFlowStatusName}}</span>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="12">-->
<!-- <div class='detail-box'>-->
<!-- <span class='detail-text' :title="$t('Sponsor')">{{$t('Sponsor')}}</span>-->
<!-- <span class="title-text-text" :title="item.createBy">-->
<!-- {{item.createBy}}</span>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- <div class='detail-box'>-->
<!-- <span class='detail-text' :title="$t('personLiable')">{{$t('personLiable')}}</span>-->
<!-- <span class="title-text-text"-->
<!-- :title="flag == 'design'?item.designDutyIdName : item.verifyDutyIdName">-->
<!-- {{flag == 'design'?item.designDutyIdName : item.verifyDutyIdName}}</span>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="12">-->
<!-- <div class='detail-box'>-->
<!-- <span class='detail-text' :title="$t('statisticalNodes')">{{$t('statisticalNodes')}}</span>-->
<!-- <span class="title-text-text" :title="item.dutyDepart">-->
<!-- {{item.dutyDepart}}</span>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- <div class='detail-box'>-->
<!-- <span class='detail-text' :title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>-->
<!-- <span class="title-text-text" :title="item.dutyTerritory_dictText">-->
<!-- {{item.dutyTerritory_dictText}}</span>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="12">-->
<!-- <div class='detail-box'>-->
<!-- <span class='detail-text' :title="$t('deliverableTemplate')">{{$t('deliverableTemplate')}}</span>-->
<!-- <a style='color:#00B3BE' class="title-text-text text-operation"-->
<!-- @click="down(flag == 'design'?item.designDeliverableTemplate : item.verifyDeliverableTemplate),flag == 'design'?item.designDeliverableTemplateName : item.verifyDeliverableTemplateName"-->
<!-- :title="flag == 'design'?item.designDeliverableTemplateName : item.verifyDeliverableTemplateName">-->
<!-- {{flag == 'design'?item.designDeliverableTemplateName : item.verifyDeliverableTemplateName }}</a>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- <div class='detail-box'>-->
<!-- <span class='detail-text' :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>-->
<!-- <span class="title-text-text"-->
<!-- :title="flag == 'design'?item.designDeliverableTypeName : item.verifyDeliverableTypeName">-->
<!-- {{flag == 'design'?item.designDeliverableTypeName : item.verifyDeliverableTypeName}}</span>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="24">-->
<!-- <div class='detail-box' style='display:flex'>-->
<!-- <span class='detail-text'-->
<!-- :title="$t('descriptionDeliverables')">{{$t('descriptionDeliverables')}}</span>-->
<!-- <span class="title-text-description"-->
<!-- :title="flag == 'design'?item.designRemark : item.verifyRemark">-->
<!-- {{flag == 'design'?item.designRemark : item.verifyRemark}}</span>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- </div>-->
<!-- </div>-->
</div>
</a-spin>
<div class="drawer-bootom-button">
<a-button style="margin-right: 8px" @click="handleCancel">{{$t('close')}}</a-button>
<!-- <a-button type="primary" @click="handleSubmit" :loading="confirmLoading">{{$t('submit')}}</a-button>-->
<!-- <a-button type="primary" @click="handleSubmit" :loading="confirmLoading">{{$t('submit')}}</a-button>-->
</div>
</a-drawer>
<uploadFile ref="uploadFile" :acceptcode="acceptcode" @uploadSuccess="uploadSuccess"/>
<designCompliance ref="designComplianceRef"/>
</div>
</template>
<script>
import { getAction, postAction,downloadFile } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file'
import { mapGetters } from 'vuex'
import { getAction, postAction, downloadFile } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import designCompliance from '../../toDoCenter/projectRegulationTasks/components/designCompliance'
import { mapGetters } from 'vuex'
import experienceReferenceList from '@/components/experienceReferenceList/index'
export default {
name:"addModel",
components:{
uploadFile
},
data() {
return {
visible: false,
disabled: false,
showButton:false,
confirmLoading: false,
acceptcode:'',
projectNameList: [],
DeliverableTreeList: [],
form:{
serialNumber:'',
title:'',
subtitle:'',
applicableSupplement:'',
influencestatuteEu:'',
},
dataList:[],
url:{
addModel:''
},
record:{},
car:'',
flag:'',
}
},
mounted() {
},
methods: {
...mapGetters(['userInfo']),
addModel(row, name) {
this.form.serialNumber = row.serialNumber
this.form.title = row.title
this.form.subtitle = row.subtitle
this.form.applicableSupplement = row.applicableSupplement
this.flag = name == this.$t('designComplianceProcess') ? 'design' :'verify'
this.visible = true
this.confirmLoading = true
getAction('/project/projectLawsInventoryEO/queryPlatformList', { lawsInventoryId: row.id , flowFlag:this.flag}).then((res) => {
if (res.success) {
this.dataList = res.result || []
this.confirmLoading = false
}
})
export default {
name: 'addModel',
components: {
uploadFile,
designCompliance,
experienceReferenceList
},
handleCancel() {
this.form = {}
this.dataList = []
this.visible = false
},
/** 上传文件的回调 */
uploadSuccess(data) {
let attIdList = []
if (data && data.length > 0) {
data.map(item => {
attIdList.push(item.id || data.name)
})
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
columns: [
{
title: this.$t('entryName'),
dataIndex: 'projectName',
align: 'left',
ellipsis: true,
width: 200
},
{
title: this.$t('Sponsor'),
dataIndex: 'createBy',
align: 'left',
ellipsis: true,
width: 120
},
{
title: this.$t('personLiable'),
align: 'left',
dataIndex: 'personLiable',
ellipsis: true,
width: 120,
scopedSlots: { customRender: 'personLiable' }
},
{
title: this.$t('statisticalNodes'),
dataIndex: 'dutyDepart',
align: 'left',
ellipsis: true,
width: 120
},
{
title: this.$t('areaOfResponsibility'),
dataIndex: 'dutyTerritory_dictText',
align: 'left',
ellipsis: true,
width: 120
},
// {
// title: this.$t('deliverableTemplate'),
// align: 'left',
// ellipsis: true,
// width: 200,
// scopedSlots: { customRender: 'deliverableTemplate' }
// },
{
title: this.$t('typeOfDeliverables'),
align: 'left',
dataIndex: 'typeOfDeliverables',
ellipsis: true,
width: 140,
scopedSlots: { customRender: 'typeOfDeliverables' }
},
{
title: this.$t('deliveryDate'),
align: 'left',
ellipsis: true,
dataIndex: 'deliveryDate',
width: 140,
scopedSlots: { customRender: 'deliveryDate' }
},
// {
// title: this.$t('descriptionDeliverables'),
// align: 'left',
// ellipsis: true,
// width: 200,
// scopedSlots: { customRender: 'descriptionDeliverables' }
// },
{
title: this.$t('ProcessStatus'),
align: 'left',
ellipsis: true,
width: 120,
scopedSlots: { customRender: 'ProcessStatus' }
}
],
loading: false,
visible: false,
disabled: false,
showButton: false,
confirmLoading: false,
acceptcode: '',
projectNameList: [],
DeliverableTreeList: [],
form: {
serialNumber: '',
title: '',
subtitle: '',
applicableSupplement: '',
influencestatuteEu: ''
},
dataList: [],
url: {
addModel: ''
},
record: {},
car: '',
flag: ''
}
/** 赋值给当前对应的表单文件 */
this.formInline[this.uploadName] = attIdList.join(',')
this.formInline = { ...this.formInline }
},
down(id,name){
downloadFile('/sys/common/downLoadFile', name, { id: id })
mounted() {
},
methods: {
...mapGetters(['userInfo']),
addModel(row, name) {
this.form.serialNumber = row.serialNumber
this.form.title = row.title
this.form.subtitle = row.subtitle
this.form.applicableSupplement = row.applicableSupplement
this.flag = name == this.$t('designComplianceProcess') ? 'design' : 'verify'
this.visible = true
this.confirmLoading = true
this.$nextTick(() => {
this.$refs.experienceReferenceListRef.getData(row.serialNumber)
})
getAction('/project/projectLawsInventoryEO/queryPlatformList', {
lawsInventoryId: row.id,
flowFlag: this.flag
}).then((res) => {
if (res.success) {
this.dataList = res.result || []
this.confirmLoading = false
}
})
},
handleCancel() {
this.form = {}
this.dataList = []
this.visible = false
},
/** 上传文件的回调 */
uploadSuccess(data) {
let attIdList = []
if (data && data.length > 0) {
data.map(item => {
attIdList.push(item.id || data.name)
})
}
/** 赋值给当前对应的表单文件 */
this.formInline[this.uploadName] = attIdList.join(',')
this.formInline = { ...this.formInline }
},
down(id, name) {
downloadFile('/sys/common/downLoadFile', name, { id: id })
},
processStatusClick(row, name) {
let query = {}
let TaskKey = ''
if (name == this.$t('designComplianceProcess')) {
if (row.designFlowStatus == 'Task to be confirmed' || row.designFlowStatus == 'Duty Person Rejected') {
TaskKey = 'zrrqr'
} else if (row.designFlowStatus == 'Results to be submitted' || row.designFlowStatus == 'Non-Compliance' || row.designFlowStatus == 'To be tracked') {
TaskKey = 'zrrtjjfw'
} else if (row.designFlowStatus == 'Results to be reviewed' ||
row.designFlowStatus == 'Compliance' ||
row.designFlowStatus == 'NA') {
TaskKey = 'fggcssh'
}
query = {
actiProcInstId: row.designPId,
projectTaskInventoryId: row.id,
projectLibraryId: row.projectLibraryId,
TaskKey: TaskKey,
isDisplay: false,
flowType: 2,
Sponsor: 'regulationOwnerName',
personLiable: 'designDutyIdName',
typeOfDeliverables: 'designDeliverableTypeName',
deliverableTemplate: 'designDeliverableTemplate',
DueDate: 'designDueDate',
remarks: 'designRemark',
projectName: row.projectName,
targetMarket: row.targetMarket,
projectNameId: row.projectNameId,
primaryKeyId: row.primaryKeyId
}
} else {
if (row.verifyFlowStatus == 'Task to be confirmed' || row.verifyFlowStatus == 'Duty Person Rejected') {
TaskKey = 'zrrqr'
} else if (row.verifyFlowStatus == 'Results to be submitted' || row.verifyFlowStatus == 'Non-Compliance' || row.verifyFlowStatus == 'To be tracked') {
TaskKey = 'zrrtjjfw'
} else if (row.verifyFlowStatus == 'Results to be reviewed' ||
row.verifyFlowStatus == 'Compliance' ||
row.verifyFlowStatus == 'NA') {
TaskKey = 'fggcssh'
}
query = {
actiProcInstId: row.verifyPId,
projectTaskInventoryId: row.id,
projectLibraryId: row.projectLibraryId,
TaskKey: TaskKey,
flowType: 4,
isDisplay: false,
Sponsor: 'regulationOwnerName',
personLiable: 'verifyDutyIdName',
typeOfDeliverables: 'verifyDeliverableTypeName',
deliverableTemplate: 'verifyDeliverableTemplate',
DueDate: 'verifyDueDate',
remarks: 'verifyRemark',
projectName: row.projectName,
targetMarket: row.targetMarket,
projectNameId: row.projectNameId,
primaryKeyId: row.primaryKeyId
}
}
this.$refs.designComplianceRef.getList(JSON.parse(JSON.stringify(query)), name)
}
}
}
}
</script>
<style scoped>
.title{
font-size: 16px;
font-weight: bold;
margin-bottom: 20px;
}
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.detail-box{
width: 100%;
height: 100%;
margin-bottom: 20px;
position: relative;
}
.detail-text{
height: 100%;
display: inline-block;
font-size: 14px;
color: #6F7385;
width: 120px;
overflow: hidden; /*超出部分隐藏*/
text-overflow: ellipsis; /*超出部分省略号表示*/
white-space: nowrap; /*强制单行显示*/
display: inline-block; /*转换为行内块元素*/
}
.title-text-text{
display: inline-block;
position: absolute;
left: 33%;
font-size: 14px;
color: #040B29;
width: 60%;
overflow: hidden; /*超出部分隐藏*/
text-overflow: ellipsis; /*超出部分省略号表示*/
white-space: nowrap; /*强制单行显示*/
display: inline-block; /*转换为行内块元素*/
}
.title-text-description{
display: inline-block;
width: 80%;
margin: 10px;
font-size: 14px;
color: #040B29;
}
.title-text {
width: 250px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 48px;
}
.title {
font-size: 16px;
font-weight: bold;
margin-bottom: 20px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
min-height: 40px;
margin-bottom: 24px;
}
.detail-box {
width: 100%;
height: 100%;
margin-bottom: 20px;
position: relative;
}
.Required {
color: red;
margin-right: 4px;
}
.detail-text {
height: 100%;
display: inline-block;
font-size: 14px;
color: #6F7385;
width: 120px;
overflow: hidden; /*超出部分隐藏*/
text-overflow: ellipsis; /*超出部分省略号表示*/
white-space: nowrap; /*强制单行显示*/
display: inline-block; /*转换为行内块元素*/
}
.header-text {
font-size: 16px;
font-weight: 500;
}
.title-text-text {
display: inline-block;
position: absolute;
left: 33%;
font-size: 14px;
color: #040B29;
width: 60%;
overflow: hidden; /*超出部分隐藏*/
text-overflow: ellipsis; /*超出部分省略号表示*/
white-space: nowrap; /*强制单行显示*/
display: inline-block; /*转换为行内块元素*/
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
width: 100%;
z-index: 100;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
.title-text-description {
display: inline-block;
width: 80%;
margin: 10px;
font-size: 14px;
color: #040B29;
}
.icon-text {
font-size: 16px;
margin-right: 4px;
}
.title-text {
width: 250px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 48px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
min-height: 40px;
margin-bottom: 24px;
}
.Required {
color: red;
margin-right: 4px;
}
.header-text {
font-size: 16px;
font-weight: 500;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
width: 100%;
z-index: 100;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
.icon-text {
font-size: 16px;
margin-right: 4px;
}
</style>
@@ -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'
}
],
@@ -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
@@ -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: {},
@@ -3,7 +3,7 @@
<a-drawer
:title="title"
:maskClosable="false"
:width="900"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
@@ -12,7 +12,7 @@
<a-spin :spinning="confirmLoading">
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
@@ -27,8 +27,6 @@
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -44,6 +42,9 @@
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -59,8 +60,6 @@
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -80,6 +79,9 @@
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -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 @@
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -179,6 +180,8 @@
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -208,8 +211,6 @@
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -236,9 +237,9 @@
</div>
<a-form-model-item class="itemModel itemModel-explain ql-snow"
prop="descriptions">
<div style="width: calc(100% - 80px);display: inline-block">
<!-- v-if="!isDescription"-->
<div style="width: 100%;display: inline-block">
<quill-editor
v-if="!isDescription"
class="text-editor"
ref="myQuillEditor"
@ready="onEditorReady($event)"
@@ -249,13 +250,13 @@
@blur="quilleditorBlur"
@change="onEditorChange($event)"
/>
<a-input class="box-input"
v-if="isDescription"
v-model='formInline.description'
:disabled="true"/>
<!-- <a-input class="box-input"-->
<!-- v-if="isDescription"-->
<!-- v-model='formInline.description'-->
<!-- :disabled="true"/>-->
</div>
<span v-if="!isDescription" @click="putAwayClick" class="putAway">{{$t('putAway')}}</span>
<span v-if="isDescription" @click="putAwayClick" class="putAway">{{$t('open')}}</span>
<!-- <span v-if="!isDescription" @click="putAwayClick" class="putAway">{{$t('putAway')}}</span>-->
<!-- <span v-if="isDescription" @click="putAwayClick" class="putAway">{{$t('open')}}</span>-->
<!-- <a-input class="box-input"-->
<!-- v-model='formInline.description'-->
<!-- :disabled="disabled"-->
@@ -273,22 +274,31 @@
:title="$t('documents')">{{$t('documents')}}</span>
</div>
<a-form-model-item class="itemModel" prop="fileLink">
<div v-for="(item,index) in formInline.fileLinkList" :key="index">
<div style="margin-bottom: 10px" v-for="(item,index) in formInline.fileLinkList" :key="index">
<a-input class="box-input"
style='width: 88%'
style='width: calc(100% - 48px);margin-right: 10px'
v-model='item.fileLink'
:disabled="disabled"
:placeholder="$t('PleaseEnter')+$t('Addresslink')"/>
<a-icon class="icon-text" @click="addClick(index)" style='margin-left: 10px;font-size: 18px;'
v-if="formInline.fileLinkList.length - 1 == index"
type="plus"/>
<a-icon class="icon-text"
v-if="formInline.fileLinkList.length > 1 && formInline.fileLinkList.length - 1 !== index"
style='margin-left: 10px;font-size: 18px;'
@click="deleteClick(index)"
type="minus"/>
<img @click="addClick(index)"
class="box-input-img"
v-if="formInline.fileLinkList.length - 1 == index"
src="../../../../assets/progressAdd.png" alt="">
<img @click="deleteClick(index)"
class="box-input-img"
v-if="formInline.fileLinkList.length > 1 && formInline.fileLinkList.length - 1 !== index"
src="../../../../assets/progressDelete.png" alt="">
<!-- <a-icon class="icon-text" @click="addClick(index)" style='margin-left: 10px;font-size: 18px;'-->
<!-- v-if="formInline.fileLinkList.length - 1 == index"-->
<!-- type="plus"/>-->
<!-- <a-icon class="icon-text"-->
<!-- v-if="formInline.fileLinkList.length > 1 && formInline.fileLinkList.length - 1 !== index"-->
<!-- style='margin-left: 10px;font-size: 18px;'-->
<!-- @click="deleteClick(index)"-->
<!-- type="minus"/>-->
</div>
<a-button type="primary" class="button-text"
icon="upload"
@click="clickButtonToUpload('file')">
{{ (formInline.file === 'null' || formInline.file === '' ||
formInline.file == null) ? $t('Fileupload') : $t('viewUploadedFiles')
@@ -307,10 +317,16 @@
:title="$t('progresstracking')">{{$t('progresstracking')}}</span>
</div>
<a-form-model-item class="itemModel" prop="progresstracking">
<div style="width: 100%;display: flex;margin-bottom: 20px"
<a-button type="primary" class="button-text"
icon="plus"
style="margin-bottom: 10px"
@click="addprogresstrackingClick()">
{{ $t('newlyAdded') }}
</a-button>
<div class="progressTrackingListClass"
v-for="(item,index) in formInline.progressTrackingList" :key="index">
<!-- <span>{{item}}</span>-->
<div style="width: calc(100% - 116px);display: inline-block">
<div style="width: calc(100%);display: inline-block;line-height: 0">
<!-- <quill-editor-->
<!-- class="text-editor trackingClass"-->
<!-- ref="myQuillEditorRef"-->
@@ -321,11 +337,41 @@
<!-- style="width: 100%;height: 200px;display: inline-block"-->
<!-- :options="editorOption"-->
<!-- />-->
<div class="text-box" v-if="!item.isDescription" v-html="item.progressTracking"></div>
<a-input class="box-input"
v-if="item.isDescription"
v-model='item.progressTracking'
:disabled="true"/>
<div class="text-box" v-if="!item.isDescription">
<div class="text-box-index-text-top" @click="progressTrackingOpenClick($event)"
v-html="item.progressTracking"></div>
<div class="text-box-index-text-right">
<div class="text-box-index-text-right-text" @click="openClick(item)">
<img src="../../../../assets/progressExit.png" alt="">
<span style="margin-left: 2px">{{$t('putAway')}}</span>
</div>
<div class="text-box-index-text-right-text"
@click="deleteprogresstrackingClick(index,item)"
v-if="formInline.progressTrackingList.length > 0">
<img src="../../../../assets/editdelete.png" alt="">
<span style="margin-left: 2px">{{$t('delete')}}</span>
</div>
</div>
</div>
<div class="text-box-index" v-if="item.isDescription">
<div class="text-box-index-text" v-html="item.progressTracking"></div>
<div class="text-box-index-text-right">
<div class="text-box-index-text-right-text" @click="openClick(item)">
<img src="../../../../assets/medieProgress.png" alt="">
<span style="margin-left: 2px">{{$t('open')}}</span>
</div>
<div class="text-box-index-text-right-text"
@click="deleteprogresstrackingClick(index,item)"
v-if="formInline.progressTrackingList.length > 0">
<img src="../../../../assets/editdelete.png" alt="">
<span style="margin-left: 2px">{{$t('delete')}}</span>
</div>
</div>
</div>
<!-- <a-input class="box-input"-->
<!-- v-if="item.isDescription"-->
<!-- v-model='item.progressTracking'-->
<!-- :disabled="true"/>-->
</div>
<!-- <a-input class="box-input"-->
<!-- style='width: 88%'-->
@@ -333,13 +379,13 @@
<!-- :disabled="true"-->
<!-- :title='item.progressTracking'-->
<!-- :placeholder="$t('PleaseEnter')+$t('progresstracking')"/>-->
<a @click="addprogresstrackingClick(index)" style='margin-left: 10px'
v-if="formInline.progressTrackingList.length - 1 == index">{{$t('newlyAdded')}}</a>
<a @click="deleteprogresstrackingClick(index,item)"
v-if="formInline.progressTrackingList.length > 0" :disabled="disabled" style='margin-left: 10px'>{{$t('delete')}}</a>
<!-- <a @click="addprogresstrackingClick(index)" style='margin-left: 10px'-->
<!-- v-if="formInline.progressTrackingList.length - 1 == index">{{$t('newlyAdded')}}</a>-->
<!-- <a @click="deleteprogresstrackingClick(index,item)"-->
<!-- v-if="formInline.progressTrackingList.length > 0" :disabled="disabled" style='margin-left: 10px'>{{$t('delete')}}</a>-->
<span v-if="!item.isDescription" @click="openClick(item)" class="putAway">{{$t('putAway')}}</span>
<span v-if="item.isDescription" @click="openClick(item)" class="putAway">{{$t('open')}}</span>
<!-- <span v-if="!item.isDescription" @click="openClick(item)" class="putAway">{{$t('putAway')}}</span>-->
<!-- <span v-if="item.isDescription" @click="openClick(item)" class="putAway">{{$t('open')}}</span>-->
</div>
</a-form-model-item>
</div>
@@ -375,21 +421,31 @@
:title="$t('examineapproveevidence')">{{$t('examineapproveevidence')}}</span>
</div>
<a-form-model-item class="itemModel" prop="approvalEvidenceLink">
<div v-for="(item,index) in formInline.approvalEvidenceLinkList" :key="index">
<div style="margin-bottom: 10px"
v-for="(item,index) in formInline.approvalEvidenceLinkList" :key="index">
<a-input class="box-input"
style='width: 88%'
style='width: calc(100% - 48px);margin-right: 10px'
v-model='item.approvalEvidenceLink'
:disabled="disabled"
:placeholder="$t('PleaseEnter')+$t('Addresslink')"/>
<a-icon class="icon-text" @click="addvidenceClick(index)" style='margin-left: 10px;font-size: 18px;'
v-if="formInline.approvalEvidenceLinkList.length - 1 == index"
type="plus"/>
<a-icon class="icon-text"
v-if="formInline.approvalEvidenceLinkList.length > 1 && formInline.approvalEvidenceLinkList.length - 1 !== index"
style='margin-left: 10px;font-size: 18px;' @click="deletevidenceClick(index)"
type="minus" :disabled="disabled"/>
<img @click="addvidenceClick(index)"
class="box-input-img"
v-if="formInline.approvalEvidenceLinkList.length - 1 == index"
src="../../../../assets/progressAdd.png" alt="">
<img @click="deletevidenceClick(index)"
class="box-input-img"
v-if="formInline.approvalEvidenceLinkList.length > 1 && formInline.approvalEvidenceLinkList.length - 1 !== index"
src="../../../../assets/progressDelete.png" alt="">
<!-- <a-icon class="icon-text" @click="addvidenceClick(index)" style='margin-left: 10px;font-size: 18px;'-->
<!-- v-if="formInline.approvalEvidenceLinkList.length - 1 == index"-->
<!-- type="plus"/>-->
<!-- <a-icon class="icon-text"-->
<!-- v-if="formInline.approvalEvidenceLinkList.length > 1 && formInline.approvalEvidenceLinkList.length - 1 !== index"-->
<!-- style='margin-left: 10px;font-size: 18px;' @click="deletevidenceClick(index)"-->
<!-- type="minus" :disabled="disabled"/>-->
</div>
<a-button type="primary" class="button-text"
icon="upload"
@click="clickButtonToUpload('approvalEvidence')">
{{ (formInline.approvalEvidence === 'null' || formInline.approvalEvidence === '' ||
formInline.approvalEvidence == null) ? $t('Fileupload') : $t('viewUploadedFiles')
@@ -408,47 +464,6 @@
</div>
</a-drawer>
<!-- <addModel ref="addModelRef" @addModelForm="addModelForm"/>-->
<a-modal
:title="$t('progresstracking')"
:width="600"
:visible="visibletrack"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="Cancel"
>
<a-form-model :model="formInlinetracking" class="formAdd" :rules="rulestracking" ref="ruleFormtracking">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('progresstracking')">
{{$t('progresstracking')}}</span>
</div>
<a-form-model-item class="itemModel" prop="progressTracking">
<quill-editor
class="text-editor"
ref="myQuillEditor"
@ready="onEditorReady($event)"
v-model="formInlinetracking.progressTracking"
:content="formInlinetracking.progressTracking"
style="height: 300px"
:options="editorOption"
@blur="quilleditorBlur"
@change="onEditorChange($event)"
/>
<!-- <a-textarea :placeholder="$t('pleaseEnter')+$t('progresstracking')"-->
<!-- v-model="formInlinetracking.progressTracking"-->
<!-- style="width: 90%"-->
<!-- :maxLength="500"-->
<!-- :rows="4"/>-->
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-modal>
<a-upload
name="file"
id="iviewUp"
@@ -462,6 +477,7 @@
</a-upload>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"/>
<TrackingModel ref="TrackingModelRef" @TrackingModelForm="TrackingModelForm"/>
<viewImg ref="viewImgRef"/>
</div>
</template>
@@ -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 = '<p class="text-class">' + this.userInfo().username + ' ' + time + '</p>' + ' ' + 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 = '<p class="text-class">' + '<span class="usernameClass">' + this.userInfo().username + '</span> ' + '<span class="timeClass">' + time + '</span>' + '</p>' + '<p>' + this.$t('Problemstate') + this.$t('by') + '\'' + this.problemState + '\'' + this.$t('Changeto') + '\'' + value + '\'' + '</p>'
// 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 = '<p class="text-class">' + this.userInfo().username + ' ' + time + '</p>' + 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 = '<p class="text-class">' + '<span class="usernameClass">' + this.userInfo().username + '</span>' + '<span class="timeClass">' + time + '</span>' + '</p>' + 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;
}
</style>
<style scoped>
::v-deep .text-box-index-text-top p {
margin: 0 !important;
padding: 0 15px !important;
}
.box-title-text {
line-height: 1.4;
@@ -1145,8 +1184,13 @@
}
.button-text {
height: 38px;
height: 36px;
margin-top: 4px;
background: #FFFFFF;
border-radius: 4px 4px 4px 4px;
opacity: 1;
border: 1px solid #00BEBE;
color: #01A0AC;
}
::v-deep .ant-select-tree-treenode-switcher-close {
@@ -1206,9 +1250,78 @@
height: 200px;
display: inline-block;
border: 1px solid #ccc;
padding: 0;
border-radius: 4px;
position: relative;
}
.text-box-index {
width: 100%;
height: 46px;
display: inline-block;
border: 1px solid #ccc;
padding: 0 15px;
white-space: pre-wrap;
overflow: hidden;
border-radius: 4px 4px 0px 0px;
position: relative;
}
.text-box-index-text {
width: 100%;
overflow: hidden;
white-space: pre-wrap;
}
.text-box-index-text-top {
width: 100%;
box-sizing: border-box;
white-space: pre-wrap;
overflow: auto;
height: 200px;
line-height: 1.4;
padding: 56px 0 0 0;
}
.box-input-img {
width: 38px;
height: 38px;
}
.text-box-index-text-right {
position: absolute;
display: flex;
align-items: center;
top: 13px;
right: 2px;
}
.text-box-index-text-right-text {
font-size: 14px;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #01A0AC;
display: flex;
align-items: center;
margin-right: 10px;
cursor: pointer;
}
::v-deep .text-box-index-text .text-class {
background: #fff !important;
}
.progressTrackingListClass {
width: 100%;
display: flex;
margin-bottom: 16px
}
.progressTrackingListClass:last-child {
margin-bottom: 0;
}
::v-deep .text-box-index-text-top img {
max-width: 100% !important;
}
</style>
@@ -12,52 +12,43 @@
<a-spin :spinning="confirmLoading">
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('title')">{{$t('title')}}</span>
</div>
<a-form-model-item class="itemModel" prop="title">
<a-input class="box-input"
v-model='formInline.title'
:disabled="disabled"/>
</a-form-model-item>
<div class="itemModel" :title="formInline.title">
{{formInline.title}}
</div>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('problemType')">{{$t('problemType')}}</span>
</div>
<a-form-model-item class="itemModel-multi" prop="problemType">
<j-dict-select-tag class="box-input" v-model="formInline.problemType"
:disabled="disabled"
:type="'select'"
:triggerChange="false" :dictCode="'wen4_ti2_lei4_xing2'"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text"
:title="'PS-issue'">{{'PS-issue'}}</span>
</div>
<div>
<a
style='width: 273px;display: inline-block;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;margin-top: 12px;'
:title='formInline.psIssue'
@click='UserFeedback(formInline.psIssue)'>{{formInline.psIssue}}</a>
<div class="itemModel" :title="formInline.problemType_dictText">
{{formInline.problemType_dictText}}
</div>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="'PS-issue'">{{'PS-issue'}}</span>
</div>
<div class="itemModel">
<a :title='formInline.psIssue'
@click='UserFeedback(formInline.psIssue)'>{{formInline.psIssue}}</a>
</div>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -65,14 +56,14 @@
<span class="title-text-text"
:title="$t('Relevantlawsregulations')">{{$t('Relevantlawsregulations')}}</span>
</div>
<a-form-model-item class="itemModel-multi" prop="creator">
<a-input class="box-input"
:title='formInline.lawsName'
v-model='formInline.lawsName'
:disabled="disabled"/>
</a-form-model-item>
<div class="itemModel" :title="formInline.lawsName">
{{formInline.lawsName || '--'}}
</div>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -80,72 +71,21 @@
<span class="title-text-text"
:title="$t('RelatedItems')">{{$t('RelatedItems')}}</span>
</div>
<a-form-model-item class="itemModel" prop="contentTemplate">
<a-select allowClear
class="box-input"
v-model="formInline.projectType"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
showSearch
:disabled="true"
:style="formInline.projectType == 'none' ? 'width:100%' : 'width:50%'"
optionFilterProp="label"
:autoClearSearchValue="false"
:placeholder="$t('PleaseSelect')+$t('type')">
<a-select-option v-for="(item, key) in platformList"
:key="key"
:label="item.name"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.name}}
</span>
</a-select-option>
</a-select>
<a-select allowClear
v-if="formInline.projectType == 'numberPlatform' || formInline.projectType == 'carPlatform'"
class="box-input"
v-model="formInline.projectId"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
showSearch
:disabled="true"
style="width: 50%;float: right"
optionFilterProp="label"
:autoClearSearchValue="false"
:placeholder="$t('PleaseSelect')+$t('RelatedItems')">
<a-select-option v-for="(item, key) in relatedItemsList"
:key="key"
:label="item"
:value="item">
<span style="display: inline-block;width: 100%" :title="item ">
{{item}}
</span>
</a-select-option>
</a-select>
<a-select allowClear
class="box-input"
v-else-if="formInline.projectType == 'model'"
v-model="formInline.projectId"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
showSearch
:disabled="true"
style="width: 50%;float: right"
mode="multiple"
optionFilterProp="label"
:autoClearSearchValue="false"
:placeholder="$t('PleaseSelect')+$t('RelatedItems')">
<a-select-option v-for="(item, key) in projectNameList"
:key="key"
:label="item.projectName"
:value="item.id">
<span style="display: inline-block;width: 100%" :title=" item.projectName ">
{{ item.projectName}}
</span>
</a-select-option>
</a-select>
</a-form-model-item>
<div class="itemModel"
:title="formInline.projectType ? formInline.projectType == 'numberPlatform' ||
formInline.projectType == 'carPlatform' ? formInline.problemType_dictText+' '+formInline.projectId :
formInline.projectType == 'model' ? formInline.problemType_dictText+' '+formInline.projectName :
formInline.problemType_dictText : '--'">
<span>
{{formInline.projectType ? formInline.projectType == 'numberPlatform' ||
formInline.projectType == 'carPlatform' ? formInline.problemType_dictText+' '+formInline.projectId :
formInline.projectType == 'model' ? formInline.problemType_dictText+' '+formInline.projectName :
formInline.problemType_dictText : '--'}}
</span>
</div>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -153,71 +93,34 @@
<span class="title-text-text"
:title="$t('statisticalNodes')">{{$t('statisticalNodes')}}</span>
</div>
<a-form-model-item class="itemModel-multi" prop="creator">
<a-select
allowClear
show-search
mode="multiple"
:disabled="disabled"
class="box-input-search"
optionFilterProp="label"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="formInline.dutyTerritory">
<a-select-option v-for="(item, key) in firstLevelDutyTerritoryList"
:key="key"
:label="item.key"
:value="item.key">
<span style="display: inline-block;width: 100%" :title=" item.key ">
{{ item.key }}
</span>
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text"
:title="$t('Problemstate')">{{$t('Problemstate')}}</span>
<div class="itemModel" :title="formInline.dutyTerritory">
{{formInline.dutyTerritory}}
</div>
<a-form-model-item class="itemModel" prop="contentTemplate">
<a-select allowClear
class="box-input"
v-model="formInline.problemState"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
showSearch
:disabled="disabled"
optionFilterProp="label"
:autoClearSearchValue="false">
<a-select-option v-for="(item, key) in ProblemstateList"
:label='item'
:key="key"
:value="item">
<span style="display: inline-block;width: 100%" :title=" item">
{{ item }}
</span>
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text"
:title="$t('Problemstate')">{{$t('Problemstate')}}</span>
</div>
<div class="itemModel" :title="formInline.problemState">
{{formInline.problemState}}
</div>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('problemPriority')">{{$t('problemPriority')}}</span>
</div>
<a-form-model-item class="itemModel" prop="problemPriority">
<j-dict-select-tag class="box-input" v-model="formInline.problemPriority"
:disabled="true"
:placeholder="$t('PleaseSelect')+$t('problemPriority')"
:type="'select'"
:triggerChange="false" :dictCode="'wen4_ti2_you1_xian1_ji2'"/>
</a-form-model-item>
<div class="itemModel" :title="formInline.problemPriority_dictText">
{{formInline.problemPriority_dictText}}
</div>
</div>
</a-col>
</a-row>
@@ -228,12 +131,13 @@
<span class="title-text-text"
:title="$t('descriptions')">{{$t('descriptions')}}</span>
</div>
<a-form-model-item class="itemModel" prop="descriptions">
<div class="text-box" v-html="formInline.description"></div>
<!-- <a-input class="box-input"-->
<!-- v-model='formInline.description'-->
<!-- :disabled="disabled"/>-->
</a-form-model-item>
<div class="itemModel-text">
<div class="itemModel-text-box"
v-html="formInline.description"
@click="progressTrackingOpenClick($event)">
</div>
</div>
</div>
</a-col>
</a-row>
@@ -244,14 +148,14 @@
<span class="title-text-text"
:title="$t('documents')">{{$t('documents')}}</span>
</div>
<a-form-model-item class="itemModel" prop="fileLink">
<div v-for="(item,index) in formInline.fileLinkList" :key="index">
<div class="itemModel-text">
<div class="itemModel-text-text" v-for="(item,index) in formInline.fileLinkList" :key="index">
<a @click='UserFeedback(item.fileLink)'>{{item.fileLink}}</a>
</div>
<div v-for='(item,index) in formInline.fileList'>
<div class="itemModel-text-text" v-for="(item,index) in formInline.fileList" :key="index">
<a @click='download(item)'>{{item.fileName}}</a>
</div>
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
@@ -262,16 +166,30 @@
<span class="title-text-text"
:title="$t('progresstracking')">{{$t('progresstracking')}}</span>
</div>
<a-form-model-item class="itemModel" prop="progresstracking">
<div class="itemModel">
<div v-for="(item,index) in formInline.progressTrackingList" :key="index">
<div class="text-box-one" v-html="item.progressTracking"></div>
<!-- <a-input class="box-input"-->
<!-- style='width: 89%'-->
<!-- v-model='item.progressTracking'-->
<!-- :title='item.progressTracking'-->
<!-- :disabled="true"/>-->
<div class="text-box" v-if="!item.isDescription">
<div class="text-box-index-text-top" @click="progressTrackingOpenClick($event)"
v-html="item.progressTracking"></div>
<div class="text-box-index-text-right">
<div class="text-box-index-text-right-text" @click="openClick(item)">
<img src="../../../../assets/progressExit.png" alt="">
<span style="margin-left: 2px">{{$t('putAway')}}</span>
</div>
</div>
</div>
<div class="text-box-index" v-if="item.isDescription">
<div class="text-box-index-text" @click="progressTrackingOpenClick($event)"
v-html="item.progressTracking"></div>
<div class="text-box-index-text-right">
<div class="text-box-index-text-right-text" @click="openClick(item)">
<img src="../../../../assets/medieProgress.png" alt="">
<span style="margin-left: 2px">{{$t('open')}}</span>
</div>
</div>
</div>
</div>
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
@@ -282,11 +200,9 @@
<span class="title-text-text"
:title="$t('conculsion')">{{$t('conculsion')}}</span>
</div>
<a-form-model-item class="itemModel" prop="conclusion">
<a-input class="box-input"
v-model='formInline.conclusion'
:disabled="disabled"/>
</a-form-model-item>
<div class="itemModel">
{{formInline.conclusion}}
</div>
</div>
</a-col>
</a-row>
@@ -298,14 +214,16 @@
<span class="title-text-text"
:title="$t('examineapproveevidence')">{{$t('examineapproveevidence')}}</span>
</div>
<a-form-model-item class="itemModel" prop="approvalEvidenceLink">
<div v-for="(item,index) in formInline.approvalEvidenceLinkList" :key="index">
<div class="itemModel-text">
<div class="itemModel-text-text" v-for="(item,index) in formInline.approvalEvidenceLinkList"
:key="index">
<a @click='UserFeedback(item.approvalEvidenceLink)'>{{item.approvalEvidenceLink}}</a>
</div>
<div v-for='(item,index) in formInline.approvalEvidenceFileList'>
<div class="itemModel-text-text" v-for="(item,index) in formInline.approvalEvidenceFileList"
:key="index">
<a @click='download(item)'>{{item.fileName}}</a>
</div>
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
@@ -315,17 +233,22 @@
<a-button style="margin-right: 8px" @click="handleCancel">{{$t('close')}}</a-button>
</div>
</a-drawer>
<viewImg ref="viewImgRef"/>
</div>
</template>
<script>
import { getAction, postAction, putAction, downloadFile } from '@/api/manage'
import moment from 'moment'
import viewImg from './viewImg'
import { mapGetters } from 'vuex'
import { ImagePreview } from 'vant'
export default {
name: 'fillAdd',
components: {},
components: {
viewImg
},
data() {
return {
rules: {
@@ -344,7 +267,7 @@
}
]
},
relatedItemsList:[],
relatedItemsList: [],
platformList: [
{
name: this.$t('DigitalPlatform'),
@@ -376,7 +299,7 @@
},
formInline: {
fileLinkList: [{}],
progressTrackingList: [{}],
progressTrackingList: [],
approvalEvidenceLinkList: [{}],
dutyTerritory: undefined,
projectId: undefined,
@@ -442,10 +365,15 @@
},
...mapGetters(['userInfo']),
edit(row) {
console.log(row)
// this.getNameList()
this.getFirstLevelDutyTerritory()
this.title = this.$t('view')
this.formInline = JSON.parse(JSON.stringify(row))
this.projectNameList = []
if (row.projectType == 'model') {
this.getNameList()
if (this.formInline.projectId != null) {
if (this.formInline.projectId) {
this.formInline.projectId = this.formInline.projectId.split(',')
} else {
this.formInline.projectId = undefined
@@ -453,30 +381,29 @@
} else if (row.projectType == 'numberPlatform' || row.projectType == 'carPlatform') {
this.getPlatform(row.projectType)
}
// this.getNameList()
this.getFirstLevelDutyTerritory()
this.title = this.$t('view')
this.formInline = row
if (this.formInline.dutyTerritory != null) {
this.formInline.dutyTerritory = this.formInline.dutyTerritory.split(',')
if (this.formInline.progressTrackingList && this.formInline.progressTrackingList.length > 0) {
this.formInline.progressTrackingList.forEach(res => {
res.isDescription = true
})
} else {
this.formInline.dutyTerritory = undefined
this.formInline.progressTrackingList = []
}
// if (this.formInline.dutyTerritory != null) {
// this.formInline.dutyTerritory = this.formInline.dutyTerritory.split(',')
// } else {
// this.formInline.dutyTerritory = undefined
// }
if (this.formInline.problemState == null) {
this.formInline.problemState = undefined
}
if (this.formInline.projectId != null) {
this.formInline.projectId = this.formInline.projectId.split(',')
} else {
this.formInline.projectId = undefined
}
getAction('/project/problemManagementEO/queryById', { id: this.formInline.id }).then((res) => {
if (res.success) {
this.formInline.fileList = res.result.fileList
this.formInline.approvalEvidenceFileList = res.result.approvalEvidenceFileList
}
})
console.log(this.formInline)
this.formInline = { ...this.formInline }
this.visible = true
this.disabled = true
this.$nextTick(() => {
@@ -497,6 +424,22 @@
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)
}
},
openClick(item) {
item.isDescription = !item.isDescription
this.formInline = { ...this.formInline }
}
}
}
@@ -509,11 +452,13 @@
.ant-input-disabled {
color: rgba(0, 0, 0, 0.65) !important;
}
.text-class{
.text-class {
color: rgba(0, 0, 0, 0.65);
font-weight: bold;
}
p{
p {
margin: 0;
padding: 0;
}
@@ -523,20 +468,18 @@
.box-title-text {
line-height: 1.4;
display: flex;
justify-content: space-between;
margin-bottom: 20px;
}
.title-text {
width: 114px;
text-align: right;
text-align: left;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
}
.box-input {
@@ -548,25 +491,23 @@
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
font-size: 14px;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #040B29;
}
.title-text-text {
margin-top: 9px;
font-size: 14px;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #6F7385;
}
.formAdd {
margin-bottom: 40px;
}
.Required {
color: red;
margin-right: 4px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
@@ -608,25 +549,132 @@
word-break: break-word;
}
.itemModel-text {
box-sizing: border-box;
white-space: pre-wrap;
width: calc(100% - 130px);
margin-top: 1px;
}
.itemModel-text-text {
font-size: 14px;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #040B29;
margin-bottom: 10px;
}
.text-box {
width: 100%;
height: 200px;
height: auto;
display: inline-block;
border: 1px solid #ccc;
padding: 0 15px;
box-sizing: border-box;
white-space: pre-wrap;
overflow: auto;
padding: 0;
border-radius: 4px;
position: relative;
margin-bottom: 10px;
}
.text-box-one {
::v-deep .text-box-index-text-top p {
margin: 0 !important;
padding: 0 15px !important;
}
.text-box-index-text-top {
width: 100%;
height: 200px;
display: inline-block;
border: 1px solid #ccc;
padding: 0 15px;
height: 100%;
box-sizing: border-box;
margin-bottom: 20px;
white-space: pre-wrap;
overflow: auto;
padding: 56px 0 10px 0;
}
::v-deep .text-class {
color: rgba(0, 0, 0, 0.65);
font-weight: bold;
background: #F5F6F7;
width: 100%;
height: 46px;
line-height: 46px;
border-radius: 4px 4px 0px 0px;
position: absolute;
top: 0;
}
::v-deep .usernameClass {
font-size: 14px;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #040B29;
margin-right: 6px;
}
::v-deep .timeClass {
font-size: 14px;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #9598A4;
}
.itemModel-text-box {
width: 100%;
white-space: pre-wrap;
height: auto;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
overflow: auto;
padding: 15px;
}
::v-deep .itemModel-text-box img {
max-width: 100% !important;
}
::v-deep .text-box-index-text-top img {
max-width: 100% !important;
}
.text-box-index-text-right {
position: absolute;
display: flex;
align-items: center;
top: 13px;
right: 2px;
}
.text-box-index-text-right-text {
font-size: 14px;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #01A0AC;
display: flex;
align-items: center;
margin-right: 10px;
cursor: pointer;
}
.text-box-index {
width: 100%;
height: 46px;
display: inline-block;
padding: 0 15px;
border: 1px solid #ccc;
border-radius: 4px 4px 0px 0px;
white-space: pre-wrap;
overflow: hidden;
position: relative;
margin-bottom: 6px;
}
.text-box-index-text {
width: 100%;
overflow: hidden;
white-space: pre-wrap;
}
::v-deep .text-box-index-text .text-class {
background: #fff !important;
}
</style>
@@ -0,0 +1,47 @@
<template>
<a-modal
:title="$t('view')"
:width="800"
:visible="visible"
:maskClosable="false"
:footer="null"
@cancel="Cancel"
>
<div class="viewImgBox">
<img class="viewImg" :src="srcUrl" alt="">
</div>
</a-modal>
</template>
<script>
export default {
name: 'viewImg',
data() {
return {
visible: false,
srcUrl: ''
}
},
methods: {
Cancel() {
this.visible = false
},
getData(val) {
this.srcUrl = val
this.visible = true
}
}
}
</script>
<style scoped>
.viewImgBox {
text-align: center;
width: 750px;
}
.viewImg {
width: 100%;
}
</style>
@@ -121,6 +121,9 @@
<!-- </div>-->
<a-tooltip placement="topLeft" overlayClassName="tooltipColor">
<template slot="title">
<div>
{{ val.name }}
</div>
<span>{{ val.time.slice(0, 11) }}</span>
</template>
<img v-if="val.status == 1" src="../../../assets/heiTop.png" class="process-content-left"
@@ -143,6 +146,9 @@
</div>
<a-tooltip placement="topLeft" overlayClassName="tooltipColor">
<template slot="title">
<div>
{{ val.name }}
</div>
<span>{{ val.time.slice(0, 11) }}</span>
</template>
<img @click="statusClick(val,item.projectInfo)" v-if="val.status == 1"
@@ -58,6 +58,7 @@
</div>
<a-form-model-item class="itemModel" :prop="'flag'">
<a-radio-group class="box-input"
@change="reviewResultChange"
v-model="formInline.flag">
<a-radio value="Accepted" v-if="titleName == $t('Taskresponsibilityrecognition')">
{{$t('accept')}}
@@ -81,6 +82,26 @@
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="24" v-if="isDeliveryTime">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('expectedDeliveryTime')">{{$t('expectedDeliveryTime')}}</span>
</div>
</div>
<a-form-model-item class="itemModel" :prop="'deliveryTime'">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('expectedDeliveryTime')"
@change="dateChange({db_field_name:'deliveryTime'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.deliveryTime"
style="width: 100%"/>
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
@@ -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;
}
</style>
@@ -32,6 +32,8 @@
:standardContentQuery="queryProject"
/>
<!-- :class="{'circulationHistory':this.queryData.isDisplay,'circulationHistoryOne':!this.queryData.isDisplay}"-->
<experienceReferenceList v-if="isDisplay"
ref="experienceReferenceListRef"/>
<div>
<circulationHistory
v-if="isDisplay"
@@ -39,7 +41,6 @@
:queryProject="queryData"
/>
</div>
<!--:class="{'drawer-review':isDrawerClass,
'drawer-review-One':!isDrawerClass}"-->
<div v-if="this.queryData.isDisplay" class="drawer-review">
@@ -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