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 `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`
|
||||
ADD COLUMN `power` varchar(255) NULL COMMENT '功率' AFTER `platform`,
|
||||
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 `traceability_code` varchar(255) NULL COMMENT '追溯代码' AFTER `specification_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 `nominal_voltage` varchar(255) NULL COMMENT '标称电压' AFTER `rated_capacity`,
|
||||
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 `module_specification_code` varchar(255) NULL COMMENT '所用模块或单体规格代码' AFTER `connection_type`,
|
||||
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 `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 = "认证类型")
|
||||
private String attestationType;
|
||||
|
||||
/**备注*/
|
||||
@ApiModelProperty(value = "备注")
|
||||
@Excel(name = "备注", width = 50)
|
||||
private String remark;
|
||||
}
|
||||
|
||||
+12
-8
@@ -961,9 +961,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
||||
if(CollectionUtils.isNotEmpty(baseList)){
|
||||
String title = "";
|
||||
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
|
||||
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID,*编号,*责任领域,*交付物类型,交付物模板";
|
||||
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID,*编号,*责任领域,*交付物类型,交付物模板,备注";
|
||||
}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(".");
|
||||
@@ -1081,7 +1081,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
||||
if (i == 0) {
|
||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
||||
headerSb.append(cell.getStringCellValue() + ",");
|
||||
if(j == 8){
|
||||
if(j == 9){
|
||||
break;
|
||||
}
|
||||
} else if(i > 1){
|
||||
@@ -1623,10 +1623,12 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
||||
}else{
|
||||
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : datas) {
|
||||
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());
|
||||
if(CollectionUtils.isNotEmpty(collect)){
|
||||
authDummyInventoryInfoEO.setBussDocumentLibraryId(collect.get(0).getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
// //2. 验证标准号在法规清单中是否添加过
|
||||
// LambdaQueryWrapper<ProjectCertificationInventoryEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
// lambdaQueryWrapper.in(ProjectCertificationInventoryEO::getSerialNumber,serialNumberList).in(ProjectCertificationInventoryEO::getProjectLibraryId,projectCertificationInventoryEOTemp.getProjectLibraryId());
|
||||
@@ -1705,6 +1707,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
||||
case "*责任领域": return "dutyTerritoryName";
|
||||
case "交付物模板": return "deliverableTemplateName";
|
||||
case "*交付物类型" : return "deliverableTypeName";
|
||||
case "备注" : return "remark";
|
||||
|
||||
case "*Category" : return "Category";
|
||||
case "*Inspection Items" : return"inspectionItem";
|
||||
@@ -1715,6 +1718,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
||||
case "*Responsible Field" : return "dutyTerritoryName";
|
||||
case "Deliverable Template" : return "deliverableTemplateName";
|
||||
case "*Deliverable Type" : return "deliverableTypeNameEn";
|
||||
case "Remark" : return "remark";
|
||||
|
||||
|
||||
default: return null;
|
||||
@@ -1797,17 +1801,17 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
||||
String title = "";
|
||||
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
|
||||
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID," +
|
||||
"*编号,*责任领域,*交付物类型,交付物模板,";
|
||||
"*编号,*责任领域,*交付物类型,交付物模板,备注,";
|
||||
}else{
|
||||
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(","));
|
||||
int index = 0;
|
||||
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
|
||||
index = list.indexOf("交付物模板") + 1;
|
||||
index = list.indexOf("备注") + 1;
|
||||
}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_year_name_info as pyni on plb.year_name_id=pyni.id
|
||||
) 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 !=''">
|
||||
AND project_name LIKE CONCAT(CONCAT('%',#{projectName}),'%')
|
||||
</if>
|
||||
@@ -153,7 +153,7 @@
|
||||
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
|
||||
) 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=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
@@ -175,7 +175,7 @@
|
||||
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
|
||||
) tmp_tb
|
||||
where 1=1 and plb.platform is null and state = #{state}
|
||||
where 1=1 and state = #{state}
|
||||
and id in(
|
||||
SELECT pm.id AS pm FROM params_manifest pm
|
||||
JOIN ( SELECT id FROM
|
||||
@@ -183,7 +183,7 @@
|
||||
FROM
|
||||
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
|
||||
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
|
||||
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_year_name_info as pyni on plb.year_name_id = pyni.id
|
||||
) tmp_tb
|
||||
where project_id = #{projectId} and plb.platform is null
|
||||
where project_id = #{projectId}
|
||||
</select>
|
||||
|
||||
<select id="labelListForProjectDetails" resultType="java.util.LinkedHashMap">
|
||||
@@ -232,7 +232,7 @@
|
||||
FROM
|
||||
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
|
||||
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}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
+1
@@ -619,6 +619,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
|
||||
for (ParamsCollectManifestEO oldCollectManifestEO : diffList) {
|
||||
ParamsCollectManifestEO updateCollectManifestEO = new ParamsCollectManifestEO();
|
||||
updateCollectManifestEO.setId(oldCollectManifestEO.getId());
|
||||
updateCollectManifestEO.setNioNumber(oldCollectManifestEO.getNioNumber());
|
||||
updateCollectManifestEO.setState(CollectManifestStateEnum.CHANGE.getValue());
|
||||
updateCollectManifestEO.setChangeFlag(CollectManifestChangeFlagEnum.CHANGE_BEFORE.getValue()); // 标记为变更前参数项
|
||||
updateCollectManifestEO.setDelFlag(CollectManifestChangeFlagEnum.DELETE_AFTER.getValue()); // 因新发布模板中没有该参数项,标记为变更时已删除参数项
|
||||
|
||||
+14
-6
@@ -78,9 +78,9 @@ public class PlatformTaskPlanningEOController extends JeroController<PlatformTas
|
||||
@AutoLog(value = "平台件合规认证计划-列表查询")
|
||||
@ApiOperation(value="平台件合规认证计划-列表查询", notes="平台件合规认证计划-列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<PlatformTaskPlanningEO>> queryList(String projectId) {
|
||||
List<PlatformTaskPlanningEO> list = platformTaskPlanningEOService.queryList(projectId);
|
||||
return Result.OK(list);
|
||||
public Result<?> queryList(String projectId) {
|
||||
Map<String,Object> result = platformTaskPlanningEOService.queryList(projectId);
|
||||
return Result.OK(result);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -106,9 +106,17 @@ public class PlatformTaskPlanningEOController extends JeroController<PlatformTas
|
||||
@ApiOperation(value="平台件合规认证计划-批量添加", notes="平台件合规认证计划-批量添加")
|
||||
@PostMapping(value = "/addBatch")
|
||||
public Result<?> addBatch(@RequestBody Map<String,Object> data) {
|
||||
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(data.get("list")));
|
||||
List<PlatformTaskPlanningEO> platformTaskPlanningEOList = jsonArray.toJavaList(PlatformTaskPlanningEO.class);
|
||||
platformTaskPlanningEOService.addBatch(platformTaskPlanningEOList);
|
||||
// JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(data.get("list")));
|
||||
// JSONArray jsonArrayUp = JSONArray.parseArray(JSON.toJSONString(data.get("listUp")));
|
||||
// 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("添加成功!");
|
||||
}
|
||||
|
||||
|
||||
+3
@@ -93,4 +93,7 @@ public class PlatformTaskPlanningEO implements Serializable {
|
||||
@TableField(exist = false)
|
||||
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.flag,
|
||||
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.en_name brandTextEn
|
||||
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.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @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
|
||||
*/
|
||||
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())){
|
||||
title = "*类别,*检验项目,*认证类型,*WVTA ID," +
|
||||
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
|
||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称,备注";
|
||||
}else {
|
||||
title = "*Category,*Inspection Items,*Certification Type,*WVTA ID," +
|
||||
"*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(".");
|
||||
@@ -4675,7 +4675,7 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
||||
if (i == 0) {
|
||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
||||
headerSb.append(cell.getStringCellValue() + ",");
|
||||
if(j == 14){
|
||||
if(j == 15){
|
||||
break;
|
||||
}
|
||||
} else if(i > 1){
|
||||
@@ -5823,6 +5823,7 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
||||
case "产品型号": return "productModel";
|
||||
case "生产企业名称": return "productionEnterpriseName";
|
||||
case "认证进度": return "certificationProgress";
|
||||
case "备注": return "remark";
|
||||
|
||||
case "*Category": return "category";
|
||||
case "*Inspection Items": return "inspectionItem";
|
||||
@@ -5842,6 +5843,7 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
||||
case "Product Model": return "productModel";
|
||||
case "Name Of Manufacturer": return "productionEnterpriseName";
|
||||
case "Homologation Progress": return "certificationProgress";
|
||||
case "Remark": return "remark";
|
||||
|
||||
default: return null;
|
||||
//"Deliverable Type,Deliverable Template,initiator,Assignee,Due Date," +
|
||||
@@ -5866,19 +5868,19 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
||||
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
||||
title = "*类别,*检验项目,*认证类型,*WVTA ID," +
|
||||
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
|
||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称,备注";
|
||||
}else {
|
||||
title = "*Category,*Inspection Items,*Certification Type,*WVTA ID," +
|
||||
"*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(","));
|
||||
int index = 0;
|
||||
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
||||
index = list.indexOf("生产企业名称") + 1;
|
||||
index = list.indexOf("备注") + 1;
|
||||
}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);//自动换行
|
||||
|
||||
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);
|
||||
String explain= "";
|
||||
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
||||
@@ -6071,8 +6073,10 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI
|
||||
String projectLibraryId = pciList.get(0).getProjectLibraryId();
|
||||
ProjectLibraryBase projectLibraryBase = this.platformProjectLibraryBaseService.selectById(projectLibraryId);
|
||||
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 = "";
|
||||
if(StringUtils.isNotBlank(projectLibraryBase.getCertificationEngineer())){
|
||||
List<String> certificationEngineerIdList = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(","));
|
||||
|
||||
+1
-1
@@ -569,7 +569,7 @@ public class PlatformProjectLawsInventoryEOServiceImpl extends ServiceImpl<Platf
|
||||
|
||||
@Override
|
||||
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.enums.DictCodeEnum;
|
||||
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.platform.mapper.PlatformProjectLawsInventoryEOMapper;
|
||||
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.OperatorTypeEnum;
|
||||
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.ProjectTaskPlanningNameEnum;
|
||||
import com.jero.modules.project.enums.ProjectUserLocationEnum;
|
||||
@@ -194,6 +197,8 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
private OtaManageApplyEOServiceImpl otaManageApplyEOService;
|
||||
@Autowired
|
||||
private SysDictItemMapper sysDictItemMapper;
|
||||
@Autowired
|
||||
private IOSSFileService iOSSFileService;
|
||||
|
||||
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
private static DecimalFormat df = new DecimalFormat("#.00");
|
||||
@@ -217,7 +222,21 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
projectLibraryBase.setCreateBy(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);
|
||||
|
||||
//创建任务计划时间轴
|
||||
@@ -1057,7 +1076,6 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
|
||||
List<ProjectLibraryBase> result = this.list(queryWrapper);
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
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);
|
||||
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){
|
||||
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()
|
||||
.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<>();
|
||||
// param.put("cut",cut);
|
||||
// String targetMarket = getMarket(param, targetMarketList, projectLibraryBase);
|
||||
// //项目名称(功率-生产商-目标市场)
|
||||
// String projectName = projectLibraryBase.getPower() + "-" + projectLibraryBase.getProducer() + "-" + targetMarket;
|
||||
// projectLibraryBase.setProjectNameId(projectName);//原设计平台件项目名称去这个字段值
|
||||
// //平台件项目名称改为拼接的形式,projectNameId不在存数据,如果这个变更影响其他的地方,项目名称取值可以取projectName的值
|
||||
// projectLibraryBase.setProjectName(projectName);
|
||||
Map<String,Object> param = new HashMap<>();
|
||||
param.put("cut",cut);
|
||||
String targetMarket = getMarket(param, targetMarketList, projectLibraryBase);
|
||||
//项目名称(功率-生产商-目标市场)
|
||||
String projectName = projectLibraryBase.getPower() + "-" + projectLibraryBase.getProducer() + "-" + targetMarket;
|
||||
projectLibraryBase.setProjectNameId(projectName);//原设计平台件项目名称去这个字段值
|
||||
//平台件项目名称改为拼接的形式,projectNameId不在存数据,如果这个变更影响其他的地方,项目名称取值可以取projectName的值
|
||||
projectLibraryBase.setProjectName(projectName);
|
||||
}
|
||||
|
||||
if(ObjectUtils.isEmpty(params.get("orderByField"))){
|
||||
@@ -1121,6 +1159,25 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
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) {
|
||||
if(ObjectUtils.isNotEmpty(params.get("orderByField"))){
|
||||
Collator comparator = Collator.getInstance(Locale.CHINESE);
|
||||
@@ -1418,6 +1475,7 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
@Override
|
||||
public void disposeData(List<ProjectLibraryBase> records,String cut,boolean disposeTargetMarketFlag) {
|
||||
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
|
||||
List<SysUser> sysUserList = getSysUserList(records);
|
||||
for (ProjectLibraryBase projectLibraryBase : records) {
|
||||
List<SysUser> sysUsers = new ArrayList<>();
|
||||
//认证工程师多个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(StringUtils.isNotEmpty(projectLibraryBase.getTargetMarket())){
|
||||
|
||||
+46
-8
@@ -3,16 +3,20 @@ package com.jero.modules.platform.service.impl;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
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.service.IPlatformTaskPlanningEOService;
|
||||
import com.jero.modules.project.enums.PlanStatusEnum;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -40,23 +44,33 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl<PlatformTaskP
|
||||
|
||||
/**
|
||||
* 平台件合规认证计划-批量添加
|
||||
* @param platformTaskPlanningEOList
|
||||
* @param platformTaskPlanningEOListUp
|
||||
* @param platformTaskPlanningEOListDown
|
||||
*/
|
||||
@Override
|
||||
public void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOList) {
|
||||
if(!platformTaskPlanningEOList.isEmpty()){
|
||||
public void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp,List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown) {
|
||||
if(!platformTaskPlanningEOListUp.isEmpty()){
|
||||
//先删除在新增
|
||||
// LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
LambdaQueryWrapper<PlatformTaskPlanningEO> wrapper = new LambdaQueryWrapper<>();
|
||||
// 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);
|
||||
for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOList) {
|
||||
|
||||
for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOListUp) {
|
||||
Date now = new Date();
|
||||
platformTaskPlanningEO.setCreateTime(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
|
||||
*/
|
||||
@Override
|
||||
public List<PlatformTaskPlanningEO> queryList(String projectId) {
|
||||
public Map<String,Object> queryList(String projectId) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
|
||||
Date date = null;
|
||||
try {
|
||||
@@ -124,6 +138,21 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl<PlatformTaskP
|
||||
wrapper.eq(PlatformTaskPlanningEO::getProjectId,projectId);
|
||||
wrapper.orderByAsc(PlatformTaskPlanningEO::getNodeTime);
|
||||
List<PlatformTaskPlanningEO> taskPlanningEOList = list(wrapper);
|
||||
Map<String,Object> result = new HashMap<>();
|
||||
if(ObjectUtils.isEmpty(taskPlanningEOList)){
|
||||
LambdaQueryWrapper<PlatformTaskPlanningEO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.isNull(PlatformTaskPlanningEO::getProjectId);
|
||||
List<PlatformTaskPlanningEO> list = list(queryWrapper);
|
||||
|
||||
List<PlatformTaskPlanningEO> up = list.stream()
|
||||
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.UP.getValue().equals(e.getFlag())).collect(Collectors.toList());
|
||||
List<PlatformTaskPlanningEO> down = list.stream()
|
||||
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.DOWN.getValue().equals(e.getFlag())).collect(Collectors.toList());
|
||||
|
||||
result.put("listUp",up);
|
||||
result.put("listDown",down);
|
||||
|
||||
}else{
|
||||
for (PlatformTaskPlanningEO platformTaskPlanningEO : taskPlanningEOList) {
|
||||
platformTaskPlanningEO.setName(platformTaskPlanningEO.getNodeName());
|
||||
platformTaskPlanningEO.setTime(platformTaskPlanningEO.getNodeTime());
|
||||
@@ -139,6 +168,15 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl<PlatformTaskP
|
||||
}
|
||||
}
|
||||
taskPlanningEOList = taskPlanningEOList.stream().filter(e->ObjectUtils.isNotEmpty(e.getNodeTime())).collect(Collectors.toList());
|
||||
return taskPlanningEOList;
|
||||
|
||||
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);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -216,4 +216,8 @@ public class ProjectCertificationInventoryDutyEnginnerEO implements Serializable
|
||||
// @Excel(name = "*截止日期", width = 20, format = "yyyy-MM-dd")
|
||||
@TableField(exist = false)
|
||||
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")
|
||||
@TableField(exist = false)
|
||||
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 = "认证进度备注")
|
||||
private String certificationProgressRemark;
|
||||
|
||||
|
||||
/**项目库id*/
|
||||
@ApiModelProperty(value = "项目库id")
|
||||
private String projectLibraryId;
|
||||
@@ -215,4 +216,8 @@ public class ProjectCertificationInventoryDutyEnginnerEOPlatform implements Seri
|
||||
// @Excel(name = "*截止日期", width = 20, format = "yyyy-MM-dd")
|
||||
@TableField(exist = false)
|
||||
private String endTimeStr;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
@Excel(name = "备注", width = 50)
|
||||
private String remark;
|
||||
}
|
||||
|
||||
+5
@@ -256,6 +256,11 @@ public class ProjectCertificationInventoryEO implements Serializable {
|
||||
@ApiModelProperty(value = "认证类型")
|
||||
private String attestationType;
|
||||
|
||||
/**备注*/
|
||||
@ApiModelProperty(value = "备注")
|
||||
@Excel(name = "备注", width = 50)
|
||||
private String remark;
|
||||
|
||||
/**一级责任领域**/
|
||||
@TableField(exist = false)
|
||||
private String firstLevelDutyTerritory;
|
||||
|
||||
+4
@@ -221,4 +221,8 @@ public class ProjectCertificationInventoryEOEnPlatform implements Serializable {
|
||||
@TableField(exist = false)
|
||||
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 = "关联平台件数据")
|
||||
@TableField(exist = false)
|
||||
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 = "功率")
|
||||
// private String power;
|
||||
//
|
||||
// @ApiModelProperty(value = "生产商")
|
||||
// private String producer;
|
||||
//
|
||||
// @ApiModelProperty(value = "责任部门")
|
||||
// private String dutyDepart;
|
||||
//
|
||||
// @ApiModelProperty(value = "法规工程师")
|
||||
// private String regulationOwnerId;
|
||||
//
|
||||
// @ApiModelProperty(value = "工程接口人")
|
||||
// private String engineeringInterfacePerson;
|
||||
//
|
||||
// @ApiModelProperty(value = "名牌标签")
|
||||
// private String brandLabel;
|
||||
//
|
||||
// @ApiModelProperty(value = "产品型号")
|
||||
// private String productModel;
|
||||
//
|
||||
// @ApiModelProperty(value = "电芯生产企业")
|
||||
// private String cellEnterprise;
|
||||
//
|
||||
// @ApiModelProperty(value = "总成生产企业")
|
||||
// private String assemblyEnterprise;
|
||||
//
|
||||
// @ApiModelProperty(value = "零件号(国内)")
|
||||
// private String partNumberCn;
|
||||
//
|
||||
// @ApiModelProperty(value = "零件号(国外)")
|
||||
// private String part_numberEn;
|
||||
//
|
||||
// @ApiModelProperty(value = "24位备案码")
|
||||
// private String filingCode;
|
||||
//
|
||||
// @ApiModelProperty(value = "供应商代码(1-3)")
|
||||
// private String supplierCode;
|
||||
//
|
||||
// @ApiModelProperty(value = "产品类型代码(4)")
|
||||
// private String productTypeCode;
|
||||
//
|
||||
// @ApiModelProperty(value = "电池类型代码(5)")
|
||||
// private String batteryTypeCode;
|
||||
//
|
||||
// @ApiModelProperty(value = "规格代码(6-7)")
|
||||
// private String specificationCode;
|
||||
//
|
||||
// @ApiModelProperty(value = "追溯代码(8)")
|
||||
// private String traceabilityCode;
|
||||
//
|
||||
// @ApiModelProperty(value = "生产也月日序列号")
|
||||
// private String ymdNumber;
|
||||
//
|
||||
// @ApiModelProperty(value = "尺寸")
|
||||
// private String size;
|
||||
//
|
||||
// @ApiModelProperty(value = "额定容量")
|
||||
// private String ratedCapacity;
|
||||
//
|
||||
// @ApiModelProperty(value = "标称电压")
|
||||
// private String nominalVoltage;
|
||||
//
|
||||
// @ApiModelProperty(value = "额定质量")
|
||||
// private String ratedMass;
|
||||
//
|
||||
// @ApiModelProperty(value = "包含模块个数")
|
||||
// private String moduleNumber;
|
||||
//
|
||||
// @ApiModelProperty(value = "模块串并联方式")
|
||||
// private String connectionType;
|
||||
//
|
||||
// @ApiModelProperty(value = "所用模块或单体规格代码")
|
||||
// private String moduleSpecificationCode;
|
||||
//
|
||||
// @ApiModelProperty(value = "冷却方式")
|
||||
// private String coolingMethod;
|
||||
//
|
||||
// @ApiModelProperty(value = "备案完成时间")
|
||||
// private String filingCompletionTime;
|
||||
//
|
||||
// @ApiModelProperty(value = "备注")
|
||||
// private String remark;
|
||||
@ApiModelProperty(value = "功率")
|
||||
private String power;
|
||||
|
||||
@ApiModelProperty(value = "生产商")
|
||||
private String producer;
|
||||
|
||||
@ApiModelProperty(value = "责任部门")
|
||||
private String dutyDepart;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String dutyDepartName;
|
||||
|
||||
@ApiModelProperty(value = "法规工程师")
|
||||
private String regulationOwnerId;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "法规工程师回显")
|
||||
private String regulationOwnerIdName;
|
||||
|
||||
@ApiModelProperty(value = "工程接口人")
|
||||
private String engineeringInterfacePerson;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "工程接口人回显")
|
||||
private String engineeringInterfacePersonName;
|
||||
|
||||
@ApiModelProperty(value = "名牌标签")
|
||||
private String brandLabel;
|
||||
|
||||
@ApiModelProperty(value = "产品型号")
|
||||
private String productModel;
|
||||
|
||||
@ApiModelProperty(value = "电芯生产企业")
|
||||
private String cellEnterprise;
|
||||
|
||||
@ApiModelProperty(value = "总成生产企业")
|
||||
private String assemblyEnterprise;
|
||||
|
||||
@ApiModelProperty(value = "零件号(国内)")
|
||||
private String partNumberCn;
|
||||
|
||||
@ApiModelProperty(value = "零件号(国外)")
|
||||
private String partNumberEn;
|
||||
|
||||
@ApiModelProperty(value = "24位备案码")
|
||||
private String filingCode;
|
||||
|
||||
@ApiModelProperty(value = "供应商代码(1-3)")
|
||||
private String supplierCode;
|
||||
|
||||
@ApiModelProperty(value = "产品类型代码(4)")
|
||||
private String productTypeCode;
|
||||
|
||||
@ApiModelProperty(value = "电池类型代码(5)")
|
||||
private String batteryTypeCode;
|
||||
|
||||
@ApiModelProperty(value = "规格代码(6-7)")
|
||||
private String specificationCode;
|
||||
|
||||
@ApiModelProperty(value = "追溯代码(8)")
|
||||
private String traceabilityCode;
|
||||
|
||||
@ApiModelProperty(value = "生产也月日序列号")
|
||||
private String ymdNumber;
|
||||
|
||||
@ApiModelProperty(value = "尺寸")
|
||||
private String size;
|
||||
|
||||
@ApiModelProperty(value = "额定容量")
|
||||
private String ratedCapacity;
|
||||
|
||||
@ApiModelProperty(value = "标称电压")
|
||||
private String nominalVoltage;
|
||||
|
||||
@ApiModelProperty(value = "额定质量")
|
||||
private String ratedMass;
|
||||
|
||||
@ApiModelProperty(value = "包含模块个数")
|
||||
private String moduleNumber;
|
||||
|
||||
@ApiModelProperty(value = "模块串并联方式")
|
||||
private String connectionType;
|
||||
|
||||
@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
|
||||
|
||||
+3
-1
@@ -73,7 +73,7 @@ public class PrehomoJob implements Job {
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
log.info("prehomo流程,定时任务开启 =====================================================");
|
||||
|
||||
/*
|
||||
//查询出已经启动了prehomo流程的数据。 并且流程没有结束。
|
||||
QueryWrapper<ProjectTaskInventoryEO> queryProjectTaskInventoryWrapper = new QueryWrapper<>();
|
||||
queryProjectTaskInventoryWrapper.isNotNull("prehomo_p_id");
|
||||
@@ -367,5 +367,7 @@ public class PrehomoJob implements Job {
|
||||
}
|
||||
}
|
||||
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.oss.entity.OSSFile;
|
||||
import com.jero.modules.oss.service.IOSSFileService;
|
||||
import com.jero.modules.project.entity.*;
|
||||
import com.jero.modules.project.enums.*;
|
||||
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
|
||||
import com.jero.modules.project.entity.ProjectLibraryBase;
|
||||
import com.jero.modules.project.entity.ProjectLibraryRoleRelEO;
|
||||
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
|
||||
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.IProjectLibraryRoleRelEOService;
|
||||
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.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.apache.xmlbeans.impl.xb.xsdschema.Public;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
@@ -1248,6 +1267,243 @@ public class ProjectLawsInventoryEOEditServiceImpl {
|
||||
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())){
|
||||
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID," +
|
||||
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
|
||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称,备注";
|
||||
}else {
|
||||
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID," +
|
||||
"*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(".");
|
||||
@@ -4579,7 +4579,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
if (i == 0) {
|
||||
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
|
||||
headerSb.append(cell.getStringCellValue() + ",");
|
||||
if(j == 15){
|
||||
if(j == 16){
|
||||
break;
|
||||
}
|
||||
} else if(i > 1){
|
||||
@@ -4817,6 +4817,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
|
||||
// 认证类型
|
||||
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;
|
||||
}
|
||||
@@ -5659,6 +5673,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
case "产品型号": return "productModel";
|
||||
case "生产企业名称": return "productionEnterpriseName";
|
||||
case "认证进度": return "certificationProgress";
|
||||
case "备注": return "remark";
|
||||
|
||||
case "*Category": return "category";
|
||||
case "*Inspection Items": return "inspectionItem";
|
||||
@@ -5678,6 +5693,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
case "Product Model": return "productModel";
|
||||
case "Name Of Manufacturer": return "productionEnterpriseName";
|
||||
case "Homologation Progress": return "certificationProgress";
|
||||
case "Remark": return "remark";
|
||||
|
||||
default: return null;
|
||||
//"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())){
|
||||
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID," +
|
||||
"*标准编号,*责任领域,*工程接口人,*责任人," +
|
||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
|
||||
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称,备注";
|
||||
}else {
|
||||
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID," +
|
||||
"*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(","));
|
||||
int index = 0;
|
||||
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
|
||||
index = list.indexOf("生产企业名称") + 1;
|
||||
index = list.indexOf("备注") + 1;
|
||||
}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)){
|
||||
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("飞书消息推送失败");
|
||||
}
|
||||
// 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("飞书消息推送失败");
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+27
-27
@@ -800,22 +800,22 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
|
||||
if(CollectionUtils.isNotEmpty(sysUsers)){
|
||||
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='"
|
||||
// + 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() + "-"
|
||||
// + projectYearNameInfoEO.getYearName()
|
||||
// + "&targetMarket=" + projectLibraryBase.getTargetMarket()
|
||||
@@ -1510,19 +1510,19 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
|
||||
if(CollectionUtils.isNotEmpty(sysUsers)){
|
||||
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("飞书消息推送失败");
|
||||
}
|
||||
// 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='"
|
||||
// + 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)){
|
||||
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("飞书消息推送失败");
|
||||
}
|
||||
// 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='"
|
||||
// + 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)){
|
||||
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("飞书消息推送失败");
|
||||
}
|
||||
// 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='"
|
||||
// + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getLink() + projectLibraryBaseInfo.getId() + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getType()
|
||||
|
||||
@@ -1988,4 +1988,33 @@ module.exports = {
|
||||
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',
|
||||
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: '不涉及',
|
||||
reviewAndPass: '审查通过',
|
||||
reviewAndReturn: '审查退回',
|
||||
electroniccontrollerparameter: '电子控制器参数',
|
||||
electroniccontrollerparameter: '控制器参数',
|
||||
marketRegulationListDetails: '市场法规清单详情',
|
||||
marketRegulationList: '市场法规清单',
|
||||
onlyDataWithTheCurrentCanBeManipulated: '仅能操作责任人为当前用户的数据',
|
||||
@@ -3769,7 +3769,7 @@ module.exports = {
|
||||
NA: '不涉及',
|
||||
reviewAndPass: '审查通过',
|
||||
reviewAndReturn: '审查退回',
|
||||
electroniccontrollerparameter: '电子控制器参数',
|
||||
electroniccontrollerparameter: '控制器参数',
|
||||
marketRegulationListDetails: '市场法规清单详情',
|
||||
marketRegulationList: '市场法规清单',
|
||||
onlyDataWithTheCurrentCanBeManipulated: '仅能操作责任人为当前用户的数据',
|
||||
@@ -3944,4 +3944,33 @@ module.exports = {
|
||||
Processdetails:'流程详情',
|
||||
matchempty:'匹配项为空',
|
||||
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>
|
||||
</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-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-col :span="12">-->
|
||||
<!-- <div class="box-title-text">-->
|
||||
@@ -638,6 +655,22 @@
|
||||
</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-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-col :span="12" v-if="formInline.taskConfirmEndTime">
|
||||
<div class="box-title-text">
|
||||
@@ -770,7 +803,14 @@
|
||||
message: this.$t('configurationItem') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
]
|
||||
],
|
||||
remark:[
|
||||
{
|
||||
max: 500,
|
||||
message: this.$t('remarks') + this.$t('cannotExceed') + 500 + this.$t('Characters'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
},
|
||||
disabled: false,
|
||||
flowdisabled: false,
|
||||
@@ -1259,6 +1299,11 @@
|
||||
::v-deep .ant-form-item-with-help {
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
.itemModel-text {
|
||||
width: calc(100% - 130px);
|
||||
display: inline-block;
|
||||
margin-top: 2px;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.ant-input-disabled {
|
||||
|
||||
@@ -891,6 +891,13 @@
|
||||
ellipsis: true,
|
||||
scopedSlots: { customRender: 'CertificationProgress' }
|
||||
},
|
||||
{
|
||||
title: this.$t('remarks'),
|
||||
align: 'left',
|
||||
dataIndex: 'remark',
|
||||
width: 210,
|
||||
ellipsis: true,
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
align: 'left',
|
||||
|
||||
@@ -23,15 +23,15 @@
|
||||
:triggerChange="false" :dictCode="'brand'"/>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('configurationItem')">
|
||||
<span>{{$t('configurationItem')}}</span>
|
||||
</div>
|
||||
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('configurationItem')"
|
||||
v-model="queryParam.ipdInfo"></a-input>
|
||||
</div>
|
||||
</a-col>
|
||||
<!-- <a-col :md="6" :sm="8">-->
|
||||
<!-- <div class="box-title-text">-->
|
||||
<!-- <div class="title-text" :title="$t('configurationItem')">-->
|
||||
<!-- <span>{{$t('configurationItem')}}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('configurationItem')"-->
|
||||
<!-- v-model="queryParam.ipdInfo"></a-input>-->
|
||||
<!-- </div>-->
|
||||
<!-- </a-col>-->
|
||||
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
|
||||
<a-col :md="6" :sm="24">
|
||||
|
||||
@@ -161,14 +161,14 @@
|
||||
ellipsis: true,
|
||||
dataIndex: 'brandText'
|
||||
},
|
||||
{
|
||||
title: this.$t('configurationItem'),
|
||||
align: 'left',
|
||||
width: 180,
|
||||
sorter:true,
|
||||
ellipsis: true,
|
||||
dataIndex: 'ipdInfo'
|
||||
},
|
||||
// {
|
||||
// title: this.$t('configurationItem'),
|
||||
// align: 'left',
|
||||
// width: 180,
|
||||
// sorter:true,
|
||||
// ellipsis: true,
|
||||
// dataIndex: 'ipdInfo'
|
||||
// },
|
||||
{
|
||||
title: this.$t('explain'),
|
||||
align: 'left',
|
||||
|
||||
+108
-23
@@ -15,42 +15,52 @@
|
||||
|
||||
<div class="content-text">
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('entryName')">{{$t('entryName')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.projectNameId"
|
||||
>{{queryForm.projectNameId}}</span>
|
||||
<span class="text-field-left" :title="$t('power')">{{$t('power')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.power"
|
||||
>{{queryForm.power}}</span>
|
||||
</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">
|
||||
<span class="text-field-left" :title="$t('brand')">{{$t('brand')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.brandText"
|
||||
>{{queryForm.brandText}}</span>
|
||||
</div>
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
|
||||
<span class="text-field-right text-field-right-color"
|
||||
:title="queryForm.ipdInfo"
|
||||
@click="urlClick(queryForm.ipdInfo)"
|
||||
>{{queryForm.ipdInfo}}</span>
|
||||
<span class="text-field-left" :title="$t('projectStatus')">{{$t('projectStatus')}}</span>
|
||||
<span class="text-field-right"
|
||||
:title="queryForm.projectStatus_dictText"
|
||||
>{{queryForm.projectStatus_dictText}}</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 class="content-text">
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.createBy"
|
||||
>{{queryForm.createBy}}</span>
|
||||
<span class="text-field-right" :title="queryForm.regulationOwnerIdName"
|
||||
>{{queryForm.regulationOwnerIdName}}</span>
|
||||
</div>
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('dehicleDevelopmentPlan')">{{$t('dehicleDevelopmentPlan')}}</span>
|
||||
<span class="text-field-right text-field-right-color"
|
||||
:title="queryForm.vehicleDevelopmentPlan"
|
||||
@click="urlClick(queryForm.vehicleDevelopmentPlan)"
|
||||
>{{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>
|
||||
<span class="text-field-left" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
|
||||
<span class="text-field-right"
|
||||
:title="queryForm.engineeringInterfacePersonName"
|
||||
>{{queryForm.engineeringInterfacePersonName}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-text">
|
||||
@@ -60,6 +70,32 @@
|
||||
>{{queryForm.explanation}}</span>
|
||||
</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="header-text">
|
||||
{{$t('complianceCertificationProgram')}}
|
||||
@@ -136,12 +172,31 @@
|
||||
},
|
||||
selectedRowKeys: [],
|
||||
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: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getForm()
|
||||
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')
|
||||
if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) {
|
||||
this.userInfo().userRoleList.forEach(res => {
|
||||
@@ -163,6 +218,23 @@
|
||||
} else {
|
||||
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 {
|
||||
this.queryForm = {}
|
||||
}
|
||||
@@ -201,7 +273,20 @@
|
||||
downloadFile('/platform/projectLibraryBase/exportProjectProgressStatisticsXls',
|
||||
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() {
|
||||
this.$refs.versionStatisticsRef.addModel(JSON.parse(JSON.stringify(this.selectedRowKeys)))
|
||||
},
|
||||
|
||||
+594
-171
@@ -11,16 +11,49 @@
|
||||
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||
<!-- 项目基本信息-->
|
||||
<div class="header-text">
|
||||
{{$t('basicInformationOfParameters')}}
|
||||
</div>
|
||||
<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('entryName')">{{$t('entryName')}}</span>
|
||||
<span class="title-text-text" :title="$t('power')">{{$t('power')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="projectNameId">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('entryName')"
|
||||
v-model="formInline.projectNameId"></a-input>
|
||||
<a-form-model-item class="itemModel" prop="power">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('power')"
|
||||
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>
|
||||
</div>
|
||||
</a-col>
|
||||
@@ -44,26 +77,41 @@
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<!-- <span class="Required">*</span>-->
|
||||
<span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('projectStatus')">{{$t('projectStatus')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="ipdInfo">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('configurationItem')"
|
||||
v-model="formInline.ipdInfo"></a-input>
|
||||
<a-form-model-item class="itemModel-multi" prop="projectStatus">
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.projectStatus"
|
||||
:disabled="disabled"
|
||||
:placeholder="$t('PleaseSelect')+$t('projectStatus')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'project_status'"/>
|
||||
</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('certificationProgram')">{{$t('certificationProgram')}}</span>
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('statisticalNodes')">{{$t('statisticalNodes')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="attestationPlan">
|
||||
<a-input class="box-input"
|
||||
:disabled="disabled"
|
||||
:maxLength="200"
|
||||
v-model="formInline.attestationPlan"
|
||||
:placeholder="$t('PleaseEnter')+$t('certificationProgram')"/>
|
||||
<a-form-model-item class="itemModel" prop="dutyDepart">
|
||||
<a-select :placeholder="$t('PleaseSelect')+$t('statisticalNodes')"
|
||||
allowClear
|
||||
show-search
|
||||
mode="multiple"
|
||||
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>
|
||||
</div>
|
||||
</a-col>
|
||||
@@ -72,19 +120,68 @@
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('dehicleDevelopmentPlan')">{{$t('dehicleDevelopmentPlan')}}</span>
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'vehicleDevelopmentPlan'">
|
||||
<a-input class="box-input"
|
||||
:disabled="disabled"
|
||||
:maxLength="200"
|
||||
v-model="formInline.vehicleDevelopmentPlan"
|
||||
:placeholder="$t('PleaseEnter')+$t('dehicleDevelopmentPlan')"/>
|
||||
<a-form-model-item class="itemModel" :prop="'regulationOwnerIdName'">
|
||||
<PersonnelSelection :query="{db_field_name:'regulationOwnerId',db_field_txt:$t('regulatoryEngineer')}"
|
||||
:isSingleChoice="true"
|
||||
:personneQuery="formInline"
|
||||
@change="PersonnelSelectionChange"
|
||||
v-model="formInline.regulationOwnerIdName"/>
|
||||
</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('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="title-text">
|
||||
<span class="title-text-text" :title="$t('explain')">{{$t('explain')}}</span>
|
||||
@@ -98,146 +195,301 @@
|
||||
</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('projectStatus')">{{$t('projectStatus')}}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <a-form-model-item class="itemModel" prop="projectStatus">-->
|
||||
<!-- <j-dict-select-tag class="box-input" v-model="formInline.projectStatus"-->
|
||||
<!-- :disabled="disabled"-->
|
||||
<!-- @input="handleInput('projectStatus')"-->
|
||||
<!-- :placeholder="$t('PleaseSelect')+$t('projectStatus')"-->
|
||||
<!-- :type="'select'"-->
|
||||
<!-- :triggerChange="false" :dictCode="'project_status'"/>-->
|
||||
<!-- </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('brand')">{{$t('brand')}}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <a-form-model-item class="itemModel" :prop="'brand'">-->
|
||||
<!-- <j-dict-select-tag v-model="formInline.brand"-->
|
||||
<!-- :placeholder="$t('PleaseSelect')+$t('brand')"-->
|
||||
<!-- :type="'select'"-->
|
||||
<!-- :triggerChange="false" :dictCode="'brand'"/>-->
|
||||
<!-- </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('StudioEngineer')">{{$t('StudioEngineer')}}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <a-form-model-item class="itemModel-multi" :prop="'studioEngineerName'">-->
|
||||
<!-- <PersonnelSelection :query="{db_field_name:'studioEngineer',db_field_txt:$t('StudioEngineer')}"-->
|
||||
<!-- :isSingleChoice="true"-->
|
||||
<!-- :personneQuery="formInline"-->
|
||||
<!-- v-if="visible"-->
|
||||
<!-- @change="PersonnelSelectionChange"-->
|
||||
<!-- :disabled="disabled"-->
|
||||
<!-- v-model="formInline.studioEngineerName"/>-->
|
||||
<!-- </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('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <a-form-model-item class="itemModel-multi" :prop="'certificationEngineerName'">-->
|
||||
<!-- <PersonnelSelection-->
|
||||
<!-- :query="{db_field_name:'certificationEngineer',db_field_txt:$t('certifiedEngineer')}"-->
|
||||
<!-- :personneQuery="formInline"-->
|
||||
<!-- v-if="visible"-->
|
||||
<!-- @change="PersonnelSelectionChange"-->
|
||||
<!-- :disabled="disabled"-->
|
||||
<!-- v-model="formInline.certificationEngineerName"/>-->
|
||||
<!-- </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('DigitalPlatform')">{{$t('DigitalPlatform')}}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <a-form-model-item class="itemModel" :prop="'digitalPlatform'">-->
|
||||
<!-- <a-input class="box-input"-->
|
||||
<!-- :disabled="disabled"-->
|
||||
<!-- v-model="formInline.digitalPlatform"-->
|
||||
<!-- :placeholder="$t('PleaseEnter')+$t('DigitalPlatform')"/>-->
|
||||
<!-- </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('ModelPlatform')">{{$t('ModelPlatform')}}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <a-form-model-item class="itemModel" prop="vehiclePlatform">-->
|
||||
<!-- <a-input class="box-input"-->
|
||||
<!-- :disabled="disabled"-->
|
||||
<!-- v-model="formInline.vehiclePlatform"-->
|
||||
<!-- :placeholder="$t('PleaseEnter')+$t('ModelPlatform')"/>-->
|
||||
<!-- </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('certificationProgram')">{{$t('certificationProgram')}}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <a-form-model-item class="itemModel" prop="attestationPlan">-->
|
||||
<!-- <a-input class="box-input"-->
|
||||
<!-- :disabled="disabled"-->
|
||||
<!-- v-model="formInline.attestationPlan"-->
|
||||
<!-- :placeholder="$t('PleaseEnter')+$t('certificationProgram')"/>-->
|
||||
<!-- </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('configurationInformation')">{{$t('configurationInformation')}}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <a-form-model-item class="itemModel" prop="ipdInfo">-->
|
||||
<!-- <a-input class="box-input"-->
|
||||
<!-- :disabled="disabled"-->
|
||||
<!-- v-model="formInline.ipdInfo"-->
|
||||
<!-- :placeholder="$t('PleaseEnter')+$t('configurationInformation')"/>-->
|
||||
<!-- </a-form-model-item>-->
|
||||
<!-- </div>-->
|
||||
<!-- <!– ^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$-->
|
||||
<!-- –>-->
|
||||
<!-- </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('explain')">{{$t('explain')}}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <a-form-model-item class="itemModel" prop="explanation">-->
|
||||
<!-- <a-textarea :placeholder="$t('pleaseEnter')+$t('explain')"-->
|
||||
<!-- v-model="formInline.explanation"-->
|
||||
<!-- :rows="4"/>-->
|
||||
<!-- </a-form-model-item>-->
|
||||
<!-- </div>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- </a-row>-->
|
||||
<!-- 电池备案记录-->
|
||||
<div class="header-text">
|
||||
{{$t('Batteryfilingrecord')}}
|
||||
</div>
|
||||
<!-- 型号信息-->
|
||||
<div class='header-title'>
|
||||
<span class='header-title-text'>{{$t('Modelinformation')}}</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('productModel')">{{$t('productModel')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="productModel">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('productModel')"
|
||||
v-model="formInline.productModel"></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('Electriccellproductionenterprises')">{{$t('Electriccellproductionenterprises')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="Electriccellproductionenterprises">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Electriccellproductionenterprises')"
|
||||
v-model="formInline.cellEnterprise"></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('Assemblymanufacturer')">{{$t('Assemblymanufacturer')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel-multi" prop="Assemblymanufacturer">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Assemblymanufacturer')"
|
||||
v-model="formInline.assemblyEnterprise"></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('PartNumberCN')">{{$t('PartNumberCN')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="PartNumberCN">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('PartNumberCN')"
|
||||
v-model="formInline.partNumberCn"></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('PartNumberEU')">{{$t('PartNumberEU')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel-multi" prop="PartNumberEU">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('PartNumberEU')"
|
||||
v-model="formInline.partNumberEn"></a-input>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 电池国标码-->
|
||||
<div class='header-title'>
|
||||
<span class='header-title-text'>{{$t('Batterynationalcode')}}</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('bitfilecode')">{{$t('bitfilecode')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="bitfilecode">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('bitfilecode')"
|
||||
v-model="formInline.filingCode"></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('Vendorcode') + '(1~3)'">{{$t('Vendorcode') + '(1~3)'}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="endorcode">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Vendorcode') + '(1~3)'"
|
||||
v-model="formInline.supplierCode"></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('Productclasscode') + '(4)'">{{$t('Productclasscode') + '(4)'}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="Productclasscode">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Productclasscode') + '(4)'"
|
||||
v-model="formInline.productTypeCode"></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('Batterytypecode') + '(5)'">{{$t('Batterytypecode') + '(5)'}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="Batterytypecode">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Batterytypecode') + '(5)'"
|
||||
v-model="formInline.batteryTypeCode"></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('Specificationcode') + '(6~7)'">{{$t('Specificationcode') + '(6~7)'}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel-multi" prop="Specificationcode">
|
||||
<a-input class="box-input" :maxLength="200" :placeholder="$t('PleaseEnter')+$t('Specificationcode') + '(6~7)'"
|
||||
v-model="formInline.specificationCode"></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('Traceinformationcode') + '(8~14)'">{{$t('Traceinformationcode') + '(8~14)'}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel-multi" prop="Traceinformationcode">
|
||||
<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-spin>
|
||||
<div class="drawer-bootom-button">
|
||||
@@ -249,8 +501,20 @@
|
||||
|
||||
<script>
|
||||
import PersonnelSelection from '@/components/PersonnelSelection/index'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
|
||||
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 {
|
||||
name: 'addModel',
|
||||
@@ -324,6 +588,30 @@
|
||||
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: [
|
||||
{
|
||||
max: 200,
|
||||
@@ -345,6 +633,13 @@
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
targetMarket: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('targetMarket') + this.$t('cannotEmpty'),
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
brand: [
|
||||
{
|
||||
required: true,
|
||||
@@ -371,24 +666,97 @@
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
certificationEngineerName: [
|
||||
dutyDepart: [
|
||||
{
|
||||
max: 100,
|
||||
message: this.$t('certifiedEngineer') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
|
||||
required: true,
|
||||
message: this.$t('statisticalNodes') + this.$t('cannotEmpty'),
|
||||
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,
|
||||
previewVisible: false,
|
||||
previewImage: '',
|
||||
cut: '',
|
||||
fileList: [],
|
||||
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() {
|
||||
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: {
|
||||
...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) {
|
||||
getAction('project/projectNameInfoEO/list', {}).then((res) => {
|
||||
if (res.success) {
|
||||
@@ -397,9 +765,32 @@
|
||||
let content = this.projectNameList.filter(res => {
|
||||
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
|
||||
console.log(this.formInline)
|
||||
this.formInline.engineeringInterfacePersonName = this.formInline.engineeringInterfacePersonName
|
||||
this.formInline.regulationOwnerIdName = this.formInline.regulationOwnerIdName
|
||||
this.formInline = { ...this.formInline }
|
||||
this.$forceUpdate()
|
||||
}
|
||||
} else {
|
||||
this.projectNameList = []
|
||||
@@ -411,8 +802,12 @@
|
||||
this.title = this.$t('add')
|
||||
this.formInline = {}
|
||||
this.getNameList()
|
||||
this.formInline.studioEngineerName = this.userInfo().username
|
||||
this.formInline.studioEngineer = this.userInfo().id
|
||||
this.getFirstLevelDutyTerritory()
|
||||
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 = { ...this.formInline }
|
||||
this.$nextTick(() => {
|
||||
@@ -422,6 +817,9 @@
|
||||
editModel(value) {
|
||||
this.visible = true
|
||||
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.$nextTick(() => {
|
||||
this.$refs.ruleForm.clearValidate()
|
||||
@@ -443,6 +841,7 @@
|
||||
Action = postAction
|
||||
}
|
||||
let query = JSON.parse(JSON.stringify(this.formInline))
|
||||
delete query.urlList
|
||||
Object.keys(query).forEach(res => {
|
||||
if (query[res] && query[res] instanceof Array) {
|
||||
query[res] = query[res].join(',')
|
||||
@@ -582,7 +981,31 @@
|
||||
height: 40px;
|
||||
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 {
|
||||
color: red;
|
||||
margin-right: 4px;
|
||||
|
||||
+7
@@ -820,6 +820,13 @@
|
||||
ellipsis: true,
|
||||
scopedSlots: { customRender: 'nameOfManufacturer' }
|
||||
},
|
||||
{
|
||||
title: this.$t('remarks'),
|
||||
align: 'left',
|
||||
dataIndex: 'remark',
|
||||
width: 180,
|
||||
ellipsis: true,
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
align: 'left',
|
||||
|
||||
+98
-17
@@ -11,7 +11,10 @@
|
||||
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<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'>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
@@ -21,7 +24,7 @@
|
||||
<span class="title-text-text" :title="$t('Nodename')">{{$t('Nodename')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel"
|
||||
:prop="'list.'+index+'.nodeName'"
|
||||
:prop="'listUp.'+index+'.nodeName'"
|
||||
:rules="[{ required:true,
|
||||
message: $t('Nodename') + $t('cannotEmpty'), trigger: 'blur'}]"
|
||||
>
|
||||
@@ -50,7 +53,55 @@
|
||||
</div>
|
||||
</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;' 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" />
|
||||
</a-row>
|
||||
</div>
|
||||
@@ -77,7 +128,8 @@
|
||||
visible: false,
|
||||
confirmLoading: false,
|
||||
formInline: {
|
||||
list:[{}]
|
||||
listUp:[{}],
|
||||
listDown:[{}],
|
||||
},
|
||||
rules: {
|
||||
},
|
||||
@@ -88,15 +140,27 @@
|
||||
},
|
||||
methods: {
|
||||
addClick(index){
|
||||
if(this.formInline.list.length > 19){
|
||||
if(this.formInline.listUp.length > 19){
|
||||
this.$message.warning(this.$t('maximum'))
|
||||
}else{
|
||||
this.formInline.list.splice(index + 1, 0, {})
|
||||
this.formInline.listUp.splice(index + 1, 0, {})
|
||||
}
|
||||
this.formInline = { ...this.formInline }
|
||||
},
|
||||
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 }
|
||||
},
|
||||
edit() {
|
||||
@@ -107,13 +171,14 @@
|
||||
this.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) {
|
||||
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){
|
||||
this.formInline.list=[{}]
|
||||
this.formInline.listUp=[{}]
|
||||
this.formInline.listDown=[{}]
|
||||
}
|
||||
console.log(this.formInline.list)
|
||||
|
||||
}
|
||||
})
|
||||
@@ -121,14 +186,23 @@
|
||||
handleOk() {
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
if (valid) {
|
||||
if(this.formInline.list){
|
||||
this.formInline.list.forEach((item,index) => {
|
||||
if(this.formInline.listUp){
|
||||
this.formInline.listUp.forEach((item,index) => {
|
||||
item.projectId = this.$route.query.id
|
||||
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 = {
|
||||
...this.formInline,
|
||||
@@ -160,12 +234,14 @@
|
||||
},
|
||||
handleCancel() {
|
||||
this.formInline = {
|
||||
list:[{}]
|
||||
listUp:[{}],
|
||||
listDown:[{}],
|
||||
}
|
||||
this.visible = false
|
||||
},
|
||||
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 {*/
|
||||
/* margin-bottom: 20px;*/
|
||||
/*}*/
|
||||
.header-text {
|
||||
font-size: 16px;
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
|
||||
}
|
||||
.itemModel .ant-form-item-control-wrapper {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -226,6 +226,24 @@
|
||||
</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-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>
|
||||
</a-form-model>
|
||||
</a-spin>
|
||||
@@ -548,4 +566,10 @@
|
||||
::v-deep .ant-form-item-with-help {
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
.itemModel-text {
|
||||
width: calc(100% - 130px);
|
||||
display: inline-block;
|
||||
margin-top: 2px;
|
||||
}
|
||||
</style>
|
||||
@@ -222,6 +222,22 @@
|
||||
</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-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-spin>
|
||||
<div class="drawer-bootom-button" v-if="button">
|
||||
@@ -325,7 +341,14 @@
|
||||
message: this.$t('Deliverables') + this.$t('cannotEmpty'),
|
||||
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 {
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
.itemModel-text {
|
||||
width: calc(100% - 130px);
|
||||
display: inline-block;
|
||||
margin-top: 2px;
|
||||
}
|
||||
</style>
|
||||
+7
@@ -429,6 +429,13 @@
|
||||
ellipsis: true,
|
||||
scopedSlots: { customRender: 'deliverableTemplate' }
|
||||
},
|
||||
{
|
||||
title: this.$t('remarks'),
|
||||
align: 'left',
|
||||
dataIndex: 'remark',
|
||||
width: 330,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
align: 'left',
|
||||
|
||||
Reference in New Issue
Block a user