Merge branch 'master' into 'dev_20230526_Mobile'
# Conflicts: # jero-web/src/common/lang/en-us.js # jero-web/src/common/lang/zh-cn.js # jero-web/src/components/tools/UserMenu.vue
This commit is contained in:
@@ -645,10 +645,10 @@ ALTER TABLE `project_task_planning`
|
||||
ADD COLUMN `seven` datetime(0) NULL COMMENT '小批量生产阶段' AFTER `six`,
|
||||
ADD COLUMN `eight` datetime(0) NULL COMMENT '大规模生产阶段' AFTER `seven`;
|
||||
|
||||
-- 工作流数据库-增加固定数据 2023-05-17 未同步生产环境
|
||||
-- 工作流数据库-增加固定数据 2023-05-17 已同步生产环境
|
||||
INSERT INTO `t_form`(`OBJECT_ID`, `CODE`, `CREATE_TIME`, `WIDGET_JSON`, `JSON`, `NAME`, `SHOW_KEY`, `IS_DELETED`, `MODEL_ID`, `JSON_EVAL`, `HTML`, `RUN_TYPE`, `CATEGORY_ID`, `HTML_READONLY`) VALUES ('xgjfwlc', '0007', '2023-05-17 13:52:26', NULL, NULL, '修改交付物流程', NULL, 0, '15007', NULL, NULL, 'json', '4bdf0b396b4aa6ea10dd5e19956a1e22', NULL);
|
||||
|
||||
-- 最近浏览表 2023-06-08 未同步生产环境
|
||||
-- 最近浏览表 2023-06-08 已同步生产环境
|
||||
CREATE TABLE `recent_browse` (
|
||||
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||
@@ -660,6 +660,9 @@ CREATE TABLE `recent_browse` (
|
||||
`browse_data_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览数据id',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '最近浏览' ROW_FORMAT = Dynamic;
|
||||
-- 菜单增加 上报库详情-一般导出权限 2023-06-16 已同步生产环境
|
||||
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `menu_en`) VALUES ('1669532516277075970', '1552487412749369345', '一般导出', NULL, NULL, NULL, NULL, 2, 'report:detail:export:general', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2023-06-16 10:29:05', NULL, NULL, 0, 0, '1', 0, 'General export');
|
||||
|
||||
|
||||
-- 认证清单表 交付物字段扩大 2023-06-21 未同步生产环境
|
||||
ALTER TABLE `project_certification_inventory`
|
||||
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package com.jero.common.util;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 实体工具类
|
||||
*/
|
||||
public class BeanUtils {
|
||||
/**
|
||||
* 实体对象转Map
|
||||
* @param entity
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> Map<String, Object> entityToMap(T entity) {
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
|
||||
List<Field> fieldList = new ArrayList<>();
|
||||
|
||||
Class<?> clazz = entity.getClass();
|
||||
Field[] fields = clazz.getDeclaredFields();
|
||||
fieldList.addAll(Arrays.asList(fields));
|
||||
|
||||
Field[] superFields = clazz.getSuperclass().getDeclaredFields();
|
||||
fieldList.addAll(Arrays.asList(superFields));
|
||||
|
||||
for (Field field : fieldList) {
|
||||
|
||||
field.setAccessible(true);
|
||||
|
||||
try {
|
||||
|
||||
map.put(field.getName(), field.get(entity));
|
||||
|
||||
} catch (IllegalAccessException e) {
|
||||
|
||||
e.printStackTrace();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return map;
|
||||
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -220,7 +220,7 @@ public class CommonUtils {
|
||||
*/
|
||||
public static boolean limitFileSuffix(String fileName,String[] fileSuffixLimits){
|
||||
final List<String> fileNameList = Arrays.asList(fileSuffixLimits);
|
||||
boolean isExists = fileNameList.stream().anyMatch(name -> fileName.substring(0,fileName.lastIndexOf('.')).contains(name)||fileName.substring(fileName.lastIndexOf('.')).equals(name));
|
||||
boolean isExists = fileNameList.stream().anyMatch(name -> fileName.substring(0,fileName.lastIndexOf('.')).contains(name)||fileName.substring(fileName.lastIndexOf('.')).contains(name));
|
||||
return isExists;
|
||||
}
|
||||
/**
|
||||
|
||||
+5
-1
@@ -127,7 +127,11 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
|
||||
@Cacheable(value = CacheConstant.SYS_DICT_CACHE,key = "#code+':'+#key+#cut")
|
||||
public String queryDictTextByKeyEn(String code, String key,String cut) {
|
||||
log.debug("无缓存dictText的时候调用这里!");
|
||||
return sysDictMapper.queryDictTextByKeyEn(code, key);
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
return sysDictMapper.queryDictTextByKey(code, key);
|
||||
}else{
|
||||
return sysDictMapper.queryDictTextByKeyEn(code, key);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
@@ -23,6 +23,7 @@ public interface ParamsCollectManifestEOMapper extends BaseMapper<ParamsCollectM
|
||||
|
||||
List<ParamsCollectManifestEO> listInfoOfTodoCenter(@Param("manifestIdList") List<String> manifestIdList);
|
||||
List<Map<String, Object>> listInfoForExport(@Param("paramsCollectManifestEO") ParamsCollectManifestEO paramsCollectManifestEO, @Param("ids") String ids);
|
||||
List<Map<String, Object>> listInfoForExportExportTitle(@Param("paramsCollectManifestEO") ParamsCollectManifestEO paramsCollectManifestEO, @Param("ids") String ids);
|
||||
List<ParamsCollectManifestEO> listInfoOfTodoCenter();
|
||||
|
||||
// 查询控件类型为 标题的 参数项
|
||||
|
||||
+13
@@ -94,6 +94,19 @@
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<select id="listInfoForExportExportTitle" resultType="java.util.LinkedHashMap">
|
||||
select *
|
||||
from params_collect_manifest
|
||||
<include refid="BaseQuerySql"/>
|
||||
<if test="ids !=null and ids !=''">
|
||||
AND id in
|
||||
<foreach collection="ids.split(',')" index="index" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
order by del_flag desc, add_flag desc, change_flag desc, nio_number asc
|
||||
</select>
|
||||
|
||||
<select id="listInfoForExport" resultType="java.util.LinkedHashMap">
|
||||
select *
|
||||
from params_collect_manifest
|
||||
|
||||
+113
-15
@@ -2134,7 +2134,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
List<ParamsCollectManifestEO> list = list(queryWrapper);
|
||||
int number = (int) list.stream().filter(e -> CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.getState())
|
||||
|| CollectManifestStateEnum.CHANGE.getValue().equals(e.getState())).count();
|
||||
if (number == list.size() && list.size() > 0) {
|
||||
if (number == list.size() && list.size() >= 0) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -3520,7 +3520,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
paramsCollectManifestEO.setParamsManifestId(paramsManifestId);
|
||||
List<ParamsCollectManifestEO> list = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
|
||||
// 过滤出 状态为:待发起收集,且工程接口人处为空的参数项
|
||||
list = list.stream().filter(e -> CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.getState()) && StringUtils.isBlank(e.getSdt())).collect(Collectors.toList());
|
||||
list = list.stream().filter(e -> CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.getState())).collect(Collectors.toList());
|
||||
|
||||
List<ParamsCollectManifestEO> updateCollectManifestEOList = new ArrayList<>();
|
||||
if (CollectionUtil.isNotEmpty(list)) {
|
||||
@@ -3789,9 +3789,10 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
+ "3.If the control type is drop-down multi-selection, multiple entries are separated by English or Chinese exclamation points\n"
|
||||
+ "4.Configuration data is filled in according to the sequence of control type, and if there are multiple control types, it needs to be separated by \"#\"\n"
|
||||
+ "5.When the control contains multiple component types, if you fill in only some of the information, you need to distinguish blank data with \"#\"\n"
|
||||
+ "6.When filling in, start in column G and do not modify information such as NIO number and parameter name\n"
|
||||
+ "7.File fields are file type, must create a folder in the directory of the same level as the file with the name of the nio number and place the file in the folder. Assume that the file is saved in the A number B.pdf,Should fill in A/B.pdf\n"
|
||||
+ "8.When importing into the system, you need to put the Excel into a folder, place other attachment files correctly as required, and finally compress the folder into zip format for import\n";
|
||||
+ "6.If the value contains multiple parameters, copy the row, insert and paste the contents of the row, and enter the corresponding parameter values in the newly pasted row\n"
|
||||
+ "7.When filling in, start in column G and do not modify information such as NIO number and parameter name\n"
|
||||
+ "8.File fields are file type, must create a folder in the directory of the same level as the file with the name of the nio number and place the file in the folder. Assume that the file is saved in the A number B.pdf,Should fill in A/B.pdf\n"
|
||||
+ "9.When importing into the system, you need to put the Excel into a folder, place other attachment files correctly as required, and finally compress the folder into zip format for import\n";
|
||||
} else {
|
||||
explanation = "填写说明\n"
|
||||
+ "1.导入数据从第三行开始,第一行为表头,第二行为填写说明,第三行是示例数据,需要从第四行开始填写\n"
|
||||
@@ -3799,9 +3800,10 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
+ "3.控件类型为下拉多选时,填写多个时采用英文或中文感叹号分割\n"
|
||||
+ "4.配置数据按照控件类型顺序进行填写,若存在多种控件类型填写时需要通过“#”隔开\n"
|
||||
+ "5.控件中包含多种组件类型时,若只填写其中部分信息需要用#区分空白数据\n"
|
||||
+ "6.填写时从G列开始,请勿修改NIO编号和参数名称等信息\n"
|
||||
+ "7.上传附件为文件属性,填写时需要在本文件同级目录下以NIO编号为名称建立文件夹,并在文件夹下放置文件且该文件夹下只能有一层级,假设在NIO.XXXX下放置了B.pdf,则应填写NIO.XXXX/B.pdf\n"
|
||||
+ "8.导入系统时,需要将该Excel放入文件夹内,并按照要求正确放置其他附件文件,最后将文件夹压缩为zip格式进行导入\n";
|
||||
+ "6.填写值中包含多值参数时,需要复制行并插入粘贴行内容,并在新粘贴的行内填写相对应配置的参数值\n"
|
||||
+ "7.填写时从G列开始,请勿修改NIO编号和参数名称等信息\n"
|
||||
+ "8.上传附件为文件属性,填写时需要在本文件同级目录下以NIO编号为名称建立文件夹,并在文件夹下放置文件且该文件夹下只能有一层级,假设在NIO.XXXX下放置了B.pdf,则应填写NIO.XXXX/B.pdf\n"
|
||||
+ "9.导入系统时,需要将该Excel放入文件夹内,并按照要求正确放置其他附件文件,最后将文件夹压缩为zip格式进行导入\n";
|
||||
}
|
||||
XSSFRow row2 = sheetItems.createRow(1);
|
||||
row2.setHeight((short) 2500);
|
||||
@@ -4276,7 +4278,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
for (int i = 0; i < fieldList.size(); i++) {
|
||||
OnlCgformField onlCgformField = fieldList.get(i);
|
||||
String dbFieldName = onlCgformField.getDbFieldName();
|
||||
if (!"deadline".equals(dbFieldName) && !"cert_category".equals(dbFieldName) && !"description".equals(dbFieldName)) {
|
||||
if (!"deadline".equals(dbFieldName) && !"cert_category".equals(dbFieldName)) {
|
||||
dbFieldList.add(dbFieldName);
|
||||
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
@@ -4346,6 +4348,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
List<String> dbFieldExampleList = new LinkedList<>();
|
||||
|
||||
// 固定列
|
||||
int indexOfDescription = 1; // 参数名称的位置
|
||||
for (int i = 0; i < fieldList.size(); i++) {
|
||||
OnlCgformField onlCgformField = fieldList.get(i);
|
||||
String dbFieldName = onlCgformField.getDbFieldName();
|
||||
@@ -4356,6 +4359,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
|| "control_type".equals(dbFieldName) || "control_verify".equals(dbFieldName) || "control_values".equals(dbFieldName)
|
||||
|| "is_must".equals(dbFieldName) || "references_col".equals(dbFieldName)) {
|
||||
dbFieldList.add(dbFieldName);
|
||||
if ("nio_number".equals(dbFieldName)) {
|
||||
indexOfDescription = i;
|
||||
}
|
||||
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
dbFieldNameList.add(onlCgformField.getDbFieldTxt()); // 字段中文名
|
||||
@@ -4417,6 +4423,26 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
dbFieldList.addAll(dbFieldListConfig);
|
||||
dbFieldNameList.addAll(dbFieldNameListConfig);
|
||||
|
||||
// 认证类别列
|
||||
List<String> dbFieldNameListCC = new LinkedList<>();
|
||||
List<String> dbFieldListCC = new LinkedList<>();
|
||||
// 查询所有认证类别
|
||||
List<SysDictItem> sysDictItemList = sysDictItemService.selectItemsByDictCode("cert_category");
|
||||
if (CutEnum.EN.getValue().equals(cut)) {
|
||||
sysDictItemList.forEach(sysDictItem -> {
|
||||
dbFieldListCC.add(sysDictItem.getItemValue());
|
||||
dbFieldNameListCC.add(sysDictItem.getEnName() + " Number");
|
||||
});
|
||||
|
||||
} else {
|
||||
sysDictItemList.forEach(sysDictItem -> {
|
||||
dbFieldListCC.add(sysDictItem.getItemValue());
|
||||
dbFieldNameListCC.add(sysDictItem.getItemText() + "编号");
|
||||
});
|
||||
}
|
||||
dbFieldList.addAll(dbFieldListCC);
|
||||
dbFieldNameList.addAll(dbFieldNameListCC);
|
||||
|
||||
String[] title = new String[3];
|
||||
String dbFieldStr = StringUtils.join(dbFieldList, ",");
|
||||
String dbFieldNameStr = StringUtils.join(dbFieldNameList, ",");
|
||||
@@ -4438,14 +4464,13 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
|
||||
ParamsCollectManifestEO queryEO = new ParamsCollectManifestEO();
|
||||
queryEO.setParamsManifestId(paramsManifestId);
|
||||
|
||||
String userTypes = paramsCollectManifestVO.getUserTypes();
|
||||
if (userTypes != null && CollectManifestUserTypeEnum.SDT.getValue().equals(userTypes)) {
|
||||
queryEO.setUserTypes(CollectManifestUserTypeEnum.SDT.getValue());
|
||||
queryEO.setSdt(loginUser.getUsername());
|
||||
}
|
||||
|
||||
List<Map<String, Object>> dataList = paramsCollectManifestEOMapper.listInfoForExport(queryEO, null); // 查询导出数据
|
||||
List<Map<String, Object>> dataList = paramsCollectManifestEOMapper.listInfoForExportExportTitle(queryEO, null); // 查询导出数据
|
||||
if (dataList == null || dataList.isEmpty()) {
|
||||
// 没有查到数据,进行提示
|
||||
if (CutEnum.EN.getValue().equals(paramsCollectManifestVO.getCut())) {
|
||||
@@ -4460,6 +4485,57 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
List<String> paramsConfigIdList = paramsConfigEOList.stream().map(ParamsConfigEO::getId).collect(Collectors.toList());
|
||||
List<ParamsConfigDataEO> paramsConfigDataEOList = paramsConfigDataEOService.queryListByConfigIdList(paramsConfigIdList); // 查询所有配置数据
|
||||
|
||||
List<Map<String,Object>> exportDataList = new ArrayList<>();
|
||||
// 配置列多行数据处理
|
||||
for (Map<String, Object> data : dataList) {
|
||||
String controlType = (String)data.get("control_type");
|
||||
if("0".equals(paramsCollectManifestVO.getExportOption()) && "11".equals(controlType)){
|
||||
//不要标题
|
||||
continue;
|
||||
}
|
||||
String id = (String) data.get("id");
|
||||
|
||||
Map<String, List<ParamsConfigDataEO>> paramsConfigDataMap = paramsConfigDataEOList.stream().filter(configDataEO -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.equals(configDataEO.getParamsCollectManifestId(), id)) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.groupingBy(configDataEO -> configDataEO.getParamsConfigId()));
|
||||
|
||||
List<Map<String, Object>> paramsConfigDataCountList = new ArrayList<>();
|
||||
|
||||
for (Map.Entry<String, List<ParamsConfigDataEO>> map : paramsConfigDataMap.entrySet()) {
|
||||
Map<String, Object> paramsConfigDataCountMap = new HashMap<>();
|
||||
paramsConfigDataCountMap.put("key", map.getKey());
|
||||
paramsConfigDataCountMap.put("paramsConfigDataCount", map.getValue().size());
|
||||
paramsConfigDataCountMap.put("value", map.getValue());
|
||||
paramsConfigDataCountList.add(paramsConfigDataCountMap);
|
||||
}
|
||||
|
||||
// 排序 配置数据总数倒序排序
|
||||
Collections.sort(paramsConfigDataCountList, new Comparator<Map<String, Object>>() {
|
||||
@Override
|
||||
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
||||
return o2.get("paramsConfigDataCount").toString().compareTo(o1.get("paramsConfigDataCount").toString());
|
||||
}
|
||||
});
|
||||
|
||||
// 获取出最多行的配置列。
|
||||
if (!paramsConfigDataCountList.isEmpty()) {
|
||||
Map<String, Object> paramsConfigDataMaxCountMap = paramsConfigDataCountList.get(0);
|
||||
String key = (String) paramsConfigDataMaxCountMap.get("key");
|
||||
List<ParamsConfigDataEO> paramsConfigDataEOs = paramsConfigDataMap.get(key);
|
||||
for (ParamsConfigDataEO paramsConfigDataEO : paramsConfigDataEOs) {
|
||||
Map<String, Object> dataTemp = new HashMap<>();
|
||||
data.entrySet().forEach(o -> dataTemp.put(o.getKey(), o.getValue()));
|
||||
exportDataList.add(dataTemp);
|
||||
}
|
||||
} else {
|
||||
exportDataList.add(data);
|
||||
}
|
||||
}
|
||||
|
||||
List<String> nioNumberList = dataList.stream().map(m -> (String) m.get("nio_number")).collect(Collectors.toList());
|
||||
List<CertCategoryParamsInfoPublishEO> certCategoryParamsInfoPublishEOList = certCategoryParamsInfoPublishEOService.queryListByVersionAndNio(paramsTemplateId, paramsTemplatePublishVersion, nioNumberList); //查询所有认证类别参数项
|
||||
|
||||
@@ -4475,7 +4551,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
Map<String, String> stateMap = CollectManifestStateEnum.toMap(cut);
|
||||
|
||||
// 插入配置列和认证类别列数据
|
||||
for (Map<String, Object> record1 : dataList) {
|
||||
for (Map<String, Object> record1 : exportDataList) {
|
||||
|
||||
String paramsCollectManifestId = (String) record1.get("id");
|
||||
String nioNumber = (String) record1.get("nio_number");
|
||||
@@ -4545,7 +4621,13 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
paramsConfigEOList.forEach(paramsConfigEO -> { // 参数配置
|
||||
|
||||
String paramsConfigId = paramsConfigEO.getId();
|
||||
List<ParamsConfigDataEO> paramsConfigDataEOS = paramsConfigDataEOList.stream().filter(e -> paramsConfigId.equals(e.getParamsConfigId()) && paramsCollectManifestId.equals(e.getParamsCollectManifestId())).collect(Collectors.toList()); // 参数配置数据
|
||||
List<ParamsConfigDataEO> paramsConfigDataEOS = paramsConfigDataEOList.stream().filter(e -> {
|
||||
boolean flag = false;
|
||||
if(StringUtils.equals(paramsConfigId,e.getParamsConfigId()) && StringUtils.equals(paramsCollectManifestId,e.getParamsCollectManifestId())){
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList()); // 参数配置数据
|
||||
StringBuilder configDataBuilder = new StringBuilder(); // 重新组合配置数据
|
||||
if (CollectionUtil.isNotEmpty(paramsConfigDataEOS)) {
|
||||
ParamsConfigDataEO paramsConfigDataEO = paramsConfigDataEOS.get(0);
|
||||
@@ -4563,7 +4645,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
fileList.addAll(ossFileList);
|
||||
}
|
||||
}
|
||||
|
||||
paramsConfigDataEOList.remove(paramsConfigDataEO);
|
||||
}
|
||||
|
||||
String configData = configDataBuilder.toString();
|
||||
@@ -4577,7 +4659,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
record1.put("fileList", fileList);
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
return exportDataList;
|
||||
}
|
||||
|
||||
// 导出待填写数据,可以勾选导出
|
||||
@@ -4595,6 +4677,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
ParamsManifestEO paramsManifestEO = paramsManifestEOService.getById(paramsManifestId);
|
||||
String paramsTemplateId = paramsManifestEO.getParamsTemplateId();
|
||||
Integer paramsTemplatePublishVersion = paramsManifestEO.getParamsTemplatePublishVersion();
|
||||
|
||||
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
|
||||
BeanUtils.copyProperties(paramsCollectManifestVO, paramsCollectManifestEO);
|
||||
@@ -4832,6 +4916,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
result.add(record1);
|
||||
}*/
|
||||
|
||||
List<String> nioNumberList = dataList.stream().map(m -> (String) m.getNioNumber()).collect(Collectors.toList());
|
||||
List<CertCategoryParamsInfoPublishEO> certCategoryParamsInfoPublishEOList = certCategoryParamsInfoPublishEOService.queryListByVersionAndNio(paramsTemplateId, paramsTemplatePublishVersion, nioNumberList); //查询所有认证类别参数项
|
||||
|
||||
for (ParamsCollectManifestEO collectManifestEO : exportDataList) {
|
||||
Map<String, Object> record1 = objectToMapDre(collectManifestEO);
|
||||
String controlType = (String) record1.get("control_type");
|
||||
@@ -4844,6 +4931,14 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
record1.put("control_type", controlTypeMap.get(controlType));
|
||||
record1.put("control_verify", controlVerifyMap.get(controlVerify));
|
||||
|
||||
// 认证类别列
|
||||
List<CertCategoryParamsInfoPublishEO> certCategoryParamsInfoPublishEOS = certCategoryParamsInfoPublishEOList.stream().filter(e -> nioNumber.equals(e.getNioNumber())).collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(certCategoryParamsInfoPublishEOS)) {
|
||||
certCategoryParamsInfoPublishEOS.forEach(certCategoryParamsInfoPublishEO -> {
|
||||
record1.put(certCategoryParamsInfoPublishEO.getCertCategory(), certCategoryParamsInfoPublishEO.getParamsNumber());
|
||||
});
|
||||
}
|
||||
|
||||
// 处理参考列,没引用过则不显示该列
|
||||
if (StringUtils.isNotEmpty(paramsManifestEO.getReferencesColName()) && StringUtils.isNotEmpty(collectManifestEO.getReferencesCol())) {
|
||||
List<String> referencesColList = Arrays.asList(collectManifestEO.getReferencesCol().split("#"));
|
||||
@@ -5480,6 +5575,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
|| "is_must".equals(key) || "references_col".equals(key)) {
|
||||
continue;
|
||||
}
|
||||
if(key.length() < 15){
|
||||
continue;
|
||||
}
|
||||
//
|
||||
ParamsConfigDataEO configDataEO = new ParamsConfigDataEO();
|
||||
List<ParamsConfigDataEO> list = paramsConfigDataEOList.stream().filter(e -> collectManifestMap.get(nioNumber).equals(e.getParamsCollectManifestId())
|
||||
|
||||
+4
@@ -106,4 +106,8 @@ public class ParamsCollectManifestVO {
|
||||
//排序规则 ”1“ 顺序 ”2“逆序
|
||||
@TableField(exist = false)
|
||||
private String orderBy;
|
||||
|
||||
//是否导出标题 ”1“ 是 ”0“否
|
||||
@TableField(exist = false)
|
||||
private String exportOption;
|
||||
}
|
||||
|
||||
+9
@@ -213,4 +213,13 @@ public class ParamsReportDetailEOController extends JeroController<ParamsReportD
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "上报库参数项-一般导出")
|
||||
@GetMapping(value = "/exportGeneral")
|
||||
@RequiresPermissions("report:detail:export:general")
|
||||
public void exportGeneral(ParamsReportDetailVO paramsReportDetailVO,
|
||||
HttpServletResponse response,
|
||||
HttpServletRequest request) {
|
||||
this.paramsReportDetailEOService.exportGeneral(paramsReportDetailVO, response, request);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+2
-1
@@ -7,7 +7,8 @@ import java.util.Map;
|
||||
|
||||
public enum ExportTypeEnum {
|
||||
NORMAL("常规导出","1","Normal export"),
|
||||
CUSTOM("自定义导出","2","Custom export");
|
||||
CUSTOM("自定义导出","2","Custom export"),
|
||||
GENERAL("一般导出","3","General export");
|
||||
|
||||
String name;
|
||||
String value;
|
||||
|
||||
+9
@@ -100,6 +100,15 @@
|
||||
<if test="paramsReportDetailVO.paramsManifestId !=null and paramsReportDetailVO.paramsManifestId !=''">
|
||||
AND prd.params_manifest_id = #{paramsReportDetailVO.paramsManifestId}
|
||||
</if>
|
||||
<if test="paramsReportDetailVO.isMust !=null and paramsReportDetailVO.isMust !=''">
|
||||
AND prd.is_must = #{paramsReportDetailVO.isMust}
|
||||
</if>
|
||||
<if test="paramsReportDetailVO.dutyTerritory !=null and paramsReportDetailVO.dutyTerritory !=''">
|
||||
AND prd.duty_territory in
|
||||
<foreach collection="paramsReportDetailVO.dutyTerritory.split(',')" index="" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
</if>
|
||||
</where>
|
||||
|
||||
+6
@@ -73,4 +73,10 @@ public interface IParamsReportDetailEOService extends IService<ParamsReportDetai
|
||||
|
||||
// 导出参数项历史Log信息
|
||||
void exportParamsReportDetailLog(String cut, XSSFWorkbook workbook, String sheetHistoryName, List<Map<String, Object>> allParamsInfoList, XSSFCellStyle headerCellStyle,XSSFCellStyle bodyCellStyle);
|
||||
|
||||
// 一般导出
|
||||
void exportGeneral(ParamsReportDetailVO paramsReportDetailVO, HttpServletResponse response, HttpServletRequest request);
|
||||
|
||||
// 处理数据
|
||||
void disposeData(List<ParamsReportDetailEO> prdEoList, String cut);
|
||||
}
|
||||
|
||||
+561
-14
@@ -12,6 +12,7 @@ import com.jero.common.constant.enums.CutEnum;
|
||||
import com.jero.common.constant.enums.ModuleEnum;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.oss.CosBootUtil;
|
||||
import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
|
||||
@@ -32,7 +33,6 @@ import com.jero.modules.cert.template.enums.ParamsIsMustEnum;
|
||||
import com.jero.modules.ocr.util.LineHumpUtil;
|
||||
import com.jero.modules.oss.entity.OSSFile;
|
||||
import com.jero.modules.oss.service.IOSSFileService;
|
||||
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
|
||||
import com.jero.modules.project.util.Docx4jUtils;
|
||||
import com.jero.modules.project.util.ExcelUtil;
|
||||
import com.jero.modules.project.util.WordUtil;
|
||||
@@ -55,6 +55,7 @@ import org.docx4j.openpackaging.exceptions.Docx4JException;
|
||||
import org.docx4j.openpackaging.packages.SpreadsheetMLPackage;
|
||||
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
|
||||
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.mock.web.MockMultipartFile;
|
||||
@@ -112,6 +113,8 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
||||
@Autowired
|
||||
private IParamsReportDetailLogEOService paramsReportDetailLogEOService;
|
||||
|
||||
@Autowired
|
||||
private IReportCertCategoryParamsInfoEOService reportCertCategoryParamsInfoEOService;
|
||||
|
||||
@Value(value = "${jero.path.upload}")
|
||||
private String uploadpath;
|
||||
@@ -1398,11 +1401,12 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
||||
}
|
||||
|
||||
String configData = configDataBuilderTemp.toString();
|
||||
if (configData.contains("#")) {
|
||||
configData = configData.substring(0, configData.lastIndexOf("#"));
|
||||
if(StringUtils.isNotEmpty(configData)){
|
||||
if (configData.contains("#")) {
|
||||
configData = configData.substring(0, configData.lastIndexOf("#"));
|
||||
}
|
||||
configDataBuilder.append(configData).append(paramsReportDetailVO.getSeparator());
|
||||
}
|
||||
|
||||
configDataBuilder.append(configData).append(paramsReportDetailVO.getSeparator());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1423,7 +1427,7 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
||||
} else {
|
||||
List<ParamsReportConfigDataEO> paramsReportConfigDataEOS = paramsReportConfigDataEOService.queryByConfigIdListAndCollectManifestId(configIdList, paramsCollectManifestId);
|
||||
|
||||
StringBuilder configDataBuilder = new StringBuilder(); // 重新组合配置数据
|
||||
List<String> configDataList = new ArrayList<>(); // 重新组合配置数据
|
||||
|
||||
for (ParamsReportConfigDataEO paramsConfigDataEO : paramsReportConfigDataEOS) {
|
||||
StringBuilder configDataBuilderTemp = new StringBuilder(); // 重新组合配置数据
|
||||
@@ -1458,17 +1462,15 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
||||
}
|
||||
|
||||
configData = configDataBuilderTemp.toString();
|
||||
if (configData.contains("#")) {
|
||||
configData = configData.substring(0, configData.lastIndexOf("#"));
|
||||
if(StringUtils.isNotEmpty(configData)){
|
||||
if (configData.contains("#")) {
|
||||
configData = configData.substring(0, configData.lastIndexOf("#"));
|
||||
}
|
||||
configDataList.add(configData);
|
||||
}
|
||||
|
||||
configDataBuilder.append(configData).append(paramsReportDetailVO.getSeparator());
|
||||
}
|
||||
|
||||
String configDataStr = configDataBuilder.toString();
|
||||
if (configDataStr.contains(paramsReportDetailVO.getSeparator())) {
|
||||
configDataStr = configDataStr.substring(0, configDataStr.lastIndexOf(paramsReportDetailVO.getSeparator()));
|
||||
}
|
||||
String configDataStr = configDataList.stream().distinct().collect(Collectors.joining(paramsReportDetailVO.getSeparator()));
|
||||
record1.put("params_value", configDataStr);
|
||||
|
||||
}
|
||||
@@ -2357,4 +2359,549 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
||||
// }
|
||||
// return map;
|
||||
// }
|
||||
|
||||
|
||||
@Override
|
||||
public void exportGeneral(ParamsReportDetailVO paramsReportDetailVO, HttpServletResponse response, HttpServletRequest request) {
|
||||
OutputStream os = null;
|
||||
OutputStream excelOS = null;
|
||||
XSSFWorkbook workbook = new XSSFWorkbook();
|
||||
String fileOriName = "一般导出";
|
||||
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||
fileOriName = "general";
|
||||
}
|
||||
if (StringUtils.isNotEmpty(paramsReportDetailVO.getExportName())) {
|
||||
fileOriName = paramsReportDetailVO.getExportName();
|
||||
}
|
||||
//创建临时文件夹
|
||||
String fileNowPath = uploadpath + "/tempZip/" + UUID.randomUUID().toString().replace("-", "") + File.separator + fileOriName;
|
||||
File nowFile = new File(fileNowPath);
|
||||
if (nowFile.exists()) {
|
||||
nowFile.delete();
|
||||
}
|
||||
nowFile.mkdirs();
|
||||
try {
|
||||
String fileName = fileOriName + ".xlsx";
|
||||
// 设置表格相关属性
|
||||
String sheetName = "参数项信息";
|
||||
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||
sheetName = "Params data";
|
||||
}
|
||||
XSSFSheet sheetItems = workbook.createSheet(sheetName);
|
||||
String[] titles = this.getWorkbookTitleForExportGeneral(paramsReportDetailVO); // 获取表头
|
||||
|
||||
String[] headers = titles[1].split(",");
|
||||
XSSFCellStyle cellStyle = workbook.createCellStyle();
|
||||
cellStyle.setWrapText(true);
|
||||
cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
|
||||
XSSFCellStyle cellStyle1 = workbook.createCellStyle();
|
||||
cellStyle1.setAlignment(XSSFCellStyle.ALIGN_CENTER);
|
||||
XSSFCellStyle cellStyleLink = workbook.createCellStyle();
|
||||
XSSFFont font = workbook.createFont();
|
||||
font.setColor(HSSFColor.LIGHT_BLUE.index);
|
||||
cellStyleLink.setFont(font);
|
||||
cellStyleLink.setWrapText(true);
|
||||
|
||||
// 查询需要导出的字段
|
||||
String field = titles[0]; // 字符串形式
|
||||
List<String> fieldList = Arrays.asList(field.split(",")); // list形式
|
||||
|
||||
// 查询导出数据
|
||||
List<Map<String, Object>> allParamsInfoList = this.queryForExportGeneral(paramsReportDetailVO, request);
|
||||
|
||||
// 开始处理工作表
|
||||
List<OSSFile> allRelevFileList = new ArrayList<>();
|
||||
|
||||
// 在excel表中添加表头
|
||||
XSSFRow row = sheetItems.createRow(0);
|
||||
for (int i = 0; i < headers.length; i++) {
|
||||
XSSFCell cell = row.createCell(i);
|
||||
XSSFRichTextString text = new XSSFRichTextString(headers[i]);
|
||||
cell.setCellValue(text);
|
||||
cell.setCellStyle(cellStyle1);
|
||||
// 设置单元格宽度
|
||||
String ParamsValues = "参数值";
|
||||
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||
ParamsValues = "Params Values";
|
||||
}
|
||||
if (ParamsValues.equals(headers[i])) {
|
||||
sheetItems.setColumnWidth(i, 80 * 256);
|
||||
} else {
|
||||
sheetItems.setColumnWidth(i, 20 * 256);
|
||||
}
|
||||
}
|
||||
//放文字内容
|
||||
int allRow = 0;
|
||||
for (int rowNum = 0; rowNum < allParamsInfoList.size(); rowNum++) {
|
||||
Map<String, Object> exportDto = allParamsInfoList.get(rowNum);
|
||||
|
||||
// 处理文件
|
||||
List<OSSFile> fileList = (List<OSSFile>) exportDto.get("fileList");
|
||||
if (CollectionUtil.isNotEmpty(fileList)) {
|
||||
allRelevFileList.addAll(fileList);
|
||||
}
|
||||
|
||||
allRow++;
|
||||
XSSFRow row1 = sheetItems.createRow(allRow);
|
||||
for (int cellNum = 0; cellNum < fieldList.size(); cellNum++) {
|
||||
if (ObjectUtils.isNotEmpty(exportDto.get(fieldList.get(cellNum)))) {
|
||||
row1.createCell(cellNum).setCellValue(exportDto.get(fieldList.get(cellNum)).toString());
|
||||
row1.getCell(cellNum).setCellStyle(cellStyle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//下载关联文件内容
|
||||
if (allRelevFileList != null && !allRelevFileList.isEmpty()) {
|
||||
allRelevFileList = allRelevFileList.stream().distinct().collect(Collectors.toList());
|
||||
String exportFile = "导出文件";
|
||||
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||
exportFile = "Export file";
|
||||
}
|
||||
this.downLoadFileList(allRelevFileList, fileNowPath + File.separator + exportFile);
|
||||
}
|
||||
|
||||
String repFileName = fileName.replaceAll("/", "_");
|
||||
excelOS = new FileOutputStream(fileNowPath + File.separator + repFileName);
|
||||
response.setHeader("Content-Disposition",
|
||||
"attachment; filename=\"" + ReadExcel.encodeFileName(fileOriName + ".zip", request) + "\"");
|
||||
response.setContentType("application/force-download");
|
||||
response.flushBuffer();
|
||||
os = response.getOutputStream();
|
||||
workbook.write(excelOS);
|
||||
excelOS.flush();
|
||||
excelOS.close();
|
||||
ZipUtil.zip(fileNowPath, fileNowPath + ".zip");
|
||||
FileInputStream fis = new FileInputStream(fileNowPath + ".zip");
|
||||
int len = 0;
|
||||
while ((len = fis.read()) != -1) {
|
||||
os.write(len);
|
||||
}
|
||||
|
||||
// 添加导出历史
|
||||
String uploadFileName = fileOriName + ".zip";
|
||||
InputStream uploadFileio = new FileInputStream(new File(fileNowPath + ".zip"));
|
||||
MultipartFile mFile = new MockMultipartFile(uploadFileName, uploadFileName, "text/plain", uploadFileio); // 用于上传
|
||||
OSSFile ossFile = ossFileService.uploadLocalOfCos(mFile, "/report", "", CutEnum.CN.getValue()); // 上传导出的压缩包
|
||||
ParamsReportExportHistoryEO paramsReportExportHistoryEO = new ParamsReportExportHistoryEO();
|
||||
paramsReportExportHistoryEO.setExportType(ExportTypeEnum.GENERAL.getValue());
|
||||
paramsReportExportHistoryEO.setExportFileId(ossFile.getId());
|
||||
paramsReportExportHistoryEO.setParamsManifestId(paramsReportDetailVO.getParamsManifestId());
|
||||
paramsReportExportHistoryEO.setExportTime(new Date());
|
||||
paramsReportExportHistoryEOService.add(paramsReportExportHistoryEO);
|
||||
|
||||
uploadFileio.close();
|
||||
os.flush();
|
||||
os.close(); // 后开先关
|
||||
fis.close(); // 先开后关
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error(e.getMessage(), e);
|
||||
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||
throw new JeroBootException("Failed to download file, please try again");
|
||||
} else {
|
||||
throw new JeroBootException("下载文件失败,请重试");
|
||||
}
|
||||
} finally {
|
||||
IOUtils.closeQuietly(os);
|
||||
IOUtils.closeQuietly(excelOS);
|
||||
File tempZipFile = new File(uploadpath + "/tempZip");
|
||||
FileUtil.deleteContents(tempZipFile);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disposeData(List<ParamsReportDetailEO> datas, String cut) {
|
||||
if (CollectionUtils.isNotEmpty(datas)) {
|
||||
// 普通数据字典
|
||||
List<SysDictItem> dictItemList = new ArrayList<>();
|
||||
List<String> dictCodeList = new ArrayList<>();
|
||||
dictCodeList.add("duty_territory");
|
||||
dictCodeList.add("cert_category");
|
||||
for (String dictCode : dictCodeList) {
|
||||
List<SysDictItem> dictItems = sysDictItemService.selectItemsByDictCode(dictCode);
|
||||
dictItemList.addAll(dictItems);
|
||||
}
|
||||
|
||||
for (ParamsReportDetailEO data : datas) {
|
||||
// 处理数据字典字段 中英文切换 认证类型,责任领域
|
||||
List<String> certCategory = Arrays.asList(data.getCertCategory().split(","));
|
||||
List<String> dutyTerritory = Arrays.asList(data.getDutyTerritory().split(","));
|
||||
String certCategoryName = "";
|
||||
String dutyTerritoryName = "";
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
certCategoryName = dictItemList.stream()
|
||||
.filter(e -> certCategory.contains(e.getItemValue()))
|
||||
.map(SysDictItem::getItemText)
|
||||
.collect(Collectors.joining(","));
|
||||
|
||||
dutyTerritoryName = dictItemList.stream()
|
||||
.filter(e -> dutyTerritory.contains(e.getItemValue()))
|
||||
.map(SysDictItem::getItemText)
|
||||
.collect(Collectors.joining(","));
|
||||
|
||||
} else if (CutEnum.EN.getValue().equals(cut)) {
|
||||
certCategoryName = dictItemList.stream()
|
||||
.filter(e -> certCategory.contains(e.getItemValue()))
|
||||
.map(SysDictItem::getEnName)
|
||||
.collect(Collectors.joining(","));
|
||||
|
||||
dutyTerritoryName = dictItemList.stream()
|
||||
.filter(e -> dutyTerritory.contains(e.getItemValue()))
|
||||
.map(SysDictItem::getEnName)
|
||||
.collect(Collectors.joining(","));
|
||||
|
||||
}
|
||||
data.setCertCategory(certCategoryName);
|
||||
data.setDutyTerritory(dutyTerritoryName);
|
||||
|
||||
data.setIsMust(ParamsIsMustEnum.getTextByValue(data.getIsMust(),cut));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> queryForExportGeneral(ParamsReportDetailVO paramsReportDetailVO,HttpServletRequest req) throws IOException {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
|
||||
ParamsReportDetailEO paramsReportDetailEO = new ParamsReportDetailEO();
|
||||
BeanUtils.copyProperties(paramsReportDetailVO, paramsReportDetailEO);
|
||||
String certCategorys = paramsReportDetailEO.getCertCategory();
|
||||
if (StringUtils.isNotEmpty(paramsReportDetailEO.getCertCategory())) {
|
||||
paramsReportDetailEO.setCertCategory(null);
|
||||
}
|
||||
|
||||
QueryWrapper<ParamsReportDetailEO> queryWrapper = QueryGenerator.initQueryWrapper(paramsReportDetailEO, req.getParameterMap());
|
||||
|
||||
if (StringUtils.isNotEmpty(certCategorys)) {
|
||||
queryWrapper.and(query -> {
|
||||
query.lambda().like(ParamsReportDetailEO::getCertCategory, certCategorys);
|
||||
if (StringUtils.contains(certCategorys, ",")) {
|
||||
String[] certCategoryArr = certCategorys.split(",");
|
||||
for (String certCategory : certCategoryArr) {
|
||||
query.or().lambda().like(ParamsReportDetailEO::getCertCategory, certCategory);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
if (StringUtils.isNotEmpty(paramsReportDetailVO.getAllNumber())) {
|
||||
QueryWrapper<ReportCertCategoryParamsInfoEO> rccpiQueryWrap = new QueryWrapper<>();
|
||||
rccpiQueryWrap.lambda().eq(ReportCertCategoryParamsInfoEO::getParamsNumber, paramsReportDetailVO.getAllNumber());
|
||||
List<ReportCertCategoryParamsInfoEO> rccpiEoList = this.reportCertCategoryParamsInfoEOService.list(rccpiQueryWrap);
|
||||
queryWrapper.and(query -> {
|
||||
query.lambda().eq(ParamsReportDetailEO::getNioNumber, paramsReportDetailVO.getAllNumber());
|
||||
if (CollectionUtils.isNotEmpty(rccpiEoList)) {
|
||||
List<String> nioNumbers = rccpiEoList.stream().map(ReportCertCategoryParamsInfoEO::getNioNumber).distinct().collect(Collectors.toList());
|
||||
query.or().lambda().in(ParamsReportDetailEO::getNioNumber, nioNumbers);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (StringUtils.isNotEmpty(paramsReportDetailVO.getIds())) {
|
||||
queryWrapper.lambda().in(ParamsReportDetailEO::getId, Arrays.asList(paramsReportDetailVO.getIds().split(",")));
|
||||
}
|
||||
queryWrapper.orderByDesc("sync_time").orderByAsc("nio_number");
|
||||
|
||||
List<ParamsReportDetailEO> prdEoList = this.list(queryWrapper);
|
||||
this.disposeData(prdEoList, paramsReportDetailVO.getCut());
|
||||
|
||||
List<ParamsReportDetailEO> exportDataList = new ArrayList<>();
|
||||
if (CollectionUtils.isNotEmpty(prdEoList)) {
|
||||
QueryWrapper<ParamsReportConfigEO> prcQueryWrap = new QueryWrapper<>();
|
||||
prcQueryWrap.lambda().eq(ParamsReportConfigEO::getParamsManifestId, paramsReportDetailVO.getParamsManifestId());
|
||||
List<ParamsReportConfigEO> prcEoList = this.paramsReportConfigEOService.list(prcQueryWrap);
|
||||
|
||||
List<String> prcIdList = prcEoList.stream().map(ParamsReportConfigEO::getId).distinct().collect(Collectors.toList());
|
||||
List<ParamsReportConfigDataEO> prcdEoList = this.paramsReportConfigDataEOService.queryListByConfigIdList(prcIdList);
|
||||
|
||||
for (ParamsReportDetailEO prdEo : prdEoList) {
|
||||
// 配置列多行数据处理
|
||||
String id = prdEo.getId();
|
||||
|
||||
if (CollectionUtils.isNotEmpty(prcdEoList)) {
|
||||
Map<String, List<ParamsReportConfigDataEO>> paramsConfigDataMap = prcdEoList.stream().filter(configDataEO -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.equals(configDataEO.getParamsCollectManifestId(), id)) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.groupingBy(configDataEO -> configDataEO.getParamsConfigId()));
|
||||
|
||||
List<Map<String, Object>> paramsConfigDataCountList = new ArrayList<>();
|
||||
|
||||
for (Map.Entry<String, List<ParamsReportConfigDataEO>> map : paramsConfigDataMap.entrySet()) {
|
||||
Map<String, Object> paramsConfigDataCountMap = new HashMap<>();
|
||||
paramsConfigDataCountMap.put("key", map.getKey());
|
||||
paramsConfigDataCountMap.put("paramsConfigDataCount", map.getValue().size());
|
||||
paramsConfigDataCountMap.put("value", map.getValue());
|
||||
paramsConfigDataCountList.add(paramsConfigDataCountMap);
|
||||
}
|
||||
|
||||
// 排序 配置数据总数倒序排序
|
||||
Collections.sort(paramsConfigDataCountList, new Comparator<Map<String, Object>>() {
|
||||
@Override
|
||||
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
||||
return o2.get("paramsConfigDataCount").toString().compareTo(o1.get("paramsConfigDataCount").toString());
|
||||
}
|
||||
});
|
||||
|
||||
// 获取出最多行的配置列。
|
||||
if (!paramsConfigDataCountList.isEmpty()) {
|
||||
Map<String, Object> paramsConfigDataMaxCountMap = paramsConfigDataCountList.get(0);
|
||||
String key = (String) paramsConfigDataMaxCountMap.get("key");
|
||||
List<ParamsReportConfigDataEO> paramsConfigDataEOs = paramsConfigDataMap.get(key);
|
||||
for (ParamsReportConfigDataEO paramsConfigDataEO : paramsConfigDataEOs) {
|
||||
ParamsReportDetailEO ParamsReportDetailEO = new ParamsReportDetailEO();
|
||||
BeanUtils.copyProperties(prdEo, ParamsReportDetailEO);
|
||||
exportDataList.add(ParamsReportDetailEO);
|
||||
}
|
||||
} else {
|
||||
exportDataList.add(prdEo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(exportDataList)) {
|
||||
// 排除的数据数组 等于将数组中的数据逻辑删除。
|
||||
List<String> excludePrcdIdList = new ArrayList<>();
|
||||
|
||||
for (ParamsReportDetailEO prdEo : exportDataList) {
|
||||
Map<String, Object> prdEoMap = com.jero.common.util.BeanUtils.entityToMap(prdEo);
|
||||
String paramsCollectManifestId = prdEo.getId();
|
||||
String controlType = prdEo.getControlType();
|
||||
String nioNumber = prdEo.getNioNumber();
|
||||
|
||||
// 配置列
|
||||
if (CollectionUtil.isNotEmpty(prcEoList)) {
|
||||
List<OSSFile> fileList = new ArrayList<>();
|
||||
|
||||
prcEoList.forEach(prcEo -> { // 参数配置
|
||||
|
||||
String prcEoId = prcEo.getId();
|
||||
// 参数配置数据
|
||||
List<ParamsReportConfigDataEO> prcdEos = prcdEoList.stream().filter(e -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.equals(prcEoId, e.getParamsConfigId()) && paramsCollectManifestId.equals(e.getParamsCollectManifestId())) {
|
||||
if (!excludePrcdIdList.contains(e.getId())) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
StringBuilder configDataBuilder = new StringBuilder(); // 重新组合配置数据
|
||||
if (CollectionUtil.isNotEmpty(prcdEos)) {
|
||||
ParamsReportConfigDataEO prcdEo = prcdEos.get(0);
|
||||
|
||||
if (ControlTypeEnum.TEXT.getValue().equals(controlType)) {
|
||||
if (StringUtils.isNotEmpty(prcdEo.getTextData())) {
|
||||
configDataBuilder.append(prcdEo.getTextData());
|
||||
}
|
||||
|
||||
} else if (ControlTypeEnum.PULL_SINGLE.getValue().equals(controlType)
|
||||
|| ControlTypeEnum.PULL_MORE.getValue().equals(controlType)) {
|
||||
if (StringUtils.isNotEmpty(prcdEo.getPullData())) {
|
||||
configDataBuilder.append(prcdEo.getPullData().replaceAll(",", "!"));
|
||||
}
|
||||
|
||||
} else if (ControlTypeEnum.FILE.getValue().equals(controlType)) {
|
||||
if (StringUtils.isNotEmpty(prcdEo.getFileConnectId())) {
|
||||
List<OSSFile> ossFileList = ossFileService.getFileInfosByConnectId(prcdEo.getFileConnectId());
|
||||
if (CollectionUtil.isNotEmpty(ossFileList)) {
|
||||
configDataBuilder.append(nioNumber).append("/").append(ossFileList.get(0).getFileName());
|
||||
|
||||
fileList.addAll(ossFileList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else if (ControlTypeEnum.TEXT_PULL_SINGLE.getValue().equals(controlType)
|
||||
|| ControlTypeEnum.TEXT_PULL_MORE.getValue().equals(controlType)) {
|
||||
|
||||
if (StringUtils.isNotEmpty(prcdEo.getTextData())) {
|
||||
configDataBuilder.append(prcdEo.getTextData());
|
||||
}
|
||||
|
||||
configDataBuilder.append("#");
|
||||
|
||||
if (StringUtils.isNotEmpty(prcdEo.getPullData())) {
|
||||
configDataBuilder.append(prcdEo.getPullData().replaceAll(",", "!"));
|
||||
}
|
||||
|
||||
} else if (ControlTypeEnum.TEXT_FILE.getValue().equals(controlType)) {
|
||||
if (StringUtils.isNotEmpty(prcdEo.getTextData())) {
|
||||
configDataBuilder.append(prcdEo.getTextData());
|
||||
}
|
||||
|
||||
configDataBuilder.append("#");
|
||||
if (StringUtils.isNotEmpty(prcdEo.getFileConnectId())) {
|
||||
List<OSSFile> ossFileList = ossFileService.getFileInfosByConnectId(prcdEo.getFileConnectId());
|
||||
if (CollectionUtil.isNotEmpty(ossFileList)) {
|
||||
configDataBuilder.append(nioNumber).append("/").append(ossFileList.get(0).getFileName());
|
||||
|
||||
fileList.addAll(ossFileList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else if (ControlTypeEnum.PULL_SINGLE_FILE.getValue().equals(controlType)
|
||||
|| ControlTypeEnum.PULL_MORE_FILE.getValue().equals(controlType)) {
|
||||
if (StringUtils.isNotEmpty(prcdEo.getPullData())) {
|
||||
configDataBuilder.append(prcdEo.getPullData().replaceAll(",", "!"));
|
||||
}
|
||||
|
||||
configDataBuilder.append("#");
|
||||
if (StringUtils.isNotEmpty(prcdEo.getFileConnectId())) {
|
||||
List<OSSFile> ossFileList = ossFileService.getFileInfosByConnectId(prcdEo.getFileConnectId());
|
||||
if (CollectionUtil.isNotEmpty(ossFileList)) {
|
||||
configDataBuilder.append(nioNumber).append("/").append(ossFileList.get(0).getFileName());
|
||||
|
||||
fileList.addAll(ossFileList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else if (ControlTypeEnum.TEXT_PULL_SINGLE_FILE.getValue().equals(controlType)) {
|
||||
if (StringUtils.isNotEmpty(prcdEo.getTextData())) {
|
||||
configDataBuilder.append(prcdEo.getTextData());
|
||||
}
|
||||
configDataBuilder.append("#");
|
||||
if (StringUtils.isNotEmpty(prcdEo.getPullData())) {
|
||||
configDataBuilder.append(prcdEo.getPullData().replaceAll(",", "!"));
|
||||
}
|
||||
configDataBuilder.append("#");
|
||||
if (StringUtils.isNotEmpty(prcdEo.getFileConnectId())) {
|
||||
List<OSSFile> ossFileList = ossFileService.getFileInfosByConnectId(prcdEo.getFileConnectId());
|
||||
if (CollectionUtil.isNotEmpty(ossFileList)) {
|
||||
configDataBuilder.append(nioNumber).append("/").append(ossFileList.get(0).getFileName());
|
||||
|
||||
fileList.addAll(ossFileList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
// prcdEoList.remove(prcdEo);
|
||||
excludePrcdIdList.add(prcdEo.getId());
|
||||
}
|
||||
|
||||
String configData = configDataBuilder.toString();
|
||||
if (StringUtils.isNotEmpty(configData) && "".equals(configData.replace("#", ""))) {
|
||||
configData = configData.replace("#", "");
|
||||
}
|
||||
|
||||
prdEoMap.put(prcEo.getId(), configData);
|
||||
});
|
||||
|
||||
prdEoMap.put("fileList", fileList);
|
||||
}
|
||||
result.add(prdEoMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
private String[] getWorkbookTitleForExportGeneral(ParamsReportDetailVO paramsReportDetailVO) {
|
||||
String cut = paramsReportDetailVO.getCut();
|
||||
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.PARAMS_REPORT_DETAIL.getValue());
|
||||
|
||||
List<String> dbFieldNameList = new ArrayList<>();
|
||||
List<String> dbFieldList = new ArrayList<>();
|
||||
|
||||
if (fieldList.size() != 0) {
|
||||
//过滤列表字段(is_show_list-->列表是否显示0否 1是)
|
||||
fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowList()))).collect(Collectors.toList());
|
||||
|
||||
// 设置排序字段,将字段重新排序
|
||||
for (OnlCgformField onlCgformField : fieldList) {
|
||||
String dbFieldName = this.fieldConvert(onlCgformField.getDbFieldName());
|
||||
if (StringUtils.isNotEmpty(dbFieldName)) {
|
||||
Integer fieldIndex = this.getFieldIndex(dbFieldName);
|
||||
|
||||
onlCgformField.setOrderNum(fieldIndex);
|
||||
}
|
||||
}
|
||||
|
||||
// 重新排序
|
||||
fieldList = fieldList.stream().sorted(Comparator.comparingInt(o -> o.getOrderNum())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
// 固定列
|
||||
for (int i = 0; i < fieldList.size(); i++) {
|
||||
OnlCgformField onlCgformField = fieldList.get(i);
|
||||
String dbFieldName = this.fieldConvert(onlCgformField.getDbFieldName());
|
||||
if (StringUtils.isNotEmpty(dbFieldName)) {
|
||||
dbFieldList.add(dbFieldName);
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
dbFieldNameList.add(onlCgformField.getDbFieldTxt()); // 字段中文名
|
||||
} else {
|
||||
dbFieldNameList.add(onlCgformField.getDbFieldEnName()); // 字段英文名
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 配置列
|
||||
QueryWrapper<ParamsReportConfigEO> queryWrap = new QueryWrapper<>();
|
||||
queryWrap.lambda().in(ParamsReportConfigEO::getParamsManifestId, paramsReportDetailVO.getParamsManifestId());
|
||||
queryWrap.lambda().orderByAsc(ParamsReportConfigEO::getDisplaySeq);
|
||||
List<ParamsReportConfigEO> paramsReportConfigEOList = this.paramsReportConfigEOService.list(queryWrap);
|
||||
if (CollectionUtil.isNotEmpty(paramsReportConfigEOList)) {
|
||||
for (ParamsReportConfigEO paramsReportConfigEO : paramsReportConfigEOList) {
|
||||
dbFieldList.add(paramsReportConfigEO.getId());
|
||||
dbFieldNameList.add(paramsReportConfigEO.getConfigName());
|
||||
}
|
||||
}
|
||||
|
||||
String[] title = new String[2];
|
||||
String dbFieldStr = StringUtils.join(dbFieldList, ",");
|
||||
String dbFieldNameStr = StringUtils.join(dbFieldNameList, ",");
|
||||
|
||||
title[0] = dbFieldStr;
|
||||
title[1] = dbFieldNameStr;
|
||||
return title;
|
||||
}
|
||||
|
||||
private String fieldConvert(String field) {
|
||||
if (field == null) {
|
||||
return null;
|
||||
}
|
||||
switch (field) {
|
||||
case "nio_number":
|
||||
return "nioNumber";
|
||||
case "params_name":
|
||||
return "paramsName";
|
||||
case "cert_category":
|
||||
return "certCategory";
|
||||
case "is_must":
|
||||
return "isMust";
|
||||
case "description":
|
||||
return "description";
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取字段的下标,字段在excel表格中占据第几列
|
||||
* @param field
|
||||
* @return
|
||||
*/
|
||||
private Integer getFieldIndex(String field) {
|
||||
if (field == null) {
|
||||
return null;
|
||||
}
|
||||
switch (field) {
|
||||
case "nioNumber":
|
||||
return 1;
|
||||
case "paramsName":
|
||||
return 2;
|
||||
case "certCategory":
|
||||
return 3;
|
||||
case "isMust":
|
||||
return 4;
|
||||
case "description":
|
||||
return 5;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -72,4 +72,9 @@ public class ParamsReportDetailVO {
|
||||
|
||||
@TableField(exist = false)
|
||||
private String orderBySql;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String isMust;
|
||||
@TableField(exist = false)
|
||||
private String dutyTerritory;
|
||||
}
|
||||
|
||||
+16
@@ -1,6 +1,7 @@
|
||||
package com.jero.modules.cert.template.enums;
|
||||
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -76,4 +77,19 @@ public enum ParamsIsMustEnum {
|
||||
return map;
|
||||
}
|
||||
|
||||
public static String getTextByValue(String value,String cut){
|
||||
String result = "";
|
||||
ParamsIsMustEnum[] paramsIsMustEnums = ParamsIsMustEnum.values();
|
||||
for (ParamsIsMustEnum paramsIsMustEnum : paramsIsMustEnums) {
|
||||
if(StringUtils.equals(value,paramsIsMustEnum.value)){
|
||||
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||
result = paramsIsMustEnum.name;
|
||||
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||
result = paramsIsMustEnum.enName;
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+2
@@ -148,6 +148,7 @@
|
||||
left join cert_category_params_info ccpi on (pi.nio_number = ccpi.nio_number and pi.params_template_id = ccpi.params_template_id)
|
||||
) tmp_tb
|
||||
<include refid="BaseQuerySql"/>
|
||||
order by tmp_tb.nio_number asc
|
||||
</select>
|
||||
|
||||
<select id="selectListWithCertForEnExport" resultMap="ParamsInfoEOResultMapWithCertForEnExport" parameterType="com.jero.modules.cert.template.vo.ParamsInfoVO">
|
||||
@@ -158,6 +159,7 @@
|
||||
left join cert_category_params_info ccpi on (pi.nio_number = ccpi.nio_number and pi.params_template_id = ccpi.params_template_id)
|
||||
) tmp_tb
|
||||
<include refid="BaseQuerySql"/>
|
||||
order by tmp_tb.nio_number asc
|
||||
</select>
|
||||
|
||||
<select id="selectListByParamsTemplateIds" resultMap="ParamsInfoEOResultMap" parameterType="java.lang.String">
|
||||
|
||||
+19
-19
@@ -4384,25 +4384,25 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
|
||||
//处理法规预警模块预警时间查询条件 flag = 0(新车实施日期), flag = 1(在产车实施日期)
|
||||
String warnTime = (String) parameter.get("WarnTime");
|
||||
if(StringUtils.isNotBlank(warnTime)){
|
||||
if("0".equals(flag)){
|
||||
//日期(区分单日期还时间范围)
|
||||
if (warnTime.contains(",")) {
|
||||
conditionSb.append(" and " + "date_format(" + "xin1_che1_xing2_shi2_shi1_ri4_qi1" + ",'%Y-%m-%d') >= '" + warnTime.split(",")[0] + "'"
|
||||
+ " and " + "date_format(" + "xin1_che1_xing2_shi2_shi1_ri4_qi1" + ",'%Y-%m-%d') <= '" + warnTime.split(",")[1] + "'");
|
||||
} else {
|
||||
conditionSb.append(" and " + "date_format(" + "xin1_che1_xing2_shi2_shi1_ri4_qi1" + ",'%Y-%m-%d') = '" + warnTime + "'");
|
||||
}
|
||||
}else{
|
||||
//日期(区分单日期还时间范围)
|
||||
if (warnTime.contains(",")) {
|
||||
conditionSb.append(" and " + "date_format(" + "implement_time" + ",'%Y-%m-%d') >= '" + warnTime.split(",")[0] + "'"
|
||||
+ " and " + "date_format(" + "implement_time" + ",'%Y-%m-%d') <= '" + warnTime.split(",")[1] + "'");
|
||||
} else {
|
||||
conditionSb.append(" and " + "date_format(" + "implement_time" + ",'%Y-%m-%d') = '" + warnTime + "'");
|
||||
}
|
||||
}
|
||||
}
|
||||
// if(StringUtils.isNotBlank(warnTime)){
|
||||
// if("0".equals(flag)){
|
||||
// //日期(区分单日期还时间范围)
|
||||
// if (warnTime.contains(",")) {
|
||||
// conditionSb.append(" and " + "date_format(" + "xin1_che1_xing2_shi2_shi1_ri4_qi1" + ",'%Y-%m-%d') >= '" + warnTime.split(",")[0] + "'"
|
||||
// + " and " + "date_format(" + "xin1_che1_xing2_shi2_shi1_ri4_qi1" + ",'%Y-%m-%d') <= '" + warnTime.split(",")[1] + "'");
|
||||
// } else {
|
||||
// conditionSb.append(" and " + "date_format(" + "xin1_che1_xing2_shi2_shi1_ri4_qi1" + ",'%Y-%m-%d') = '" + warnTime + "'");
|
||||
// }
|
||||
// }else{
|
||||
// //日期(区分单日期还时间范围)
|
||||
// if (warnTime.contains(",")) {
|
||||
// conditionSb.append(" and " + "date_format(" + "implement_time" + ",'%Y-%m-%d') >= '" + warnTime.split(",")[0] + "'"
|
||||
// + " and " + "date_format(" + "implement_time" + ",'%Y-%m-%d') <= '" + warnTime.split(",")[1] + "'");
|
||||
// } else {
|
||||
// conditionSb.append(" and " + "date_format(" + "implement_time" + ",'%Y-%m-%d') = '" + warnTime + "'");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
//高级搜索 queryConditionVOList List<QueryConditionVO>
|
||||
if(ObjectUtils.isNotEmpty(parameter.get("queryConditionVOList"))){
|
||||
|
||||
+2
-2
@@ -6,9 +6,9 @@ package com.jero.modules.head.enums;
|
||||
* @auth zhn
|
||||
*/
|
||||
public enum AffirmFlagEnum {
|
||||
DESIGN_FLAG("设计符合性确认","Design Compliance Check","1"),
|
||||
DESIGN_FLAG("设计符合性确认","Design Compliance Confirmation","1"),
|
||||
AFFIRM_FLAG("Pre-Homo确认","Pre-Homo Confirmation","2"),
|
||||
VERIFY_FLAG("验证符合性确认","Validation Compliance Check","3");
|
||||
VERIFY_FLAG("验证符合性确认","Validation Compliance Confirmation","3");
|
||||
|
||||
|
||||
|
||||
|
||||
+24
-2
@@ -12,6 +12,8 @@ import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.modules.extRepo.entity.ExtRepoData;
|
||||
import com.jero.modules.ota.entity.OtaBaCxList;
|
||||
import com.jero.modules.ota.service.IOtaBaCxListService;
|
||||
import com.jero.modules.ota.utils.ComparisonUtil;
|
||||
import com.jero.modules.system.service.ISysDictService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -26,6 +28,7 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -43,6 +46,8 @@ import java.util.Map;
|
||||
public class OtaBaCxListController extends JeroController<OtaBaCxList, IOtaBaCxListService> {
|
||||
@Autowired
|
||||
private IOtaBaCxListService otaBaCxListService;
|
||||
@Autowired
|
||||
private ISysDictService sysDictService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
@@ -94,7 +99,23 @@ public class OtaBaCxListController extends JeroController<OtaBaCxList, IOtaBaCxL
|
||||
}
|
||||
queryWrapper.orderByDesc(OtaBaCxList::getCreateTime);
|
||||
IPage<OtaBaCxList> pageList = otaBaCxListService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
for (OtaBaCxList pa : pageList.getRecords()) {
|
||||
pa.setBazt_dictText(sysDictService.queryDictTextByKeyEn("recordstatus", pa.getBazt(), req.getParameter("cut")));
|
||||
}
|
||||
Map<String, Object> resMap = new HashMap<>();
|
||||
resMap.put("list", pageList);
|
||||
//有审批周期的数据
|
||||
int days = 0;
|
||||
int spzqSum = 0;
|
||||
List<OtaBaCxList> list = otaBaCxListService.list(queryWrapper);
|
||||
for (OtaBaCxList cx : list) {
|
||||
if (StringUtils.isNotEmpty(cx.getSpzq())) {
|
||||
days++;
|
||||
spzqSum += Integer.parseInt(cx.getSpzq());
|
||||
}
|
||||
}
|
||||
resMap.put("pjspzq", days == 0 ? 0 : Math.floor(spzqSum / days));
|
||||
return Result.OK(resMap);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -219,9 +240,10 @@ public class OtaBaCxListController extends JeroController<OtaBaCxList, IOtaBaCxL
|
||||
String ids = json.getString("ids");
|
||||
String bazt = json.getString("bazt");
|
||||
String batjsj = json.getString("batjsj");
|
||||
String tgthsj = json.getString("tgthsj");
|
||||
String bz = json.getString("bz");
|
||||
String cut = json.getString("cut");
|
||||
otaBaCxListService.batchRecord(ids, bazt, batjsj, bz, cut);
|
||||
otaBaCxListService.batchRecord(ids, bazt, batjsj,tgthsj, bz, cut);
|
||||
return Result.OK("备案维护成功!");
|
||||
}
|
||||
|
||||
|
||||
+26
-3
@@ -12,6 +12,8 @@ import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.modules.ota.entity.OtaBaCxList;
|
||||
import com.jero.modules.ota.entity.OtaBaSjList;
|
||||
import com.jero.modules.ota.service.IOtaBaSjListService;
|
||||
import com.jero.modules.ota.utils.ComparisonUtil;
|
||||
import com.jero.modules.system.service.ISysDictService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -25,7 +27,9 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
@@ -41,6 +45,8 @@ import java.util.List;
|
||||
public class OtaBaSjListController extends JeroController<OtaBaSjList, IOtaBaSjListService> {
|
||||
@Autowired
|
||||
private IOtaBaSjListService otaBaSjListService;
|
||||
@Autowired
|
||||
private ISysDictService sysDictService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
@@ -90,8 +96,24 @@ public class OtaBaSjListController extends JeroController<OtaBaSjList, IOtaBaSjL
|
||||
}
|
||||
queryWrapper.orderByDesc(OtaBaSjList::getCreateTime);
|
||||
IPage<OtaBaSjList> pageList = otaBaSjListService.page(page, queryWrapper);
|
||||
this.otaBaSjListService.disposeData(pageList.getRecords(),otaBaSjList);
|
||||
return Result.OK(pageList);
|
||||
for (OtaBaSjList pa : pageList.getRecords()) {
|
||||
pa.setBazt_dictText(sysDictService.queryDictTextByKeyEn("recordstatus", pa.getBazt(), req.getParameter("cut")));
|
||||
}
|
||||
this.otaBaSjListService.disposeData(pageList.getRecords(), otaBaSjList);
|
||||
Map<String, Object> resMap = new HashMap<>();
|
||||
resMap.put("list", pageList);
|
||||
//有审批周期的数据
|
||||
int days = 0;
|
||||
int spzqSum = 0;
|
||||
List<OtaBaSjList> list = otaBaSjListService.list(queryWrapper);
|
||||
for (OtaBaSjList sj : list) {
|
||||
if (StringUtils.isNotEmpty(sj.getSpzq())) {
|
||||
days++;
|
||||
spzqSum += Integer.parseInt(sj.getSpzq());
|
||||
}
|
||||
}
|
||||
resMap.put("pjspzq", days == 0 ? 0 : Math.floor(spzqSum / days));
|
||||
return Result.OK(resMap);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -215,9 +237,10 @@ public class OtaBaSjListController extends JeroController<OtaBaSjList, IOtaBaSjL
|
||||
String ids = json.getString("ids");
|
||||
String bazt = json.getString("bazt");
|
||||
String batjsj = json.getString("batjsj");
|
||||
String tgthsj = json.getString("tgthsj");
|
||||
String bz = json.getString("bz");
|
||||
String cut = json.getString("cut");
|
||||
otaBaSjListService.batchRecord(ids, bazt, batjsj, bz, cut);
|
||||
otaBaSjListService.batchRecord(ids, bazt, batjsj, tgthsj, bz, cut);
|
||||
return Result.OK("备案维护成功!");
|
||||
}
|
||||
|
||||
|
||||
+20
@@ -4,6 +4,7 @@ import java.io.Serializable;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
@@ -97,6 +98,9 @@ public class OtaBaCxList implements Serializable {
|
||||
@Dict(dicCode = "recordstatus")
|
||||
private java.lang.String bazt;
|
||||
|
||||
@TableField(exist = false)
|
||||
private java.lang.String bazt_dictText;
|
||||
|
||||
/**备案提交时间*/
|
||||
@Excel(name = "备案提交时间", width = 15, format = "yyyy-MM-dd")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@@ -126,6 +130,22 @@ public class OtaBaCxList implements Serializable {
|
||||
@ApiModelProperty(value = "在线升级驾驶附件")
|
||||
private java.lang.String zxsjjsfj;
|
||||
|
||||
|
||||
/**通过退回时间*/
|
||||
@Excel(name = "通过退回时间", width = 15, format = "yyyy-MM-dd")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "通过退回时间")
|
||||
private java.util.Date tgthsj;
|
||||
|
||||
/**审批周期*/
|
||||
@Excel(name = "审批周期", width = 15)
|
||||
@ApiModelProperty(value = "审批周期")
|
||||
private java.lang.String spzq;
|
||||
|
||||
|
||||
|
||||
|
||||
public void updateData(OtaBaCxJbxx otaBaCxJbxx){
|
||||
this.cpdjbh = otaBaCxJbxx.getDjbh();
|
||||
this.ggpc = otaBaCxJbxx.getGgpc();
|
||||
|
||||
+15
@@ -125,6 +125,9 @@ public class OtaBaSjList implements Serializable {
|
||||
@Dict(dicCode = "recordstatus")
|
||||
private java.lang.String bazt;
|
||||
|
||||
@TableField(exist = false)
|
||||
private java.lang.String bazt_dictText;
|
||||
|
||||
/**
|
||||
* 备案提交时间
|
||||
*/
|
||||
@@ -168,6 +171,18 @@ public class OtaBaSjList implements Serializable {
|
||||
@TableField(exist = false)
|
||||
private String rwmc;
|
||||
|
||||
/**通过退回时间*/
|
||||
@Excel(name = "通过退回时间", width = 15, format = "yyyy-MM-dd")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "通过退回时间")
|
||||
private java.util.Date tgthsj;
|
||||
|
||||
/**审批周期*/
|
||||
@Excel(name = "审批周期", width = 15)
|
||||
@ApiModelProperty(value = "审批周期")
|
||||
private java.lang.String spzq;
|
||||
|
||||
public void updateData(OtaBaSjSjmbcx otaBaSjSjmbcx) {
|
||||
this.cpdjbh = otaBaSjSjmbcx.getBabh();
|
||||
this.ggpc = otaBaSjSjmbcx.getBapc();
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ public interface IOtaBaCxListService extends IService<OtaBaCxList> {
|
||||
/**
|
||||
* 备案维护
|
||||
*/
|
||||
void batchRecord(String ids, String bazt, String batjsj, String bz, String cut);
|
||||
void batchRecord(String ids, String bazt, String batjsj, String tgthsj,String bz, String cut);
|
||||
|
||||
void exportTemplate(HttpServletResponse response, HttpServletRequest request);
|
||||
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ public interface IOtaBaSjListService extends IService<OtaBaSjList> {
|
||||
/**
|
||||
* 备案维护
|
||||
*/
|
||||
void batchRecord(String ids, String bazt, String batjsj, String bz, String cut);
|
||||
void batchRecord(String ids, String bazt, String batjsj, String tgthsj,String bz, String cut);
|
||||
|
||||
void exportTemplate(HttpServletResponse response, HttpServletRequest request) throws Exception;
|
||||
|
||||
|
||||
+15
-16
@@ -63,17 +63,17 @@ public class OtaBaCxJbxxServiceImpl extends ServiceImpl<OtaBaCxJbxxMapper, OtaBa
|
||||
* @return
|
||||
*/
|
||||
public OtaBaCxJbxx add(OtaBaCxJbxx otaBaCxJbxx) throws Exception {
|
||||
String ggpc = otaBaCxJbxx.getGgpc();
|
||||
String djbh = otaBaCxJbxx.getDjbh();
|
||||
//对比填写记录用的
|
||||
OtaBaCxJbxx otaBaCxJbxxOld = new OtaBaCxJbxx();
|
||||
Date now = new Date();
|
||||
OtaBaCxList otaBaCxList;
|
||||
if (StringUtils.isEmpty(otaBaCxJbxx.getOtaId())) {
|
||||
if (StringUtils.isNotEmpty(ggpc)) {
|
||||
if (StringUtils.isNotEmpty(djbh)) {
|
||||
List<OtaBaCxJbxx> xxList = this.list();
|
||||
for (OtaBaCxJbxx xx : xxList) {
|
||||
if (ggpc.equals(xx.getGgpc())) {
|
||||
throw new JeroBootException("公告批次重复");
|
||||
if (djbh.equals(xx.getDjbh())) {
|
||||
throw new JeroBootException("产品登记编号重复");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -87,11 +87,11 @@ public class OtaBaCxJbxxServiceImpl extends ServiceImpl<OtaBaCxJbxxMapper, OtaBa
|
||||
otaBaCxJbxx.setCreateTime(now);
|
||||
} else {
|
||||
otaBaCxJbxxOld = this.getByOtaId(otaBaCxJbxx.getOtaId());
|
||||
if (StringUtils.isNotEmpty(ggpc)) {
|
||||
if (StringUtils.isNotEmpty(djbh)) {
|
||||
List<OtaBaCxJbxx> xxList = this.list();
|
||||
for (OtaBaCxJbxx xx : xxList) {
|
||||
if (!xx.getOtaId().equals(otaBaCxJbxx.getOtaId()) && ggpc.equals(xx.getGgpc())) {
|
||||
throw new JeroBootException("公告批次重复");
|
||||
if (!xx.getOtaId().equals(otaBaCxJbxx.getOtaId()) && djbh.equals(xx.getDjbh())) {
|
||||
throw new JeroBootException("产品登记编号重复");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -241,26 +241,25 @@ public class OtaBaCxJbxxServiceImpl extends ServiceImpl<OtaBaCxJbxxMapper, OtaBa
|
||||
if (cpbh.length() > 500) {
|
||||
throw new JeroBootException("产品登记编号字数超过500");
|
||||
}
|
||||
jbxx.setDjbh(cpbh);
|
||||
|
||||
row = s.getRow(4);
|
||||
cell = row.getCell(1);
|
||||
String ggpc = ImportFileUtil.getCellValue(cell, wb);
|
||||
if (StringUtils.isNotEmpty(ggpc)) {
|
||||
if (StringUtils.isNotEmpty(cpbh)) {
|
||||
List<OtaBaCxJbxx> xxList = this.list();
|
||||
for (OtaBaCxJbxx xx : xxList) {
|
||||
if (ggpc.equals(xx.getGgpc())) {
|
||||
throw new JeroBootException("公告批次重复");
|
||||
if (cpbh.equals(xx.getDjbh())) {
|
||||
throw new JeroBootException("产品登记编号重复");
|
||||
}
|
||||
}
|
||||
}
|
||||
jbxx.setGgpc(ggpc);
|
||||
jbxx.setDjbh(cpbh);
|
||||
|
||||
row = s.getRow(1);
|
||||
cell = row.getCell(1);
|
||||
jbxx.setQymc(ImportFileUtil.getCellValue(cell, wb));
|
||||
row = s.getRow(3);
|
||||
cell = row.getCell(1);
|
||||
jbxx.setCplb(ImportFileUtil.getCellValueDict(cell, wb, "product_category", sysDictService, cut));
|
||||
row = s.getRow(4);
|
||||
cell = row.getCell(1);
|
||||
jbxx.setGgpc(ImportFileUtil.getCellValue(cell, wb));
|
||||
row = s.getRow(5);
|
||||
cell = row.getCell(1);
|
||||
jbxx.setCpsb(ImportFileUtil.getCellValue(cell, wb));
|
||||
|
||||
+21
-2
@@ -23,6 +23,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@@ -152,15 +153,33 @@ public class OtaBaCxListServiceImpl extends ServiceImpl<OtaBaCxListMapper, OtaBa
|
||||
* 备案维护
|
||||
*/
|
||||
@Override
|
||||
public void batchRecord(String ids, String bazt, String batjsj, String bz, String cut) {
|
||||
public void batchRecord(String ids, String bazt, String batjsj, String tgthsj,String bz, String cut) {
|
||||
try {
|
||||
if (StringUtils.isNotEmpty(ids)) {
|
||||
String[] idList = ids.split(",");
|
||||
for (String id : idList) {
|
||||
OtaBaCxList otaBaCxList = this.queryById(id);
|
||||
otaBaCxList.setBazt(bazt);
|
||||
otaBaCxList.setBatjsj(sdf.parse(batjsj));
|
||||
otaBaCxList.setBatjsj(null);
|
||||
if (StringUtils.isNotEmpty(batjsj)) {
|
||||
otaBaCxList.setBatjsj(sdf.parse(batjsj));
|
||||
}
|
||||
otaBaCxList.setTgthsj(null);
|
||||
if (StringUtils.isNotEmpty(tgthsj)) {
|
||||
otaBaCxList.setTgthsj(sdf.parse(tgthsj));
|
||||
}
|
||||
otaBaCxList.setSpzq(null);
|
||||
if(null != otaBaCxList.getBatjsj() && null != otaBaCxList.getTgthsj()){
|
||||
Calendar calendar1 = Calendar.getInstance();
|
||||
calendar1.setTime(otaBaCxList.getBatjsj());
|
||||
|
||||
Calendar calendar2 = Calendar.getInstance();
|
||||
calendar2.setTime(otaBaCxList.getTgthsj());
|
||||
int daysDifference = (int) Math.floor((calendar2.getTimeInMillis() - calendar1.getTimeInMillis()) / (1000 * 60 * 60 * 24));
|
||||
otaBaCxList.setSpzq(String.valueOf(daysDifference));
|
||||
}
|
||||
otaBaCxList.setBz(bz);
|
||||
this.deleteById(otaBaCxList.getId());
|
||||
this.saveOrUpdate(otaBaCxList);
|
||||
//添加历史记录数据
|
||||
OtaBaCxLsjl lsjl = new OtaBaCxLsjl();
|
||||
|
||||
+1
-1
@@ -141,7 +141,7 @@ public class OtaBaSjGnxtwhServiceImpl extends ServiceImpl<OtaBaSjGnxtwhMapper, O
|
||||
for (OtaBaSjGnxtwh wh : list) {
|
||||
String[] strs = wh.getDykzq().split(",");
|
||||
for (String str : strs) {
|
||||
if (str.equals(kzq)) {
|
||||
if (kzq.contains(str)) {
|
||||
return wh.getGnxt();
|
||||
}
|
||||
}
|
||||
|
||||
+26
-2
@@ -1,6 +1,7 @@
|
||||
package com.jero.modules.ota.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.ota.entity.OtaBaSjList;
|
||||
@@ -22,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -67,6 +69,10 @@ public class OtaBaSjListServiceImpl extends ServiceImpl<OtaBaSjListMapper, OtaBa
|
||||
@Autowired
|
||||
private IOtaBaSjQtsjxxService otaBaSjQtsjxxService;
|
||||
|
||||
@Override
|
||||
public <E extends IPage<OtaBaSjList>> E page(E page) {
|
||||
return super.page(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
@@ -150,15 +156,33 @@ public class OtaBaSjListServiceImpl extends ServiceImpl<OtaBaSjListMapper, OtaBa
|
||||
* 备案维护
|
||||
*/
|
||||
@Override
|
||||
public void batchRecord(String ids, String bazt, String batjsj, String bz, String cut) {
|
||||
public void batchRecord(String ids, String bazt, String batjsj,String tgthsj, String bz, String cut) {
|
||||
try {
|
||||
if (StringUtils.isNotEmpty(ids)) {
|
||||
String[] idList = ids.split(",");
|
||||
for (String id : idList) {
|
||||
OtaBaSjList otaBaSjList = this.queryById(id);
|
||||
otaBaSjList.setBazt(bazt);
|
||||
otaBaSjList.setBatjsj(sdf.parse(batjsj));
|
||||
otaBaSjList.setBatjsj(null);
|
||||
if (StringUtils.isNotEmpty(batjsj)) {
|
||||
otaBaSjList.setBatjsj(sdf.parse(batjsj));
|
||||
}
|
||||
otaBaSjList.setTgthsj(null);
|
||||
if (StringUtils.isNotEmpty(tgthsj)) {
|
||||
otaBaSjList.setTgthsj(sdf.parse(tgthsj));
|
||||
}
|
||||
otaBaSjList.setSpzq(null);
|
||||
if(null != otaBaSjList.getBatjsj() && null != otaBaSjList.getTgthsj()){
|
||||
Calendar calendar1 = Calendar.getInstance();
|
||||
calendar1.setTime(otaBaSjList.getBatjsj());
|
||||
|
||||
Calendar calendar2 = Calendar.getInstance();
|
||||
calendar2.setTime(otaBaSjList.getTgthsj());
|
||||
int daysDifference = (int) Math.floor((calendar2.getTimeInMillis() - calendar1.getTimeInMillis()) / (1000 * 60 * 60 * 24));
|
||||
otaBaSjList.setSpzq(String.valueOf(daysDifference));
|
||||
}
|
||||
otaBaSjList.setBz(bz);
|
||||
this.deleteById(otaBaSjList.getId());
|
||||
this.saveOrUpdate(otaBaSjList);
|
||||
//添加历史记录数据
|
||||
OtaBaSjLsjl lsjl = new OtaBaSjLsjl();
|
||||
|
||||
+32
-18
@@ -31,9 +31,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.*;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
@@ -213,8 +211,8 @@ public class OtaBaSjSjmbclServiceImpl extends ServiceImpl<OtaBaSjSjmbclMapper, O
|
||||
private OtaBaSjSjmbcl parseFile(File upFile, String otaId, String cut, StringBuilder errMsg) throws Exception {
|
||||
OtaBaSjSjmbcl mbcl = new OtaBaSjSjmbcl();
|
||||
OtaBaSjSjmbcx mbcx = otaBaSjSjmbcxService.queryByOtaId(otaId, "");
|
||||
if (ObjectUtils.isNotEmpty(mbcx) && StringUtils.isNotEmpty(mbcx.getCpxh())) {
|
||||
String cx = mbcx.getCpxh();
|
||||
if (ObjectUtils.isNotEmpty(mbcx) && StringUtils.isNotEmpty(mbcx.getCpmc())) {
|
||||
String mc = mbcx.getCpmc();
|
||||
Workbook wb = ImportFileUtil.readExcel(upFile);
|
||||
Sheet s = wb.getSheetAt(0);
|
||||
|
||||
@@ -227,7 +225,7 @@ public class OtaBaSjSjmbclServiceImpl extends ServiceImpl<OtaBaSjSjmbclMapper, O
|
||||
vinObj.setVin(ImportFileUtil.getCellValue(cell, wb));
|
||||
cell = row.getCell(1);
|
||||
vinObj.setCx(ImportFileUtil.getCellValue(cell, wb));
|
||||
if (!cx.equals(vinObj.getCx())) {
|
||||
if (!mc.equals(vinObj.getCx())) {
|
||||
continue;
|
||||
}
|
||||
cell = row.getCell(2);
|
||||
@@ -262,19 +260,35 @@ public class OtaBaSjSjmbclServiceImpl extends ServiceImpl<OtaBaSjSjmbclMapper, O
|
||||
mbcl.setVinList(vinList.get(0).getVin() + "-" + vinList.get(vinList.size() - 1).getVin());
|
||||
|
||||
//生成VIN码文件
|
||||
LinkedHashMap map = new LinkedHashMap();
|
||||
map.put("1", "VIN");
|
||||
List exportData = new ArrayList<Map>();
|
||||
Map vrow = null;
|
||||
for (int i = 0; i < vinList.size(); i++) {
|
||||
vrow = new LinkedHashMap<String, String>();
|
||||
vrow.put("1", vinList.get(i).getVin());
|
||||
exportData.add(vrow);
|
||||
}
|
||||
// LinkedHashMap map = new LinkedHashMap();
|
||||
// map.put("1", "VIN");
|
||||
// List exportData = new ArrayList<Map>();
|
||||
// Map vrow = null;
|
||||
// for (int i = 0; i < vinList.size(); i++) {
|
||||
// vrow = new LinkedHashMap<String, String>();
|
||||
// vrow.put("1", vinList.get(i).getVin());
|
||||
// exportData.add(vrow);
|
||||
// }
|
||||
// String fileName = "VIN码.csv";
|
||||
// File file = CSVUtil.createCSVFile(exportData, map, uploadPath + System.currentTimeMillis(), fileName);
|
||||
// String filePath = uploadPath + "/" + file.getName();
|
||||
|
||||
String fileName = "VIN码.csv";
|
||||
File file = CSVUtil.createCSVFile(exportData, map, uploadPath + System.currentTimeMillis(), fileName);
|
||||
String filePath = uploadPath + "/" + file.getName();
|
||||
OSSFile ossFile = ossFileService.uploadLocalOfCos(ImportFileUtil.createMfileByFile(file), "/ota", "", CutEnum.CN.getValue());
|
||||
File csvFileDir = new File(uploadPath + System.currentTimeMillis());
|
||||
csvFileDir.mkdirs();
|
||||
File csvFile = new File(csvFileDir.getAbsolutePath() + "/" + fileName);
|
||||
try (BufferedWriter writer = new BufferedWriter(new FileWriter(csvFile))) {
|
||||
// 写入数据
|
||||
for (VinObj data : vinList) {
|
||||
String row = data.getVin();
|
||||
writer.write(row);
|
||||
writer.newLine();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.err.println("生成CSV文件失败:" + e.getMessage());
|
||||
}
|
||||
|
||||
OSSFile ossFile = ossFileService.uploadLocalOfCos(ImportFileUtil.createMfileByFile(csvFile), "/ota", "", CutEnum.CN.getValue());
|
||||
mbcl.setCsv(ossFile.getId());
|
||||
}
|
||||
}
|
||||
|
||||
+16
-2
@@ -19,6 +19,7 @@ import com.jero.modules.ota.utils.ComparisonUtil;
|
||||
import com.jero.modules.ota.utils.ImportFileUtil;
|
||||
import com.jero.modules.project.util.WordUtil;
|
||||
import com.jero.modules.split.common.FileUnZip;
|
||||
import com.jero.modules.system.entity.SysDepart;
|
||||
import com.jero.modules.system.service.ISysDictService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -193,6 +194,17 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl<OtaBaSjSjxtbhMapper, O
|
||||
if (ObjectUtil.isEmpty(res)) {
|
||||
res = getByOtaId(otaIdT);
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(res)) {
|
||||
Collections.sort(res, (arg0, arg1) -> {
|
||||
if (null == arg0.getXtmc()) {
|
||||
arg0.setXtmc("");
|
||||
}
|
||||
if (null == arg1.getXtmc()) {
|
||||
arg1.setXtmc("");
|
||||
}
|
||||
return arg0.getXtmc().compareTo(arg1.getXtmc());
|
||||
});
|
||||
}
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("list", res);
|
||||
return json;
|
||||
@@ -257,13 +269,15 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl<OtaBaSjSjxtbhMapper, O
|
||||
List<String> oldYjbbList = otaBaSjSjxtbh.stream().map(OtaBaSjSjxtbh::getYjbb).distinct().collect(Collectors.toList());
|
||||
List<String> oldTempFileNameList = new ArrayList<>();
|
||||
oldYjbbList.forEach(sjSjxtbh -> {
|
||||
oldTempFileNameList.add(sjSjxtbh.replaceAll("见","") + ".docx");
|
||||
if (StringUtils.isNotEmpty(sjSjxtbh)) {
|
||||
oldTempFileNameList.add(sjSjxtbh.replaceAll("见", "") + ".docx");
|
||||
}
|
||||
});
|
||||
|
||||
int tempFileIndex = 1;
|
||||
String tempFilePath = uploadPath + "tempFile" + "/" + otaId;
|
||||
File tempFile = new File(tempFilePath);
|
||||
if(!tempFile.exists()){
|
||||
if (!tempFile.exists()) {
|
||||
tempFile.mkdirs();
|
||||
}
|
||||
List<String> tempFileNames = new ArrayList<>();
|
||||
|
||||
+3
-3
@@ -415,11 +415,11 @@ public class ToDoCenterServiceImpl implements IToDoCenterService {
|
||||
data.setTaskDefinitionKeyName(taskDefinitionKeyName);
|
||||
}
|
||||
}
|
||||
// 如果是清单确认流程,将任务节点设置为 清单校核:Checklist verification
|
||||
// 如果是清单确认流程,将任务节点设置为 任务发起:Task initiation
|
||||
if (StringUtils.equals(data.getFlowType(), FlowTypeEnum.QDQR.getValue())) {
|
||||
String taskDefinitionKeyName = "清单校核";
|
||||
String taskDefinitionKeyName = "任务发起";
|
||||
if (StringUtils.equals(cut, CutEnum.EN.getValue())) {
|
||||
taskDefinitionKeyName = "Checklist verification";
|
||||
taskDefinitionKeyName = "Task initiation";
|
||||
}
|
||||
data.setTaskDefinitionKeyName(taskDefinitionKeyName);
|
||||
}
|
||||
|
||||
+20
@@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.modules.system.entity.SysRole;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@@ -59,7 +60,26 @@ public class ProjectCertificationInventoryEOController extends JeroController<Pr
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="cut", defaultValue="cn") String cut,
|
||||
HttpServletRequest req) {
|
||||
String flowStatusStr = "";
|
||||
if (StringUtils.isNotEmpty(projectCertificationInventoryEO.getFlowStatus())) {
|
||||
flowStatusStr = projectCertificationInventoryEO.getFlowStatus();
|
||||
projectCertificationInventoryEO.setFlowStatus(null);
|
||||
}
|
||||
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = QueryGenerator.initQueryWrapper(projectCertificationInventoryEO, req.getParameterMap());
|
||||
if (StringUtils.isNotEmpty(flowStatusStr)) {
|
||||
String finalflowStatusStr = flowStatusStr.replaceAll("\\*","");
|
||||
queryWrapper.and(query -> {
|
||||
query.lambda().like(ProjectCertificationInventoryEO::getFlowStatus, finalflowStatusStr);
|
||||
if(StringUtils.contains(finalflowStatusStr,",")){
|
||||
String[] flowStatusArr = finalflowStatusStr.split(",");
|
||||
for (String fs : flowStatusArr) {
|
||||
query.or(q -> {
|
||||
q.like("flow_status",fs);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
Page<ProjectCertificationInventoryEO> page = new Page<ProjectCertificationInventoryEO>(pageNo, pageSize);
|
||||
IPage<ProjectCertificationInventoryEO> pageList = this.projectCertificationInventoryEOService.queryPage(queryWrapper,page,projectCertificationInventoryEO,cut);
|
||||
|
||||
+2
@@ -303,6 +303,8 @@ public class ProjectLawsInventoryEOController extends JeroController<ProjectLaws
|
||||
try {
|
||||
projectLawsInventoryEOService.setBatch(projectLawsInventoryEO);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("批量设置失败:" + e.getMessage());
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
return Result.error("批量设置失败!");
|
||||
}else{
|
||||
|
||||
+16
@@ -147,4 +147,20 @@ public class ProjectTaskPlanning implements Serializable {
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date eight;
|
||||
|
||||
/**mp*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date mp;
|
||||
|
||||
/**地方批准1*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date localapproval1;
|
||||
|
||||
/**地方批准2*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date localapproval2;
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ public enum CertificationFlowNodeEnum {
|
||||
* 任务办理 -> 责任人接受之后,等待提交交付物
|
||||
* 任务审查 -> 责任人提交交付物之后,认证工程师审查。
|
||||
*/
|
||||
CHECKLIST_VERIFICATION ("Checklist verification","清单校核","Checklist verification"),
|
||||
CHECKLIST_VERIFICATION ("Task initiation","任务发起","Task initiation"),
|
||||
TASK_RESPONSIBILITY_CONFIRMATION ("Task responsibility confirmation","任务责任确认","Task responsibility confirmation"),
|
||||
TASK_HANDLING ("Task handling","任务办理","Task handling"),
|
||||
TASK_REVIEW ("Task Review","任务审查","Task Review"),
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ public enum CertificationInventoryFlowStatusEnum {
|
||||
*/
|
||||
|
||||
LIST_TO_BE_RELEASED("清单待发布","List to be released","List to be released"),
|
||||
LIST_TO_BE_CHECKED("清单待校核","List to be checked","List to be checked"),
|
||||
LIST_TO_BE_CHECKED("任务待发起","Task to be initiated","List to be checked"),
|
||||
CERTIFICATION_RETURNED("认证退回","Certification returned","Certification returned"),
|
||||
TASK_TO_BE_CONFIRMED("任务待确认","Task to be confirmed","Task to be confirmed"),
|
||||
REFUSAL_OF_RESPONSIBLE_PERSON("责任人拒绝","Refusal of responsible person","Refusal of responsible person"),
|
||||
|
||||
+10
-7
@@ -11,13 +11,15 @@ public enum ProjectTaskPlanningNameEnum {
|
||||
// ATTESTATION_START_TIME("认证试验结束","Homo Completion"),// name:认证开始 value:Certification begins
|
||||
ATTESTATION_END_TIME("认证批准","Homo KO"),// name:认证结束 value:End of certification
|
||||
|
||||
LIST_CONFIRMATION("清单发布","List Publishing"),
|
||||
LEGAL_TASK_CONFIRMATION("责任确认","Responsibility Confirmation"),
|
||||
DESIGN_DEADLINE("设计核查","Design Verification"),
|
||||
PREHOMO_DEADLINE("摸底开始","Get Started"), // name:Pre-Homo value:Pre-Homo
|
||||
ATTESTATION_START_TIME("认证开始","Certification Start"),// name:认证开始 value:Certification begins
|
||||
VERIFY_DEADLINE("验证核查","Verification And Verification"),
|
||||
CERTIFICATION_SUBMISSION("认证提交","Certification Submission"),
|
||||
LIST_CONFIRMATION("清单发布","List Release"),
|
||||
LEGAL_TASK_CONFIRMATION("责任确认","Responsibility Confirm"),
|
||||
DESIGN_DEADLINE("设计核查","Design Check"),
|
||||
PREHOMO_DEADLINE("摸底开始","Pre-Homo Starts"), // name:Pre-Homo value:Pre-Homo
|
||||
ATTESTATION_START_TIME("认证开始","Homo Starts"),// name:认证开始 value:Certification begins
|
||||
VERIFY_DEADLINE("验证核查","Validation Check"),
|
||||
CERTIFICATION_SUBMISSION("认证提交","Application Submitted"),
|
||||
LOCALAPPROVAL_1("地方批准1","Local Approval 1"),
|
||||
LOCALAPPROVAL_2("地方批准2","Local Approval 2"),
|
||||
G_ZERO("G0","G0"),
|
||||
G_ONE("G1","G1"),
|
||||
G_TWO("G2","G2"),
|
||||
@@ -26,6 +28,7 @@ public enum ProjectTaskPlanningNameEnum {
|
||||
G_FIVE("G5","G5"),
|
||||
G_SIX("G6","G6"),
|
||||
G_SEVEN("G7","G7"),
|
||||
G_MP("MP","MP"),
|
||||
|
||||
// VERIFY_DEADLINE("验证符合性确认","Validation Compliance Confirmation"),
|
||||
;
|
||||
|
||||
+26
-27
@@ -203,7 +203,6 @@ public class ProjectCertificationDirectoryEOServiceImpl extends ServiceImpl<Proj
|
||||
* @return
|
||||
*/
|
||||
public boolean checkData(String projectLibraryId,String id,String cut){
|
||||
boolean result = false;
|
||||
int roleCode = checkUserRole(projectLibraryId);
|
||||
if(roleCode != Integer.parseInt(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue())){
|
||||
String message = "";
|
||||
@@ -215,31 +214,31 @@ public class ProjectCertificationDirectoryEOServiceImpl extends ServiceImpl<Proj
|
||||
throw new JeroBootException(message);
|
||||
}
|
||||
|
||||
try{
|
||||
if(StringUtils.isNotEmpty(id)){
|
||||
QueryWrapper<ProjectCertificationDirectoryEO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(ProjectCertificationDirectoryEO::getId,id);
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
queryWrapper.lambda().eq(ProjectCertificationDirectoryEO::getCreateBy,currentUser.getUsername());
|
||||
Integer integer = this.baseMapper.selectCount(queryWrapper);
|
||||
if(integer > 0){
|
||||
result = true;
|
||||
}else {
|
||||
String message = "";
|
||||
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
|
||||
message = "用户只能对自己创建的数据进行操作。";
|
||||
}else if(StringUtils.equals(cut, CutEnum.EN.getValue())){
|
||||
message = "Users can only operate data created by themselves.";
|
||||
}
|
||||
throw new JeroBootException(message);
|
||||
}
|
||||
}else {
|
||||
result = true;
|
||||
}
|
||||
}catch (Exception ex){
|
||||
log.error("验证项目库-认证目录数据异常:" + ex.getMessage());
|
||||
throw new JeroBootException("验证项目库-认证目录数据异常!");
|
||||
}
|
||||
return result;
|
||||
// try{
|
||||
// if(StringUtils.isNotEmpty(id)){
|
||||
// QueryWrapper<ProjectCertificationDirectoryEO> queryWrapper = new QueryWrapper<>();
|
||||
// queryWrapper.lambda().eq(ProjectCertificationDirectoryEO::getId,id);
|
||||
// LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
// queryWrapper.lambda().eq(ProjectCertificationDirectoryEO::getCreateBy,currentUser.getUsername());
|
||||
// Integer integer = this.baseMapper.selectCount(queryWrapper);
|
||||
// if(integer > 0){
|
||||
// result = true;
|
||||
// }else {
|
||||
// String message = "";
|
||||
// if(StringUtils.equals(cut, CutEnum.CN.getValue())){
|
||||
// message = "用户只能对自己创建的数据进行操作。";
|
||||
// }else if(StringUtils.equals(cut, CutEnum.EN.getValue())){
|
||||
// message = "Users can only operate data created by themselves.";
|
||||
// }
|
||||
// throw new JeroBootException(message);
|
||||
// }
|
||||
// }else {
|
||||
// result = true;
|
||||
// }
|
||||
// }catch (Exception ex){
|
||||
// log.error("验证项目库-认证目录数据异常:" + ex.getMessage());
|
||||
// throw new JeroBootException("验证项目库-认证目录数据异常!");
|
||||
// }
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
+23
-22
@@ -392,27 +392,28 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
for(ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList){
|
||||
if(allList.size()>0){
|
||||
if(!allList.contains(dutyPerson)){
|
||||
|
||||
if(roleCode.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(roleCode.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(roleCode.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);
|
||||
if (StringUtils.isNotEmpty(roleCode)) {
|
||||
if(roleCode.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(roleCode.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(roleCode.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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5935,7 +5936,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
public void syncProcessInfoDetailEndTime(Date newEndTime, List<ProjectCertificationInventoryEO> pciEoList) {
|
||||
pciEoList = pciEoList.stream().filter(pciEo -> {
|
||||
boolean flag = false;
|
||||
if(!newEndTime.equals(pciEo.getEndTime())){
|
||||
if(null != newEndTime && !newEndTime.equals(pciEo.getEndTime())){
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
|
||||
+220
-167
@@ -618,29 +618,27 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
if (allList.size() > 0) {
|
||||
for (String allDuty : allDutyList) {
|
||||
String dutyPerson = allDuty;
|
||||
if (!StringUtils.isEmpty(dutyPerson)) {
|
||||
if (!allList.contains(dutyPerson)) {
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -928,7 +926,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
}
|
||||
|
||||
String regulationOwnerId = projectLawsInventoryOld.getRegulationOwnerId();
|
||||
// 给法规工程师发消息
|
||||
// 给设计符合性-责任人发消息
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("contentCn", "您好,您以下任务已被发起人撤回。");
|
||||
params.put("contentEn", "Hello! Your task has been withdrawn by the initiator.");
|
||||
@@ -936,6 +934,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
params.put("endTime", endTime);
|
||||
params.put("userIdList", Arrays.asList(projectLawsInventoryOld.getDesignDutyId().split(",")));
|
||||
params.put("serialNumbers", projectLawsInventoryOld.getSerialNumber());
|
||||
params.put("flowTypeCn","设计符合性流程");
|
||||
params.put("flowTypeEn","Design Compliance Process");
|
||||
|
||||
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLawsInventoryEO.getProjectLibraryId());
|
||||
if (ObjectUtils.isNotEmpty(projectLibraryBase)) {
|
||||
@@ -952,7 +952,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String regulationOwnerUserName = this.sysUserService.getUsernameByUserId(regulationOwnerUserList, regulationOwnerId);
|
||||
params.put("Initiator", regulationOwnerUserName);
|
||||
|
||||
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION1.getValue(), params);
|
||||
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(), params);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -970,7 +970,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
}
|
||||
|
||||
String regulationOwnerId = projectLawsInventoryOld.getRegulationOwnerId();
|
||||
// 给法规工程师发消息
|
||||
// 给设计符合性-责任人发消息
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("contentCn", "您好,您以下任务已被发起人撤回。");
|
||||
params.put("contentEn", "Hello! Your task has been withdrawn by the initiator.");
|
||||
@@ -978,6 +978,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
params.put("endTime", endTime);
|
||||
params.put("userIdList", Arrays.asList(projectLawsInventoryOld.getDesignDutyId().split(",")));
|
||||
params.put("serialNumbers", projectLawsInventoryOld.getSerialNumber());
|
||||
params.put("flowTypeCn","设计符合性流程");
|
||||
params.put("flowTypeEn","Design Compliance Process");
|
||||
|
||||
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLawsInventoryEO.getProjectLibraryId());
|
||||
if (ObjectUtils.isNotEmpty(projectLibraryBase)) {
|
||||
@@ -994,7 +996,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String regulationOwnerUserName = this.sysUserService.getUsernameByUserId(regulationOwnerUserList, regulationOwnerId);
|
||||
params.put("Initiator", regulationOwnerUserName);
|
||||
|
||||
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION1.getValue(), params);
|
||||
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(), params);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4429,171 +4431,165 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
|
||||
String DesdutyId = projectLawsInventoryEOList.get(0).getDesignDutyId();
|
||||
String VerdutyId = projectLawsInventoryEOList.get(0).getVerifyDutyId();
|
||||
String desdutyId = projectLawsInventoryEO.getDesignDutyId();
|
||||
String verdutyId = projectLawsInventoryEO.getVerifyDutyId();
|
||||
|
||||
List<String> dutyTerritoryList = new ArrayList<>();
|
||||
//获取批量设置中责任领域
|
||||
String dutyTerritory = projectLawsInventoryEOList.get(0).getDutyTerritory();
|
||||
if (!StringUtils.isEmpty(dutyTerritory)) {
|
||||
String dutyTerritory = projectLawsInventoryEO.getDutyTerritory();
|
||||
if (StringUtils.isNotEmpty(dutyTerritory)) {
|
||||
for (ProjectLawsInventoryEO info : infoList) {
|
||||
info.setDutyTerritory(dutyTerritory);
|
||||
}
|
||||
}
|
||||
if (!StringUtils.isEmpty(DesdutyId)) {
|
||||
dutyTerritoryList = Arrays.asList(dutyTerritory.split(","));
|
||||
} else {
|
||||
for (ProjectLawsInventoryEO info : infoList) {
|
||||
info.setDesignDutyId(DesdutyId);
|
||||
}
|
||||
}
|
||||
if (!StringUtils.isEmpty(VerdutyId)) {
|
||||
for (ProjectLawsInventoryEO info : infoList) {
|
||||
info.setVerifyDutyId(VerdutyId);
|
||||
if (StringUtils.isNotEmpty(info.getDutyTerritory())) {
|
||||
dutyTerritoryList.addAll(Arrays.asList(info.getDutyTerritory().split(",")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!StringUtils.isEmpty(dutyTerritory)) {
|
||||
dutyTerritoryList = Arrays.asList(dutyTerritory.split(","));
|
||||
dutyTerritoryList = dutyTerritoryList.stream().distinct().collect(Collectors.toList());
|
||||
} else {
|
||||
dutyTerritoryList = dutyTerritoryList.stream().distinct().collect(Collectors.toList());
|
||||
|
||||
if (StringUtils.isNotEmpty(desdutyId)) {
|
||||
for (ProjectLawsInventoryEO info : infoList) {
|
||||
List<String> dutyList = new ArrayList<>();
|
||||
dutyList = Arrays.asList(info.getDutyTerritory().split(","));
|
||||
dutyTerritoryList.addAll(dutyList);
|
||||
info.setDesignDutyId(desdutyId);
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotEmpty(verdutyId)) {
|
||||
for (ProjectLawsInventoryEO info : infoList) {
|
||||
info.setVerifyDutyId(verdutyId);
|
||||
}
|
||||
dutyTerritoryList = dutyTerritoryList.stream().distinct().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
// 获取当前的projectLibrartId
|
||||
String projectLibrartId = infoEOList.get(0).getProjectLibraryId();
|
||||
String cut = infoEOList.get(0).getCut();
|
||||
String projectLibrartId = infoList.get(0).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);
|
||||
|
||||
//获取当前项目库id的studio工程师和认证工程师
|
||||
List<String> studionList = new ArrayList<>();
|
||||
List<String> certificationEngineerList = new ArrayList<>();
|
||||
List<ProjectLibraryBase> projectLibraryBases = projectLibraryBaseService.queryById(projectLibrartId, cut);
|
||||
|
||||
String roleCode1 = projectLibraryRoleRelEO.getRoleCode();
|
||||
if(CollectionUtils.isNotEmpty(dutyTerritoryList)){
|
||||
//获取相关责任领域下的和projectLibrartId的相关人员名单的信息
|
||||
List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritoy(projectLibrartId, dutyTerritoryList);
|
||||
if(CollectionUtils.isNotEmpty(projectRelatedPersonnelList)){
|
||||
List<ProjectRelatedPersonnel> updatePrpEoList = new ArrayList<>();
|
||||
|
||||
//获取相关责任领域下的和projectLibrartId的相关人员名单的信息
|
||||
List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritoy(projectLibrartId, dutyTerritoryList);
|
||||
for (ProjectLawsInventoryEO projectLawsInventoryEO1 : infoList) {
|
||||
|
||||
List<ProjectRelatedPersonnel> list = new ArrayList<>();
|
||||
//分别获取当前编辑中的设计符合性和认证符合性责任人
|
||||
List<String> designDutyIdList = new ArrayList<>();
|
||||
if (StringUtils.isNotEmpty(projectLawsInventoryEO1.getDesignDutyId())) {
|
||||
designDutyIdList = Arrays.asList(projectLawsInventoryEO1.getDesignDutyId().split(","));
|
||||
}
|
||||
|
||||
for (ProjectLawsInventoryEO projectLawsInventoryEO1 : infoList) {
|
||||
List<String> verifyDutyIdList = new ArrayList<>();
|
||||
if (StringUtils.isNotEmpty(projectLawsInventoryEO1.getVerifyDutyId())) {
|
||||
verifyDutyIdList = Arrays.asList(projectLawsInventoryEO1.getVerifyDutyId().split(","));
|
||||
}
|
||||
|
||||
//分别获取当前编辑中的设计符合性和认证符合性责任人
|
||||
List<String> designDutyIdList = new ArrayList<>();
|
||||
designDutyIdList = Arrays.asList(projectLawsInventoryEO1.getDesignDutyId().split(","));
|
||||
List<String> verifyDutyIdList = new ArrayList<>();
|
||||
verifyDutyIdList = Arrays.asList(projectLawsInventoryEO1.getVerifyDutyId().split(","));
|
||||
//allDutyList 为法规工程师中验证符合性和确认符合中的责任人
|
||||
List<String> allDutyList = new ArrayList<>();
|
||||
allDutyList.addAll(designDutyIdList);
|
||||
allDutyList.addAll(verifyDutyIdList);
|
||||
allDutyList = allDutyList.stream().distinct().collect(Collectors.toList());
|
||||
|
||||
//allDutyList 为法规工程师中验证符合性和确认符合中的责任人
|
||||
List<String> allDutyList = new ArrayList<>();
|
||||
allDutyList.addAll(designDutyIdList);
|
||||
allDutyList.addAll(verifyDutyIdList);
|
||||
allDutyList = allDutyList.stream().distinct().collect(Collectors.toList());
|
||||
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<>();
|
||||
|
||||
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());
|
||||
for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) {
|
||||
// 工程接口人
|
||||
String enginneringInterfacePerson = relatedPersonnel.getEngineeringInterfacePerson();
|
||||
if (!StringUtils.isEmpty(enginneringInterfacePerson)) {
|
||||
enginnerList = Arrays.stream(enginneringInterfacePerson.split(",")).collect(Collectors.toList());
|
||||
allList.addAll(enginnerList);
|
||||
}
|
||||
|
||||
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.isEmpty(dutyPerson)) {
|
||||
if (!allList.contains(dutyPerson)) {
|
||||
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);
|
||||
// 法规工程师
|
||||
String lawEngineer = relatedPersonnel.getLawEngineer();
|
||||
if (!StringUtils.isEmpty(lawEngineer)) {
|
||||
lawEnginnerList = Arrays.stream(lawEngineer.split(",")).collect(Collectors.toList());
|
||||
allList.addAll(lawEnginnerList);
|
||||
}
|
||||
|
||||
// 工程接口-法规工程师设置
|
||||
String engineerLawSet = relatedPersonnel.getEngineerLawSet();
|
||||
if (!StringUtils.isEmpty(engineerLawSet)) {
|
||||
enginnerLawSetList = Arrays.stream(engineerLawSet.split(",")).collect(Collectors.toList());
|
||||
allList.addAll(enginnerLawSetList);
|
||||
}
|
||||
|
||||
// 工程接口-认证工程师设置
|
||||
String engineerAttSet = relatedPersonnel.getEngineerAttSet();
|
||||
if (!StringUtils.isEmpty(engineerAttSet)) {
|
||||
enginnerAttSetList = Arrays.stream(engineerAttSet.split(",")).collect(Collectors.toList());
|
||||
allList.addAll(enginnerAttSetList);
|
||||
}
|
||||
}
|
||||
|
||||
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());
|
||||
//遍历所有人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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updatePrpEoList.addAll(projectRelatedPersonnelList);
|
||||
}
|
||||
this.projectRelatedPersonnelService.updateBatchById(updatePrpEoList);
|
||||
}
|
||||
|
||||
list.addAll(projectRelatedPersonnelList);
|
||||
// this.projectRelatedPersonnelService.updateBatchById(projectRelatedPersonnelList);
|
||||
}
|
||||
this.projectRelatedPersonnelService.updateBatchById(list);
|
||||
|
||||
|
||||
projectLawsInventoryEOList.forEach(projectLawsInventory -> {
|
||||
//更新三个符合性流程中的处理人。
|
||||
this.updateFlowInfo(projectLawsInventory);
|
||||
@@ -6846,7 +6842,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
params.put("projectLawsInventoryIds", projectLawsInventoryIds);
|
||||
params.put("pIds", pIds);
|
||||
//根据流程实例id 、 法规清单id 删除相关流程。
|
||||
workFlowFeignClient.deleteProcessInstanceByProjectLawsInventoryIds(params);
|
||||
// workFlowFeignClient.deleteProcessInstanceByProjectLawsInventoryIds(params);
|
||||
|
||||
//清除流程中心对应的数据
|
||||
params.put("ids", ids);
|
||||
@@ -10688,7 +10684,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(","));
|
||||
|
||||
List<String> userIdList = Arrays.asList(verifyDutyId.split(","));
|
||||
// 给设计符合性流程责任人发消息
|
||||
// 给验证符合性流程责任人发消息
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("contentCn", "您好,请及时查看确认以下任务要求,谢谢!");
|
||||
params.put("contentEn", "Hello! Please check and confirm the following task requirement in a timely manner. Thank you!");
|
||||
@@ -10696,6 +10692,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
params.put("endTime", endTime);
|
||||
params.put("userIdList", userIdList);
|
||||
params.put("serialNumbers", serialNumbers);
|
||||
params.put("flowTypeCn","验证符合性流程");
|
||||
params.put("flowTypeEn","Validation Compliance Process");
|
||||
|
||||
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
|
||||
if (ObjectUtils.isNotEmpty(projectLibraryBase)) {
|
||||
@@ -10714,7 +10712,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String regulationOwnerUserName = this.sysUserService.getUsernameByUserId(regulationOwnerUserList, regulationOwnerId);
|
||||
params.put("Initiator", regulationOwnerUserName);
|
||||
|
||||
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION1.getValue(), params);
|
||||
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(), params);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10950,6 +10948,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
params.put("endTime", endTime);
|
||||
params.put("userIdList", userIdList);
|
||||
params.put("serialNumbers", serialNumbers);
|
||||
params.put("flowTypeCn","设计符合性流程");
|
||||
params.put("flowTypeEn","Design Compliance Process");
|
||||
|
||||
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
|
||||
if (ObjectUtils.isNotEmpty(projectLibraryBase)) {
|
||||
@@ -10968,7 +10968,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String regulationOwnerUserName = this.sysUserService.getUsernameByUserId(regulationOwnerUserList, regulationOwnerId);
|
||||
params.put("Initiator", regulationOwnerUserName);
|
||||
|
||||
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION1.getValue(), params);
|
||||
this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(), params);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11729,6 +11729,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
List<String> userIdList = new ArrayList<>();
|
||||
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
|
||||
|
||||
//交付物类型为NA,写远了不好找,写在这里方便以后优化
|
||||
String naType = "1645667531513237506";
|
||||
for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOS) {
|
||||
//未发起或拒绝 可以发起清单确认
|
||||
boolean checkStatus = (StringUtils.equals(projectLawsInventoryEO.getDesignFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())
|
||||
@@ -11739,15 +11741,19 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
//如果该数据的法规工程师不为空
|
||||
boolean checkUser = (StringUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId()));
|
||||
if (checkStatus && checkUser) {
|
||||
if (StringUtils.equals(projectLawsInventoryEO.getDesignFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())
|
||||
//如果交付物为NA则流程状态直接为不涉及
|
||||
if(StringUtils.equals(projectLawsInventoryEO.getDesignDeliverableType(),naType)){
|
||||
projectLawsInventoryEO.setDesignFlowStatus(ComplianceFlowStatusEnum.UNINVOLVED.getValue());
|
||||
}else if (StringUtils.equals(projectLawsInventoryEO.getDesignFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())
|
||||
|| StringUtils.equals(projectLawsInventoryEO.getDesignFlowStatus(), ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue())) {
|
||||
projectLawsInventoryEO.setDesignFlowStatus(ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue());
|
||||
}
|
||||
if (StringUtils.equals(projectLawsInventoryEO.getVerifyFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())
|
||||
if(StringUtils.equals(projectLawsInventoryEO.getVerifyDeliverableType(),naType)){
|
||||
projectLawsInventoryEO.setVerifyFlowStatus(ComplianceFlowStatusEnum.UNINVOLVED.getValue());
|
||||
}else if (StringUtils.equals(projectLawsInventoryEO.getVerifyFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())
|
||||
|| StringUtils.equals(projectLawsInventoryEO.getVerifyFlowStatus(), ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue())) {
|
||||
projectLawsInventoryEO.setVerifyFlowStatus(ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue());
|
||||
}
|
||||
|
||||
projectLawsInventoryEO.setInventoryAffirmDueDate(endTime);
|
||||
|
||||
userIdList.add(projectLawsInventoryEO.getRegulationOwnerId());
|
||||
@@ -12917,6 +12923,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
if (CollectionUtils.isNotEmpty(pliEoListTemp)) {
|
||||
ProjectLawsInventoryEO pliEoTemp = pliEoListTemp.get(0);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
|
||||
String endTime = "";
|
||||
String contentCn = "";
|
||||
String contentEn = "";
|
||||
@@ -12924,9 +12932,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String taskDefinitionKey = pidEo.getTaskDefinitionKey();
|
||||
if (StringUtils.equals(taskDefinitionKey, DesignComplianceFlowNodeKeyEnum.ZRRQR.getValue())
|
||||
|| StringUtils.equals(taskDefinitionKey, DesignComplianceFlowNodeKeyEnum.DEZRRQR.getValue())) {
|
||||
|
||||
params.put("flowTypeCn","设计符合性流程");
|
||||
params.put("flowTypeEn","Design Compliance Process");
|
||||
contentCn = "您好,请及时查看确认以下任务要求,谢谢!";
|
||||
contentEn = "Hello! Please check and confirm the following task requirement in a timely manner. Thank you!";
|
||||
templateId = TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION1.getValue();
|
||||
templateId = TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue();
|
||||
endTime = DateUtils.formatDate(pliEoTemp.getDesignDutyDueDate());
|
||||
} else if (StringUtils.equals(taskDefinitionKey, DesignComplianceFlowNodeKeyEnum.ZRRTJJFW.getValue())
|
||||
|| StringUtils.equals(taskDefinitionKey, DesignComplianceFlowNodeKeyEnum.DEZRRTJJFW.getValue())) {
|
||||
@@ -12936,7 +12947,6 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
endTime = DateUtils.formatDate(pliEoTemp.getDesignDueDate());
|
||||
}
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("userIdList", Arrays.asList(designTransferUserId.split(",")));
|
||||
params.put("projectLibraryId", projectLibraryId);
|
||||
params.put("endTime", endTime);
|
||||
@@ -13023,6 +13033,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
if (CollectionUtils.isNotEmpty(pliEoListTemp)) {
|
||||
ProjectLawsInventoryEO pliEoTemp = pliEoListTemp.get(0);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
|
||||
String endTime = "";
|
||||
String contentCn = "";
|
||||
String contentEn = "";
|
||||
@@ -13030,9 +13042,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String taskDefinitionKey = pidEo.getTaskDefinitionKey();
|
||||
if (StringUtils.equals(taskDefinitionKey, VerifyComplianceFlowNodeKeyEnum.ZRRQR.getValue())
|
||||
|| StringUtils.equals(taskDefinitionKey, VerifyComplianceFlowNodeKeyEnum.DEZRRQR.getValue())) {
|
||||
params.put("flowTypeCn","验证符合性流程");
|
||||
params.put("flowTypeEn","Validation Compliance Process");
|
||||
|
||||
contentCn = "您好,请及时查看确认以下任务要求,谢谢!";
|
||||
contentEn = "Hello! Please check and confirm the following task requirement in a timely manner. Thank you!";
|
||||
templateId = TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION1.getValue();
|
||||
templateId = TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue();
|
||||
endTime = DateUtils.formatDate(pliEoTemp.getVerifyDutyDueDate());
|
||||
} else if (StringUtils.equals(taskDefinitionKey, VerifyComplianceFlowNodeKeyEnum.ZRRTJJFW.getValue())
|
||||
|| StringUtils.equals(taskDefinitionKey, VerifyComplianceFlowNodeKeyEnum.DEZRRTJJFW.getValue())) {
|
||||
@@ -13042,7 +13057,6 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
endTime = DateUtils.formatDate(pliEoTemp.getVerifyDueDate());
|
||||
}
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("userIdList", Arrays.asList(verifyTransferUserId.split(",")));
|
||||
params.put("projectLibraryId", projectLibraryId);
|
||||
params.put("endTime", endTime);
|
||||
@@ -13433,6 +13447,16 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
dutyTerritoryStr = projectLawsInventoryEO.getDutyTerritory();
|
||||
projectLawsInventoryEO.setDutyTerritory(null);
|
||||
}
|
||||
String designFlowStatusStr = "";
|
||||
if (StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignFlowStatus())) {
|
||||
designFlowStatusStr = projectLawsInventoryEO.getDesignFlowStatus();
|
||||
projectLawsInventoryEO.setDesignFlowStatus(null);
|
||||
}
|
||||
String verifyFlowStatusStr = "";
|
||||
if (StringUtils.isNotEmpty(projectLawsInventoryEO.getVerifyFlowStatus())) {
|
||||
verifyFlowStatusStr = projectLawsInventoryEO.getVerifyFlowStatus();
|
||||
projectLawsInventoryEO.setVerifyFlowStatus(null);
|
||||
}
|
||||
|
||||
// 根据一级责任领域(统计节点),查询该一级责任领域下所有子责任领域的法规清单数据。
|
||||
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getFirstLevelDutyTerritory())){
|
||||
@@ -13467,6 +13491,35 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
}
|
||||
});
|
||||
}
|
||||
if (StringUtils.isNotEmpty(designFlowStatusStr)) {
|
||||
String finalDesignFlowStatusStr = designFlowStatusStr.replaceAll("\\*","");
|
||||
queryWrapper.and(query -> {
|
||||
query.lambda().like(ProjectLawsInventoryEO::getDesignFlowStatus, finalDesignFlowStatusStr);
|
||||
if(StringUtils.contains(finalDesignFlowStatusStr,",")){
|
||||
String[] designFlowStatusArr = finalDesignFlowStatusStr.split(",");
|
||||
for (String dsf : designFlowStatusArr) {
|
||||
query.or(q -> {
|
||||
q.like("design_flow_status",dsf);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
if (StringUtils.isNotEmpty(verifyFlowStatusStr)) {
|
||||
String finalVerifyFlowStatusStr = verifyFlowStatusStr.replaceAll("\\*","");
|
||||
queryWrapper.and(query -> {
|
||||
query.lambda().like(ProjectLawsInventoryEO::getVerifyFlowStatus, finalVerifyFlowStatusStr);
|
||||
if(StringUtils.contains(finalVerifyFlowStatusStr,",")){
|
||||
String[] verifyFlowStatusArr = finalVerifyFlowStatusStr.split(",");
|
||||
for (String vsf : verifyFlowStatusArr) {
|
||||
query.or(q -> {
|
||||
q.like("verify_flow_status",vsf);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
int isProjectRole = Integer.parseInt(projectLawsInventoryEO.getRoleCode());
|
||||
if(isProjectRole != Integer.parseInt(ProjectRoleEnum.STUDIO_ENGINEER.getValue())
|
||||
|
||||
+24
-13
@@ -2055,7 +2055,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
||||
private void projectDetailsStatisticsGroupByTerritoryHearSort(List<Map<String, Object>> dataList,Map<String,Object> params) {
|
||||
String orderByField = (String) params.get("orderByField");
|
||||
String orderBy = (String) params.get("orderBy");
|
||||
if(CollectionUtils.isNotEmpty(dataList) && StringUtils.isNotEmpty(orderByField) && StringUtils.isNotEmpty(orderBy)){
|
||||
if(CollectionUtils.isNotEmpty(dataList)){
|
||||
Collator comparator = Collator.getInstance(Locale.CHINESE);
|
||||
Collections.sort(dataList,(data1,data2)->{
|
||||
String param1 = "";
|
||||
@@ -2064,21 +2064,31 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
||||
if("dutyTerritoryName".equals(orderByField)){
|
||||
param1 = StringUtils.isNotEmpty((String) data1.get("dutyTerritoryName")) ? (String) data1.get("dutyTerritoryName") : "";
|
||||
param2 = StringUtils.isNotEmpty((String) data2.get("dutyTerritoryName")) ? (String) data2.get("dutyTerritoryName") : "";
|
||||
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
|
||||
return comparator.compare(param1,param2);
|
||||
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
|
||||
return comparator.compare(param2,param1);
|
||||
}
|
||||
}
|
||||
// 数量
|
||||
if("amount".equals(orderByField)){
|
||||
param1 = StringUtils.isNotEmpty(String.valueOf(data1.get("amount"))) ? String.valueOf(data1.get("amount")) : "";
|
||||
param2 = StringUtils.isNotEmpty(String.valueOf(data2.get("amount"))) ? String.valueOf(data2.get("amount")) : "";
|
||||
if(StringUtils.isEmpty(orderByField) || "amount".equals(orderByField)){
|
||||
double p1 = data1.get("amount") != null ? (double) data1.get("amount") : 0;
|
||||
double p2 = data2.get("amount") != null ? (double) data2.get("amount") : 0;
|
||||
if(StringUtils.isEmpty(orderBy) || OrderEnum.POSITIVE.getValue().equals(orderBy)){
|
||||
return (int)(p1 - p2);
|
||||
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
|
||||
return (int)(p2 - p1);
|
||||
}
|
||||
}
|
||||
// 占比
|
||||
if("percentage".equals(orderByField)){
|
||||
param1 = StringUtils.isNotEmpty((String) data1.get("percentage")) ? (String) data1.get("percentage") : "";
|
||||
param2 = StringUtils.isNotEmpty((String) data2.get("percentage")) ? (String) data2.get("percentage") : "";
|
||||
}
|
||||
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
|
||||
return comparator.compare(param1,param2);
|
||||
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
|
||||
return comparator.compare(param2,param1);
|
||||
double p1 = StringUtils.isNotEmpty((String) data1.get("percentage")) ? Double.parseDouble (((String) data1.get("percentage")).replace("%","")) : 0;
|
||||
double p2 = StringUtils.isNotEmpty((String) data2.get("percentage")) ? Double.parseDouble (((String) data2.get("percentage")).replace("%","")) : 0;
|
||||
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
|
||||
return (int)(p1 - p2);
|
||||
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
|
||||
return (int)(p2 - p1);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
@@ -3016,8 +3026,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
||||
dataRow.createCell(3).setCellValue(submitAmount);
|
||||
dataRow.createCell(4).setCellValue(syncReporAmount);
|
||||
double parameterCollectingCount = notStartAmount + collectingAmount + submitAmount + syncReporAmount;
|
||||
double parameterCollectingPercentage = (syncReporAmount / parameterCollectingCount) * 100;
|
||||
String parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (syncReporAmount !=0 )) ? df.format(parameterCollectingPercentage) : "0";
|
||||
double completionCount = submitAmount + syncReporAmount;
|
||||
double parameterCollectingPercentage = (completionCount / parameterCollectingCount) * 100;
|
||||
String parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (completionCount !=0 )) ? df.format(parameterCollectingPercentage) : "0";
|
||||
dataRow.createCell(5).setCellValue(parameterCollectingPercentageStr + percentSign);
|
||||
}
|
||||
|
||||
|
||||
+71
-5
@@ -15,6 +15,7 @@ import com.jero.modules.cert.collect.entity.ParamsManifestEO;
|
||||
import com.jero.modules.cert.collect.enums.CollectManifestStatisticsStateEnum;
|
||||
import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService;
|
||||
import com.jero.modules.cert.collect.service.IParamsManifestEOService;
|
||||
import com.jero.modules.cert.report.entity.ParamsReportConfigDataEO;
|
||||
import com.jero.modules.cert.template.enums.ControlTypeEnum;
|
||||
import com.jero.modules.project.entity.*;
|
||||
import com.jero.modules.project.enums.*;
|
||||
@@ -50,6 +51,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
@@ -171,7 +173,8 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
projectLibraryBaseLinkedList.addAll(projectLibraryBaseListTemp);
|
||||
}
|
||||
}
|
||||
Collections.sort(projectLibraryBaseList);
|
||||
//Collections.sort(projectLibraryBaseList);
|
||||
|
||||
|
||||
List<SysDictItem> dictItemList = sysDictItemServiceImpl.selectItemsByDictCode("region");
|
||||
for (ProjectLibraryBase libraryBase : projectLibraryBaseList) {
|
||||
@@ -194,6 +197,67 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
}
|
||||
}
|
||||
}
|
||||
Collections.sort(result, new Comparator<Map<String,Object>>() {
|
||||
@Override
|
||||
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
||||
ProjectLibraryBase p1 = (ProjectLibraryBase) o1.get("projectInfo");
|
||||
ProjectLibraryBase p2 = (ProjectLibraryBase) o2.get("projectInfo");
|
||||
Date defaultTime = null;
|
||||
try {
|
||||
defaultTime = sdf.parse("2099-01-01");
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Date HomoKoTime1 = defaultTime;
|
||||
List<List<TimeNodeVO>> tnvList1 = (List<List<TimeNodeVO>>) o1.get("data");
|
||||
if (CollectionUtils.isNotEmpty(tnvList1)) {
|
||||
List<TimeNodeVO> tnList1 = tnvList1.get(0);
|
||||
if (CollectionUtils.isNotEmpty(tnList1)) {
|
||||
for (TimeNodeVO tnv1 : tnList1) {
|
||||
if (tnv1.getName().equals(ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getName())
|
||||
|| tnv1.getName().equals(ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getValue())) {
|
||||
HomoKoTime1 = tnv1.getTime();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Date HomoKoTime2 = defaultTime;
|
||||
List<List<TimeNodeVO>> tnvList2 = (List<List<TimeNodeVO>>) o2.get("data");
|
||||
if (CollectionUtils.isNotEmpty(tnvList2)) {
|
||||
List<TimeNodeVO> tnList2 = tnvList2.get(0);
|
||||
if (CollectionUtils.isNotEmpty(tnList2)) {
|
||||
for (TimeNodeVO tnv2 : tnList2) {
|
||||
if (tnv2.getName().equals(ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getName())
|
||||
|| tnv2.getName().equals(ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getValue())) {
|
||||
HomoKoTime2 = tnv2.getTime();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//首先排序-认证批准
|
||||
if(!HomoKoTime1.equals(HomoKoTime2)){
|
||||
return HomoKoTime1.compareTo(HomoKoTime2);//升序
|
||||
}
|
||||
if (!p1.getProjectName().equals(p2.getProjectName())) {
|
||||
return p1.getProjectName().compareTo(p2.getProjectName());//升序
|
||||
}
|
||||
if (!p1.getYearName().equals(p2.getYearName())) {
|
||||
if (p1.getYearName().length() != p2.getYearName().length()) {
|
||||
return p1.getYearName().length() - p2.getYearName().length();
|
||||
} else {
|
||||
return p1.getYearName().compareTo(p2.getYearName());//升序
|
||||
}
|
||||
}
|
||||
if (!p1.getTargetMarket().equals(p2.getTargetMarket())) {
|
||||
return p1.getTargetMarket().compareTo(p2.getTargetMarket());//升序
|
||||
}
|
||||
if (!p1.getProjectVersion().equals(p2.getProjectVersion())) {
|
||||
return Integer.valueOf(p1.getProjectVersion()) - Integer.valueOf(p2.getProjectVersion());//升序
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -984,8 +1048,9 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
syncReporAmount = (double) syncReporMap.get("amount");
|
||||
|
||||
double parameterCollectingCount = notStartAmount + collectingAmount + submitAmount + syncReporAmount;
|
||||
double parameterCollectingPercentage = ((submitAmount + syncReporAmount) / parameterCollectingCount) * 100;
|
||||
parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (syncReporAmount !=0 )) ? df.format(parameterCollectingPercentage) : "0";
|
||||
double completionCount = submitAmount + syncReporAmount;
|
||||
double parameterCollectingPercentage = (completionCount / parameterCollectingCount) * 100;
|
||||
parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (completionCount !=0 )) ? df.format(parameterCollectingPercentage) : "0";
|
||||
}
|
||||
dataRow.createCell(51).setCellValue(notStartAmount);
|
||||
dataRow.createCell(52).setCellValue(collectingAmount);
|
||||
@@ -1187,8 +1252,9 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
double syncReporAmount = (double) syncReporMap.get("amount");
|
||||
|
||||
double parameterCollectingCount = notStartAmount + collectingAmount + submitAmount + syncReporAmount;
|
||||
double parameterCollectingPercentage = (submitAmount + syncReporAmount) / parameterCollectingCount;
|
||||
parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (syncReporAmount !=0 )) ? parameterCollectingPercentage : 0;
|
||||
double completionCount = submitAmount + syncReporAmount;
|
||||
double parameterCollectingPercentage = (completionCount) / parameterCollectingCount;
|
||||
parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (completionCount !=0 )) ? parameterCollectingPercentage : 0;
|
||||
}
|
||||
|
||||
Map<String,Object> certificationProgressMap = this.projectCertificationInventoryEOService.groupByCertificationProgress(pciEos);
|
||||
|
||||
+66
@@ -299,6 +299,52 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
timeNodeVOS.add(certificationSubmissionVo);
|
||||
}
|
||||
|
||||
//地方批准1
|
||||
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getLocalapproval1())){
|
||||
TimeNodeVO certificationSubmissionVo = new TimeNodeVO();
|
||||
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
certificationSubmissionVo.setName(ProjectTaskPlanningNameEnum.LOCALAPPROVAL_1.getName());
|
||||
}else{
|
||||
certificationSubmissionVo.setName(ProjectTaskPlanningNameEnum.LOCALAPPROVAL_1.getValue());
|
||||
}
|
||||
|
||||
certificationSubmissionVo.setTime(projectTaskPlanning.getLocalapproval1());
|
||||
if(projectTaskPlanning.getLocalapproval1().after(trueNow)){
|
||||
certificationSubmissionVo.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
||||
}else if(projectTaskPlanning.getLocalapproval1().before(trueNow)){
|
||||
certificationSubmissionVo.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
||||
}else{
|
||||
certificationSubmissionVo.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
certificationSubmissionVo.setProjectId(projectTaskPlanning.getProjectId());
|
||||
certificationSubmissionVo.setG(false);
|
||||
timeNodeVOS.add(certificationSubmissionVo);
|
||||
}
|
||||
|
||||
//地方批准2
|
||||
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getLocalapproval2())){
|
||||
TimeNodeVO certificationSubmissionVo = new TimeNodeVO();
|
||||
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
certificationSubmissionVo.setName(ProjectTaskPlanningNameEnum.LOCALAPPROVAL_2.getName());
|
||||
}else{
|
||||
certificationSubmissionVo.setName(ProjectTaskPlanningNameEnum.LOCALAPPROVAL_2.getValue());
|
||||
}
|
||||
|
||||
certificationSubmissionVo.setTime(projectTaskPlanning.getLocalapproval2());
|
||||
if(projectTaskPlanning.getLocalapproval2().after(trueNow)){
|
||||
certificationSubmissionVo.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
||||
}else if(projectTaskPlanning.getLocalapproval2().before(trueNow)){
|
||||
certificationSubmissionVo.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
||||
}else{
|
||||
certificationSubmissionVo.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
certificationSubmissionVo.setProjectId(projectTaskPlanning.getProjectId());
|
||||
certificationSubmissionVo.setG(false);
|
||||
timeNodeVOS.add(certificationSubmissionVo);
|
||||
}
|
||||
|
||||
// G0 - G7
|
||||
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getZero())){
|
||||
TimeNodeVO timeNodeVO = new TimeNodeVO();
|
||||
@@ -453,6 +499,26 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
timeNodeVOS.add(timeNodeVO);
|
||||
}
|
||||
|
||||
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getMp())){
|
||||
TimeNodeVO timeNodeVO = new TimeNodeVO();
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
timeNodeVO.setName(ProjectTaskPlanningNameEnum.G_MP.getName());
|
||||
}else{
|
||||
timeNodeVO.setName(ProjectTaskPlanningNameEnum.G_MP.getValue());
|
||||
}
|
||||
timeNodeVO.setTime(projectTaskPlanning.getMp());
|
||||
if(projectTaskPlanning.getMp().after(trueNow)){
|
||||
timeNodeVO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
||||
}else if(projectTaskPlanning.getMp().before(trueNow)){
|
||||
timeNodeVO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
||||
}else{
|
||||
timeNodeVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
timeNodeVO.setProjectId(projectTaskPlanning.getProjectId());
|
||||
timeNodeVO.setG(true);
|
||||
timeNodeVOS.add(timeNodeVO);
|
||||
}
|
||||
|
||||
// 排序
|
||||
// Collections.sort(timeNodeVOS, listConfirmationVO);
|
||||
timeNodeVOS = timeNodeVOS.stream()
|
||||
|
||||
+8
-2
@@ -44,6 +44,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -223,7 +224,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
||||
mapSortTemp.put(orderByField,mapSort);
|
||||
}
|
||||
}else{
|
||||
mapSortTemp.put("issue_time","desc");
|
||||
mapSortTemp.put("create_time","desc");
|
||||
}
|
||||
sort.putAll(mapSortTemp);
|
||||
jsonArrySort.add(sort);
|
||||
@@ -413,6 +414,8 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
||||
}
|
||||
if(StringUtils.isBlank(searchVO.getSelectValue())){
|
||||
searchVO.setSelectValue(SEARCH_FLAG);
|
||||
}else{
|
||||
searchVO.setSelectValue(searchVO.getSelectValue().replaceAll("/", "\\\\/"));
|
||||
}
|
||||
|
||||
//判断索引是否存在
|
||||
@@ -428,6 +431,9 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
||||
}
|
||||
String selectValue = searchVO.getSelectValue();
|
||||
String selectValueTwo = searchVO.getSelectValueTwo();
|
||||
if(StringUtils.isNotEmpty(selectValueTwo)){
|
||||
selectValueTwo = selectValueTwo.replaceAll("/", "\\\\/");
|
||||
}
|
||||
//1. 需要查询的字段
|
||||
List<String> fieldList = new ArrayList<>();
|
||||
fieldList.add("serial_number");//权重6
|
||||
@@ -532,7 +538,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
||||
if(StringUtils.isEmpty(selectValue) || StringUtils.equals(selectValue,SEARCH_FLAG)){
|
||||
Map<String,Object> createTime = new HashMap<>();
|
||||
Map<String,Object> createTime1 = new HashMap<>();
|
||||
createTime.put("order","desc");
|
||||
createTime.put("order", "desc");
|
||||
createTime1.put("create_time",createTime);
|
||||
sort.putAll(createTime1);
|
||||
}else {
|
||||
|
||||
+3
-3
@@ -778,11 +778,11 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
|
||||
data.setTaskDefinitionKeyName(taskDefinitionKeyName);
|
||||
}
|
||||
}
|
||||
// 如果是清单确认流程,将任务节点设置为 清单校核:Checklist verification
|
||||
// 如果是清单确认流程,将任务节点设置为 verdutyId:Task initiation
|
||||
if(StringUtils.equals(data.getFlowType(),FlowTypeEnum.QDQR.getValue())){
|
||||
String taskDefinitionKeyName = "清单校核";
|
||||
String taskDefinitionKeyName = "任务发起";
|
||||
if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||
taskDefinitionKeyName = "Checklist verification";
|
||||
taskDefinitionKeyName = "Task initiation";
|
||||
}
|
||||
data.setTaskDefinitionKeyName(taskDefinitionKeyName);
|
||||
}
|
||||
|
||||
+15
-5
@@ -98,11 +98,15 @@ public class LawsWarnService {
|
||||
//处理法规预警模块预警时间查询条件 flag = 0(新车实施日期), flag = 1(在产车实施日期)
|
||||
String flag = String.valueOf(parameter.get("flag"));
|
||||
if(StringUtils.equals(flag,"0")){
|
||||
parameter.put("xin1_che1_xing2_shi2_shi1_ri4_qi1",parameter.get("WarnTime"));
|
||||
if(ObjectUtils.isEmpty(parameter.get("xin1_che1_xing2_shi2_shi1_ri4_qi1"))){
|
||||
parameter.put("xin1_che1_xing2_shi2_shi1_ri4_qi1",parameter.get("WarnTime"));
|
||||
}
|
||||
} else if(StringUtils.equals(flag,"1")){
|
||||
parameter.put("implement_time",parameter.get("WarnTime"));
|
||||
if(ObjectUtils.isEmpty(parameter.get("implement_time"))){
|
||||
parameter.put("implement_time",parameter.get("WarnTime"));
|
||||
}
|
||||
}
|
||||
parameter.remove("WarnTime");
|
||||
// parameter.remove("WarnTime");
|
||||
|
||||
String cut = (String) parameter.get("cut");//中英文切换标识
|
||||
List<OnlCgformField> onlCgformFieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
|
||||
@@ -122,6 +126,8 @@ public class LawsWarnService {
|
||||
fieldListNew.add(fieldTemp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//封装查询条件
|
||||
String condition = bussDocumentLibraryEOService.getConditionStr(parameter);
|
||||
int pageNo = Integer.parseInt(parameter.get("pageNo").toString());
|
||||
@@ -247,7 +253,9 @@ public class LawsWarnService {
|
||||
|
||||
Date newCarModelDate = null;
|
||||
try {
|
||||
newCarModelDate = DateUtils.parseDate((String) data.get("xin1_che1_xing2_shi2_shi1_ri4_qi1"), "yyyy-MM-dd");
|
||||
if(ObjectUtils.isNotEmpty(data.get("xin1_che1_xing2_shi2_shi1_ri4_qi1"))){
|
||||
newCarModelDate = DateUtils.parseDate((String) data.get("xin1_che1_xing2_shi2_shi1_ri4_qi1"), "yyyy-MM-dd");
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -267,7 +275,9 @@ public class LawsWarnService {
|
||||
}).map(PhasedImplementationDetailsEO::getImplementationDate).collect(Collectors.toList());
|
||||
Date implementTime = null;
|
||||
try {
|
||||
implementTime = DateUtils.parseDate((String) data.get("implement_time"), "yyyy-MM-dd");
|
||||
if(ObjectUtils.isNotEmpty(data.get("implement_time"))){
|
||||
implementTime = DateUtils.parseDate((String) data.get("implement_time"), "yyyy-MM-dd");
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@@ -282,7 +282,7 @@ jero :
|
||||
type: STANDALONE
|
||||
enabled: true
|
||||
# 文件限制后缀黑名单
|
||||
fileSuffixLimits : 0x00,%00,\\00,.jsp,.exe,.php,.asp,.aspx,.jspx,.xml,.html,.js,.sh,.bin
|
||||
fileSuffixLimits : 0x00,%00,\\00,.jsp,.exe,.php,.asp,.aspx,.jspx,.xml,.html,.js,.sh,.bin,$DATA
|
||||
# 跨站白名单
|
||||
whiteUrls:
|
||||
#cas单点登录
|
||||
|
||||
@@ -253,7 +253,7 @@ jero :
|
||||
type: STANDALONE
|
||||
enabled: true
|
||||
# 文件限制后缀黑名单
|
||||
fileSuffixLimits : 0x00,%00,\\00,.jsp,.exe,.php,.asp,.aspx,.jspx,.xml,.html,.js,.sh,.bin
|
||||
fileSuffixLimits : 0x00,%00,\\00,.jsp,.exe,.php,.asp,.aspx,.jspx,.xml,.html,.js,.sh,.bin,$DATA
|
||||
# 跨站白名单
|
||||
whiteUrls:
|
||||
#cas单点登录
|
||||
|
||||
@@ -257,7 +257,7 @@ jero :
|
||||
type: STANDALONE
|
||||
enabled: true
|
||||
# 文件限制后缀黑名单
|
||||
fileSuffixLimits : 0x00,%00,\\00,.jsp,.exe,.php,.asp,.aspx,.jspx,.xml,.html,.js,.sh,.bin
|
||||
fileSuffixLimits : 0x00,%00,\\00,.jsp,.exe,.php,.asp,.aspx,.jspx,.xml,.html,.js,.sh,.bin,$DATA
|
||||
# 跨站白名单
|
||||
whiteUrls:
|
||||
#cas单点登录
|
||||
|
||||
@@ -66,11 +66,11 @@ module.exports = {
|
||||
withStart: 'Start with',
|
||||
withEnd: 'End with',
|
||||
in: 'In',
|
||||
notEqual: 'Not Equal To',
|
||||
granter: 'Greater Than',
|
||||
greaterOrEqual: 'Greater Than Or Equal To',
|
||||
less: 'Less Than',
|
||||
lessOrEqual: 'Less Than Or Equal To',
|
||||
notEqual: 'Not equal to',
|
||||
granter: 'Greater than',
|
||||
greaterOrEqual: 'Greater than or equal to',
|
||||
less: 'Less than',
|
||||
lessOrEqual: 'Less than or equal to',
|
||||
user: 'User',
|
||||
numericalValue: 'Value',
|
||||
not: 'No',
|
||||
@@ -85,7 +85,7 @@ module.exports = {
|
||||
name: 'Name',
|
||||
AlreadyExists: 'Already exists, overwrite?',
|
||||
SavedSuccessfully: 'Saved',
|
||||
DeleteQuery: 'Delete current Search?',
|
||||
DeleteQuery: 'Delete current search?',
|
||||
VersionNotSupported: 'Version Not Supported',
|
||||
SaveQueryCriteria: 'Save Search Conditions',
|
||||
roleName: 'Role Name',
|
||||
@@ -114,7 +114,7 @@ module.exports = {
|
||||
DeleteMultiplePiecesData: 'Delete Multiple Items',
|
||||
CurrentSelection: 'Current Selection',
|
||||
Deselect: 'Deselect',
|
||||
enterDepartmentName: 'Please enter Department name',
|
||||
enterDepartmentName: 'Please enter department name',
|
||||
addTo: 'Add',
|
||||
cancel: 'Cancel',
|
||||
checkAll: 'Check All',
|
||||
@@ -200,7 +200,7 @@ module.exports = {
|
||||
enterSearchKeyword: 'Please enter a search keyword',
|
||||
enterSearchContent:'Please enter Search Content',
|
||||
enterStandard:'Please enter No.',
|
||||
entertitle:'Please enter Title',
|
||||
entertitle:'Please enter title',
|
||||
OperationType: 'Operation Type',
|
||||
selectOperationType: 'Please select Operation type',
|
||||
selectProblemClassification:'Please select Problem Classification',
|
||||
@@ -314,7 +314,7 @@ module.exports = {
|
||||
selectUserRole: 'Please select user role',
|
||||
DepartmentAllocation: 'Department Allocation',
|
||||
ClickSelectDepartment: 'Click to select a Department',
|
||||
choice: 'Choice',
|
||||
choice: 'Select',
|
||||
identity: 'Identity',
|
||||
OrdinaryUsers: 'Ordinary Users',
|
||||
superior: 'Superior',
|
||||
@@ -501,8 +501,8 @@ module.exports = {
|
||||
feedback: 'Feedback',
|
||||
approvalHistory: 'Approval History',
|
||||
cannotExceed500characters: 'Cannot Exceed 500 characters',
|
||||
accord: 'Compliance',
|
||||
nonConformity: 'Non-Compliant',
|
||||
accord: 'Compliant',
|
||||
nonConformity: 'Non-compliant',
|
||||
Tracked: 'To Be Tracked',
|
||||
notInvolved: 'NA',
|
||||
Operator: 'Operator',
|
||||
@@ -531,7 +531,7 @@ module.exports = {
|
||||
list: 'List',
|
||||
paragraph: 'Paragraph',
|
||||
enterNumber: 'Please enter No.',
|
||||
enterTitle: 'Please enter Title',
|
||||
enterTitle: 'Please enter title',
|
||||
backDocument: 'Back To Document Library',
|
||||
fileName: 'File Name',
|
||||
splitTime: 'Split Time',
|
||||
@@ -601,7 +601,7 @@ module.exports = {
|
||||
selectSplitListDisplay: 'Please select whether to split the document list for display',
|
||||
selectDisplayList: 'Please select whether to display in list',
|
||||
documentSplitDisplay: 'Document splitting module display',
|
||||
VirtualListName: 'Market List',
|
||||
VirtualListName: 'Market Regulation List',
|
||||
CertificationListName:'Homologation List',
|
||||
listStatus: 'List Status',
|
||||
creater: 'Created by',
|
||||
@@ -615,11 +615,11 @@ module.exports = {
|
||||
certificationType: 'Homo Type',
|
||||
certificationLevel: 'Homo Level',
|
||||
areaOfResponsibility: 'Responsible Field',
|
||||
confirmationOfDesignConformity: 'Design Compliance Check ',
|
||||
confirmationOfDesignConformity: 'Design Compliance Confirmation',
|
||||
Deliverables: 'Deliverables',
|
||||
personLiable: 'Owner',
|
||||
PrehomoConfirmation: 'Pre-Homo Check',
|
||||
verificationAndConformityconfirmation: 'Validation Compliance Check',
|
||||
verificationAndConformityconfirmation: 'Validation Compliance Confirmation',
|
||||
StandardImplementationDate: 'Standard Effective Date',
|
||||
regulatoryEngineer: 'Regulation Engineer',
|
||||
certifiedEngineer: 'Homo Engineer',
|
||||
@@ -671,7 +671,7 @@ module.exports = {
|
||||
GSO: 'GSO',
|
||||
onlyOnefileUploaded: 'Only One File can be uploaded',
|
||||
typeCannotUploaded: 'This Type of File Cannot be Uploaded',
|
||||
confirmWithdraw: 'Confirm Withdraw ?',
|
||||
confirmWithdraw: 'Confirm to Withdraw ?',
|
||||
OperationDetails: 'Operation Details',
|
||||
OperationTime: 'Operation Time',
|
||||
oneTableAdded: 'Only one table can be added',
|
||||
@@ -692,7 +692,7 @@ module.exports = {
|
||||
initiateListConfirmation: 'Initiate List Confirmation',
|
||||
initiateTaskConfirmation: 'Initiate Task Confirmation',
|
||||
alteration: 'Change',
|
||||
fixedPlate: 'Final Version',
|
||||
fixedPlate: 'Finalization',
|
||||
taskAffirmStatus: 'Task Confirmation Status',
|
||||
taskAffirm: 'Task Confirmation',
|
||||
listConfirmationStatus: 'List Confirmation Status',
|
||||
@@ -735,7 +735,7 @@ module.exports = {
|
||||
regulatoryTaskConfirmation: 'Regulation Task Confirmed ',
|
||||
certificationStart: 'Homo Completed ',
|
||||
preHomoCompletion: 'Pre-Homo Completed ',
|
||||
certificationEnd: 'Homo KO',
|
||||
certificationEnd: 'Homo Approved',
|
||||
directoryName: 'Catalogue Name',
|
||||
batch: 'Batch',
|
||||
uploadTime: 'Upload Time',
|
||||
@@ -800,7 +800,7 @@ module.exports = {
|
||||
Battery: 'Battery',
|
||||
Model: 'Model',
|
||||
configurationName: 'Configuration Name',
|
||||
historicalVersion: 'Historical Version',
|
||||
historicalVersion: 'History Version',
|
||||
configure: 'Configuration',
|
||||
parameter: 'Parameter',
|
||||
changeExtension: 'Extension',
|
||||
@@ -859,7 +859,7 @@ module.exports = {
|
||||
cannotExceed: 'Cannot Exceed',
|
||||
Characters: 'Characters',
|
||||
standardInformation: 'Standard Information',
|
||||
VirtualList: 'MarketList',
|
||||
VirtualList: 'Market List',
|
||||
importTemplate: 'Import Template',
|
||||
verificationConfirmationDeadline: 'Validation Compliance Confirmation Deadline',
|
||||
technicalEvaluationResults: 'Technical Evaluation Result',
|
||||
@@ -894,7 +894,7 @@ module.exports = {
|
||||
toBeConfirmed: 'To Be Confirmed',
|
||||
designComplianceReview: 'Design Compliance Check',
|
||||
preHomeConfirmation: 'Pre-Homo Check',
|
||||
verificationComplianceReview: 'Validation Compliance Check',
|
||||
verificationComplianceReview: 'Validation Compliance Confirmation',
|
||||
verificationComplianceExamine:'Validation Compliance Review',
|
||||
Deployment: 'Deploy',
|
||||
pleaseDesignConformityConfirmation: 'Please complete the data of design compliance confirmation',
|
||||
@@ -905,14 +905,14 @@ module.exports = {
|
||||
VirtualAuthenticationList: 'Virtual Homo List',
|
||||
maintainVirtualList: 'Maintain Market List',
|
||||
certificationListMaintenance: 'Homo List Maintenance',
|
||||
reasonsForRejection: 'Reasons For Rejection',
|
||||
inconformity: 'Non-Compliant',
|
||||
reasonsForRejection: 'Reason for Rejection',
|
||||
inconformity: 'Non-compliant',
|
||||
toTrack: 'To Be Tracked',
|
||||
Launch: 'Initiate',
|
||||
maintainProgress: 'Maintain Schedule',
|
||||
redSchedule: 'Red: unqualified without available solutions or timeline. ',
|
||||
yellowSchedule: 'Yellow: unqualified and with available solutions and timeline. ',
|
||||
greenRequirements: 'Green: qualified and confirmed.',
|
||||
redSchedule: 'Red: non-compliant, without acceptable solutions or timeline ',
|
||||
yellowSchedule: 'Yellow: non-compliant/to be tracked, with acceptable solutions and timeline ',
|
||||
greenRequirements: 'Green: compliant or meeting the requirements',
|
||||
blueUndeterminedState: 'Blue: pending',
|
||||
authenticationMessage: 'Homo Parameter Task',
|
||||
taskRegulationComplianceTask: 'Regulation Compliance Task',
|
||||
@@ -953,7 +953,7 @@ module.exports = {
|
||||
pleaseSubmitStatus: 'Please change the status of engineering data to Confirmed before submission',
|
||||
modelName: 'Model Name',
|
||||
modelYear: 'Model Year',
|
||||
NoteConfirmTheChange: 'Note: After resetting, the selected item data will change to a list pending release status, and the historical data will disappear. Please confirm whether to perform a process reset',
|
||||
NoteConfirmTheChange: 'Note: After resetting, the status of the selected items will be changed to To Be Released and the historical data will disappear. Please confirm whether to reset',
|
||||
onlyDataChanged: 'Only data with task confirmation status of Accepted can be changed',
|
||||
inquiry: 'Inquiry',
|
||||
ConfirmationDeadline: 'Confirm Deadline',
|
||||
@@ -990,7 +990,7 @@ module.exports = {
|
||||
Filledreturn: 'Rejected by the applicant',
|
||||
Submitted: 'Submitted',
|
||||
ReturnedEngineer: 'Rejected by homo engineer',
|
||||
SynchronizedLibrary: 'Synced to library',
|
||||
SynchronizedLibrary: 'Synced to Library',
|
||||
Statusis: 'Statusis',
|
||||
toHavePermission: 'To Have Permission',
|
||||
and: 'And',
|
||||
@@ -1000,7 +1000,7 @@ module.exports = {
|
||||
setCreator: 'Set Creator',
|
||||
documentLibraryDetails: 'Document Library Details',
|
||||
question: 'Reminder',
|
||||
ConfirmQuestion: 'Confirm Question',
|
||||
ConfirmQuestion: 'Confirm to remind?',
|
||||
disableInput: 'Disable Input',
|
||||
taskConfirmationDeadline: 'Task Confirmation Deadline',
|
||||
OnlyOrTaskconfirmationOut: 'Only when the list confirmation status or task confirmation status is to be confirmed can the reminder be carried out',
|
||||
@@ -1058,7 +1058,7 @@ module.exports = {
|
||||
standardNameEn: 'Standard Title En',
|
||||
deadlineForComments: 'Deadline for Comments',
|
||||
standardNo: 'Standard No.',
|
||||
implemenDate: 'Effective Date',
|
||||
implemenDate: 'Implementation Date',
|
||||
// 上报库
|
||||
Enable: 'Enable',
|
||||
Latestupdatetime: 'Latest Update Time',
|
||||
@@ -1271,7 +1271,7 @@ module.exports = {
|
||||
turnOnAutoMatch:'Turn On Auto Match',
|
||||
Adjustareasofresponsibility:'Adjust areas of responsibility',
|
||||
regulatoryTechnicalAssessment:'Regulatory Technical Assessment',
|
||||
punctuationmark:'You can only enter English punctuation marks except the # sign and commas',
|
||||
punctuationmark:'You can only enter English punctuation marks except the # sign',
|
||||
created: 'Time of Creation',
|
||||
updated:'Last Updated',
|
||||
OpenOne:'Open',
|
||||
@@ -1333,6 +1333,7 @@ module.exports = {
|
||||
inRecentMonths6:'In recent 6 months',
|
||||
inRecentYear1:'In recent 1 year',
|
||||
inRecentYear2:'In recent 2 year',
|
||||
inRecentYear3:'In recent 3 year',
|
||||
selectAll:'Select All',
|
||||
importLocalDisassemblyOrder:'Import local disassembly order',
|
||||
notExport:'Not exported',
|
||||
@@ -1351,14 +1352,14 @@ module.exports = {
|
||||
projectVersion:'Project Version',
|
||||
softwareVersion:'Homo Software Version',
|
||||
versionStatistics:'Version statistics',
|
||||
addSubproject:'Add Subitem',
|
||||
addSubproject:'Add Subproject',
|
||||
Topping:'Top',
|
||||
cancelTopping:'Cancel Topping',
|
||||
relatedProjectVersion:'Related Project Version',
|
||||
taskType:'Task Type',
|
||||
taskStatus:'Task Status',
|
||||
taskConfirmationHandling:'Task confirmation handling',
|
||||
relatedVersion:'Related version',
|
||||
relatedVersion:'Related Version',
|
||||
filledBy:'Filled by',
|
||||
parameterToBeInitiated:'Parameter to be initiated',
|
||||
listTaskConfirmation:'List task confirmation',
|
||||
@@ -1373,7 +1374,7 @@ module.exports = {
|
||||
projectVersion:'Project Version',
|
||||
softwareVersion:'Homo Software Version',
|
||||
versionStatistics:'Version statistics',
|
||||
addSubproject:'Add Subitem',
|
||||
addSubproject:'Add Subproject',
|
||||
Topping:'Top',
|
||||
cancelTopping:'Cancel Topping',
|
||||
relatedProjectVersion:'Related Project Version',
|
||||
@@ -1383,12 +1384,12 @@ module.exports = {
|
||||
allsubitemsitem:'Delete all subitems under this item?',
|
||||
contactTheFounder:'Contact author',
|
||||
certificationCategoryNumber: 'certification Category Number',
|
||||
historicalrecord:'Historical Record',
|
||||
historicalrecord:'Revision History',
|
||||
Referenceparametercolumn:'Reference Parameter Column',
|
||||
Updateparametercolumn:'Update The Parameter Column',
|
||||
columnfirst:'Reference the parameter column first',
|
||||
columnforced:'Confirm a forced retraction?',
|
||||
customize:'List setting',
|
||||
customize:'List Setting',
|
||||
customColumn:'Custom column',
|
||||
afterdate:'In... After the date',
|
||||
afterdatein:'In... After date (inclusive)',
|
||||
@@ -1404,10 +1405,10 @@ module.exports = {
|
||||
DeliverablesResult:'Delivery Result',
|
||||
reportNo:'Report No.',
|
||||
productModel:'Product Model',
|
||||
nameOfManufacturer:'Name Of Manufacturer',
|
||||
nameOfManufacturer:'Manufacturer Name',
|
||||
regulationNo:'Regulation No.',
|
||||
itemInformation:'Item Information',
|
||||
modifyHistory:'Historical Record',
|
||||
modifyHistory:'Revision History',
|
||||
returnToStudio:'Return to Studio',
|
||||
Approved:'Approved',
|
||||
returnedForApproval:'Returned',
|
||||
@@ -1415,10 +1416,10 @@ module.exports = {
|
||||
referenceDeliverables:'Reference Deliverable',
|
||||
missionAccepted:'Task Accepted',
|
||||
missionRejection:'Task Rejected',
|
||||
turnToDo:'Turn To',
|
||||
initiateTask:'Initiate a Task',
|
||||
compliancereport:'Generate compliance report',
|
||||
todocenter:'To-do center',
|
||||
turnToDo:'Forward',
|
||||
initiateTask:'Initiate Task',
|
||||
compliancereport:'Generate Compliance report',
|
||||
todocenter:'To-Do Center',
|
||||
areYouReturnToStudio:'Confirm to return to studio?',
|
||||
confirmLaunchTask:'Confirm to initiate a task ?',
|
||||
conditionsNotMet:'Conditions not met',
|
||||
@@ -1426,13 +1427,13 @@ module.exports = {
|
||||
onlyProcessReturned:'Only data with a process status of list to be verified and rejected by the responsible person can be initiated, and the delivery type, engineering interface person, responsible person, and deadline cannot be empty',
|
||||
confirmToAcceptTheTask:'Confirm to accept the task?',
|
||||
confirmRejectTask:'Confirm to reject the task ?',
|
||||
onlyDataStatusConfirmedSelected:'Only data with process status of task to be confirmed can be selected',
|
||||
onlyDataStatusSubmittedCanBeSelected:'Only data with process status of result to be submitted can be selected',
|
||||
onlyDataStatusConfirmedSelected:'Only data with process status of Task to Be Confirmed can be selected',
|
||||
onlyDataStatusSubmittedCanBeSelected:'Only data with process status of Result to Be Submitted can be selected',
|
||||
operationWithoutPermission:'No access',
|
||||
data:"'s data",
|
||||
confirmApproval:'Confirm pass review?',
|
||||
confirmReturnForApproval:'Confirm Return for review ?',
|
||||
onlyDataStatusResultReviewedCanBeSelected:'Only data with process status of result to be reviewed can be selected',
|
||||
confirmApproval:'Confirm to approve?',
|
||||
confirmReturnForApproval:'Confirm to reject?',
|
||||
onlyDataStatusResultReviewedCanBeSelected:'Only data with process status of Result to Be Reviewed can be selected',
|
||||
confirmResetProcess:'Confirm to reset the process?',
|
||||
confirmUrging:'Confirm to remind?',
|
||||
confirmWithdrawal:'Confirm to withdraw?',
|
||||
@@ -1443,16 +1444,16 @@ module.exports = {
|
||||
youCannotStatusListToBeReleasedAndApproved:'Data with process status of List to Be Released and Approved cannot be selected',
|
||||
batchmodify:'Modify in batch?',
|
||||
onlyDataListReleasedAndCertificationReturnCanSelected:'Only data with process status of List to Be Released and Returned in Homo can be selected and the deadline cannot be empty',
|
||||
type:'type',
|
||||
type:'Type',
|
||||
select:'select',
|
||||
onlyDataWithProcessStatusDeleted:'Only data with process status of list to be released and approved can be deleted',
|
||||
onlyDataWithProcessStatusDeleted:'Only data with process status of List to Be Released and Approved can be deleted',
|
||||
complianceCertificationProgram:'Compliance & Homologation Program',
|
||||
listPublishing:'List Publishing',
|
||||
responsibilityConfirmation:'Responsibility Confirmation',
|
||||
designVerification:'Design Verification',
|
||||
getStarted:'Get Started',
|
||||
certificationStartOne:'Certification Start',
|
||||
verificationAndVerification:'Verification And Verification',
|
||||
listPublishing:'List Release',
|
||||
responsibilityConfirmation:'Responsibility Confirm',
|
||||
designVerification:'Design Check',
|
||||
getStarted:'Pre-Homo Starts',
|
||||
certificationStartOne:'Homo Starts',
|
||||
verificationAndVerification:'Validation Check',
|
||||
projectInterfacePersonRegulationEngineerSetting:'Project Interface Person - Regulation Engineer Setting',
|
||||
projectInterfacePersonCertificationEngineerSetting:'Project Interface Person - Certification Engineer Setting',
|
||||
registrationnumber:'Product registration number',
|
||||
@@ -1527,6 +1528,7 @@ module.exports = {
|
||||
Taskresponsibilityrecognition:'Responsibility Confirm',
|
||||
uploadattachment:'Upload',
|
||||
Processhistory:'Process history',
|
||||
historyData:'1. Regulatory Engineer, 2. Responsible person, 3. Responsible person, 4. Regulatory Engineer',
|
||||
resultofhandling:'Result of handling',
|
||||
cause:'cause',
|
||||
networksecurityrequirements:'Network security requirements',
|
||||
@@ -1670,8 +1672,8 @@ module.exports = {
|
||||
Taskconfirmationresult:'Task confirmation result',
|
||||
Compliancetaskhandling:'Compliance task handling',
|
||||
theDataYouSelectedContainsSkip:'The data selected contains empty deliverable; please confirm whether to skip',
|
||||
designComplianceProcessFor:'Design compliance process for',
|
||||
validationComplianceProcessFor:'Validation compliance process for',
|
||||
designComplianceProcessFor:'Design Compliance Process for',
|
||||
validationComplianceProcessFor:'Validation Compliance Process for',
|
||||
thePersonResponsibleForVerifyingEmpty:'The owner for validation compliance process cannot be empty',
|
||||
theDeadlineComplianceProcessCannotEmpty:'The deadline for validation compliance process cannot be empty',
|
||||
theDeadlineForTheDesignCannotBeEmpty:'The deadline for design compliance process cannot be empty',
|
||||
@@ -1696,7 +1698,7 @@ module.exports = {
|
||||
taskNodeMismatch:'Task Node Mismatch',
|
||||
ifNot:'If not, fill in "none" or "not involved"',
|
||||
designComplianceProcess:'Design Compliance Process',
|
||||
validationComplianceProcess:'Verify Compliance Process',
|
||||
validationComplianceProcess:'Validation Compliance Process',
|
||||
onlyDataInTheReminderProcessBanBeProcessed:'Only data in the reminder process can be processed',
|
||||
expeditionProcess:'Reminder Process',
|
||||
addfunction:'Add function',
|
||||
@@ -1705,7 +1707,7 @@ module.exports = {
|
||||
softwareversion:'Software version',
|
||||
returntofill:'Return to fill',
|
||||
thereAreCurrentlyNoRegulationsToHandle:'No regulations to be processed now',
|
||||
certificationSubmission:'Certification Submission',
|
||||
certificationSubmission:'Application Submitted',
|
||||
upgradecompletion:'Upgrade completion',
|
||||
implementedupgrade:'Whether the implemented upgrade is consistent with the record',
|
||||
numberofvehicles:'Number of vehicles that have completed upgrades',
|
||||
@@ -1714,7 +1716,7 @@ module.exports = {
|
||||
implementationrecords:'Fault handling measures and emergency response implementation records',
|
||||
onlyDataWithListStatusDraftCanBeDeleted:'Only data with a list status of Draft can be deleted',
|
||||
implementationDateTwo:'Implementation Date',
|
||||
reasonForReturn:'Reason For Return',
|
||||
reasonForReturn:'Reason for Reject',
|
||||
pleaseFillInTheInformationTaskProcess:'Please fill in the information of the Eng. Interface and the owner before initiating the task process',
|
||||
complianceReporting:'Compliance Reporting',
|
||||
youCanOnlySelectStatusClearSubmit:'You can only select data with a process status of Clear to Submit',
|
||||
@@ -1737,7 +1739,7 @@ module.exports = {
|
||||
dykzq:'Corresponding controller',
|
||||
releaseRegulatoryList:'Regulation List Release',
|
||||
preHomoFlow:'Pre-Homo Process',
|
||||
verifyConformanceConfirmation:'Validation Compliance Check',
|
||||
verifyConformanceConfirmation:'Validation Compliance Confirmation',
|
||||
designConformanceVerification:'Design Compliance Check',
|
||||
nomorethan:'No more than 10',
|
||||
marketCertificationList:'Market Certification List',
|
||||
@@ -1753,7 +1755,7 @@ module.exports = {
|
||||
resultsToBeSubmitted:'Results to be submitted',
|
||||
resultsToBeReviewed:'Results to be reviewed',
|
||||
compliance:'Compliant',
|
||||
nonCompliance:'Non-Compliant',
|
||||
nonCompliance:'Non-compliant',
|
||||
toBeTracked:'To Be Tracked',
|
||||
NA:'NA',
|
||||
electroniccontrollerparameter:'Electronic controller parameter',
|
||||
@@ -1839,6 +1841,17 @@ module.exports = {
|
||||
toResubmit:'To Resubmit',
|
||||
selectDesignConformanceAsConformance:'Select Design Conformance verification process state as Conformance or Verify conformance verification process state as conformance obtained data',
|
||||
submissionProcess:'Submission Process',
|
||||
localapproval1:'Local Approval1',
|
||||
localapproval2:'Local Approval2',
|
||||
averageapprovalperiod:'Average approval period',
|
||||
day:'day',
|
||||
passreturntime:'Pass/return time',
|
||||
approvalcycle:'Approval cycle(day)',
|
||||
transittime:'Transit Time',
|
||||
returntime:'Return time',
|
||||
operationguide:'Project operation guide',
|
||||
copyLink:'Copy link',
|
||||
successfulReplication:'Successful replication',
|
||||
|
||||
//手机端
|
||||
myCollection:'My Collection',
|
||||
@@ -1884,5 +1897,8 @@ module.exports = {
|
||||
browsingTime:'Browsing Time',
|
||||
pleaseViewOnPc:'Please view on PC',
|
||||
taskHandling:'Task Handling',
|
||||
backToHomePage:'Back to home page',
|
||||
pleaseEnterUserAccountSearchFor:'Please enter a user account to search for',
|
||||
exportOption:'Export Option',
|
||||
includeTitle:'Include title',
|
||||
Notitleincluded:'No title included',
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@
|
||||
:allowClear="isSingleChoice ? true : false"
|
||||
:label-in-value="isSingleChoice ? false:true"
|
||||
:value="selectValue"
|
||||
:placeholder="$t('PleaseSelect')+query.db_field_txt"
|
||||
:placeholder="$t('pleaseEnterUserAccountSearchFor')"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
:default-active-first-option="false"
|
||||
@@ -165,7 +165,7 @@
|
||||
getUserAndDepart(value, callback) {
|
||||
let query = {
|
||||
current: 1,
|
||||
pageSize: 10,
|
||||
pageSize: 20,
|
||||
username: '*' + value + '*'
|
||||
}
|
||||
getAction('/sys/user/page', query).then((res) => {
|
||||
|
||||
@@ -230,7 +230,12 @@
|
||||
// this.queryParam['WarnTimeText'] = '2'
|
||||
// }
|
||||
let startTime = moment(new Date()).format('YYYY-MM-DD')
|
||||
let endTime = this.getNowdate()
|
||||
let endTime = ''
|
||||
if (!this.queryParam['WarnTimeText']){
|
||||
endTime = '2099-01-01'
|
||||
}else{
|
||||
endTime = this.getNowdate()
|
||||
}
|
||||
if(this.queryParam['WarnTimeText'] == '5'){
|
||||
this.queryParam['WarnTime'] = [endTime, startTime]
|
||||
}else{
|
||||
@@ -245,7 +250,7 @@
|
||||
if (this.isDefault) {
|
||||
let startTime = moment(new Date()).format('YYYY-MM-DD')
|
||||
// this.queryParam['WarnTimeText'] = '2'
|
||||
let endTime = this.getNowdate()
|
||||
let endTime = '2099-01-01'
|
||||
this.queryParam['WarnTime'] = [startTime, endTime]
|
||||
this.queryParam = { ...this.queryParam }
|
||||
}
|
||||
@@ -295,6 +300,9 @@
|
||||
}else if (this.queryParam['WarnTimeText'] == '5') {
|
||||
monthData = 7
|
||||
yearData = -1
|
||||
}else if (this.queryParam['WarnTimeText'] == '6') {
|
||||
monthData = 37
|
||||
yearData = 3
|
||||
}
|
||||
if(this.queryParam['WarnTimeText'] == '5'){
|
||||
var time = new Date();
|
||||
|
||||
@@ -31,13 +31,30 @@
|
||||
<!-- <a-icon type="question-circle-o"></a-icon>-->
|
||||
<!-- </a>-->
|
||||
<!-- </span>-->
|
||||
<div class="action" @click="Jumpflybook">
|
||||
<span class="header-notice">
|
||||
<a-tooltip placement="bottomRight" :title="$t('userManual')" overlayClassName="tooltipColor">
|
||||
<a-icon style="font-size: 16px; padding: 4px; color: #000000A6" type="question-circle"/>
|
||||
</a-tooltip>
|
||||
<!-- <div class="action" @click="Jumpflybook">-->
|
||||
<!-- <span class="header-notice">-->
|
||||
<!-- <a-tooltip placement="bottomRight" :title="$t('userManual')" overlayClassName="tooltipColor">-->
|
||||
<!-- <a-icon style="font-size: 16px; padding: 4px; color: #000000A6" type="question-circle"/>-->
|
||||
<!-- </a-tooltip>-->
|
||||
<!-- </span>-->
|
||||
<!-- </div>-->
|
||||
<a-dropdown>
|
||||
<span class="action action-full ant-dropdown-link user-dropdown-menu">
|
||||
<!-- <a-avatar class="avatar" size="small" :src="getAvatar()"/>-->
|
||||
<!-- <span v-if="isDesktop()">welcome,{{ userInfo().username }}</span>-->
|
||||
<a-icon style="font-size: 16px; padding: 4px; color: #000000A6" type="question-circle"/>
|
||||
</span>
|
||||
</div>
|
||||
<a-menu slot="overlay" class="user-dropdown-menu-wrapper">
|
||||
<a-menu-item key="5" @click="Jumpflybook">
|
||||
<!-- <a-icon type="logout"/>-->
|
||||
<span>{{$t('userManual')}}</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="6" @click="Jumpoperationguide">
|
||||
<!-- <a-icon type="logout"/>-->
|
||||
<span>{{$t('operationguide')}}</span>
|
||||
</a-menu-item>
|
||||
</a-menu>
|
||||
</a-dropdown>
|
||||
<header-notice class="action"/>
|
||||
<div class="action">
|
||||
<span v-show="localeval=='zh-cn'">
|
||||
@@ -113,283 +130,281 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import HeaderNotice from './HeaderNotice'
|
||||
import UserPassword from './UserPassword'
|
||||
import SettingDrawer from '@/components/setting/SettingDrawer'
|
||||
import DepartSelect from './DepartSelect'
|
||||
import { mapActions, mapGetters, mapState } from 'vuex'
|
||||
import { mixinDevice } from '@/utils/mixin.js'
|
||||
import { getFileAccessHttpUrl, getAction } from '@/api/manage'
|
||||
import Vue from 'vue'
|
||||
import { UI_CACHE_DB_DICT_DATA, ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import moment from 'moment'
|
||||
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
|
||||
import enUS from 'ant-design-vue/es/locale/en_US'
|
||||
import 'moment/locale/zh-cn'
|
||||
import { generateIndexRouter } from '@/utils/util'
|
||||
import store from '../../store'
|
||||
import router, { resetRouter } from '../../router'
|
||||
import HeaderNotice from './HeaderNotice'
|
||||
import UserPassword from './UserPassword'
|
||||
import SettingDrawer from '@/components/setting/SettingDrawer'
|
||||
import DepartSelect from './DepartSelect'
|
||||
import { mapActions, mapGetters, mapState } from 'vuex'
|
||||
import { mixinDevice } from '@/utils/mixin.js'
|
||||
import { getFileAccessHttpUrl, getAction } from '@/api/manage'
|
||||
import Vue from 'vue'
|
||||
import { UI_CACHE_DB_DICT_DATA, ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import moment from 'moment'
|
||||
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
|
||||
import enUS from 'ant-design-vue/es/locale/en_US'
|
||||
import 'moment/locale/zh-cn'
|
||||
import { generateIndexRouter } from '@/utils/util'
|
||||
import store from '../../store'
|
||||
import router, { resetRouter } from '../../router'
|
||||
|
||||
moment.locale('zh-cn')
|
||||
const EN = 'en-us'
|
||||
const ZH = 'zh-cn'
|
||||
moment.locale('zh-cn')
|
||||
const EN = 'en-us'
|
||||
const ZH = 'zh-cn'
|
||||
|
||||
export default {
|
||||
name: 'UserMenu',
|
||||
mixins: [mixinDevice],
|
||||
data() {
|
||||
return {
|
||||
// update-begin author:sunjianlei date:20200219 for: 头部菜单搜索规范命名 --------------
|
||||
searchMenuOptions: [],
|
||||
searchMenuComp: 'span',
|
||||
searchMenuVisible: false,
|
||||
isLoading: false,
|
||||
locale: zhCN,
|
||||
localeval: 'zh-cn'
|
||||
// update-begin author:sunjianlei date:20200219 for: 头部菜单搜索规范命名 --------------
|
||||
}
|
||||
},
|
||||
components: {
|
||||
HeaderNotice,
|
||||
UserPassword,
|
||||
DepartSelect,
|
||||
SettingDrawer
|
||||
},
|
||||
props: {
|
||||
theme: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: 'dark'
|
||||
}
|
||||
},
|
||||
/* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
created() {
|
||||
let lists = []
|
||||
this.searchMenus(lists, this.permissionMenuList)
|
||||
this.searchMenuOptions = [...lists]
|
||||
},
|
||||
mounted() {
|
||||
//如果是单点登录模式
|
||||
if (process.env.VUE_APP_SSO == 'true') {
|
||||
let depart = this.userInfo().orgCode
|
||||
if (!depart) {
|
||||
this.updateCurrentDepart()
|
||||
}
|
||||
}
|
||||
this.localeval = localStorage.getItem('language')
|
||||
if (this.localeval == 'zh-cn') {
|
||||
this.$i18n.locale = ZH
|
||||
this.locale = zhCN
|
||||
moment.locale('zh-cn')
|
||||
} else if (this.localeval == 'en-us') {
|
||||
this.locale = enUS
|
||||
moment.locale('en-us')
|
||||
this.$i18n.locale = EN
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState({
|
||||
// 后台菜单
|
||||
permissionMenuList: state => state.user.permissionList
|
||||
|
||||
})
|
||||
},
|
||||
/* update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
watch: {
|
||||
// update-begin author:sunjianlei date:20200219 for: 菜单搜索改为动态组件,在手机端呈现出弹出框
|
||||
device: {
|
||||
immediate: true,
|
||||
handler() {
|
||||
this.searchMenuVisible = false
|
||||
this.searchMenuComp = this.isMobile() ? 'a-modal' : 'span'
|
||||
}
|
||||
}
|
||||
// update-end author:sunjianlei date:20200219 for: 菜单搜索改为动态组件,在手机端呈现出弹出框
|
||||
},
|
||||
methods: {
|
||||
/* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
showClick() {
|
||||
this.searchMenuVisible = true
|
||||
},
|
||||
hiddenClick() {
|
||||
this.shows = false
|
||||
},
|
||||
Jumpflybook() {
|
||||
window.open('https://eicgyqr5mc.feishu.cn/docx/doxcnY2GbQfMSMqLP0eIFzFlEcd', '_blank')
|
||||
},
|
||||
/* update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
...mapActions(['Logout']),
|
||||
...mapGetters(['username', 'avatar', 'userInfo']),
|
||||
getAvatar() {
|
||||
return getFileAccessHttpUrl(this.avatar())
|
||||
},
|
||||
handleLogout() {
|
||||
const that = this
|
||||
|
||||
this.$confirm({
|
||||
title: '提示',
|
||||
content: '真的要注销登录吗 ?',
|
||||
onOk() {
|
||||
return that.Logout({}).then(() => {
|
||||
// update-begin author:wangshuai date:20200601 for: 退出登录跳转登录页面
|
||||
// TODO 在部署线上时注掉以下代码
|
||||
that.$router.push({ path: '/user/login' })
|
||||
// TODO 在部署线上时解开以下代码
|
||||
// window.location.href = 'https://signin.nio.com/logout?client_id=100679&redirect_uri=' +
|
||||
// encodeURIComponent(window.loginUrl) + '&response_type=code' //线上
|
||||
|
||||
localStorage.removeItem('language')
|
||||
// update-end author:wangshuai date:20200601 for: 退出登录跳转登录页面
|
||||
//window.location.reload()
|
||||
}).catch(err => {
|
||||
that.$message.error({
|
||||
title: '错误',
|
||||
description: err.message
|
||||
})
|
||||
})
|
||||
},
|
||||
onCancel() {
|
||||
}
|
||||
})
|
||||
},
|
||||
updatePassword() {
|
||||
let username = this.userInfo().username
|
||||
this.$refs.userPassword.show(username)
|
||||
},
|
||||
updateCurrentDepart() {
|
||||
this.$refs.departSelect.show()
|
||||
},
|
||||
systemSetting() {
|
||||
this.$refs.settingDrawer.showDrawer()
|
||||
},
|
||||
/* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
searchMenus(arr, menus) {
|
||||
for (let i of menus) {
|
||||
if (!i.hidden && 'layouts/RouteView' !== i.component) {
|
||||
arr.push(i)
|
||||
}
|
||||
if (i.children && i.children.length > 0) {
|
||||
this.searchMenus(arr, i.children)
|
||||
}
|
||||
}
|
||||
},
|
||||
filterOption(input, option) {
|
||||
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
},
|
||||
// update_begin author:sunjianlei date:20191230 for: 解决外部链接打开失败的问题
|
||||
searchMethods(value) {
|
||||
let route = this.searchMenuOptions.filter(item => item.id === value)[0]
|
||||
if (route.meta.internalOrExternal === true || route.component.includes('layouts/IframePageView')) {
|
||||
window.open(route.meta.url, '_blank')
|
||||
} else {
|
||||
this.$router.push({ path: route.path })
|
||||
}
|
||||
this.searchMenuVisible = false
|
||||
},
|
||||
// update_end author:sunjianlei date:20191230 for: 解决外部链接打开失败的问题
|
||||
/*update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
/*update_begin author:liushaoqian date:20200507 for: 刷新缓存*/
|
||||
clearCache() {
|
||||
getAction('sys/dict/refleshCache').then((res) => {
|
||||
if (res.success) {
|
||||
//重新加载缓存
|
||||
getAction('sys/dict/queryAllDictItems').then((res) => {
|
||||
if (res.success) {
|
||||
Vue.ls.remove(UI_CACHE_DB_DICT_DATA)
|
||||
Vue.ls.set(UI_CACHE_DB_DICT_DATA, res.result, 7 * 24 * 60 * 60 * 1000)
|
||||
}
|
||||
})
|
||||
this.$message.success('刷新缓存完成!')
|
||||
}
|
||||
}).catch(e => {
|
||||
this.$message.warn('刷新缓存失败!')
|
||||
console.log('刷新失败', e)
|
||||
})
|
||||
},
|
||||
/*update_end author:liushaoqian date:20200507 for: 刷新缓存*/
|
||||
moment,
|
||||
changeLocale(localeval) {
|
||||
this.isLoading = true
|
||||
switch (localeval) {
|
||||
case 'zh-cn':
|
||||
localStorage.setItem('language', 'zh-cn')
|
||||
break
|
||||
case 'en-us':
|
||||
localStorage.setItem('language', 'en-us')
|
||||
break
|
||||
}
|
||||
getAction('/sys/dict/queryAllDictItemsByCut', {}).then((res) => {
|
||||
if (res.success) {
|
||||
Vue.ls.remove(UI_CACHE_DB_DICT_DATA)
|
||||
Vue.ls.set(UI_CACHE_DB_DICT_DATA, res.result, 7 * 24 * 60 * 60 * 1000)
|
||||
store.dispatch('GetPermissionList').then(res => {
|
||||
const menuData = res.result.menu
|
||||
resetRouter()
|
||||
let constRoutes = []
|
||||
constRoutes = generateIndexRouter(menuData)
|
||||
|
||||
let isPhone = localStorage.getItem('isPhone')
|
||||
if (isPhone == 'yes') {
|
||||
router.addRoutes([{
|
||||
'path': '*', 'redirect': '/404', 'hidden': true
|
||||
}])
|
||||
} else {
|
||||
router.addRoutes(constRoutes)
|
||||
}
|
||||
this.$root.Bus.$emit('switchLanguage', localeval)
|
||||
this.isLoading = false
|
||||
this.localeval = localeval
|
||||
if (localeval === EN) {
|
||||
moment.locale(EN)
|
||||
this.$i18n.locale = EN
|
||||
this.locale = enUS
|
||||
} else {
|
||||
moment.locale(ZH)
|
||||
this.$i18n.locale = ZH
|
||||
this.locale = zhCN
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
export default {
|
||||
name: 'UserMenu',
|
||||
mixins: [mixinDevice],
|
||||
data() {
|
||||
return {
|
||||
// update-begin author:sunjianlei date:20200219 for: 头部菜单搜索规范命名 --------------
|
||||
searchMenuOptions: [],
|
||||
searchMenuComp: 'span',
|
||||
searchMenuVisible: false,
|
||||
isLoading: false,
|
||||
locale: zhCN,
|
||||
localeval: 'zh-cn'
|
||||
// update-begin author:sunjianlei date:20200219 for: 头部菜单搜索规范命名 --------------
|
||||
}
|
||||
},
|
||||
components: {
|
||||
HeaderNotice,
|
||||
UserPassword,
|
||||
DepartSelect,
|
||||
SettingDrawer
|
||||
},
|
||||
props: {
|
||||
theme: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: 'dark'
|
||||
}
|
||||
},
|
||||
/* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
created() {
|
||||
let lists = []
|
||||
this.searchMenus(lists, this.permissionMenuList)
|
||||
this.searchMenuOptions = [...lists]
|
||||
},
|
||||
mounted() {
|
||||
//如果是单点登录模式
|
||||
if (process.env.VUE_APP_SSO == 'true') {
|
||||
let depart = this.userInfo().orgCode
|
||||
if (!depart) {
|
||||
this.updateCurrentDepart()
|
||||
}
|
||||
}
|
||||
this.localeval = localStorage.getItem('language')
|
||||
if (this.localeval == 'zh-cn') {
|
||||
this.$i18n.locale = ZH
|
||||
this.locale = zhCN
|
||||
moment.locale('zh-cn')
|
||||
} else if (this.localeval == 'en-us') {
|
||||
this.locale = enUS
|
||||
moment.locale('en-us')
|
||||
this.$i18n.locale = EN
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState({
|
||||
// 后台菜单
|
||||
permissionMenuList: state => state.user.permissionList
|
||||
|
||||
})
|
||||
},
|
||||
/* update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
watch: {
|
||||
// update-begin author:sunjianlei date:20200219 for: 菜单搜索改为动态组件,在手机端呈现出弹出框
|
||||
device: {
|
||||
immediate: true,
|
||||
handler() {
|
||||
this.searchMenuVisible = false
|
||||
this.searchMenuComp = this.isMobile() ? 'a-modal' : 'span'
|
||||
}
|
||||
}
|
||||
// update-end author:sunjianlei date:20200219 for: 菜单搜索改为动态组件,在手机端呈现出弹出框
|
||||
},
|
||||
methods: {
|
||||
/* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
showClick() {
|
||||
this.searchMenuVisible = true
|
||||
},
|
||||
hiddenClick() {
|
||||
this.shows = false
|
||||
},
|
||||
Jumpflybook(){
|
||||
window.open('https://eicgyqr5mc.feishu.cn/docx/doxcnY2GbQfMSMqLP0eIFzFlEcd', '_blank');
|
||||
},
|
||||
Jumpoperationguide(){
|
||||
window.open('https://eicgyqr5mc.feishu.cn/docx/ZyhWdIz7EoMZ68xhI2bckcWWnMg', '_blank');
|
||||
},
|
||||
/* update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
...mapActions(['Logout']),
|
||||
...mapGetters(['username', 'avatar', 'userInfo']),
|
||||
getAvatar() {
|
||||
return getFileAccessHttpUrl(this.avatar())
|
||||
},
|
||||
handleLogout() {
|
||||
const that = this
|
||||
|
||||
this.$confirm({
|
||||
title: '提示',
|
||||
content: '真的要注销登录吗 ?',
|
||||
onOk() {
|
||||
return that.Logout({}).then(() => {
|
||||
// update-begin author:wangshuai date:20200601 for: 退出登录跳转登录页面
|
||||
// TODO 在部署线上时注掉以下代码
|
||||
that.$router.push({ path: '/user/login' })
|
||||
|
||||
// window.location.href = 'https://signin-test.nio.com/logout?client_id=100679&redirect_uri=' +
|
||||
// encodeURIComponent('http://localhost:3000/dashboard/analysis') + '&response_type=code' //本地
|
||||
// TODO 在部署线上时解开以下代码
|
||||
// window.location.href = 'https://signin.nio.com/logout?client_id=100679&redirect_uri=' +
|
||||
// encodeURIComponent('http://grp.nioint.com/dashboard/analysis') + '&response_type=code' //线上
|
||||
|
||||
localStorage.removeItem('language')
|
||||
// update-end author:wangshuai date:20200601 for: 退出登录跳转登录页面
|
||||
//window.location.reload()
|
||||
}).catch(err => {
|
||||
that.$message.error({
|
||||
title: '错误',
|
||||
description: err.message
|
||||
})
|
||||
})
|
||||
},
|
||||
onCancel() {
|
||||
}
|
||||
})
|
||||
},
|
||||
updatePassword() {
|
||||
let username = this.userInfo().username
|
||||
this.$refs.userPassword.show(username)
|
||||
},
|
||||
updateCurrentDepart() {
|
||||
this.$refs.departSelect.show()
|
||||
},
|
||||
systemSetting() {
|
||||
this.$refs.settingDrawer.showDrawer()
|
||||
},
|
||||
/* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
searchMenus(arr, menus) {
|
||||
for (let i of menus) {
|
||||
if (!i.hidden && 'layouts/RouteView' !== i.component) {
|
||||
arr.push(i)
|
||||
}
|
||||
if (i.children && i.children.length > 0) {
|
||||
this.searchMenus(arr, i.children)
|
||||
}
|
||||
}
|
||||
},
|
||||
filterOption(input, option) {
|
||||
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
},
|
||||
// update_begin author:sunjianlei date:20191230 for: 解决外部链接打开失败的问题
|
||||
searchMethods(value) {
|
||||
let route = this.searchMenuOptions.filter(item => item.id === value)[0]
|
||||
if (route.meta.internalOrExternal === true || route.component.includes('layouts/IframePageView')) {
|
||||
window.open(route.meta.url, '_blank')
|
||||
} else {
|
||||
this.$router.push({ path: route.path })
|
||||
}
|
||||
this.searchMenuVisible = false
|
||||
},
|
||||
// update_end author:sunjianlei date:20191230 for: 解决外部链接打开失败的问题
|
||||
/*update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
|
||||
/*update_begin author:liushaoqian date:20200507 for: 刷新缓存*/
|
||||
clearCache() {
|
||||
getAction('sys/dict/refleshCache').then((res) => {
|
||||
if (res.success) {
|
||||
//重新加载缓存
|
||||
getAction('sys/dict/queryAllDictItems').then((res) => {
|
||||
if (res.success) {
|
||||
Vue.ls.remove(UI_CACHE_DB_DICT_DATA)
|
||||
Vue.ls.set(UI_CACHE_DB_DICT_DATA, res.result, 7 * 24 * 60 * 60 * 1000)
|
||||
}
|
||||
})
|
||||
this.$message.success('刷新缓存完成!')
|
||||
}
|
||||
}).catch(e => {
|
||||
this.$message.warn('刷新缓存失败!')
|
||||
console.log('刷新失败', e)
|
||||
})
|
||||
},
|
||||
/*update_end author:liushaoqian date:20200507 for: 刷新缓存*/
|
||||
moment,
|
||||
changeLocale(localeval) {
|
||||
this.isLoading = true
|
||||
switch (localeval) {
|
||||
case 'zh-cn':
|
||||
localStorage.setItem('language', 'zh-cn')
|
||||
break
|
||||
case 'en-us':
|
||||
localStorage.setItem('language', 'en-us')
|
||||
break
|
||||
}
|
||||
getAction('/sys/dict/queryAllDictItemsByCut', {}).then((res) => {
|
||||
if (res.success) {
|
||||
Vue.ls.remove(UI_CACHE_DB_DICT_DATA)
|
||||
Vue.ls.set(UI_CACHE_DB_DICT_DATA, res.result, 7 * 24 * 60 * 60 * 1000)
|
||||
store.dispatch('GetPermissionList').then(res => {
|
||||
const menuData = res.result.menu
|
||||
resetRouter()
|
||||
let constRoutes = []
|
||||
constRoutes = generateIndexRouter(menuData)
|
||||
router.addRoutes(constRoutes)
|
||||
this.$root.Bus.$emit('switchLanguage', localeval)
|
||||
this.isLoading = false
|
||||
this.localeval = localeval
|
||||
if (localeval === EN) {
|
||||
moment.locale(EN)
|
||||
this.$i18n.locale = EN
|
||||
this.locale = enUS
|
||||
} else {
|
||||
moment.locale(ZH)
|
||||
this.$i18n.locale = ZH
|
||||
this.locale = zhCN
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
/* update_begin author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/
|
||||
/* update-begin author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */
|
||||
.user-wrapper .search-input {
|
||||
width: 180px;
|
||||
color: inherit;
|
||||
/* update_begin author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/
|
||||
/* update-begin author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */
|
||||
.user-wrapper .search-input {
|
||||
width: 180px;
|
||||
color: inherit;
|
||||
|
||||
/deep/ .ant-select-selection {
|
||||
background-color: inherit;
|
||||
border: 0;
|
||||
border-bottom: 1px solid white;
|
||||
/deep/ .ant-select-selection {
|
||||
background-color: inherit;
|
||||
border: 0;
|
||||
border-bottom: 1px solid white;
|
||||
|
||||
&__placeholder, &__field__placeholder {
|
||||
color: inherit;
|
||||
}
|
||||
&__placeholder, &__field__placeholder {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* update-end author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */
|
||||
/* update_end author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/
|
||||
/* update-end author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */
|
||||
/* update_end author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/
|
||||
</style>
|
||||
|
||||
<style scoped>
|
||||
.logout_title {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
.logout_title {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.action {
|
||||
color: rgba(0, 0, 0, 0.65) !important;
|
||||
font-size: 14px;
|
||||
}
|
||||
.action {
|
||||
color: rgba(0, 0, 0, 0.65) !important;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.action .avatar {
|
||||
background: #ccc !important;
|
||||
}
|
||||
.action .avatar {
|
||||
background: #ccc !important;
|
||||
}
|
||||
</style>
|
||||
+16
-4
@@ -30,7 +30,7 @@
|
||||
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content-content">
|
||||
<div class="box-content-content-index"
|
||||
@@ -127,6 +127,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-box-button-right">
|
||||
<div class="content-box-button-text" @click="copyLinkClick(item)">
|
||||
<img src="~/@assets/feishu.png" alt="" class="jumpicon">
|
||||
{{$t('copyLink')}}
|
||||
</div>
|
||||
<div class="content-box-button-text" @click="pushJump(item)">
|
||||
<img src="~/@assets/feishu.png" alt="" class="jumpicon">
|
||||
{{$t('contactTheFounder')}}
|
||||
@@ -424,9 +428,9 @@
|
||||
this.queryForm = row
|
||||
this.$refs.SelectedByRef.getPush()
|
||||
},
|
||||
pushJump(row){
|
||||
pushJump(row) {
|
||||
let query = {
|
||||
userName: row.createBy,
|
||||
userName: row.createBy
|
||||
}
|
||||
postAction('/lark/getLarkApplinkByUserName', query).then((res) => {
|
||||
if (res.code === 200) {
|
||||
@@ -465,6 +469,12 @@
|
||||
},
|
||||
handleToggleSearch() {
|
||||
this.toggleSearchStatus = !this.toggleSearchStatus
|
||||
},
|
||||
copyLinkClick(item) {
|
||||
let text = window.location.host + this.$route.path + '?id=' + item.id
|
||||
navigator.clipboard.writeText(text).then((res) => {
|
||||
this.$message.success(this.$t('successfulReplication'))
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -476,10 +486,12 @@
|
||||
overflow: hidden;
|
||||
/*margin: 0 auto;*/
|
||||
}
|
||||
.jumpicon{
|
||||
|
||||
.jumpicon {
|
||||
height: 13.72px;
|
||||
width: 15.44px;
|
||||
}
|
||||
|
||||
.box-title-text {
|
||||
line-height: 1.4;
|
||||
width: 360px;
|
||||
|
||||
+10
@@ -53,6 +53,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-box-button-right">
|
||||
<div class="content-box-button-text" @click="copyLinkClick(queryForm)">
|
||||
<img src="~/@assets/feishu.png" alt="" class="jumpicon">
|
||||
{{$t('copyLink')}}
|
||||
</div>
|
||||
<div class="content-box-button-text" @click="pushJump(queryForm)">
|
||||
<img src="~/@assets/feishu.png" alt="" class="jumpicon">
|
||||
{{$t('contactTheFounder')}}
|
||||
@@ -493,6 +497,12 @@
|
||||
this.$refs.SelectedByRef.submitLoading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
copyLinkClick(item) {
|
||||
let text = window.location.host + this.$route.path + '?id=' + item.id
|
||||
navigator.clipboard.writeText(text).then((res) => {
|
||||
this.$message.success(this.$t('successfulReplication'))
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,10 +241,10 @@ export default {
|
||||
})
|
||||
},
|
||||
addClick(index){
|
||||
if(this.formInline.dataList.length + 1 > 10){
|
||||
this.$message.warning(this.$t('nomorethan'))
|
||||
return
|
||||
}
|
||||
// if(this.formInline.dataList.length + 1 > 10){
|
||||
// this.$message.warning(this.$t('nomorethan'))
|
||||
// return
|
||||
// }
|
||||
this.formInline.dataList.splice(index + 1, 0, {})
|
||||
this.formInline = { ...this.formInline }
|
||||
},
|
||||
|
||||
@@ -30,11 +30,11 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span v-if='!propflag' class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('filingtime')">
|
||||
{{$t('filingtime')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="batjsj">
|
||||
<a-form-model-item class="itemModel" :prop="!propflag?'batjsj':''" :key="propflag">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('filingtime')"
|
||||
@change="dateChange({db_field_name:'batjsj'})"
|
||||
@@ -46,6 +46,44 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if='transittime'>
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span v-if='!propflag' class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('transittime')">
|
||||
{{$t('transittime')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="tgthsj">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('transittime')"
|
||||
@change="dateChange({db_field_name:'tgthsj'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.tgthsj"
|
||||
:disabled="false"
|
||||
style="width: 90%"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if='returntime'>
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span v-if='!propflag' class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('returntime')">
|
||||
{{$t('returntime')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="tgthsj">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('returntime')"
|
||||
@change="dateChange({db_field_name:'tgthsj'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.tgthsj"
|
||||
:disabled="false"
|
||||
style="width: 90%"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -77,9 +115,13 @@ export default {
|
||||
return {
|
||||
visible: false,
|
||||
confirmLoading: false,
|
||||
transittime:false,
|
||||
returntime:false,
|
||||
propflag: false,
|
||||
formInline: {
|
||||
bazt:undefined,
|
||||
batjsj:'',
|
||||
tgthsj:'',
|
||||
bz:'',
|
||||
},
|
||||
rules: {
|
||||
@@ -99,7 +141,14 @@ export default {
|
||||
],
|
||||
bz: [
|
||||
{ min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' }
|
||||
]
|
||||
],
|
||||
tgthsj: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('cannotEmpty'),
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
// listConfirmation: [
|
||||
// {
|
||||
// required: true,
|
||||
@@ -161,16 +210,43 @@ export default {
|
||||
this.ids = row.join(',')
|
||||
this.formInline = {
|
||||
bazt:undefined,
|
||||
tgthsj:'',
|
||||
batjsj:'',
|
||||
bz:'',
|
||||
}
|
||||
this.propflag = true
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
}else{
|
||||
this.formInline.bazt = row.bazt ? row.bazt : undefined
|
||||
this.formInline.batjsj = row.batjsj
|
||||
this.formInline.tgthsj = row.tgthsj
|
||||
this.formInline.bz = row.bz
|
||||
this.ids = row.id
|
||||
if (this.formInline.bazt == 1) {
|
||||
this.propflag = true
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
} else if (this.formInline.bazt == 2) {
|
||||
this.propflag = true
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
} else if(this.formInline.bazt == 4){
|
||||
this.propflag = false
|
||||
this.transittime = true
|
||||
this.returntime = false
|
||||
} else if(this.formInline.bazt == 5){
|
||||
this.propflag = false
|
||||
this.returntime = true
|
||||
this.transittime = false
|
||||
}else{
|
||||
this.propflag = false
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
}
|
||||
}
|
||||
this.visible = true
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.$refs.ruleForm.clearValidate()
|
||||
})
|
||||
@@ -197,7 +273,29 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
selectchange(value){
|
||||
selectchange(value) {
|
||||
console.log(value)
|
||||
if (value == 1) {
|
||||
this.propflag = true
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
} else if (value == 2) {
|
||||
this.propflag = true
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
} else if(value == 4){
|
||||
this.propflag = false
|
||||
this.transittime = true
|
||||
this.returntime = false
|
||||
} else if(value == 5){
|
||||
this.propflag = false
|
||||
this.returntime = true
|
||||
this.transittime = false
|
||||
}else{
|
||||
this.propflag = false
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.formInline = { ...this.formInline }
|
||||
this.$refs.ruleForm.validateField('bazt')
|
||||
|
||||
@@ -91,36 +91,36 @@
|
||||
</div>
|
||||
<div class="table-operator">
|
||||
<div @click="createvehicleandfunctionrecords"
|
||||
v-has="'regulatoryAndTechnicalAssessment:initiationProcess'"
|
||||
v-has="'otasj:cjcxjgnba'"
|
||||
class="operator-text">
|
||||
<a-icon type="plus"/>
|
||||
{{$t('createanupgradeactivityrecord')}}
|
||||
</div>
|
||||
<div @click="citeforrecord"
|
||||
v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
|
||||
v-has="'otasj:yyba'"
|
||||
class="operator-text">
|
||||
<a-icon type="solution"/>
|
||||
{{$t('citeforrecord')}}
|
||||
</div>
|
||||
<div @click="maintenanceallClick()"
|
||||
v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
|
||||
v-has="'otasj:sjwh'"
|
||||
class="operator-text">
|
||||
<a-icon type="setting"/>
|
||||
{{$t('datamaintenance')}}
|
||||
</div>
|
||||
<div v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
|
||||
<div v-has="'otasj:sjdr'"
|
||||
class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true"
|
||||
:accept="'.zip'" @getList="getList"/>
|
||||
</div>
|
||||
<div @click="handleModule"
|
||||
v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
|
||||
v-has="'otasj:mbxz'"
|
||||
class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
<div @click="gnxtwhClick"
|
||||
v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
|
||||
v-has="'otasj:onxtwh'"
|
||||
class="operator-text">
|
||||
<a-icon type="solution"/>
|
||||
{{$t('gnxtwh')}}
|
||||
@@ -159,6 +159,9 @@
|
||||
@click="deleteData(record)">{{$t('delete')}}</a>
|
||||
</span>
|
||||
</a-table>
|
||||
<div>
|
||||
{{$t('averageapprovalperiod')}} : {{number}}{{$t('day')}}
|
||||
</div>
|
||||
<div class="page" v-if="dataSource && dataSource.length > 0">
|
||||
<a-pagination
|
||||
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||
@@ -205,6 +208,7 @@ export default {
|
||||
importZipUrl: '/ota/otaBaSjList/importData',//导入
|
||||
|
||||
},
|
||||
number:'',
|
||||
visible: false,
|
||||
loading: false,
|
||||
toggleSearchStatus: false,
|
||||
@@ -301,9 +305,23 @@ export default {
|
||||
title: this.$t('filingtime'),
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 140,
|
||||
width: 170,
|
||||
dataIndex: 'batjsj'
|
||||
},
|
||||
{
|
||||
title: this.$t('passreturntime'),
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 170,
|
||||
dataIndex: 'tgthsj'
|
||||
},
|
||||
{
|
||||
title: this.$t('approvalcycle'),
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 140,
|
||||
dataIndex: 'spzq'
|
||||
},
|
||||
{
|
||||
title: this.$t('createTime'),
|
||||
align: 'left',
|
||||
@@ -374,13 +392,14 @@ export default {
|
||||
this.loading = true
|
||||
getAction('/ota/otaBaSjList/page', query).then((res) => {
|
||||
if (res.success) {
|
||||
if (res.result.current > 1 && res.result.records.length == 0) {
|
||||
if (res.result.list.current > 1 && res.result.list.records.length == 0) {
|
||||
this.pageNo = 1
|
||||
this.getList()
|
||||
return
|
||||
}
|
||||
this.dataSource = res.result.records || []
|
||||
this.total = res.result.total
|
||||
this.dataSource = res.result.list.records || []
|
||||
this.number = res.result.pjspzq
|
||||
this.total = res.result.list.total
|
||||
this.loading = false
|
||||
} else {
|
||||
this.loading = false
|
||||
|
||||
+2
-2
@@ -2,10 +2,10 @@
|
||||
<!-- 第五页 -->
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otasjxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -2,10 +2,10 @@
|
||||
<!-- 第二页 -->
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otasjxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
|
||||
+4
-4
@@ -2,10 +2,10 @@
|
||||
<!-- 第四页 -->
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otasjxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
@@ -60,8 +60,8 @@
|
||||
<span slot="differentialupgradeornot" slot-scope="text,record" :max-length="50">
|
||||
<!-- <a-input :placeholder="$t('pleaseEnter')" v-model="record.sfcfsj" :title='record.sfcfsj'></a-input>-->
|
||||
<a-radio-group v-model="record.sfcfsj">
|
||||
<a-radio :value="1"> {{ $t('yes') }} </a-radio>
|
||||
<a-radio :value="2"> {{ $t('not') }} </a-radio>
|
||||
<a-radio :value="'1'"> {{ $t('yes') }} </a-radio>
|
||||
<a-radio :value="'2'"> {{ $t('not') }} </a-radio>
|
||||
</a-radio-group>
|
||||
</span>
|
||||
<!-- 操作列-->
|
||||
|
||||
+103
-14
@@ -2,10 +2,10 @@
|
||||
<!-- 第三页 -->
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otasjxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
@@ -136,11 +136,35 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="left" height="50px">{{$t('upgradeactivityprovidesuserconfirmationoptions')}}</td>
|
||||
<td height="50px">
|
||||
<a-radio-group style='margin-left: 40px;' v-model="form.yhqr">
|
||||
<a-radio :value="1"> {{ $t('yes') }} </a-radio>
|
||||
<a-radio :value="2"> {{ $t('not') }} </a-radio>
|
||||
</a-radio-group>
|
||||
<td :height="qrheight" style='position: relative'>
|
||||
<div>
|
||||
<a-radio-group class='box-input-qr' @change='qrchange' v-model="form.yhqr">
|
||||
<a-radio :value="'1'"> {{ $t('yes') }} </a-radio>
|
||||
<a-radio :value="'2'"> {{ $t('not') }} </a-radio>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
<div v-if='flagqr'>
|
||||
<j-dict-select-tag class="box-input2"
|
||||
v-model="form.flagqr"
|
||||
:disabled="disable"
|
||||
dictCode="O_T_A_-_sheng1_ji2_ying3_xiang3_ping2_gu1_-_sheng1_ji2_que4_ren4"
|
||||
:placeholder="$t('PleaseSelect')"
|
||||
:type="'select'"
|
||||
@input="handleInput(form.flagqr)"
|
||||
:triggerChange="false"/>
|
||||
</div>
|
||||
<div v-if='flagqrqt'>
|
||||
<a-input class="box-input-qr2"
|
||||
v-model="form.qttext"
|
||||
:title="form.qttext ? form.qttext : $t('PleaseEnter')"
|
||||
:placeholder="$t('PleaseEnter')"></a-input>
|
||||
</div>
|
||||
<div v-if='flagly'>
|
||||
<a-input class="box-input2"
|
||||
v-model="form.ly"
|
||||
:title="form.ly ? form.ly : $t('PleaseEnter')+ $t('reason')"
|
||||
:placeholder="$t('PleaseEnter')+ $t('reason')"></a-input>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -200,6 +224,9 @@ export default {
|
||||
importZipUrl: '/ota/otaBaSjSjyxpg/importData?otaId=' + localStorage.getItem('otaId'),//导入
|
||||
},
|
||||
flag:false,
|
||||
flagqr:false,
|
||||
flagqrqt:false,
|
||||
flagly:false,
|
||||
loading: false,
|
||||
disable:false,
|
||||
columns: [
|
||||
@@ -329,6 +356,7 @@ export default {
|
||||
scopedSlots: { customRender: 'operation' }
|
||||
}
|
||||
],
|
||||
qrheight:'50px',
|
||||
form:{
|
||||
sjmd:'',
|
||||
}
|
||||
@@ -397,6 +425,30 @@ this.$forceUpdate()
|
||||
}else{
|
||||
this.flag = false
|
||||
}
|
||||
if(this.form.yhqr == '1'){
|
||||
this.flagqr = true
|
||||
this.flagly = false
|
||||
this.qrheight = '100px'
|
||||
}else{
|
||||
this.flagqr = false
|
||||
this.flagly = true
|
||||
this.qrheight = '100px'
|
||||
}
|
||||
if(this.form.yhqr == '1' && this.form.flagqr == '344a3320beba45afb3718c59b7a7144a'){
|
||||
this.qrheight = '150px'
|
||||
this.flagqrqt = true
|
||||
this.flagly = false
|
||||
}else if(this.form.yhqr == '1' && this.form.flagqr != '344a3320beba45afb3718c59b7a7144a'){
|
||||
this.flagqr = true
|
||||
this.flagqrqt = false
|
||||
this.flagly = false
|
||||
this.qrheight = '100px'
|
||||
}else {
|
||||
this.flagqrqt = false
|
||||
this.flagqr = false
|
||||
this.flagly = true
|
||||
this.qrheight = '100px'
|
||||
}
|
||||
})
|
||||
},
|
||||
save(){
|
||||
@@ -426,19 +478,39 @@ this.$forceUpdate()
|
||||
changeQuery(val) {
|
||||
if(val.indexOf('将车辆置于安全状态') != -1 || val.indexOf('Put the vehicle in a safe position') != -1){
|
||||
this.flag = true
|
||||
// let long = localStorage.getItem('language')
|
||||
// let cut = ''
|
||||
// if (long && long == 'zh-cn') {
|
||||
this.form.aqjzWbk = '车辆保持在功能受限制状态,此状态下车辆无法行驶,保证其处于安全状态'
|
||||
// } else if (long && long == 'en-us') {
|
||||
// this.form.aqjzWbk = 'The vehicle remains in a functionally restricted state, in which the vehicle cannot be driven to ensure that it is in a safe state'
|
||||
// }
|
||||
// this.getData()
|
||||
}else{
|
||||
this.flag = false
|
||||
this.form.aqjzWbk = ''
|
||||
}
|
||||
},
|
||||
qrchange(val){
|
||||
if(val.target.value == '1'){
|
||||
this.qrheight = '100px'
|
||||
this.flagqr = true
|
||||
this.flagly = false
|
||||
if(this.form.flagqr == '344a3320beba45afb3718c59b7a7144a'){
|
||||
this.qrheight = '150px'
|
||||
this.flagqrqt = true
|
||||
}
|
||||
}else{
|
||||
this.qrheight = '100px'
|
||||
this.flagly = true
|
||||
this.flagqr = false
|
||||
this.flagqrqt = false
|
||||
}
|
||||
},
|
||||
handleInput(val){
|
||||
if(val == '344a3320beba45afb3718c59b7a7144a'){
|
||||
this.qrheight = '150px'
|
||||
this.flagqrqt = true
|
||||
this.flagly = false
|
||||
}else {
|
||||
this.qrheight = '100px'
|
||||
this.flagqrqt = false
|
||||
this.flagly = false
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -475,6 +547,15 @@ this.$forceUpdate()
|
||||
margin-left: 40px;
|
||||
top: 4px;
|
||||
}
|
||||
.box-input-qr {
|
||||
//display: inline-block;
|
||||
width: calc(100% - 80px);
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
height: 38px;
|
||||
margin-left: 40px;
|
||||
//top: 4px;
|
||||
}
|
||||
.box-input2 {
|
||||
//display: inline-block;
|
||||
width: calc(100% - 80px);
|
||||
@@ -483,6 +564,14 @@ this.$forceUpdate()
|
||||
margin-left: 40px;
|
||||
top: 50px;
|
||||
}
|
||||
.box-input-qr2 {
|
||||
//display: inline-block;
|
||||
width: calc(100% - 80px);
|
||||
position: absolute;
|
||||
height: 38px;
|
||||
margin-left: 40px;
|
||||
top: 95px;
|
||||
}
|
||||
::v-deep .ant-table-row-cell-ellipsis .ant-table-column-title {
|
||||
white-space: pre-wrap!important;
|
||||
}
|
||||
|
||||
+2
-2
@@ -2,11 +2,11 @@
|
||||
<!-- 第一页 -->
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otasjxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'"
|
||||
@getList="getData" />
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download" />
|
||||
{{ $t('templateDownload') }}
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -2,10 +2,10 @@
|
||||
<!-- 第六页 -->
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otasjxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otacxxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otacxxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otacxxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otacxxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otacxxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<div v-has="'otacxxx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
|
||||
@@ -30,17 +30,56 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span v-if='!propflag' class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('filingtime')">
|
||||
{{$t('filingtime')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="batjsj">
|
||||
<a-form-model-item class="itemModel" :prop="!propflag?'batjsj':''" :key="propflag">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('filingtime')"
|
||||
@change="dateChange({db_field_name:'batjsj'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.batjsj"
|
||||
:disabled="false"
|
||||
style="width: 90%"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if='transittime'>
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span v-if='!propflag' class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('transittime')">
|
||||
{{$t('transittime')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="tgthsj">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('transittime')"
|
||||
@change="dateChange({db_field_name:'tgthsj'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.tgthsj"
|
||||
:disabled="false"
|
||||
style="width: 90%"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if='returntime'>
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span v-if='!propflag' class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('returntime')">
|
||||
{{$t('returntime')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="tgthsj">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('returntime')"
|
||||
@change="dateChange({db_field_name:'tgthsj'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.tgthsj"
|
||||
:disabled="false"
|
||||
style="width: 90%"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -79,8 +118,12 @@ export default {
|
||||
formInline: {
|
||||
bazt:undefined,
|
||||
batjsj:'',
|
||||
tgthsj:'',
|
||||
bz:'',
|
||||
},
|
||||
transittime:false,
|
||||
returntime:false,
|
||||
propflag: false,
|
||||
rules: {
|
||||
bazt: [
|
||||
{
|
||||
@@ -98,7 +141,14 @@ export default {
|
||||
],
|
||||
bz: [
|
||||
{ min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' }
|
||||
]
|
||||
],
|
||||
tgthsj: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('cannotEmpty'),
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
// designDeadline: [
|
||||
// {
|
||||
// required: true,
|
||||
@@ -147,13 +197,39 @@ export default {
|
||||
this.formInline = {
|
||||
bazt:undefined,
|
||||
batjsj:'',
|
||||
tgthsj:'',
|
||||
bz:'',
|
||||
}
|
||||
this.propflag = true
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
}else{
|
||||
this.formInline.bazt = row.bazt ? row.bazt : undefined
|
||||
this.formInline.batjsj = row.batjsj
|
||||
this.formInline.tgthsj = row.tgthsj
|
||||
this.formInline.bz = row.bz
|
||||
this.ids = row.id
|
||||
if (this.formInline.bazt == 1) {
|
||||
this.propflag = true
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
} else if (this.formInline.bazt == 2) {
|
||||
this.propflag = true
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
} else if(this.formInline.bazt == 4){
|
||||
this.propflag = false
|
||||
this.transittime = true
|
||||
this.returntime = false
|
||||
} else if(this.formInline.bazt == 5){
|
||||
this.propflag = false
|
||||
this.returntime = true
|
||||
this.transittime = false
|
||||
}else{
|
||||
this.propflag = false
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
}
|
||||
}
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
@@ -183,6 +259,27 @@ export default {
|
||||
})
|
||||
},
|
||||
selectchange(value){
|
||||
if (value == 1) {
|
||||
this.propflag = true
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
} else if (value == 2) {
|
||||
this.propflag = true
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
} else if(value == 4){
|
||||
this.propflag = false
|
||||
this.transittime = true
|
||||
this.returntime = false
|
||||
} else if(value == 5){
|
||||
this.propflag = false
|
||||
this.returntime = true
|
||||
this.transittime = false
|
||||
}else{
|
||||
this.propflag = false
|
||||
this.transittime = false
|
||||
this.returntime = false
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.formInline = { ...this.formInline }
|
||||
this.$refs.ruleForm.validateField('bazt')
|
||||
|
||||
@@ -90,23 +90,23 @@
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="table-operator">
|
||||
<div @click="createvehicleandfunctionrecords" v-has="'regulatoryAndTechnicalAssessment:initiationProcess'"
|
||||
<div @click="createvehicleandfunctionrecords" v-has="'otacx:cjcxjgnba'"
|
||||
class="operator-text">
|
||||
<a-icon type="plus" />
|
||||
{{ $t('createvehicleandfunctionrecords') }}
|
||||
</div>
|
||||
<div @click="citeforrecord" v-has="'regulatoryAndTechnicalAssessment:batchDelete'" class="operator-text">
|
||||
<div @click="citeforrecord" v-has="'otacx:yyba'" class="operator-text">
|
||||
<a-icon type="solution" />
|
||||
{{ $t('citeforrecord') }}
|
||||
</div>
|
||||
<div @click="maintenanceallClick()" v-has="'regulatoryAndTechnicalAssessment:batchDelete'" class="operator-text">
|
||||
<div @click="maintenanceallClick()" v-has="'otacx:sjwh'" class="operator-text">
|
||||
<a-icon type="setting" />
|
||||
{{ $t('datamaintenance') }}
|
||||
</div>
|
||||
<div v-has="'regulatoryAndTechnicalAssessment:batchDelete'" class="operator-text">
|
||||
<div v-has="'otacx:sjdr'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getList"/>
|
||||
</div>
|
||||
<div @click="handleModule" v-has="'regulatoryAndTechnicalAssessment:batchDelete'" class="operator-text">
|
||||
<div @click="handleModule" v-has="'otacx:mbxz'" class="operator-text">
|
||||
<a-icon type="download" />
|
||||
{{ $t('templateDownload') }}
|
||||
</div>
|
||||
@@ -126,6 +126,9 @@
|
||||
@click="deleteData(record)">{{ $t('delete') }}</a>
|
||||
</span>
|
||||
</a-table>
|
||||
<div>
|
||||
{{$t('averageapprovalperiod')}} : {{number}}{{$t('day')}}
|
||||
</div>
|
||||
<div class="page" v-if="dataSource && dataSource.length > 0">
|
||||
<a-pagination :show-total="total => $t('total') + ` ${total} ` + $t('strip')" show-quick-jumper show-size-changer
|
||||
:page-size.sync="pageSize" :total="total" :current="pageNo" @change="pageOnChange"
|
||||
@@ -159,6 +162,7 @@ export default {
|
||||
exportData: '/ota/otaBaCxList/exportData',
|
||||
importZipUrl: '/ota/otaBaCxList/importData',//导入
|
||||
},
|
||||
number:'',
|
||||
visible: false,
|
||||
loading: false,
|
||||
toggleSearchStatus: false,
|
||||
@@ -251,6 +255,20 @@ export default {
|
||||
width: 140,
|
||||
dataIndex: 'batjsj'
|
||||
},
|
||||
{
|
||||
title: this.$t('passreturntime'),
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 170,
|
||||
dataIndex: 'tgthsj'
|
||||
},
|
||||
{
|
||||
title: this.$t('approvalcycle'),
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 140,
|
||||
dataIndex: 'spzq'
|
||||
},
|
||||
{
|
||||
title: this.$t('createTime'),
|
||||
align: 'left',
|
||||
@@ -321,13 +339,14 @@ export default {
|
||||
this.loading = true
|
||||
getAction('/ota/otaBaCxList/page', query).then((res) => {
|
||||
if (res.success) {
|
||||
if (res.result.current > 1 && res.result.records.length == 0) {
|
||||
if (res.result.list.current > 1 && res.result.list.records.length == 0) {
|
||||
this.pageNo = 1
|
||||
this.getList()
|
||||
return
|
||||
}
|
||||
this.dataSource = res.result.records || []
|
||||
this.total = res.result.total
|
||||
this.dataSource = res.result.list.records || []
|
||||
this.number = res.result.pjspzq
|
||||
this.total = res.result.list.total
|
||||
this.loading = false
|
||||
} else {
|
||||
this.loading = false
|
||||
|
||||
@@ -152,7 +152,7 @@ export default {
|
||||
{ required: true, message: this.$t('PleaseEnter')+this.$t('MergeSeparator'), trigger: 'change' },
|
||||
{ min:1, max: 1, message: this.$t('onlyone'), trigger: 'blur' },
|
||||
{
|
||||
pattern: /^[\`\~\!\@\$\%\^\&\*\(\)\_\+\-\= \[\]\{\}\\\|\;\'\'\:\"\"\\.\/\<\>\?]+$/,
|
||||
pattern: /^[\`\~\!\@\$\%\^\&\*\(\)\_\+\-\= \[\]\{\}\\\|\;\'\'\:\"\"\\.\/\<\>\?\,]+$/,
|
||||
message: this.$t('punctuationmark'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
|
||||
@@ -71,6 +71,38 @@
|
||||
v-model="formInline.sdtName"/>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('NareaOfResponsibility')">
|
||||
<span>{{$t('NareaOfResponsibility')}}</span>
|
||||
</div>
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
|
||||
:placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'duty_territory'"/>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('Required')">
|
||||
<span>{{$t('Required')}}</span>
|
||||
</div>
|
||||
<!-- <j-multi-select-tag class="box-input" v-model="formInline.isMust"-->
|
||||
<!-- :placeholder="$t('PleaseSelect')+$t('Required')"-->
|
||||
<!-- :type="'select'"-->
|
||||
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
|
||||
<!-- <a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('Required')"-->
|
||||
<!-- v-model="formInline.isMust"></a-input>-->
|
||||
<a-select class="box-input" v-model="formInline.isMust" :placeholder="$t('PleaseSelect')+$t('Required')">
|
||||
<a-select-option :value="'1'">
|
||||
{{$t('yes')}}
|
||||
</a-select-option>
|
||||
<a-select-option :value="'0'">
|
||||
{{$t('notOnlyRz')}}
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</div>
|
||||
</a-col>
|
||||
</template>
|
||||
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
|
||||
<a-col :md="6" :sm="24">
|
||||
@@ -92,6 +124,11 @@
|
||||
<a-icon type="check-circle"/>
|
||||
{{$t('preservation')}}
|
||||
</div>
|
||||
<!-- 导出-->
|
||||
<div @click="handleExport" class="operator-text" v-has="'report:detail:export:general'">
|
||||
<a-icon type="export"/>
|
||||
{{$t('dataExport')}}
|
||||
</div>
|
||||
<div @click="ConventionalExport" class="operator-text" v-has="'report:detail:export:normal'">
|
||||
<a-icon type="export" :rotate="-90"/>
|
||||
{{$t('ConventionalExport')}}
|
||||
@@ -182,7 +219,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getAction, postAction } from '../../../api/manage'
|
||||
import { downloadFile, getAction, postAction } from '../../../api/manage'
|
||||
import axios from 'axios'
|
||||
import TableCollection from '@/components/tableCollection/index1'
|
||||
import conventionalModel from './commponts/conventionalmodle'
|
||||
@@ -668,6 +705,28 @@
|
||||
listReset() {
|
||||
this.formInline = {}
|
||||
},
|
||||
//导出
|
||||
handleExport() {
|
||||
this.$message.success(this.$t('Intheexport'))
|
||||
let long = localStorage.getItem('language')
|
||||
this.cut = ''
|
||||
if (long && long === 'zh-cn') {
|
||||
this.cut = 'cn'
|
||||
} else if (long && long === 'en-us') {
|
||||
this.cut = 'en'
|
||||
}
|
||||
console.log(this.selectedRowKeys)
|
||||
let query = {
|
||||
paramsManifestId: this.$route.query.id,
|
||||
cut: this.cut,
|
||||
// userTypes: this.currentPersonRole,
|
||||
ids:this.selectedRowKeys.join(','),
|
||||
...this.formInline,
|
||||
exportName: this.$route.query.projectName + '(' + this.$route.query.title + ')'
|
||||
}
|
||||
let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.zip'
|
||||
downloadFile('/report/detail/exportGeneral', name, query, this.selectClear)
|
||||
},
|
||||
ConventionalExport() {
|
||||
this.$refs.conventionalModel.addModel()
|
||||
},
|
||||
|
||||
@@ -458,8 +458,9 @@
|
||||
},
|
||||
toDoCenterClick(row, isTrue) {
|
||||
let query = {}
|
||||
if (!this.form.flowType) {
|
||||
this.form.flowType = []
|
||||
let flowType = ''
|
||||
if (this.form.flowType && this.form.flowType instanceof Array){
|
||||
flowType = this.form.flowType.join(',')
|
||||
}
|
||||
row.taskId = row.taskId + ''
|
||||
if (row.taskId.length > 30) {
|
||||
@@ -488,7 +489,7 @@
|
||||
activeTab: this.activeTab,
|
||||
checked: this.form.checked,
|
||||
selectModel: this.form.selectModel,
|
||||
searchFlowType: this.form.flowType.join(',')
|
||||
searchFlowType: flowType
|
||||
}
|
||||
this.$router.push({
|
||||
path: '/phoneProcessManagement',
|
||||
@@ -512,7 +513,7 @@
|
||||
goRouter: '/phoneToDoCenter',
|
||||
searchValue: this.phoneQueryValue,
|
||||
activeTab: this.activeTab,
|
||||
searchFlowType: this.form.flowType.join(','),
|
||||
searchFlowType: flowType,
|
||||
checked: this.form.checked,
|
||||
selectModel: this.form.selectModel
|
||||
}
|
||||
@@ -534,7 +535,7 @@
|
||||
goRouter: '/phoneToDoCenter',
|
||||
searchValue: this.phoneQueryValue,
|
||||
activeTab: this.activeTab,
|
||||
searchFlowType: this.form.flowType.join(','),
|
||||
searchFlowType: flowType,
|
||||
checked: this.form.checked,
|
||||
selectModel: this.form.selectModel
|
||||
}
|
||||
|
||||
@@ -67,25 +67,25 @@
|
||||
<!-- </a-col>-->
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('certificationCategory')">
|
||||
<span>{{$t('certificationCategory')}}</span>
|
||||
<div class="title-text" :title="$t('NareaOfResponsibility')">
|
||||
<span>{{$t('NareaOfResponsibility')}}</span>
|
||||
</div>
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.certCategory"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationCategory')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'cert_category'"/>
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
|
||||
:placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'duty_territory'"/>
|
||||
</div>
|
||||
</a-col>
|
||||
<template v-if="toggleSearchStatus">
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('NareaOfResponsibility')">
|
||||
<span>{{$t('NareaOfResponsibility')}}</span>
|
||||
<div class="title-text" :title="$t('certificationCategory')">
|
||||
<span>{{$t('certificationCategory')}}</span>
|
||||
</div>
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
|
||||
:placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'duty_territory'"/>
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.certCategory"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationCategory')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'cert_category'"/>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="8">
|
||||
@@ -247,7 +247,7 @@
|
||||
{{$t('Assignedby')}}
|
||||
</div>
|
||||
<!-- 导出-->
|
||||
<div @click="handleExport" class="operator-text" v-if='currentPersonRole == "sdt"'>
|
||||
<div @click="handleExport" class="operator-text" v-if='currentPersonRole == "sdt" || currentPersonRole == "admin" || currentPersonRole == "studio"'>
|
||||
<a-icon type="export"/>
|
||||
{{$t('dataExport')}}
|
||||
</div>
|
||||
@@ -583,6 +583,46 @@
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
<!-- 数据导出弹框-->
|
||||
<a-modal
|
||||
:title="$t('dataExport')"
|
||||
:width="500"
|
||||
:visible="dataExportFailed"
|
||||
:maskClosable="false"
|
||||
@ok="handleExportSubmit"
|
||||
@cancel="handleCancel"
|
||||
>
|
||||
<a-form-model
|
||||
class='formAdd'
|
||||
ref='dataExportruleForm'
|
||||
:model='dataExportformInline'
|
||||
:rules='dataExportrules'
|
||||
:label-col='labelCol'
|
||||
:wrapper-col='wrapperCol'
|
||||
>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text" >
|
||||
<div class="title-text" :title="$t('exportOption')" style='margin-top: -17px;'>
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('exportOption')">
|
||||
{{$t('exportOption')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="exportOption">
|
||||
<a-select class="box-input" allowClear v-model="dataExportformInline.exportOption" :placeholder="$t('PleaseSelect')+$t('exportOption')">
|
||||
<a-select-option :value="'1'">
|
||||
{{$t('includeTitle')}}
|
||||
</a-select-option>
|
||||
<a-select-option :value="'0'">
|
||||
{{$t('Notitleincluded')}}
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form-model>
|
||||
</a-modal>
|
||||
<JLoading :loading="textLoading">{{this.$t('pleaseWaitWhileRunning')}}</JLoading>
|
||||
<batchUpdateDeadline ref="batchUpdateDeadlineRef" @batchUpdateDeadlineForm="batchUpdateDeadlineForm"/>
|
||||
|
||||
@@ -877,6 +917,7 @@
|
||||
selectedRowKeys: [],
|
||||
textLoading: false,
|
||||
formInline: {},
|
||||
dataExportformInline: {},
|
||||
queryParamQuery: {},
|
||||
url: {
|
||||
tableHeader: 'params/collectManifest/getHeader',
|
||||
@@ -919,6 +960,7 @@
|
||||
areaVisiblereferenceparameter: false, // 引用参数弹框
|
||||
areaVisibsynchronous: false, // 同步上报库弹框
|
||||
visibleoperationFailed: false, // 数据失败的弹框
|
||||
dataExportFailed: false, // 数据失败的弹框
|
||||
currentPersonRole: '', // 当前人角色
|
||||
jurisdiction: '',
|
||||
wrapperCol: {
|
||||
@@ -930,6 +972,11 @@
|
||||
sm: { span: 7 }
|
||||
},
|
||||
rules: {},
|
||||
dataExportrules: {
|
||||
exportOption:[
|
||||
{ required: true, message: this.$t('PleaseSelect')+this.$t('exportOption'), trigger: 'change' }
|
||||
]
|
||||
},
|
||||
FreezeList: [], // 冻结字段
|
||||
roleSwitchingList: [],
|
||||
JTextLoading: false,
|
||||
@@ -1329,24 +1376,56 @@
|
||||
},
|
||||
//导出
|
||||
handleExport() {
|
||||
this.$message.success(this.$t('Intheexport'))
|
||||
let long = localStorage.getItem('language')
|
||||
this.cut = ''
|
||||
if (long && long === 'zh-cn') {
|
||||
this.cut = 'cn'
|
||||
} else if (long && long === 'en-us') {
|
||||
this.cut = 'en'
|
||||
}
|
||||
let query = {
|
||||
paramsManifestId: this.paramsManifest.id,
|
||||
paramsTemplateId: this.$route.query.paramsTemplateId,
|
||||
paramsTemplatePublishVersion: 1,
|
||||
cut: this.cut,
|
||||
userTypes: this.currentPersonRole,
|
||||
exportName: this.$route.query.projectName + '(' + this.$route.query.title + ')'
|
||||
}
|
||||
let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.zip'
|
||||
downloadFile('/params/collectManifest/exportAll', name, query, this.selectClear)
|
||||
this.dataExportFailed = true
|
||||
// this.$message.success(this.$t('Intheexport'))
|
||||
// let long = localStorage.getItem('language')
|
||||
// this.cut = ''
|
||||
// if (long && long === 'zh-cn') {
|
||||
// this.cut = 'cn'
|
||||
// } else if (long && long === 'en-us') {
|
||||
// this.cut = 'en'
|
||||
// }
|
||||
// let query = {
|
||||
// paramsManifestId: this.paramsManifest.id,
|
||||
// paramsTemplateId: this.$route.query.paramsTemplateId,
|
||||
// paramsTemplatePublishVersion: 1,
|
||||
// cut: this.cut,
|
||||
// userTypes: this.currentPersonRole,
|
||||
// exportName: this.$route.query.projectName + '(' + this.$route.query.title + ')'
|
||||
// }
|
||||
// let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.zip'
|
||||
// downloadFile('/params/collectManifest/exportAll', name, query, this.selectClear)
|
||||
},
|
||||
// 导出确定
|
||||
handleExportSubmit(){
|
||||
this.$refs.dataExportruleForm.validate(valid => {
|
||||
if(valid){
|
||||
this.$message.success(this.$t('Intheexport'))
|
||||
let long = localStorage.getItem('language')
|
||||
this.cut = ''
|
||||
if (long && long === 'zh-cn') {
|
||||
this.cut = 'cn'
|
||||
} else if (long && long === 'en-us') {
|
||||
this.cut = 'en'
|
||||
}
|
||||
let query = {
|
||||
paramsManifestId: this.paramsManifest.id,
|
||||
paramsTemplateId: this.$route.query.paramsTemplateId,
|
||||
exportOption:this.dataExportformInline.exportOption,
|
||||
paramsTemplatePublishVersion: 1,
|
||||
cut: this.cut,
|
||||
userTypes: this.currentPersonRole,
|
||||
exportName: this.$route.query.projectName + '(' + this.$route.query.title + ')'
|
||||
}
|
||||
let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.zip'
|
||||
downloadFile('/params/collectManifest/exportAll', name, query, this.selectClear)
|
||||
}
|
||||
})
|
||||
},
|
||||
handleCancel() {
|
||||
this.dataExportformInline = {}
|
||||
this.$refs.dataExportruleForm.clearValidate()
|
||||
this.dataExportFailed = false
|
||||
},
|
||||
//填写人导出
|
||||
handleExportDre() {
|
||||
@@ -2631,7 +2710,11 @@
|
||||
height: 42px;
|
||||
line-height: 36px;
|
||||
}
|
||||
|
||||
.itemModel {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
margin-top: 2px;
|
||||
}
|
||||
.box-input .ant-select-selection {
|
||||
height: 38px !important;
|
||||
}
|
||||
|
||||
@@ -144,8 +144,8 @@
|
||||
],
|
||||
detectionReportLocation:[
|
||||
{
|
||||
max: 100,
|
||||
message: this.$t('testReportLocation') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
|
||||
max: 500,
|
||||
message: this.$t('testReportLocation') + this.$t('cannotExceed') + 500 + this.$t('Characters'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
</div>
|
||||
<a-select :placeholder="$t('PleaseSelect')+$t('ProcessStatus')"
|
||||
class="box-input"
|
||||
mode="multiple"
|
||||
allowClear
|
||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||
v-model="queryParam.flowStatus">
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
allowClear
|
||||
show-search
|
||||
style="width: calc(100% - 80px);"
|
||||
mode="multiple"
|
||||
optionFilterProp="label"
|
||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||
v-model="queryParam[selectModel]">
|
||||
@@ -2802,6 +2803,7 @@
|
||||
if (this.updateFlowStatusList && this.updateFlowStatusList.length > 0) {
|
||||
this.updateFlowStatusBatch()
|
||||
}
|
||||
this.completeTaskList = []
|
||||
for (let i = 0; i < this.startProcessList.length; i++) {
|
||||
if (this.startProcessList[i].type == 2) {
|
||||
this.startProcessList[i].dataList.designDutyDueDate = this.formInline.designDutyDueDate
|
||||
@@ -2829,6 +2831,7 @@
|
||||
Promise.all(this.completeTaskList).then((res) => {
|
||||
if (this.requestsNum == res.length) {
|
||||
this.visible = false
|
||||
this.formInline = {}
|
||||
this.selectedRowKeys = []
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
this.confirmLoading = false
|
||||
|
||||
@@ -10,282 +10,355 @@
|
||||
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text" title="G0">
|
||||
G0</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="zero">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G0'"
|
||||
@change="dateChange({db_field_name:'zero'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.zero"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G1">
|
||||
G1</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="one">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G1'"
|
||||
@change="dateChange({db_field_name:'one'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.one"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G2">
|
||||
G2</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="two">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G2'"
|
||||
@change="dateChange({db_field_name:'two'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.two"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G3">
|
||||
G3</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="three">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G3'"
|
||||
@change="dateChange({db_field_name:'three'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.three"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G4">
|
||||
G4</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="four">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G4'"
|
||||
@change="dateChange({db_field_name:'four'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.four"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G5">
|
||||
G5</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="five">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G5'"
|
||||
@change="dateChange({db_field_name:'five'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.five"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G6">
|
||||
G6</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="six">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G6'"
|
||||
@change="dateChange({db_field_name:'six'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.six"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="MP">
|
||||
MP</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="mp">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'MP'"
|
||||
@change="dateChange({db_field_name:'mp'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.mp"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G7">
|
||||
G7</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="seven">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G7'"
|
||||
@change="dateChange({db_field_name:'seven'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.seven"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('listPublishing')">
|
||||
{{$t('listPublishing')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="listConfirmation">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('listPublishing')+$t('time')"
|
||||
@change="dateChange({db_field_name:'listConfirmation'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.listConfirmation"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('responsibilityConfirmation')">
|
||||
{{$t('responsibilityConfirmation')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="legalTaskConfirmation">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('responsibilityConfirmation')+$t('time')"
|
||||
@change="dateChange({db_field_name:'legalTaskConfirmation'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.legalTaskConfirmation"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('designVerification')">
|
||||
{{$t('designVerification')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="designDeadline">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('designVerification')+$t('time')"
|
||||
@change="dateChange({db_field_name:'designDeadline'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.designDeadline"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('getStarted')">
|
||||
{{$t('getStarted')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="prehomoDeadline">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('getStarted')+$t('time')"
|
||||
@change="dateChange({db_field_name:'prehomoDeadline'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.prehomoDeadline"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('certificationStartOne')">
|
||||
{{$t('certificationStartOne')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="attestationStartTime">
|
||||
<a-date-picker class="box-input"
|
||||
:disabledDate='this.disabledRegistrationStartDate'
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationStartOne')+$t('time')"
|
||||
@change="dateChange({db_field_name:'attestationStartTime'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.attestationStartTime"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('certificationSubmission')">
|
||||
{{$t('certificationSubmission')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="certificationSubmission">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationSubmission')+$t('time')"
|
||||
@change="dateChange({db_field_name:'certificationSubmission'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.certificationSubmission"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('certificationEnd')">
|
||||
{{$t('certificationEnd')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="attestationEndTime">
|
||||
<a-date-picker class="box-input"
|
||||
:disabledDate='this.disabledRegistrationEndDate'
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationEnd')+$t('time')"
|
||||
@change="dateChange({db_field_name:'attestationEndTime'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.attestationEndTime"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('verificationAndVerification')">
|
||||
{{$t('verificationAndVerification')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="verifyDeadline">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('verificationAndVerification')+$t('time')"
|
||||
@change="dateChange({db_field_name:'verifyDeadline'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.verifyDeadline"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G0">
|
||||
G0</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="zero">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G0'"
|
||||
@change="dateChange({db_field_name:'zero'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.zero"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G1">
|
||||
G1</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="one">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G1'"
|
||||
@change="dateChange({db_field_name:'one'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.one"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G2">
|
||||
G2</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="two">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G2'"
|
||||
@change="dateChange({db_field_name:'two'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.two"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G3">
|
||||
G3</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="three">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G3'"
|
||||
@change="dateChange({db_field_name:'three'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.three"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G4">
|
||||
G4</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="four">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G4'"
|
||||
@change="dateChange({db_field_name:'four'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.four"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G5">
|
||||
G5</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="five">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G5'"
|
||||
@change="dateChange({db_field_name:'five'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.five"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G6">
|
||||
G6</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="six">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G6'"
|
||||
@change="dateChange({db_field_name:'six'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.six"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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="G7">
|
||||
G7</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="seven">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+'G7'"
|
||||
@change="dateChange({db_field_name:'seven'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.seven"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('listPublishing')">
|
||||
{{$t('listPublishing')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="listConfirmation">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('listPublishing')+$t('time')"
|
||||
@change="dateChange({db_field_name:'listConfirmation'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.listConfirmation"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('responsibilityConfirmation')">
|
||||
{{$t('responsibilityConfirmation')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="legalTaskConfirmation">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('responsibilityConfirmation')+$t('time')"
|
||||
@change="dateChange({db_field_name:'legalTaskConfirmation'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.legalTaskConfirmation"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('designVerification')">
|
||||
{{$t('designVerification')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="designDeadline">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('designVerification')+$t('time')"
|
||||
@change="dateChange({db_field_name:'designDeadline'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.designDeadline"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('getStarted')">
|
||||
{{$t('getStarted')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="prehomoDeadline">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('getStarted')+$t('time')"
|
||||
@change="dateChange({db_field_name:'prehomoDeadline'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.prehomoDeadline"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('certificationStartOne')">
|
||||
{{$t('certificationStartOne')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="attestationStartTime">
|
||||
<a-date-picker class="box-input"
|
||||
:disabledDate='this.disabledRegistrationStartDate'
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationStartOne')+$t('time')"
|
||||
@change="dateChange({db_field_name:'attestationStartTime'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.attestationStartTime"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('certificationSubmission')">
|
||||
{{$t('certificationSubmission')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="certificationSubmission">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationSubmission')+$t('time')"
|
||||
@change="dateChange({db_field_name:'certificationSubmission'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.certificationSubmission"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</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('certificationEnd')">
|
||||
{{$t('certificationEnd')}}</span>
|
||||
<span class="title-text-text" :title="$t('localapproval1')">
|
||||
{{$t('localapproval1')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="attestationEndTime">
|
||||
<a-date-picker class="box-input"
|
||||
:disabledDate='this.disabledRegistrationEndDate'
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationEnd')+$t('time')"
|
||||
@change="dateChange({db_field_name:'attestationEndTime'})"
|
||||
:placeholder="$t('PleaseSelect')+$t('localapproval1')+$t('time')"
|
||||
@change="dateChange({db_field_name:'localapproval1'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.attestationEndTime"
|
||||
v-model="formInline.localapproval1"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</a-form-model-item>
|
||||
@@ -295,16 +368,16 @@
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<!-- <span class="Required">*</span>-->
|
||||
<span class="title-text-text" :title="$t('verificationAndVerification')">
|
||||
{{$t('verificationAndVerification')}}</span>
|
||||
<span class="title-text-text" :title="$t('localapproval2')">
|
||||
{{$t('localapproval2')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="verifyDeadline">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('verificationAndVerification')+$t('time')"
|
||||
@change="dateChange({db_field_name:'verifyDeadline'})"
|
||||
:placeholder="$t('PleaseSelect')+$t('localapproval2')+$t('time')"
|
||||
@change="dateChange({db_field_name:'localapproval2'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.verifyDeadline"
|
||||
v-model="formInline.localapproval2"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
</a-form-model-item>
|
||||
|
||||
@@ -165,6 +165,7 @@
|
||||
this.title = val.name
|
||||
this.projectQuery = val
|
||||
this.getEchart()
|
||||
console.log(this.projectQuery.name)
|
||||
if (this.projectQuery.name == this.$t('certificationSubmission') || this.projectQuery.name == this.$t('certificationEnd')) {
|
||||
this.$nextTick(() => {
|
||||
this.num = '0'
|
||||
|
||||
@@ -5,19 +5,19 @@
|
||||
:searchQueryList="searchQueryList"
|
||||
:flag="'1'"
|
||||
:isDefault="true"
|
||||
:url="url"/>
|
||||
:url="url" />
|
||||
</div>
|
||||
<div class="table-operator">
|
||||
<div @click="handleCompare" v-has="'regulatoryEarlyWarning:push'"
|
||||
class="operator-text">
|
||||
<a-icon type="share-alt"/>
|
||||
{{$t('share')}}
|
||||
<a-icon type="share-alt" />
|
||||
{{ $t('share') }}
|
||||
</div>
|
||||
<div @click="handleExport"
|
||||
v-has="'regulatoryEarlyWarning:export'"
|
||||
class="operator-text">
|
||||
<a-icon type="export" :rotate="-90"/>
|
||||
{{$t('export')}}
|
||||
<a-icon type="export" :rotate="-90" />
|
||||
{{ $t('export') }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@@ -40,39 +40,39 @@
|
||||
:columns="columns"
|
||||
>
|
||||
<span slot="serial_number" slot-scope="text,result">
|
||||
<a @click="standClick(result)" :title="text">{{text}}</a>
|
||||
<a @click="standClick(result)" :title="text">{{ text }}</a>
|
||||
</span>
|
||||
<span slot="vehicleInProductionDate" slot-scope="text,result" :title="text">
|
||||
<span v-if="result.xin1_che1_xing2_shi2_shi1_ri4_qi1 == 'yellow'">
|
||||
{{text}}
|
||||
{{ text }}
|
||||
</span>
|
||||
<span v-else-if="result.xin1_che1_xing2_shi2_shi1_ri4_qi1 == 'red'">
|
||||
{{text}}
|
||||
{{ text }}
|
||||
</span>
|
||||
<span v-else>
|
||||
{{text}}
|
||||
{{ text }}
|
||||
</span>
|
||||
</span>
|
||||
<span slot="ImplementationDate" slot-scope="text,result" :title="text">
|
||||
<span v-if="result.new_colour == 'yellow'" style="color: #fdd835">
|
||||
{{text}}
|
||||
{{ text }}
|
||||
</span>
|
||||
<span v-else-if="result.new_colour == 'red'" style="color: red">
|
||||
{{text}}
|
||||
{{ text }}
|
||||
</span>
|
||||
<span v-else>
|
||||
{{text}}
|
||||
{{ text }}
|
||||
</span>
|
||||
</span>
|
||||
<span slot="vehicleInProductionDate" slot-scope="text,result" :title="text">
|
||||
<span v-if="result.implement_colour == 'yellow'" style="color: #fdd835">
|
||||
{{text}}
|
||||
{{ text }}
|
||||
</span>
|
||||
<span v-else-if="result.implement_colour == 'red'" style="color: red">
|
||||
{{text}}
|
||||
{{ text }}
|
||||
</span>
|
||||
<span v-else>
|
||||
{{text}}
|
||||
{{ text }}
|
||||
</span>
|
||||
</span>
|
||||
</a-table>
|
||||
@@ -98,247 +98,292 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import search from '@/components/search/index'
|
||||
import libraryPush from '@/components/libraryPush/index'
|
||||
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
|
||||
import moment from 'moment'
|
||||
import eventBUs from '../../common/event'
|
||||
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
|
||||
import search from '@/components/search/index'
|
||||
import libraryPush from '@/components/libraryPush/index'
|
||||
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
|
||||
import moment from 'moment'
|
||||
import eventBUs from '../../common/event'
|
||||
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
|
||||
|
||||
export default {
|
||||
name: 'index',
|
||||
components: {
|
||||
search,
|
||||
libraryPush
|
||||
},
|
||||
mixins: [ResizeColumnProvide,ResizeHeader],
|
||||
data() {
|
||||
return {
|
||||
//url传参严格按照当前命名
|
||||
url: {
|
||||
seachList: 'document/bussDocumentLibraryEO/queryCondition', //搜索字段
|
||||
list: '/LawsWarn/queryPageInfo',
|
||||
exportData: 'LawsWarn/exportExcel',
|
||||
pullMessage: '/LawsWarn/warnPullMessage'
|
||||
export default {
|
||||
name: 'index',
|
||||
components: {
|
||||
search,
|
||||
libraryPush
|
||||
},
|
||||
mixins: [ResizeColumnProvide, ResizeHeader],
|
||||
data() {
|
||||
return {
|
||||
//url传参严格按照当前命名
|
||||
url: {
|
||||
seachList: 'document/bussDocumentLibraryEO/queryCondition', //搜索字段
|
||||
list: '/LawsWarn/queryPageInfo',
|
||||
exportData: 'LawsWarn/exportExcel',
|
||||
pullMessage: '/LawsWarn/warnPullMessage'
|
||||
},
|
||||
activeTab: this.$t('ImplementationDate'),
|
||||
loading: false,
|
||||
dataSource: [],
|
||||
selectedRowKeys: [],
|
||||
total: 0,
|
||||
pageSize: 10,
|
||||
pageNo: 1,
|
||||
searchParmes: {},
|
||||
searchQueryList: [
|
||||
{
|
||||
field_show_type: 12,
|
||||
db_field_txt: this.$t('warningTime'),
|
||||
db_field_name: 'WarnTimeText',
|
||||
option: [
|
||||
{
|
||||
value: '1',
|
||||
name: this.$t('inRecentMonths3')
|
||||
},
|
||||
{
|
||||
value: '2',
|
||||
name: this.$t('inRecentMonths6')
|
||||
},
|
||||
{
|
||||
value: '5',
|
||||
name: this.$t('inRecentMonthsin6')
|
||||
},
|
||||
{
|
||||
value: '3',
|
||||
name: this.$t('inRecentYear1')
|
||||
},
|
||||
{
|
||||
value: '4',
|
||||
name: this.$t('inRecentYear2')
|
||||
},
|
||||
{
|
||||
value: '6',
|
||||
name: this.$t('inRecentYear3')
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
columnsAll: [
|
||||
{
|
||||
title: this.$t('standard'),
|
||||
align: 'left',
|
||||
dataIndex: 'serial_number',
|
||||
ellipsis: true,
|
||||
width: 170,
|
||||
scopedSlots: { customRender: 'serial_number' }
|
||||
},
|
||||
activeTab: this.$t('ImplementationDate'),
|
||||
loading: false,
|
||||
dataSource: [],
|
||||
selectedRowKeys: [],
|
||||
total: 0,
|
||||
pageSize: 10,
|
||||
pageNo: 1,
|
||||
searchParmes: {},
|
||||
searchQueryList: [
|
||||
{
|
||||
field_show_type: 12,
|
||||
db_field_txt: this.$t('warningTime'),
|
||||
db_field_name: 'WarnTimeText',
|
||||
option: [
|
||||
{
|
||||
value: '1',
|
||||
name:this.$t('inRecentMonths3')
|
||||
},
|
||||
{
|
||||
value: '2',
|
||||
name: this.$t('inRecentMonths6')
|
||||
},
|
||||
{
|
||||
value: '5',
|
||||
name: this.$t('inRecentMonthsin6')
|
||||
},
|
||||
{
|
||||
value: '3',
|
||||
name: this.$t('inRecentYear1')
|
||||
},
|
||||
{
|
||||
value: '4',
|
||||
name: this.$t('inRecentYear2')
|
||||
},
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
columnsAll: [
|
||||
{
|
||||
title: this.$t('standard'),
|
||||
align: 'left',
|
||||
dataIndex: 'serial_number',
|
||||
ellipsis: true,
|
||||
width: 170,
|
||||
scopedSlots: { customRender: 'serial_number' }
|
||||
},
|
||||
{
|
||||
title: this.$t('title'),
|
||||
align: 'left',
|
||||
dataIndex: 'title',
|
||||
ellipsis: true,
|
||||
width: 170,
|
||||
scopedSlots: { customRender: 'serial_number' }
|
||||
},
|
||||
{
|
||||
title: this.$t('status'),
|
||||
align: 'left',
|
||||
width: 140,
|
||||
ellipsis: true,
|
||||
dataIndex: 'state'
|
||||
},
|
||||
{
|
||||
title: this.$t('zoneOfApplication'),
|
||||
align: 'left',
|
||||
width: 170,
|
||||
ellipsis: true,
|
||||
dataIndex: 'region'
|
||||
},
|
||||
{
|
||||
title: this.$t('technicalField'),
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 170,
|
||||
dataIndex: 'technology_territory'
|
||||
},
|
||||
{
|
||||
title: this.$t('vehicleInProductionDate'),
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 190,
|
||||
dataIndex: 'implement_time',
|
||||
scopedSlots: { customRender: 'vehicleInProductionDate' }
|
||||
},
|
||||
{
|
||||
title: this.$t('ImplementationDate'),
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 190,
|
||||
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
|
||||
scopedSlots: { customRender: 'ImplementationDate' }
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
columns() {
|
||||
let columnsAll = JSON.parse(JSON.stringify(this.columnsAll))
|
||||
if (this.activeTab == this.$t('ImplementationDate')) {
|
||||
for (let i = 0; i < columnsAll.length; i++) {
|
||||
if (columnsAll[i].dataIndex == 'implement_time') {
|
||||
columnsAll.splice(i, 1)
|
||||
i--
|
||||
}
|
||||
}
|
||||
} else if (this.activeTab == this.$t('vehicleInProductionDate')) {
|
||||
for (let i = 0; i < columnsAll.length; i++) {
|
||||
if (columnsAll[i].dataIndex == 'xin1_che1_xing2_shi2_shi1_ri4_qi1') {
|
||||
columnsAll.splice(i, 1)
|
||||
i--
|
||||
}
|
||||
{
|
||||
title: this.$t('title'),
|
||||
align: 'left',
|
||||
dataIndex: 'title',
|
||||
ellipsis: true,
|
||||
width: 170,
|
||||
scopedSlots: { customRender: 'serial_number' }
|
||||
},
|
||||
{
|
||||
title: this.$t('status'),
|
||||
align: 'left',
|
||||
width: 140,
|
||||
ellipsis: true,
|
||||
dataIndex: 'state'
|
||||
},
|
||||
{
|
||||
title: this.$t('zoneOfApplication'),
|
||||
align: 'left',
|
||||
width: 170,
|
||||
ellipsis: true,
|
||||
dataIndex: 'region'
|
||||
},
|
||||
{
|
||||
title: this.$t('technicalField'),
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 170,
|
||||
dataIndex: 'technology_territory'
|
||||
},
|
||||
{
|
||||
title: this.$t('vehicleInProductionDate'),
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 190,
|
||||
dataIndex: 'implement_time',
|
||||
scopedSlots: { customRender: 'vehicleInProductionDate' }
|
||||
},
|
||||
{
|
||||
title: this.$t('ImplementationDate'),
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 190,
|
||||
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
|
||||
scopedSlots: { customRender: 'ImplementationDate' }
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
columns() {
|
||||
let columnsAll = JSON.parse(JSON.stringify(this.columnsAll))
|
||||
if (this.activeTab == this.$t('ImplementationDate')) {
|
||||
for (let i = 0; i < columnsAll.length; i++) {
|
||||
if (columnsAll[i].dataIndex == 'implement_time') {
|
||||
columnsAll.splice(i, 1)
|
||||
i--
|
||||
}
|
||||
}
|
||||
return columnsAll
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// this.getList()
|
||||
eventBUs.$on('searchQuery', search => {
|
||||
Object.keys(search).forEach(res => {
|
||||
if (search[res] instanceof Array) {
|
||||
search[res] = search[res].join(',')
|
||||
} else if (this.activeTab == this.$t('vehicleInProductionDate')) {
|
||||
for (let i = 0; i < columnsAll.length; i++) {
|
||||
if (columnsAll[i].dataIndex == 'xin1_che1_xing2_shi2_shi1_ri4_qi1') {
|
||||
columnsAll.splice(i, 1)
|
||||
i--
|
||||
}
|
||||
})
|
||||
this.pageNo = 1
|
||||
this.searchParmes = search
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
return columnsAll
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// this.getList()
|
||||
eventBUs.$on('searchQuery', search => {
|
||||
Object.keys(search).forEach(res => {
|
||||
if (search[res] instanceof Array) {
|
||||
search[res] = search[res].join(',')
|
||||
}
|
||||
})
|
||||
},
|
||||
beforeDestroy() {
|
||||
eventBUs.$off('searchQuery')
|
||||
},
|
||||
methods: {
|
||||
standClick(val){
|
||||
let newUrl = this.$router.resolve({
|
||||
path: '/docManage/library/detail',
|
||||
query: {
|
||||
id: val.id
|
||||
}
|
||||
})
|
||||
window.open(newUrl.href, '_blank')
|
||||
},
|
||||
callback(tab) {
|
||||
this.selectedRowKeys = []
|
||||
this.activeTab = tab
|
||||
this.getList()
|
||||
},
|
||||
onSelectChange(value) {
|
||||
this.selectedRowKeys = value
|
||||
},
|
||||
handleCompare() {
|
||||
if (this.selectedRowKeys.length > 0) {
|
||||
this.$nextTick(() => {
|
||||
let flag = ''
|
||||
if (this.activeTab == this.$t('ImplementationDate')) {
|
||||
flag = 1
|
||||
} else {
|
||||
flag = 2
|
||||
}
|
||||
this.$refs.libraryPushRef.getPush(JSON.parse(JSON.stringify(this.selectedRowKeys)), flag)
|
||||
})
|
||||
} else {
|
||||
this.$message.warning(this.$t('selectLeastOne'))
|
||||
this.pageNo = 1
|
||||
this.searchParmes = search
|
||||
this.getList()
|
||||
})
|
||||
},
|
||||
beforeDestroy() {
|
||||
eventBUs.$off('searchQuery')
|
||||
},
|
||||
methods: {
|
||||
standClick(val) {
|
||||
let newUrl = this.$router.resolve({
|
||||
path: '/docManage/library/detail',
|
||||
query: {
|
||||
id: val.id
|
||||
}
|
||||
},
|
||||
handleExport() {
|
||||
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
||||
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
|
||||
let text = ''
|
||||
let flag
|
||||
})
|
||||
window.open(newUrl.href, '_blank')
|
||||
},
|
||||
callback(tab) {
|
||||
this.selectedRowKeys = []
|
||||
this.activeTab = tab
|
||||
this.getList()
|
||||
},
|
||||
onSelectChange(value) {
|
||||
this.selectedRowKeys = value
|
||||
},
|
||||
handleCompare() {
|
||||
if (this.selectedRowKeys.length > 0) {
|
||||
this.$nextTick(() => {
|
||||
let flag = ''
|
||||
if (this.activeTab == this.$t('ImplementationDate')) {
|
||||
flag = 0
|
||||
text = this.$t('ImplementationDate')
|
||||
} else {
|
||||
text = this.$t('vehicleInProductionDate')
|
||||
flag = 1
|
||||
} else {
|
||||
flag = 2
|
||||
}
|
||||
let query = {
|
||||
id: selectedRowKeys.join(','),
|
||||
...this.searchParmes,
|
||||
flag: flag
|
||||
}
|
||||
downloadFile(this.url.exportData, text + '.xls', query, this.Deselect)
|
||||
this.$refs.libraryPushRef.getPush(JSON.parse(JSON.stringify(this.selectedRowKeys)), flag)
|
||||
})
|
||||
} else {
|
||||
this.$message.warning(this.$t('selectLeastOne'))
|
||||
}
|
||||
},
|
||||
handleExport() {
|
||||
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
||||
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
|
||||
let text = ''
|
||||
let flag
|
||||
if (this.activeTab == this.$t('ImplementationDate')) {
|
||||
flag = 0
|
||||
text = this.$t('ImplementationDate')
|
||||
} else {
|
||||
this.$message.warning(this.$t('selectLeastOne'))
|
||||
text = this.$t('vehicleInProductionDate')
|
||||
flag = 1
|
||||
}
|
||||
},
|
||||
Deselect() {
|
||||
this.selectedRowKeys = []
|
||||
},
|
||||
clearSelected() {
|
||||
if (!this.searchParmes['WarnTimeText']) {
|
||||
this.searchParmes['WarnTimeText'] = '2'
|
||||
let query = {
|
||||
id: selectedRowKeys.join(','),
|
||||
...this.searchParmes,
|
||||
flag: flag
|
||||
}
|
||||
let startTime = moment(new Date()).format('YYYY-MM-DD')
|
||||
let endTime = this.getNowdate()
|
||||
this.searchParmes['WarnTime'] = [startTime, endTime]
|
||||
this.searchParmes = { ...this.searchParmes }
|
||||
this.pageNo = 1
|
||||
this.getList()
|
||||
},
|
||||
getNowdate() {
|
||||
let monthData
|
||||
let yearData
|
||||
if (this.searchParmes['WarnTimeText'] == '1') {
|
||||
monthData = 4
|
||||
yearData = 1
|
||||
} else if (this.searchParmes['WarnTimeText'] == '2') {
|
||||
monthData = 7
|
||||
yearData = 1
|
||||
} else if (this.searchParmes['WarnTimeText'] == '3') {
|
||||
monthData = 13
|
||||
yearData = 1
|
||||
} else if (this.searchParmes['WarnTimeText'] == '4') {
|
||||
monthData = 25
|
||||
yearData = 2
|
||||
downloadFile(this.url.exportData, text + '.xls', query, this.Deselect)
|
||||
} else {
|
||||
this.$message.warning(this.$t('selectLeastOne'))
|
||||
}
|
||||
},
|
||||
Deselect() {
|
||||
this.selectedRowKeys = []
|
||||
},
|
||||
clearSelected() {
|
||||
let endTime = ''
|
||||
if (!this.searchParmes['WarnTimeText']) {
|
||||
endTime = '2099-01-01'
|
||||
} else {
|
||||
endTime = this.getNowdate()
|
||||
}
|
||||
let startTime = moment(new Date()).format('YYYY-MM-DD')
|
||||
this.searchParmes['WarnTime'] = [startTime, endTime]
|
||||
this.searchParmes = { ...this.searchParmes }
|
||||
this.pageNo = 1
|
||||
this.getList()
|
||||
},
|
||||
getNowdate() {
|
||||
let monthData
|
||||
let yearData
|
||||
if (this.searchParmes['WarnTimeText'] == '1') {
|
||||
monthData = 4
|
||||
yearData = 1
|
||||
} else if (this.searchParmes['WarnTimeText'] == '2') {
|
||||
monthData = 7
|
||||
yearData = 1
|
||||
} else if (this.searchParmes['WarnTimeText'] == '3') {
|
||||
monthData = 13
|
||||
yearData = 1
|
||||
} else if (this.searchParmes['WarnTimeText'] == '4') {
|
||||
monthData = 25
|
||||
yearData = 2
|
||||
} else if (this.searchParmes['WarnTimeText'] == '5') {
|
||||
monthData = 7
|
||||
yearData = -1
|
||||
} else if (this.searchParmes['WarnTimeText'] == '6') {
|
||||
monthData = 37
|
||||
yearData = 3
|
||||
}
|
||||
if (this.searchParmes['WarnTimeText'] == '5') {
|
||||
var time = new Date()
|
||||
time.setTime(time.getTime())
|
||||
var s2 = time.getFullYear() + '-' + (time.getMonth() + 1) + '-' + time.getDate()
|
||||
var monthNum = 6 //要减的月数(6)自己定义
|
||||
var dateArr = s2.split('-') //s2当前时间
|
||||
var year = dateArr[0] //获取当前日期的年份
|
||||
var month = dateArr[1] //获取当前日期的月份
|
||||
var day = dateArr[2] //获取当前日期的日
|
||||
var days = new Date(year, month, 0)
|
||||
days = days.getDate() //获取当前日期中月的天数
|
||||
var year2
|
||||
if (month < 6) {
|
||||
year2 = year - 1
|
||||
} else {
|
||||
year2 = year
|
||||
}
|
||||
var month2 = parseInt(month) - monthNum
|
||||
if (month2 <= 0) {
|
||||
year2 = parseInt(year2) - parseInt(month2 / 12 == 0 ? 1 : parseInt(month2) / 12)
|
||||
month2 = 12 - (Math.abs(month2) % 12)
|
||||
}
|
||||
var day2 = day
|
||||
var days2 = new Date(year2, month2, 0)
|
||||
days2 = days2.getDate()
|
||||
if (day2 > days2) {
|
||||
day2 = days2
|
||||
}
|
||||
if (month2 < 10) {
|
||||
month2 = '0' + month2
|
||||
}
|
||||
var t2 = year2 + '-' + month2 + '-' + day2
|
||||
return t2
|
||||
} else {
|
||||
var date_now = new Date()//获取当前时间
|
||||
var year = date_now.getFullYear()//获取当前时间的年份
|
||||
var month = date_now.getMonth()//获取当前时间的月份
|
||||
@@ -362,64 +407,67 @@
|
||||
}
|
||||
var time = year2 + '-' + month2 + '-' + day2
|
||||
return time
|
||||
},
|
||||
pageOnChange(page) {
|
||||
this.pageNo = page
|
||||
this.getList()
|
||||
},
|
||||
SizeChange(page, pageSize) {
|
||||
this.pageNo = 1
|
||||
this.pageSize = pageSize
|
||||
this.getList()
|
||||
},
|
||||
getList() {
|
||||
let flag
|
||||
if (this.activeTab == this.$t('ImplementationDate')) {
|
||||
flag = 0
|
||||
} else {
|
||||
flag = 1
|
||||
}
|
||||
let params = {
|
||||
...this.searchParmes,
|
||||
pageNo: this.pageNo,
|
||||
pageSize: this.pageSize,
|
||||
flag: flag
|
||||
}
|
||||
this.loading = true
|
||||
postAction(this.url.list, params).then((res) => {
|
||||
if (res.success) {
|
||||
this.dataSource = res.result.records
|
||||
this.total = res.result.total
|
||||
this.loading = false
|
||||
} else {
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
pageOnChange(page) {
|
||||
this.pageNo = page
|
||||
this.getList()
|
||||
},
|
||||
SizeChange(page, pageSize) {
|
||||
this.pageNo = 1
|
||||
this.pageSize = pageSize
|
||||
this.getList()
|
||||
},
|
||||
getList() {
|
||||
let flag
|
||||
if (this.activeTab == this.$t('ImplementationDate')) {
|
||||
flag = 0
|
||||
} else {
|
||||
flag = 1
|
||||
}
|
||||
let params = {
|
||||
...this.searchParmes,
|
||||
pageNo: this.pageNo,
|
||||
pageSize: this.pageSize,
|
||||
flag: flag
|
||||
}
|
||||
this.loading = true
|
||||
postAction(this.url.list, params).then((res) => {
|
||||
if (res.success) {
|
||||
this.dataSource = res.result.records
|
||||
this.total = res.result.total
|
||||
this.loading = false
|
||||
} else {
|
||||
this.loading = false
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
.page {
|
||||
text-align: right;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.page {
|
||||
text-align: right;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
::v-deep .ant-table-row:first-child {
|
||||
background: #fff !important;
|
||||
opacity: 0.9;
|
||||
}
|
||||
::v-deep .ant-table-row:first-child {
|
||||
background: #fff !important;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
::v-deep .ant-table-body {
|
||||
background: transparent !important;
|
||||
}
|
||||
::v-deep .ant-table-body {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
/deep/ .ant-table-placeholder{
|
||||
margin-top: 8px !important;
|
||||
}
|
||||
/deep/ .ant-table-placeholder {
|
||||
margin-top: 8px !important;
|
||||
}
|
||||
</style>
|
||||
+30
@@ -22,6 +22,7 @@
|
||||
</span>
|
||||
<div class="process-content-right">
|
||||
<div class="process-content-right-top" :title="item.name">{{item.name}}</div>
|
||||
<div class="process-content-right-top-user" :title="item.userName">{{item.userName}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -303,6 +304,23 @@
|
||||
})
|
||||
}
|
||||
}
|
||||
this.regulatoryCertificationTaskPlanList.forEach(val => {
|
||||
if (val.name == this.$t('initiatingProcess')) {
|
||||
val.userName = this.$t('regulatoryEngineer')
|
||||
} else if (val.name == this.$t('Taskresponsibilityrecognition')) {
|
||||
val.userName = this.$t('personLiable')
|
||||
} else if (val.name == this.$t('designComplianceReview')) {
|
||||
val.userName = this.$t('personLiable')
|
||||
} else if (val.name == this.$t('verificationComplianceReview')) {
|
||||
val.userName = this.$t('personLiable')
|
||||
} else if (val.name == this.$t('designComplianceReviewAdmin')) {
|
||||
val.userName = this.$t('Sponsor')
|
||||
} else if (val.name == this.$t('verificationComplianceExamine')) {
|
||||
val.userName = this.$t('Sponsor')
|
||||
} else {
|
||||
val.userName = ''
|
||||
}
|
||||
})
|
||||
this.regulatoryCertificationTaskPlanList = [...this.regulatoryCertificationTaskPlanList]
|
||||
}
|
||||
this.loading = false
|
||||
@@ -403,6 +421,18 @@
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
.process-content-right-top-user{
|
||||
//background: #E6FAFA;
|
||||
//padding: 5px;
|
||||
color: #9c9fac;
|
||||
font-size: 12px;
|
||||
font-weight: lighter;
|
||||
margin-top: 5px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+25
-6
@@ -49,12 +49,19 @@
|
||||
<a-radio value="Transfer" v-if="query.TaskKey == 'zrrtjjfw' || query.TaskKey == 'zrrqr'">
|
||||
{{$t('turnToDo')}}
|
||||
</a-radio>
|
||||
<a-button type="primary" v-if="isPersonnel" @click="PersonnelSelectionClick">
|
||||
{{this.$t('PersonnelSelection')}}
|
||||
</a-button>
|
||||
<span>
|
||||
{{this.formInline.dezrrSubmitUserName}}
|
||||
</span>
|
||||
<!-- <a-button type="primary" v-if="isPersonnel" @click="PersonnelSelectionClick">-->
|
||||
<!-- {{this.$t('PersonnelSelection')}}-->
|
||||
<!-- </a-button>-->
|
||||
<!-- <span>-->
|
||||
<!-- {{this.formInline.dezrrSubmitUserName}}-->
|
||||
<!-- </span>-->
|
||||
<a-form-model-item class="itemModel-per">
|
||||
<PersonnelSelection v-if="isPersonnel" :query="{db_field_name:this.query.TaskKey == 'zrrtjjfw'?'dezrrSubmitUserId':'secondChargePersonUserId',db_field_txt:$t('personnel')}"
|
||||
:isSingleChoice="true"
|
||||
:personneQuery="formInline"
|
||||
@change="PersonnelSelectionChange"
|
||||
v-model="formInline.dezrrSubmitUserName"/>
|
||||
</a-form-model-item>
|
||||
</a-radio-group>
|
||||
</a-form-model-item>
|
||||
</a-col>
|
||||
@@ -125,6 +132,7 @@
|
||||
|
||||
<script>
|
||||
import { getAction, postAction, putAction, deleteAction } from '@/api/manage'
|
||||
import PersonnelSelection from '@/components/PersonnelSelection/index'
|
||||
import uploadFile from '@/components/uploadFile/file'
|
||||
import SelectedBy from '@/components/SelectedBy/index'
|
||||
import moment from 'moment'
|
||||
@@ -133,6 +141,7 @@
|
||||
name: 'reviewedByThePersonInCharge',
|
||||
components: {
|
||||
uploadFile,
|
||||
PersonnelSelection,
|
||||
SelectedBy
|
||||
},
|
||||
props: ['queryBy', 'queryPersonInCharge', 'query'],
|
||||
@@ -210,6 +219,10 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
PersonnelSelectionChange(value, id) {
|
||||
this.formInline[value] = id
|
||||
this.formInline = { ...this.formInline }
|
||||
},
|
||||
getData(data) {
|
||||
this.formInline.disposeResult = data.operatorResult
|
||||
this.formInline.approvalOpinion = data.approvalOpinion
|
||||
@@ -397,4 +410,10 @@
|
||||
border: 1px #00B3BE solid;
|
||||
color: #00B3BE;
|
||||
}
|
||||
.itemModel-per{
|
||||
width: calc(50% - 130px) !important;
|
||||
display: inline-block !important;
|
||||
margin-top: -6px !important;
|
||||
height: 40px !important;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user