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

This commit is contained in:
高嵩
2023-08-21 17:27:12 +08:00
8 changed files with 137 additions and 34 deletions
@@ -3,9 +3,11 @@ package com.jero.modules.ota.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.PageUtil;
import com.jero.modules.ota.entity.OtaManageApplyEO;
import com.jero.modules.ota.service.IOtaManageApplyEOService;
import com.jero.modules.ota.vo.VersionVO;
@@ -50,8 +52,9 @@ public class OtaManageApplyEOController extends JeroController<OtaManageApplyEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
IPage<OtaManageApplyEO> pageList = otaManageApplyEOService.getOtaPage(otaManageApplyEO,pageNo,pageSize);
return Result.OK(pageList);
List<OtaManageApplyEO> list = otaManageApplyEOService.getOtaPage(otaManageApplyEO);
Page pages = PageUtil.getPages(pageNo, pageSize, list);
return Result.OK(pages);
}
/**
* 分车型列表-分页列表查询
@@ -280,4 +283,17 @@ public class OtaManageApplyEOController extends JeroController<OtaManageApplyEO,
}
/**
* OTA管理导出excel
*
* @param request
* @param otaManageApplyEO
*/
@RequestMapping(value = "/otaExportXls")
@ApiOperation(value = "OTA管理导出excel", notes = "OTA管理导出excel")
public ModelAndView otaExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO) {
return otaManageApplyEOService.otaExportXls(request, otaManageApplyEO);
}
}
@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.ota.entity.OtaManageApplyEO;
import com.jero.modules.ota.vo.VersionVO;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
@@ -66,11 +68,9 @@ public interface IOtaManageApplyEOService extends IService<OtaManageApplyEO> {
/**
* OTA管理列表和全车型列表-分页列表查询
* @param otaManageApplyEO
* @param pageNo
* @param pageSize
* @return
*/
IPage<OtaManageApplyEO> getOtaPage(OtaManageApplyEO otaManageApplyEO,Integer pageNo,Integer pageSize);
List<OtaManageApplyEO> getOtaPage(OtaManageApplyEO otaManageApplyEO);
/**
* 分车型列表-分页列表查询
@@ -123,4 +123,6 @@ public interface IOtaManageApplyEOService extends IService<OtaManageApplyEO> {
List<OtaManageApplyEO> getVdrListByProject(String projectId, String cut);
List<OtaManageApplyEO> getStatisticalStatus(String projectId, String plannedBpLaunchBatch, String cut);
ModelAndView otaExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO);
}
@@ -8,6 +8,7 @@ import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.DateUtils;
import com.jero.common.util.PageUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.ota.entity.OtaManageApplyEO;
import com.jero.modules.ota.entity.OtaManageReceiveNsdpEO;
@@ -17,6 +18,7 @@ import com.jero.modules.ota.enums.OtaStatusEnum;
import com.jero.modules.ota.mapper.OtaManageApplyEOMapper;
import com.jero.modules.ota.service.IOtaManageApplyEOService;
import com.jero.modules.ota.service.IOtaManageHistoryService;
import com.jero.modules.ota.vo.OtaExportVO;
import com.jero.modules.ota.vo.VersionVO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectTaskPlanning;
@@ -34,13 +36,32 @@ import com.jero.modules.system.util.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.text.Collator;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
/**
@@ -69,6 +90,9 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
@Autowired
private IOtaManageHistoryService otaManageHistoryService;
@Value(value = "${jero.path.upload}")
private String upLoadPath;
private static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
@@ -151,12 +175,10 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
/**
* OTA管理列表和全车型列表-分页列表查询
* @param otaManageApplyEO
* @param pageNo
* @param pageSize
* @return
*/
@Override
public IPage<OtaManageApplyEO> getOtaPage(OtaManageApplyEO otaManageApplyEO, Integer pageNo, Integer pageSize) {
public List<OtaManageApplyEO> getOtaPage(OtaManageApplyEO otaManageApplyEO) {
List<OtaManageApplyEO> otaManageApplyEOList = otaManageApplyEOMapper.getOtaList(otaManageApplyEO);
if(!otaManageApplyEOList.isEmpty()){
List<String> otaNameList = OtaCarEnum.getOtaNameList();
@@ -223,8 +245,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
//表头排序
heartSort(otaManageApplyEO, otaManageApplyEOList);
}
Page pages = PageUtil.getPages(pageNo, pageSize, otaManageApplyEOList);
return pages;
return otaManageApplyEOList;
}
private void heartSort(OtaManageApplyEO otaManageApplyEO, List<OtaManageApplyEO> otaManageApplyEOList) {
@@ -1060,5 +1081,40 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
return this.list(queryWrapper);
}
@Override
public ModelAndView otaExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// Step.2 获取导出数据
List<OtaManageApplyEO> pageList = getOtaPage(otaManageApplyEO);
List<OtaManageApplyEO> exportList = null;
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = pageList.stream().filter(e -> selectionList.contains(e.getId())).collect(Collectors.toList());
} else {
exportList = pageList;
}
List<OtaExportVO> dataList = new ArrayList<>();
for (OtaManageApplyEO manageApplyEO : exportList) {
OtaExportVO otaExportVO = new OtaExportVO();
BeanUtils.copyProperties(manageApplyEO, otaExportVO);
dataList.add(otaExportVO);
}
// Step.3 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
mv.addObject(NormalExcelConstants.FILE_NAME, "OTA列表"); //此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(NormalExcelConstants.CLASS, OtaExportVO.class);
ExportParams exportParams=new ExportParams("OTA软件版本", null, "OTA软件版本");
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, dataList);
return mv;
}
}
@@ -0,0 +1,34 @@
package com.jero.modules.ota.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.util.Date;
/**
* @description
* @date 2023/8/9 11:28
* @auth zhn
*/
@Data
public class OtaExportVO {
@Excel(name = "软件版本", width = 15)
@ApiModelProperty(value = "软件版本")
private java.lang.String plannedBpLaunchBatch;
@Excel(name = "市场", width = 15)
@ApiModelProperty(value = "市场")
private java.lang.String market;
@Excel(name = "适用车型", width = 50)
@ApiModelProperty(value = "适用车型")
private java.lang.String appliedVehicleProject;
@Excel(name = "软件发布时间", width = 15)
@ApiModelProperty(value = "软件发布时间")
private String releaseName;
}
+1
View File
@@ -1950,4 +1950,5 @@ module.exports = {
lock:'lock',
datacannotbeedited:'This data cannot be edited',
Rematchornot:'Rematch or not',
Modifyremarks:'Modify remarks',
}
+1
View File
@@ -3906,4 +3906,5 @@ module.exports = {
lock:'锁定',
datacannotbeedited:'该数据不能进行编辑',
Rematchornot:'是否重新匹配',
Modifyremarks:'修改备注',
}
@@ -103,61 +103,55 @@
</div>
<!-- 全部导出-->
<div class="table-operator" style='margin-bottom: 19px;text-align: left;margin-top: 20px;'>
<div v-if="vehicleTypeCode == '全部'" class="operator-text" @click="handleExportManage('all')"
<div v-if="vehicleTypeCode === '全部'" class="operator-text" @click="handleExportManage('all')"
v-has="'otadetail:export'">
<a-icon type="export" :rotate="-90" />
{{ $t('export') }}
</div>
<!-- 全部下发通知-->
<div v-if="vehicleTypeCode == '全部'" class="operator-text" @click="issuenotice"
<div v-if="vehicleTypeCode === '全部'" class="operator-text" @click="issuenotice"
v-has="'otadetail:Issuenotice'">
<a-icon type="sound" />
{{ $t('issuenotice') }}
</div>
<!-- studio导出-->
<div v-if="vehicleTypeCode != '全部'" class="operator-text" @click="handleExportManage('studio')"
<div v-if="vehicleTypeCode !== '全部'" class="operator-text" @click="handleExportManage('studio')"
v-has="'otad:export'">
<a-icon type="export" :rotate="-90"/>
{{ $t('export') }}
</div>
<!-- studio批量设置-->
<div v-if="vehicleTypeCode != '全部'" class="operator-text" @click="BatchSetting"
<div v-if="vehicleTypeCode !== '全部'" class="operator-text" @click="BatchSetting"
v-has="'otad:batchsetting'">
<a-icon type="setting" />
{{ $t('BatchSetting') }}
</div>
<!-- studio申请重新匹配-->
<div v-if="vehicleTypeCode != '全部'" class="operator-text" @click="applyforrematch"
<div v-if="vehicleTypeCode !== '全部'" class="operator-text" @click="applyforrematch"
v-has="'otad:rematch'">
<a-icon type="rollback" />
{{ $t('applyforrematch') }}
</div>
<!-- studio保存-->
<div v-if="vehicleTypeCode != '全部'" class="operator-text" @click="preservation"
<div v-if="vehicleTypeCode !== '全部'" class="operator-text" @click="preservation"
v-has="'otad:save'">
<a-icon type="check-circle" />
{{ $t('preservation') }}
</div>
<!-- studio提交-->
<div v-if="vehicleTypeCode != '全部'" class="operator-text" @click="submit"
<div v-if="vehicleTypeCode !== '全部'" class="operator-text" @click="submit"
v-has="'otad-submit'">
<a-icon type="check-circle" />
{{ $t('submit') }}
</div>
<!-- manger导出-->
<!-- <div v-if="vehicleTypeCode != '全部'" class="operator-text" @click="handleExportManage('manger')"-->
<!-- v-has="'otaman:export'">-->
<!-- <a-icon type="export" :rotate="-90"/>-->
<!-- {{ $t('export') }}-->
<!-- </div>-->
<!-- manger确认-->
<div v-if="vehicleTypeCode != '全部'" class="operator-text" @click="confirm"
<div v-if="vehicleTypeCode !== '全部'" class="operator-text" @click="confirm"
v-has="'otaman:confirm'">
<a-icon type="check-circle" />
{{ $t('confirm') }}
</div>
<!-- manger退回-->
<div v-if="vehicleTypeCode != '全部'" class="operator-text" @click="sendBack"
<div v-if="vehicleTypeCode !== '全部'" class="operator-text" @click="sendBack"
v-has="'otaman:return'">
<a-icon type="rollback" />
{{ $t('sendBack') }}
@@ -1016,24 +1010,23 @@ export default {
// console.log('menuId',this.menuId)
let dateName = moment(new Date()).format('YYYYMMDD')
let name = ''
let url = ''
switch (code){
case 'all':
name = this.softwareversion;
url = 'ota/otaManageApplyEO/allCarExportXls'
break;
case 'studio':
name = this.softwareversion;
break;
case 'manger':
name = this.softwareversion;
url = 'ota/otaManageApplyEO/oneCarExportXls'
break;
}
let exportName = name + ' ' + dateName + '.xlsx'
let query = {
exportName: exportName,
idList: this.selectedRowKeys.join(','),
selections: this.selectedRowKeys.join(','),
...this.queryParam
}
downloadFile('split/sarFileSplitItems/exportSplitInfoZip', exportName, query, this.selectClear)
downloadFile(url, exportName, query, this.selectClear)
},
// 下发通知
issuenotice(){
@@ -1,7 +1,7 @@
<!--批量设置-->
<template>
<a-modal
:title="$t('BatchSetting')"
:title="$t('Modifyremarks')"
:width="600"
:visible="visible"
:confirm-loading="confirmLoading"