合并分支 'dev_ota_20230515' 到 'master'

Dev ota 20230515

查看合并请求 laws-nio/laws-weilai!327
This commit is contained in:
高嵩
2023-05-18 17:41:42 +08:00
42 changed files with 797 additions and 466 deletions
@@ -61,8 +61,15 @@ public class OtaBaCxTxjlController extends JeroController<OtaBaCxTxjl, IOtaBaCxT
return Result.OK(page); return Result.OK(page);
} }
QueryWrapper<OtaBaCxTxjl> queryWrapper = QueryGenerator.initQueryWrapper(otaBaCxTxjl, req.getParameterMap()); QueryWrapper<OtaBaCxTxjl> queryWrapper = QueryGenerator.initQueryWrapper(otaBaCxTxjl, req.getParameterMap());
if(StringUtils.isNotEmpty(otaBaCxTxjl.getContext())){
queryWrapper.and(query -> {
query.lambda().like(OtaBaCxTxjl::getContent,otaBaCxTxjl.getContext());
query.or().lambda().like(OtaBaCxTxjl::getCreateBy,otaBaCxTxjl.getContext());
});
}
queryWrapper.orderByDesc("create_time"); queryWrapper.orderByDesc("create_time");
IPage<OtaBaCxTxjl> pageList = otaBaCxTxjlService.page(page, queryWrapper); IPage<OtaBaCxTxjl> pageList = otaBaCxTxjlService.page(page, queryWrapper);
this.otaBaCxTxjlService.disposeData(pageList.getRecords(),otaBaCxTxjl.getCut());
return Result.OK(pageList); return Result.OK(pageList);
} }
@@ -90,6 +90,7 @@ public class OtaBaSjListController extends JeroController<OtaBaSjList, IOtaBaSjL
} }
queryWrapper.orderByDesc(OtaBaSjList::getCreateTime); queryWrapper.orderByDesc(OtaBaSjList::getCreateTime);
IPage<OtaBaSjList> pageList = otaBaSjListService.page(page, queryWrapper); IPage<OtaBaSjList> pageList = otaBaSjListService.page(page, queryWrapper);
this.otaBaSjListService.disposeData(pageList.getRecords(),otaBaSjList);
return Result.OK(pageList); return Result.OK(pageList);
} }
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
@@ -84,4 +85,11 @@ public class OtaBaCxTxjl implements Serializable {
this.module = module; this.module = module;
this.content = content; this.content = content;
} }
// 内容搜索条件,模糊搜索填写内容、填写人
@TableField(exist = false)
private String context;
@TableField(exist = false)
private String cut;
} }
@@ -5,6 +5,7 @@ import java.io.UnsupportedEncodingException;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
@@ -163,6 +164,10 @@ public class OtaBaSjList implements Serializable {
@ApiModelProperty(value = "升级状态") @ApiModelProperty(value = "升级状态")
private java.lang.String sjzt; private java.lang.String sjzt;
// 任务名称
@TableField(exist = false)
private String rwmc;
public void updateData(OtaBaSjSjmbcx otaBaSjSjmbcx) { public void updateData(OtaBaSjSjmbcx otaBaSjSjmbcx) {
this.cpdjbh = otaBaSjSjmbcx.getBabh(); this.cpdjbh = otaBaSjSjmbcx.getBabh();
this.ggpc = otaBaSjSjmbcx.getBapc(); this.ggpc = otaBaSjSjmbcx.getBapc();
@@ -109,7 +109,14 @@ public class OtaBaSjSjyxpg implements Serializable {
@Dict(dicCode = "upgrade_failed") @Dict(dicCode = "upgrade_failed")
private java.lang.String aqjz; private java.lang.String aqjz;
/**升级活动是否影响车辆安全*/
/**升级失败或中断后_文本框*/
@Excel(name = "升级失败或中断后_文本框", width = 15)
@ApiModelProperty(value = "升级失败或中断后_文本框")
private java.lang.String aqjzWbk;
/**升级活动是否影响车辆安全*/
@Excel(name = "升级活动是否影响车辆安全", width = 15) @Excel(name = "升级活动是否影响车辆安全", width = 15)
@ApiModelProperty(value = "升级活动是否影响车辆安全") @ApiModelProperty(value = "升级活动是否影响车辆安全")
private java.lang.Integer sfyxaq; private java.lang.Integer sfyxaq;
@@ -1,22 +1,25 @@
package com.jero.modules.ota.enums; package com.jero.modules.ota.enums;
import com.jero.common.constant.enums.CutEnum;
import com.jero.modules.system.util.StringUtils;
public enum OtaModuleEnum { public enum OtaModuleEnum {
CX_CXJBXX("车型基本信息", "1","1"), CX_CXJBXX("车型基本信息", "Basic information of vehicle type","5b123b5672f44986a267942530427e15"),
CX_ZXSJYQ("在线升级要求", "1","1"), CX_ZXSJYQ("在线升级要求", "Online upgrade requirements","645c35027e094dd2a51de40ef5a1d1ae"),
CX_AQCS("安全措施", "1","1"), CX_AQCS("安全措施", "Safety measure","5fd89d87343f417ea4198187805db601"),
CX_KSJDXTMCYCS("可在线升级的系统名称与参数", "1","1"), CX_KSJDXTMCYCS("可在线升级的系统名称与参数", "Name and parameters of the system that can be upgraded online","06f921687cf44288819fe0b371dd3ba9"),
CX_KZXSJDJSFZGNMCYCS("可在线升级的驾驶辅助功能名称与参数", "1","1"), CX_KZXSJDJSFZGNMCYCS("可在线升级的驾驶辅助功能名称与参数", "The name and parameters of the driver assistance feature that can be upgraded online","a0921f99bfb042ab90747c964e60474d"),
CX_JSFZXTJCBACS("驾驶辅助系统基础备案参数", "1","1"), CX_JSFZXTJCBACS("驾驶辅助系统基础备案参数", "Driver assistance system basic record parameters","0ebcf0ad4ca842c88db4d96297b4a8a3"),
CX_QT("其他", "1","1"), CX_QT("其他", "others","17b94237382e444780537bfa9052e432"),
SJ_SJMBCX("升级目标车型", "1","1"), SJ_SJMBCX("升级目标车型", "Upgrade target model","8ed5e877cfbe446297f56891294e54bb"),
SJ_SJMBCL("本次升级的目标车辆", "1","1"), SJ_SJMBCL("本次升级的目标车辆", "The target vehicle of this upgrade","67d1366fd2714c03a012c27688a1d906"),
SJ_SJYXPG("升级影响评估", "1","1"), SJ_SJYXPG("升级影响评估", "Upgrade impact assessment","05d6cb54a8844b7cbc50967b69ed6ad7"),
SJ_SJXTMCBH("本次升级的系统名称与参数变化", "1","1"), SJ_SJXTMCBH("本次升级的系统名称与参数变化", "The system name and parameters of the upgrade have changed","f372f891416842b99a3d15851758831c"),
SJ_SJJSMCBH("本次升级的驾驶辅助功能名称与参数变化", "1","1"), SJ_SJJSMCBH("本次升级的驾驶辅助功能名称与参数变化", "The name and parameters of the driver assistance function are changed in this upgrade","503ecaa0076e452f9cb5daa6b4897c2e"),
SJ_YHGZNRFS("用户告知内容及方式", "1","1"), SJ_YHGZNRFS("用户告知内容及方式", "Content and method of user notification","a20fa7f173674627a6b407c9cc6a2bae"),
SJ_QT("其他升级任务信息", "1","1"); SJ_QT("其他升级任务信息", "Information about other upgrade tasks","e815bfc4c8e04deda0d17358224320b0");
String name; String name;
String nameEN; String nameEN;
@@ -51,4 +54,18 @@ public enum OtaModuleEnum {
public void setValue(String value) { public void setValue(String value) {
this.value = value; this.value = value;
} }
public static String getNameByValue(String value,String cut){
String result = "";
for (OtaModuleEnum otaModuleEnum : OtaModuleEnum.values()) {
if(StringUtils.equals(otaModuleEnum.value,value)){
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
result = otaModuleEnum.name;
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
result = otaModuleEnum.nameEN;
}
}
}
return result;
}
} }
@@ -165,6 +165,7 @@ public enum OtaTitleEnum {
JRXXG("jrxxg", "兼容性评估相关", "2", "", 0), JRXXG("jrxxg", "兼容性评估相关", "2", "", 0),
ZXSJ("zxsj", "如何执行升级", "conditions_upgrades", "", 0), ZXSJ("zxsj", "如何执行升级", "conditions_upgrades", "", 0),
AQJZ("aqjz", "升级失败或中断后,车辆采取的安全机制", "upgrade_failed", "", 0), AQJZ("aqjz", "升级失败或中断后,车辆采取的安全机制", "upgrade_failed", "", 0),
AQJZWBK("aqjzWbk", "升级失败或中断后,车辆采取的安全机制-文本框", "0", "", 1000),
SFYXAQ("sfyxaq", "升级活动是否影响车辆安全", "2", "", 0), SFYXAQ("sfyxaq", "升级活动是否影响车辆安全", "2", "", 0),
YHQR("yhqr", "升级活动是否提供用户确认选项", "2", "", 0), YHQR("yhqr", "升级活动是否提供用户确认选项", "2", "", 0),
SJBCS("sjbcs", "升级包测试", "package_test", "", 0), SJBCS("sjbcs", "升级包测试", "package_test", "", 0),
@@ -65,4 +65,11 @@ public interface IOtaBaCxTxjlService extends IService<OtaBaCxTxjl> {
List<OtaBaCxTxjl> queryList(); List<OtaBaCxTxjl> queryList();
List<OtaBaCxTxjl> queryByOtaId(String otaId); List<OtaBaCxTxjl> queryByOtaId(String otaId);
/**
* 处理数据
* @param datas
* @param cut
*/
void disposeData(List<OtaBaCxTxjl> datas, String cut);
} }
@@ -73,4 +73,11 @@ public interface IOtaBaSjListService extends IService<OtaBaSjList> {
void importData(MultipartFile file, String cut, StringBuilder errMsg) throws Exception; void importData(MultipartFile file, String cut, StringBuilder errMsg) throws Exception;
void exportData(String otaId, HttpServletResponse response, HttpServletRequest request) throws Exception; void exportData(String otaId, HttpServletResponse response, HttpServletRequest request) throws Exception;
/**
* 处理数据
* @param datas
* @param otaBaSjList
*/
void disposeData(List<OtaBaSjList> datas, OtaBaSjList otaBaSjList);
} }
@@ -221,9 +221,13 @@ public class OtaBaCxAqcsServiceImpl extends ServiceImpl<OtaBaCxAqcsMapper, OtaBa
File upFile = null; File upFile = null;
for (File f : upLoadFiles) { for (File f : upLoadFiles) {
if (f.isDirectory() && f.getName().equals("安全措施")) { if (f.isDirectory() && f.getName().equals("安全措施")) {
attFile = f; for (File f1 : f.listFiles()) {
} else if (f.getName().equals("安全措施.xlsx")) { if (f1.isDirectory() && f1.getName().equals("安全措施-附件")) {
upFile = f; attFile = f1;
} else if (f1.getName().equals("安全措施.xlsx")) {
upFile = f1;
}
}
} }
} }
if (null == upFile || null == attFile) { if (null == upFile || null == attFile) {
@@ -211,8 +211,12 @@ public class OtaBaCxJbxxServiceImpl extends ServiceImpl<OtaBaCxJbxxMapper, OtaBa
public OtaBaCxJbxx parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception { public OtaBaCxJbxx parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception {
File upFile = null; File upFile = null;
for (File f : upLoadFiles) { for (File f : upLoadFiles) {
if (f.getName().equals("车型基本信息.xlsx")) { if (f.isDirectory() && f.getName().equals("车型基本信息")) {
upFile = f; for (File f1 : f.listFiles()) {
if (f1.getName().equals("车型基本信息.xlsx")) {
upFile = f1;
}
}
} }
} }
if (null == upFile) { if (null == upFile) {
@@ -274,8 +274,12 @@ public class OtaBaCxJsfzbacsServiceImpl extends ServiceImpl<OtaBaCxJsfzbacsMappe
public void parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception { public void parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception {
File upFile = null; File upFile = null;
for (File f : upLoadFiles) { for (File f : upLoadFiles) {
if (f.getName().equals("驾驶辅助系统基础备案参数.xlsx")) { if (f.isDirectory() && f.getName().equals("驾驶辅助系统基础备案参数")) {
upFile = f; for (File f1 : f.listFiles()) {
if (f1.getName().equals("驾驶辅助系统基础备案参数.xlsx")) {
upFile = f1;
}
}
} }
} }
if (null == upFile) { if (null == upFile) {
@@ -245,9 +245,13 @@ public class OtaBaCxKsjjsmccsServiceImpl extends ServiceImpl<OtaBaCxKsjjsmccsMap
File upFile = null; File upFile = null;
for (File f : upLoadFiles) { for (File f : upLoadFiles) {
if (f.isDirectory() && f.getName().equals("可在线升级的驾驶辅助功能名称与参数")) { if (f.isDirectory() && f.getName().equals("可在线升级的驾驶辅助功能名称与参数")) {
attFile = f; for (File f1 : f.listFiles()) {
} else if (f.getName().equals("可在线升级的驾驶辅助功能名称与参数.xlsx")) { if (f1.isDirectory() && f1.getName().equals("可在线升级的驾驶辅助功能名称与参数-附件")) {
upFile = f; attFile = f1;
} else if (f1.getName().equals("可在线升级的驾驶辅助功能名称与参数.xlsx")) {
upFile = f1;
}
}
} }
} }
if (null == upFile || null == attFile) { if (null == upFile || null == attFile) {
@@ -316,9 +316,13 @@ public class OtaBaCxKsjxtmccsServiceImpl extends ServiceImpl<OtaBaCxKsjxtmccsMap
File upFile = null; File upFile = null;
for (File f : upLoadFiles) { for (File f : upLoadFiles) {
if (f.isDirectory() && f.getName().equals("可在线升级的系统名称与参数")) { if (f.isDirectory() && f.getName().equals("可在线升级的系统名称与参数")) {
attFile = f; for (File f1 : f.listFiles()) {
} else if (f.getName().equals("可在线升级的系统名称与参数.xlsx")) { if (f1.isDirectory() && f1.getName().equals("可在线升级的系统名称与参数-附件")) {
upFile = f; attFile = f1;
} else if (f1.getName().equals("可在线升级的系统名称与参数.xlsx")) {
upFile = f1;
}
}
} }
} }
if (null == upFile || null == attFile) { if (null == upFile || null == attFile) {
@@ -200,26 +200,26 @@ public class OtaBaCxListServiceImpl extends ServiceImpl<OtaBaCxListMapper, OtaBa
@Override @Override
public void exportData(String otaId, HttpServletResponse response, HttpServletRequest request) throws Exception { public void exportData(String otaId, HttpServletResponse response, HttpServletRequest request) throws Exception {
String cut = "cn"; String cut = "cn";
File template = new File(templatePath + "车型及功能备案导出.zip"); File template = new File(templatePath + "车型及功能备案-导出.zip");
File exportFile = ImportFileUtil.copyZip(ImportFileUtil.createMfileByFile(template), cut, uploadPath); File exportFile = ImportFileUtil.copyZip(ImportFileUtil.createMfileByFile(template), cut, uploadPath);
File jbxxFile = ImportFileUtil.findFile(exportFile, "车型基本信息.xlsx"); File jbxxFile = ImportFileUtil.findFile(exportFile, "车型基本信息.xlsx");
otaBaCxJbxxService.exportData(jbxxFile, otaId, cut); otaBaCxJbxxService.exportData(jbxxFile, otaId, cut);
File sjyqFile = ImportFileUtil.findFile(exportFile, "在线升级要求.xlsx"); File sjyqFile = ImportFileUtil.findFile(exportFile, "在线升级要求.xlsx");
File sjyqAttFile = ImportFileUtil.findFoder(exportFile, "在线升级要求"); File sjyqAttFile = ImportFileUtil.findFoder(exportFile, "在线升级要求-附件");
otaBaCxZxsjyqService.exportData(sjyqFile, sjyqAttFile, otaId, cut); otaBaCxZxsjyqService.exportData(sjyqFile, sjyqAttFile, otaId, cut);
File aqcsFile = ImportFileUtil.findFile(exportFile, "安全措施.xlsx"); File aqcsFile = ImportFileUtil.findFile(exportFile, "安全措施.xlsx");
File aqcsAttFile = ImportFileUtil.findFoder(exportFile, "安全措施"); File aqcsAttFile = ImportFileUtil.findFoder(exportFile, "安全措施-附件");
otaBaCxAqcsService.exportData(aqcsFile, aqcsAttFile, otaId, cut); otaBaCxAqcsService.exportData(aqcsFile, aqcsAttFile, otaId, cut);
File mccsFile = ImportFileUtil.findFile(exportFile, "可在线升级的系统名称与参数.xlsx"); File mccsFile = ImportFileUtil.findFile(exportFile, "可在线升级的系统名称与参数.xlsx");
File mccsAttFile = ImportFileUtil.findFoder(exportFile, "可在线升级的系统名称与参数"); File mccsAttFile = ImportFileUtil.findFoder(exportFile, "可在线升级的系统名称与参数-附件");
otaBaCxKsjxtmccsService.exportData(mccsFile, mccsAttFile, otaId, cut); otaBaCxKsjxtmccsService.exportData(mccsFile, mccsAttFile, otaId, cut);
File jsmccsFile = ImportFileUtil.findFile(exportFile, "可在线升级的驾驶辅助功能名称与参数.xlsx"); File jsmccsFile = ImportFileUtil.findFile(exportFile, "可在线升级的驾驶辅助功能名称与参数.xlsx");
File jsmccsAttFile = ImportFileUtil.findFoder(exportFile, "可在线升级的驾驶辅助功能名称与参数"); File jsmccsAttFile = ImportFileUtil.findFoder(exportFile, "可在线升级的驾驶辅助功能名称与参数-附件");
otaBaCxKsjjsmccsService.exportData(jsmccsFile, jsmccsAttFile, otaId, cut); otaBaCxKsjjsmccsService.exportData(jsmccsFile, jsmccsAttFile, otaId, cut);
File bacsFile = ImportFileUtil.findFile(exportFile, "驾驶辅助系统基础备案参数.xlsx"); File bacsFile = ImportFileUtil.findFile(exportFile, "驾驶辅助系统基础备案参数.xlsx");
@@ -6,6 +6,7 @@ import com.jero.modules.ota.entity.OtaBaCxTxjl;
import com.jero.modules.ota.enums.OtaModuleEnum; import com.jero.modules.ota.enums.OtaModuleEnum;
import com.jero.modules.ota.mapper.OtaBaCxTxjlMapper; import com.jero.modules.ota.mapper.OtaBaCxTxjlMapper;
import com.jero.modules.ota.service.IOtaBaCxTxjlService; import com.jero.modules.ota.service.IOtaBaCxTxjlService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date; import java.util.Date;
@@ -129,4 +130,13 @@ public class OtaBaCxTxjlServiceImpl extends ServiceImpl<OtaBaCxTxjlMapper, OtaBa
List<OtaBaCxTxjl> res = this.list(queryWrapper); List<OtaBaCxTxjl> res = this.list(queryWrapper);
return res; return res;
} }
@Override
public void disposeData(List<OtaBaCxTxjl> datas, String cut) {
if (CollectionUtils.isNotEmpty(datas)) {
datas.forEach(data -> {
data.setModule(OtaModuleEnum.getNameByValue(data.getModule(),cut));
});
}
}
} }
@@ -223,9 +223,13 @@ public class OtaBaCxZxsjyqServiceImpl extends ServiceImpl<OtaBaCxZxsjyqMapper, O
File upFile = null; File upFile = null;
for (File f : upLoadFiles) { for (File f : upLoadFiles) {
if (f.isDirectory() && f.getName().equals("在线升级要求")) { if (f.isDirectory() && f.getName().equals("在线升级要求")) {
attFile = f; for (File f1 : f.listFiles()) {
} else if (f.getName().equals("在线升级要求.xlsx")) { if (f1.isDirectory() && f1.getName().equals("在线升级要求-附件")) {
upFile = f; attFile = f1;
} else if (f1.getName().equals("在线升级要求.xlsx")) {
upFile = f1;
}
}
} }
} }
if (null == upFile || null == attFile) { if (null == upFile || null == attFile) {
@@ -1,13 +1,16 @@
package com.jero.modules.ota.service.impl; package com.jero.modules.ota.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.modules.ota.entity.OtaBaSjList; import com.jero.modules.ota.entity.OtaBaSjList;
import com.jero.modules.ota.entity.OtaBaSjLsjl; import com.jero.modules.ota.entity.OtaBaSjLsjl;
import com.jero.modules.ota.entity.OtaBaSjQtsjxx;
import com.jero.modules.ota.entity.OtaBaSjSjmbcx; import com.jero.modules.ota.entity.OtaBaSjSjmbcx;
import com.jero.modules.ota.mapper.OtaBaSjListMapper; import com.jero.modules.ota.mapper.OtaBaSjListMapper;
import com.jero.modules.ota.service.*; import com.jero.modules.ota.service.*;
import com.jero.modules.ota.utils.ImportFileUtil; import com.jero.modules.ota.utils.ImportFileUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@@ -21,6 +24,7 @@ import java.io.FileOutputStream;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @Description: 升级备案-升级活动备案列表 * @Description: 升级备案-升级活动备案列表
@@ -194,19 +198,19 @@ public class OtaBaSjListServiceImpl extends ServiceImpl<OtaBaSjListMapper, OtaBa
@Override @Override
public void exportData(String otaId, HttpServletResponse response, HttpServletRequest request) throws Exception { public void exportData(String otaId, HttpServletResponse response, HttpServletRequest request) throws Exception {
String cut = "cn"; String cut = "cn";
File template = new File(templatePath + "在线升级活动备案导出.zip"); File template = new File(templatePath + "在线升级活动备案-导出.zip");
File exportFile = ImportFileUtil.copyZip(ImportFileUtil.createMfileByFile(template), cut, uploadPath); File exportFile = ImportFileUtil.copyZip(ImportFileUtil.createMfileByFile(template), cut, uploadPath);
File sjmbcxFile = ImportFileUtil.findFile(exportFile, "升级目标车型.xlsx"); File sjmbcxFile = ImportFileUtil.findFile(exportFile, "升级目标车型.xlsx");
otaBaSjSjmbcxService.exportData(sjmbcxFile, otaId, cut); otaBaSjSjmbcxService.exportData(sjmbcxFile, otaId, cut);
File mbclFile = ImportFileUtil.findFile(exportFile, "本次升级的目标车辆.xlsx"); File mbclFile = ImportFileUtil.findFile(exportFile, "本次升级的目标车辆.xlsx");
File mbclAttFile = ImportFileUtil.findFoder(exportFile, "本次升级的目标车辆"); File mbclAttFile = ImportFileUtil.findFoder(exportFile, "本次升级的目标车辆-附件");
otaBaSjSjmbclService.exportData(mbclFile, mbclAttFile, otaId, cut); otaBaSjSjmbclService.exportData(mbclFile, mbclAttFile, otaId, cut);
File pgFile = ImportFileUtil.findFile(exportFile, "升级影响评估.xlsx"); File pgFile = ImportFileUtil.findFile(exportFile, "升级影响评估.xlsx");
File pgAttFile = ImportFileUtil.findFoder(exportFile, "升级影响评估"); File pgAttFile = ImportFileUtil.findFoder(exportFile, "升级影响评估-附件");
File pgAtt1File = ImportFileUtil.findFoder(pgAttFile, "测试报告"); File pgAtt1File = ImportFileUtil.findFoder(pgAttFile, "测试报告");
File pgAtt2File = ImportFileUtil.findFoder(pgAttFile, "硬件版本号附件"); File pgAtt2File = ImportFileUtil.findFoder(pgAttFile, "硬件版本号附件");
otaBaSjSjyxpgService.exportData(pgFile, pgAtt1File, pgAtt2File, otaId, cut); otaBaSjSjyxpgService.exportData(pgFile, pgAtt1File, pgAtt2File, otaId, cut);
@@ -218,7 +222,7 @@ public class OtaBaSjListServiceImpl extends ServiceImpl<OtaBaSjListMapper, OtaBa
otaBaSjSjfzbhService.exportData(sjfzbhFile, otaId, cut); otaBaSjSjfzbhService.exportData(sjfzbhFile, otaId, cut);
File fsFile = ImportFileUtil.findFile(exportFile, "用户告知内容及方式.xlsx"); File fsFile = ImportFileUtil.findFile(exportFile, "用户告知内容及方式.xlsx");
File fsAttFile = ImportFileUtil.findFoder(exportFile, "用户告知内容及方式"); File fsAttFile = ImportFileUtil.findFoder(exportFile, "用户告知内容及方式-附件");
otaBaSjGgnrfsService.exportData(fsFile, fsAttFile, otaId, cut); otaBaSjGgnrfsService.exportData(fsFile, fsAttFile, otaId, cut);
File qtFile = ImportFileUtil.findFile(exportFile, "其他升级任务信息.xlsx"); File qtFile = ImportFileUtil.findFile(exportFile, "其他升级任务信息.xlsx");
@@ -229,4 +233,31 @@ public class OtaBaSjListServiceImpl extends ServiceImpl<OtaBaSjListMapper, OtaBa
ImportFileUtil.toZip(exportFile.getCanonicalPath(), fos1, true); ImportFileUtil.toZip(exportFile.getCanonicalPath(), fos1, true);
ImportFileUtil.exportTemplate(response, outPath); ImportFileUtil.exportTemplate(response, outPath);
} }
/**
* 处理数据
* @param datas
* @param otaBaSjList
*/
@Override
public void disposeData(List<OtaBaSjList> datas, OtaBaSjList otaBaSjList) {
if(CollectionUtils.isNotEmpty(datas)){
List<String> otaBaSjListIdList = datas.stream().map(OtaBaSjList::getId).distinct().collect(Collectors.toList());
QueryWrapper<OtaBaSjQtsjxx> otaBaSjQtsjxxQueryWrap = new QueryWrapper<>();
otaBaSjQtsjxxQueryWrap.lambda().in(OtaBaSjQtsjxx::getOtaId,otaBaSjListIdList);
List<OtaBaSjQtsjxx> otaBaSjQtsjxxList = this.otaBaSjQtsjxxService.list(otaBaSjQtsjxxQueryWrap);
datas.forEach(data -> {
if (CollectionUtils.isNotEmpty(otaBaSjQtsjxxList)) {
String rwmc = otaBaSjQtsjxxList.stream().filter(otaBaSjQtsjxx -> {
boolean flag = false;
if(StringUtils.equals(otaBaSjQtsjxx.getOtaId(), data.getId())){
flag = true;
}
return flag;
}).map(OtaBaSjQtsjxx::getRwmc).collect(Collectors.joining(","));
data.setRwmc(rwmc);
}
});
}
}
} }
@@ -229,8 +229,12 @@ public class OtaBaSjSjfzbhServiceImpl extends ServiceImpl<OtaBaSjSjfzbhMapper, O
public void parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception { public void parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception {
File upFile = null; File upFile = null;
for (File f : upLoadFiles) { for (File f : upLoadFiles) {
if (f.getName().equals("本次升级的驾驶辅助功能名称与参数变化.xlsx")) { if (f.isDirectory() && f.getName().equals("本次升级的驾驶辅助功能名称与参数变化")) {
upFile = f; for (File f1 : f.listFiles()) {
if (f1.getName().equals("本次升级的驾驶辅助功能名称与参数变化.xlsx")) {
upFile = f1;
}
}
} }
} }
if (null == upFile) { if (null == upFile) {
@@ -184,8 +184,12 @@ public class OtaBaSjSjmbclServiceImpl extends ServiceImpl<OtaBaSjSjmbclMapper, O
public OtaBaSjSjmbcl parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception { public OtaBaSjSjmbcl parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception {
File upFile = null; File upFile = null;
for (File f : upLoadFiles) { for (File f : upLoadFiles) {
if (f.getName().equals("本次升级的目标车辆.xlsx")) { if (f.isDirectory() && f.getName().equals("本次升级的目标车辆")) {
upFile = f; for (File f1 : f.listFiles()) {
if (f1.getName().equals("本次升级的目标车辆.xlsx")) {
upFile = f1;
}
}
} }
} }
if (null == upFile) { if (null == upFile) {
@@ -190,8 +190,12 @@ public class OtaBaSjSjmbcxServiceImpl extends ServiceImpl<OtaBaSjSjmbcxMapper, O
public OtaBaSjSjmbcx parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception { public OtaBaSjSjmbcx parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception {
File upFile = null; File upFile = null;
for (File f : upLoadFiles) { for (File f : upLoadFiles) {
if (f.getName().equals("升级目标车型.xlsx")) { if (f.isDirectory() && f.getName().equals("升级目标车型")) {
upFile = f; for (File f1 : f.listFiles()) {
if (f1.getName().equals("升级目标车型.xlsx")) {
upFile = f1;
}
}
} }
} }
if (null == upFile) { if (null == upFile) {
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.ota.entity.*; import com.jero.modules.ota.entity.*;
import com.jero.modules.ota.enums.OtaModuleEnum; import com.jero.modules.ota.enums.OtaModuleEnum;
@@ -13,21 +14,29 @@ import com.jero.modules.ota.mapper.OtaBaSjSjxtbhMapper;
import com.jero.modules.ota.service.IOtaBaCxTxjlService; import com.jero.modules.ota.service.IOtaBaCxTxjlService;
import com.jero.modules.ota.service.IOtaBaSjGnxtwhService; import com.jero.modules.ota.service.IOtaBaSjGnxtwhService;
import com.jero.modules.ota.service.IOtaBaSjSjxtbhService; import com.jero.modules.ota.service.IOtaBaSjSjxtbhService;
import com.jero.modules.ota.service.IOtaBaSjSjyxpgService;
import com.jero.modules.ota.utils.ComparisonUtil; import com.jero.modules.ota.utils.ComparisonUtil;
import com.jero.modules.ota.utils.ImportFileUtil; 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.service.ISysDictService; import com.jero.modules.system.service.ISysDictService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -61,6 +70,9 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl<OtaBaSjSjxtbhMapper, O
@Value(value = "${ota.uploadPath}") @Value(value = "${ota.uploadPath}")
private String uploadPath; private String uploadPath;
@Autowired
private IOtaBaSjSjyxpgService otaBaSjSjyxpgService;
/** /**
* 保存 * 保存
*/ */
@@ -210,8 +222,12 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl<OtaBaSjSjxtbhMapper, O
public void parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception { public void parseFileList(List<File> upLoadFiles, String otaId, String cut, StringBuilder errMsg) throws Exception {
File upFile = null; File upFile = null;
for (File f : upLoadFiles) { for (File f : upLoadFiles) {
if (f.getName().equals("本次升级的系统名称与参数变化.xlsx")) { if (f.isDirectory() && f.getName().equals("本次升级的系统名称与参数变化")) {
upFile = f; for (File f1 : f.listFiles()) {
if (f1.getName().equals("本次升级的系统名称与参数变化.xlsx")) {
upFile = f1;
}
}
} }
} }
if (null == upFile) { if (null == upFile) {
@@ -236,6 +252,21 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl<OtaBaSjSjxtbhMapper, O
Workbook wb = ImportFileUtil.readExcel(upFile); Workbook wb = ImportFileUtil.readExcel(upFile);
Sheet s = wb.getSheetAt(0); Sheet s = wb.getSheetAt(0);
int rows = s.getPhysicalNumberOfRows(); int rows = s.getPhysicalNumberOfRows();
List<OtaBaSjSjxtbh> otaBaSjSjxtbh = this.getByOtaId(otaId);
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");
});
int tempFileIndex = 1;
String tempFilePath = uploadPath + "tempFile" + "/" + otaId;
File tempFile = new File(tempFilePath);
if(!tempFile.exists()){
tempFile.mkdirs();
}
List<String> tempFileNames = new ArrayList<>();
for (int i = 4; i < rows; i++) { for (int i = 4; i < rows; i++) {
OtaBaSjSjxtbh xtbh = new OtaBaSjSjxtbh(); OtaBaSjSjxtbh xtbh = new OtaBaSjSjxtbh();
Row row = s.getRow(i); Row row = s.getRow(i);
@@ -253,7 +284,17 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl<OtaBaSjSjxtbhMapper, O
cell = row.getCell(1); cell = row.getCell(1);
xtbh.setSjhbgcs(ImportFileUtil.getCellValue(cell, wb)); xtbh.setSjhbgcs(ImportFileUtil.getCellValue(cell, wb));
cell = row.getCell(3); cell = row.getCell(3);
xtbh.setYjbb(ImportFileUtil.getCellValue(cell, wb)); String yjbb = ImportFileUtil.getCellValue(cell, wb);
if(yjbb.length() > 50){
String fileName = "附件" + tempFileIndex + ".docx";
String tempFileUrl = WordUtil.createWord(tempFilePath, fileName, yjbb);
if (StringUtils.isNotEmpty(tempFileUrl)) {
tempFileNames.add(fileName);
}
yjbb = "见附件" + tempFileIndex;
tempFileIndex ++;
}
xtbh.setYjbb(yjbb);
cell = row.getCell(4); cell = row.getCell(4);
xtbh.setSjqrjbb(ImportFileUtil.getCellValue(cell, wb)); xtbh.setSjqrjbb(ImportFileUtil.getCellValue(cell, wb));
cell = row.getCell(5); cell = row.getCell(5);
@@ -279,14 +320,75 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl<OtaBaSjSjxtbhMapper, O
list.add(xtbh); list.add(xtbh);
} }
if(CollectionUtils.isNotEmpty(tempFileNames)){
List<String> newClfjList = new ArrayList<>();
List<String> oldClfjList = new ArrayList<>();
OtaBaSjSjyxpg otaBaSjSjyxpg = this.otaBaSjSjyxpgService.queryByOtaId(otaId, null);
if(StringUtils.isNotEmpty(otaBaSjSjyxpg.getClfj())){
List<OSSFile> clfjFileList = this.ossFileService.getFileInfos(otaBaSjSjyxpg.getClfj());
oldClfjList = clfjFileList.stream().filter(clfjFile -> {
boolean flag = true;
for (String oldTempFileName : oldTempFileNameList) {
if (StringUtils.equals(clfjFile.getFileName(), oldTempFileName)) {
flag = false;
break;
}
}
return flag;
}).map(OSSFile::getId).collect(Collectors.toList());
}
// 读取临时文件,上传至服务器。
for (String tempFileName : tempFileNames) {
try {
FileInputStream input = new FileInputStream(tempFilePath + "/" + tempFileName);
MultipartFile multipartFile = new MockMultipartFile(tempFileName, tempFileName, "text/plain", input);
OSSFile ossFile = this.ossFileService.uploadLocalOfCos(multipartFile, "", null,null);
if (ObjectUtils.isNotEmpty(ossFile)) {
newClfjList.add(ossFile.getId());
}
} catch (IOException e) {
e.printStackTrace();
}
}
if(ObjectUtils.isNotEmpty(otaBaSjSjyxpg)){
newClfjList.addAll(oldClfjList);
otaBaSjSjyxpg.setClfj(StringUtils.join(newClfjList.stream().distinct().collect(Collectors.toList()), ","));
this.otaBaSjSjyxpgService.updateById(otaBaSjSjyxpg);
}
}
FileUnZip.deleteDir(tempFile);
return list; return list;
} }
@Override @Override
public void exportData(File file, String otaId, String cut) throws Exception { public void exportData(File file, String otaId, String cut) throws Exception {
Workbook wb = ImportFileUtil.readExcel(file);
//系统中维护的系统功能与电子控制器维护关系表
List<OtaBaSjGnxtwh> whList = otaBaSjGnxtwhService.list();
if (ObjectUtils.isNotEmpty(whList)) {
Sheet s1 = wb.getSheetAt(1);
CellStyle style = wb.createCellStyle();
style.setBorderTop(BorderStyle.THIN);
style.setBorderBottom(BorderStyle.THIN);
style.setBorderLeft(BorderStyle.THIN);
style.setBorderRight(BorderStyle.THIN);
Row row1;
Cell cell1;
int start1 = 1;
for (OtaBaSjGnxtwh wh : whList) {
row1 = s1.createRow(start1);
cell1 = row1.createCell(0);
cell1.setCellStyle(style);
cell1.setCellValue(wh.getGnxt());
cell1 = row1.createCell(1);
cell1.setCellStyle(style);
cell1.setCellValue(wh.getDykzq());
start1++;
}
}
//本次升级的系统名称与参数变化
List<OtaBaSjSjxtbh> bhList = this.getByOtaId(otaId); List<OtaBaSjSjxtbh> bhList = this.getByOtaId(otaId);
if (ObjectUtils.isNotEmpty(bhList)) { if (ObjectUtils.isNotEmpty(bhList)) {
Workbook wb = ImportFileUtil.readExcel(file);
Sheet s = wb.getSheetAt(0); Sheet s = wb.getSheetAt(0);
CellStyle style = wb.createCellStyle(); CellStyle style = wb.createCellStyle();
style.setBorderTop(BorderStyle.THIN); style.setBorderTop(BorderStyle.THIN);
@@ -336,8 +438,9 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl<OtaBaSjSjxtbhMapper, O
cell.setCellValue(ImportFileUtil.getCellValueYesOrNo(bh.getSfcfsj())); cell.setCellValue(ImportFileUtil.getCellValueYesOrNo(bh.getSfcfsj()));
start++; start++;
} }
wb.write(new FileOutputStream(file));
wb.close();
} }
wb.write(new FileOutputStream(file));
wb.close();
} }
} }
@@ -164,6 +164,7 @@ public class OtaBaSjSjyxpgServiceImpl extends ServiceImpl<OtaBaSjSjyxpgMapper, O
res.setZdjsxg(2); res.setZdjsxg(2);
res.setZxsj(2); res.setZxsj(2);
res.setAqjz("2"); res.setAqjz("2");
res.setAqjzWbk("车辆保持在功能受限制状态,此状态下车辆无法行驶,保证其处于安全状态");
res.setSfyxaq(2); res.setSfyxaq(2);
res.setYhqr(1); res.setYhqr(1);
res.setSjbcs("3,4"); res.setSjbcs("3,4");
@@ -228,6 +229,7 @@ public class OtaBaSjSjyxpgServiceImpl extends ServiceImpl<OtaBaSjSjyxpgMapper, O
sjyxpg.setZdjsxg(1); sjyxpg.setZdjsxg(1);
sjyxpg.setZxsj(2); sjyxpg.setZxsj(2);
sjyxpg.setAqjz("2"); sjyxpg.setAqjz("2");
sjyxpg.setAqjzWbk("车辆保持在功能受限制状态,此状态下车辆无法行驶,保证其处于安全状态");
sjyxpg.setSfyxaq(2); sjyxpg.setSfyxaq(2);
sjyxpg.setYhqr(1); sjyxpg.setYhqr(1);
sjyxpg.setSjbcs("3,4"); sjyxpg.setSjbcs("3,4");
@@ -266,11 +268,14 @@ public class OtaBaSjSjyxpgServiceImpl extends ServiceImpl<OtaBaSjSjyxpgMapper, O
File attFile1 = null; File attFile1 = null;
File attFile2 = null; File attFile2 = null;
for (File f : upLoadFiles) { for (File f : upLoadFiles) {
if (f.getName().equals("升级影响评估.docx")) {
upFile = f;
}
if (f.isDirectory() && f.getName().equals("升级影响评估")) { if (f.isDirectory() && f.getName().equals("升级影响评估")) {
attFile = f; for (File f1 : f.listFiles()) {
if (f1.isDirectory() && f1.getName().equals("升级影响评估")) {
attFile = f1;
} else if (f1.getName().equals("升级影响评估.docx")) {
upFile = f1;
}
}
} }
} }
@@ -332,10 +337,14 @@ public class OtaBaSjSjyxpgServiceImpl extends ServiceImpl<OtaBaSjSjyxpgMapper, O
cell.setCellValue(ImportFileUtil.getCellValueYesOrNoInt(pg.getJrxxg())); cell.setCellValue(ImportFileUtil.getCellValueYesOrNoInt(pg.getJrxxg()));
row = s.getRow(6); row = s.getRow(6);
cell = row.getCell(1); cell = row.getCell(1);
cell.setCellValue(ComparisonUtil.queryDictTextByKey("conditions_upgrades", pg.getZxsj().toString(), sysDictService)); cell.setCellValue(ComparisonUtil.queryDictTextByKey("conditions_upgrades", String.valueOf(pg.getZxsj()), sysDictService));
row = s.getRow(7); row = s.getRow(7);
cell = row.getCell(1); cell = row.getCell(1);
cell.setCellValue(ComparisonUtil.queryDictTextByKey("upgrade_failed", pg.getAqjz(), sysDictService)); if (StringUtils.isNotEmpty(pg.getAqjzWbk())) {
cell.setCellValue(ComparisonUtil.queryDictTextByKey("upgrade_failed", pg.getAqjz(), sysDictService) + "; " + pg.getAqjzWbk());
} else {
cell.setCellValue(ComparisonUtil.queryDictTextByKey("upgrade_failed", pg.getAqjz(), sysDictService));
}
row = s.getRow(8); row = s.getRow(8);
cell = row.getCell(1); cell = row.getCell(1);
cell.setCellValue(ImportFileUtil.getCellValueYesOrNoInt(pg.getSfyxaq())); cell.setCellValue(ImportFileUtil.getCellValueYesOrNoInt(pg.getSfyxaq()));
@@ -364,7 +373,7 @@ public class OtaBaSjSjyxpgServiceImpl extends ServiceImpl<OtaBaSjSjyxpgMapper, O
} }
} }
} }
String attStr2 = pg.getBgfj(); String attStr2 = pg.getClfj();
if (StringUtils.isNotEmpty(attStr2)) { if (StringUtils.isNotEmpty(attStr2)) {
String[] strs = attStr2.split(","); String[] strs = attStr2.split(",");
for (String str : strs) { for (String str : strs) {
@@ -91,7 +91,7 @@ public class ComparisonUtil<T> {
String oldStr = parseDictText(ote, field, oldClazz, sysDictService); String oldStr = parseDictText(ote, field, oldClazz, sysDictService);
if (!newStr.equals(oldStr)) { if (!newStr.equals(oldStr)) {
String content = "将" + title + "的'" + oldStr + "'改为'" + newStr + "'"; String content = "将" + title + "的'" + oldStr + "'改为'" + newStr + "'";
resList.add(new OtaBaCxTxjl(otaId, otaModuleEnum.getName(), content)); resList.add(new OtaBaCxTxjl(otaId, otaModuleEnum.getValue(), content));
} }
} }
return resList; return resList;
@@ -262,6 +262,7 @@ public class ImportFileUtil {
} }
public static File findFile(File file, String fileName) throws Exception { public static File findFile(File file, String fileName) throws Exception {
File resFile = null;
// 获取此地址中的所有文件以及文件夹(File[] list) // 获取此地址中的所有文件以及文件夹(File[] list)
File[] listFiles = file.listFiles();// 获取此地址中的所有文件以及文件夹(File[] list) File[] listFiles = file.listFiles();// 获取此地址中的所有文件以及文件夹(File[] list)
for (File file1 : listFiles) {// 遍历数组 for (File file1 : listFiles) {// 遍历数组
@@ -269,14 +270,21 @@ public class ImportFileUtil {
if (!file1.isDirectory()) { if (!file1.isDirectory()) {
String name = file1.getName(); String name = file1.getName();
if (name.equals(fileName)) { if (name.equals(fileName)) {
return file1; resFile = file1;
break;
}
} else {
resFile = findFile(file1, fileName);
if (resFile != null) {
break;
} }
} }
} }
return null; return resFile;
} }
public static File findFoder(File file, String fileName) throws Exception { public static File findFoder(File file, String fileName) throws Exception {
File resFile = null;
// 获取此地址中的所有文件以及文件夹(File[] list) // 获取此地址中的所有文件以及文件夹(File[] list)
File[] listFiles = file.listFiles();// 获取此地址中的所有文件以及文件夹(File[] list) File[] listFiles = file.listFiles();// 获取此地址中的所有文件以及文件夹(File[] list)
for (File file1 : listFiles) {// 遍历数组 for (File file1 : listFiles) {// 遍历数组
@@ -285,10 +293,15 @@ public class ImportFileUtil {
String name = file1.getName(); String name = file1.getName();
if (name.equals(fileName)) { if (name.equals(fileName)) {
return file1; return file1;
} else {
resFile = findFoder(file1, fileName);
if (resFile != null) {
break;
}
} }
} }
} }
return null; return resFile;
} }
public static File findFile(List<File> file, String fileName) throws Exception { public static File findFile(List<File> file, String fileName) throws Exception {
@@ -1,6 +1,9 @@
package com.jero.modules.project.util; package com.jero.modules.project.util;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.docx4j.Docx4J; import org.docx4j.Docx4J;
import org.docx4j.TraversalUtil; import org.docx4j.TraversalUtil;
import org.docx4j.XmlUtils; import org.docx4j.XmlUtils;
@@ -22,10 +25,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.util.FileCopyUtils; import org.springframework.util.FileCopyUtils;
import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBElement;
import java.io.File; import java.io.*;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@@ -632,5 +632,33 @@ public class WordUtil {
addImageInlineAndTextToPackage(wordMLPackage, bytes, "这是图3,name.png,看图片的嵌入方式"); addImageInlineAndTextToPackage(wordMLPackage, bytes, "这是图3,name.png,看图片的嵌入方式");
wordMLPackage.save(new File("d:/opt/测试" + System.currentTimeMillis() + ".docx")); wordMLPackage.save(new File("d:/opt/测试" + System.currentTimeMillis() + ".docx"));
} }
/**
* 创建word文件。
* @param path
* @param fileName
* @param content
* @return
*/
public static String createWord(String path,String fileName,String content){
String result = "";
try {
result = path + "/" +fileName;
XWPFDocument document = new XWPFDocument();
// 段落
XWPFParagraph paragraph = document.createParagraph();
// 添加文本
XWPFRun run = paragraph.createRun();
run.setText(content);
FileOutputStream out = new FileOutputStream(new File(result));
document.write(out);
out.close();
log.info(fileName + " Word文件创建成功!");
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
} }
+1
View File
@@ -1834,4 +1834,5 @@ module.exports = {
deliveryTime:'Delivery Time', deliveryTime:'Delivery Time',
expectedDeliveryTime:'Expected Delivery Time', expectedDeliveryTime:'Expected Delivery Time',
changeAuthor:'Change Author', changeAuthor:'Change Author',
requireddataisnull:'Required data is null',
} }
+1
View File
@@ -1935,4 +1935,5 @@ module.exports = {
deliveryTime:'交付时间', deliveryTime:'交付时间',
expectedDeliveryTime:'预计交付时间', expectedDeliveryTime:'预计交付时间',
changeAuthor:'更改作者', changeAuthor:'更改作者',
requireddataisnull:'必填数据为空',
} }
@@ -182,7 +182,7 @@ export default {
methods: { methods: {
// 模板下载 // 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaSjSjfzbh/exportTemplate', '本次升级的驾驶辅助功能与参数变化' + '.zip', {}) downloadFile('ota/otaBaSjSjfzbh/exportTemplate', '升级活动备案-本次升级的驾驶辅助功能与参数变化' + '.zip', {})
}, },
getList() { getList() {
let queryParam = JSON.parse(JSON.stringify(this.queryParam)) let queryParam = JSON.parse(JSON.stringify(this.queryParam))
@@ -127,7 +127,7 @@ export default {
methods: { methods: {
// 模板下载 // 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaSjSjmbcl/exportTemplate', '本次升级目标车辆' + '.zip', {}) downloadFile('ota/otaBaSjSjmbcl/exportTemplate', '升级活动备案-本次升级目标车辆' + '.zip', {})
}, },
getData(){ getData(){
let otaIdT=localStorage.getItem('otaIdT') let otaIdT=localStorage.getItem('otaIdT')
@@ -239,7 +239,7 @@ export default {
methods: { methods: {
// 模板下载 // 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaSjSjxtbh/exportTemplate', '本次升级的系统名称与参数变化' + '.zip', {}) downloadFile('ota/otaBaSjSjxtbh/exportTemplate', '升级活动备案-本次升级的系统名称与参数变化' + '.zip', {})
}, },
clickButtonToUpload(item) { clickButtonToUpload(item) {
this.$refs.uploadFile.perentHandleFunc() this.$refs.uploadFile.perentHandleFunc()
@@ -119,8 +119,8 @@
</div> </div>
<div v-if='flag'> <div v-if='flag'>
<a-input class="box-input2" <a-input class="box-input2"
v-model="form.wbk" v-model="form.aqjzWbk"
:title="form.wbk ? form.wbk : $t('PleaseEnter')" :title="form.aqjzWbk ? form.aqjzWbk : $t('PleaseEnter')"
:placeholder="$t('PleaseEnter')"></a-input> :placeholder="$t('PleaseEnter')"></a-input>
</div> </div>
</td> </td>
@@ -344,7 +344,7 @@ this.$forceUpdate()
}, },
// 模板下载 // 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaSjSjyxpg/exportTemplate', '升级影响评估' + '.zip', {}) downloadFile('ota/otaBaSjSjyxpg/exportTemplate', '升级活动备案-升级影响评估' + '.zip', {})
}, },
clickButtonToUpload(item) { clickButtonToUpload(item) {
this.$refs.uploadFile.perentHandleFunc() this.$refs.uploadFile.perentHandleFunc()
@@ -426,8 +426,17 @@ this.$forceUpdate()
changeQuery(val) { changeQuery(val) {
if(val.indexOf('将车辆置于安全状态') != -1 || val.indexOf('Put the vehicle in a safe position') != -1){ if(val.indexOf('将车辆置于安全状态') != -1 || val.indexOf('Put the vehicle in a safe position') != -1){
this.flag = true 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{ }else{
this.flag = false this.flag = false
this.form.aqjzWbk = ''
} }
}, },
} }
@@ -216,7 +216,7 @@ export default {
methods: { methods: {
// 模板下载 // 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaSjSjmbcx/exportTemplate', '升级目标车型' + '.zip', {}) downloadFile('ota/otaBaSjSjmbcx/exportTemplate', '升级活动备案-升级目标车型' + '.zip', {})
}, },
getData(item) { getData(item) {
let otaIdT = localStorage.getItem('otaIdT') let otaIdT = localStorage.getItem('otaIdT')
@@ -296,6 +296,10 @@ export default {
} }
}) })
}else{
// let otaflag = 3
this.$message.warning(this.$t('requireddataisnull'))
// localStorage.setItem('otaflag',otaflag)
} }
// else { // else {
// this.form.bapc = undefined // this.form.bapc = undefined
@@ -228,7 +228,7 @@ export default {
}, },
methods: {// 模板下载 methods: {// 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaSjGgnrfs/exportTemplate', '用户告知内容及方式' + '.zip', {}) downloadFile('ota/otaBaSjGgnrfs/exportTemplate', '升级活动备案-用户告知内容及方式' + '.zip', {})
}, },
/** 上传文件的回调 */ /** 上传文件的回调 */
uploadSuccess(data) { uploadSuccess(data) {
@@ -228,7 +228,16 @@ export default {
} else if(this.oldName == this.$t('informationaboutotherupgradetasks')){ } else if(this.oldName == this.$t('informationaboutotherupgradetasks')){
this.$refs.otherRef.save() this.$refs.otherRef.save()
} }
this.oldName = tab setTimeout(()=>{
let otaflag = localStorage.getItem('otaflag')
if(otaflag){
console.log(otaflag)
this.tabActive = this.$t('upgradetargetmodel')
this.oldName = this.$t('upgradetargetmodel')
}
this.oldName = tab
},1000)
localStorage.removeItem('otaflag')
}, },
handleToggleSearch() { handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus this.toggleSearchStatus = !this.toggleSearchStatus
@@ -20,7 +20,7 @@
</div> </div>
<a-form-model-item class="itemModel" prop="dutyTerritory"> <a-form-model-item class="itemModel" prop="dutyTerritory">
<a-select :disabled="disabled" class="box-input" v-model="form.cxmb" allowClear :placeholder="$t('PleaseSelect')" @change="changeId"> <a-select :disabled="disabled" class="box-input" v-model="form.cxmb" allowClear :placeholder="$t('PleaseSelect')" @change="changeId">
<a-select-option v-for="(item , key ) in selectList" :key="key" :value="item.id" > <a-select-option v-for="(item , key ) in selectList" :key="key" :value="item.id" >
{{ item.value }} {{ item.value }}
</a-select-option> </a-select-option>
@@ -33,15 +33,15 @@
<div class="title-text-add"> <div class="title-text-add">
<span class="title-text-text" :title="$t('theNameOfFirm')">{{$t('theNameOfFirm')}}</span> <span class="title-text-text" :title="$t('theNameOfFirm')">{{$t('theNameOfFirm')}}</span>
</div> </div>
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel">
<a-input <a-input
:max-length="50" :max-length="50"
class="box-input" class="box-input"
:placeholder="$t('pleaseEnter')" :placeholder="$t('pleaseEnter')"
:title='form.qymc' :title='form.qymc'
disabled disabled
v-model="form.qymc"> v-model="form.qymc">
</a-input> </a-input>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -51,15 +51,15 @@
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" :title="$t('registrationnumber')">{{$t('registrationnumber')}}</span> <span class="title-text-text" :title="$t('registrationnumber')">{{$t('registrationnumber')}}</span>
</div> </div>
<a-form-model-item class="itemModel" prop="djbh"> <a-form-model-item class="itemModel" prop="djbh">
<a-input <a-input
:max-length="50" :max-length="50"
:disabled="disabled" :disabled="disabled"
:title='form.djbh' :title='form.djbh'
class="box-input" class="box-input"
:placeholder="$t('pleaseEnter')" :placeholder="$t('pleaseEnter')"
v-model.trim="form.djbh"> v-model.trim="form.djbh">
</a-input> </a-input>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -88,13 +88,13 @@
</div> </div>
<a-form-model-item class="itemModel" prop="dutyTerritory"> <a-form-model-item class="itemModel" prop="dutyTerritory">
<a-input <a-input
:max-length="500" :max-length="500"
:disabled="disabled" :disabled="disabled"
:title='form.ggpc' :title='form.ggpc'
class="box-input" class="box-input"
:placeholder="$t('pleaseEnter')" :placeholder="$t('pleaseEnter')"
v-model="form.ggpc"> v-model="form.ggpc">
</a-input> </a-input>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -105,13 +105,13 @@
</div> </div>
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel">
<a-input <a-input
:max-length="50" :max-length="50"
:disabled="disabled" :disabled="disabled"
:title='form.cpsb' :title='form.cpsb'
class="box-input" class="box-input"
:placeholder="$t('pleaseEnter')" :placeholder="$t('pleaseEnter')"
v-model="form.cpsb"> v-model="form.cpsb">
</a-input> </a-input>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -122,13 +122,13 @@
</div> </div>
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel">
<a-input <a-input
:max-length="50" :max-length="50"
:disabled="disabled" :disabled="disabled"
:title='form.cpmc' :title='form.cpmc'
class="box-input" class="box-input"
:placeholder="$t('pleaseEnter')" :placeholder="$t('pleaseEnter')"
v-model="form.cpmc"> v-model="form.cpmc">
</a-input> </a-input>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -140,13 +140,13 @@
</div> </div>
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel">
<a-input <a-input
:max-length="50" :max-length="50"
:disabled="disabled" :disabled="disabled"
:title='form.cpxh' :title='form.cpxh'
class="box-input" class="box-input"
:placeholder="$t('pleaseEnter')" :placeholder="$t('pleaseEnter')"
v-model="form.cpxh"> v-model="form.cpxh">
</a-input> </a-input>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -155,44 +155,44 @@
<div class="title-text-add"> <div class="title-text-add">
<span class="title-text-text plus3" :title="$t('Vehicledynamictype')">{{$t('Vehicledynamictype')}}</span> <span class="title-text-text plus3" :title="$t('Vehicledynamictype')">{{$t('Vehicledynamictype')}}</span>
</div> </div>
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel">
<div style="display:flex;flex-wrap: nowrap;width: 100%;"> <div style="display:flex;flex-wrap: nowrap;width: 100%;">
<div style="width: 90%;margin-right: 20px;"> <div style="width: 90%;margin-right: 20px;">
<!-- <a-select class="box-input" style="width: 100%;" v-model="form.dllx1" allowClear :disabled="disabled" :placeholder="$t('PleaseSelect')" @change="changeSelect($event,target)">--> <!-- <a-select class="box-input" style="width: 100%;" v-model="form.dllx1" allowClear :disabled="disabled" :placeholder="$t('PleaseSelect')" @change="changeSelect($event,target)">-->
<!-- <a-select-option v-for="(item, key) in projectNameList1"--> <!-- <a-select-option v-for="(item, key) in projectNameList1"-->
<!-- :key="key"--> <!-- :key="key"-->
<!-- :value="item">--> <!-- :value="item">-->
<!-- {{ item }}--> <!-- {{ item }}-->
<!-- </a-select-option>--> <!-- </a-select-option>-->
<!-- </a-select>--> <!-- </a-select>-->
<j-dict-select-tag class="box-input" <j-dict-select-tag class="box-input"
:disabled="disabled" :disabled="disabled"
:dictCode="'vehicle_dynamic_type'" :dictCode="'vehicle_dynamic_type'"
:placeholder="$t('PleaseSelect')" :placeholder="$t('PleaseSelect')"
:type="'select'" :type="'select'"
@input="changeSelect(form.dllx1)" @input="changeSelect(form.dllx1)"
:triggerChange="false" :triggerChange="false"
v-model="form.dllx1"/> v-model="form.dllx1"/>
</div> </div>
<div style="width: 100%;"> <div style="width: 100%;">
<a-select v-model="form.dllx2" class="box-input" allowClear :disabled="disabled" :placeholder="$t('PleaseSelect')" @change="update"> <a-select v-model="form.dllx2" class="box-input" allowClear :disabled="disabled" :placeholder="$t('PleaseSelect')" @change="update">
<a-select-option v-for="(item, key) in projectNameList2" <a-select-option v-for="(item, key) in projectNameList2"
:key="item.value" :key="item.value"
:value="item.value"> :value="item.value">
{{ item.text }} {{ item.text }}
</a-select-option> </a-select-option>
</a-select> </a-select>
<!-- <j-dict-select-tag class="box-input"--> <!-- <j-dict-select-tag class="box-input"-->
<!-- :disabled="disabled"--> <!-- :disabled="disabled"-->
<!-- :dictCode="dictCodedllx"--> <!-- :dictCode="dictCodedllx"-->
<!-- :placeholder="$t('PleaseSelect')"--> <!-- :placeholder="$t('PleaseSelect')"-->
<!-- :type="'select'"--> <!-- :type="'select'"-->
<!-- :triggerChange="false"--> <!-- :triggerChange="false"-->
<!-- v-model="form.dllx2"/>--> <!-- v-model="form.dllx2"/>-->
</div>
</div> </div>
</div> </a-form-model-item>
</a-form-model-item>
</div> </div>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@@ -202,12 +202,12 @@
</div> </div>
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel">
<j-multi-select-tag class="box-input" <j-multi-select-tag class="box-input"
:disabled="disabled" :disabled="disabled"
:dictCode="'communication_terminal'" :dictCode="'communication_terminal'"
:placeholder="$t('PleaseSelect')" :placeholder="$t('PleaseSelect')"
:type="'select'" :type="'select'"
:triggerChange="false" :triggerChange="false"
v-model="form.txzd"/> v-model="form.txzd"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -218,11 +218,11 @@
</div> </div>
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel">
<a-textarea <a-textarea
:max-length="500" :max-length="500"
:placeholder="$t('pleaseStateTheDistribution')" :placeholder="$t('pleaseStateTheDistribution')"
:rows="4" :rows="4"
v-model="form.cdotasj" v-model="form.cdotasj"
/> />
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -237,318 +237,323 @@
</template> </template>
<script> <script>
import { getAction, postAction, deleteAction,downloadFile } from '@/api/manage' import { getAction, postAction, deleteAction,downloadFile } from '@/api/manage'
import ImportFile from '@/components/ImportFileData/index' import ImportFile from '@/components/ImportFileData/index'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
export default { export default {
name: 'basicInformation', name: 'basicInformation',
components:{ components:{
ImportFile ImportFile
}, },
// props:['otaId'], // props:['otaId'],
data() { data() {
return { return {
confirmLoading: false, confirmLoading: false,
disabled: false, disabled: false,
formInline:{}, formInline:{},
projectNameList:[], projectNameList:[],
formRules:[], formRules:[],
flag:'', flag:'',
dictCodedllx:'', dictCodedllx:'',
url: { url: {
exportData: '/ota/otaBaCxJbxx/exportData', exportData: '/ota/otaBaCxJbxx/exportData',
importZipUrl: '/ota/otaBaCxJbxx/importData?otaId=' + localStorage.getItem('otaId'),//导入 importZipUrl: '/ota/otaBaCxJbxx/importData?otaId=' + localStorage.getItem('otaId'),//导入
}, },
form:{ form:{
cxmb:undefined, cxmb:undefined,
txzd:'', txzd:'',
djbh:'', djbh:'',
qymc:'安徽江淮汽车集团股份有限公司', qymc:'安徽江淮汽车集团股份有限公司',
cplb:undefined, cplb:undefined,
cpsb:'', cpsb:'',
ggpc:'', ggpc:'',
cpmc:'', cpmc:'',
cpxh:'', cpxh:'',
dllx1:undefined, dllx1:undefined,
dllx2:undefined, dllx2:undefined,
cdotasj:'', cdotasj:'',
}, },
projectNameList1:['传统动力汽车','节能汽车','新能源汽车','其他'], projectNameList1:['传统动力汽车','节能汽车','新能源汽车','其他'],
projectNameList2:[], projectNameList2:[],
selectList:[], selectList:[],
otaId:'', otaId:'',
rules:{ rules:{
djbh:[ djbh:[
{ {
required: true, required: true,
message:this.$t('registrationnumber')+this.$t('cannotEmpty'), message:this.$t('registrationnumber')+this.$t('cannotEmpty'),
trigger:'blur' trigger:'blur'
} }
] ]
}
} }
}, }
mounted() { },
this.$forceUpdate() mounted() {
this.getSelect() this.$forceUpdate()
this.getData() this.getSelect()
}, this.getData()
methods: { },
changeId(value,option){ methods: {
localStorage.removeItem('otaId') changeId(value,option){
localStorage.removeItem('otaIdT') localStorage.removeItem('otaId')
localStorage.setItem('otaIdT',value) localStorage.removeItem('otaIdT')
localStorage.setItem('otaIdT',value)
this.getData('qiehuan') this.getData('qiehuan')
}, },
// 模板下载 // 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaCxJbxx/exportTemplate', '车型基本信息' + '.zip', {}) downloadFile('ota/otaBaCxJbxx/exportTemplate', '车型及功能备案-车型基本信息' + '.zip', {})
}, },
getSelect(){ getSelect(){
getAction('/ota/otaBaCxList/list').then(res=>{ getAction('/ota/otaBaCxList/list').then(res=>{
if(res.code==200){ if(res.code==200){
this.selectList=[] this.selectList=[]
res.result.forEach(item=>{ res.result.forEach(item=>{
let obj={} let obj={}
obj.id=item.id obj.id=item.id
if(item.cpmc==null){ if(item.cpmc==null){
item.cpmc='' item.cpmc=''
} }
if(item.cpxh==null){ if(item.cpxh==null){
item.cpxh='' item.cpxh=''
} }
obj.value=item.cpdjbh+'-'+item.ggpc+'-'+item.cpxh obj.value=item.cpdjbh+'-'+item.ggpc+'-'+item.cpxh
this.selectList.push(obj) this.selectList.push(obj)
}) })
}
})
},
getData(item){
let otaIdT=localStorage.getItem('otaIdT')
if(otaIdT==null){
otaIdT=''
} }
let otaId=localStorage.getItem('otaId') })
if(otaId==null){ },
otaId='' getData(item){
} let otaIdT=localStorage.getItem('otaIdT')
getAction('/ota/otaBaCxJbxx/queryByOtaId',{otaIdT:otaIdT,otaId:otaId}).then(res=>{ if(otaIdT==null){
if(res.code == 200){ otaIdT=''
this.form.qymc=res.result.qymc }
this.form.djbh=res.result.djbh let otaId=localStorage.getItem('otaId')
this.form.cplb=res.result.cplb if(otaId==null){
this.form.ggpc=res.result.ggpc otaId=''
this.form.cpsb=res.result.cpsb }
this.form.cpmc=res.result.cpmc getAction('/ota/otaBaCxJbxx/queryByOtaId',{otaIdT:otaIdT,otaId:otaId}).then(res=>{
this.form.cpxh=res.result.cpxh if(res.code == 200){
this.form.txzd=res.result.txzd this.form.qymc=res.result.qymc
this.form.txzd=res.result.txzd this.form.djbh=res.result.djbh
this.form.cdotasj=res.result.cdotasj this.form.cplb=res.result.cplb
this.form.id=res.result.id this.form.ggpc=res.result.ggpc
if(this.$route.query.type == 1 && res.result.cxmb == null && !item){ this.form.cpsb=res.result.cpsb
this.form.cxmb = this.form.djbh+'-'+ this.form.ggpc+'-'+this.form.cpxh this.form.cpmc=res.result.cpmc
}else { this.form.cpxh=res.result.cpxh
this.form.txzd=res.result.txzd
this.form.txzd=res.result.txzd
this.form.cdotasj=res.result.cdotasj
this.form.id=res.result.id
if(this.$route.query.type == 1 && res.result.cxmb == null && !item){
this.form.cxmb = this.form.djbh+'-'+ this.form.ggpc+'-'+this.form.cpxh
}else {
if(this.$route.query.type == 2 && res.result.cxmb == null && !item){ if(this.$route.query.type == 2 && res.result.cxmb == null && !item){
// this.form.cxmb = res.result.cxmb ? res.result.cxmb : this.form.djbh+'-'+ this.form.ggpc+'-'+this.form.cpxh // this.form.cxmb = res.result.cxmb ? res.result.cxmb : this.form.djbh+'-'+ this.form.ggpc+'-'+this.form.cpxh
this.form.cxmb = res.result.cxmb ? res.result.cxmb : undefined this.form.cxmb = res.result.cxmb ? res.result.cxmb : undefined
}else{ }else{
this.form.cxmb = res.result.cxmb ? res.result.cxmb : this.form.djbh+'-'+ this.form.ggpc+'-'+this.form.cpxh this.form.cxmb = res.result.cxmb ? res.result.cxmb : this.form.djbh+'-'+ this.form.ggpc+'-'+this.form.cpxh
} }
}
if(res.result.dllx1 == '' || res.result.dllx1 == null){
res.result.dllx1 = undefined
}
if(res.result.dllx2 == '' || res.result.dllx2 == null){
res.result.dllx2 = undefined
}
if(res.result.cplb == ''){
res.result.cplb = undefined
}
if(res.result.qymc == null){
res.result.qymc = '安徽江淮汽车集团股份有限公司'
}
this.form.dllx1=res.result.dllx1
this.form.dllx2=res.result.dllx2
this.form.cplb=res.result.cplb
this.getDllx2()
// this.changeSelect()
this.$forceUpdate()
}
})
},
next(){
this.$refs.ruleForm.validate(valid=>{
if(valid){
this.save()
setTimeout(()=>{
if(this.flag == 1){
return
}
this.$emit('basicInformationForm')
},1000)
} }
}) if(res.result.dllx1 == '' || res.result.dllx1 == null){
res.result.dllx1 = undefined
}
if(res.result.dllx2 == '' || res.result.dllx2 == null){
res.result.dllx2 = undefined
}
}, if(res.result.cplb == ''){
save(){ res.result.cplb = undefined
this.$refs.ruleForm.validate(valid=>{ }
if(valid){ if(res.result.qymc == null){
let otaId = localStorage.getItem('otaId') res.result.qymc = '安徽江淮汽车集团股份有限公司'
if(otaId==null || otaId == undefined){ }
otaId='' this.form.dllx1=res.result.dllx1
this.form.dllx2=res.result.dllx2
this.form.cplb=res.result.cplb
this.getDllx2()
// this.changeSelect()
this.$forceUpdate()
}
})
},
next(){
this.$refs.ruleForm.validate(valid=>{
if(valid){
this.save()
setTimeout(()=>{
if(this.flag == 1){
return
} }
postAction('/ota/otaBaCxJbxx/add',{ otaId:otaId,...this.form}).then( res => { this.$emit('basicInformationForm')
if(res.success){ },1000)
this.flag = 2
localStorage.setItem('otaId', res.result.otaId) }
this.$message.success(res.message) })
this.getData()
}else{ },
this.$message.warning(res.message) save(){
this.flag = 1 this.$refs.ruleForm.validate(valid=>{
} if(valid){
}) let otaId = localStorage.getItem('otaId')
if(otaId==null || otaId == undefined){
otaId=''
} }
}) postAction('/ota/otaBaCxJbxx/add',{ otaId:otaId,...this.form}).then( res => {
}, if(res.success){
changeSelect(target){ this.flag = 2
this.form.dllx2=undefined localStorage.setItem('otaId', res.result.otaId)
let list = [] this.$message.success(res.message)
getAction('sys/dict/getDictItems/vehicle_dynamic_type1', { }).then((res) => { this.getData()
if (res.success) { }else{
res.result.forEach((item,index) => { this.$message.warning(res.message)
let w = item.value this.flag = 1
let a = w.indexOf("-") localStorage.setItem('otaflag',this.flag)
let l = w.substring(0,a) }
if(target == l){ })
list.push(item) }else{
} // let otaflag = 3
}) this.$message.warning(this.$t('requireddataisnull'))
this.projectNameList2 = list // localStorage.setItem('otaflag',otaflag)
} }
}) })
}, },
getDllx2(){ changeSelect(target){
let list = [] this.form.dllx2=undefined
getAction('sys/dict/getDictItems/vehicle_dynamic_type1', { }).then((res) => { let list = []
if (res.success) { getAction('sys/dict/getDictItems/vehicle_dynamic_type1', { }).then((res) => {
res.result.forEach((item,index) => { if (res.success) {
let w = item.value res.result.forEach((item,index) => {
let a = w.indexOf("-") let w = item.value
let l = w.substring(0,a) let a = w.indexOf("-")
if(this.form.dllx1==undefined){ let l = w.substring(0,a)
this.projectNameList=[] if(target == l){
} list.push(item)
if(this.form.dllx1 == l){ }
list.push(item) })
} this.projectNameList2 = list
}) }
this.projectNameList2 = list })
} },
}) getDllx2(){
}, let list = []
update(){ getAction('sys/dict/getDictItems/vehicle_dynamic_type1', { }).then((res) => {
this.$forceUpdate() if (res.success) {
} res.result.forEach((item,index) => {
let w = item.value
let a = w.indexOf("-")
let l = w.substring(0,a)
if(this.form.dllx1==undefined){
this.projectNameList=[]
}
if(this.form.dllx1 == l){
list.push(item)
}
})
this.projectNameList2 = list
}
})
},
update(){
this.$forceUpdate()
} }
} }
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import'~@assets/less/common.less'; @import'~@assets/less/common.less';
.box { .box {
padding: 0 24px 24px 24px; padding: 0 24px 24px 24px;
box-sizing: border-box; box-sizing: border-box;
} }
.box-title-text-add { .box-title-text-add {
line-height: 1.4; line-height: 1.4;
display: flex; display: flex;
align-items: center; align-items: center;
} }
.title-text-add { .title-text-add {
width: 114px; width: 114px;
text-align: right; text-align: right;
display: inline-block; display: inline-block;
font-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
margin-right: 16px; margin-right: 16px;
// overflow: hidden; // overflow: hidden;
// text-overflow: ellipsis; // text-overflow: ellipsis;
// white-space: nowrap; // white-space: nowrap;
height: 42px; height: 42px;
//line-height: 42px; //line-height: 42px;
margin-top: 3px; margin-top: 3px;
} }
.title-text-add-input { .title-text-add-input {
width: 80%; width: 80%;
display: inline-block; display: inline-block;
font-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
margin-right: 16px; margin-right: 16px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
height: 42px; height: 42px;
//line-height: 42px; //line-height: 42px;
margin-top: 3px; margin-top: 3px;
margin-bottom: 20px; margin-bottom: 20px;
} }
.title-text-text { .title-text-text {
margin-top: 9px; margin-top: 9px;
} }
.itemModel { .itemModel {
width: calc(100% - 130px); width: calc(100% - 130px);
display: inline-block; display: inline-block;
margin-top: 2px; margin-top: 2px;
} }
// .itemModel-input{ // .itemModel-input{
// width: calc(100% + 10px); // width: calc(100% + 10px);
// display: inline-block; // display: inline-block;
// margin-top: 2px; // margin-top: 2px;
// } // }
.box-input { .box-input {
display: inline-block; display: inline-block;
width: 100%; width: 100%;
height: 38px; height: 38px;
margin-top: 2px; margin-top: 2px;
} }
.formAdd { .formAdd {
margin: 0 auto; margin: 0 auto;
width: 670px; width: 670px;
} }
.bootom-button{ .bootom-button{
text-align: center!important; text-align: center!important;
} }
// /deep/ .ant-input{ // /deep/ .ant-input{
// width: calc(100%+20px); // width: calc(100%+20px);
// } // }
.Required { .Required {
color: red; color: red;
margin-right: 3px; margin-right: 3px;
} }
.plus{ .plus{
margin-top: 5px; margin-top: 5px;
line-height: 1.2; line-height: 1.2;
} }
.plus2{ .plus2{
width: 134px; width: 134px;
margin-top: 5px; margin-top: 5px;
line-height: 1.2; line-height: 1.2;
} }
.plus3{ .plus3{
word-break: break-word; word-break: break-word;
} }
</style> </style>
@@ -297,7 +297,7 @@ import ImportFile from '@/components/ImportFileData/index'
methods: { methods: {
// 模板下载 // 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaCxKsjjsmccs/exportTemplate', '可在线升级的驾驶辅助功能名称与参数' + '.zip', {}) downloadFile('ota/otaBaCxKsjjsmccs/exportTemplate', '车型及功能备案-可在线升级的驾驶辅助功能名称与参数' + '.zip', {})
}, },
clickButtonToUpload(item) { clickButtonToUpload(item) {
this.$refs.uploadFile.perentHandleFunc() this.$refs.uploadFile.perentHandleFunc()
@@ -863,7 +863,7 @@ export default {
methods: { methods: {
// 模板下载 // 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaCxJsfzbacs/exportTemplate', '驾驶辅助系统基础备案参数' + '.zip', {}) downloadFile('ota/otaBaCxJsfzbacs/exportTemplate', '车型及功能备案-驾驶辅助系统基础备案参数' + '.zip', {})
}, },
getData(){ getData(){
// if(this.$route.query.type == 1){ // if(this.$route.query.type == 1){
@@ -191,7 +191,7 @@ import ImportFile from '@/components/ImportFileData/index'
// 模板下载 // 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaCxAqcs/exportTemplate', '安全措施' + '.zip', {}) downloadFile('ota/otaBaCxAqcs/exportTemplate', '车型及功能备案-安全措施' + '.zip', {})
}, },
getData(){ getData(){
let otaIdT=localStorage.getItem('otaIdT') let otaIdT=localStorage.getItem('otaIdT')
@@ -209,7 +209,7 @@ export default {
methods: { methods: {
// 模板下载 // 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaCxZxsjyq/exportTemplate', '在线升级要求' + '.zip', {}) downloadFile('ota/otaBaCxZxsjyq/exportTemplate', '车型及功能备案-在线升级要求' + '.zip', {})
}, },
getData(){ getData(){
console.log(localStorage.getItem('otaId')); console.log(localStorage.getItem('otaId'));
@@ -304,7 +304,7 @@ import uploadFileOta from '@/components/uploadFileOta/file'
methods: { methods: {
// 模板下载 // 模板下载
handleModule() { handleModule() {
downloadFile('ota/otaBaCxKsjxtmccs/exportTemplate', '可在线升级的系统名称与参数' + '.zip', {}) downloadFile('ota/otaBaCxKsjxtmccs/exportTemplate', '车型及功能备案-可在线升级的系统名称与参数' + '.zip', {})
}, },
getData(){ getData(){
let otaIdT=localStorage.getItem('otaIdT') let otaIdT=localStorage.getItem('otaIdT')
@@ -7,11 +7,11 @@
<a-icon type="form"/> <a-icon type="form"/>
{{$t('fillintherecord')}} {{$t('fillintherecord')}}
</div> </div>
<!-- <div @click="historicalrecordClick"--> <!-- <div @click="historicalrecordClick"-->
<!-- class="operator-text">--> <!-- class="operator-text">-->
<!-- <a-icon type="copy"/>--> <!-- <a-icon type="copy"/>-->
<!-- {{$t('historicalrecord')}}--> <!-- {{$t('historicalrecord')}}-->
<!-- </div>--> <!-- </div>-->
</div> </div>
<a-tabs class="tabs" v-model="tabActive" @change="callback" @tabClick="tabClick"> <a-tabs class="tabs" v-model="tabActive" @change="callback" @tabClick="tabClick">
<a-tab-pane :key="$t('basicinformationofvehicletype')" :tab="$t('basicinformationofvehicletype')"> <a-tab-pane :key="$t('basicinformationofvehicletype')" :tab="$t('basicinformationofvehicletype')">
@@ -216,7 +216,9 @@ export default {
tabClick(tab,event){ tabClick(tab,event){
this.tabActive=tab this.tabActive=tab
if(this.oldName == this.$t('basicinformationofvehicletype')){ if(this.oldName == this.$t('basicinformationofvehicletype')){
this.$refs.dealtWithRef.save() this.$refs.dealtWithRef.save()
} else if(this.oldName == this.$t('onlineupgraderequirements')){ } else if(this.oldName == this.$t('onlineupgraderequirements')){
this.$refs.doneListRef.save() this.$refs.doneListRef.save()
} else if(this.oldName == this.$t('safetymeasure')){ } else if(this.oldName == this.$t('safetymeasure')){
@@ -230,7 +232,17 @@ export default {
} else if(this.oldName == this.$t('other')){ } else if(this.oldName == this.$t('other')){
this.$refs.otherRef.save() this.$refs.otherRef.save()
} }
this.oldName = tab setTimeout(()=>{
let otaflag = localStorage.getItem('otaflag')
if(otaflag){
console.log(otaflag)
this.tabActive = this.$t('basicinformationofvehicletype')
this.oldName = this.$t('basicinformationofvehicletype')
}
this.oldName = tab
},1000)
localStorage.removeItem('otaflag')
}, },
handleToggleSearch() { handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus this.toggleSearchStatus = !this.toggleSearchStatus