Merge remote-tracking branch 'origin/fix_20230911_UAT' into fix_20230911_UAT
This commit is contained in:
@@ -1249,7 +1249,7 @@ MODIFY COLUMN `lot` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_c
|
|||||||
MODIFY COLUMN `detection_report_location` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '检测报告位置' AFTER `experiment_file`,
|
MODIFY COLUMN `detection_report_location` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '检测报告位置' AFTER `experiment_file`,
|
||||||
MODIFY COLUMN `explain_info` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '说明' AFTER `detection_report_location`;
|
MODIFY COLUMN `explain_info` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '说明' AFTER `detection_report_location`;
|
||||||
|
|
||||||
--添加平台件项目库字段2023-09-28
|
--添加平台件项目库字段2023-10-09
|
||||||
ALTER TABLE `project_library_base`
|
ALTER TABLE `project_library_base`
|
||||||
ADD COLUMN `power` varchar(255) NULL COMMENT '功率' AFTER `platform`,
|
ADD COLUMN `power` varchar(255) NULL COMMENT '功率' AFTER `platform`,
|
||||||
ADD COLUMN `producer` varchar(255) NULL COMMENT '生产商' AFTER `power`,
|
ADD COLUMN `producer` varchar(255) NULL COMMENT '生产商' AFTER `power`,
|
||||||
@@ -1269,13 +1269,17 @@ ADD COLUMN `battery_type_code` varchar(255) NULL COMMENT '电池类型代码' AF
|
|||||||
ADD COLUMN `specification_code` varchar(255) NULL COMMENT '规格代码' AFTER `battery_type_code`,
|
ADD COLUMN `specification_code` varchar(255) NULL COMMENT '规格代码' AFTER `battery_type_code`,
|
||||||
ADD COLUMN `traceability_code` varchar(255) NULL COMMENT '追溯代码' AFTER `specification_code`,
|
ADD COLUMN `traceability_code` varchar(255) NULL COMMENT '追溯代码' AFTER `specification_code`,
|
||||||
ADD COLUMN `ymd_number` varchar(255) NULL COMMENT '生产也月日序列号' AFTER `traceability_code`,
|
ADD COLUMN `ymd_number` varchar(255) NULL COMMENT '生产也月日序列号' AFTER `traceability_code`,
|
||||||
ADD COLUMN `size` double(255, 0) NULL COMMENT '尺寸' AFTER `ymd_number`,
|
ADD COLUMN `size` varchar(255) NULL COMMENT '尺寸' AFTER `ymd_number`,
|
||||||
ADD COLUMN `rated_capacity` varchar(255) NULL COMMENT '额定容量' AFTER `size`,
|
ADD COLUMN `rated_capacity` varchar(255) NULL COMMENT '额定容量' AFTER `size`,
|
||||||
ADD COLUMN `nominal_voltage` varchar(255) NULL COMMENT '标称电压' AFTER `rated_capacity`,
|
ADD COLUMN `nominal_voltage` varchar(255) NULL COMMENT '标称电压' AFTER `rated_capacity`,
|
||||||
ADD COLUMN `rated_mass` varchar(255) NULL COMMENT '额定质量' AFTER `nominal_voltage`,
|
ADD COLUMN `rated_mass` varchar(255) NULL COMMENT '额定质量' AFTER `nominal_voltage`,
|
||||||
ADD COLUMN `module_number` varchar(0) NULL COMMENT '包含模块个数' AFTER `rated_mass`,
|
ADD COLUMN `module_number` varchar(255) NULL COMMENT '包含模块个数' AFTER `rated_mass`,
|
||||||
ADD COLUMN `connection_type` varchar(255) NULL COMMENT '模块串并联方式' AFTER `module_number`,
|
ADD COLUMN `connection_type` varchar(255) NULL COMMENT '模块串并联方式' AFTER `module_number`,
|
||||||
ADD COLUMN `module_specification_code` varchar(255) NULL COMMENT '所用模块或单体规格代码' AFTER `connection_type`,
|
ADD COLUMN `module_specification_code` varchar(255) NULL COMMENT '所用模块或单体规格代码' AFTER `connection_type`,
|
||||||
ADD COLUMN `cooling_method` varchar(255) NULL COMMENT '冷却方式' AFTER `module_specification_code`,
|
ADD COLUMN `cooling_method` varchar(255) NULL COMMENT '冷却方式' AFTER `module_specification_code`,
|
||||||
ADD COLUMN `filing_completion_time` datetime(0) NULL COMMENT '备案完成时间' AFTER `cooling_method`,
|
ADD COLUMN `filing_completion_time` datetime(0) NULL COMMENT '备案完成时间' AFTER `cooling_method`,
|
||||||
ADD COLUMN `remark` varchar(1000) NULL COMMENT '备注' AFTER `filing_completion_time`;
|
ADD COLUMN `remark` varchar(1000) NULL COMMENT '备注' AFTER `filing_completion_time`;
|
||||||
|
|
||||||
|
--平台件合规认证计划添加标识字段2023-10-09
|
||||||
|
ALTER TABLE `platform_task_planning`
|
||||||
|
ADD COLUMN `flag` varchar(255) NULL COMMENT '位置标识(用来区分上下两部分数据,up->上,down->下)' AFTER `project_id`,
|
||||||
|
|||||||
+5
@@ -161,4 +161,9 @@ public class AuthDummyInventoryInfoEO implements Serializable {
|
|||||||
/**认证类型*/
|
/**认证类型*/
|
||||||
@ApiModelProperty(value = "认证类型")
|
@ApiModelProperty(value = "认证类型")
|
||||||
private String attestationType;
|
private String attestationType;
|
||||||
|
|
||||||
|
/**备注*/
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
@Excel(name = "备注", width = 50)
|
||||||
|
private String remark;
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-9
@@ -961,9 +961,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
|||||||
if(CollectionUtils.isNotEmpty(baseList)){
|
if(CollectionUtils.isNotEmpty(baseList)){
|
||||||
String title = "";
|
String title = "";
|
||||||
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
|
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
|
||||||
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID,*编号,*责任领域,*交付物类型,交付物模板";
|
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID,*编号,*责任领域,*交付物类型,交付物模板,备注";
|
||||||
}else{
|
}else{
|
||||||
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID,*Number,*Responsible Field,*Deliverable Type,Deliverable Template";
|
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID,*Number,*Responsible Field,*Deliverable Type,Deliverable Template,Remark";
|
||||||
}
|
}
|
||||||
|
|
||||||
int pos = file.getOriginalFilename().lastIndexOf(".");
|
int pos = file.getOriginalFilename().lastIndexOf(".");
|
||||||
@@ -1081,7 +1081,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
|||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
||||||
headerSb.append(cell.getStringCellValue() + ",");
|
headerSb.append(cell.getStringCellValue() + ",");
|
||||||
if(j == 8){
|
if(j == 9){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if(i > 1){
|
} else if(i > 1){
|
||||||
@@ -1623,8 +1623,10 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
|||||||
}else{
|
}else{
|
||||||
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : datas) {
|
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : datas) {
|
||||||
List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream()
|
List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream()
|
||||||
.filter(e -> e.getSerialNumber().equals(authDummyInventoryInfoEO.getSerialNumber())).collect(Collectors.toList());
|
.filter(e -> e.getSerialNumber().trim().equals(authDummyInventoryInfoEO.getSerialNumber().trim())).collect(Collectors.toList());
|
||||||
authDummyInventoryInfoEO.setBussDocumentLibraryId(collect.get(0).getId());
|
if(CollectionUtils.isNotEmpty(collect)){
|
||||||
|
authDummyInventoryInfoEO.setBussDocumentLibraryId(collect.get(0).getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// //2. 验证标准号在法规清单中是否添加过
|
// //2. 验证标准号在法规清单中是否添加过
|
||||||
@@ -1705,6 +1707,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
|||||||
case "*责任领域": return "dutyTerritoryName";
|
case "*责任领域": return "dutyTerritoryName";
|
||||||
case "交付物模板": return "deliverableTemplateName";
|
case "交付物模板": return "deliverableTemplateName";
|
||||||
case "*交付物类型" : return "deliverableTypeName";
|
case "*交付物类型" : return "deliverableTypeName";
|
||||||
|
case "备注" : return "remark";
|
||||||
|
|
||||||
case "*Category" : return "Category";
|
case "*Category" : return "Category";
|
||||||
case "*Inspection Items" : return"inspectionItem";
|
case "*Inspection Items" : return"inspectionItem";
|
||||||
@@ -1715,6 +1718,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
|||||||
case "*Responsible Field" : return "dutyTerritoryName";
|
case "*Responsible Field" : return "dutyTerritoryName";
|
||||||
case "Deliverable Template" : return "deliverableTemplateName";
|
case "Deliverable Template" : return "deliverableTemplateName";
|
||||||
case "*Deliverable Type" : return "deliverableTypeNameEn";
|
case "*Deliverable Type" : return "deliverableTypeNameEn";
|
||||||
|
case "Remark" : return "remark";
|
||||||
|
|
||||||
|
|
||||||
default: return null;
|
default: return null;
|
||||||
@@ -1797,17 +1801,17 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
|||||||
String title = "";
|
String title = "";
|
||||||
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
|
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
|
||||||
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID," +
|
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID," +
|
||||||
"*编号,*责任领域,*交付物类型,交付物模板,";
|
"*编号,*责任领域,*交付物类型,交付物模板,备注,";
|
||||||
}else{
|
}else{
|
||||||
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID," +
|
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID," +
|
||||||
"*Number,*Responsible Field,*Deliverable Type,Deliverable Template,";
|
"*Number,*Responsible Field,*Deliverable Type,Deliverable Template,Remark,";
|
||||||
}
|
}
|
||||||
List<String> list = Arrays.asList(title.split(","));
|
List<String> list = Arrays.asList(title.split(","));
|
||||||
int index = 0;
|
int index = 0;
|
||||||
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
|
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
|
||||||
index = list.indexOf("交付物模板") + 1;
|
index = list.indexOf("备注") + 1;
|
||||||
}else{
|
}else{
|
||||||
index = list.indexOf("Deliverable Template") + 1;
|
index = list.indexOf("Remark") + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//创建临时文件夹
|
//创建临时文件夹
|
||||||
|
|||||||
+6
-6
@@ -133,7 +133,7 @@
|
|||||||
left join project_name_info as pni on plb.project_name_id = pni.id
|
left join project_name_info as pni on plb.project_name_id = pni.id
|
||||||
left join project_year_name_info as pyni on plb.year_name_id=pyni.id
|
left join project_year_name_info as pyni on plb.year_name_id=pyni.id
|
||||||
) tmp_tb
|
) tmp_tb
|
||||||
where 1=1 and state = #{state} and plb.platform is null
|
where 1=1 and state = #{state}
|
||||||
<if test="projectName !=null and projectName !=''">
|
<if test="projectName !=null and projectName !=''">
|
||||||
AND project_name LIKE CONCAT(CONCAT('%',#{projectName}),'%')
|
AND project_name LIKE CONCAT(CONCAT('%',#{projectName}),'%')
|
||||||
</if>
|
</if>
|
||||||
@@ -153,7 +153,7 @@
|
|||||||
left join project_name_info as pni on plb.project_name_id = pni.id
|
left join project_name_info as pni on plb.project_name_id = pni.id
|
||||||
left join project_year_name_info as pyni on plb.year_name_id=pyni.id
|
left join project_year_name_info as pyni on plb.year_name_id=pyni.id
|
||||||
) tmp_tb
|
) tmp_tb
|
||||||
where 1=1 and plb.platform is null and id in
|
where 1=1 and id in
|
||||||
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
|
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
|
||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
@@ -175,7 +175,7 @@
|
|||||||
left join project_name_info as pni on plb.project_name_id = pni.id
|
left join project_name_info as pni on plb.project_name_id = pni.id
|
||||||
left join project_year_name_info as pyni on plb.year_name_id=pyni.id
|
left join project_year_name_info as pyni on plb.year_name_id=pyni.id
|
||||||
) tmp_tb
|
) tmp_tb
|
||||||
where 1=1 and plb.platform is null and state = #{state}
|
where 1=1 and state = #{state}
|
||||||
and id in(
|
and id in(
|
||||||
SELECT pm.id AS pm FROM params_manifest pm
|
SELECT pm.id AS pm FROM params_manifest pm
|
||||||
JOIN ( SELECT id FROM
|
JOIN ( SELECT id FROM
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
FROM
|
FROM
|
||||||
project_library_base a
|
project_library_base a
|
||||||
JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.certification_engineer ) - length( REPLACE ( a.certification_engineer, ',', '' ) ) + 1 )) temp
|
JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.certification_engineer ) - length( REPLACE ( a.certification_engineer, ',', '' ) ) + 1 )) temp
|
||||||
WHERE user_id = #{userId} and platform is null) a ON pm.project_id = a.id
|
WHERE user_id = #{userId}) a ON pm.project_id = a.id
|
||||||
|
|
||||||
UNION
|
UNION
|
||||||
SELECT DISTINCT pcm.params_manifest_id AS pm FROM params_collect_manifest pcm WHERE sdt = #{userName} and state in('2','5')
|
SELECT DISTINCT pcm.params_manifest_id AS pm FROM params_collect_manifest pcm WHERE sdt = #{userName} and state in('2','5')
|
||||||
@@ -211,7 +211,7 @@
|
|||||||
left join project_name_info as pni on plb.project_name_id = pni.id
|
left join project_name_info as pni on plb.project_name_id = pni.id
|
||||||
left join project_year_name_info as pyni on plb.year_name_id = pyni.id
|
left join project_year_name_info as pyni on plb.year_name_id = pyni.id
|
||||||
) tmp_tb
|
) tmp_tb
|
||||||
where project_id = #{projectId} and plb.platform is null
|
where project_id = #{projectId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="labelListForProjectDetails" resultType="java.util.LinkedHashMap">
|
<select id="labelListForProjectDetails" resultType="java.util.LinkedHashMap">
|
||||||
@@ -232,7 +232,7 @@
|
|||||||
FROM
|
FROM
|
||||||
project_library_base a
|
project_library_base a
|
||||||
JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.certification_engineer ) - length( REPLACE ( a.certification_engineer, ',', '' ) ) + 1 )) temp
|
JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.certification_engineer ) - length( REPLACE ( a.certification_engineer, ',', '' ) ) + 1 )) temp
|
||||||
WHERE user_id = #{userId} and platform is null) a ON pm.project_id = a.id
|
WHERE user_id = #{userId}) a ON pm.project_id = a.id
|
||||||
where pm.state = #{state}
|
where pm.state = #{state}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+1
@@ -619,6 +619,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
|
|||||||
for (ParamsCollectManifestEO oldCollectManifestEO : diffList) {
|
for (ParamsCollectManifestEO oldCollectManifestEO : diffList) {
|
||||||
ParamsCollectManifestEO updateCollectManifestEO = new ParamsCollectManifestEO();
|
ParamsCollectManifestEO updateCollectManifestEO = new ParamsCollectManifestEO();
|
||||||
updateCollectManifestEO.setId(oldCollectManifestEO.getId());
|
updateCollectManifestEO.setId(oldCollectManifestEO.getId());
|
||||||
|
updateCollectManifestEO.setNioNumber(oldCollectManifestEO.getNioNumber());
|
||||||
updateCollectManifestEO.setState(CollectManifestStateEnum.CHANGE.getValue());
|
updateCollectManifestEO.setState(CollectManifestStateEnum.CHANGE.getValue());
|
||||||
updateCollectManifestEO.setChangeFlag(CollectManifestChangeFlagEnum.CHANGE_BEFORE.getValue()); // 标记为变更前参数项
|
updateCollectManifestEO.setChangeFlag(CollectManifestChangeFlagEnum.CHANGE_BEFORE.getValue()); // 标记为变更前参数项
|
||||||
updateCollectManifestEO.setDelFlag(CollectManifestChangeFlagEnum.DELETE_AFTER.getValue()); // 因新发布模板中没有该参数项,标记为变更时已删除参数项
|
updateCollectManifestEO.setDelFlag(CollectManifestChangeFlagEnum.DELETE_AFTER.getValue()); // 因新发布模板中没有该参数项,标记为变更时已删除参数项
|
||||||
|
|||||||
+14
-6
@@ -78,9 +78,9 @@ public class PlatformTaskPlanningEOController extends JeroController<PlatformTas
|
|||||||
@AutoLog(value = "平台件合规认证计划-列表查询")
|
@AutoLog(value = "平台件合规认证计划-列表查询")
|
||||||
@ApiOperation(value="平台件合规认证计划-列表查询", notes="平台件合规认证计划-列表查询")
|
@ApiOperation(value="平台件合规认证计划-列表查询", notes="平台件合规认证计划-列表查询")
|
||||||
@GetMapping(value = "/list")
|
@GetMapping(value = "/list")
|
||||||
public Result<List<PlatformTaskPlanningEO>> queryList(String projectId) {
|
public Result<?> queryList(String projectId) {
|
||||||
List<PlatformTaskPlanningEO> list = platformTaskPlanningEOService.queryList(projectId);
|
Map<String,Object> result = platformTaskPlanningEOService.queryList(projectId);
|
||||||
return Result.OK(list);
|
return Result.OK(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -106,9 +106,17 @@ public class PlatformTaskPlanningEOController extends JeroController<PlatformTas
|
|||||||
@ApiOperation(value="平台件合规认证计划-批量添加", notes="平台件合规认证计划-批量添加")
|
@ApiOperation(value="平台件合规认证计划-批量添加", notes="平台件合规认证计划-批量添加")
|
||||||
@PostMapping(value = "/addBatch")
|
@PostMapping(value = "/addBatch")
|
||||||
public Result<?> addBatch(@RequestBody Map<String,Object> data) {
|
public Result<?> addBatch(@RequestBody Map<String,Object> data) {
|
||||||
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(data.get("list")));
|
// JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(data.get("list")));
|
||||||
List<PlatformTaskPlanningEO> platformTaskPlanningEOList = jsonArray.toJavaList(PlatformTaskPlanningEO.class);
|
// JSONArray jsonArrayUp = JSONArray.parseArray(JSON.toJSONString(data.get("listUp")));
|
||||||
platformTaskPlanningEOService.addBatch(platformTaskPlanningEOList);
|
// JSONArray jsonArrayDown = JSONArray.parseArray(JSON.toJSONString(data.get("listDown")));
|
||||||
|
// List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp = jsonArray.toJavaList(PlatformTaskPlanningEO.class);
|
||||||
|
// List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown = jsonArray.toJavaList(PlatformTaskPlanningEO.class);
|
||||||
|
// platformTaskPlanningEOService.addBatch(platformTaskPlanningEOListUp,platformTaskPlanningEOListDown);
|
||||||
|
JSONArray jsonArrayUp = JSONArray.parseArray(JSON.toJSONString(data.get("listUp")));
|
||||||
|
JSONArray jsonArrayDown = JSONArray.parseArray(JSON.toJSONString(data.get("listDown")));
|
||||||
|
List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp = jsonArrayUp.toJavaList(PlatformTaskPlanningEO.class);
|
||||||
|
List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown = jsonArrayDown.toJavaList(PlatformTaskPlanningEO.class);
|
||||||
|
platformTaskPlanningEOService.addBatch(platformTaskPlanningEOListUp,platformTaskPlanningEOListDown);
|
||||||
return Result.OK("添加成功!");
|
return Result.OK("添加成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
@@ -93,4 +93,7 @@ public class PlatformTaskPlanningEO implements Serializable {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private boolean isG;
|
private boolean isG;
|
||||||
|
|
||||||
|
//标识(用来区分上下两部分数据,up->上,down->下)
|
||||||
|
private String Flag;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
package com.jero.modules.platform.enums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务状态枚举类
|
||||||
|
*/
|
||||||
|
public enum UpAndDownEnum {
|
||||||
|
UP("上部分","up"),
|
||||||
|
DOWN("下部分","down"),
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
String name;
|
||||||
|
String value;
|
||||||
|
|
||||||
|
private UpAndDownEnum(String name, String value) {
|
||||||
|
this.name = name;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getTextByValue(String value) {
|
||||||
|
UpAndDownEnum[] values = values();
|
||||||
|
for (UpAndDownEnum taskStatusEnum : values) {
|
||||||
|
if (taskStatusEnum.value.equals(value)) {
|
||||||
|
return taskStatusEnum.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
+28
@@ -52,6 +52,34 @@
|
|||||||
plb.sort,
|
plb.sort,
|
||||||
plb.flag,
|
plb.flag,
|
||||||
plb.brand,
|
plb.brand,
|
||||||
|
plb.power,
|
||||||
|
plb.producer,
|
||||||
|
plb.duty_depart,
|
||||||
|
plb.regulation_owner_id,
|
||||||
|
plb.engineering_interface_person,
|
||||||
|
plb.brand_label,
|
||||||
|
plb.product_model,
|
||||||
|
plb.cell_enterprise,
|
||||||
|
plb.assembly_enterprise,
|
||||||
|
plb.part_number_cn,
|
||||||
|
plb.part_number_en,
|
||||||
|
plb.filing_code,
|
||||||
|
plb.supplier_code,
|
||||||
|
plb.product_type_code,
|
||||||
|
plb.battery_type_code,
|
||||||
|
plb.specification_code,
|
||||||
|
plb.traceability_code,
|
||||||
|
plb.ymd_number,
|
||||||
|
plb.size,
|
||||||
|
plb.rated_capacity,
|
||||||
|
plb.nominal_voltage,
|
||||||
|
plb.rated_mass,
|
||||||
|
plb.module_number,
|
||||||
|
plb.connection_type,
|
||||||
|
plb.module_specification_code,
|
||||||
|
plb.cooling_method,
|
||||||
|
plb.filing_completion_time,
|
||||||
|
plb.remark,
|
||||||
sdi.item_text brandText,
|
sdi.item_text brandText,
|
||||||
sdi.en_name brandTextEn
|
sdi.en_name brandTextEn
|
||||||
from project_library_base as plb
|
from project_library_base as plb
|
||||||
|
|||||||
+5
-3
@@ -3,6 +3,7 @@ package com.jero.modules.platform.service;
|
|||||||
import com.jero.modules.platform.entity.PlatformTaskPlanningEO;
|
import com.jero.modules.platform.entity.PlatformTaskPlanningEO;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 平台件合规认证计划
|
* @Description: 平台件合规认证计划
|
||||||
@@ -22,9 +23,10 @@ public interface IPlatformTaskPlanningEOService extends IService<PlatformTaskPla
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 平台件合规认证计划-批量添加
|
* 平台件合规认证计划-批量添加
|
||||||
* @param platformTaskPlanningEOList
|
* @param platformTaskPlanningEOListUp
|
||||||
|
* @param platformTaskPlanningEOListDown
|
||||||
*/
|
*/
|
||||||
void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOList);
|
void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp,List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新
|
* 更新
|
||||||
@@ -63,5 +65,5 @@ public interface IPlatformTaskPlanningEOService extends IService<PlatformTaskPla
|
|||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<PlatformTaskPlanningEO> queryList(String projectId);
|
Map<String,Object> queryList(String projectId);
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-10
@@ -4555,11 +4555,11 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
|||||||
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
||||||
title = "*类别,*检验项目,*认证类型,*WVTA ID," +
|
title = "*类别,*检验项目,*认证类型,*WVTA ID," +
|
||||||
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
||||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
|
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称,备注";
|
||||||
}else {
|
}else {
|
||||||
title = "*Category,*Inspection Items,*Certification Type,*WVTA ID," +
|
title = "*Category,*Inspection Items,*Certification Type,*WVTA ID," +
|
||||||
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," +
|
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," +
|
||||||
"Deliverable Template,*Deliverable Type,*Due Date,Report No,Product Model,Name Of Manufacturer";
|
"Deliverable Template,*Deliverable Type,*Due Date,Report No,Product Model,Name Of Manufacturer,Remark";
|
||||||
}
|
}
|
||||||
|
|
||||||
int pos = file.getOriginalFilename().lastIndexOf(".");
|
int pos = file.getOriginalFilename().lastIndexOf(".");
|
||||||
@@ -4675,7 +4675,7 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
|||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
||||||
headerSb.append(cell.getStringCellValue() + ",");
|
headerSb.append(cell.getStringCellValue() + ",");
|
||||||
if(j == 14){
|
if(j == 15){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if(i > 1){
|
} else if(i > 1){
|
||||||
@@ -5823,6 +5823,7 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
|||||||
case "产品型号": return "productModel";
|
case "产品型号": return "productModel";
|
||||||
case "生产企业名称": return "productionEnterpriseName";
|
case "生产企业名称": return "productionEnterpriseName";
|
||||||
case "认证进度": return "certificationProgress";
|
case "认证进度": return "certificationProgress";
|
||||||
|
case "备注": return "remark";
|
||||||
|
|
||||||
case "*Category": return "category";
|
case "*Category": return "category";
|
||||||
case "*Inspection Items": return "inspectionItem";
|
case "*Inspection Items": return "inspectionItem";
|
||||||
@@ -5842,6 +5843,7 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
|||||||
case "Product Model": return "productModel";
|
case "Product Model": return "productModel";
|
||||||
case "Name Of Manufacturer": return "productionEnterpriseName";
|
case "Name Of Manufacturer": return "productionEnterpriseName";
|
||||||
case "Homologation Progress": return "certificationProgress";
|
case "Homologation Progress": return "certificationProgress";
|
||||||
|
case "Remark": return "remark";
|
||||||
|
|
||||||
default: return null;
|
default: return null;
|
||||||
//"Deliverable Type,Deliverable Template,initiator,Assignee,Due Date," +
|
//"Deliverable Type,Deliverable Template,initiator,Assignee,Due Date," +
|
||||||
@@ -5866,19 +5868,19 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
|||||||
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
||||||
title = "*类别,*检验项目,*认证类型,*WVTA ID," +
|
title = "*类别,*检验项目,*认证类型,*WVTA ID," +
|
||||||
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
||||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
|
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称,备注";
|
||||||
}else {
|
}else {
|
||||||
title = "*Category,*Inspection Items,*Certification Type,*WVTA ID," +
|
title = "*Category,*Inspection Items,*Certification Type,*WVTA ID," +
|
||||||
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," +
|
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," +
|
||||||
"Deliverable Template,*Deliverable Type,*Due Date,Report No,Product Model,Name Of Manufacturer";
|
"Deliverable Template,*Deliverable Type,*Due Date,Report No,Product Model,Name Of Manufacturer,Remark";
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> list = Arrays.asList(title.split(","));
|
List<String> list = Arrays.asList(title.split(","));
|
||||||
int index = 0;
|
int index = 0;
|
||||||
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
||||||
index = list.indexOf("生产企业名称") + 1;
|
index = list.indexOf("备注") + 1;
|
||||||
}else{
|
}else{
|
||||||
index = list.indexOf("Name Of Manufacturer") + 1;
|
index = list.indexOf("Remark") + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//创建临时文件夹
|
//创建临时文件夹
|
||||||
@@ -5902,7 +5904,7 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
|||||||
cellStyleTemp.setWrapText(true);//自动换行
|
cellStyleTemp.setWrapText(true);//自动换行
|
||||||
|
|
||||||
CellRangeAddress region =
|
CellRangeAddress region =
|
||||||
new CellRangeAddress(1, 1, 0, 13); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
|
new CellRangeAddress(1, 1, 0, 14); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
|
||||||
sheet.addMergedRegion(region);
|
sheet.addMergedRegion(region);
|
||||||
String explain= "";
|
String explain= "";
|
||||||
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
||||||
@@ -6071,8 +6073,10 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
|||||||
String projectLibraryId = pciList.get(0).getProjectLibraryId();
|
String projectLibraryId = pciList.get(0).getProjectLibraryId();
|
||||||
ProjectLibraryBase projectLibraryBase = this.platformProjectLibraryBaseService.selectById(projectLibraryId);
|
ProjectLibraryBase projectLibraryBase = this.platformProjectLibraryBaseService.selectById(projectLibraryId);
|
||||||
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
|
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
|
||||||
List<SysUser> studioEngineerUserInfo = this.sysUserService.querySysUserListByIdList(Arrays.asList(projectLibraryBase.getStudioEngineer().split(",")));
|
List<SysUser> studioEngineerUserInfo = new ArrayList<>();
|
||||||
|
if(StringUtils.isNotBlank(projectLibraryBase.getStudioEngineer())){
|
||||||
|
studioEngineerUserInfo = this.sysUserService.querySysUserListByIdList(Arrays.asList(projectLibraryBase.getStudioEngineer().split(",")));
|
||||||
|
}
|
||||||
String certificationEngineerUserNames = "";
|
String certificationEngineerUserNames = "";
|
||||||
if(StringUtils.isNotBlank(projectLibraryBase.getCertificationEngineer())){
|
if(StringUtils.isNotBlank(projectLibraryBase.getCertificationEngineer())){
|
||||||
List<String> certificationEngineerIdList = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(","));
|
List<String> certificationEngineerIdList = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(","));
|
||||||
|
|||||||
+1
-1
@@ -569,7 +569,7 @@ public class PlatformProjectLawsInventoryEOServiceImpl extends ServiceImpl<Platf
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void editById(ProjectLawsInventoryEO projectLawsInventoryEO) {
|
public void editById(ProjectLawsInventoryEO projectLawsInventoryEO) {
|
||||||
this.editService.editById(projectLawsInventoryEO);
|
this.editService.editByIdPlatform(projectLawsInventoryEO);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+99
-11
@@ -23,6 +23,8 @@ import com.jero.modules.cert.template.enums.ControlTypeEnum;
|
|||||||
import com.jero.modules.dummy.enums.OrderEnum;
|
import com.jero.modules.dummy.enums.OrderEnum;
|
||||||
import com.jero.modules.enums.DictCodeEnum;
|
import com.jero.modules.enums.DictCodeEnum;
|
||||||
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
|
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
|
||||||
|
import com.jero.modules.oss.entity.OSSFile;
|
||||||
|
import com.jero.modules.oss.service.IOSSFileService;
|
||||||
import com.jero.modules.ota.service.impl.OtaManageApplyEOServiceImpl;
|
import com.jero.modules.ota.service.impl.OtaManageApplyEOServiceImpl;
|
||||||
import com.jero.modules.platform.mapper.PlatformProjectLawsInventoryEOMapper;
|
import com.jero.modules.platform.mapper.PlatformProjectLawsInventoryEOMapper;
|
||||||
import com.jero.modules.platform.mapper.PlatformProjectLibraryBaseMapper;
|
import com.jero.modules.platform.mapper.PlatformProjectLibraryBaseMapper;
|
||||||
@@ -45,6 +47,7 @@ import com.jero.modules.project.enums.DesignComplianceStatusEnum;
|
|||||||
import com.jero.modules.project.enums.HSStatisticalNodesEnum;
|
import com.jero.modules.project.enums.HSStatisticalNodesEnum;
|
||||||
import com.jero.modules.project.enums.OperatorTypeEnum;
|
import com.jero.modules.project.enums.OperatorTypeEnum;
|
||||||
import com.jero.modules.project.enums.PermissionDescriptionEnum;
|
import com.jero.modules.project.enums.PermissionDescriptionEnum;
|
||||||
|
import com.jero.modules.project.enums.ProjectInventoryFieldEnum;
|
||||||
import com.jero.modules.project.enums.ProjectRoleEnum;
|
import com.jero.modules.project.enums.ProjectRoleEnum;
|
||||||
import com.jero.modules.project.enums.ProjectTaskPlanningNameEnum;
|
import com.jero.modules.project.enums.ProjectTaskPlanningNameEnum;
|
||||||
import com.jero.modules.project.enums.ProjectUserLocationEnum;
|
import com.jero.modules.project.enums.ProjectUserLocationEnum;
|
||||||
@@ -194,6 +197,8 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
|||||||
private OtaManageApplyEOServiceImpl otaManageApplyEOService;
|
private OtaManageApplyEOServiceImpl otaManageApplyEOService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysDictItemMapper sysDictItemMapper;
|
private SysDictItemMapper sysDictItemMapper;
|
||||||
|
@Autowired
|
||||||
|
private IOSSFileService iOSSFileService;
|
||||||
|
|
||||||
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
private static DecimalFormat df = new DecimalFormat("#.00");
|
private static DecimalFormat df = new DecimalFormat("#.00");
|
||||||
@@ -217,7 +222,21 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
|||||||
projectLibraryBase.setCreateBy(sysUser.getUsername());
|
projectLibraryBase.setCreateBy(sysUser.getUsername());
|
||||||
projectLibraryBase.setUpdateBy(sysUser.getUsername());
|
projectLibraryBase.setUpdateBy(sysUser.getUsername());
|
||||||
|
|
||||||
checkExitData(projectLibraryBase);
|
// checkExitData(projectLibraryBase);
|
||||||
|
|
||||||
|
if(StringUtils.isNotBlank(projectLibraryBase.getBrandLabel())){
|
||||||
|
String valueTemp = UUID.randomUUID().toString().replace("-", "");
|
||||||
|
List<OSSFile> oSSFileList = new ArrayList<>();
|
||||||
|
for (String fileId : projectLibraryBase.getBrandLabel().split(",")) {
|
||||||
|
OSSFile ossFile = new OSSFile();
|
||||||
|
ossFile.setId(fileId);
|
||||||
|
ossFile.setConnectId(valueTemp);
|
||||||
|
oSSFileList.add(ossFile);
|
||||||
|
}
|
||||||
|
iOSSFileService.updateFileInfo(oSSFileList);
|
||||||
|
|
||||||
|
projectLibraryBase.setBrandLabel(valueTemp);
|
||||||
|
}
|
||||||
save(projectLibraryBase);
|
save(projectLibraryBase);
|
||||||
|
|
||||||
//创建任务计划时间轴
|
//创建任务计划时间轴
|
||||||
@@ -1057,7 +1076,6 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
|||||||
|
|
||||||
List<ProjectLibraryBase> result = this.list(queryWrapper);
|
List<ProjectLibraryBase> result = this.list(queryWrapper);
|
||||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
|
||||||
List<SysDictItem> dictItemList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.BRAND.getValue());
|
List<SysDictItem> dictItemList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.BRAND.getValue());
|
||||||
|
|
||||||
//置顶
|
//置顶
|
||||||
@@ -1068,9 +1086,29 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
|||||||
wrapper.in(TopProjectEO::getCreateBy,loginUser.getUsername()).in(TopProjectEO::getProjectLibraryBaseId,idList).orderByDesc(TopProjectEO::getSort);
|
wrapper.in(TopProjectEO::getCreateBy,loginUser.getUsername()).in(TopProjectEO::getProjectLibraryBaseId,idList).orderByDesc(TopProjectEO::getSort);
|
||||||
topProjectEOList = iTopProjectEOService.list(wrapper);
|
topProjectEOList = iTopProjectEOService.list(wrapper);
|
||||||
}
|
}
|
||||||
|
//列表中的法规工程师和工程接口人
|
||||||
|
List<SysUser> sysUserList = getSysUserList(result);
|
||||||
//目标市场数据字典
|
//目标市场数据字典
|
||||||
// List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
|
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
|
||||||
for(ProjectLibraryBase projectLibraryBase: result){
|
for(ProjectLibraryBase projectLibraryBase: result){
|
||||||
|
if(ObjectUtils.isNotEmpty(sysUserList)){
|
||||||
|
//法规工程师
|
||||||
|
if(StringUtils.isNotBlank(projectLibraryBase.getRegulationOwnerId())){
|
||||||
|
List<SysUser> collect = sysUserList.stream()
|
||||||
|
.filter(e -> e.getId().equals(projectLibraryBase.getRegulationOwnerId())).collect(Collectors.toList());
|
||||||
|
if(ObjectUtils.isNotEmpty(collect)){
|
||||||
|
projectLibraryBase.setRegulationOwnerIdName(collect.get(0).getUsername());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//工程接口人
|
||||||
|
if(StringUtils.isNotBlank(projectLibraryBase.getEngineeringInterfacePerson())){
|
||||||
|
List<SysUser> collect = sysUserList.stream()
|
||||||
|
.filter(e -> e.getId().equals(projectLibraryBase.getEngineeringInterfacePerson())).collect(Collectors.toList());
|
||||||
|
if(ObjectUtils.isNotEmpty(collect)){
|
||||||
|
projectLibraryBase.setEngineeringInterfacePersonName(collect.get(0).getUsername());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
//处理品牌
|
//处理品牌
|
||||||
List<SysDictItem> sysDictItemList = dictItemList.stream()
|
List<SysDictItem> sysDictItemList = dictItemList.stream()
|
||||||
.filter(e -> e.getItemValue().equals(projectLibraryBase.getBrand())).collect(Collectors.toList());
|
.filter(e -> e.getItemValue().equals(projectLibraryBase.getBrand())).collect(Collectors.toList());
|
||||||
@@ -1098,14 +1136,14 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
|||||||
}
|
}
|
||||||
|
|
||||||
//目标市场
|
//目标市场
|
||||||
// Map<String,Object> param = new HashMap<>();
|
Map<String,Object> param = new HashMap<>();
|
||||||
// param.put("cut",cut);
|
param.put("cut",cut);
|
||||||
// String targetMarket = getMarket(param, targetMarketList, projectLibraryBase);
|
String targetMarket = getMarket(param, targetMarketList, projectLibraryBase);
|
||||||
// //项目名称(功率-生产商-目标市场)
|
//项目名称(功率-生产商-目标市场)
|
||||||
// String projectName = projectLibraryBase.getPower() + "-" + projectLibraryBase.getProducer() + "-" + targetMarket;
|
String projectName = projectLibraryBase.getPower() + "-" + projectLibraryBase.getProducer() + "-" + targetMarket;
|
||||||
// projectLibraryBase.setProjectNameId(projectName);//原设计平台件项目名称去这个字段值
|
projectLibraryBase.setProjectNameId(projectName);//原设计平台件项目名称去这个字段值
|
||||||
// //平台件项目名称改为拼接的形式,projectNameId不在存数据,如果这个变更影响其他的地方,项目名称取值可以取projectName的值
|
//平台件项目名称改为拼接的形式,projectNameId不在存数据,如果这个变更影响其他的地方,项目名称取值可以取projectName的值
|
||||||
// projectLibraryBase.setProjectName(projectName);
|
projectLibraryBase.setProjectName(projectName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ObjectUtils.isEmpty(params.get("orderByField"))){
|
if(ObjectUtils.isEmpty(params.get("orderByField"))){
|
||||||
@@ -1121,6 +1159,25 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<SysUser> getSysUserList(List<ProjectLibraryBase> result) {
|
||||||
|
List<String> RegulationOwnerIdList = result.stream().map(ProjectLibraryBase::getRegulationOwnerId).distinct().collect(Collectors.toList());
|
||||||
|
List<String> EngineeringInterfacePersonList = result.stream().map(ProjectLibraryBase::getEngineeringInterfacePerson).distinct().collect(Collectors.toList());
|
||||||
|
List<String> userIdList = new ArrayList<>();
|
||||||
|
if(ObjectUtils.isNotEmpty(RegulationOwnerIdList)){
|
||||||
|
userIdList.addAll(RegulationOwnerIdList);
|
||||||
|
}
|
||||||
|
if(ObjectUtils.isNotEmpty(EngineeringInterfacePersonList)){
|
||||||
|
userIdList.addAll(EngineeringInterfacePersonList);
|
||||||
|
}
|
||||||
|
List<SysUser> sysUserList = new ArrayList<>();
|
||||||
|
if(ObjectUtils.isNotEmpty(userIdList)){
|
||||||
|
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
|
||||||
|
userqueryWrapper.in("id ", userIdList);
|
||||||
|
sysUserList = sysUserMapper.selectList(userqueryWrapper);
|
||||||
|
}
|
||||||
|
return sysUserList;
|
||||||
|
}
|
||||||
|
|
||||||
private void hearSort(Map<String, Object> params, List<ProjectLibraryBase> resultList) {
|
private void hearSort(Map<String, Object> params, List<ProjectLibraryBase> resultList) {
|
||||||
if(ObjectUtils.isNotEmpty(params.get("orderByField"))){
|
if(ObjectUtils.isNotEmpty(params.get("orderByField"))){
|
||||||
Collator comparator = Collator.getInstance(Locale.CHINESE);
|
Collator comparator = Collator.getInstance(Locale.CHINESE);
|
||||||
@@ -1418,6 +1475,7 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
|||||||
@Override
|
@Override
|
||||||
public void disposeData(List<ProjectLibraryBase> records,String cut,boolean disposeTargetMarketFlag) {
|
public void disposeData(List<ProjectLibraryBase> records,String cut,boolean disposeTargetMarketFlag) {
|
||||||
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
|
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
|
||||||
|
List<SysUser> sysUserList = getSysUserList(records);
|
||||||
for (ProjectLibraryBase projectLibraryBase : records) {
|
for (ProjectLibraryBase projectLibraryBase : records) {
|
||||||
List<SysUser> sysUsers = new ArrayList<>();
|
List<SysUser> sysUsers = new ArrayList<>();
|
||||||
//认证工程师多个id查询
|
//认证工程师多个id查询
|
||||||
@@ -1448,6 +1506,36 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//法规工程师
|
||||||
|
if(StringUtils.isNotBlank(projectLibraryBase.getRegulationOwnerId())){
|
||||||
|
List<SysUser> collect = sysUserList.stream()
|
||||||
|
.filter(e -> e.getId().equals(projectLibraryBase.getRegulationOwnerId())).collect(Collectors.toList());
|
||||||
|
if(ObjectUtils.isNotEmpty(collect)){
|
||||||
|
projectLibraryBase.setRegulationOwnerIdName(collect.get(0).getUsername());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//工程接口人
|
||||||
|
if(StringUtils.isNotBlank(projectLibraryBase.getEngineeringInterfacePerson())){
|
||||||
|
List<SysUser> collect = sysUserList.stream()
|
||||||
|
.filter(e -> e.getId().equals(projectLibraryBase.getEngineeringInterfacePerson())).collect(Collectors.toList());
|
||||||
|
if(ObjectUtils.isNotEmpty(collect)){
|
||||||
|
projectLibraryBase.setEngineeringInterfacePersonName(collect.get(0).getUsername());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//责任部门
|
||||||
|
if(StringUtils.isNotBlank(projectLibraryBase.getDutyDepart())){
|
||||||
|
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.getBaseMapper().selectItemsAll();
|
||||||
|
String dutyDepartName = platformProjectLawsInventoryEOService.disposeShowDictItemValue(sysDictItems, projectLibraryBase.getDutyDepart(), cut, ProjectInventoryFieldEnum.DUTY_TERRITORY.getValue());
|
||||||
|
projectLibraryBase.setDutyDepartName(dutyDepartName);
|
||||||
|
}
|
||||||
|
//名牌标签
|
||||||
|
if(StringUtils.isNotBlank(projectLibraryBase.getBrandLabel())){
|
||||||
|
List<OSSFile> fileList = iOSSFileService.getFileInfosByConnectId(projectLibraryBase.getBrandLabel());
|
||||||
|
if(ObjectUtils.isNotEmpty(fileList)){
|
||||||
|
List<String> urlList = fileList.stream().map(OSSFile::getUrl).collect(Collectors.toList());
|
||||||
|
projectLibraryBase.setUrlList(urlList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(disposeTargetMarketFlag){
|
if(disposeTargetMarketFlag){
|
||||||
if(StringUtils.isNotEmpty(projectLibraryBase.getTargetMarket())){
|
if(StringUtils.isNotEmpty(projectLibraryBase.getTargetMarket())){
|
||||||
|
|||||||
+58
-20
@@ -3,16 +3,20 @@ package com.jero.modules.platform.service.impl;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.jero.modules.platform.entity.PlatformTaskPlanningEO;
|
import com.jero.modules.platform.entity.PlatformTaskPlanningEO;
|
||||||
|
import com.jero.modules.platform.enums.UpAndDownEnum;
|
||||||
import com.jero.modules.platform.mapper.PlatformTaskPlanningEOMapper;
|
import com.jero.modules.platform.mapper.PlatformTaskPlanningEOMapper;
|
||||||
import com.jero.modules.platform.service.IPlatformTaskPlanningEOService;
|
import com.jero.modules.platform.service.IPlatformTaskPlanningEOService;
|
||||||
import com.jero.modules.project.enums.PlanStatusEnum;
|
import com.jero.modules.project.enums.PlanStatusEnum;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -40,23 +44,33 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl<PlatformTaskP
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 平台件合规认证计划-批量添加
|
* 平台件合规认证计划-批量添加
|
||||||
* @param platformTaskPlanningEOList
|
* @param platformTaskPlanningEOListUp
|
||||||
|
* @param platformTaskPlanningEOListDown
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOList) {
|
public void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp,List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown) {
|
||||||
if(!platformTaskPlanningEOList.isEmpty()){
|
if(!platformTaskPlanningEOListUp.isEmpty()){
|
||||||
//先删除在新增
|
//先删除在新增
|
||||||
// LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
// LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
LambdaQueryWrapper<PlatformTaskPlanningEO> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PlatformTaskPlanningEO> wrapper = new LambdaQueryWrapper<>();
|
||||||
// wrapper.eq(PlatformTaskPlanningEO::getCreateBy,loginUser.getUsername());
|
// wrapper.eq(PlatformTaskPlanningEO::getCreateBy,loginUser.getUsername());
|
||||||
wrapper.eq(PlatformTaskPlanningEO::getProjectId,platformTaskPlanningEOList.get(0).getProjectId());
|
wrapper.eq(PlatformTaskPlanningEO::getProjectId,platformTaskPlanningEOListUp.get(0).getProjectId());
|
||||||
this.remove(wrapper);
|
this.remove(wrapper);
|
||||||
for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOList) {
|
|
||||||
|
for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOListUp) {
|
||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
platformTaskPlanningEO.setCreateTime(now);
|
platformTaskPlanningEO.setCreateTime(now);
|
||||||
platformTaskPlanningEO.setUpdateTime(now);
|
platformTaskPlanningEO.setUpdateTime(now);
|
||||||
|
platformTaskPlanningEO.setFlag("up");
|
||||||
}
|
}
|
||||||
saveBatch(platformTaskPlanningEOList);
|
for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOListDown) {
|
||||||
|
Date now = new Date();
|
||||||
|
platformTaskPlanningEO.setCreateTime(now);
|
||||||
|
platformTaskPlanningEO.setUpdateTime(now);
|
||||||
|
platformTaskPlanningEO.setFlag("down");
|
||||||
|
}
|
||||||
|
saveBatch(platformTaskPlanningEOListUp);
|
||||||
|
saveBatch(platformTaskPlanningEOListDown);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +126,7 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl<PlatformTaskP
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<PlatformTaskPlanningEO> queryList(String projectId) {
|
public Map<String,Object> queryList(String projectId) {
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
|
||||||
Date date = null;
|
Date date = null;
|
||||||
try {
|
try {
|
||||||
@@ -124,21 +138,45 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl<PlatformTaskP
|
|||||||
wrapper.eq(PlatformTaskPlanningEO::getProjectId,projectId);
|
wrapper.eq(PlatformTaskPlanningEO::getProjectId,projectId);
|
||||||
wrapper.orderByAsc(PlatformTaskPlanningEO::getNodeTime);
|
wrapper.orderByAsc(PlatformTaskPlanningEO::getNodeTime);
|
||||||
List<PlatformTaskPlanningEO> taskPlanningEOList = list(wrapper);
|
List<PlatformTaskPlanningEO> taskPlanningEOList = list(wrapper);
|
||||||
for (PlatformTaskPlanningEO platformTaskPlanningEO : taskPlanningEOList) {
|
Map<String,Object> result = new HashMap<>();
|
||||||
platformTaskPlanningEO.setName(platformTaskPlanningEO.getNodeName());
|
if(ObjectUtils.isEmpty(taskPlanningEOList)){
|
||||||
platformTaskPlanningEO.setTime(platformTaskPlanningEO.getNodeTime());
|
LambdaQueryWrapper<PlatformTaskPlanningEO> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
platformTaskPlanningEO.setG(false);
|
queryWrapper.isNull(PlatformTaskPlanningEO::getProjectId);
|
||||||
if(ObjectUtils.isNotEmpty(platformTaskPlanningEO.getNodeTime())){
|
List<PlatformTaskPlanningEO> list = list(queryWrapper);
|
||||||
if(platformTaskPlanningEO.getNodeTime().after(date)){
|
|
||||||
platformTaskPlanningEO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
List<PlatformTaskPlanningEO> up = list.stream()
|
||||||
}else if(platformTaskPlanningEO.getNodeTime().before(date)){
|
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.UP.getValue().equals(e.getFlag())).collect(Collectors.toList());
|
||||||
platformTaskPlanningEO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
List<PlatformTaskPlanningEO> down = list.stream()
|
||||||
}else{
|
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.DOWN.getValue().equals(e.getFlag())).collect(Collectors.toList());
|
||||||
platformTaskPlanningEO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
|
||||||
|
result.put("listUp",up);
|
||||||
|
result.put("listDown",down);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
for (PlatformTaskPlanningEO platformTaskPlanningEO : taskPlanningEOList) {
|
||||||
|
platformTaskPlanningEO.setName(platformTaskPlanningEO.getNodeName());
|
||||||
|
platformTaskPlanningEO.setTime(platformTaskPlanningEO.getNodeTime());
|
||||||
|
platformTaskPlanningEO.setG(false);
|
||||||
|
if(ObjectUtils.isNotEmpty(platformTaskPlanningEO.getNodeTime())){
|
||||||
|
if(platformTaskPlanningEO.getNodeTime().after(date)){
|
||||||
|
platformTaskPlanningEO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
||||||
|
}else if(platformTaskPlanningEO.getNodeTime().before(date)){
|
||||||
|
platformTaskPlanningEO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
||||||
|
}else{
|
||||||
|
platformTaskPlanningEO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
taskPlanningEOList = taskPlanningEOList.stream().filter(e->ObjectUtils.isNotEmpty(e.getNodeTime())).collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<PlatformTaskPlanningEO> up = taskPlanningEOList.stream()
|
||||||
|
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.UP.getValue().equals(e.getFlag())).collect(Collectors.toList());
|
||||||
|
List<PlatformTaskPlanningEO> down = taskPlanningEOList.stream()
|
||||||
|
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.DOWN.getValue().equals(e.getFlag())).collect(Collectors.toList());
|
||||||
|
|
||||||
|
result.put("listUp",up);
|
||||||
|
result.put("listDown",down);
|
||||||
}
|
}
|
||||||
taskPlanningEOList = taskPlanningEOList.stream().filter(e->ObjectUtils.isNotEmpty(e.getNodeTime())).collect(Collectors.toList());
|
return result;
|
||||||
return taskPlanningEOList;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -216,4 +216,8 @@ public class ProjectCertificationInventoryDutyEnginnerEO implements Serializable
|
|||||||
// @Excel(name = "*截止日期", width = 20, format = "yyyy-MM-dd")
|
// @Excel(name = "*截止日期", width = 20, format = "yyyy-MM-dd")
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String endTimeStr;
|
private String endTimeStr;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
// @Excel(name = "备注", width = 50)
|
||||||
|
private String remark;
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -215,4 +215,8 @@ public class ProjectCertificationInventoryDutyEnginnerEOEnPlatform implements Se
|
|||||||
// @Excel(name = "截止日期", width = 20, format = "yyyy-MM-dd")
|
// @Excel(name = "截止日期", width = 20, format = "yyyy-MM-dd")
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String endTimeStr;
|
private String endTimeStr;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
@Excel(name = "Remark", width = 50)
|
||||||
|
private String remark;
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -192,6 +192,7 @@ public class ProjectCertificationInventoryDutyEnginnerEOPlatform implements Seri
|
|||||||
@ApiModelProperty(value = "认证进度备注")
|
@ApiModelProperty(value = "认证进度备注")
|
||||||
private String certificationProgressRemark;
|
private String certificationProgressRemark;
|
||||||
|
|
||||||
|
|
||||||
/**项目库id*/
|
/**项目库id*/
|
||||||
@ApiModelProperty(value = "项目库id")
|
@ApiModelProperty(value = "项目库id")
|
||||||
private String projectLibraryId;
|
private String projectLibraryId;
|
||||||
@@ -215,4 +216,8 @@ public class ProjectCertificationInventoryDutyEnginnerEOPlatform implements Seri
|
|||||||
// @Excel(name = "*截止日期", width = 20, format = "yyyy-MM-dd")
|
// @Excel(name = "*截止日期", width = 20, format = "yyyy-MM-dd")
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String endTimeStr;
|
private String endTimeStr;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
@Excel(name = "备注", width = 50)
|
||||||
|
private String remark;
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -256,6 +256,11 @@ public class ProjectCertificationInventoryEO implements Serializable {
|
|||||||
@ApiModelProperty(value = "认证类型")
|
@ApiModelProperty(value = "认证类型")
|
||||||
private String attestationType;
|
private String attestationType;
|
||||||
|
|
||||||
|
/**备注*/
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
@Excel(name = "备注", width = 50)
|
||||||
|
private String remark;
|
||||||
|
|
||||||
/**一级责任领域**/
|
/**一级责任领域**/
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String firstLevelDutyTerritory;
|
private String firstLevelDutyTerritory;
|
||||||
|
|||||||
+4
@@ -221,4 +221,8 @@ public class ProjectCertificationInventoryEOEnPlatform implements Serializable {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String endTimeStr;
|
private String endTimeStr;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
@Excel(name = "Remark", width = 50)
|
||||||
|
private String remark;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -261,4 +261,8 @@ public class ProjectCertificationInventoryEOPlatform implements Serializable {
|
|||||||
@ApiModelProperty(value = "关联平台件数据")
|
@ApiModelProperty(value = "关联平台件数据")
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<ProjectCertificationInventoryEOPlatform> projectCertificationInventoryEOS;
|
private List<ProjectCertificationInventoryEOPlatform> projectCertificationInventoryEOS;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
@Excel(name = "备注", width = 50)
|
||||||
|
private String remark;
|
||||||
}
|
}
|
||||||
|
|||||||
+99
-83
@@ -166,89 +166,105 @@ public class ProjectLibraryBase implements Comparable<ProjectLibraryBase> {
|
|||||||
|
|
||||||
//平台件项目库字段--------------------------------------------------------------------------------------------------------------
|
//平台件项目库字段--------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
// @ApiModelProperty(value = "功率")
|
@ApiModelProperty(value = "功率")
|
||||||
// private String power;
|
private String power;
|
||||||
//
|
|
||||||
// @ApiModelProperty(value = "生产商")
|
@ApiModelProperty(value = "生产商")
|
||||||
// private String producer;
|
private String producer;
|
||||||
//
|
|
||||||
// @ApiModelProperty(value = "责任部门")
|
@ApiModelProperty(value = "责任部门")
|
||||||
// private String dutyDepart;
|
private String dutyDepart;
|
||||||
//
|
|
||||||
// @ApiModelProperty(value = "法规工程师")
|
@TableField(exist = false)
|
||||||
// private String regulationOwnerId;
|
private String dutyDepartName;
|
||||||
//
|
|
||||||
// @ApiModelProperty(value = "工程接口人")
|
@ApiModelProperty(value = "法规工程师")
|
||||||
// private String engineeringInterfacePerson;
|
private String regulationOwnerId;
|
||||||
//
|
|
||||||
// @ApiModelProperty(value = "名牌标签")
|
@TableField(exist = false)
|
||||||
// private String brandLabel;
|
@ApiModelProperty(value = "法规工程师回显")
|
||||||
//
|
private String regulationOwnerIdName;
|
||||||
// @ApiModelProperty(value = "产品型号")
|
|
||||||
// private String productModel;
|
@ApiModelProperty(value = "工程接口人")
|
||||||
//
|
private String engineeringInterfacePerson;
|
||||||
// @ApiModelProperty(value = "电芯生产企业")
|
|
||||||
// private String cellEnterprise;
|
@TableField(exist = false)
|
||||||
//
|
@ApiModelProperty(value = "工程接口人回显")
|
||||||
// @ApiModelProperty(value = "总成生产企业")
|
private String engineeringInterfacePersonName;
|
||||||
// private String assemblyEnterprise;
|
|
||||||
//
|
@ApiModelProperty(value = "名牌标签")
|
||||||
// @ApiModelProperty(value = "零件号(国内)")
|
private String brandLabel;
|
||||||
// private String partNumberCn;
|
|
||||||
//
|
@ApiModelProperty(value = "产品型号")
|
||||||
// @ApiModelProperty(value = "零件号(国外)")
|
private String productModel;
|
||||||
// private String part_numberEn;
|
|
||||||
//
|
@ApiModelProperty(value = "电芯生产企业")
|
||||||
// @ApiModelProperty(value = "24位备案码")
|
private String cellEnterprise;
|
||||||
// private String filingCode;
|
|
||||||
//
|
@ApiModelProperty(value = "总成生产企业")
|
||||||
// @ApiModelProperty(value = "供应商代码(1-3)")
|
private String assemblyEnterprise;
|
||||||
// private String supplierCode;
|
|
||||||
//
|
@ApiModelProperty(value = "零件号(国内)")
|
||||||
// @ApiModelProperty(value = "产品类型代码(4)")
|
private String partNumberCn;
|
||||||
// private String productTypeCode;
|
|
||||||
//
|
@ApiModelProperty(value = "零件号(国外)")
|
||||||
// @ApiModelProperty(value = "电池类型代码(5)")
|
private String partNumberEn;
|
||||||
// private String batteryTypeCode;
|
|
||||||
//
|
@ApiModelProperty(value = "24位备案码")
|
||||||
// @ApiModelProperty(value = "规格代码(6-7)")
|
private String filingCode;
|
||||||
// private String specificationCode;
|
|
||||||
//
|
@ApiModelProperty(value = "供应商代码(1-3)")
|
||||||
// @ApiModelProperty(value = "追溯代码(8)")
|
private String supplierCode;
|
||||||
// private String traceabilityCode;
|
|
||||||
//
|
@ApiModelProperty(value = "产品类型代码(4)")
|
||||||
// @ApiModelProperty(value = "生产也月日序列号")
|
private String productTypeCode;
|
||||||
// private String ymdNumber;
|
|
||||||
//
|
@ApiModelProperty(value = "电池类型代码(5)")
|
||||||
// @ApiModelProperty(value = "尺寸")
|
private String batteryTypeCode;
|
||||||
// private String size;
|
|
||||||
//
|
@ApiModelProperty(value = "规格代码(6-7)")
|
||||||
// @ApiModelProperty(value = "额定容量")
|
private String specificationCode;
|
||||||
// private String ratedCapacity;
|
|
||||||
//
|
@ApiModelProperty(value = "追溯代码(8)")
|
||||||
// @ApiModelProperty(value = "标称电压")
|
private String traceabilityCode;
|
||||||
// private String nominalVoltage;
|
|
||||||
//
|
@ApiModelProperty(value = "生产也月日序列号")
|
||||||
// @ApiModelProperty(value = "额定质量")
|
private String ymdNumber;
|
||||||
// private String ratedMass;
|
|
||||||
//
|
@ApiModelProperty(value = "尺寸")
|
||||||
// @ApiModelProperty(value = "包含模块个数")
|
private String size;
|
||||||
// private String moduleNumber;
|
|
||||||
//
|
@ApiModelProperty(value = "额定容量")
|
||||||
// @ApiModelProperty(value = "模块串并联方式")
|
private String ratedCapacity;
|
||||||
// private String connectionType;
|
|
||||||
//
|
@ApiModelProperty(value = "标称电压")
|
||||||
// @ApiModelProperty(value = "所用模块或单体规格代码")
|
private String nominalVoltage;
|
||||||
// private String moduleSpecificationCode;
|
|
||||||
//
|
@ApiModelProperty(value = "额定质量")
|
||||||
// @ApiModelProperty(value = "冷却方式")
|
private String ratedMass;
|
||||||
// private String coolingMethod;
|
|
||||||
//
|
@ApiModelProperty(value = "包含模块个数")
|
||||||
// @ApiModelProperty(value = "备案完成时间")
|
private String moduleNumber;
|
||||||
// private String filingCompletionTime;
|
|
||||||
//
|
@ApiModelProperty(value = "模块串并联方式")
|
||||||
// @ApiModelProperty(value = "备注")
|
private String connectionType;
|
||||||
// private String remark;
|
|
||||||
|
@ApiModelProperty(value = "所用模块或单体规格代码")
|
||||||
|
private String moduleSpecificationCode;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "冷却方式")
|
||||||
|
private String coolingMethod;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备案完成时间")
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
|
private java.util.Date filingCompletionTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private List<String> urlList;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+3
-1
@@ -73,7 +73,7 @@ public class PrehomoJob implements Job {
|
|||||||
@Override
|
@Override
|
||||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||||
log.info("prehomo流程,定时任务开启 =====================================================");
|
log.info("prehomo流程,定时任务开启 =====================================================");
|
||||||
|
/*
|
||||||
//查询出已经启动了prehomo流程的数据。 并且流程没有结束。
|
//查询出已经启动了prehomo流程的数据。 并且流程没有结束。
|
||||||
QueryWrapper<ProjectTaskInventoryEO> queryProjectTaskInventoryWrapper = new QueryWrapper<>();
|
QueryWrapper<ProjectTaskInventoryEO> queryProjectTaskInventoryWrapper = new QueryWrapper<>();
|
||||||
queryProjectTaskInventoryWrapper.isNotNull("prehomo_p_id");
|
queryProjectTaskInventoryWrapper.isNotNull("prehomo_p_id");
|
||||||
@@ -367,5 +367,7 @@ public class PrehomoJob implements Job {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.info("prehomo流程,定时任务结束 =====================================================");
|
log.info("prehomo流程,定时任务结束 =====================================================");
|
||||||
|
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+260
-4
@@ -14,8 +14,21 @@ import com.jero.modules.dummy.util.ListDiff;
|
|||||||
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
|
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
|
||||||
import com.jero.modules.oss.entity.OSSFile;
|
import com.jero.modules.oss.entity.OSSFile;
|
||||||
import com.jero.modules.oss.service.IOSSFileService;
|
import com.jero.modules.oss.service.IOSSFileService;
|
||||||
import com.jero.modules.project.entity.*;
|
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
|
||||||
import com.jero.modules.project.enums.*;
|
import com.jero.modules.project.entity.ProjectLibraryBase;
|
||||||
|
import com.jero.modules.project.entity.ProjectLibraryRoleRelEO;
|
||||||
|
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
|
||||||
|
import com.jero.modules.project.entity.ProjectUserPermission;
|
||||||
|
import com.jero.modules.project.enums.ComplianceFlowStatusEnum;
|
||||||
|
import com.jero.modules.project.enums.InventoryAffirmNodeEnum;
|
||||||
|
import com.jero.modules.project.enums.JumpLinkEnum;
|
||||||
|
import com.jero.modules.project.enums.PermissionDescriptionEnum;
|
||||||
|
import com.jero.modules.project.enums.ProjectInventoryFieldEnum;
|
||||||
|
import com.jero.modules.project.enums.ProjectMessageEnum;
|
||||||
|
import com.jero.modules.project.enums.ProjectRoleEnum;
|
||||||
|
import com.jero.modules.project.enums.ProjectUserLocationEnum;
|
||||||
|
import com.jero.modules.project.enums.RoleRelModelTypeEnum;
|
||||||
|
import com.jero.modules.project.enums.TaskStatusEnum;
|
||||||
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
|
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
|
||||||
import com.jero.modules.project.service.IProjectLibraryRoleRelEOService;
|
import com.jero.modules.project.service.IProjectLibraryRoleRelEOService;
|
||||||
import com.jero.modules.project.service.IProjectUserPermissionService;
|
import com.jero.modules.project.service.IProjectUserPermissionService;
|
||||||
@@ -43,14 +56,20 @@ import org.apache.commons.lang3.ObjectUtils;
|
|||||||
import org.apache.commons.lang3.SerializationUtils;
|
import org.apache.commons.lang3.SerializationUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.apache.xmlbeans.impl.xb.xsdschema.Public;
|
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1248,6 +1267,243 @@ public class ProjectLawsInventoryEOEditServiceImpl {
|
|||||||
throw new JeroBootException("该用户没有权限操作该数据!");
|
throw new JeroBootException("该用户没有权限操作该数据!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public void editByIdPlatform(ProjectLawsInventoryEO projectLawsInventoryEO) {
|
||||||
|
Date now = new Date();
|
||||||
|
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
// boolean checkResult = checkData(projectLawsInventoryEO.getProjectLibraryId(), currentUser.getId(), projectLawsInventoryEO.getId());
|
||||||
|
// if (checkResult) {
|
||||||
|
QueryWrapper<ProjectLawsInventoryEO> oldPliQueryWrap = new QueryWrapper<>();
|
||||||
|
oldPliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getId, projectLawsInventoryEO.getId());
|
||||||
|
List<ProjectLawsInventoryEO> oldPliEoList = projectLawsInventoryEOService.list(oldPliQueryWrap);
|
||||||
|
|
||||||
|
this.updateProjectLawsInventorySendMessage(projectLawsInventoryEO);
|
||||||
|
|
||||||
|
// 根据法规清单id,获取该法规清单在待办中心的任务明细。
|
||||||
|
List<String> oldPliEoIdList = oldPliEoList.stream().map(ProjectLawsInventoryEO::getId).distinct().collect(Collectors.toList());
|
||||||
|
QueryWrapper<ProcessInfoDetailEO> pidEoQueryWrap = new QueryWrapper<>();
|
||||||
|
pidEoQueryWrap.lambda().in(ProcessInfoDetailEO::getProjectLawsInventoryId, oldPliEoIdList);
|
||||||
|
List<ProcessInfoDetailEO> pidEoList = this.processInfoDetailEOService.list(pidEoQueryWrap);
|
||||||
|
if (CollectionUtils.isNotEmpty(pidEoList)) {
|
||||||
|
// 处理编辑法规工程师的逻辑
|
||||||
|
this.updateRegulationOwner(projectLawsInventoryEO, oldPliEoList, pidEoList);
|
||||||
|
// 处理编辑责任人的逻辑
|
||||||
|
this.updateDutyPerson(projectLawsInventoryEO, oldPliEoList, pidEoList);
|
||||||
|
}
|
||||||
|
// 处理修改设计或验证符合性截止日期的逻辑
|
||||||
|
this.updateDesignOrVerifyEndTime(projectLawsInventoryEO, oldPliEoList);
|
||||||
|
|
||||||
|
projectLawsInventoryEO.setUpdateTime(now);
|
||||||
|
ProjectLawsInventoryEO projectLawsInventoryEOCopy = SerializationUtils.clone(projectLawsInventoryEO);//复制
|
||||||
|
|
||||||
|
//更新log
|
||||||
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
String username = sysUser.getUsername();
|
||||||
|
|
||||||
|
String contentLog = username + "编辑了清单中的“" + projectLawsInventoryEO.getSerialNumber() + "”:</br>";
|
||||||
|
String enContentLog = username + " edited the “" + projectLawsInventoryEO.getSerialNumber() + "” in the list:</br>";
|
||||||
|
|
||||||
|
List<ProjectLawsInventoryEO> infoEOList = new ArrayList<>();
|
||||||
|
infoEOList.add(projectLawsInventoryEO);
|
||||||
|
List<ProjectLawsInventoryEO> infoEOListCopy = new ArrayList<>();
|
||||||
|
infoEOListCopy.add(projectLawsInventoryEOCopy);
|
||||||
|
|
||||||
|
//查询数据库里原来的数据
|
||||||
|
QueryWrapper<ProjectLawsInventoryEO> queryWrapper = new QueryWrapper<>();
|
||||||
|
List<ProjectLawsInventoryEO> dataList = projectLawsInventoryEOService.list(queryWrapper.eq("id", projectLawsInventoryEO.getId()));
|
||||||
|
List<ProjectLawsInventoryEO> dataListCopy = DeepCopyListUtil.depCopy(dataList);
|
||||||
|
LambdaUpdateWrapper<ProjectLawsInventoryEO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.in(ProjectLawsInventoryEO::getId, projectLawsInventoryEO.getId());
|
||||||
|
setDateNull(projectLawsInventoryEO, updateWrapper);
|
||||||
|
//保存
|
||||||
|
projectLawsInventoryEOService.update(projectLawsInventoryEO, updateWrapper);
|
||||||
|
// saveOrUpdate(projectLawsInventoryEO);
|
||||||
|
|
||||||
|
//获取编辑中的责任领域
|
||||||
|
List<String> dutyTerritoryList = new ArrayList<>();
|
||||||
|
dutyTerritoryList = Arrays.asList(projectLawsInventoryEO.getDutyTerritory().split(","));
|
||||||
|
dutyTerritoryList = dutyTerritoryList.stream().distinct().collect(Collectors.toList());
|
||||||
|
//获取当前的projectLibrartId
|
||||||
|
String projectLibrartId = projectLawsInventoryEO.getProjectLibraryId();
|
||||||
|
String cut = projectLawsInventoryEO.getCut();
|
||||||
|
|
||||||
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
params.put("projectLibraryId", projectLibrartId);
|
||||||
|
params.put("userId", currentUser.getId());
|
||||||
|
params.put("modelType", RoleRelModelTypeEnum.LAWS_INVENTORY.getValue());
|
||||||
|
ProjectLibraryRoleRelEO projectLibraryRoleRelEO = projectLibraryRoleRelEOService.queryByProjectLibraryIdAndUserId(params);
|
||||||
|
String roleCode1 = projectLibraryRoleRelEO.getRoleCode();
|
||||||
|
//分别获取当前编辑中的设计符合性和认证符合性责任人
|
||||||
|
List<String> designDutyIdList = new ArrayList<>();
|
||||||
|
designDutyIdList = Arrays.asList(projectLawsInventoryEO.getDesignDutyId().split(","));
|
||||||
|
List<String> verifyDutyIdList = new ArrayList<>();
|
||||||
|
verifyDutyIdList = Arrays.asList(projectLawsInventoryEO.getVerifyDutyId().split(","));
|
||||||
|
|
||||||
|
//allDutyList 为法规工程师中验证符合性和确认符合中的责任人
|
||||||
|
List<String> allDutyList = new ArrayList<>();
|
||||||
|
allDutyList.addAll(designDutyIdList);
|
||||||
|
allDutyList.addAll(verifyDutyIdList);
|
||||||
|
allDutyList = allDutyList.stream().distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
|
//获取相关责任领域下的和projectLibrartId的相关人员名单的信息
|
||||||
|
List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritoy(projectLibrartId, dutyTerritoryList);
|
||||||
|
|
||||||
|
List<String> allList = new ArrayList<>();
|
||||||
|
List<String> enginnerList = new ArrayList<>();
|
||||||
|
List<String> lawEnginnerList = new ArrayList<>();
|
||||||
|
List<String> enginnerLawSetList = new ArrayList<>();
|
||||||
|
List<String> enginnerAttSetList = new ArrayList<>();
|
||||||
|
//根据相关人员名单获取的工程接口人
|
||||||
|
for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) {
|
||||||
|
String enginneringInterfacePerson = relatedPersonnel.getEngineeringInterfacePerson();
|
||||||
|
if (!StringUtils.isEmpty(enginneringInterfacePerson)) {
|
||||||
|
enginnerList = Arrays.stream(enginneringInterfacePerson.split(",")).collect(Collectors.toList());
|
||||||
|
allList.addAll(enginnerList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//获取相关人员名单中的法规工程师
|
||||||
|
for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) {
|
||||||
|
String lawEngineer = relatedPersonnel.getLawEngineer();
|
||||||
|
if (!StringUtils.isEmpty(lawEngineer)) {
|
||||||
|
lawEnginnerList = Arrays.stream(lawEngineer.split(",")).collect(Collectors.toList());
|
||||||
|
allList.addAll(lawEnginnerList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//获取相关人员名单中的工程接口-法规工程师设置
|
||||||
|
for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) {
|
||||||
|
String engineerLawSet = relatedPersonnel.getEngineerLawSet();
|
||||||
|
if (!StringUtils.isEmpty(engineerLawSet)) {
|
||||||
|
enginnerLawSetList = Arrays.stream(engineerLawSet.split(",")).collect(Collectors.toList());
|
||||||
|
allList.addAll(enginnerLawSetList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//获取相关人员名单中的工程接口-认证工程师设置
|
||||||
|
for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) {
|
||||||
|
String engineerAttSet = relatedPersonnel.getEngineerAttSet();
|
||||||
|
if (!StringUtils.isEmpty(engineerAttSet)) {
|
||||||
|
enginnerAttSetList = Arrays.stream(engineerAttSet.split(",")).collect(Collectors.toList());
|
||||||
|
allList.addAll(enginnerAttSetList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//获取当前项目库id的studio工程师和认证工程师
|
||||||
|
List<String> studionList = new ArrayList<>();
|
||||||
|
List<String> certificationEngineerList = new ArrayList<>();
|
||||||
|
List<ProjectLibraryBase> projectLibraryBases = projectLibraryBaseService.queryById(projectLibrartId, cut);
|
||||||
|
for (ProjectLibraryBase projectLibraryBase : projectLibraryBases) {
|
||||||
|
studionList.add(projectLibraryBase.getStudioEngineer());
|
||||||
|
|
||||||
|
String certificationEngineer = projectLibraryBase.getCertificationEngineer();
|
||||||
|
if (!StringUtils.isEmpty(certificationEngineer)) {
|
||||||
|
certificationEngineerList = Arrays.stream(certificationEngineer.split(",")).collect(Collectors.toList());
|
||||||
|
allList.addAll(certificationEngineerList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
allList = allList.stream().filter(all -> {
|
||||||
|
return StringUtils.isNotBlank(all);
|
||||||
|
}).distinct().collect(Collectors.toList());
|
||||||
|
/*
|
||||||
|
for(String all : allList){
|
||||||
|
if(all.equals("")){
|
||||||
|
allList.remove(all);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
//遍历所有人alllist中是否包含责任人,如果包含,不用操作。
|
||||||
|
//-------如果不包含,再去判断当前用户的角色是studio、法规还是认证
|
||||||
|
for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) {
|
||||||
|
if (allList.size() > 0) {
|
||||||
|
for (String allDuty : allDutyList) {
|
||||||
|
String dutyPerson = allDuty;
|
||||||
|
if (StringUtils.isNotEmpty(dutyPerson) && !allList.contains(dutyPerson) && StringUtils.isNotEmpty(roleCode1)) {
|
||||||
|
if (roleCode1.equals(com.jero.modules.project.enums.ProjectRoleEnum.STUDIO_ENGINEER.getValue())) {
|
||||||
|
if (relatedPersonnel.getEngineeringInterfacePerson() != null) {
|
||||||
|
String engineeringInterfacePerson = dutyPerson + "," + relatedPersonnel.getEngineeringInterfacePerson();
|
||||||
|
relatedPersonnel.setEngineeringInterfacePerson(engineeringInterfacePerson);
|
||||||
|
} else {
|
||||||
|
relatedPersonnel.setEngineeringInterfacePerson(dutyPerson);
|
||||||
|
}
|
||||||
|
} else if (roleCode1.equals(com.jero.modules.project.enums.ProjectRoleEnum.REGULATI_ENGINEER.getValue())) {
|
||||||
|
if (relatedPersonnel.getEngineerLawSet() != null) {
|
||||||
|
String engineerLawSet = dutyPerson + "," + relatedPersonnel.getEngineerLawSet();
|
||||||
|
relatedPersonnel.setEngineerLawSet(engineerLawSet);
|
||||||
|
} else {
|
||||||
|
relatedPersonnel.setEngineerLawSet(dutyPerson);
|
||||||
|
}
|
||||||
|
} else if (roleCode1.equals(com.jero.modules.project.enums.ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue())) {
|
||||||
|
if (relatedPersonnel.getEngineerAttSet() != null) {
|
||||||
|
String engineerAttSet = dutyPerson + "," + relatedPersonnel.getEngineerAttSet();
|
||||||
|
relatedPersonnel.setEngineerAttSet(engineerAttSet);
|
||||||
|
} else {
|
||||||
|
relatedPersonnel.setEngineerAttSet(dutyPerson);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.projectRelatedPersonnelService.updateBatchById(projectRelatedPersonnelList);
|
||||||
|
|
||||||
|
|
||||||
|
//翻译-中文
|
||||||
|
translateData(infoEOList);
|
||||||
|
translateData(dataList);
|
||||||
|
//翻译-英文
|
||||||
|
translateDataToEn(infoEOListCopy);
|
||||||
|
translateDataToEn(dataListCopy);
|
||||||
|
|
||||||
|
//比对不同字段
|
||||||
|
Map<String, String> infoDiff = ListDiff.compareObject(dataList.get(0), projectLawsInventoryEO);
|
||||||
|
Map<String, String> infoDiffEn = ListDiff.compareObject(dataListCopy.get(0), projectLawsInventoryEOCopy);
|
||||||
|
|
||||||
|
//设置更新log
|
||||||
|
setContentLog(infoDiff, contentLog, infoDiffEn, enContentLog, projectLawsInventoryEO.getProjectLibraryId());
|
||||||
|
|
||||||
|
|
||||||
|
//验证用户是否是该法规上级 项目库的studio, 如果是,则同步更新流程
|
||||||
|
int roleCode = projectLawsInventoryEOService.checkUserRole(projectLawsInventoryEO.getProjectLibraryId(), currentUser.getId(), "");
|
||||||
|
if (StringUtils.equals(String.valueOf(roleCode), ProjectRoleEnum.STUDIO_ENGINEER.getValue())) {
|
||||||
|
//更新流程信息
|
||||||
|
projectLawsInventoryEOService.updateFlowInfo(projectLawsInventoryEO);
|
||||||
|
}
|
||||||
|
|
||||||
|
//设置权限 先删后加
|
||||||
|
List<ProjectUserPermission> adds = new ArrayList<>();
|
||||||
|
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId())) {
|
||||||
|
setProjectLawsInventoryPermission(projectLawsInventoryEO.getRegulationOwnerId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_REGULATION.getValue());
|
||||||
|
}
|
||||||
|
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getHomologationEngineerId())) {
|
||||||
|
setProjectLawsInventoryPermission(projectLawsInventoryEO.getHomologationEngineerId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue());
|
||||||
|
}
|
||||||
|
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) {
|
||||||
|
setProjectLawsInventoryPermission(projectLawsInventoryEO.getEngineeringInterfacePerson(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_INTERFACE.getValue());
|
||||||
|
}
|
||||||
|
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())) {
|
||||||
|
setProjectLawsInventoryPermission(projectLawsInventoryEO.getDesignInitiatorId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue());
|
||||||
|
}
|
||||||
|
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())) {
|
||||||
|
setProjectLawsInventoryPermission(projectLawsInventoryEO.getDesignDutyId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue());
|
||||||
|
}
|
||||||
|
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoInitiatorId())) {
|
||||||
|
setProjectLawsInventoryPermission(projectLawsInventoryEO.getPrehomoInitiatorId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue());
|
||||||
|
}
|
||||||
|
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoDutyId())) {
|
||||||
|
setProjectLawsInventoryPermission(projectLawsInventoryEO.getPrehomoDutyId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue());
|
||||||
|
}
|
||||||
|
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyInitiatorId())) {
|
||||||
|
setProjectLawsInventoryPermission(projectLawsInventoryEO.getVerifyInitiatorId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue());
|
||||||
|
}
|
||||||
|
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyDutyId())) {
|
||||||
|
setProjectLawsInventoryPermission(projectLawsInventoryEO.getVerifyDutyId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue());
|
||||||
|
}
|
||||||
|
if (ObjectUtils.isNotEmpty(adds)) {
|
||||||
|
projectUserPermissionService.saveBatch(adds);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// throw new JeroBootException("该用户没有权限操作该数据!");
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送消息
|
* 发送消息
|
||||||
|
|||||||
+23
-7
@@ -4459,11 +4459,11 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
|||||||
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
||||||
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID," +
|
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID," +
|
||||||
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
||||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
|
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称,备注";
|
||||||
}else {
|
}else {
|
||||||
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID," +
|
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID," +
|
||||||
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," +
|
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," +
|
||||||
"Deliverable Template,*Deliverable Type,*Due Date,Report No,Product Model,Name Of Manufacturer";
|
"Deliverable Template,*Deliverable Type,*Due Date,Report No,Product Model,Name Of Manufacturer,Remark";
|
||||||
}
|
}
|
||||||
|
|
||||||
int pos = file.getOriginalFilename().lastIndexOf(".");
|
int pos = file.getOriginalFilename().lastIndexOf(".");
|
||||||
@@ -4579,7 +4579,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
|||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
||||||
headerSb.append(cell.getStringCellValue() + ",");
|
headerSb.append(cell.getStringCellValue() + ",");
|
||||||
if(j == 15){
|
if(j == 16){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if(i > 1){
|
} else if(i > 1){
|
||||||
@@ -4817,6 +4817,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
|||||||
|
|
||||||
// 认证类型
|
// 认证类型
|
||||||
String attestationTypeName = projectCertificationInventoryEO.getAttestationTypeName();
|
String attestationTypeName = projectCertificationInventoryEO.getAttestationTypeName();
|
||||||
|
// 备注
|
||||||
|
String remark = projectCertificationInventoryEO.getRemark();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -4989,6 +4991,18 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(StringUtils.isNotBlank(remark)){
|
||||||
|
if(remark.length() > 500){
|
||||||
|
String message = "";
|
||||||
|
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
|
||||||
|
message = errorMsg + "备注不能超过500个字符";
|
||||||
|
}else{
|
||||||
|
message = errorMsg + " The Remark cannot contain more than 200 characters";
|
||||||
|
}
|
||||||
|
msgList.add(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return msgList;
|
return msgList;
|
||||||
}
|
}
|
||||||
@@ -5659,6 +5673,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
|||||||
case "产品型号": return "productModel";
|
case "产品型号": return "productModel";
|
||||||
case "生产企业名称": return "productionEnterpriseName";
|
case "生产企业名称": return "productionEnterpriseName";
|
||||||
case "认证进度": return "certificationProgress";
|
case "认证进度": return "certificationProgress";
|
||||||
|
case "备注": return "remark";
|
||||||
|
|
||||||
case "*Category": return "category";
|
case "*Category": return "category";
|
||||||
case "*Inspection Items": return "inspectionItem";
|
case "*Inspection Items": return "inspectionItem";
|
||||||
@@ -5678,6 +5693,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
|||||||
case "Product Model": return "productModel";
|
case "Product Model": return "productModel";
|
||||||
case "Name Of Manufacturer": return "productionEnterpriseName";
|
case "Name Of Manufacturer": return "productionEnterpriseName";
|
||||||
case "Homologation Progress": return "certificationProgress";
|
case "Homologation Progress": return "certificationProgress";
|
||||||
|
case "Remark": return "remark";
|
||||||
|
|
||||||
default: return null;
|
default: return null;
|
||||||
//"Deliverable Type,Deliverable Template,initiator,Assignee,Due Date," +
|
//"Deliverable Type,Deliverable Template,initiator,Assignee,Due Date," +
|
||||||
@@ -5702,19 +5718,19 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
|||||||
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
||||||
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID," +
|
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID," +
|
||||||
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
||||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
|
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称,备注";
|
||||||
}else {
|
}else {
|
||||||
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID," +
|
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID," +
|
||||||
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," +
|
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," +
|
||||||
"Deliverable Template,*Deliverable Type,*Due Date,Report No,Product Model,Name Of Manufacturer";
|
"Deliverable Template,*Deliverable Type,*Due Date,Report No,Product Model,Name Of Manufacturer,Remark";
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> list = Arrays.asList(title.split(","));
|
List<String> list = Arrays.asList(title.split(","));
|
||||||
int index = 0;
|
int index = 0;
|
||||||
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
||||||
index = list.indexOf("生产企业名称") + 1;
|
index = list.indexOf("备注") + 1;
|
||||||
}else{
|
}else{
|
||||||
index = list.indexOf("Name Of Manufacturer") + 1;
|
index = list.indexOf("Remark") + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//创建临时文件夹
|
//创建临时文件夹
|
||||||
|
|||||||
+13
-13
@@ -543,19 +543,19 @@ public class ProjectTaskInventoryDetailEOServiceImpl extends ServiceImpl<Project
|
|||||||
if(CollectionUtils.isNotEmpty(sysUsers)){
|
if(CollectionUtils.isNotEmpty(sysUsers)){
|
||||||
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
try {
|
// try {
|
||||||
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
// FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
||||||
feishuMsgVo.setTitle(msgTitle);
|
// feishuMsgVo.setTitle(msgTitle);
|
||||||
feishuMsgVo.setCnContentUpper(cnContentUpper);
|
// feishuMsgVo.setCnContentUpper(cnContentUpper);
|
||||||
feishuMsgVo.setCnContentLower(cnContentLower);
|
// feishuMsgVo.setCnContentLower(cnContentLower);
|
||||||
feishuMsgVo.setEnContentUpper(enContentUpper);
|
// feishuMsgVo.setEnContentUpper(enContentUpper);
|
||||||
feishuMsgVo.setEnContentLower(enContentLower);
|
// feishuMsgVo.setEnContentLower(enContentLower);
|
||||||
feishuMsgVo.setUrl(hrefFeishu);
|
// feishuMsgVo.setUrl(hrefFeishu);
|
||||||
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
// feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
||||||
feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
//// feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
||||||
} catch (IOException e) {
|
// } catch (IOException e) {
|
||||||
log.error("飞书消息推送失败");
|
// log.error("飞书消息推送失败");
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+27
-27
@@ -800,22 +800,22 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
|
|||||||
if(CollectionUtils.isNotEmpty(sysUsers)){
|
if(CollectionUtils.isNotEmpty(sysUsers)){
|
||||||
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
try {
|
//
|
||||||
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
|
||||||
feishuMsgVo.setTitle(msgTitle);
|
|
||||||
feishuMsgVo.setCnContentUpper(cnContentUpper);
|
|
||||||
feishuMsgVo.setCnContentLower(cnContentLower);
|
|
||||||
feishuMsgVo.setEnContentUpper(enContentUpper);
|
|
||||||
feishuMsgVo.setEnContentLower(enContentLower);
|
|
||||||
feishuMsgVo.setUrl(hrefFeishu);
|
|
||||||
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
|
||||||
feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
|
||||||
} catch (IOException e) {
|
|
||||||
log.error("飞书消息推送失败");
|
|
||||||
}
|
|
||||||
//系统内部跳转链接
|
//系统内部跳转链接
|
||||||
//String href = "<a href='"
|
//String href = "<a href='"
|
||||||
// + JumpLinkEnum.INVENTORY_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
// + JumpLinkEnum.INVENTORtry {
|
||||||
|
//// FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
||||||
|
//// feishuMsgVo.setTitle(msgTitle);
|
||||||
|
//// feishuMsgVo.setCnContentUpper(cnContentUpper);
|
||||||
|
//// feishuMsgVo.setCnContentLower(cnContentLower);
|
||||||
|
//// feishuMsgVo.setEnContentUpper(enContentUpper);
|
||||||
|
//// feishuMsgVo.setEnContentLower(enContentLower);
|
||||||
|
//// feishuMsgVo.setUrl(hrefFeishu);
|
||||||
|
//// feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
||||||
|
////// feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
||||||
|
//// } catch (IOException e) {
|
||||||
|
//// log.error("飞书消息推送失败");
|
||||||
|
//// }Y_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
||||||
// + "&projectName=" + projectNameInfoEO.getProjectName() + "-"
|
// + "&projectName=" + projectNameInfoEO.getProjectName() + "-"
|
||||||
// + projectYearNameInfoEO.getYearName()
|
// + projectYearNameInfoEO.getYearName()
|
||||||
// + "&targetMarket=" + projectLibraryBase.getTargetMarket()
|
// + "&targetMarket=" + projectLibraryBase.getTargetMarket()
|
||||||
@@ -1510,19 +1510,19 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
|
|||||||
if(CollectionUtils.isNotEmpty(sysUsers)){
|
if(CollectionUtils.isNotEmpty(sysUsers)){
|
||||||
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
try {
|
// try {
|
||||||
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
// FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
||||||
feishuMsgVo.setTitle(msgTitle);
|
// feishuMsgVo.setTitle(msgTitle);
|
||||||
feishuMsgVo.setCnContentUpper(cnContentUpper);
|
// feishuMsgVo.setCnContentUpper(cnContentUpper);
|
||||||
feishuMsgVo.setCnContentLower(cnContentLower);
|
// feishuMsgVo.setCnContentLower(cnContentLower);
|
||||||
feishuMsgVo.setEnContentUpper(enContentUpper);
|
// feishuMsgVo.setEnContentUpper(enContentUpper);
|
||||||
feishuMsgVo.setEnContentLower(enContentLower);
|
// feishuMsgVo.setEnContentLower(enContentLower);
|
||||||
feishuMsgVo.setUrl(hrefFeishu);
|
// feishuMsgVo.setUrl(hrefFeishu);
|
||||||
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
// feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
||||||
feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
//// feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
||||||
} catch (IOException e) {
|
// } catch (IOException e) {
|
||||||
log.error("飞书消息推送失败");
|
// log.error("飞书消息推送失败");
|
||||||
}
|
// }
|
||||||
//系统内部跳转链接
|
//系统内部跳转链接
|
||||||
//String href = "<a href='"
|
//String href = "<a href='"
|
||||||
// + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
// + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
||||||
|
|||||||
+26
-26
@@ -290,19 +290,19 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl<Proje
|
|||||||
if(CollectionUtils.isNotEmpty(sysUsers)){
|
if(CollectionUtils.isNotEmpty(sysUsers)){
|
||||||
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
try {
|
// try {
|
||||||
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
// FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
||||||
feishuMsgVo.setTitle(msgTitle);
|
// feishuMsgVo.setTitle(msgTitle);
|
||||||
feishuMsgVo.setCnContentUpper(cnContentUpper);
|
// feishuMsgVo.setCnContentUpper(cnContentUpper);
|
||||||
feishuMsgVo.setCnContentLower(cnContentLower);
|
// feishuMsgVo.setCnContentLower(cnContentLower);
|
||||||
feishuMsgVo.setEnContentUpper(enContentUpper);
|
// feishuMsgVo.setEnContentUpper(enContentUpper);
|
||||||
feishuMsgVo.setEnContentLower(enContentLower);
|
// feishuMsgVo.setEnContentLower(enContentLower);
|
||||||
feishuMsgVo.setUrl(hrefFeishu);
|
// feishuMsgVo.setUrl(hrefFeishu);
|
||||||
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
// feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
||||||
feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
//// feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
||||||
} catch (IOException e) {
|
// } catch (IOException e) {
|
||||||
log.error("飞书消息推送失败");
|
// log.error("飞书消息推送失败");
|
||||||
}
|
// }
|
||||||
//系统内部跳转链接
|
//系统内部跳转链接
|
||||||
//String href = "<a href='"
|
//String href = "<a href='"
|
||||||
// + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getLink() + projectLibraryBaseInfo.getId() + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getType()
|
// + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getLink() + projectLibraryBaseInfo.getId() + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getType()
|
||||||
@@ -610,19 +610,19 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl<Proje
|
|||||||
if(CollectionUtils.isNotEmpty(sysUsers)){
|
if(CollectionUtils.isNotEmpty(sysUsers)){
|
||||||
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
try {
|
// try {
|
||||||
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
// FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
||||||
feishuMsgVo.setTitle(msgTitle);
|
// feishuMsgVo.setTitle(msgTitle);
|
||||||
feishuMsgVo.setCnContentUpper(cnContentUpper);
|
// feishuMsgVo.setCnContentUpper(cnContentUpper);
|
||||||
feishuMsgVo.setCnContentLower(cnContentLower);
|
// feishuMsgVo.setCnContentLower(cnContentLower);
|
||||||
feishuMsgVo.setEnContentUpper(enContentUpper);
|
// feishuMsgVo.setEnContentUpper(enContentUpper);
|
||||||
feishuMsgVo.setEnContentLower(enContentLower);
|
// feishuMsgVo.setEnContentLower(enContentLower);
|
||||||
feishuMsgVo.setUrl(hrefFeishu);
|
// feishuMsgVo.setUrl(hrefFeishu);
|
||||||
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
// feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
||||||
feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
//// feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
||||||
} catch (IOException e) {
|
// } catch (IOException e) {
|
||||||
log.error("飞书消息推送失败");
|
// log.error("飞书消息推送失败");
|
||||||
}
|
// }
|
||||||
//系统内部跳转链接
|
//系统内部跳转链接
|
||||||
//String href = "<a href='"
|
//String href = "<a href='"
|
||||||
// + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getLink() + projectLibraryBaseInfo.getId() + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getType()
|
// + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getLink() + projectLibraryBaseInfo.getId() + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getType()
|
||||||
|
|||||||
@@ -1988,4 +1988,33 @@ module.exports = {
|
|||||||
matchempty:'The match is empty',
|
matchempty:'The match is empty',
|
||||||
onlyDataProcessStatusDeleted:'Data can only be deleted if the process status is task ready, approved, or rejected by the responsible person',
|
onlyDataProcessStatusDeleted:'Data can only be deleted if the process status is task ready, approved, or rejected by the responsible person',
|
||||||
platformitemhasbeenassociated:'A platform item has been associated',
|
platformitemhasbeenassociated:'A platform item has been associated',
|
||||||
|
power:'power',
|
||||||
|
producer:'producer',
|
||||||
|
Nameplatelabel:'Nameplate label',
|
||||||
|
Batteryfilingrecord:'Battery filing record',
|
||||||
|
Modelinformation:'Model information',
|
||||||
|
Batterynationalcode:'Battery national code',
|
||||||
|
Recordnformation:'Record information',
|
||||||
|
Electriccellproductionenterprises:'Electric cell production enterprises',
|
||||||
|
Assemblymanufacturer:'Assembly manufacturer',
|
||||||
|
PartNumberCN:'Part Number (Domestic)',
|
||||||
|
PartNumberEU:'Part Number (Foreign)',
|
||||||
|
bitfilecode:'24-bit file code',
|
||||||
|
Vendorcode:'Vendor code',
|
||||||
|
Productclasscode:'Product class code',
|
||||||
|
Batterytypecode:'Battery type code',
|
||||||
|
Specificationcode:'Specification code',
|
||||||
|
Traceinformationcode:'Trace information code',
|
||||||
|
Productionyearmonthdateserialnumber:'Production year month date serial number',
|
||||||
|
dimension:'dimension(mm)',
|
||||||
|
Ratedcapacity:'Rated capacity(Ah)',
|
||||||
|
Nominalvoltage:'Nominal voltage(V)',
|
||||||
|
Ratedmass:'Rated mass(kg)',
|
||||||
|
Numbercontainedmodules:'Number of contained modules',
|
||||||
|
Moduleseriesparallelmode:'Module series parallel mode',
|
||||||
|
modulspecificationcodeused:'The module or monomer specification code used',
|
||||||
|
Coolingmode:'Cooling mode',
|
||||||
|
Filingcompletiontime:'Filing completion time',
|
||||||
|
Platformdevelopmentvalvepoint:'Platform development valve point',
|
||||||
|
Compliancemanagementvalvepoint:'Compliance management valve point',
|
||||||
}
|
}
|
||||||
@@ -1863,7 +1863,7 @@ module.exports = {
|
|||||||
NA: '不涉及',
|
NA: '不涉及',
|
||||||
reviewAndPass: '审查通过',
|
reviewAndPass: '审查通过',
|
||||||
reviewAndReturn: '审查退回',
|
reviewAndReturn: '审查退回',
|
||||||
electroniccontrollerparameter: '电子控制器参数',
|
electroniccontrollerparameter: '控制器参数',
|
||||||
marketRegulationListDetails: '市场法规清单详情',
|
marketRegulationListDetails: '市场法规清单详情',
|
||||||
marketRegulationList: '市场法规清单',
|
marketRegulationList: '市场法规清单',
|
||||||
onlyDataWithTheCurrentCanBeManipulated: '仅能操作责任人为当前用户的数据',
|
onlyDataWithTheCurrentCanBeManipulated: '仅能操作责任人为当前用户的数据',
|
||||||
@@ -3769,7 +3769,7 @@ module.exports = {
|
|||||||
NA: '不涉及',
|
NA: '不涉及',
|
||||||
reviewAndPass: '审查通过',
|
reviewAndPass: '审查通过',
|
||||||
reviewAndReturn: '审查退回',
|
reviewAndReturn: '审查退回',
|
||||||
electroniccontrollerparameter: '电子控制器参数',
|
electroniccontrollerparameter: '控制器参数',
|
||||||
marketRegulationListDetails: '市场法规清单详情',
|
marketRegulationListDetails: '市场法规清单详情',
|
||||||
marketRegulationList: '市场法规清单',
|
marketRegulationList: '市场法规清单',
|
||||||
onlyDataWithTheCurrentCanBeManipulated: '仅能操作责任人为当前用户的数据',
|
onlyDataWithTheCurrentCanBeManipulated: '仅能操作责任人为当前用户的数据',
|
||||||
@@ -3944,4 +3944,33 @@ module.exports = {
|
|||||||
Processdetails:'流程详情',
|
Processdetails:'流程详情',
|
||||||
matchempty:'匹配项为空',
|
matchempty:'匹配项为空',
|
||||||
platformitemhasbeenassociated:'已关联平台件项目',
|
platformitemhasbeenassociated:'已关联平台件项目',
|
||||||
|
power:'功率',
|
||||||
|
producer:'生产商',
|
||||||
|
Nameplatelabel:'铭牌标签',
|
||||||
|
Batteryfilingrecord:'电池备案记录',
|
||||||
|
Modelinformation:'型号信息',
|
||||||
|
Batterynationalcode:'电池国标码',
|
||||||
|
Recordnformation:'备案信息',
|
||||||
|
Electriccellproductionenterprises:'电芯生产企业',
|
||||||
|
Assemblymanufacturer:'总成生产企业',
|
||||||
|
PartNumberCN:'零件号(国内)',
|
||||||
|
PartNumberEU:'零件号(国外)',
|
||||||
|
bitfilecode:'24位备案码',
|
||||||
|
Vendorcode:'供应商代码',
|
||||||
|
Productclasscode:'产品类型代码',
|
||||||
|
Batterytypecode:'电池类型代码',
|
||||||
|
Specificationcode:'规格代码',
|
||||||
|
Traceinformationcode:'追溯信息代码',
|
||||||
|
Productionyearmonthdateserialnumber:'生产年月日序列号',
|
||||||
|
dimension:'尺寸(mm)',
|
||||||
|
Ratedcapacity:'额定容量(Ah)',
|
||||||
|
Nominalvoltage:'标称电压(V)',
|
||||||
|
Ratedmass:'额定质量(kg)',
|
||||||
|
Numbercontainedmodules:'包含模块个数',
|
||||||
|
Moduleseriesparallelmode:'模块串并联方式',
|
||||||
|
modulspecificationcodeused:'所用模块或单体规格代码',
|
||||||
|
Coolingmode:'冷却方式',
|
||||||
|
Filingcompletiontime:'备案完成时间',
|
||||||
|
Platformdevelopmentvalvepoint:'平台件开发阀点',
|
||||||
|
Compliancemanagementvalvepoint:'合规管理阀点',
|
||||||
}
|
}
|
||||||
+47
-2
@@ -321,7 +321,24 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text"
|
||||||
|
:title="$t('remarks')">{{$t('remarks')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel-text" :prop="'dataList.'+index+'.remark'"
|
||||||
|
:rules="[{max: 500,message: $t('remarks') + $t('cannotExceed') + 500 + $t('Characters'),trigger: 'blur'
|
||||||
|
}]">
|
||||||
|
<a-textarea
|
||||||
|
style="width: 100%"
|
||||||
|
:placeholder="$t('PleaseEnter')+$t('remarks')"
|
||||||
|
v-model="item.remark" :rows="4"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
<!-- <a-row :gutter="24">-->
|
<!-- <a-row :gutter="24">-->
|
||||||
<!-- <a-col :span="12">-->
|
<!-- <a-col :span="12">-->
|
||||||
<!-- <div class="box-title-text">-->
|
<!-- <div class="box-title-text">-->
|
||||||
@@ -638,6 +655,22 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text"
|
||||||
|
:title="$t('remarks')">{{$t('remarks')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel-text" :prop="'remark'">
|
||||||
|
<a-textarea
|
||||||
|
style="width: 100%"
|
||||||
|
:placeholder="$t('PleaseEnter')+$t('remarks')"
|
||||||
|
v-model="formInline.remark" :rows="4"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :span="12" v-if="formInline.taskConfirmEndTime">
|
<a-col :span="12" v-if="formInline.taskConfirmEndTime">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
@@ -770,7 +803,14 @@
|
|||||||
message: this.$t('configurationItem') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
|
message: this.$t('configurationItem') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
remark:[
|
||||||
|
{
|
||||||
|
max: 500,
|
||||||
|
message: this.$t('remarks') + this.$t('cannotExceed') + 500 + this.$t('Characters'),
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
},
|
},
|
||||||
disabled: false,
|
disabled: false,
|
||||||
flowdisabled: false,
|
flowdisabled: false,
|
||||||
@@ -1259,6 +1299,11 @@
|
|||||||
::v-deep .ant-form-item-with-help {
|
::v-deep .ant-form-item-with-help {
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
|
.itemModel-text {
|
||||||
|
width: calc(100% - 130px);
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
<style>
|
<style>
|
||||||
.ant-input-disabled {
|
.ant-input-disabled {
|
||||||
|
|||||||
@@ -891,6 +891,13 @@
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
scopedSlots: { customRender: 'CertificationProgress' }
|
scopedSlots: { customRender: 'CertificationProgress' }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('remarks'),
|
||||||
|
align: 'left',
|
||||||
|
dataIndex: 'remark',
|
||||||
|
width: 210,
|
||||||
|
ellipsis: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('operation'),
|
title: this.$t('operation'),
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
|||||||
@@ -23,15 +23,15 @@
|
|||||||
:triggerChange="false" :dictCode="'brand'"/>
|
:triggerChange="false" :dictCode="'brand'"/>
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="8">
|
<!-- <a-col :md="6" :sm="8">-->
|
||||||
<div class="box-title-text">
|
<!-- <div class="box-title-text">-->
|
||||||
<div class="title-text" :title="$t('configurationItem')">
|
<!-- <div class="title-text" :title="$t('configurationItem')">-->
|
||||||
<span>{{$t('configurationItem')}}</span>
|
<!-- <span>{{$t('configurationItem')}}</span>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('configurationItem')"
|
<!-- <a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('configurationItem')"-->
|
||||||
v-model="queryParam.ipdInfo"></a-input>
|
<!-- v-model="queryParam.ipdInfo"></a-input>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</a-col>
|
<!-- </a-col>-->
|
||||||
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
|
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
|
||||||
<a-col :md="6" :sm="24">
|
<a-col :md="6" :sm="24">
|
||||||
|
|
||||||
@@ -161,14 +161,14 @@
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
dataIndex: 'brandText'
|
dataIndex: 'brandText'
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: this.$t('configurationItem'),
|
// title: this.$t('configurationItem'),
|
||||||
align: 'left',
|
// align: 'left',
|
||||||
width: 180,
|
// width: 180,
|
||||||
sorter:true,
|
// sorter:true,
|
||||||
ellipsis: true,
|
// ellipsis: true,
|
||||||
dataIndex: 'ipdInfo'
|
// dataIndex: 'ipdInfo'
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: this.$t('explain'),
|
title: this.$t('explain'),
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
|||||||
+108
-23
@@ -15,42 +15,52 @@
|
|||||||
|
|
||||||
<div class="content-text">
|
<div class="content-text">
|
||||||
<div class="text-field">
|
<div class="text-field">
|
||||||
<span class="text-field-left" :title="$t('entryName')">{{$t('entryName')}}</span>
|
<span class="text-field-left" :title="$t('power')">{{$t('power')}}</span>
|
||||||
<span class="text-field-right" :title="queryForm.projectNameId"
|
<span class="text-field-right" :title="queryForm.power"
|
||||||
>{{queryForm.projectNameId}}</span>
|
>{{queryForm.power}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="text-field">
|
||||||
|
<span class="text-field-left" :title="$t('producer')">{{$t('producer')}}</span>
|
||||||
|
<span class="text-field-right" :title="queryForm.producer"
|
||||||
|
>{{queryForm.producer}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="text-field">
|
||||||
|
<span class="text-field-left" :title="$t('targetMarket')">{{$t('targetMarket')}}</span>
|
||||||
|
<span class="text-field-right"
|
||||||
|
:title="queryForm.targetMarket_dictText"
|
||||||
|
>{{queryForm.targetMarket_dictText}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="content-text">
|
||||||
<div class="text-field">
|
<div class="text-field">
|
||||||
<span class="text-field-left" :title="$t('brand')">{{$t('brand')}}</span>
|
<span class="text-field-left" :title="$t('brand')">{{$t('brand')}}</span>
|
||||||
<span class="text-field-right" :title="queryForm.brandText"
|
<span class="text-field-right" :title="queryForm.brandText"
|
||||||
>{{queryForm.brandText}}</span>
|
>{{queryForm.brandText}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-field">
|
<div class="text-field">
|
||||||
<span class="text-field-left" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
|
<span class="text-field-left" :title="$t('projectStatus')">{{$t('projectStatus')}}</span>
|
||||||
<span class="text-field-right text-field-right-color"
|
<span class="text-field-right"
|
||||||
:title="queryForm.ipdInfo"
|
:title="queryForm.projectStatus_dictText"
|
||||||
@click="urlClick(queryForm.ipdInfo)"
|
>{{queryForm.projectStatus_dictText}}</span>
|
||||||
>{{queryForm.ipdInfo}}</span>
|
</div>
|
||||||
|
<div class="text-field">
|
||||||
|
<span class="text-field-left" :title="$t('statisticalNodes')">{{$t('statisticalNodes')}}</span>
|
||||||
|
<span class="text-field-right"
|
||||||
|
:title="queryForm.dutyDepart"
|
||||||
|
>{{queryForm.dutyDepart}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content-text">
|
<div class="content-text">
|
||||||
<div class="text-field">
|
<div class="text-field">
|
||||||
<span class="text-field-left" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
|
<span class="text-field-left" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
|
||||||
<span class="text-field-right" :title="queryForm.createBy"
|
<span class="text-field-right" :title="queryForm.regulationOwnerIdName"
|
||||||
>{{queryForm.createBy}}</span>
|
>{{queryForm.regulationOwnerIdName}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-field">
|
<div class="text-field">
|
||||||
<span class="text-field-left" :title="$t('dehicleDevelopmentPlan')">{{$t('dehicleDevelopmentPlan')}}</span>
|
<span class="text-field-left" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
|
||||||
<span class="text-field-right text-field-right-color"
|
<span class="text-field-right"
|
||||||
:title="queryForm.vehicleDevelopmentPlan"
|
:title="queryForm.engineeringInterfacePersonName"
|
||||||
@click="urlClick(queryForm.vehicleDevelopmentPlan)"
|
>{{queryForm.engineeringInterfacePersonName}}</span>
|
||||||
>{{queryForm.vehicleDevelopmentPlan}}</span>
|
|
||||||
</div>
|
|
||||||
<div class="text-field">
|
|
||||||
<span class="text-field-left" :title="$t('certificationProgram')">{{$t('certificationProgram')}}</span>
|
|
||||||
<span class="text-field-right text-field-right-color"
|
|
||||||
:title="queryForm.attestationPlan"
|
|
||||||
@click="urlClick(queryForm.attestationPlan)"
|
|
||||||
>{{queryForm.attestationPlan}}</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content-text">
|
<div class="content-text">
|
||||||
@@ -60,6 +70,32 @@
|
|||||||
>{{queryForm.explanation}}</span>
|
>{{queryForm.explanation}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="content-text">
|
||||||
|
<div class="text-field">
|
||||||
|
<span class="text-field-left" :title="$t('Nameplatelabel')">{{$t('Nameplatelabel')}}</span>
|
||||||
|
<div>
|
||||||
|
<!-- brandLabel-->
|
||||||
|
<a-upload
|
||||||
|
:action="uploadAction+'?cut='+cut"
|
||||||
|
list-type="picture-card"
|
||||||
|
:file-list="fileList"
|
||||||
|
:disabled='true'
|
||||||
|
@preview="handlePreview"
|
||||||
|
@change="handleChange"
|
||||||
|
>
|
||||||
|
<!-- <div v-if="fileList.length">-->
|
||||||
|
<!-- <a-icon type="plus" />-->
|
||||||
|
<!-- <div class="ant-upload-text">-->
|
||||||
|
<!-- <!– Upload–>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
</a-upload>
|
||||||
|
<a-modal :visible="previewVisible" :footer="null" @cancel="handleCancelimg">
|
||||||
|
<img alt="example" style="width: 100%" :src="previewImage" />
|
||||||
|
</a-modal>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="box-text" style="margin-top: 10px;margin-bottom: 10px">
|
<div class="box-text" style="margin-top: 10px;margin-bottom: 10px">
|
||||||
<div class="header-text">
|
<div class="header-text">
|
||||||
{{$t('complianceCertificationProgram')}}
|
{{$t('complianceCertificationProgram')}}
|
||||||
@@ -136,12 +172,31 @@
|
|||||||
},
|
},
|
||||||
selectedRowKeys: [],
|
selectedRowKeys: [],
|
||||||
idList: [],
|
idList: [],
|
||||||
|
previewVisible: false,
|
||||||
|
previewImage: '',
|
||||||
|
fileList: [],
|
||||||
|
projectNameList: [],
|
||||||
|
firstLevelDutyTerritoryList:[],
|
||||||
|
title: '',
|
||||||
|
uploadAction: window._CONFIG['domianURL'] + '/sys/common/upload',
|
||||||
|
state: undefined,
|
||||||
|
myuploadAction: window._CONFIG['domianURL'] + this.thisFileUploadUrl,
|
||||||
|
upDataList: [],
|
||||||
|
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||||
|
downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download',
|
||||||
regulatoryCertificationTaskPlanList: []
|
regulatoryCertificationTaskPlanList: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getForm()
|
this.getForm()
|
||||||
this.administrators = false
|
this.administrators = false
|
||||||
|
let long = localStorage.getItem('language')
|
||||||
|
this.cut = ''
|
||||||
|
if (long && long == 'zh-cn') {
|
||||||
|
this.cut = 'cn'
|
||||||
|
} else if (long && long == 'en-us') {
|
||||||
|
this.cut = 'en'
|
||||||
|
}
|
||||||
this.activeKey = this.$t('regulatoryComplianceManagement')
|
this.activeKey = this.$t('regulatoryComplianceManagement')
|
||||||
if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) {
|
if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) {
|
||||||
this.userInfo().userRoleList.forEach(res => {
|
this.userInfo().userRoleList.forEach(res => {
|
||||||
@@ -163,6 +218,23 @@
|
|||||||
} else {
|
} else {
|
||||||
this.queryForm.brandText = this.queryForm.brandText
|
this.queryForm.brandText = this.queryForm.brandText
|
||||||
}
|
}
|
||||||
|
let file = []
|
||||||
|
getAction('sys/common/getFileInfos', { id: this.queryForm.brandLabel }).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
console.log(res.result)
|
||||||
|
res.result.forEach((item =>{
|
||||||
|
file.push({
|
||||||
|
name : item.fileName,
|
||||||
|
uid : item.id,
|
||||||
|
url : item.url
|
||||||
|
})
|
||||||
|
}))
|
||||||
|
console.log(file)
|
||||||
|
this.fileList = file
|
||||||
|
} else {
|
||||||
|
// this.$refs.uploadFile.perentHandleFunc()
|
||||||
|
}
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
this.queryForm = {}
|
this.queryForm = {}
|
||||||
}
|
}
|
||||||
@@ -201,7 +273,20 @@
|
|||||||
downloadFile('/platform/projectLibraryBase/exportProjectProgressStatisticsXls',
|
downloadFile('/platform/projectLibraryBase/exportProjectProgressStatisticsXls',
|
||||||
this.queryForm.projectNameId+'-'+this.queryForm.projectVersion+'-'+this.$t('projectProgressStatistics') + '.xls', query)
|
this.queryForm.projectNameId+'-'+this.queryForm.projectVersion+'-'+this.$t('projectProgressStatistics') + '.xls', query)
|
||||||
},
|
},
|
||||||
|
handleCancelimg() {
|
||||||
|
this.previewVisible = false;
|
||||||
|
},
|
||||||
|
async handlePreview(file) {
|
||||||
|
if (!file.url && !file.preview) {
|
||||||
|
file.preview = await getBase64(file.originFileObj);
|
||||||
|
}
|
||||||
|
this.previewImage = file.url || file.preview;
|
||||||
|
this.previewVisible = true;
|
||||||
|
},
|
||||||
|
handleChange({ fileList }) {
|
||||||
|
this.fileList = fileList;
|
||||||
|
console.log(this.fileList)
|
||||||
|
},
|
||||||
versionStatisticsClick() {
|
versionStatisticsClick() {
|
||||||
this.$refs.versionStatisticsRef.addModel(JSON.parse(JSON.stringify(this.selectedRowKeys)))
|
this.$refs.versionStatisticsRef.addModel(JSON.parse(JSON.stringify(this.selectedRowKeys)))
|
||||||
},
|
},
|
||||||
|
|||||||
+594
-171
@@ -11,16 +11,49 @@
|
|||||||
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
||||||
<a-spin :spinning="confirmLoading">
|
<a-spin :spinning="confirmLoading">
|
||||||
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||||
|
<!-- 项目基本信息-->
|
||||||
|
<div class="header-text">
|
||||||
|
{{$t('basicInformationOfParameters')}}
|
||||||
|
</div>
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text">
|
<div class="title-text">
|
||||||
<span class="Required">*</span>
|
<span class="Required">*</span>
|
||||||
<span class="title-text-text" :title="$t('entryName')">{{$t('entryName')}}</span>
|
<span class="title-text-text" :title="$t('power')">{{$t('power')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" prop="projectNameId">
|
<a-form-model-item class="itemModel" prop="power">
|
||||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('entryName')"
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('power')"
|
||||||
v-model="formInline.projectNameId"></a-input>
|
v-model="formInline.power"></a-input>
|
||||||
|
</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('producer')">{{$t('producer')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="producer">
|
||||||
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('producer')"
|
||||||
|
v-model="formInline.producer"></a-input>
|
||||||
|
</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('targetMarket')">{{$t('targetMarket')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel-multi" prop="targetMarket">
|
||||||
|
<j-multi-select-tag class="box-input" v-model="formInline.targetMarket"
|
||||||
|
:disabled="disabled"
|
||||||
|
:placeholder="$t('PleaseSelect')+$t('targetMarket')"
|
||||||
|
:type="'select'"
|
||||||
|
:triggerChange="false" :dictCode="'region'"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -44,26 +77,41 @@
|
|||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text">
|
<div class="title-text">
|
||||||
<!-- <span class="Required">*</span>-->
|
<span class="Required">*</span>
|
||||||
<span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
|
<span class="title-text-text" :title="$t('projectStatus')">{{$t('projectStatus')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" prop="ipdInfo">
|
<a-form-model-item class="itemModel-multi" prop="projectStatus">
|
||||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('configurationItem')"
|
<j-multi-select-tag class="box-input" v-model="formInline.projectStatus"
|
||||||
v-model="formInline.ipdInfo"></a-input>
|
:disabled="disabled"
|
||||||
|
:placeholder="$t('PleaseSelect')+$t('projectStatus')"
|
||||||
|
:type="'select'"
|
||||||
|
:triggerChange="false" :dictCode="'project_status'"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text">
|
<div class="title-text">
|
||||||
<span class="title-text-text" :title="$t('certificationProgram')">{{$t('certificationProgram')}}</span>
|
<span class="Required">*</span>
|
||||||
|
<span class="title-text-text" :title="$t('statisticalNodes')">{{$t('statisticalNodes')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" prop="attestationPlan">
|
<a-form-model-item class="itemModel" prop="dutyDepart">
|
||||||
<a-input class="box-input"
|
<a-select :placeholder="$t('PleaseSelect')+$t('statisticalNodes')"
|
||||||
:disabled="disabled"
|
allowClear
|
||||||
:maxLength="200"
|
show-search
|
||||||
v-model="formInline.attestationPlan"
|
mode="multiple"
|
||||||
:placeholder="$t('PleaseEnter')+$t('certificationProgram')"/>
|
optionFilterProp="label"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
|
v-model="formInline.dutyDepart">
|
||||||
|
<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>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -72,19 +120,68 @@
|
|||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text">
|
<div class="title-text">
|
||||||
<span class="title-text-text"
|
<span class="Required">*</span>
|
||||||
:title="$t('dehicleDevelopmentPlan')">{{$t('dehicleDevelopmentPlan')}}</span>
|
<span class="title-text-text" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" :prop="'vehicleDevelopmentPlan'">
|
<a-form-model-item class="itemModel" :prop="'regulationOwnerIdName'">
|
||||||
<a-input class="box-input"
|
<PersonnelSelection :query="{db_field_name:'regulationOwnerId',db_field_txt:$t('regulatoryEngineer')}"
|
||||||
:disabled="disabled"
|
:isSingleChoice="true"
|
||||||
:maxLength="200"
|
:personneQuery="formInline"
|
||||||
v-model="formInline.vehicleDevelopmentPlan"
|
@change="PersonnelSelectionChange"
|
||||||
:placeholder="$t('PleaseEnter')+$t('dehicleDevelopmentPlan')"/>
|
v-model="formInline.regulationOwnerIdName"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="Required">*</span>
|
||||||
|
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="engineeringInterfacePersonName">
|
||||||
|
<PersonnelSelection :query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('regulatoryEngineer')}"
|
||||||
|
:isSingleChoice="true"
|
||||||
|
:personneQuery="formInline"
|
||||||
|
@change="PersonnelSelectionChange"
|
||||||
|
v-model="formInline.engineeringInterfacePersonName"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text" :title="$t('Nameplatelabel')">{{$t('Nameplatelabel')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModelimg" prop="explanation">
|
||||||
|
<div>
|
||||||
|
<!-- brandLabel-->
|
||||||
|
<a-upload
|
||||||
|
:action="uploadAction+'?state='+state+'&cut='+cut"
|
||||||
|
list-type="picture-card"
|
||||||
|
:file-list="fileList"
|
||||||
|
@preview="handlePreview"
|
||||||
|
@change="handleChange"
|
||||||
|
:headers="headers"
|
||||||
|
>
|
||||||
|
<div v-if="fileList.length < 20">
|
||||||
|
<a-icon type="plus" />
|
||||||
|
<div class="ant-upload-text">
|
||||||
|
<!-- Upload-->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-upload>
|
||||||
|
<a-modal :visible="previewVisible" :footer="null" @cancel="handleCancelimg">
|
||||||
|
<img alt="example" style="width: 100%" :src="previewImage" />
|
||||||
|
</a-modal>
|
||||||
|
</div>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text">
|
<div class="title-text">
|
||||||
<span class="title-text-text" :title="$t('explain')">{{$t('explain')}}</span>
|
<span class="title-text-text" :title="$t('explain')">{{$t('explain')}}</span>
|
||||||
@@ -98,146 +195,301 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<!-- <a-row :gutter="24">-->
|
<!-- 电池备案记录-->
|
||||||
<!-- <a-col :span="12">-->
|
<div class="header-text">
|
||||||
<!-- <div class="box-title-text">-->
|
{{$t('Batteryfilingrecord')}}
|
||||||
<!-- <div class="title-text">-->
|
</div>
|
||||||
<!-- <span class="Required">*</span>-->
|
<!-- 型号信息-->
|
||||||
<!-- <span class="title-text-text" :title="$t('projectStatus')">{{$t('projectStatus')}}</span>-->
|
<div class='header-title'>
|
||||||
<!-- </div>-->
|
<span class='header-title-text'>{{$t('Modelinformation')}}</span>
|
||||||
<!-- <a-form-model-item class="itemModel" prop="projectStatus">-->
|
</div>
|
||||||
<!-- <j-dict-select-tag class="box-input" v-model="formInline.projectStatus"-->
|
<a-row :gutter="24">
|
||||||
<!-- :disabled="disabled"-->
|
<a-col :span="12">
|
||||||
<!-- @input="handleInput('projectStatus')"-->
|
<div class="box-title-text">
|
||||||
<!-- :placeholder="$t('PleaseSelect')+$t('projectStatus')"-->
|
<div class="title-text">
|
||||||
<!-- :type="'select'"-->
|
<span class="title-text-text" :title="$t('productModel')">{{$t('productModel')}}</span>
|
||||||
<!-- :triggerChange="false" :dictCode="'project_status'"/>-->
|
</div>
|
||||||
<!-- </a-form-model-item>-->
|
<a-form-model-item class="itemModel" prop="productModel">
|
||||||
<!-- </div>-->
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('productModel')"
|
||||||
<!-- </a-col>-->
|
v-model="formInline.productModel"></a-input>
|
||||||
<!-- <a-col :span="12">-->
|
</a-form-model-item>
|
||||||
<!-- <div class="box-title-text">-->
|
</div>
|
||||||
<!-- <div class="title-text">-->
|
</a-col>
|
||||||
<!-- <span class="title-text-text"-->
|
<a-col :span="12">
|
||||||
<!-- :title="$t('brand')">{{$t('brand')}}</span>-->
|
<div class="box-title-text">
|
||||||
<!-- </div>-->
|
<div class="title-text">
|
||||||
<!-- <a-form-model-item class="itemModel" :prop="'brand'">-->
|
<span class="title-text-text" :title="$t('Electriccellproductionenterprises')">{{$t('Electriccellproductionenterprises')}}</span>
|
||||||
<!-- <j-dict-select-tag v-model="formInline.brand"-->
|
</div>
|
||||||
<!-- :placeholder="$t('PleaseSelect')+$t('brand')"-->
|
<a-form-model-item class="itemModel" prop="Electriccellproductionenterprises">
|
||||||
<!-- :type="'select'"-->
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Electriccellproductionenterprises')"
|
||||||
<!-- :triggerChange="false" :dictCode="'brand'"/>-->
|
v-model="formInline.cellEnterprise"></a-input>
|
||||||
<!-- </a-form-model-item>-->
|
</a-form-model-item>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- </a-col>-->
|
</a-col>
|
||||||
<!-- </a-row>-->
|
</a-row>
|
||||||
<!-- <a-row :gutter="24">-->
|
<a-row :gutter="24">
|
||||||
<!-- <a-col :span="12">-->
|
<a-col :span="12">
|
||||||
<!-- <div class="box-title-text">-->
|
<div class="box-title-text">
|
||||||
<!-- <div class="title-text">-->
|
<div class="title-text">
|
||||||
<!-- <span class="Required">*</span>-->
|
<span class="title-text-text" :title="$t('Assemblymanufacturer')">{{$t('Assemblymanufacturer')}}</span>
|
||||||
<!-- <span class="title-text-text" :title="$t('StudioEngineer')">{{$t('StudioEngineer')}}</span>-->
|
</div>
|
||||||
<!-- </div>-->
|
<a-form-model-item class="itemModel-multi" prop="Assemblymanufacturer">
|
||||||
<!-- <a-form-model-item class="itemModel-multi" :prop="'studioEngineerName'">-->
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Assemblymanufacturer')"
|
||||||
<!-- <PersonnelSelection :query="{db_field_name:'studioEngineer',db_field_txt:$t('StudioEngineer')}"-->
|
v-model="formInline.assemblyEnterprise"></a-input>
|
||||||
<!-- :isSingleChoice="true"-->
|
</a-form-model-item>
|
||||||
<!-- :personneQuery="formInline"-->
|
</div>
|
||||||
<!-- v-if="visible"-->
|
</a-col>
|
||||||
<!-- @change="PersonnelSelectionChange"-->
|
<a-col :span="12">
|
||||||
<!-- :disabled="disabled"-->
|
<div class="box-title-text">
|
||||||
<!-- v-model="formInline.studioEngineerName"/>-->
|
<div class="title-text">
|
||||||
<!-- </a-form-model-item>-->
|
<span class="title-text-text" :title="$t('PartNumberCN')">{{$t('PartNumberCN')}}</span>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- </a-col>-->
|
<a-form-model-item class="itemModel" prop="PartNumberCN">
|
||||||
<!-- <a-col :span="12">-->
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('PartNumberCN')"
|
||||||
<!-- <div class="box-title-text">-->
|
v-model="formInline.partNumberCn"></a-input>
|
||||||
<!-- <div class="title-text">-->
|
</a-form-model-item>
|
||||||
<!-- <span class="title-text-text" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>-->
|
</div>
|
||||||
<!-- </div>-->
|
</a-col>
|
||||||
<!-- <a-form-model-item class="itemModel-multi" :prop="'certificationEngineerName'">-->
|
</a-row>
|
||||||
<!-- <PersonnelSelection-->
|
<a-row :gutter="24">
|
||||||
<!-- :query="{db_field_name:'certificationEngineer',db_field_txt:$t('certifiedEngineer')}"-->
|
<a-col :span="12">
|
||||||
<!-- :personneQuery="formInline"-->
|
<div class="box-title-text">
|
||||||
<!-- v-if="visible"-->
|
<div class="title-text">
|
||||||
<!-- @change="PersonnelSelectionChange"-->
|
<span class="title-text-text" :title="$t('PartNumberEU')">{{$t('PartNumberEU')}}</span>
|
||||||
<!-- :disabled="disabled"-->
|
</div>
|
||||||
<!-- v-model="formInline.certificationEngineerName"/>-->
|
<a-form-model-item class="itemModel-multi" prop="PartNumberEU">
|
||||||
<!-- </a-form-model-item>-->
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('PartNumberEU')"
|
||||||
<!-- </div>-->
|
v-model="formInline.partNumberEn"></a-input>
|
||||||
<!-- </a-col>-->
|
</a-form-model-item>
|
||||||
<!-- </a-row>-->
|
</div>
|
||||||
<!-- <a-row :gutter="24">-->
|
</a-col>
|
||||||
<!-- <a-col :span="12">-->
|
</a-row>
|
||||||
<!-- <div class="box-title-text">-->
|
<!-- 电池国标码-->
|
||||||
<!-- <div class="title-text">-->
|
<div class='header-title'>
|
||||||
<!-- <span class="title-text-text" :title="$t('DigitalPlatform')">{{$t('DigitalPlatform')}}</span>-->
|
<span class='header-title-text'>{{$t('Batterynationalcode')}}</span>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- <a-form-model-item class="itemModel" :prop="'digitalPlatform'">-->
|
<a-row :gutter="24">
|
||||||
<!-- <a-input class="box-input"-->
|
<a-col :span="12">
|
||||||
<!-- :disabled="disabled"-->
|
<div class="box-title-text">
|
||||||
<!-- v-model="formInline.digitalPlatform"-->
|
<div class="title-text">
|
||||||
<!-- :placeholder="$t('PleaseEnter')+$t('DigitalPlatform')"/>-->
|
<span class="title-text-text" :title="$t('bitfilecode')">{{$t('bitfilecode')}}</span>
|
||||||
<!-- </a-form-model-item>-->
|
</div>
|
||||||
<!-- </div>-->
|
<a-form-model-item class="itemModel" prop="bitfilecode">
|
||||||
<!-- </a-col>-->
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('bitfilecode')"
|
||||||
<!-- <a-col :span="12">-->
|
v-model="formInline.filingCode"></a-input>
|
||||||
<!-- <div class="box-title-text">-->
|
</a-form-model-item>
|
||||||
<!-- <div class="title-text">-->
|
</div>
|
||||||
<!-- <span class="title-text-text" :title="$t('ModelPlatform')">{{$t('ModelPlatform')}}</span>-->
|
</a-col>
|
||||||
<!-- </div>-->
|
<a-col :span="12">
|
||||||
<!-- <a-form-model-item class="itemModel" prop="vehiclePlatform">-->
|
<div class="box-title-text">
|
||||||
<!-- <a-input class="box-input"-->
|
<div class="title-text">
|
||||||
<!-- :disabled="disabled"-->
|
<span class="title-text-text" :title="$t('Vendorcode') + '(1~3)'">{{$t('Vendorcode') + '(1~3)'}}</span>
|
||||||
<!-- v-model="formInline.vehiclePlatform"-->
|
</div>
|
||||||
<!-- :placeholder="$t('PleaseEnter')+$t('ModelPlatform')"/>-->
|
<a-form-model-item class="itemModel" prop="endorcode">
|
||||||
<!-- </a-form-model-item>-->
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Vendorcode') + '(1~3)'"
|
||||||
<!-- </div>-->
|
v-model="formInline.supplierCode"></a-input>
|
||||||
<!-- </a-col>-->
|
</a-form-model-item>
|
||||||
<!-- </a-row>-->
|
</div>
|
||||||
<!-- <a-row :gutter="24">-->
|
</a-col>
|
||||||
<!-- <a-col :span="12">-->
|
</a-row>
|
||||||
<!-- <div class="box-title-text">-->
|
<a-row :gutter="24">
|
||||||
<!-- <div class="title-text">-->
|
<a-col :span="12">
|
||||||
<!-- <span class="title-text-text" :title="$t('certificationProgram')">{{$t('certificationProgram')}}</span>-->
|
<div class="box-title-text">
|
||||||
<!-- </div>-->
|
<div class="title-text">
|
||||||
<!-- <a-form-model-item class="itemModel" prop="attestationPlan">-->
|
<span class="title-text-text" :title="$t('Productclasscode') + '(4)'">{{$t('Productclasscode') + '(4)'}}</span>
|
||||||
<!-- <a-input class="box-input"-->
|
</div>
|
||||||
<!-- :disabled="disabled"-->
|
<a-form-model-item class="itemModel" prop="Productclasscode">
|
||||||
<!-- v-model="formInline.attestationPlan"-->
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Productclasscode') + '(4)'"
|
||||||
<!-- :placeholder="$t('PleaseEnter')+$t('certificationProgram')"/>-->
|
v-model="formInline.productTypeCode"></a-input>
|
||||||
<!-- </a-form-model-item>-->
|
</a-form-model-item>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- </a-col>-->
|
</a-col>
|
||||||
<!-- <a-col :span="12">-->
|
<a-col :span="12">
|
||||||
<!-- <div class="box-title-text">-->
|
<div class="box-title-text">
|
||||||
<!-- <div class="title-text">-->
|
<div class="title-text">
|
||||||
<!-- <span class="title-text-text"-->
|
<span class="title-text-text" :title="$t('Batterytypecode') + '(5)'">{{$t('Batterytypecode') + '(5)'}}</span>
|
||||||
<!-- :title="$t('configurationInformation')">{{$t('configurationInformation')}}</span>-->
|
</div>
|
||||||
<!-- </div>-->
|
<a-form-model-item class="itemModel" prop="Batterytypecode">
|
||||||
<!-- <a-form-model-item class="itemModel" prop="ipdInfo">-->
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Batterytypecode') + '(5)'"
|
||||||
<!-- <a-input class="box-input"-->
|
v-model="formInline.batteryTypeCode"></a-input>
|
||||||
<!-- :disabled="disabled"-->
|
</a-form-model-item>
|
||||||
<!-- v-model="formInline.ipdInfo"-->
|
</div>
|
||||||
<!-- :placeholder="$t('PleaseEnter')+$t('configurationInformation')"/>-->
|
</a-col>
|
||||||
<!-- </a-form-model-item>-->
|
</a-row>
|
||||||
<!-- </div>-->
|
<a-row :gutter="24">
|
||||||
<!-- <!– ^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$-->
|
<a-col :span="12">
|
||||||
<!-- –>-->
|
<div class="box-title-text">
|
||||||
<!-- </a-col>-->
|
<div class="title-text">
|
||||||
<!-- </a-row>-->
|
<span class="title-text-text" :title="$t('Specificationcode') + '(6~7)'">{{$t('Specificationcode') + '(6~7)'}}</span>
|
||||||
<!-- <a-row :gutter="24">-->
|
</div>
|
||||||
<!-- <a-col :span="24">-->
|
<a-form-model-item class="itemModel-multi" prop="Specificationcode">
|
||||||
<!-- <div class="box-title-text">-->
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Specificationcode') + '(6~7)'"
|
||||||
<!-- <div class="title-text">-->
|
v-model="formInline.specificationCode"></a-input>
|
||||||
<!-- <span class="title-text-text" :title="$t('explain')">{{$t('explain')}}</span>-->
|
</a-form-model-item>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- <a-form-model-item class="itemModel" prop="explanation">-->
|
</a-col>
|
||||||
<!-- <a-textarea :placeholder="$t('pleaseEnter')+$t('explain')"-->
|
<a-col :span="12">
|
||||||
<!-- v-model="formInline.explanation"-->
|
<div class="box-title-text">
|
||||||
<!-- :rows="4"/>-->
|
<div class="title-text">
|
||||||
<!-- </a-form-model-item>-->
|
<span class="title-text-text" :title="$t('Traceinformationcode') + '(8~14)'">{{$t('Traceinformationcode') + '(8~14)'}}</span>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- </a-col>-->
|
<a-form-model-item class="itemModel-multi" prop="Traceinformationcode">
|
||||||
<!-- </a-row>-->
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Traceinformationcode') + '(8~14)'"
|
||||||
|
v-model="formInline.traceabilityCode"></a-input>
|
||||||
|
</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="title-text-text" :title="$t('Productionyearmonthdateserialnumber') + '(15~20)'">{{$t('Productionyearmonthdateserialnumber') + '(15~20)'}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel-multi" prop="Productionyearmonthdateserialnumber">
|
||||||
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Productionyearmonthdateserialnumber') + '(15~20)'"
|
||||||
|
v-model="formInline.ymdNumber"></a-input>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<!-- 备案信息-->
|
||||||
|
<div class='header-title'>
|
||||||
|
<span class='header-title-text'>{{$t('Recordnformation')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="12">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text" :title="$t('dimension')">{{$t('dimension')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="dimension">
|
||||||
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('dimension')"
|
||||||
|
v-model="formInline.size"></a-input>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text" :title="$t('Ratedcapacity')">{{$t('Ratedcapacity')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="Ratedcapacity">
|
||||||
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Ratedcapacity')"
|
||||||
|
v-model="formInline.ratedCapacity"></a-input>
|
||||||
|
</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="title-text-text" :title="$t('Nominalvoltage')">{{$t('Nominalvoltage')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="Nominalvoltage">
|
||||||
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Nominalvoltage')"
|
||||||
|
v-model="formInline.nominalVoltage"></a-input>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text" :title="$t('Ratedmass')">{{$t('Ratedmass')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="Ratedmass">
|
||||||
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Ratedmass')"
|
||||||
|
v-model="formInline.ratedMass"></a-input>
|
||||||
|
</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="title-text-text" :title="$t('Numbercontainedmodules')">{{$t('Numbercontainedmodules')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="Numbercontainedmodules">
|
||||||
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Numbercontainedmodules')"
|
||||||
|
v-model="formInline.moduleNumber"></a-input>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text" :title="$t('Moduleseriesparallelmode')">{{$t('Moduleseriesparallelmode')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="Moduleseriesparallelmode">
|
||||||
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Moduleseriesparallelmode')"
|
||||||
|
v-model="formInline.connectionType"></a-input>
|
||||||
|
</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="title-text-text" :title="$t('modulspecificationcodeused')">{{$t('modulspecificationcodeused')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="modulspecificationcodeused">
|
||||||
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('modulspecificationcodeused')"
|
||||||
|
v-model="formInline.moduleSpecificationCode"></a-input>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text" :title="$t('Coolingmode')">{{$t('Coolingmode')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="dimension">
|
||||||
|
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Coolingmode')"
|
||||||
|
v-model="formInline.coolingMethod"></a-input>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<!-- 备注-->
|
||||||
|
<div class='header-title'>
|
||||||
|
<span class='header-title-text'>{{$t('remarks')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text" :title="$t('Filingcompletiontime')">{{$t('Filingcompletiontime')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="designDueDate">
|
||||||
|
<a-date-picker class="box-input"
|
||||||
|
:placeholder="$t('PleaseSelect')+$t('Filingcompletiontime')"
|
||||||
|
@change="dateChange({db_field_name:'filingCompletionTime'})"
|
||||||
|
format="YYYY-MM-DD"
|
||||||
|
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||||
|
v-model="formInline.filingCompletionTime"
|
||||||
|
style="width: 100%"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text" :title="$t('remarks')">{{$t('remarks')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="remarks">
|
||||||
|
<a-textarea
|
||||||
|
:placeholder="$t('remarks')"
|
||||||
|
:maxLength="500"
|
||||||
|
v-model="formInline.remark" :rows="2"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
</a-form-model>
|
</a-form-model>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
<div class="drawer-bootom-button">
|
<div class="drawer-bootom-button">
|
||||||
@@ -249,8 +501,20 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import PersonnelSelection from '@/components/PersonnelSelection/index'
|
import PersonnelSelection from '@/components/PersonnelSelection/index'
|
||||||
|
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||||
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
|
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
|
import moment from 'moment'
|
||||||
|
import Vue from 'vue'
|
||||||
|
|
||||||
|
function getBase64(file) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const reader = new FileReader()
|
||||||
|
reader.readAsDataURL(file)
|
||||||
|
reader.onload = () => resolve(reader.result)
|
||||||
|
reader.onerror = (error) => reject(error)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'addModel',
|
name: 'addModel',
|
||||||
@@ -324,6 +588,30 @@
|
|||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
power:[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('power') + this.$t('cannotEmpty'),
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
max: 200,
|
||||||
|
message: this.$t('DigitalPlatform') + this.$t('cannotExceed') + 200 + this.$t('Characters'),
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
producer:[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('producer') + this.$t('cannotEmpty'),
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
max: 200,
|
||||||
|
message: this.$t('DigitalPlatform') + this.$t('cannotExceed') + 200 + this.$t('Characters'),
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
digitalPlatform: [
|
digitalPlatform: [
|
||||||
{
|
{
|
||||||
max: 200,
|
max: 200,
|
||||||
@@ -345,6 +633,13 @@
|
|||||||
trigger: 'change'
|
trigger: 'change'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
targetMarket: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('targetMarket') + this.$t('cannotEmpty'),
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
],
|
||||||
brand: [
|
brand: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
@@ -371,24 +666,97 @@
|
|||||||
trigger: 'change'
|
trigger: 'change'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
certificationEngineerName: [
|
dutyDepart: [
|
||||||
{
|
{
|
||||||
max: 100,
|
required: true,
|
||||||
message: this.$t('certifiedEngineer') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
|
message: this.$t('statisticalNodes') + this.$t('cannotEmpty'),
|
||||||
trigger: 'change'
|
trigger: 'change'
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
regulationOwnerIdName: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('regulatoryEngineer') + this.$t('cannotEmpty'),
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
engineeringInterfacePersonName: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('engineeringInterfacePerson') + this.$t('cannotEmpty'),
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
],
|
||||||
},
|
},
|
||||||
disabled: false,
|
disabled: false,
|
||||||
|
previewVisible: false,
|
||||||
|
previewImage: '',
|
||||||
|
cut: '',
|
||||||
|
fileList: [],
|
||||||
projectNameList: [],
|
projectNameList: [],
|
||||||
title: ''
|
firstLevelDutyTerritoryList:[],
|
||||||
|
title: '',
|
||||||
|
headers: {},
|
||||||
|
uploadAction: window._CONFIG['domianURL'] + '/sys/common/upload',
|
||||||
|
state: undefined,
|
||||||
|
myuploadAction: window._CONFIG['domianURL'] + this.thisFileUploadUrl,
|
||||||
|
upDataList: [],
|
||||||
|
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||||
|
downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
|
this.containerId = 'container-ty-' + new Date().getTime()
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getNameList()
|
this.getNameList()
|
||||||
|
let long = localStorage.getItem('language')
|
||||||
|
this.cut = ''
|
||||||
|
if (long && long == 'zh-cn') {
|
||||||
|
this.cut = 'cn'
|
||||||
|
} else if (long && long == 'en-us') {
|
||||||
|
this.cut = 'en'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapGetters(['userInfo']),
|
...mapGetters(['userInfo']),
|
||||||
|
handleCancelimg() {
|
||||||
|
this.previewVisible = false;
|
||||||
|
},
|
||||||
|
async handlePreview(file) {
|
||||||
|
if (!file.url && !file.preview) {
|
||||||
|
file.preview = await getBase64(file.originFileObj);
|
||||||
|
}
|
||||||
|
this.previewImage = file.url || file.preview;
|
||||||
|
this.previewVisible = true;
|
||||||
|
},
|
||||||
|
handleChange({ fileList }) {
|
||||||
|
this.fileList = fileList;
|
||||||
|
console.log(this.fileList)
|
||||||
|
let filelist = []
|
||||||
|
let filelistId = []
|
||||||
|
this.fileList.forEach((item => {
|
||||||
|
filelist.push(item.response)
|
||||||
|
}))
|
||||||
|
console.log(filelist,'111')
|
||||||
|
filelist.forEach((item => {
|
||||||
|
filelistId.push(item.result.id)
|
||||||
|
}))
|
||||||
|
this.formInline.brandLabel = filelistId.join(',')
|
||||||
|
this.formInline = { ...this.formInline }
|
||||||
|
},
|
||||||
|
getFirstLevelDutyTerritory() {
|
||||||
|
getAction('/sys/dictItem/getFirstLevelDutyTerritory', {}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.firstLevelDutyTerritoryList = res.result
|
||||||
|
} else {
|
||||||
|
this.firstLevelDutyTerritoryList = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
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') : ''
|
||||||
|
},
|
||||||
getNameList(value) {
|
getNameList(value) {
|
||||||
getAction('project/projectNameInfoEO/list', {}).then((res) => {
|
getAction('project/projectNameInfoEO/list', {}).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
@@ -397,9 +765,32 @@
|
|||||||
let content = this.projectNameList.filter(res => {
|
let content = this.projectNameList.filter(res => {
|
||||||
return res.id == value.projectNameId
|
return res.id == value.projectNameId
|
||||||
})
|
})
|
||||||
|
if(value.dutyDepart){
|
||||||
|
value.dutyDepart = value.dutyDepart.split(',')
|
||||||
|
}
|
||||||
|
let file = []
|
||||||
|
getAction('sys/common/getFileInfos', { id: value.brandLabel }).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
console.log(res.result)
|
||||||
|
res.result.forEach((item =>{
|
||||||
|
file.push({
|
||||||
|
name : item.fileName,
|
||||||
|
uid : item.id,
|
||||||
|
url : item.url
|
||||||
|
})
|
||||||
|
}))
|
||||||
|
console.log(file)
|
||||||
|
this.fileList = file
|
||||||
|
} else {
|
||||||
|
// this.$refs.uploadFile.perentHandleFunc()
|
||||||
|
}
|
||||||
|
})
|
||||||
this.formInline = value
|
this.formInline = value
|
||||||
console.log(this.formInline)
|
console.log(this.formInline)
|
||||||
|
this.formInline.engineeringInterfacePersonName = this.formInline.engineeringInterfacePersonName
|
||||||
|
this.formInline.regulationOwnerIdName = this.formInline.regulationOwnerIdName
|
||||||
this.formInline = { ...this.formInline }
|
this.formInline = { ...this.formInline }
|
||||||
|
this.$forceUpdate()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.projectNameList = []
|
this.projectNameList = []
|
||||||
@@ -411,8 +802,12 @@
|
|||||||
this.title = this.$t('add')
|
this.title = this.$t('add')
|
||||||
this.formInline = {}
|
this.formInline = {}
|
||||||
this.getNameList()
|
this.getNameList()
|
||||||
this.formInline.studioEngineerName = this.userInfo().username
|
this.getFirstLevelDutyTerritory()
|
||||||
this.formInline.studioEngineer = this.userInfo().id
|
const token = Vue.ls.get(ACCESS_TOKEN)
|
||||||
|
this.headers = { 'X-Access-Token': token }
|
||||||
|
console.log(this.headers)
|
||||||
|
this.formInline.regulationOwnerIdName = this.userInfo().username
|
||||||
|
this.formInline.regulationOwnerId = this.userInfo().id
|
||||||
this.formInline.projectVersion = '00'
|
this.formInline.projectVersion = '00'
|
||||||
this.formInline = { ...this.formInline }
|
this.formInline = { ...this.formInline }
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
@@ -422,6 +817,9 @@
|
|||||||
editModel(value) {
|
editModel(value) {
|
||||||
this.visible = true
|
this.visible = true
|
||||||
this.title = this.$t('edit')
|
this.title = this.$t('edit')
|
||||||
|
const token = Vue.ls.get(ACCESS_TOKEN)
|
||||||
|
this.headers = { 'X-Access-Token': token }
|
||||||
|
console.log(this.headers)
|
||||||
this.getNameList(value)
|
this.getNameList(value)
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.ruleForm.clearValidate()
|
this.$refs.ruleForm.clearValidate()
|
||||||
@@ -443,6 +841,7 @@
|
|||||||
Action = postAction
|
Action = postAction
|
||||||
}
|
}
|
||||||
let query = JSON.parse(JSON.stringify(this.formInline))
|
let query = JSON.parse(JSON.stringify(this.formInline))
|
||||||
|
delete query.urlList
|
||||||
Object.keys(query).forEach(res => {
|
Object.keys(query).forEach(res => {
|
||||||
if (query[res] && query[res] instanceof Array) {
|
if (query[res] && query[res] instanceof Array) {
|
||||||
query[res] = query[res].join(',')
|
query[res] = query[res].join(',')
|
||||||
@@ -582,7 +981,31 @@
|
|||||||
height: 40px;
|
height: 40px;
|
||||||
margin-bottom: 24px;
|
margin-bottom: 24px;
|
||||||
}
|
}
|
||||||
|
.itemModelimg {
|
||||||
|
width: calc(100% - 130px);
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 2px;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
.header-text {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #000000;
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
}
|
||||||
|
.header-title-text{
|
||||||
|
font-size: 16px;
|
||||||
|
color: #000000;
|
||||||
|
line-height: 50px;
|
||||||
|
margin: 0 19px;
|
||||||
|
}
|
||||||
|
.header-title{
|
||||||
|
background: #F5F6F7;
|
||||||
|
width: 100%;
|
||||||
|
height: 50px;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
.Required {
|
.Required {
|
||||||
color: red;
|
color: red;
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
|
|||||||
+7
@@ -820,6 +820,13 @@
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
scopedSlots: { customRender: 'nameOfManufacturer' }
|
scopedSlots: { customRender: 'nameOfManufacturer' }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('remarks'),
|
||||||
|
align: 'left',
|
||||||
|
dataIndex: 'remark',
|
||||||
|
width: 180,
|
||||||
|
ellipsis: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('operation'),
|
title: this.$t('operation'),
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
|||||||
+98
-17
@@ -11,7 +11,10 @@
|
|||||||
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
||||||
<a-spin :spinning="confirmLoading">
|
<a-spin :spinning="confirmLoading">
|
||||||
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||||
<div v-for="(item,index) in formInline.list" :key="index">
|
<div class="header-text">
|
||||||
|
{{$t('Platformdevelopmentvalvepoint')}}
|
||||||
|
</div>
|
||||||
|
<div v-for="(item,index) in formInline.listUp" :key="index">
|
||||||
<div style='margin-left: 25px'>
|
<div style='margin-left: 25px'>
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
@@ -21,7 +24,7 @@
|
|||||||
<span class="title-text-text" :title="$t('Nodename')">{{$t('Nodename')}}</span>
|
<span class="title-text-text" :title="$t('Nodename')">{{$t('Nodename')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel"
|
<a-form-model-item class="itemModel"
|
||||||
:prop="'list.'+index+'.nodeName'"
|
:prop="'listUp.'+index+'.nodeName'"
|
||||||
:rules="[{ required:true,
|
:rules="[{ required:true,
|
||||||
message: $t('Nodename') + $t('cannotEmpty'), trigger: 'blur'}]"
|
message: $t('Nodename') + $t('cannotEmpty'), trigger: 'blur'}]"
|
||||||
>
|
>
|
||||||
@@ -50,7 +53,55 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-icon class="icon-text" style='font-size: 20px;margin-top: 10px;' @click="addClick(index)" type="plus"/>
|
<a-icon class="icon-text" style='font-size: 20px;margin-top: 10px;' @click="addClick(index)" type="plus"/>
|
||||||
<a-icon class="icon-text" style='font-size: 20px;margin-top: 10px;' v-if="formInline.list.length > 1" @click="deleteClick(index)"
|
<a-icon class="icon-text" style='font-size: 20px;margin-top: 10px;' v-if="formInline.listUp.length > 1" @click="deleteClick(index)"
|
||||||
|
type="minus" />
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="header-text">
|
||||||
|
{{$t('Compliancemanagementvalvepoint')}}
|
||||||
|
</div>
|
||||||
|
<div v-for="(item,index) in formInline.listDown" :key="index">
|
||||||
|
<div style='margin-left: 25px'>
|
||||||
|
<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('Nodename')">{{$t('Nodename')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel"
|
||||||
|
:prop="'listDown.'+index+'.nodeName'"
|
||||||
|
:rules="[{ required:true,
|
||||||
|
message: $t('Nodename') + $t('cannotEmpty'), trigger: 'blur'}]"
|
||||||
|
>
|
||||||
|
<a-input class="box-input"
|
||||||
|
v-model="item.nodeName"
|
||||||
|
:maxLength="200"
|
||||||
|
:placeholder="$t('PleaseEnter')+$t('Nodename')"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12" style='margin-left: -49px'>
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text" :title="$t('Nodedate')">{{$t('Nodedate')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel">
|
||||||
|
<a-date-picker class="box-input"
|
||||||
|
:placeholder="$t('PleaseSelect')+$t('Nodedate')"
|
||||||
|
@change="dateChange(item,index)"
|
||||||
|
format="YYYY-MM-DD"
|
||||||
|
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||||
|
v-model="item.nodeTime"
|
||||||
|
:disabled="false"
|
||||||
|
style="width: 100%"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-icon class="icon-text" style='font-size: 20px;margin-top: 10px;' @click="addClickdown(index)" type="plus"/>
|
||||||
|
<a-icon class="icon-text" style='font-size: 20px;margin-top: 10px;' v-if="formInline.listDown.length > 1" @click="deleteClickdown(index)"
|
||||||
type="minus" />
|
type="minus" />
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
@@ -77,7 +128,8 @@
|
|||||||
visible: false,
|
visible: false,
|
||||||
confirmLoading: false,
|
confirmLoading: false,
|
||||||
formInline: {
|
formInline: {
|
||||||
list:[{}]
|
listUp:[{}],
|
||||||
|
listDown:[{}],
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
},
|
},
|
||||||
@@ -88,15 +140,27 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
addClick(index){
|
addClick(index){
|
||||||
if(this.formInline.list.length > 19){
|
if(this.formInline.listUp.length > 19){
|
||||||
this.$message.warning(this.$t('maximum'))
|
this.$message.warning(this.$t('maximum'))
|
||||||
}else{
|
}else{
|
||||||
this.formInline.list.splice(index + 1, 0, {})
|
this.formInline.listUp.splice(index + 1, 0, {})
|
||||||
}
|
}
|
||||||
this.formInline = { ...this.formInline }
|
this.formInline = { ...this.formInline }
|
||||||
},
|
},
|
||||||
deleteClick(index) {
|
deleteClick(index) {
|
||||||
this.formInline.list.splice(index, 1)
|
this.formInline.listUp.splice(index, 1)
|
||||||
|
this.formInline = { ...this.formInline }
|
||||||
|
},
|
||||||
|
addClickdown(index){
|
||||||
|
if(this.formInline.listDown.length > 19){
|
||||||
|
this.$message.warning(this.$t('maximum'))
|
||||||
|
}else{
|
||||||
|
this.formInline.listDown.splice(index + 1, 0, {})
|
||||||
|
}
|
||||||
|
this.formInline = { ...this.formInline }
|
||||||
|
},
|
||||||
|
deleteClickdown(index) {
|
||||||
|
this.formInline.listDown.splice(index, 1)
|
||||||
this.formInline = { ...this.formInline }
|
this.formInline = { ...this.formInline }
|
||||||
},
|
},
|
||||||
edit() {
|
edit() {
|
||||||
@@ -107,13 +171,14 @@
|
|||||||
this.settingQueryForm()
|
this.settingQueryForm()
|
||||||
},
|
},
|
||||||
settingQueryForm() {
|
settingQueryForm() {
|
||||||
getAction(this.url.settingQueryForm, { projectId: this.$route.query.id }).then((res) => {
|
getAction('platform/platformTaskPlanningEO/queryListUpdate', { projectId: this.$route.query.id }).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.formInline.list = res.result ? res.result : [{}]
|
this.formInline.listUp = res.result.listUp ? res.result.listUp : [{}]
|
||||||
|
this.formInline.listDown = res.result.listDown ? res.result.listDown : [{}]
|
||||||
if(res.result==null ||res.result.length == 0){
|
if(res.result==null ||res.result.length == 0){
|
||||||
this.formInline.list=[{}]
|
this.formInline.listUp=[{}]
|
||||||
|
this.formInline.listDown=[{}]
|
||||||
}
|
}
|
||||||
console.log(this.formInline.list)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -121,14 +186,23 @@
|
|||||||
handleOk() {
|
handleOk() {
|
||||||
this.$refs.ruleForm.validate(valid => {
|
this.$refs.ruleForm.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if(this.formInline.list){
|
if(this.formInline.listUp){
|
||||||
this.formInline.list.forEach((item,index) => {
|
this.formInline.listUp.forEach((item,index) => {
|
||||||
item.projectId = this.$route.query.id
|
item.projectId = this.$route.query.id
|
||||||
if((item.nodeName == '' || item.nodeName == undefined) && (item.nodeTime == ''| item.nodeTime == undefined)){
|
if((item.nodeName == '' || item.nodeName == undefined) && (item.nodeTime == ''| item.nodeTime == undefined)){
|
||||||
this.formInline.list.splice(index, 1) // 调用splice方法删除指定的对象
|
this.formInline.listUp.splice(index, 1) // 调用splice方法删除指定的对象
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.formInline.list = this.formInline.list
|
this.formInline.listUp = this.formInline.listUp
|
||||||
|
}
|
||||||
|
if(this.formInline.listDown){
|
||||||
|
this.formInline.listDown.forEach((item,index) => {
|
||||||
|
item.projectId = this.$route.query.id
|
||||||
|
if((item.nodeName == '' || item.nodeName == undefined) && (item.nodeTime == ''| item.nodeTime == undefined)){
|
||||||
|
this.formInline.listDown.splice(index, 1) // 调用splice方法删除指定的对象
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.formInline.listDown = this.formInline.listDown
|
||||||
}
|
}
|
||||||
let query = {
|
let query = {
|
||||||
...this.formInline,
|
...this.formInline,
|
||||||
@@ -160,12 +234,14 @@
|
|||||||
},
|
},
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.formInline = {
|
this.formInline = {
|
||||||
list:[{}]
|
listUp:[{}],
|
||||||
|
listDown:[{}],
|
||||||
}
|
}
|
||||||
this.visible = false
|
this.visible = false
|
||||||
},
|
},
|
||||||
dateChange(item,index) {
|
dateChange(item,index) {
|
||||||
this.formInline.list[index].danodeTimete = this.formInline.list[index].nodeTime ? moment(this.formInline.list[index].nodeTime).format('YYYY-MM-DD') : ''
|
this.formInline.listUp[index].danodeTimete = this.formInline.listUp[index].nodeTime ? moment(this.formInline.listUp[index].nodeTime).format('YYYY-MM-DD') : ''
|
||||||
|
this.formInline.listDown[index].danodeTimete = this.formInline.listDown[index].nodeTime ? moment(this.formInline.listDown[index].nodeTime).format('YYYY-MM-DD') : ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -184,7 +260,12 @@
|
|||||||
/*.formAdd .ant-form-item {*/
|
/*.formAdd .ant-form-item {*/
|
||||||
/* margin-bottom: 20px;*/
|
/* margin-bottom: 20px;*/
|
||||||
/*}*/
|
/*}*/
|
||||||
|
.header-text {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #000000;
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
}
|
||||||
.itemModel .ant-form-item-control-wrapper {
|
.itemModel .ant-form-item-control-wrapper {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -226,6 +226,24 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text"
|
||||||
|
:title="$t('remarks')">{{$t('remarks')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel-text" :prop="'dataList.'+index+'.remark'"
|
||||||
|
:rules="[{max: 500,message: $t('remarks') + $t('cannotExceed') + 500 + $t('Characters'),trigger: 'blur'
|
||||||
|
}]">
|
||||||
|
<a-textarea
|
||||||
|
style="width: 100%"
|
||||||
|
:placeholder="$t('PleaseEnter')+$t('remarks')"
|
||||||
|
v-model="item.remark" :rows="4"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
</a-form-model>
|
</a-form-model>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
@@ -548,4 +566,10 @@
|
|||||||
::v-deep .ant-form-item-with-help {
|
::v-deep .ant-form-item-with-help {
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.itemModel-text {
|
||||||
|
width: calc(100% - 130px);
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -222,6 +222,22 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text"
|
||||||
|
:title="$t('remarks')">{{$t('remarks')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel-text" :prop="'remark'">
|
||||||
|
<a-textarea
|
||||||
|
style="width: 100%"
|
||||||
|
:placeholder="$t('PleaseEnter')+$t('remarks')"
|
||||||
|
v-model="formInline.remark" :rows="4"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
</a-form-model>
|
</a-form-model>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
<div class="drawer-bootom-button" v-if="button">
|
<div class="drawer-bootom-button" v-if="button">
|
||||||
@@ -325,7 +341,14 @@
|
|||||||
message: this.$t('Deliverables') + this.$t('cannotEmpty'),
|
message: this.$t('Deliverables') + this.$t('cannotEmpty'),
|
||||||
trigger: 'change'
|
trigger: 'change'
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
remark:[
|
||||||
|
{
|
||||||
|
max: 500,
|
||||||
|
message: this.$t('remarks') + this.$t('cannotExceed') + 500 + this.$t('Characters'),
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -560,4 +583,10 @@
|
|||||||
::v-deep .ant-form-item-with-help {
|
::v-deep .ant-form-item-with-help {
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.itemModel-text {
|
||||||
|
width: calc(100% - 130px);
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
+7
@@ -429,6 +429,13 @@
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
scopedSlots: { customRender: 'deliverableTemplate' }
|
scopedSlots: { customRender: 'deliverableTemplate' }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('remarks'),
|
||||||
|
align: 'left',
|
||||||
|
dataIndex: 'remark',
|
||||||
|
width: 330,
|
||||||
|
ellipsis: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('operation'),
|
title: this.$t('operation'),
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
|||||||
Reference in New Issue
Block a user