Merge remote-tracking branch 'origin/dev_2nd_LCYH' into dev_2nd_LCYH

This commit is contained in:
wangzhijiang
2023-03-27 18:12:44 +08:00
14 changed files with 222 additions and 45 deletions
@@ -3,6 +3,8 @@ package com.jero.modules.ota.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.ota.entity.*;
import com.jero.modules.ota.enums.OtaModuleEnum;
import com.jero.modules.ota.mapper.OtaBaCxAqcsMapper;
@@ -51,6 +53,9 @@ public class OtaBaCxAqcsServiceImpl extends ServiceImpl<OtaBaCxAqcsMapper, OtaBa
@Autowired
private ISysDictService sysDictService;
@Autowired
private IOSSFileService ossFileService;
/**
* 保存
@@ -187,13 +192,13 @@ public class OtaBaCxAqcsServiceImpl extends ServiceImpl<OtaBaCxAqcsMapper, OtaBa
if (null == upFile || null == attFile) {
throw new JeroBootException("请上传正确的文件");
}
OtaBaCxAqcs aqcs = parseFile(upFile, cut);
OtaBaCxAqcs aqcs = parseFile(upFile, attFile, cut);
aqcs.setOtaId(otaId);
add(aqcs);
return aqcs;
}
private OtaBaCxAqcs parseFile(File upFile, String cut) throws Exception {
private OtaBaCxAqcs parseFile(File upFile, File attFile, String cut) throws Exception {
OtaBaCxAqcs aqcs = new OtaBaCxAqcs();
Workbook wb = ImportFileUtil.readExcel(upFile);
Sheet s = wb.getSheetAt(0);
@@ -216,8 +221,16 @@ public class OtaBaCxAqcsServiceImpl extends ServiceImpl<OtaBaCxAqcsMapper, OtaBa
row = s.getRow(2);
cell = row.getCell(3);
aqcs.setZmcl(ImportFileUtil.getCellValue(cell, wb));
String[] strs = ImportFileUtil.getCellValue(cell, wb).split(",");
List<OSSFile> list = ImportFileUtil.uploadFiles1(attFile, strs, ossFileService);
JSONArray obj = new JSONArray();
for (OSSFile f : list) {
AttachmentEO aeo = new AttachmentEO();
aeo.setId(f.getId());
aeo.setFileName(f.getFileName());
obj.add(aeo);
}
aqcs.setZmcl(obj.toString());
return aqcs;
}
}
@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.ota.entity.*;
import com.jero.modules.ota.enums.OtaModuleEnum;
import com.jero.modules.ota.enums.OtaTitleEnum;
@@ -58,6 +60,10 @@ public class OtaBaCxKsjxtmccsServiceImpl extends ServiceImpl<OtaBaCxKsjxtmccsMap
@Autowired
private ISysDictService sysDictService;
@Autowired
private IOSSFileService ossFileService;
/**
* 保存
*
@@ -225,7 +231,7 @@ public class OtaBaCxKsjxtmccsServiceImpl extends ServiceImpl<OtaBaCxKsjxtmccsMap
throw new JeroBootException("请上传正确的文件");
}
List<OtaBaCxKsjxtmccs> oldList = getByOtaId(otaId);
List<OtaBaCxKsjxtmccs> mccsList = parseFile(upFile, otaId, cut);
List<OtaBaCxKsjxtmccs> mccsList = parseFile(upFile, attFile, otaId, cut);
ComparisonUtil cu = new ComparisonUtil();
List<OtaBaCxTxjl> reList = cu.comparisonListRecord(otaId, OtaModuleEnum.CX_KSJDXTMCYCS, OtaTitleEnum.XTLB.getName(), oldList, mccsList, sysDictService);
deleteByOtaId(otaId);
@@ -233,7 +239,7 @@ public class OtaBaCxKsjxtmccsServiceImpl extends ServiceImpl<OtaBaCxKsjxtmccsMap
otaBaCxTxjlService.saveBatch(reList);
}
private List<OtaBaCxKsjxtmccs> parseFile(File upFile, String otaId, String cut) throws Exception {
private List<OtaBaCxKsjxtmccs> parseFile(File upFile, File attFile, String otaId, String cut) throws Exception {
Date now = new Date();
List<OtaBaCxKsjxtmccs> mccsList = new ArrayList<>();
Workbook wb = ImportFileUtil.readExcel(upFile);
@@ -248,7 +254,8 @@ public class OtaBaCxKsjxtmccsServiceImpl extends ServiceImpl<OtaBaCxKsjxtmccsMap
//列表数据数量,在证明材料处结束
OtaBaCxList otaBaCxList = otaBaCxListService.queryById(otaId);
if (ObjectUtils.isNotEmpty(otaBaCxList)) {
otaBaCxList.setZxsjxtfj(str);
String[] strs = str.split(",");
otaBaCxList.setZxsjxtfj(ImportFileUtil.uploadFiles(attFile, strs, ossFileService));
otaBaCxListService.editById(otaBaCxList);
}
break;
@@ -262,7 +269,8 @@ public class OtaBaCxKsjxtmccsServiceImpl extends ServiceImpl<OtaBaCxKsjxtmccsMap
cell = row.getCell(3);
mssc.setTpt(ImportFileUtil.getCellValue(cell, wb));
cell = row.getCell(4);
mssc.setKzqmc(ImportFileUtil.getCellValue(cell, wb));
String[] strs = ImportFileUtil.getCellValue(cell, wb).split(",");
mssc.setKzqmc(ImportFileUtil.uploadFiles(attFile, strs, ossFileService));
cell = row.getCell(5);
mssc.setAqwzxdj(ImportFileUtil.getCellValue(cell, wb));
cell = row.getCell(6);
@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.ota.entity.AttachmentEO;
import com.jero.modules.ota.entity.OtaBaCxTxjl;
import com.jero.modules.ota.entity.OtaBaCxZxsjyq;
@@ -53,6 +55,9 @@ public class OtaBaCxZxsjyqServiceImpl extends ServiceImpl<OtaBaCxZxsjyqMapper, O
@Autowired
private ISysDictService sysDictService;
@Autowired
private IOSSFileService ossFileService;
/**
* 保存
*
@@ -190,13 +195,13 @@ public class OtaBaCxZxsjyqServiceImpl extends ServiceImpl<OtaBaCxZxsjyqMapper, O
if (null == upFile || null == attFile) {
throw new JeroBootException("请上传正确的文件");
}
OtaBaCxZxsjyq otaBaCxZxsjyq = parseFile(upFile, cut);
OtaBaCxZxsjyq otaBaCxZxsjyq = parseFile(upFile, attFile, cut);
otaBaCxZxsjyq.setOtaId(otaId);
add(otaBaCxZxsjyq);
return otaBaCxZxsjyq;
}
private OtaBaCxZxsjyq parseFile(File upFile, String cut) throws Exception {
private OtaBaCxZxsjyq parseFile(File upFile, File attFile, String cut) throws Exception {
OtaBaCxZxsjyq otaBaCxZxsjyq = new OtaBaCxZxsjyq();
Workbook wb = ImportFileUtil.readExcel(upFile);
Sheet s = wb.getSheetAt(0);
@@ -230,9 +235,19 @@ public class OtaBaCxZxsjyqServiceImpl extends ServiceImpl<OtaBaCxZxsjyqMapper, O
row = s.getRow(11);
cell = row.getCell(2);
otaBaCxZxsjyq.setSjzt(ImportFileUtil.getCellValueYesOrNo(cell, wb));
row = s.getRow(2);
cell = row.getCell(3);
otaBaCxZxsjyq.setZmcl(ImportFileUtil.getCellValue(cell, wb));
String[] strs = ImportFileUtil.getCellValue(cell, wb).split(",");
List<OSSFile> list = ImportFileUtil.uploadFiles1(attFile, strs, ossFileService);
JSONArray obj = new JSONArray();
for (OSSFile f : list) {
AttachmentEO aeo = new AttachmentEO();
aeo.setId(f.getId());
aeo.setFileName(f.getFileName());
obj.add(aeo);
}
otaBaCxZxsjyq.setZmcl(obj.toString());
return otaBaCxZxsjyq;
}
}
@@ -3,14 +3,18 @@ package com.jero.modules.ota.utils;
import com.aliyuncs.utils.IOUtils;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.split.common.FileUnZip;
import com.jero.modules.system.service.ISysDictService;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
@@ -174,4 +178,66 @@ public class ImportFileUtil {
return res;
}
public static File findFile(File file, String fileName) throws Exception {
// 获取此地址中的所有文件以及文件夹(File[] list)
File[] listFiles = file.listFiles();// 获取此地址中的所有文件以及文件夹(File[] list)
for (File file1 : listFiles) {// 遍历数组
// 判断当前的File对象是否为文件夹
if (!file1.isDirectory()) {
String name = file1.getName();
if (name.equals(fileName)) {
return file1;
}
}
}
return null;
}
public static MultipartFile createMfileByFile(File file) {
MultipartFile mFile = null;
try {
FileInputStream fileInputStream = new FileInputStream(file);
String fileName = file.getName();
fileName = fileName.substring((fileName.lastIndexOf(File.separator) + 1));
mFile = new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
} catch (Exception e) {
e.printStackTrace();
}
return mFile;
}
public static List<OSSFile> uploadFiles1(File attFile, String[] strs, IOSSFileService ossFileService) throws Exception {
List<OSSFile> res = new ArrayList<>();
for (int i = 0; i < strs.length; i++) {
File file = ImportFileUtil.findFile(attFile, strs[i]);
if (null == file) {
throw new JeroBootException("找不到文件:" + strs[i]);
}
OSSFile ossFile = ossFileService.uploadLocalOfCos(ImportFileUtil.createMfileByFile(file), "", null, null);
if (ObjectUtils.isNotEmpty(ossFile)) {
res.add(ossFile);
}
}
return res;
}
public static String uploadFiles(File attFile, String[] strs, IOSSFileService ossFileService) throws Exception {
String res = "";
for (int i = 0; i < strs.length; i++) {
File file = ImportFileUtil.findFile(attFile, strs[i]);
if (null == file) {
throw new JeroBootException("找不到文件:" + strs[i]);
}
OSSFile ossFile = ossFileService.uploadLocalOfCos(ImportFileUtil.createMfileByFile(file), "", null, null);
if (ObjectUtils.isNotEmpty(ossFile)) {
if (i >= strs.length - 1) {
res += ossFile.getId();
} else {
res += ossFile.getId() + ",";
}
}
}
return res;
}
}
+1
View File
@@ -1721,4 +1721,5 @@ module.exports = {
cantTransferToYourself:"Can't transfer to yourself",
theDataYouInitiate:'The data you selected does not meet the process initiation criteria. Please recheck and initiate',
dataWithProcessReleasedCannotBeReset:'Data with a process status of list to be released cannot be reset',
noteone:'Note: CSV format is supported. The value is within 20M and the number is 1 to 10',
}
+1
View File
@@ -1821,6 +1821,7 @@ module.exports = {
note:':附件包括测试项目清单测试报告测试标准或技术规范',
format:'支持doc/docx/pdf格式,大小50M以内',
cantTransferToYourself:"不能转办给自己",
noteone:':支持CSV格式大小20M以内数量1-10个',
theDataYouInitiate:'您所选的数据均不符合流程发起条件请重新检查后发起',
dataWithProcessReleasedCannotBeReset:'流程状态为清单待发布的数据不能被重置',
}
@@ -389,8 +389,25 @@ export default {
},
// 引用备案
citeforrecord(){
},
if( this.selectedRowKeys.length == 0 ){
this.$message.warning(this.$t('selectLeastOne'))
}else{
if ( this.selectedRowKeys.length > 1){
this.$message.warning(this.$t('OnlyOneSelected'))
}else{
localStorage.removeItem('otaIdT')
localStorage.removeItem('otaId')
localStorage.setItem('otaIdT',this.selectedRowKeys[0])
if(localStorage.getItem('otaIdT')!=null){
this.$router.push({
path: '/upgradeactivityrecord',
query: {
type:1
}
})
}
}
}},
// 创建车型
createvehicleandfunctionrecords() {
localStorage.removeItem('otaId')
@@ -43,9 +43,9 @@
<span slot="upgradetheelectroniccontrollerinvolved" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.sjsjkzq"></a-input>
</span>
<!-- 操作列-->
<span slot="operation" slot-scope="text,record">
<a class="text-operation" @click="addlineAtBot">{{$t('add')}}</a>
@@ -54,6 +54,10 @@
</a-table>
<div>
<a-button @click="clickButtonToUpload" type="primary">{{$t('uploadattachment')}}</a-button>
<div style='margin-top: 20px'>
<p>{{$t('note')}}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;{{$t('format')}}</p>
</div>
</div>
<div class="bootom-button">
<a-button style="margin-right:50px">{{$t('preservation')}}</a-button>
@@ -79,7 +83,7 @@ export default {
return {
dataSource: [
{
}
],
loading: false,
@@ -12,7 +12,7 @@
<a-form-model-item class="itemModel" prop="dutyTerritory">
<a-input
:placeholder="$t('pleaseEnter')"
v-model.trim="queryParam.taskname"></a-input>
v-model.trim="queryParam.rwmc"></a-input>
</a-form-model-item>
</div>
</a-col>
@@ -29,7 +29,7 @@
@change="dateChange({db_field_name:'updatereleasetime'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="queryParam.updatereleasetime"
v-model="queryParam.sjfbsj"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
@@ -48,7 +48,7 @@
@change="dateChange({db_field_name:'upgradeplanexpirationtime'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="queryParam.upgradeplanexpirationtime"
v-model="queryParam.sjjzsj"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
@@ -58,7 +58,7 @@
</a-form-model>
</a-spin>
<div class="bootom-button">
<a-button style="margin-right:50px">{{$t('preservation')}}</a-button>
<a-button style="margin-right:50px" @click="save">{{$t('preservation')}}</a-button>
<a-button type="primary" @click='last' style="margin-right:50px">{{$t('last')}}</a-button>
<a-button type="primary" @click='submit'>{{$t('submit')}}</a-button>
</div>
@@ -77,21 +77,51 @@ export default {
return {
confirmLoading: false,
disabled: false,
queryParam:{}
queryParam:{
sjjzsj:''
}
}
},
mounted() {
this.getData()
},
methods: {
getData(){
let otaIdT=localStorage.getItem('otaIdT')
if(otaIdT==null){
otaIdT=''
}
let otaId=localStorage.getItem('otaId')
if(otaId==null){
otaId=''
}
getAction('/ota/otaBaSjQtsjxx/queryByOtaId',{otaIdT:otaIdT,otaId:otaId}),then(res=>{
if(res.code == 200){
this.queryParam= res.result ==null ? {} :res.result
}
})
},
save(){
let otaId = localStorage.getItem('otaId')
if(otaId == null || otaId == undefined){
otaId=''
}
this.queryParam.otaId = otaId
postAction('/ota/otaBaSjQtsjxx/add' ,this.queryParam).then(res=>{
this.$message.success(this.$t('SavedSuccessfully'))
console.log(res);
})
},
last(){
this.save()
this.$emit('otherup')
},
dateChange(item) {
this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : ''
},
submit(){
this.$router.push('upgradeactivity')
},
}
}
@@ -76,16 +76,16 @@
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('VINcodelist')">
{{ (formInline.VINcodelist === 'null' || formInline.VINcodelist === '' ||
formInline.VINcodelist == null) ? $t('clickUpload') : $t('viewUploadedFiles')
formInline.VINcodelist == null) ? $t('VINcodeupload') : $t('viewUploadedFiles')
}}
</a-button>
<p>支持cxv格式,大下20M以内,数量1-10个</p>
<p>{{$t('noteone')}}</p>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFile>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-spin>
<div class="bootom-button">
@@ -148,18 +148,18 @@ export default {
})
},
save(){
let obj={}
obj.otaId=localStorage.getItem('otaId')
obj.zsl = this.formInline.zsl
if(this.formInline.dateofproduction){
obj.scrqks = this.formInline.dateofproduction[0]
obj.scrqks = this.formInline.dateofproduction[0]
obj.scrqjs = this.formInline.dateofproduction[1]
}else{
obj.scrqks=''
obj.scrqjs =''
}
obj.vinList = this.formInline.vinList
postAction('/ota/otaBaSjSjmbcl/add',obj).then(res=>{
this.$message.success(this.$t('SavedSuccessfully'))
@@ -66,9 +66,6 @@
<a class="text-operation" @click="deleteData(record)" v-if="dataSource.length > 1">{{$t('delete')}}</a>
</span>
</a-table>
<div>
<a-button @click="clickButtonToUpload" type="primary">{{$t('uploadattachment')}}</a-button>
</div>
<div class="bootom-button">
<a-button style="margin-right:50px" @click="save">{{$t('preservation')}}</a-button>
<a-button type="primary" style='width: 73px;margin-right: 50px' @click='last'>{{$t('last')}}</a-button>
@@ -146,7 +143,7 @@ export default {
ellipsis: true,
width: 170,
scopedSlots: { customRender: 'nameoftheupgradedelectroniccontroller' },
},
{
title: this.$t('adaptivehardwareversion'),
@@ -188,7 +185,7 @@ export default {
width: 170,
scopedSlots: { customRender: 'aftertheoperatingsystemversionupgraded' },
},
{
title: this.$t('upgradepackageintegrityverificationdata'),
align: 'left',
@@ -389,8 +389,11 @@ this.$forceUpdate()
})
},
save(){
this.form.otaId=localStorage.getItem('otaId')
let otaId = localStorage.getItem('otaId')
if(otaId == null || otaId == undefined){
otaId=''
}
this.form.otaId=otaId
postAction('/ota/otaBaSjSjyxpg/add',this.form).then(res=>{
this.$message.success(this.$t('SavedSuccessfully'))
console.log(res);
@@ -158,6 +158,7 @@
formInline.xgwj == null) ? $t('uploadattachment') : $t('viewUploadedFiles')
}}
</a-button>
<p>{{$t('format')}}</p>
</a-form-model-item>
</div>
</a-col>
@@ -178,6 +179,7 @@ import { getAction, postAction, deleteAction,downloadFile } from '@/api/manage'
import ImportFile from '@/components/ImportFileData/index'
import uploadFile from '@/components/uploadFile/file'
import moment from 'moment'
import { post } from '../../../../common/lang/zh-cn'
export default {
name: 'basicInformation',
@@ -197,7 +199,7 @@ export default {
}
},
mounted() {
this.getData()
},
methods: {// 模板下载
handleModule() {
@@ -228,8 +230,31 @@ export default {
}
})
},
getData(){
let otaIdT=localStorage.getItem('otaIdT')
if(otaIdT==null){
otaIdT=''
}
let otaId=localStorage.getItem('otaId')
if(otaId==null){
otaId=''
}
getAction('/ota/otaBaSjGgnrfs/queryByOtaId',{otaIdT:otaIdT,otaId:otaId}),then(res=>{
if(res.code == 200){
this.formInline= res.result ==null ? {} :res.result
}
})
},
save(){
let otaId = localStorage.getItem('otaId')
if(otaId == null || otaId == undefined){
otaId=''
}
this.formInline.otaId = otaId
postAction('/ota/otaBaSjGgnrfs/add' ,this.formInline).then(res=>{
this.$message.success(this.$t('SavedSuccessfully'))
console.log(res);
})
},
next(){
@@ -72,7 +72,7 @@
</span>
<span slot="softwaredevelopmententerprise" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.yjbbxx" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.rjkfqy" :max-length="500"></a-input>
</span>
<span slot="operatingsystemversion" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.rjkfqy" :max-length="500"></a-input>
@@ -327,10 +327,10 @@ import ImportFile from '@/components/ImportFileData/index'
gnmc:'车道偏离预警(LDW)'
},
{
gnmc:'区监测(BSD)'
gnmc:'区监测(BSD)'
},
{
gnmc:'员疲劳篮澳CDFM)'
gnmc:'驾驶员疲劳检测(DFM)'
},
{
gnmc:'自动紧急制动(AEB)'
@@ -338,9 +338,6 @@ import ImportFile from '@/components/ImportFileData/index'
{
gnmc:'自适应巡航控制(ACC)'
},
{
gnmc:'自适应巡航控制(ACC)'
},
{
gnmc:'智能泊车辅助(IPA)'
},