Merge remote-tracking branch 'origin/dev_20230808_OTA'
# Conflicts: # jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java # jero-web/src/common/lang/en-us.js # jero-web/src/common/lang/zh-cn.js
This commit is contained in:
+40
@@ -0,0 +1,40 @@
|
|||||||
|
package com.jero.common.util;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description
|
||||||
|
* @date 2022/12/7 14:02
|
||||||
|
* @auth zhn
|
||||||
|
*/
|
||||||
|
public class PageUtil {
|
||||||
|
public static Page getPages(Integer currentPage, Integer pageSize, List<?> entityList){
|
||||||
|
Page page =new Page();
|
||||||
|
if(entityList==null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
int size = entityList.size();
|
||||||
|
if(pageSize > size){
|
||||||
|
pageSize = size;
|
||||||
|
}
|
||||||
|
if(pageSize!=0){
|
||||||
|
//求出最⼤页数,防⽌currentPage越界
|
||||||
|
int maxPage = size % pageSize ==0? size / pageSize : size / pageSize +1;
|
||||||
|
if(currentPage > maxPage){
|
||||||
|
currentPage = maxPage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//当前页第⼀条数据的下标
|
||||||
|
int curIdx = currentPage >1?(currentPage -1)* pageSize :0;
|
||||||
|
List pageList =new ArrayList();
|
||||||
|
//将当前页的数据放进pageList
|
||||||
|
for(int i =0; i < pageSize && curIdx + i < size; i++){
|
||||||
|
pageList.add(entityList.get(curIdx + i));
|
||||||
|
}
|
||||||
|
page.setCurrent(currentPage).setSize(pageSize).setTotal(entityList.size()).setRecords(pageList);
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
-1
@@ -6,8 +6,10 @@ public enum RoleEnum {
|
|||||||
COUNTRU_CARD_MANAGE("countryCard管理员","countryCardManage","countryCardManage","1564916346120916993",4),
|
COUNTRU_CARD_MANAGE("countryCard管理员","countryCardManage","countryCardManage","1564916346120916993",4),
|
||||||
ENGINEERING_INTERFACE_PERSON("工程接口人","engineeringInterfacePerson","engineeringInterfacePerson","1534020084667674626",5),
|
ENGINEERING_INTERFACE_PERSON("工程接口人","engineeringInterfacePerson","engineeringInterfacePerson","1534020084667674626",5),
|
||||||
ENGINEER("工程师","engineer","engineer","1534020318437208065",6),
|
ENGINEER("工程师","engineer","engineer","1534020318437208065",6),
|
||||||
HOMOLOGATION_ENGINEER("认证工程师","homologationEngineer","homologationEngineer","1534019729326239745",8),
|
|
||||||
REGULATION_OWNER("法规工程师","regulationOwner","regulationOwner","1534021004067500034",7),
|
REGULATION_OWNER("法规工程师","regulationOwner","regulationOwner","1534021004067500034",7),
|
||||||
|
HOMOLOGATION_ENGINEER("认证工程师","homologationEngineer","homologationEngineer","1534019729326239745",8),
|
||||||
|
OTA_MANAGER("OTA Manager","OTA Manager","OTA Manager","1664108901072678913",9),
|
||||||
|
STUDIO("R&H Studio","R&H Studio","R&H Studio","1534019911296118786",10),
|
||||||
;
|
;
|
||||||
|
|
||||||
String name;
|
String name;
|
||||||
|
|||||||
+348
@@ -0,0 +1,348 @@
|
|||||||
|
package com.jero.modules.ota.controller;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
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;
|
||||||
|
import com.jero.modules.project.entity.ProjectLibraryBase;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 数据对接表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-09
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Api(tags="数据对接表")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/ota/otaManageApplyEO")
|
||||||
|
@Slf4j
|
||||||
|
public class OtaManageApplyEOController extends JeroController<OtaManageApplyEO, IOtaManageApplyEOService> {
|
||||||
|
@Autowired
|
||||||
|
private IOtaManageApplyEOService otaManageApplyEOService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* OTA管理列表和全车型列表-分页列表查询
|
||||||
|
*
|
||||||
|
* @param otaManageApplyEO
|
||||||
|
* @param pageNo
|
||||||
|
* @param pageSize
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理列表和全车型列表-分页列表查询")
|
||||||
|
@ApiOperation(value="OTA管理列表和全车型列表-分页列表查询", notes="OTA管理列表和全车型列表-分页列表查询")
|
||||||
|
@GetMapping(value = "/getOtaPage")
|
||||||
|
public Result<?> getOtaPage(OtaManageApplyEO otaManageApplyEO,
|
||||||
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||||
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
|
||||||
|
|
||||||
|
List<OtaManageApplyEO> list = otaManageApplyEOService.getOtaPage(otaManageApplyEO);
|
||||||
|
Page pages = PageUtil.getPages(pageNo, pageSize, list);
|
||||||
|
return Result.OK(pages);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "全车型列表-分页列表查询")
|
||||||
|
@ApiOperation(value="全车型列表-分页列表查询", notes="全车型列表-分页列表查询")
|
||||||
|
@GetMapping(value = "/getAllCarPage")
|
||||||
|
public Result<?> getAllCarPage(OtaManageApplyEO otaManageApplyEO,
|
||||||
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||||
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
|
||||||
|
|
||||||
|
List<OtaManageApplyEO> list = otaManageApplyEOService.getAllCarPage(otaManageApplyEO);
|
||||||
|
Page pages = PageUtil.getPages(pageNo, pageSize, list);
|
||||||
|
return Result.OK(pages);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 分车型列表-分页列表查询
|
||||||
|
*
|
||||||
|
* @param otaManageApplyEO
|
||||||
|
* @param pageNo
|
||||||
|
* @param pageSize
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "分车型列表-分页列表查询")
|
||||||
|
@ApiOperation(value="分车型列表-分页列表查询", notes="分车型列表-分页列表查询")
|
||||||
|
@GetMapping(value = "/getOtaCarPage")
|
||||||
|
public Result<?> getOtaCarPage(OtaManageApplyEO otaManageApplyEO,
|
||||||
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||||
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||||
|
String cut) {
|
||||||
|
|
||||||
|
List<OtaManageApplyEO> list = otaManageApplyEOService.getOtaCarPage(otaManageApplyEO, cut);
|
||||||
|
Page pages = PageUtil.getPages(pageNo, pageSize, list);
|
||||||
|
return Result.OK(pages);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 下拉数据-软件版本,适用车型,市场
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "下拉数据-软件版本,适用车型,市场")
|
||||||
|
@ApiOperation(value="下拉数据-软件版本,适用车型,市场", notes="下拉数据-软件版本,适用车型,市场")
|
||||||
|
@GetMapping(value = "/getPullDownList")
|
||||||
|
public Result<?> getPullDownList() {
|
||||||
|
Map<String, Object> result = otaManageApplyEOService.getPullDownList();
|
||||||
|
return Result.OK(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "数据对接表-通过id删除")
|
||||||
|
@ApiOperation(value="数据对接表-通过id删除", notes="数据对接表-通过id删除")
|
||||||
|
@DeleteMapping(value = "/delete")
|
||||||
|
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
|
||||||
|
otaManageApplyEOService.deleteById(id);
|
||||||
|
return Result.OK("删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "数据对接表-批量删除")
|
||||||
|
@ApiOperation(value="数据对接表-批量删除", notes="数据对接表-批量删除")
|
||||||
|
@DeleteMapping(value = "/deleteBatch")
|
||||||
|
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
||||||
|
this.otaManageApplyEOService.deleteByIds(Arrays.asList(ids.split(",")));
|
||||||
|
return Result.OK("批量删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过适用车型查询
|
||||||
|
*
|
||||||
|
* @param appliedVehicleProject
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "通过适用车型查询")
|
||||||
|
@ApiOperation(value="通过适用车型查询", notes="通过适用车型查询")
|
||||||
|
@GetMapping(value = "/getByAppliedVehicleProject")
|
||||||
|
public Result<?> getByAppliedVehicleProject(@RequestParam(name="appliedVehicleProject",required=true) String appliedVehicleProject) {
|
||||||
|
List<VersionVO> byAppliedVehicleProject = otaManageApplyEOService.getByAppliedVehicleProject(appliedVehicleProject);
|
||||||
|
return Result.OK(byAppliedVehicleProject);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param otaManageApplyEO
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/exportXls")
|
||||||
|
public ModelAndView exportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO) {
|
||||||
|
return super.exportXls(request, otaManageApplyEO, OtaManageApplyEO.class, "数据对接表");
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "下拉数据-全部和分车型(不含年款)")
|
||||||
|
@ApiOperation(value="下拉数据-全部和分车型(不含年款)", notes="下拉数据-全部和分车型(不含年款)")
|
||||||
|
@GetMapping(value = "/getCarList")
|
||||||
|
public Result<?> getCarList(String cut,String plannedBpLaunchBatch) {
|
||||||
|
List<String> result = otaManageApplyEOService.getCarList(cut,plannedBpLaunchBatch);
|
||||||
|
return Result.OK(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "项目版本下拉数据")
|
||||||
|
@ApiOperation(value="项目版本下拉数据", notes="项目版本下拉数据")
|
||||||
|
@GetMapping(value = "/getProjectVersionList")
|
||||||
|
public Result<?> getProjectVersionList(String carMarket,String cut) {
|
||||||
|
List<VersionVO> result = otaManageApplyEOService.getProjectVersionList(carMarket,cut);
|
||||||
|
return Result.OK(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "全车型和分车型详情")
|
||||||
|
@ApiOperation(value="分车型详情", notes="分车型详情")
|
||||||
|
@GetMapping(value = "/getVersionInfo")
|
||||||
|
public Result<?> getVersionInfo(String vdr,String car,String cut) {
|
||||||
|
List<VersionVO> result = otaManageApplyEOService.getVersionInfo(vdr,car,cut);
|
||||||
|
return Result.OK(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "下发通知")
|
||||||
|
@ApiOperation(value="下发通知", notes="下发通知")
|
||||||
|
@GetMapping(value = "/issueNotice")
|
||||||
|
public Result<?> issueNotice(String id) {
|
||||||
|
otaManageApplyEOService.issueNotice(id);
|
||||||
|
return Result.OK("下发通知成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "保存")
|
||||||
|
@ApiOperation(value = "保存", notes = "保存")
|
||||||
|
@PostMapping(value = "/temporarySave")
|
||||||
|
public Result<?> temporarySave(@RequestBody JSONObject jsonObject) {
|
||||||
|
JSONArray array = jsonObject.getJSONArray("list");
|
||||||
|
String cut = jsonObject.getString("cut");
|
||||||
|
List<OtaManageApplyEO> list = new ArrayList<>();
|
||||||
|
OtaManageApplyEO oma = null;
|
||||||
|
for (Object obj : array) {
|
||||||
|
oma = JSONObject.parseObject(JSONObject.toJSONString(obj), OtaManageApplyEO.class);
|
||||||
|
if (ObjectUtils.isNotEmpty(oma)) {
|
||||||
|
list.add(oma);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
otaManageApplyEOService.temporarySave(list, cut);
|
||||||
|
return Result.OK("保存成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "提交")
|
||||||
|
@ApiOperation(value = "提交", notes = "提交")
|
||||||
|
@PostMapping(value = "/submit")
|
||||||
|
public Result<?> submit(@RequestBody JSONObject jsonObject) {
|
||||||
|
JSONArray array = jsonObject.getJSONArray("list");
|
||||||
|
String cut = jsonObject.getString("cut");
|
||||||
|
List<OtaManageApplyEO> list = new ArrayList<>();
|
||||||
|
OtaManageApplyEO oma = null;
|
||||||
|
for (Object obj : array) {
|
||||||
|
oma = JSONObject.parseObject(JSONObject.toJSONString(obj), OtaManageApplyEO.class);
|
||||||
|
if (ObjectUtils.isNotEmpty(oma)) {
|
||||||
|
list.add(oma);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<String> msgList = otaManageApplyEOService.submit(list, cut);
|
||||||
|
Map<String,Object> res = new HashMap<>();
|
||||||
|
res.put("msgList",msgList);
|
||||||
|
return Result.OK("操作成功!", res);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "批量设置")
|
||||||
|
@ApiOperation(value = "批量设置", notes = "批量设置")
|
||||||
|
@PostMapping(value = "/updateVdrBatch")
|
||||||
|
public Result<?> updateVdrBatch(@RequestBody JSONObject jsonObject) {
|
||||||
|
JSONArray array = jsonObject.getJSONArray("list");
|
||||||
|
List<OtaManageApplyEO> list = new ArrayList<>();
|
||||||
|
OtaManageApplyEO oma = null;
|
||||||
|
for (Object obj : array) {
|
||||||
|
oma = JSONObject.parseObject(JSONObject.toJSONString(obj), OtaManageApplyEO.class);
|
||||||
|
if (ObjectUtils.isNotEmpty(oma)) {
|
||||||
|
list.add(oma);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String projectVersion = jsonObject.getString("projectVersion");
|
||||||
|
String attestationSchedule = jsonObject.getString("attestationSchedule");
|
||||||
|
String remark = jsonObject.getString("remark");
|
||||||
|
String cut = jsonObject.getString("cut");
|
||||||
|
|
||||||
|
List<String> msgList = otaManageApplyEOService.updateVdrBatch(list, projectVersion, attestationSchedule, remark, cut);
|
||||||
|
Map<String,Object> res = new HashMap<>();
|
||||||
|
res.put("msgList",msgList);
|
||||||
|
return Result.OK("操作成功!", res);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "申请重新匹配")
|
||||||
|
@ApiOperation(value = "申请重新匹配", notes = "申请重新匹配")
|
||||||
|
@GetMapping(value = "/applyRematch")
|
||||||
|
public Result<?> applyRematch(String ids,String projectVersion,String cut) {
|
||||||
|
List<String> msgList = otaManageApplyEOService.applyRematch(ids,projectVersion, cut);
|
||||||
|
Map<String,Object> res = new HashMap<>();
|
||||||
|
res.put("msgList",msgList);
|
||||||
|
return Result.OK("操作成功!", res);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "确认")
|
||||||
|
@ApiOperation(value = "确认", notes = "确认")
|
||||||
|
@GetMapping(value = "/confirm")
|
||||||
|
public Result<?> confirm(String ids,String cut) {
|
||||||
|
List<String> msgList = otaManageApplyEOService.confirm(ids, cut);
|
||||||
|
Map<String,Object> res = new HashMap<>();
|
||||||
|
res.put("msgList",msgList);
|
||||||
|
return Result.OK("操作成功!", res);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "退回")
|
||||||
|
@ApiOperation(value = "退回", notes = "退回")
|
||||||
|
@GetMapping(value = "/reject")
|
||||||
|
public Result<?> reject(String ids,String rejectReason,String cut) {
|
||||||
|
List<String> msgList = otaManageApplyEOService.reject(ids, rejectReason, cut);
|
||||||
|
Map<String,Object> res = new HashMap<>();
|
||||||
|
res.put("msgList",msgList);
|
||||||
|
return Result.OK("操作成功!", res);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "查询项目涉及的VDR版本")
|
||||||
|
@ApiOperation(value = "查询项目涉及的VDR版本", notes = "查询项目涉及的VDR版本")
|
||||||
|
@GetMapping(value = "/getVdrListByProject")
|
||||||
|
public Result<?> getVdrListByProject(String projectId, String cut) {
|
||||||
|
List<OtaManageApplyEO> resList = otaManageApplyEOService.getVdrListByProject(projectId, cut);
|
||||||
|
return Result.OK("操作成功!", resList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "通过软件版本和项目ID查询状态")
|
||||||
|
@ApiOperation(value = "通过软件版本和项目ID查询状态", notes = "通过软件版本和项目ID查询状态")
|
||||||
|
@GetMapping(value = "/getStatisticalStatus")
|
||||||
|
public Result<?> getStatisticalStatus(String projectId, String plannedBpLaunchBatch, String cut) {
|
||||||
|
List<ProjectLibraryBase> projectLibraryBaseList = new ArrayList<>();
|
||||||
|
List<Map<String, Object>> res = otaManageApplyEOService.getStatisticalStatus(projectId, plannedBpLaunchBatch, cut,projectLibraryBaseList);
|
||||||
|
if(!res.isEmpty()){
|
||||||
|
return Result.OK("操作成功!", res.get(0));
|
||||||
|
}else{
|
||||||
|
return Result.OK("操作成功!", new HashMap<>());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 全车型导出excel
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param otaManageApplyEO
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/allCarExportXls")
|
||||||
|
@ApiOperation(value = "全车型导出excel", notes = "OTA管理导出excel")
|
||||||
|
public ModelAndView allCarExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO) {
|
||||||
|
return otaManageApplyEOService.allCarExportXls(request, otaManageApplyEO);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 分车型导出excel
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param otaManageApplyEO
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/oneCarExportXls")
|
||||||
|
@ApiOperation(value = "分车型导出excel", notes = "OTA管理导出excel")
|
||||||
|
public ModelAndView oneCarExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO) {
|
||||||
|
return otaManageApplyEOService.oneCarExportXls(request, otaManageApplyEO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+180
@@ -0,0 +1,180 @@
|
|||||||
|
package com.jero.modules.ota.controller;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import com.jero.common.api.vo.Result;
|
||||||
|
import com.jero.common.constant.enums.CutEnum;
|
||||||
|
import com.jero.common.system.query.QueryGenerator;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageHistory;
|
||||||
|
import com.jero.modules.ota.service.IOtaManageHistoryService;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import com.jero.common.system.base.controller.JeroController;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import com.jero.common.aspect.annotation.AutoLog;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理列表历史记录
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-20
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Api(tags="OTA管理列表历史记录")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/ota/otaManageHistory")
|
||||||
|
@Slf4j
|
||||||
|
public class OtaManageHistoryController extends JeroController<OtaManageHistory, IOtaManageHistoryService> {
|
||||||
|
@Autowired
|
||||||
|
private IOtaManageHistoryService otaManageHistoryService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页列表查询
|
||||||
|
*
|
||||||
|
* @param otaManageHistory
|
||||||
|
* @param pageNo
|
||||||
|
* @param pageSize
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理列表历史记录-分页列表查询")
|
||||||
|
@ApiOperation(value="OTA管理列表历史记录-分页列表查询", notes="OTA管理列表历史记录-分页列表查询")
|
||||||
|
@GetMapping(value = "/page")
|
||||||
|
public Result<?> queryPageList(OtaManageHistory otaManageHistory,String cut,
|
||||||
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||||
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||||
|
HttpServletRequest req) {
|
||||||
|
QueryWrapper<OtaManageHistory> queryWrapper = QueryGenerator.initQueryWrapper(otaManageHistory, req.getParameterMap());
|
||||||
|
queryWrapper.orderByDesc("create_time");
|
||||||
|
Page<OtaManageHistory> page = new Page<OtaManageHistory>(pageNo, pageSize);
|
||||||
|
IPage<OtaManageHistory> pageList = otaManageHistoryService.page(page, queryWrapper);
|
||||||
|
List<OtaManageHistory> records = pageList.getRecords();
|
||||||
|
for (OtaManageHistory omh : records) {
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
omh.setContent(omh.getContentCn());
|
||||||
|
} else {
|
||||||
|
omh.setContent(omh.getContentEn());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Result.OK(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理列表历史记录-列表查询")
|
||||||
|
@ApiOperation(value="OTA管理列表历史记录-列表查询", notes="OTA管理列表历史记录-列表查询")
|
||||||
|
@GetMapping(value = "/list")
|
||||||
|
public Result<List<OtaManageHistory>> queryList() {
|
||||||
|
List<OtaManageHistory> list = otaManageHistoryService.queryList();
|
||||||
|
return Result.OK(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加
|
||||||
|
*
|
||||||
|
* @param otaManageHistory
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理列表历史记录-添加")
|
||||||
|
@ApiOperation(value="OTA管理列表历史记录-添加", notes="OTA管理列表历史记录-添加")
|
||||||
|
@PostMapping(value = "/add")
|
||||||
|
public Result<?> add(@Validated @RequestBody OtaManageHistory otaManageHistory) {
|
||||||
|
otaManageHistoryService.add(otaManageHistory);
|
||||||
|
return Result.OK("添加成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
*
|
||||||
|
* @param otaManageHistory
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理列表历史记录-编辑")
|
||||||
|
@ApiOperation(value="OTA管理列表历史记录-编辑", notes="OTA管理列表历史记录-编辑")
|
||||||
|
@PutMapping(value = "/edit")
|
||||||
|
public Result<?> edit(@Validated @RequestBody OtaManageHistory otaManageHistory) {
|
||||||
|
otaManageHistoryService.editById(otaManageHistory);
|
||||||
|
return Result.OK("编辑成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理列表历史记录-通过id删除")
|
||||||
|
@ApiOperation(value="OTA管理列表历史记录-通过id删除", notes="OTA管理列表历史记录-通过id删除")
|
||||||
|
@DeleteMapping(value = "/delete")
|
||||||
|
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
|
||||||
|
otaManageHistoryService.deleteById(id);
|
||||||
|
return Result.OK("删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理列表历史记录-批量删除")
|
||||||
|
@ApiOperation(value="OTA管理列表历史记录-批量删除", notes="OTA管理列表历史记录-批量删除")
|
||||||
|
@DeleteMapping(value = "/deleteBatch")
|
||||||
|
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
||||||
|
this.otaManageHistoryService.deleteByIds(Arrays.asList(ids.split(",")));
|
||||||
|
return Result.OK("批量删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理列表历史记录-通过id查询")
|
||||||
|
@ApiOperation(value="OTA管理列表历史记录-通过id查询", notes="OTA管理列表历史记录-通过id查询")
|
||||||
|
@GetMapping(value = "/queryById")
|
||||||
|
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
|
||||||
|
OtaManageHistory otaManageHistory = otaManageHistoryService.queryById(id);
|
||||||
|
if(otaManageHistory==null) {
|
||||||
|
return Result.error("未找到对应数据");
|
||||||
|
}
|
||||||
|
return Result.OK(otaManageHistory);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param otaManageHistory
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/exportXls")
|
||||||
|
public ModelAndView exportXls(HttpServletRequest request, OtaManageHistory otaManageHistory) {
|
||||||
|
return super.exportXls(request, otaManageHistory, OtaManageHistory.class, "OTA管理列表历史记录");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过excel导入数据
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||||
|
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
return super.importExcel(request, response, OtaManageHistory.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+170
@@ -0,0 +1,170 @@
|
|||||||
|
package com.jero.modules.ota.controller;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import com.jero.common.api.vo.Result;
|
||||||
|
import com.jero.common.system.query.QueryGenerator;
|
||||||
|
import com.jero.modules.ota.entity.OtaManagePermission;
|
||||||
|
import com.jero.modules.ota.service.IOtaManagePermissionService;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import com.jero.common.system.base.controller.JeroController;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import com.jero.common.aspect.annotation.AutoLog;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理权限列表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-20
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Api(tags="OTA管理权限列表")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/ota/otaManagePermission")
|
||||||
|
@Slf4j
|
||||||
|
public class OtaManagePermissionController extends JeroController<OtaManagePermission, IOtaManagePermissionService> {
|
||||||
|
@Autowired
|
||||||
|
private IOtaManagePermissionService otaManagePermissionService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页列表查询
|
||||||
|
*
|
||||||
|
* @param otaManagePermission
|
||||||
|
* @param pageNo
|
||||||
|
* @param pageSize
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理权限列表-分页列表查询")
|
||||||
|
@ApiOperation(value="OTA管理权限列表-分页列表查询", notes="OTA管理权限列表-分页列表查询")
|
||||||
|
@GetMapping(value = "/page")
|
||||||
|
public Result<?> queryPageList(OtaManagePermission otaManagePermission,
|
||||||
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||||
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||||
|
HttpServletRequest req) {
|
||||||
|
QueryWrapper<OtaManagePermission> queryWrapper = QueryGenerator.initQueryWrapper(otaManagePermission, req.getParameterMap());
|
||||||
|
Page<OtaManagePermission> page = new Page<OtaManagePermission>(pageNo, pageSize);
|
||||||
|
IPage<OtaManagePermission> pageList = otaManagePermissionService.page(page, queryWrapper);
|
||||||
|
return Result.OK(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理权限列表-列表查询")
|
||||||
|
@ApiOperation(value="OTA管理权限列表-列表查询", notes="OTA管理权限列表-列表查询")
|
||||||
|
@GetMapping(value = "/list")
|
||||||
|
public Result<List<OtaManagePermission>> queryList() {
|
||||||
|
List<OtaManagePermission> list = otaManagePermissionService.queryList();
|
||||||
|
return Result.OK(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加
|
||||||
|
*
|
||||||
|
* @param otaManagePermission
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理权限列表-添加")
|
||||||
|
@ApiOperation(value="OTA管理权限列表-添加", notes="OTA管理权限列表-添加")
|
||||||
|
@PostMapping(value = "/add")
|
||||||
|
public Result<?> add(@Validated @RequestBody OtaManagePermission otaManagePermission) {
|
||||||
|
otaManagePermissionService.add(otaManagePermission);
|
||||||
|
return Result.OK("添加成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
*
|
||||||
|
* @param otaManagePermission
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理权限列表-编辑")
|
||||||
|
@ApiOperation(value="OTA管理权限列表-编辑", notes="OTA管理权限列表-编辑")
|
||||||
|
@PutMapping(value = "/edit")
|
||||||
|
public Result<?> edit(@Validated @RequestBody OtaManagePermission otaManagePermission) {
|
||||||
|
otaManagePermissionService.editById(otaManagePermission);
|
||||||
|
return Result.OK("编辑成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理权限列表-通过id删除")
|
||||||
|
@ApiOperation(value="OTA管理权限列表-通过id删除", notes="OTA管理权限列表-通过id删除")
|
||||||
|
@DeleteMapping(value = "/delete")
|
||||||
|
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
|
||||||
|
otaManagePermissionService.deleteById(id);
|
||||||
|
return Result.OK("删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理权限列表-批量删除")
|
||||||
|
@ApiOperation(value="OTA管理权限列表-批量删除", notes="OTA管理权限列表-批量删除")
|
||||||
|
@DeleteMapping(value = "/deleteBatch")
|
||||||
|
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
||||||
|
this.otaManagePermissionService.deleteByIds(Arrays.asList(ids.split(",")));
|
||||||
|
return Result.OK("批量删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理权限列表-通过id查询")
|
||||||
|
@ApiOperation(value="OTA管理权限列表-通过id查询", notes="OTA管理权限列表-通过id查询")
|
||||||
|
@GetMapping(value = "/queryById")
|
||||||
|
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
|
||||||
|
OtaManagePermission otaManagePermission = otaManagePermissionService.queryById(id);
|
||||||
|
if(otaManagePermission==null) {
|
||||||
|
return Result.error("未找到对应数据");
|
||||||
|
}
|
||||||
|
return Result.OK(otaManagePermission);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param otaManagePermission
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/exportXls")
|
||||||
|
public ModelAndView exportXls(HttpServletRequest request, OtaManagePermission otaManagePermission) {
|
||||||
|
return super.exportXls(request, otaManagePermission, OtaManagePermission.class, "OTA管理权限列表");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过excel导入数据
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||||
|
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
return super.importExcel(request, response, OtaManagePermission.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+170
@@ -0,0 +1,170 @@
|
|||||||
|
package com.jero.modules.ota.controller;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import com.jero.common.api.vo.Result;
|
||||||
|
import com.jero.common.system.query.QueryGenerator;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageReceive;
|
||||||
|
import com.jero.modules.ota.service.IOtaManageReceiveService;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import com.jero.common.system.base.controller.JeroController;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import com.jero.common.aspect.annotation.AutoLog;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-21
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Api(tags="OTA管理")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/ota/otaManageReceive")
|
||||||
|
@Slf4j
|
||||||
|
public class OtaManageReceiveController extends JeroController<OtaManageReceive, IOtaManageReceiveService> {
|
||||||
|
@Autowired
|
||||||
|
private IOtaManageReceiveService otaManageReceiveService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页列表查询
|
||||||
|
*
|
||||||
|
* @param otaManageReceive
|
||||||
|
* @param pageNo
|
||||||
|
* @param pageSize
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理-分页列表查询")
|
||||||
|
@ApiOperation(value="OTA管理-分页列表查询", notes="OTA管理-分页列表查询")
|
||||||
|
@GetMapping(value = "/page")
|
||||||
|
public Result<?> queryPageList(OtaManageReceive otaManageReceive,
|
||||||
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||||
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||||
|
HttpServletRequest req) {
|
||||||
|
QueryWrapper<OtaManageReceive> queryWrapper = QueryGenerator.initQueryWrapper(otaManageReceive, req.getParameterMap());
|
||||||
|
Page<OtaManageReceive> page = new Page<OtaManageReceive>(pageNo, pageSize);
|
||||||
|
IPage<OtaManageReceive> pageList = otaManageReceiveService.page(page, queryWrapper);
|
||||||
|
return Result.OK(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理-列表查询")
|
||||||
|
@ApiOperation(value="OTA管理-列表查询", notes="OTA管理-列表查询")
|
||||||
|
@GetMapping(value = "/list")
|
||||||
|
public Result<List<OtaManageReceive>> queryList() {
|
||||||
|
List<OtaManageReceive> list = otaManageReceiveService.queryList();
|
||||||
|
return Result.OK(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加
|
||||||
|
*
|
||||||
|
* @param otaManageReceive
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理-添加")
|
||||||
|
@ApiOperation(value="OTA管理-添加", notes="OTA管理-添加")
|
||||||
|
@PostMapping(value = "/add")
|
||||||
|
public Result<?> add(@Validated @RequestBody OtaManageReceive otaManageReceive) {
|
||||||
|
otaManageReceiveService.add(otaManageReceive);
|
||||||
|
return Result.OK("添加成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
*
|
||||||
|
* @param otaManageReceive
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理-编辑")
|
||||||
|
@ApiOperation(value="OTA管理-编辑", notes="OTA管理-编辑")
|
||||||
|
@PutMapping(value = "/edit")
|
||||||
|
public Result<?> edit(@Validated @RequestBody OtaManageReceive otaManageReceive) {
|
||||||
|
otaManageReceiveService.editById(otaManageReceive);
|
||||||
|
return Result.OK("编辑成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理-通过id删除")
|
||||||
|
@ApiOperation(value="OTA管理-通过id删除", notes="OTA管理-通过id删除")
|
||||||
|
@DeleteMapping(value = "/delete")
|
||||||
|
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
|
||||||
|
otaManageReceiveService.deleteById(id);
|
||||||
|
return Result.OK("删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理-批量删除")
|
||||||
|
@ApiOperation(value="OTA管理-批量删除", notes="OTA管理-批量删除")
|
||||||
|
@DeleteMapping(value = "/deleteBatch")
|
||||||
|
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
||||||
|
this.otaManageReceiveService.deleteByIds(Arrays.asList(ids.split(",")));
|
||||||
|
return Result.OK("批量删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理-通过id查询")
|
||||||
|
@ApiOperation(value="OTA管理-通过id查询", notes="OTA管理-通过id查询")
|
||||||
|
@GetMapping(value = "/queryById")
|
||||||
|
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
|
||||||
|
OtaManageReceive otaManageReceive = otaManageReceiveService.queryById(id);
|
||||||
|
if(otaManageReceive==null) {
|
||||||
|
return Result.error("未找到对应数据");
|
||||||
|
}
|
||||||
|
return Result.OK(otaManageReceive);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param otaManageReceive
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/exportXls")
|
||||||
|
public ModelAndView exportXls(HttpServletRequest request, OtaManageReceive otaManageReceive) {
|
||||||
|
return super.exportXls(request, otaManageReceive, OtaManageReceive.class, "OTA管理");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过excel导入数据
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||||
|
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
return super.importExcel(request, response, OtaManageReceive.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+170
@@ -0,0 +1,170 @@
|
|||||||
|
package com.jero.modules.ota.controller;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import com.jero.common.api.vo.Result;
|
||||||
|
import com.jero.common.system.query.QueryGenerator;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageReceiveNsdp;
|
||||||
|
import com.jero.modules.ota.service.IOtaManageReceiveNsdpService;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import com.jero.common.system.base.controller.JeroController;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import com.jero.common.aspect.annotation.AutoLog;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理NSDP同步表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-21
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Api(tags="OTA管理NSDP同步表")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/ota/otaManageReceiveNsdp")
|
||||||
|
@Slf4j
|
||||||
|
public class OtaManageReceiveNsdpController extends JeroController<OtaManageReceiveNsdp, IOtaManageReceiveNsdpService> {
|
||||||
|
@Autowired
|
||||||
|
private IOtaManageReceiveNsdpService otaManageReceiveNsdpService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页列表查询
|
||||||
|
*
|
||||||
|
* @param otaManageReceiveNsdp
|
||||||
|
* @param pageNo
|
||||||
|
* @param pageSize
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理NSDP同步表-分页列表查询")
|
||||||
|
@ApiOperation(value="OTA管理NSDP同步表-分页列表查询", notes="OTA管理NSDP同步表-分页列表查询")
|
||||||
|
@GetMapping(value = "/page")
|
||||||
|
public Result<?> queryPageList(OtaManageReceiveNsdp otaManageReceiveNsdp,
|
||||||
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||||
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||||
|
HttpServletRequest req) {
|
||||||
|
QueryWrapper<OtaManageReceiveNsdp> queryWrapper = QueryGenerator.initQueryWrapper(otaManageReceiveNsdp, req.getParameterMap());
|
||||||
|
Page<OtaManageReceiveNsdp> page = new Page<OtaManageReceiveNsdp>(pageNo, pageSize);
|
||||||
|
IPage<OtaManageReceiveNsdp> pageList = otaManageReceiveNsdpService.page(page, queryWrapper);
|
||||||
|
return Result.OK(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理NSDP同步表-列表查询")
|
||||||
|
@ApiOperation(value="OTA管理NSDP同步表-列表查询", notes="OTA管理NSDP同步表-列表查询")
|
||||||
|
@GetMapping(value = "/list")
|
||||||
|
public Result<List<OtaManageReceiveNsdp>> queryList() {
|
||||||
|
List<OtaManageReceiveNsdp> list = otaManageReceiveNsdpService.queryList();
|
||||||
|
return Result.OK(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加
|
||||||
|
*
|
||||||
|
* @param otaManageReceiveNsdp
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理NSDP同步表-添加")
|
||||||
|
@ApiOperation(value="OTA管理NSDP同步表-添加", notes="OTA管理NSDP同步表-添加")
|
||||||
|
@PostMapping(value = "/add")
|
||||||
|
public Result<?> add(@Validated @RequestBody OtaManageReceiveNsdp otaManageReceiveNsdp) {
|
||||||
|
otaManageReceiveNsdpService.add(otaManageReceiveNsdp);
|
||||||
|
return Result.OK("添加成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
*
|
||||||
|
* @param otaManageReceiveNsdp
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理NSDP同步表-编辑")
|
||||||
|
@ApiOperation(value="OTA管理NSDP同步表-编辑", notes="OTA管理NSDP同步表-编辑")
|
||||||
|
@PutMapping(value = "/edit")
|
||||||
|
public Result<?> edit(@Validated @RequestBody OtaManageReceiveNsdp otaManageReceiveNsdp) {
|
||||||
|
otaManageReceiveNsdpService.editById(otaManageReceiveNsdp);
|
||||||
|
return Result.OK("编辑成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理NSDP同步表-通过id删除")
|
||||||
|
@ApiOperation(value="OTA管理NSDP同步表-通过id删除", notes="OTA管理NSDP同步表-通过id删除")
|
||||||
|
@DeleteMapping(value = "/delete")
|
||||||
|
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
|
||||||
|
otaManageReceiveNsdpService.deleteById(id);
|
||||||
|
return Result.OK("删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理NSDP同步表-批量删除")
|
||||||
|
@ApiOperation(value="OTA管理NSDP同步表-批量删除", notes="OTA管理NSDP同步表-批量删除")
|
||||||
|
@DeleteMapping(value = "/deleteBatch")
|
||||||
|
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
||||||
|
this.otaManageReceiveNsdpService.deleteByIds(Arrays.asList(ids.split(",")));
|
||||||
|
return Result.OK("批量删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "OTA管理NSDP同步表-通过id查询")
|
||||||
|
@ApiOperation(value="OTA管理NSDP同步表-通过id查询", notes="OTA管理NSDP同步表-通过id查询")
|
||||||
|
@GetMapping(value = "/queryById")
|
||||||
|
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
|
||||||
|
OtaManageReceiveNsdp otaManageReceiveNsdp = otaManageReceiveNsdpService.queryById(id);
|
||||||
|
if(otaManageReceiveNsdp==null) {
|
||||||
|
return Result.error("未找到对应数据");
|
||||||
|
}
|
||||||
|
return Result.OK(otaManageReceiveNsdp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param otaManageReceiveNsdp
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/exportXls")
|
||||||
|
public ModelAndView exportXls(HttpServletRequest request, OtaManageReceiveNsdp otaManageReceiveNsdp) {
|
||||||
|
return super.exportXls(request, otaManageReceiveNsdp, OtaManageReceiveNsdp.class, "OTA管理NSDP同步表");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过excel导入数据
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||||
|
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
return super.importExcel(request, response, OtaManageReceiveNsdp.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+219
@@ -0,0 +1,219 @@
|
|||||||
|
package com.jero.modules.ota.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.jero.modules.ota.vo.VersionVO;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 数据对接表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-09
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("ota_manage_apply")
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="ota_manage_apply对象", description="数据对接表")
|
||||||
|
public class OtaManageApplyEO implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**主键*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@ApiModelProperty(value = "主键")
|
||||||
|
private java.lang.String id;
|
||||||
|
|
||||||
|
/**创建人*/
|
||||||
|
@ApiModelProperty(value = "创建人")
|
||||||
|
private java.lang.String createBy;
|
||||||
|
|
||||||
|
/**创建日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "创建日期")
|
||||||
|
private java.util.Date createTime;
|
||||||
|
|
||||||
|
/**更新人*/
|
||||||
|
@ApiModelProperty(value = "更新人")
|
||||||
|
private java.lang.String updateBy;
|
||||||
|
|
||||||
|
/**更新日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "更新日期")
|
||||||
|
private java.util.Date updateTime;
|
||||||
|
|
||||||
|
/**所属部门*/
|
||||||
|
@ApiModelProperty(value = "所属部门")
|
||||||
|
private java.lang.String sysOrgCode;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "VDR")
|
||||||
|
private java.lang.String vdr;
|
||||||
|
|
||||||
|
/**项目版本*/
|
||||||
|
@Excel(name = "项目版本", width = 15)
|
||||||
|
@ApiModelProperty(value = "项目版本-id")
|
||||||
|
private java.lang.String projectVersion;
|
||||||
|
|
||||||
|
/**认证进度*/
|
||||||
|
@Excel(name = "认证进度", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证进度")
|
||||||
|
private java.lang.String attestationSchedule;
|
||||||
|
|
||||||
|
/**匹配状态*/
|
||||||
|
@Excel(name = "匹配状态", width = 15)
|
||||||
|
@ApiModelProperty(value = "匹配状态")
|
||||||
|
private java.lang.String matchStatus;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "匹配状态显示文字")
|
||||||
|
private java.lang.String matchStatusText;
|
||||||
|
|
||||||
|
/**备注*/
|
||||||
|
@Excel(name = "备注", width = 15)
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private java.lang.String remark;
|
||||||
|
|
||||||
|
|
||||||
|
/**适用车型*/
|
||||||
|
@Excel(name = "适用车型", width = 15)
|
||||||
|
@ApiModelProperty(value = "适用车型")
|
||||||
|
private java.lang.String vehicleType;
|
||||||
|
//--------------------------------------------------------
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "软件版本")
|
||||||
|
private java.lang.String plannedBpLaunchBatch;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "适用车型")
|
||||||
|
private java.lang.String appliedVehicleProject;
|
||||||
|
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "市场")
|
||||||
|
private java.lang.String market;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "软件发布时间")
|
||||||
|
private String releaseDate;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "软件发布时间")
|
||||||
|
private java.util.Date releaseNameDate;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "软件发布时间-开始")
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
|
private java.util.Date softwareIssueTimeStart;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "软件发布时间-结束")
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
|
private java.util.Date softwareIssueTimeEnd;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "主题")
|
||||||
|
private java.lang.String summary;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "VDR状态")
|
||||||
|
private java.lang.String status;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "认证影响")
|
||||||
|
private java.lang.String homologationImpact;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "影响描述")
|
||||||
|
private java.lang.String homologation;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "影响法规-CN")
|
||||||
|
private java.lang.String impactCnHomo;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "影响法规-EU")
|
||||||
|
private java.lang.String impactEuHomo;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "影响法规-查询条件")
|
||||||
|
private java.lang.String impactHomo;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "责任部门")
|
||||||
|
private java.lang.String masterDomain;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "R&H Studio")
|
||||||
|
private java.lang.String studio;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "R&H Studio中文名")
|
||||||
|
private java.lang.String studioText;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "认证开始")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date attestationStartTime;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "认证申报")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date certificationSubmission;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "认证批准")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date attestationEndTime;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "项目版本下拉选项")
|
||||||
|
private List<VersionVO> versionVOList;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "项目版本-中文")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private java.lang.String projectVersionText;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否禁用版本和进度编辑")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private boolean disabled;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "表头排序字段")
|
||||||
|
private java.lang.String orderByField;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "排序")
|
||||||
|
private java.lang.String orderBy;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "导出文件名")
|
||||||
|
private String exportName;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "中英文切换")
|
||||||
|
private String cut;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+85
@@ -0,0 +1,85 @@
|
|||||||
|
package com.jero.modules.ota.entity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||||
|
import com.jero.common.aspect.annotation.Dict;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理列表历史记录
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-20
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("ota_manage_history")
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="ota_manage_history对象", description="OTA管理列表历史记录")
|
||||||
|
public class OtaManageHistory implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**主键*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@ApiModelProperty(value = "主键")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**创建人*/
|
||||||
|
@ApiModelProperty(value = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**创建日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "创建日期")
|
||||||
|
private java.util.Date createTime;
|
||||||
|
|
||||||
|
/**更新人*/
|
||||||
|
@ApiModelProperty(value = "更新人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**更新日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "更新日期")
|
||||||
|
private java.util.Date updateTime;
|
||||||
|
|
||||||
|
/**所属部门*/
|
||||||
|
@ApiModelProperty(value = "所属部门")
|
||||||
|
private String sysOrgCode;
|
||||||
|
|
||||||
|
/**关联applyID*/
|
||||||
|
@Excel(name = "关联applyID", width = 15)
|
||||||
|
@ApiModelProperty(value = "关联applyID")
|
||||||
|
private String applyId;
|
||||||
|
|
||||||
|
/**操作记录cn*/
|
||||||
|
@Excel(name = "操作记录cn", width = 15)
|
||||||
|
@ApiModelProperty(value = "操作记录cn")
|
||||||
|
private String contentCn;
|
||||||
|
|
||||||
|
/**操作记录en*/
|
||||||
|
@Excel(name = "操作记录en", width = 15)
|
||||||
|
@ApiModelProperty(value = "操作记录en")
|
||||||
|
private String contentEn;
|
||||||
|
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "操作记录")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
}
|
||||||
+74
@@ -0,0 +1,74 @@
|
|||||||
|
package com.jero.modules.ota.entity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||||
|
import com.jero.common.aspect.annotation.Dict;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理权限列表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-20
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("ota_manage_permission")
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="ota_manage_permission对象", description="OTA管理权限列表")
|
||||||
|
public class OtaManagePermission implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**主键*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@ApiModelProperty(value = "主键")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**创建人*/
|
||||||
|
@ApiModelProperty(value = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**创建日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "创建日期")
|
||||||
|
private java.util.Date createTime;
|
||||||
|
|
||||||
|
/**更新人*/
|
||||||
|
@ApiModelProperty(value = "更新人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**更新日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "更新日期")
|
||||||
|
private java.util.Date updateTime;
|
||||||
|
|
||||||
|
/**所属部门*/
|
||||||
|
@ApiModelProperty(value = "所属部门")
|
||||||
|
private String sysOrgCode;
|
||||||
|
|
||||||
|
/**人员ID*/
|
||||||
|
@Excel(name = "人员ID", width = 15)
|
||||||
|
@ApiModelProperty(value = "人员ID")
|
||||||
|
private String userId;
|
||||||
|
|
||||||
|
/**对应applyID*/
|
||||||
|
@Excel(name = "对应applyID", width = 15)
|
||||||
|
@ApiModelProperty(value = "对应applyID")
|
||||||
|
private String applyId;
|
||||||
|
|
||||||
|
}
|
||||||
+121
@@ -0,0 +1,121 @@
|
|||||||
|
package com.jero.modules.ota.entity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||||
|
import com.jero.common.aspect.annotation.Dict;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-21
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("ota_manage_receive")
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="ota_manage_receive对象", description="OTA管理")
|
||||||
|
public class OtaManageReceive implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**主键*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@ApiModelProperty(value = "主键")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**创建人*/
|
||||||
|
@ApiModelProperty(value = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**创建日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "创建日期")
|
||||||
|
private java.util.Date createTime;
|
||||||
|
|
||||||
|
/**更新人*/
|
||||||
|
@ApiModelProperty(value = "更新人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**更新日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "更新日期")
|
||||||
|
private java.util.Date updateTime;
|
||||||
|
|
||||||
|
/**所属部门*/
|
||||||
|
@ApiModelProperty(value = "所属部门")
|
||||||
|
private String sysOrgCode;
|
||||||
|
|
||||||
|
/**软件版本*/
|
||||||
|
@Excel(name = "软件版本", width = 15)
|
||||||
|
@ApiModelProperty(value = "软件版本")
|
||||||
|
private String plannedBpLaunchBatch;
|
||||||
|
|
||||||
|
/**更新时间(yyyyMMdd)*/
|
||||||
|
@Excel(name = "更新时间(yyyyMMdd)", width = 15)
|
||||||
|
@ApiModelProperty(value = "更新时间(yyyyMMdd)")
|
||||||
|
private String updateDate;
|
||||||
|
|
||||||
|
/**主题*/
|
||||||
|
@Excel(name = "主题", width = 15)
|
||||||
|
@ApiModelProperty(value = "主题")
|
||||||
|
private String summary;
|
||||||
|
|
||||||
|
/**VDR状态*/
|
||||||
|
@Excel(name = "VDR状态", width = 15)
|
||||||
|
@ApiModelProperty(value = "VDR状态")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
/**认证影响*/
|
||||||
|
@Excel(name = "认证影响", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证影响")
|
||||||
|
private String homologationImpact;
|
||||||
|
|
||||||
|
/**影响描述*/
|
||||||
|
@Excel(name = "影响描述", width = 15)
|
||||||
|
@ApiModelProperty(value = "影响描述")
|
||||||
|
private String homologation;
|
||||||
|
|
||||||
|
/**影响法规-CN*/
|
||||||
|
@Excel(name = "影响法规-CN", width = 15)
|
||||||
|
@ApiModelProperty(value = "影响法规-CN")
|
||||||
|
private String impactCnHomo;
|
||||||
|
|
||||||
|
/**影响法规-EU*/
|
||||||
|
@Excel(name = "影响法规-EU", width = 15)
|
||||||
|
@ApiModelProperty(value = "影响法规-EU")
|
||||||
|
private String impactEuHomo;
|
||||||
|
|
||||||
|
/**责任部门*/
|
||||||
|
@Excel(name = "责任部门", width = 15)
|
||||||
|
@ApiModelProperty(value = "责任部门")
|
||||||
|
private String masterDomain;
|
||||||
|
|
||||||
|
/**适用车型*/
|
||||||
|
@Excel(name = "适用车型", width = 15)
|
||||||
|
@ApiModelProperty(value = "适用车型")
|
||||||
|
private String appliedVehicleProject;
|
||||||
|
|
||||||
|
/**发布时间*/
|
||||||
|
@Excel(name = "发布时间", width = 15)
|
||||||
|
@ApiModelProperty(value = "发布时间")
|
||||||
|
private String releaseDate;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+96
@@ -0,0 +1,96 @@
|
|||||||
|
package com.jero.modules.ota.entity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||||
|
import com.jero.common.aspect.annotation.Dict;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理NSDP同步表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-21
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("ota_manage_receive_nsdp")
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="ota_manage_receive_nsdp对象", description="OTA管理NSDP同步表")
|
||||||
|
public class OtaManageReceiveNsdp implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**主键*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@ApiModelProperty(value = "主键")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**创建人*/
|
||||||
|
@ApiModelProperty(value = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**创建日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "创建日期")
|
||||||
|
private java.util.Date createTime;
|
||||||
|
|
||||||
|
/**更新人*/
|
||||||
|
@ApiModelProperty(value = "更新人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**更新日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "更新日期")
|
||||||
|
private java.util.Date updateTime;
|
||||||
|
|
||||||
|
/**所属部门*/
|
||||||
|
@ApiModelProperty(value = "所属部门")
|
||||||
|
private String sysOrgCode;
|
||||||
|
|
||||||
|
/**平台*/
|
||||||
|
@Excel(name = "平台", width = 15)
|
||||||
|
@ApiModelProperty(value = "平台")
|
||||||
|
private String platformName;
|
||||||
|
|
||||||
|
/**发布版本*/
|
||||||
|
@Excel(name = "发布版本", width = 15)
|
||||||
|
@ApiModelProperty(value = "发布版本")
|
||||||
|
private String releaseName;
|
||||||
|
|
||||||
|
/**发布类型*/
|
||||||
|
@Excel(name = "发布类型", width = 15)
|
||||||
|
@ApiModelProperty(value = "发布类型")
|
||||||
|
private String releaseType;
|
||||||
|
|
||||||
|
/**名称*/
|
||||||
|
@Excel(name = "名称", width = 15)
|
||||||
|
@ApiModelProperty(value = "名称")
|
||||||
|
private String dateName;
|
||||||
|
|
||||||
|
/**发布时间*/
|
||||||
|
@Excel(name = "发布时间", width = 15)
|
||||||
|
@ApiModelProperty(value = "发布时间")
|
||||||
|
private String releaseDate;
|
||||||
|
|
||||||
|
/**创建时间*/
|
||||||
|
@Excel(name = "创建时间", width = 15, format = "yyyy-MM-dd")
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
private java.util.Date createdAt;
|
||||||
|
|
||||||
|
}
|
||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
package com.jero.modules.ota.entity;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description
|
||||||
|
* @date 2023/8/17 18:38
|
||||||
|
* @auth zhn
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class OtaManageReceiveNsdpEO {
|
||||||
|
//软件版本
|
||||||
|
private String releaseName;
|
||||||
|
|
||||||
|
//发布时间
|
||||||
|
private String releaseDate;
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package com.jero.modules.ota.enums;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public enum OtaCarEnum {
|
||||||
|
|
||||||
|
|
||||||
|
ALL("All", "All"),
|
||||||
|
CN_ALL("CN All", "EU All"),
|
||||||
|
EU_ALL("EU All", "EU All");
|
||||||
|
|
||||||
|
String name;
|
||||||
|
String value;
|
||||||
|
|
||||||
|
OtaCarEnum(String name, String value) {
|
||||||
|
this.name = name;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static List<String> getOtaNameList() {
|
||||||
|
List<String> nameList = new ArrayList<>();
|
||||||
|
for (OtaCarEnum e : values()) {
|
||||||
|
nameList.add(e.getName());
|
||||||
|
}
|
||||||
|
return nameList;
|
||||||
|
}
|
||||||
|
}
|
||||||
+39
@@ -0,0 +1,39 @@
|
|||||||
|
package com.jero.modules.ota.enums;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public enum OtaHomoImpactEnum {
|
||||||
|
|
||||||
|
YES("Yes", "Yes"),
|
||||||
|
INTER_VALID("Internal Validation", "Internal Validation"),
|
||||||
|
HOMOEX_RETEST("Homo Extension - Retest", "Homo Extension - Retest"),
|
||||||
|
HOMOEX_PAPERWORK("Homo Extension - Paperwork", "Homo Extension - Paperwork");
|
||||||
|
|
||||||
|
String name;
|
||||||
|
String value;
|
||||||
|
|
||||||
|
OtaHomoImpactEnum(String name, String value) {
|
||||||
|
this.name = name;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+60
@@ -0,0 +1,60 @@
|
|||||||
|
package com.jero.modules.ota.enums;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
public enum OtaStatusEnum {
|
||||||
|
|
||||||
|
//待匹配、待审批、锁定、退回、待重新匹配
|
||||||
|
|
||||||
|
TO_BE_MATCHED("to_be_matched", "待匹配","To be matched"),
|
||||||
|
TO_BE_APPROVED("to_be_approved", "待审批","To be approved"),
|
||||||
|
LOCKED("locked", "锁定","Locked"),
|
||||||
|
REJECTED("rejected", "退回","Rejected"),
|
||||||
|
TO_BE_REMATCHED("to_be_rematched", "待重新匹配","To be rematched"),
|
||||||
|
NA("--", "--","--");
|
||||||
|
|
||||||
|
String key;
|
||||||
|
String nameCN;
|
||||||
|
String nameEN;
|
||||||
|
|
||||||
|
OtaStatusEnum(String key, String nameCN,String nameEN) {
|
||||||
|
this.key = key;
|
||||||
|
this.nameCN = nameCN;
|
||||||
|
this.nameEN = nameEN;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKey(String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNameCN() {
|
||||||
|
return nameCN;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNameCN(String nameCN) {
|
||||||
|
this.nameCN = nameCN;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNameEN() {
|
||||||
|
return nameEN;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNameEN(String nameEN) {
|
||||||
|
this.nameEN = nameEN;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OtaStatusEnum getByKey(String key){
|
||||||
|
String result = "";
|
||||||
|
for (OtaStatusEnum enu : OtaStatusEnum.values()) {
|
||||||
|
if(StringUtils.equals(enu.key,key)){
|
||||||
|
return enu;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return OtaStatusEnum.NA;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+211
@@ -0,0 +1,211 @@
|
|||||||
|
package com.jero.modules.ota.job;
|
||||||
|
|
||||||
|
import com.jero.modules.ota.entity.OtaManageReceive;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageReceiveNsdp;
|
||||||
|
import com.jero.modules.ota.service.IOtaManageReceiveNsdpService;
|
||||||
|
import com.jero.modules.ota.service.IOtaManageReceiveService;
|
||||||
|
import com.jero.modules.system.util.StringUtils;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.quartz.Job;
|
||||||
|
import org.quartz.JobExecutionContext;
|
||||||
|
import org.quartz.JobExecutionException;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class OtaDataUpdate implements Job {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IOtaManageReceiveService otaManageReceiveService;
|
||||||
|
@Autowired
|
||||||
|
private IOtaManageReceiveNsdpService otaManageReceiveNsdpService;
|
||||||
|
|
||||||
|
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* OTA数据更新
|
||||||
|
*
|
||||||
|
* @param jobExecutionContext
|
||||||
|
* @throws JobExecutionException
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||||
|
List<OtaManageReceive> omrSyncList = otaManageReceiveService.getReceiveSync();
|
||||||
|
List<OtaManageReceive> omrList = otaManageReceiveService.queryList();
|
||||||
|
|
||||||
|
List<OtaManageReceive> addList = new ArrayList<>();
|
||||||
|
List<String> delList = new ArrayList<>();
|
||||||
|
List<OtaManageReceive> updateList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (OtaManageReceive omr : omrList) {
|
||||||
|
boolean delFlag = true;
|
||||||
|
for (OtaManageReceive omrSync : omrSyncList) {
|
||||||
|
if (omr.getId().equals(omrSync.getId())) {
|
||||||
|
delFlag = false;
|
||||||
|
if (!compareReceive(omr, omrSync)) {
|
||||||
|
updateList.add(omrSync);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (delFlag) {
|
||||||
|
//同步数据中被删除
|
||||||
|
delList.add(omr.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (OtaManageReceive omrSync : omrSyncList) {
|
||||||
|
boolean addFlag = true;
|
||||||
|
for (OtaManageReceive omr : omrList) {
|
||||||
|
if (omr.getId().equals(omrSync.getId())) {
|
||||||
|
addFlag = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (addFlag) {
|
||||||
|
//同步数据中新增
|
||||||
|
addList.add(omrSync);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isNotEmpty(addList)) {
|
||||||
|
otaManageReceiveService.saveBatch(addList);
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isNotEmpty(addList)) {
|
||||||
|
otaManageReceiveService.deleteByIds(delList);
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isNotEmpty(updateList)) {
|
||||||
|
otaManageReceiveService.updateBatchById(updateList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<OtaManageReceiveNsdp> omrnSyncList = otaManageReceiveNsdpService.getOtaManageReceiveNsdpSync();
|
||||||
|
List<OtaManageReceiveNsdp> omrnList = otaManageReceiveNsdpService.queryList();
|
||||||
|
|
||||||
|
List<OtaManageReceiveNsdp> addNsdpList = new ArrayList<>();
|
||||||
|
List<String> delNsdpList = new ArrayList<>();
|
||||||
|
List<OtaManageReceiveNsdp> updateNsdpList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (OtaManageReceiveNsdp omrn : omrnList) {
|
||||||
|
boolean delFlag = true;
|
||||||
|
for (OtaManageReceiveNsdp omrnSync : omrnSyncList) {
|
||||||
|
if (omrn.getId().equals(omrnSync.getId())) {
|
||||||
|
delFlag = false;
|
||||||
|
if (!compareReceive(omrn, omrnSync)) {
|
||||||
|
updateNsdpList.add(omrnSync);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (delFlag) {
|
||||||
|
//同步数据中被删除
|
||||||
|
delNsdpList.add(omrn.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Date> releaceDateMap = new HashMap<>();
|
||||||
|
Date today = new Date();
|
||||||
|
|
||||||
|
for (OtaManageReceiveNsdp omrnSync : omrnSyncList) {
|
||||||
|
boolean addFlag = true;
|
||||||
|
for (OtaManageReceiveNsdp omrn : omrnList) {
|
||||||
|
if (omrn.getId().equals(omrnSync.getId())) {
|
||||||
|
addFlag = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (addFlag) {
|
||||||
|
//同步数据中新增
|
||||||
|
addNsdpList.add(omrnSync);
|
||||||
|
}
|
||||||
|
//找到最快来临的发布时间
|
||||||
|
Date releaceDate = releaceDateMap.get(omrnSync.getReleaseName());
|
||||||
|
try {
|
||||||
|
Date syncDate = sdf.parse(omrnSync.getReleaseDate());
|
||||||
|
if (null == releaceDate) {
|
||||||
|
releaceDateMap.put(omrnSync.getReleaseName(), syncDate);
|
||||||
|
} else {
|
||||||
|
if (syncDate.after(today) && syncDate.before(releaceDate)) {
|
||||||
|
releaceDateMap.put(omrnSync.getReleaseName(), syncDate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CollectionUtils.isNotEmpty(addNsdpList)) {
|
||||||
|
otaManageReceiveNsdpService.saveBatch(addNsdpList);
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isNotEmpty(delNsdpList)) {
|
||||||
|
otaManageReceiveNsdpService.deleteByIds(delNsdpList);
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isNotEmpty(updateNsdpList)) {
|
||||||
|
otaManageReceiveNsdpService.updateBatchById(updateNsdpList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<OtaManageReceive> dateUpdateList = new ArrayList<>();
|
||||||
|
List<OtaManageReceive> omrListForDate = otaManageReceiveService.queryList();
|
||||||
|
for (OtaManageReceive omr : omrListForDate) {
|
||||||
|
if(releaceDateMap.containsKey(omr.getPlannedBpLaunchBatch())){
|
||||||
|
omr.setReleaseDate(sdf.format(releaceDateMap.get(omr.getPlannedBpLaunchBatch())));
|
||||||
|
dateUpdateList.add(omr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isNotEmpty(dateUpdateList)) {
|
||||||
|
otaManageReceiveService.updateBatchById(dateUpdateList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean compareReceive(OtaManageReceiveNsdp omrn, OtaManageReceiveNsdp omrnSync) {
|
||||||
|
if (!StringUtils.equals(omrn.getPlatformName(), omrnSync.getPlatformName())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omrn.getReleaseName(), omrnSync.getReleaseName())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omrn.getReleaseType(), omrnSync.getReleaseType())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omrn.getDateName(), omrnSync.getDateName())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omrn.getReleaseDate(), omrnSync.getReleaseDate())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean compareReceive(OtaManageReceive omr, OtaManageReceive omrSync) {
|
||||||
|
if (!StringUtils.equals(omr.getPlannedBpLaunchBatch(), omrSync.getPlannedBpLaunchBatch())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omr.getSummary(), omrSync.getSummary())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omr.getStatus(), omrSync.getStatus())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omr.getHomologationImpact(), omrSync.getHomologationImpact())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omr.getHomologation(), omrSync.getHomologation())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omr.getImpactCnHomo(), omrSync.getImpactCnHomo())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omr.getImpactEuHomo(), omrSync.getImpactEuHomo())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omr.getMasterDomain(), omrSync.getMasterDomain())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!StringUtils.equals(omr.getAppliedVehicleProject(), omrSync.getAppliedVehicleProject())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+43
@@ -0,0 +1,43 @@
|
|||||||
|
package com.jero.modules.ota.mapper;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageReceiveNsdpEO;
|
||||||
|
import com.jero.modules.ota.vo.VersionVO;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageApplyEO;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.pptx4j.pml.STTLTriggerRuntimeNode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 数据对接表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-09
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface OtaManageApplyEOMapper extends BaseMapper<OtaManageApplyEO> {
|
||||||
|
|
||||||
|
// Page<OtaManageApplyEO> getOtaPage(Page<OtaManageApplyEO> page, @Param("otaManageApplyEO") OtaManageApplyEO otaManageApplyEO);
|
||||||
|
List<OtaManageApplyEO> getOtaList(@Param("otaManageApplyEO") OtaManageApplyEO otaManageApplyEO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分车型列表-分页列表查询
|
||||||
|
* @param otaManageApplyEO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OtaManageApplyEO> getOtaCarPage(@Param("otaManageApplyEO") OtaManageApplyEO otaManageApplyEO);
|
||||||
|
|
||||||
|
List<VersionVO> getByAppliedVehicleProject(@Param("appliedVehicleProject") String appliedVehicleProject);
|
||||||
|
|
||||||
|
List<OtaManageApplyEO> getOtaCarList(@Param("plannedBpLaunchBatch") String plannedBpLaunchBatch);
|
||||||
|
|
||||||
|
List<OtaManageReceiveNsdpEO> getReleaseDate(@Param("plannedBpLaunchBatchList") List<String> plannedBpLaunchBatchList);
|
||||||
|
|
||||||
|
List<VersionVO> getProjectVersion(@Param("car") String car, @Param("market") String market);
|
||||||
|
|
||||||
|
List<VersionVO> getVersionInfo(@Param("vdr") String vdr);
|
||||||
|
|
||||||
|
List<OtaManageApplyEO> getListByProjectId(@Param("projectId") String projectId,@Param("plannedBpLaunchBatch") String plannedBpLaunchBatch);
|
||||||
|
}
|
||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
package com.jero.modules.ota.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageHistory;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理列表历史记录
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-20
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface OtaManageHistoryMapper extends BaseMapper<OtaManageHistory> {
|
||||||
|
|
||||||
|
}
|
||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
package com.jero.modules.ota.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import com.jero.modules.ota.entity.OtaManagePermission;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理权限列表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-20
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface OtaManagePermissionMapper extends BaseMapper<OtaManagePermission> {
|
||||||
|
|
||||||
|
}
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
package com.jero.modules.ota.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageReceive;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-21
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface OtaManageReceiveMapper extends BaseMapper<OtaManageReceive> {
|
||||||
|
List<OtaManageReceive> getReceiveByVdr(@Param("vdrList") List<String> vdrList);
|
||||||
|
|
||||||
|
List<OtaManageReceive> getReceiveList();
|
||||||
|
List<OtaManageReceive> getReceiveSync();
|
||||||
|
|
||||||
|
}
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
package com.jero.modules.ota.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageReceiveNsdp;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理NSDP同步表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-21
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface OtaManageReceiveNsdpMapper extends BaseMapper<OtaManageReceiveNsdp> {
|
||||||
|
|
||||||
|
List<OtaManageReceiveNsdp> getOtaManageReceiveNsdpSync();
|
||||||
|
|
||||||
|
}
|
||||||
+155
@@ -0,0 +1,155 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.jero.modules.ota.mapper.OtaManageApplyEOMapper">
|
||||||
|
<resultMap id="OtaManageApplyEOResultMap" type="com.jero.modules.ota.entity.OtaManageApplyEO">
|
||||||
|
<id column="id" property="id" />
|
||||||
|
<result column="create_by" property="createBy" />
|
||||||
|
<result column="create_time" property="createTime" />
|
||||||
|
<result column="update_by" property="updateBy" />
|
||||||
|
<result column="update_time" property="updateTime" />
|
||||||
|
<result column="sys_org_code" property="sysOrgCode" />
|
||||||
|
<result column="vdr" property="vdr" />
|
||||||
|
<result column="project_version" property="projectVersion" />
|
||||||
|
<result column="attestation_schedule" property="attestationSchedule" />
|
||||||
|
<result column="match_status" property="matchStatus" />
|
||||||
|
<result column="remark" property="remark" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="getListByProjectId" resultType="com.jero.modules.ota.entity.OtaManageApplyEO">
|
||||||
|
select * from ota_manage_apply
|
||||||
|
JOIN ota_manage_receive ON ota_manage_apply.vdr = ota_manage_receive.id
|
||||||
|
<where>
|
||||||
|
<if test="projectId != null and projectId != ''">
|
||||||
|
ota_manage_apply.project_version in
|
||||||
|
<foreach collection="projectId.split(',')" index="index" item="item" open="(" separator="," close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test="plannedBpLaunchBatch != null and plannedBpLaunchBatch != ''">
|
||||||
|
and ota_manage_receive.planned_bp_launch_batch =#{plannedBpLaunchBatch}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getOtaList" resultType="com.jero.modules.ota.entity.OtaManageApplyEO">
|
||||||
|
select * from ota_manage_receive
|
||||||
|
<where>
|
||||||
|
<if test="otaManageApplyEO.plannedBpLaunchBatch != null and otaManageApplyEO.plannedBpLaunchBatch != ''">
|
||||||
|
planned_bp_launch_batch =#{otaManageApplyEO.plannedBpLaunchBatch}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test="otaManageApplyEO.appliedVehicleProject != null and otaManageApplyEO.appliedVehicleProject != ''">
|
||||||
|
and applied_vehicle_project LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.appliedVehicleProject}),'%')
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test="otaManageApplyEO.market != null and otaManageApplyEO.market != ''">
|
||||||
|
and applied_vehicle_project LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.market}),'%')
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test="otaManageApplyEO.vdr != null and otaManageApplyEO.vdr != ''">
|
||||||
|
and id LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.vdr}),'%')
|
||||||
|
</if>
|
||||||
|
<if test="otaManageApplyEO.summary != null and otaManageApplyEO.summary != ''">
|
||||||
|
and summary LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.summary}),'%')
|
||||||
|
</if>
|
||||||
|
<if test="otaManageApplyEO.impactHomo != null and otaManageApplyEO.impactHomo != ''">
|
||||||
|
and (impact_cn_homo LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.impactHomo}),'%')
|
||||||
|
and impact_eu_homo LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.impactHomo}),'%'))
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
order by create_time desc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getOtaCarPage" resultType="com.jero.modules.ota.entity.OtaManageApplyEO">
|
||||||
|
select omr.id as vdr,omr.planned_bp_launch_batch,omr.update_date,
|
||||||
|
omr.summary,omr.status,
|
||||||
|
omr.homologation_impact,omr.homologation,
|
||||||
|
omr.impact_cn_homo,omr.impact_eu_homo,
|
||||||
|
omr.master_domain,omr.applied_vehicle_project,
|
||||||
|
oma.id,oma.project_version,oma.attestation_schedule,oma.match_status,oma.remark,oma.vehicle_type
|
||||||
|
from ota_manage_receive omr
|
||||||
|
left join ota_manage_apply oma on oma.vdr = omr.id
|
||||||
|
<where>
|
||||||
|
1=1
|
||||||
|
<if test="otaManageApplyEO.plannedBpLaunchBatch != null and otaManageApplyEO.plannedBpLaunchBatch != ''">
|
||||||
|
and omr.planned_bp_launch_batch =#{otaManageApplyEO.plannedBpLaunchBatch}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test="otaManageApplyEO.vdr != null and otaManageApplyEO.vdr != ''">
|
||||||
|
and omr.id LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.vdr}),'%')
|
||||||
|
</if>
|
||||||
|
<if test="otaManageApplyEO.summary != null and otaManageApplyEO.summary != ''">
|
||||||
|
and omr.summary LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.summary}),'%')
|
||||||
|
</if>
|
||||||
|
<if test="otaManageApplyEO.impactHomo != null and otaManageApplyEO.impactHomo != ''">
|
||||||
|
and (omr.impact_cn_homo LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.impactHomo}),'%')
|
||||||
|
and omr.impact_eu_homo LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.impactHomo}),'%'))
|
||||||
|
</if>
|
||||||
|
<if test="otaManageApplyEO.appliedVehicleProject != null and otaManageApplyEO.appliedVehicleProject != ''">
|
||||||
|
and omr.applied_vehicle_project LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.appliedVehicleProject}),'%')
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
order by omr.id desc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="getByAppliedVehicleProject" resultType="com.jero.modules.ota.vo.VersionVO">
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getOtaCarList" resultType="com.jero.modules.ota.entity.OtaManageApplyEO">
|
||||||
|
select * from ota_manage_receive
|
||||||
|
<if test="plannedBpLaunchBatch != null and plannedBpLaunchBatch != ''">
|
||||||
|
where planned_bp_launch_batch =#{plannedBpLaunchBatch}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getReleaseDate" resultType="com.jero.modules.ota.entity.OtaManageReceiveNsdpEO">
|
||||||
|
select * from ota_manage_receive_nsdp
|
||||||
|
where release_name in
|
||||||
|
<foreach collection="plannedBpLaunchBatchList" index="index" item="item" open="(" separator="," close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getProjectVersion" resultType="com.jero.modules.ota.vo.VersionVO">
|
||||||
|
SELECT
|
||||||
|
plb.id projectId,
|
||||||
|
plb.parent_id parentId,
|
||||||
|
plb.target_market market,
|
||||||
|
plb.studio_engineer studio,
|
||||||
|
plb.project_version versionNumber,
|
||||||
|
pni.project_name car,
|
||||||
|
pyni.year_name yearName from project_library_base plb
|
||||||
|
join project_name_info pni on pni.id = plb.project_name_id
|
||||||
|
join project_year_name_info pyni on pyni.project_name_id = pni.id
|
||||||
|
where plb.target_market LIKE CONCAT(CONCAT('%',#{market}),'%')
|
||||||
|
and pni.project_name =#{car}
|
||||||
|
GROUP BY plb.id
|
||||||
|
ORDER BY project_version asc
|
||||||
|
</select>
|
||||||
|
<select id="getVersionInfo" resultType="com.jero.modules.ota.vo.VersionVO">
|
||||||
|
SELECT
|
||||||
|
plb.id projectId,
|
||||||
|
plb.parent_id parentId,
|
||||||
|
plb.target_market market,
|
||||||
|
plb.project_version versionNumber,
|
||||||
|
ptp.attestation_start_time,
|
||||||
|
ptp.attestation_end_time,
|
||||||
|
ptp.certification_submission,
|
||||||
|
oma.attestation_schedule,
|
||||||
|
oma.project_version,
|
||||||
|
pni.project_name car,
|
||||||
|
pyni.year_name
|
||||||
|
FROM
|
||||||
|
project_library_base plb
|
||||||
|
LEFT JOIN project_task_planning ptp ON plb.id = ptp.project_id
|
||||||
|
LEFT JOIN ota_manage_apply oma ON oma.project_version = plb.id
|
||||||
|
LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id
|
||||||
|
LEFT JOIN project_year_name_info pyni ON pyni.project_name_id = pni.id
|
||||||
|
WHERE oma.vdr = #{vdr}
|
||||||
|
GROUP BY plb.id
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.jero.modules.ota.mapper.OtaManageHistoryMapper">
|
||||||
|
<resultMap id="OtaManageHistoryResultMap" type="com.jero.modules.ota.entity.OtaManageHistory">
|
||||||
|
<id column="id" property="id" />
|
||||||
|
<result column="create_by" property="createBy" />
|
||||||
|
<result column="create_time" property="createTime" />
|
||||||
|
<result column="update_by" property="updateBy" />
|
||||||
|
<result column="update_time" property="updateTime" />
|
||||||
|
<result column="sys_org_code" property="sysOrgCode" />
|
||||||
|
<result column="apply_id" property="applyId" />
|
||||||
|
<result column="content" property="content" />
|
||||||
|
</resultMap>
|
||||||
|
</mapper>
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.jero.modules.ota.mapper.OtaManagePermissionMapper">
|
||||||
|
<resultMap id="OtaManagePermissionResultMap" type="com.jero.modules.ota.entity.OtaManagePermission">
|
||||||
|
<id column="id" property="id" />
|
||||||
|
<result column="create_by" property="createBy" />
|
||||||
|
<result column="create_time" property="createTime" />
|
||||||
|
<result column="update_by" property="updateBy" />
|
||||||
|
<result column="update_time" property="updateTime" />
|
||||||
|
<result column="sys_org_code" property="sysOrgCode" />
|
||||||
|
<result column="user_id" property="userId" />
|
||||||
|
<result column="apply_id" property="applyId" />
|
||||||
|
</resultMap>
|
||||||
|
</mapper>
|
||||||
+39
@@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.jero.modules.ota.mapper.OtaManageReceiveMapper">
|
||||||
|
<resultMap id="OtaManageReceiveResultMap" type="com.jero.modules.ota.entity.OtaManageReceive">
|
||||||
|
<id column="id" property="id" />
|
||||||
|
<result column="create_by" property="createBy" />
|
||||||
|
<result column="create_time" property="createTime" />
|
||||||
|
<result column="update_by" property="updateBy" />
|
||||||
|
<result column="update_time" property="updateTime" />
|
||||||
|
<result column="sys_org_code" property="sysOrgCode" />
|
||||||
|
<result column="planned_bp_launch_batch" property="plannedBpLaunchBatch" />
|
||||||
|
<result column="update_date" property="updateDate" />
|
||||||
|
<result column="summary" property="summary" />
|
||||||
|
<result column="status" property="status" />
|
||||||
|
<result column="homologation_impact" property="homologationImpact" />
|
||||||
|
<result column="homologation" property="homologation" />
|
||||||
|
<result column="impact_cn_homo" property="impactCnHomo" />
|
||||||
|
<result column="impact_eu_homo" property="impactEuHomo" />
|
||||||
|
<result column="master_domain" property="masterDomain" />
|
||||||
|
<result column="applied_vehicle_project" property="appliedVehicleProject" />
|
||||||
|
<result column="release_date" property="releaseDate" />
|
||||||
|
</resultMap>
|
||||||
|
<select id="getReceiveByVdr" resultType="com.jero.modules.ota.entity.OtaManageReceive">
|
||||||
|
select * from ota_manage_receive
|
||||||
|
where id in
|
||||||
|
<foreach collection="vdrList" index="index" item="item" open="(" separator="," close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getReceiveList" resultType="com.jero.modules.ota.entity.OtaManageReceive">
|
||||||
|
select * from ota_manage_receive
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getReceiveSync" resultType="com.jero.modules.ota.entity.OtaManageReceive">
|
||||||
|
select * from ota_manage_receive_sync
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.jero.modules.ota.mapper.OtaManageReceiveNsdpMapper">
|
||||||
|
<resultMap id="OtaManageReceiveNsdpResultMap" type="com.jero.modules.ota.entity.OtaManageReceiveNsdp">
|
||||||
|
<id column="id" property="id" />
|
||||||
|
<result column="create_by" property="createBy" />
|
||||||
|
<result column="create_time" property="createTime" />
|
||||||
|
<result column="update_by" property="updateBy" />
|
||||||
|
<result column="update_time" property="updateTime" />
|
||||||
|
<result column="sys_org_code" property="sysOrgCode" />
|
||||||
|
<result column="platform_name" property="platformName" />
|
||||||
|
<result column="release_name" property="releaseName" />
|
||||||
|
<result column="release_type" property="releaseType" />
|
||||||
|
<result column="date_name" property="dateName" />
|
||||||
|
<result column="release_date" property="releaseDate" />
|
||||||
|
<result column="created_at" property="createdAt" />
|
||||||
|
</resultMap>
|
||||||
|
<select id="getOtaManageReceiveNsdpSync" resultType="com.jero.modules.ota.entity.OtaManageReceiveNsdp">
|
||||||
|
select * from ota_manage_receive_nsdp_sync
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
+137
@@ -0,0 +1,137 @@
|
|||||||
|
package com.jero.modules.ota.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageApplyEO;
|
||||||
|
import com.jero.modules.ota.vo.VersionVO;
|
||||||
|
import com.jero.modules.project.entity.ProjectLibraryBase;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 数据对接表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-09
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface IOtaManageApplyEOService extends IService<OtaManageApplyEO> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*
|
||||||
|
* @param otaManageApplyEO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void add(OtaManageApplyEO otaManageApplyEO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
*
|
||||||
|
* @param otaManageApplyEO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void editById(OtaManageApplyEO otaManageApplyEO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void deleteById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void deleteByIds(List<String> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过适用车型查询
|
||||||
|
*
|
||||||
|
* @param appliedVehicleProject
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<VersionVO> getByAppliedVehicleProject(String appliedVehicleProject);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OtaManageApplyEO> queryList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* OTA管理列表
|
||||||
|
* @param otaManageApplyEO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OtaManageApplyEO> getOtaPage(OtaManageApplyEO otaManageApplyEO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 全车型列表-分页列表查询
|
||||||
|
* @param otaManageApplyEO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OtaManageApplyEO> getAllCarPage(OtaManageApplyEO otaManageApplyEO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分车型列表-分页列表查询
|
||||||
|
* @param otaManageApplyEO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OtaManageApplyEO> getOtaCarPage(OtaManageApplyEO otaManageApplyEO,String cut);
|
||||||
|
/**
|
||||||
|
* 下拉数据-软件版本,适用车型,市场
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String,Object> getPullDownList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
下拉数据-全部和分车型(不含年款)
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<String> getCarList(String cut,String plannedBpLaunchBatch);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param carMarket
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<VersionVO> getProjectVersionList(String carMarket,String cut);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 全车型和分车型详情
|
||||||
|
* @param vdr
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<VersionVO> getVersionInfo(String vdr,String car,String cut);
|
||||||
|
|
||||||
|
void issueNotice(String id);
|
||||||
|
|
||||||
|
List<String> submit(List<OtaManageApplyEO> list, String cut);
|
||||||
|
|
||||||
|
void temporarySave(List<OtaManageApplyEO> list, String cut);
|
||||||
|
|
||||||
|
List<String> updateVdrBatch(List<OtaManageApplyEO> list, String projectVersion, String attestationSchedule, String remark, String cut);
|
||||||
|
|
||||||
|
List<String> applyRematch(String ids, String projectVersion,String cut);
|
||||||
|
|
||||||
|
List<String> confirm(String ids, String cut);
|
||||||
|
|
||||||
|
List<String> reject(String ids, String rejectReason,String cut);
|
||||||
|
|
||||||
|
List<OtaManageApplyEO> getVdrListByProject(String projectId, String cut);
|
||||||
|
|
||||||
|
List<Map<String, Object>> getStatisticalStatus(String projectId, String plannedBpLaunchBatch, String cut,List<ProjectLibraryBase> projectLibraryBaseList);
|
||||||
|
|
||||||
|
ModelAndView otaExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO);
|
||||||
|
|
||||||
|
ModelAndView allCarExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO);
|
||||||
|
|
||||||
|
ModelAndView oneCarExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO);
|
||||||
|
}
|
||||||
+64
@@ -0,0 +1,64 @@
|
|||||||
|
package com.jero.modules.ota.service;
|
||||||
|
|
||||||
|
import com.jero.modules.ota.entity.OtaManageHistory;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理列表历史记录
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-20
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface IOtaManageHistoryService extends IService<OtaManageHistory> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*
|
||||||
|
* @param otaManageHistory
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void add(OtaManageHistory otaManageHistory);
|
||||||
|
|
||||||
|
|
||||||
|
void add(String appId,String contentCn, String contentEn);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
*
|
||||||
|
* @param otaManageHistory
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void editById(OtaManageHistory otaManageHistory);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void deleteById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void deleteByIds(List<String> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
OtaManageHistory queryById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OtaManageHistory> queryList();
|
||||||
|
}
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
package com.jero.modules.ota.service;
|
||||||
|
|
||||||
|
import com.jero.modules.ota.entity.OtaManagePermission;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理权限列表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-20
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface IOtaManagePermissionService extends IService<OtaManagePermission> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*
|
||||||
|
* @param otaManagePermission
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void add(OtaManagePermission otaManagePermission);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
*
|
||||||
|
* @param otaManagePermission
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void editById(OtaManagePermission otaManagePermission);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void deleteById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void deleteByIds(List<String> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
OtaManagePermission queryById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OtaManagePermission> queryList();
|
||||||
|
}
|
||||||
+64
@@ -0,0 +1,64 @@
|
|||||||
|
package com.jero.modules.ota.service;
|
||||||
|
|
||||||
|
import com.jero.modules.ota.entity.OtaManageReceiveNsdp;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理NSDP同步表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-21
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface IOtaManageReceiveNsdpService extends IService<OtaManageReceiveNsdp> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*
|
||||||
|
* @param otaManageReceiveNsdp
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void add(OtaManageReceiveNsdp otaManageReceiveNsdp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
*
|
||||||
|
* @param otaManageReceiveNsdp
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void editById(OtaManageReceiveNsdp otaManageReceiveNsdp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void deleteById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void deleteByIds(List<String> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
OtaManageReceiveNsdp queryById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OtaManageReceiveNsdp> queryList();
|
||||||
|
|
||||||
|
|
||||||
|
List<OtaManageReceiveNsdp> getOtaManageReceiveNsdpSync();
|
||||||
|
}
|
||||||
+70
@@ -0,0 +1,70 @@
|
|||||||
|
package com.jero.modules.ota.service;
|
||||||
|
|
||||||
|
import com.jero.modules.ota.entity.OtaManageApplyEO;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageReceive;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-21
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface IOtaManageReceiveService extends IService<OtaManageReceive> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*
|
||||||
|
* @param otaManageReceive
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void add(OtaManageReceive otaManageReceive);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
*
|
||||||
|
* @param otaManageReceive
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void editById(OtaManageReceive otaManageReceive);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void deleteById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void deleteByIds(List<String> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
OtaManageReceive queryById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OtaManageReceive> queryList();
|
||||||
|
|
||||||
|
List<OtaManageReceive> getReceiveByVdr(List<String> vdrList);
|
||||||
|
|
||||||
|
List<OtaManageReceive> getReceiveByplanned(String plannedBpLaunchBatch);
|
||||||
|
|
||||||
|
List<OtaManageReceive> getReceiveSync();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+1926
File diff suppressed because it is too large
Load Diff
+99
@@ -0,0 +1,99 @@
|
|||||||
|
package com.jero.modules.ota.service.impl;
|
||||||
|
|
||||||
|
import com.jero.modules.ota.entity.OtaManageHistory;
|
||||||
|
import com.jero.modules.ota.mapper.OtaManageHistoryMapper;
|
||||||
|
import com.jero.modules.ota.service.IOtaManageHistoryService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Date;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理列表历史记录
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-20
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class OtaManageHistoryServiceImpl extends ServiceImpl<OtaManageHistoryMapper, OtaManageHistory> implements IOtaManageHistoryService {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*
|
||||||
|
* @param otaManageHistory
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void add(OtaManageHistory otaManageHistory) {
|
||||||
|
Date now = new Date();
|
||||||
|
otaManageHistory.setCreateTime(now);
|
||||||
|
otaManageHistory.setUpdateTime(now);
|
||||||
|
save(otaManageHistory);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(String appId, String contentCn, String contentEn) {
|
||||||
|
OtaManageHistory his = new OtaManageHistory();
|
||||||
|
his.setApplyId(appId);
|
||||||
|
his.setContentCn(contentCn);
|
||||||
|
his.setContentEn(contentEn);
|
||||||
|
this.add(his);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
*
|
||||||
|
* @param otaManageHistory
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void editById(OtaManageHistory otaManageHistory) {
|
||||||
|
Date now = new Date();
|
||||||
|
otaManageHistory.setUpdateTime(now);
|
||||||
|
saveOrUpdate(otaManageHistory);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void deleteById(String id) {
|
||||||
|
removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void deleteByIds(List<String> ids) {
|
||||||
|
removeByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public OtaManageHistory queryById(String id) {
|
||||||
|
return getById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<OtaManageHistory> queryList() {
|
||||||
|
return list();
|
||||||
|
}
|
||||||
|
}
|
||||||
+89
@@ -0,0 +1,89 @@
|
|||||||
|
package com.jero.modules.ota.service.impl;
|
||||||
|
|
||||||
|
import com.jero.modules.ota.entity.OtaManagePermission;
|
||||||
|
import com.jero.modules.ota.mapper.OtaManagePermissionMapper;
|
||||||
|
import com.jero.modules.ota.service.IOtaManagePermissionService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Date;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理权限列表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-20
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class OtaManagePermissionServiceImpl extends ServiceImpl<OtaManagePermissionMapper, OtaManagePermission> implements IOtaManagePermissionService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*
|
||||||
|
* @param otaManagePermission
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void add(OtaManagePermission otaManagePermission) {
|
||||||
|
Date now = new Date();
|
||||||
|
otaManagePermission.setCreateTime(now);
|
||||||
|
otaManagePermission.setUpdateTime(now);
|
||||||
|
save(otaManagePermission);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
*
|
||||||
|
* @param otaManagePermission
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void editById(OtaManagePermission otaManagePermission) {
|
||||||
|
Date now = new Date();
|
||||||
|
otaManagePermission.setUpdateTime(now);
|
||||||
|
saveOrUpdate(otaManagePermission);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void deleteById(String id) {
|
||||||
|
removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void deleteByIds(List<String> ids) {
|
||||||
|
removeByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public OtaManagePermission queryById(String id) {
|
||||||
|
return getById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<OtaManagePermission> queryList() {
|
||||||
|
return list();
|
||||||
|
}
|
||||||
|
}
|
||||||
+94
@@ -0,0 +1,94 @@
|
|||||||
|
package com.jero.modules.ota.service.impl;
|
||||||
|
|
||||||
|
import com.jero.modules.ota.entity.OtaManageReceiveNsdp;
|
||||||
|
import com.jero.modules.ota.mapper.OtaManageReceiveNsdpMapper;
|
||||||
|
import com.jero.modules.ota.service.IOtaManageReceiveNsdpService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Date;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理NSDP同步表
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-21
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class OtaManageReceiveNsdpServiceImpl extends ServiceImpl<OtaManageReceiveNsdpMapper, OtaManageReceiveNsdp> implements IOtaManageReceiveNsdpService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*
|
||||||
|
* @param otaManageReceiveNsdp
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void add(OtaManageReceiveNsdp otaManageReceiveNsdp) {
|
||||||
|
Date now = new Date();
|
||||||
|
otaManageReceiveNsdp.setCreateTime(now);
|
||||||
|
otaManageReceiveNsdp.setUpdateTime(now);
|
||||||
|
save(otaManageReceiveNsdp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
*
|
||||||
|
* @param otaManageReceiveNsdp
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void editById(OtaManageReceiveNsdp otaManageReceiveNsdp) {
|
||||||
|
Date now = new Date();
|
||||||
|
otaManageReceiveNsdp.setUpdateTime(now);
|
||||||
|
saveOrUpdate(otaManageReceiveNsdp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void deleteById(String id) {
|
||||||
|
removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void deleteByIds(List<String> ids) {
|
||||||
|
removeByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public OtaManageReceiveNsdp queryById(String id) {
|
||||||
|
return getById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<OtaManageReceiveNsdp> queryList() {
|
||||||
|
return list();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<OtaManageReceiveNsdp> getOtaManageReceiveNsdpSync() {
|
||||||
|
return this.getBaseMapper().getOtaManageReceiveNsdpSync();
|
||||||
|
}
|
||||||
|
}
|
||||||
+108
@@ -0,0 +1,108 @@
|
|||||||
|
package com.jero.modules.ota.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageReceive;
|
||||||
|
import com.jero.modules.ota.mapper.OtaManageReceiveMapper;
|
||||||
|
import com.jero.modules.ota.service.IOtaManageReceiveService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Date;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: OTA管理
|
||||||
|
* @Author: jero-boot
|
||||||
|
* @Date: 2023-08-21
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class OtaManageReceiveServiceImpl extends ServiceImpl<OtaManageReceiveMapper, OtaManageReceive> implements IOtaManageReceiveService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
*
|
||||||
|
* @param otaManageReceive
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void add(OtaManageReceive otaManageReceive) {
|
||||||
|
Date now = new Date();
|
||||||
|
otaManageReceive.setCreateTime(now);
|
||||||
|
otaManageReceive.setUpdateTime(now);
|
||||||
|
save(otaManageReceive);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
*
|
||||||
|
* @param otaManageReceive
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void editById(OtaManageReceive otaManageReceive) {
|
||||||
|
Date now = new Date();
|
||||||
|
otaManageReceive.setUpdateTime(now);
|
||||||
|
saveOrUpdate(otaManageReceive);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void deleteById(String id) {
|
||||||
|
removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void deleteByIds(List<String> ids) {
|
||||||
|
removeByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public OtaManageReceive queryById(String id) {
|
||||||
|
return getById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表查询
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<OtaManageReceive> queryList() {
|
||||||
|
return this.getBaseMapper().getReceiveList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<OtaManageReceive> getReceiveByVdr(List<String> vdrList) {
|
||||||
|
return this.getBaseMapper().getReceiveByVdr(vdrList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<OtaManageReceive> getReceiveByplanned(String plannedBpLaunchBatch) {
|
||||||
|
QueryWrapper<OtaManageReceive> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.lambda().eq(OtaManageReceive::getPlannedBpLaunchBatch, plannedBpLaunchBatch);
|
||||||
|
return this.list(queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<OtaManageReceive> getReceiveSync() {
|
||||||
|
return this.getBaseMapper().getReceiveSync();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+52
@@ -0,0 +1,52 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description
|
||||||
|
* @date 2023/8/9 11:28
|
||||||
|
* @auth zhn
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class AllCarExportCnVO {
|
||||||
|
|
||||||
|
@Excel(name = "VDR", width = 15)
|
||||||
|
@ApiModelProperty(value = "VDR")
|
||||||
|
private java.lang.String vdr;
|
||||||
|
|
||||||
|
@Excel(name = "主题", width = 15)
|
||||||
|
@ApiModelProperty(value = "主题")
|
||||||
|
private java.lang.String summary;
|
||||||
|
|
||||||
|
@Excel(name = "VDR状态", width = 15)
|
||||||
|
@ApiModelProperty(value = "VDR状态")
|
||||||
|
private java.lang.String status;
|
||||||
|
|
||||||
|
@Excel(name = "认证影响", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证影响")
|
||||||
|
private java.lang.String homologationImpact;
|
||||||
|
|
||||||
|
@Excel(name = "影响描述", width = 30)
|
||||||
|
@ApiModelProperty(value = "影响描述")
|
||||||
|
private java.lang.String homologation;
|
||||||
|
|
||||||
|
@Excel(name = "影响法规-CN", width = 15)
|
||||||
|
@ApiModelProperty(value = "影响法规-CN")
|
||||||
|
private java.lang.String impactCnHomo;
|
||||||
|
|
||||||
|
@Excel(name = "影响法规-EU", width = 15)
|
||||||
|
@ApiModelProperty(value = "影响法规-EU")
|
||||||
|
private java.lang.String impactEuHomo;
|
||||||
|
|
||||||
|
@Excel(name = "责任部门", width = 15)
|
||||||
|
@ApiModelProperty(value = "责任部门")
|
||||||
|
private java.lang.String masterDomain;
|
||||||
|
|
||||||
|
@Excel(name = "适用车型", width = 50)
|
||||||
|
@ApiModelProperty(value = "适用车型")
|
||||||
|
private java.lang.String appliedVehicleProject;
|
||||||
|
|
||||||
|
}
|
||||||
+51
@@ -0,0 +1,51 @@
|
|||||||
|
package com.jero.modules.ota.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description
|
||||||
|
* @date 2023/8/9 11:28
|
||||||
|
* @auth zhn
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class AllCarExportEnVO {
|
||||||
|
|
||||||
|
@Excel(name = "VDR", width = 15)
|
||||||
|
@ApiModelProperty(value = "VDR")
|
||||||
|
private String vdr;
|
||||||
|
|
||||||
|
@Excel(name = "theme", width = 15)
|
||||||
|
@ApiModelProperty(value = "主题")
|
||||||
|
private String summary;
|
||||||
|
|
||||||
|
@Excel(name = "VDR status", width = 15)
|
||||||
|
@ApiModelProperty(value = "VDR状态")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
@Excel(name = "Authentication impact", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证影响")
|
||||||
|
private String homologationImpact;
|
||||||
|
|
||||||
|
@Excel(name = "Impact statement", width = 30)
|
||||||
|
@ApiModelProperty(value = "影响描述")
|
||||||
|
private String homologation;
|
||||||
|
|
||||||
|
@Excel(name = "Influence statute-CN", width = 15)
|
||||||
|
@ApiModelProperty(value = "影响法规-CN")
|
||||||
|
private String impactCnHomo;
|
||||||
|
|
||||||
|
@Excel(name = "Influence statute-EU", width = 15)
|
||||||
|
@ApiModelProperty(value = "影响法规-EU")
|
||||||
|
private String impactEuHomo;
|
||||||
|
|
||||||
|
@Excel(name = "Duty Department", width = 15)
|
||||||
|
@ApiModelProperty(value = "责任部门")
|
||||||
|
private String masterDomain;
|
||||||
|
|
||||||
|
@Excel(name = "Vehicle Type", width = 50)
|
||||||
|
@ApiModelProperty(value = "适用车型")
|
||||||
|
private String appliedVehicleProject;
|
||||||
|
|
||||||
|
}
|
||||||
+91
@@ -0,0 +1,91 @@
|
|||||||
|
package com.jero.modules.ota.vo;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description
|
||||||
|
* @date 2023/8/9 11:28
|
||||||
|
* @auth zhn
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class OneCarExportCnVO {
|
||||||
|
|
||||||
|
@Excel(name = "VDR", width = 15)
|
||||||
|
@ApiModelProperty(value = "VDR")
|
||||||
|
private java.lang.String vdr;
|
||||||
|
|
||||||
|
@Excel(name = "主题", width = 15)
|
||||||
|
@ApiModelProperty(value = "主题")
|
||||||
|
private java.lang.String summary;
|
||||||
|
|
||||||
|
@Excel(name = "VDR状态", width = 15)
|
||||||
|
@ApiModelProperty(value = "VDR状态")
|
||||||
|
private java.lang.String status;
|
||||||
|
|
||||||
|
@Excel(name = "认证影响", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证影响")
|
||||||
|
private java.lang.String homologationImpact;
|
||||||
|
|
||||||
|
@Excel(name = "影响说明", width = 30)
|
||||||
|
@ApiModelProperty(value = "影响说明")
|
||||||
|
private java.lang.String homologation;
|
||||||
|
|
||||||
|
@Excel(name = "影响法规-CN", width = 15)
|
||||||
|
@ApiModelProperty(value = "影响法规-CN")
|
||||||
|
private java.lang.String impactCnHomo;
|
||||||
|
|
||||||
|
@Excel(name = "影响法规-EU", width = 15)
|
||||||
|
@ApiModelProperty(value = "影响法规-EU")
|
||||||
|
private java.lang.String impactEuHomo;
|
||||||
|
|
||||||
|
@Excel(name = "责任部门", width = 15)
|
||||||
|
@ApiModelProperty(value = "责任部门")
|
||||||
|
private java.lang.String masterDomain;
|
||||||
|
|
||||||
|
@Excel(name = "R&H Studio", width = 15)
|
||||||
|
@ApiModelProperty(value = "R&H Studio")
|
||||||
|
private java.lang.String studioText;
|
||||||
|
|
||||||
|
@Excel(name = "项目版本", width = 15)
|
||||||
|
@ApiModelProperty(value = "项目版本")
|
||||||
|
private java.lang.String projectVersionText;
|
||||||
|
|
||||||
|
@Excel(name = "认证开始", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证开始")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date attestationStartTime;
|
||||||
|
|
||||||
|
@Excel(name = "认证申报", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证申报")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date certificationSubmission;
|
||||||
|
|
||||||
|
@Excel(name = "认证批准", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证批准")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date attestationEndTime;
|
||||||
|
|
||||||
|
@Excel(name = "认证进度", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证进度")
|
||||||
|
private java.lang.String attestationSchedule;
|
||||||
|
|
||||||
|
@Excel(name = "匹配状态", width = 15)
|
||||||
|
@ApiModelProperty(value = "匹配状态")
|
||||||
|
private java.lang.String matchStatusText;
|
||||||
|
|
||||||
|
@Excel(name = "备注", width = 15)
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private java.lang.String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+90
@@ -0,0 +1,90 @@
|
|||||||
|
package com.jero.modules.ota.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description
|
||||||
|
* @date 2023/8/9 11:28
|
||||||
|
* @auth zhn
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class OneCarExportEnVO {
|
||||||
|
|
||||||
|
@Excel(name = "VDR", width = 15)
|
||||||
|
@ApiModelProperty(value = "VDR")
|
||||||
|
private String vdr;
|
||||||
|
|
||||||
|
@Excel(name = "theme", width = 15)
|
||||||
|
@ApiModelProperty(value = "主题")
|
||||||
|
private String summary;
|
||||||
|
|
||||||
|
@Excel(name = "VDR status", width = 15)
|
||||||
|
@ApiModelProperty(value = "VDR状态")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
@Excel(name = "Authentication impact", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证影响")
|
||||||
|
private String homologationImpact;
|
||||||
|
|
||||||
|
@Excel(name = "Impact statement", width = 30)
|
||||||
|
@ApiModelProperty(value = "影响说明")
|
||||||
|
private String homologation;
|
||||||
|
|
||||||
|
@Excel(name = "Influence statute-CN", width = 15)
|
||||||
|
@ApiModelProperty(value = "影响法规-CN")
|
||||||
|
private String impactCnHomo;
|
||||||
|
|
||||||
|
@Excel(name = "Influence statute-EU", width = 15)
|
||||||
|
@ApiModelProperty(value = "影响法规-EU")
|
||||||
|
private String impactEuHomo;
|
||||||
|
|
||||||
|
@Excel(name = "Duty Department", width = 15)
|
||||||
|
@ApiModelProperty(value = "责任部门")
|
||||||
|
private String masterDomain;
|
||||||
|
|
||||||
|
@Excel(name = "R&H Studio", width = 15)
|
||||||
|
@ApiModelProperty(value = "R&H Studio")
|
||||||
|
private String studioText;
|
||||||
|
|
||||||
|
@Excel(name = "Project Version", width = 15)
|
||||||
|
@ApiModelProperty(value = "项目版本")
|
||||||
|
private String projectVersionText;
|
||||||
|
|
||||||
|
@Excel(name = "Homo Starts", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证开始")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date attestationStartTime;
|
||||||
|
|
||||||
|
@Excel(name = "Certification declaration", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证申报")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date certificationSubmission;
|
||||||
|
|
||||||
|
@Excel(name = "Homo Approved", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证批准")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date attestationEndTime;
|
||||||
|
|
||||||
|
@Excel(name = "Homologation Progress", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证进度")
|
||||||
|
private String attestationSchedule;
|
||||||
|
|
||||||
|
@Excel(name = "Matching state", width = 15)
|
||||||
|
@ApiModelProperty(value = "匹配状态")
|
||||||
|
private String matchStatusText;
|
||||||
|
|
||||||
|
@Excel(name = "remarks", width = 15)
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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 OtaExportCnVO {
|
||||||
|
|
||||||
|
@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 releaseDate;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package com.jero.modules.ota.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description
|
||||||
|
* @date 2023/8/9 11:28
|
||||||
|
* @auth zhn
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class OtaExportEnVO {
|
||||||
|
|
||||||
|
@Excel(name = "Software version", width = 15)
|
||||||
|
@ApiModelProperty(value = "软件版本")
|
||||||
|
private String plannedBpLaunchBatch;
|
||||||
|
|
||||||
|
@Excel(name = "Market", width = 15)
|
||||||
|
@ApiModelProperty(value = "市场")
|
||||||
|
private String market;
|
||||||
|
|
||||||
|
@Excel(name = "Vehicle Type", width = 50)
|
||||||
|
@ApiModelProperty(value = "适用车型")
|
||||||
|
private String appliedVehicleProject;
|
||||||
|
|
||||||
|
@Excel(name = "Software release time", width = 15)
|
||||||
|
@ApiModelProperty(value = "软件发布时间")
|
||||||
|
private String releaseDate;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
package com.jero.modules.ota.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description
|
||||||
|
* @date 2023/8/9 11:28
|
||||||
|
* @auth zhn
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class VersionVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "项目id")
|
||||||
|
private String projectId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "父id")
|
||||||
|
private String parentId;
|
||||||
|
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
|
@ApiModelProperty(value = "认证开始")
|
||||||
|
private Date attestationStartTime;
|
||||||
|
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
|
@ApiModelProperty(value = "认证申报")
|
||||||
|
private Date certificationSubmission;
|
||||||
|
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
|
@ApiModelProperty(value = "认证批准")
|
||||||
|
private Date attestationEndTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "认证进度")
|
||||||
|
private String attestationSchedule;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "认证进度")
|
||||||
|
private String attestationScheduleText;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "车型")
|
||||||
|
private String car;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "年款")
|
||||||
|
private String yearName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "市场")
|
||||||
|
private String market;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "版本号")
|
||||||
|
private String versionNumber;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "studio")
|
||||||
|
private String studio;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "项目版本名称")
|
||||||
|
private String versionName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "项目版本-id")
|
||||||
|
private java.lang.String projectVersion;
|
||||||
|
|
||||||
|
}
|
||||||
+6
-2
@@ -23,7 +23,9 @@ import org.springframework.web.servlet.ModelAndView;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -103,8 +105,10 @@ public class ProjectTaskPlanningController extends JeroController<ProjectTaskPla
|
|||||||
@ApiOperation(value="法规,认证任务计划 (各阶段确认进度) 表-编辑", notes="法规,认证任务计划 (各阶段确认进度) 表-编辑")
|
@ApiOperation(value="法规,认证任务计划 (各阶段确认进度) 表-编辑", notes="法规,认证任务计划 (各阶段确认进度) 表-编辑")
|
||||||
@PutMapping(value = "/edit")
|
@PutMapping(value = "/edit")
|
||||||
public Result<?> edit(@Validated @RequestBody ProjectTaskPlanning projectTaskPlanning) {
|
public Result<?> edit(@Validated @RequestBody ProjectTaskPlanning projectTaskPlanning) {
|
||||||
projectTaskPlanningService.editById(projectTaskPlanning);
|
boolean matchVdr = projectTaskPlanningService.editById(projectTaskPlanning);
|
||||||
return Result.OK("编辑成功!");
|
Map<String,Object> res = new HashMap<>();
|
||||||
|
res.put("matchVdr",matchVdr);
|
||||||
|
return Result.OK("编辑成功!",res);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+12
@@ -15,6 +15,8 @@ public enum CertificationProgressEnum {
|
|||||||
COMPONENT_REPORT_NOT_SUBMITTED("部件报告未提交","Component report not submitted","5"),
|
COMPONENT_REPORT_NOT_SUBMITTED("部件报告未提交","Component report not submitted","5"),
|
||||||
COMPONENT_REPORT_SUBMITTED("部件报告已提交","Component report submitted","6"),
|
COMPONENT_REPORT_SUBMITTED("部件报告已提交","Component report submitted","6"),
|
||||||
COMPONENT_REPORT_HAS_BEEN_STORED("部件报告已入库","Component report has been stored","7"),
|
COMPONENT_REPORT_HAS_BEEN_STORED("部件报告已入库","Component report has been stored","7"),
|
||||||
|
NA("null","null","8"),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
String name;
|
String name;
|
||||||
@@ -74,4 +76,14 @@ public enum CertificationProgressEnum {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static CertificationProgressEnum getByValue(String value) {
|
||||||
|
CertificationProgressEnum[] values = values();
|
||||||
|
for (CertificationProgressEnum certificationProgressEnum : values) {
|
||||||
|
if (certificationProgressEnum.value.equals(value)) {
|
||||||
|
return certificationProgressEnum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NA;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -26,4 +26,8 @@ public interface ProjectLibraryBaseMapper extends BaseMapper<ProjectLibraryBase>
|
|||||||
List<ProjectLibraryBase> queryById(String id);
|
List<ProjectLibraryBase> queryById(String id);
|
||||||
|
|
||||||
ProjectLibraryBase selectProjectName(@Param("projectLibraryId") String projectLibraryId);
|
ProjectLibraryBase selectProjectName(@Param("projectLibraryId") String projectLibraryId);
|
||||||
|
|
||||||
|
List<ProjectLibraryBase> getListByIds(@Param("idList") List<String> idList);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+10
@@ -290,4 +290,14 @@
|
|||||||
WHERE
|
WHERE
|
||||||
plb.id = #{projectLibraryId}
|
plb.id = #{projectLibraryId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getListByIds" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
|
||||||
|
|
||||||
|
<include refid="select_item"/>
|
||||||
|
where plb.id in
|
||||||
|
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
order by plb.create_time desc
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+4
@@ -184,4 +184,8 @@ public interface IProjectLibraryBaseService extends IService<ProjectLibraryBase>
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Result<?> overallReplacementUser(JSONObject json);
|
Result<?> overallReplacementUser(JSONObject json);
|
||||||
|
|
||||||
|
List<ProjectLibraryBase> queryList(List<String> projectIdList);
|
||||||
|
|
||||||
|
List<ProjectLibraryBase> getListByIds(List<String> projectIdList);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ public interface IProjectTaskPlanningService extends IService<ProjectTaskPlannin
|
|||||||
* @param projectTaskPlanning
|
* @param projectTaskPlanning
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void editById(ProjectTaskPlanning projectTaskPlanning);
|
boolean editById(ProjectTaskPlanning projectTaskPlanning);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id删除
|
* 通过id删除
|
||||||
|
|||||||
+111
@@ -22,6 +22,8 @@ import com.jero.modules.cert.template.enums.ControlTypeEnum;
|
|||||||
import com.jero.modules.dummy.enums.OrderEnum;
|
import com.jero.modules.dummy.enums.OrderEnum;
|
||||||
import com.jero.modules.enums.DictCodeEnum;
|
import com.jero.modules.enums.DictCodeEnum;
|
||||||
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
|
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageApplyEO;
|
||||||
|
import com.jero.modules.ota.service.impl.OtaManageApplyEOServiceImpl;
|
||||||
import com.jero.modules.project.entity.*;
|
import com.jero.modules.project.entity.*;
|
||||||
import com.jero.modules.project.enums.*;
|
import com.jero.modules.project.enums.*;
|
||||||
import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper;
|
import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper;
|
||||||
@@ -48,6 +50,7 @@ import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService;
|
|||||||
import com.jero.modules.top.entity.TopProjectEO;
|
import com.jero.modules.top.entity.TopProjectEO;
|
||||||
import com.jero.modules.top.service.ITopProjectEOService;
|
import com.jero.modules.top.service.ITopProjectEOService;
|
||||||
import com.jero.modules.wkflow.enums.FlowTypeEnum;
|
import com.jero.modules.wkflow.enums.FlowTypeEnum;
|
||||||
|
import javafx.beans.binding.ObjectBinding;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
||||||
@@ -173,6 +176,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IProjectLibraryStatisticsService projectLibraryStatisticsService;
|
private IProjectLibraryStatisticsService projectLibraryStatisticsService;
|
||||||
|
@Autowired
|
||||||
|
private OtaManageApplyEOServiceImpl otaManageApplyEOService;
|
||||||
|
|
||||||
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
private static DecimalFormat df = new DecimalFormat("#.00");
|
private static DecimalFormat df = new DecimalFormat("#.00");
|
||||||
@@ -2576,6 +2581,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
|||||||
this.exportRegulatoryManagement(workbook,params);
|
this.exportRegulatoryManagement(workbook,params);
|
||||||
this.exportCertificationManagement(workbook,params);
|
this.exportCertificationManagement(workbook,params);
|
||||||
this.exportParameterCollecting(workbook,params);
|
this.exportParameterCollecting(workbook,params);
|
||||||
|
this.exportOtaCollecting(workbook,params);
|
||||||
try {
|
try {
|
||||||
response.setHeader("Content-Disposition",
|
response.setHeader("Content-Disposition",
|
||||||
"attachment; filename=" + fileName);
|
"attachment; filename=" + fileName);
|
||||||
@@ -3107,6 +3113,93 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void exportOtaCollecting(HSSFWorkbook workbook, Map<String, Object> params) {
|
||||||
|
String cut = (String) params.get("cut");
|
||||||
|
String sheetName = "OTA状态";
|
||||||
|
String firstTitle = "匹配状态统计,OTA认证进度统计";
|
||||||
|
String secondTitle = "软件版本,待匹配,待审批,锁定,退回,未开始,进行中,实验通过,实验失败,部件报告未提交,部件报告已提交,部件报告已入库";
|
||||||
|
if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||||
|
sheetName = "OTA status";
|
||||||
|
firstTitle = "Matching state statistics,OTA authentication progress statistics";
|
||||||
|
secondTitle = "Software version," +
|
||||||
|
"To be matched," +
|
||||||
|
"To be approved," +
|
||||||
|
"lock," +
|
||||||
|
"Reject,"+
|
||||||
|
"Not started," +
|
||||||
|
"Ongoing," +
|
||||||
|
"Test Passed," +
|
||||||
|
"Test Failed," +
|
||||||
|
"Component report not submitted," +
|
||||||
|
"Component report submitted," +
|
||||||
|
"Component report has been stored";
|
||||||
|
}
|
||||||
|
HSSFSheet sheet = workbook.createSheet(sheetName);
|
||||||
|
//合并单元格 起始行,结束行,起始列,结束列
|
||||||
|
CellRangeAddress region1 = new CellRangeAddress(0, 0, 1, 4);
|
||||||
|
sheet.addMergedRegion(region1);
|
||||||
|
CellRangeAddress region2 = new CellRangeAddress(0, 0, 5, 11);
|
||||||
|
sheet.addMergedRegion(region2);
|
||||||
|
|
||||||
|
String[] firstTitleArr = firstTitle.split(",");
|
||||||
|
String[] secondTitleArr = secondTitle.split(",");
|
||||||
|
Row firstRow = sheet.createRow(0);
|
||||||
|
Row secondRow = sheet.createRow(1);
|
||||||
|
|
||||||
|
CellStyle cellStyleTitle = workbook.createCellStyle();
|
||||||
|
cellStyleTitle.setAlignment(HorizontalAlignment.CENTER);
|
||||||
|
for (int i = 0; i <= 11; i++){
|
||||||
|
sheet.setColumnWidth(i, 3500);
|
||||||
|
Cell firstRowCell = firstRow.createCell(i);
|
||||||
|
firstRowCell.setCellStyle(cellStyleTitle);
|
||||||
|
if(i == 1){
|
||||||
|
firstRowCell.setCellValue(firstTitleArr[0]);
|
||||||
|
}else if(i==5){
|
||||||
|
firstRowCell.setCellValue(firstTitleArr[1]);
|
||||||
|
}
|
||||||
|
Cell secondRowCell = secondRow.createCell(i);
|
||||||
|
secondRowCell.setCellValue(secondTitleArr[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
String projectLibraryId = (String) params.get("projectLibraryId");
|
||||||
|
List<Map<String, Object>> mapList = otaManageApplyEOService.getStatisticalStatus(projectLibraryId, null, cut,null);
|
||||||
|
|
||||||
|
if(ObjectUtils.isNotEmpty(mapList)){
|
||||||
|
int dataIndex = 2;
|
||||||
|
for (Map<String, Object> map : mapList) {
|
||||||
|
String plannedBpLaunchBatch = (String) map.get("plannedBpLaunchBatch");
|
||||||
|
Map<String, Object> matchStatusMap = (Map<String, Object>)map.get("matchStatusMap");
|
||||||
|
Map<String, Object> attestationScheduleMap = (Map<String, Object>)map.get("attestationScheduleMap");
|
||||||
|
|
||||||
|
String.valueOf(matchStatusMap.get("locked"));
|
||||||
|
String locked = String.valueOf(matchStatusMap.get("locked"));
|
||||||
|
String rejected = String.valueOf(matchStatusMap.get("rejected"));
|
||||||
|
String to_be_approved = String.valueOf(matchStatusMap.get("to_be_approved"));
|
||||||
|
String to_be_matched = String.valueOf(matchStatusMap.get("to_be_matched"));
|
||||||
|
String Component_report_has_been_stored = String.valueOf(attestationScheduleMap.get("Component_report_has_been_stored"));
|
||||||
|
String Component_report_not_submitted = String.valueOf(attestationScheduleMap.get("Component_report_not_submitted"));
|
||||||
|
String Component_report_submitted = String.valueOf(attestationScheduleMap.get("Component_report_submitted"));
|
||||||
|
String In_progress = String.valueOf(attestationScheduleMap.get("In_progress"));
|
||||||
|
String Not_start =String.valueOf(attestationScheduleMap.get("Not_start"));
|
||||||
|
String Test_failed = String.valueOf(attestationScheduleMap.get("Test_failed"));
|
||||||
|
String Test_passed = String.valueOf(attestationScheduleMap.get("Test_passed"));
|
||||||
|
Row dataRow = sheet.createRow(dataIndex);
|
||||||
|
dataRow.createCell(0).setCellValue(plannedBpLaunchBatch);
|
||||||
|
dataRow.createCell(1).setCellValue(to_be_matched);
|
||||||
|
dataRow.createCell(2).setCellValue(to_be_approved);
|
||||||
|
dataRow.createCell(3).setCellValue(locked);
|
||||||
|
dataRow.createCell(4).setCellValue(rejected);
|
||||||
|
dataRow.createCell(5).setCellValue(Not_start);
|
||||||
|
dataRow.createCell(6).setCellValue(In_progress);
|
||||||
|
dataRow.createCell(7).setCellValue(Test_passed);
|
||||||
|
dataRow.createCell(8).setCellValue(Test_failed);
|
||||||
|
dataRow.createCell(9).setCellValue(Component_report_not_submitted);
|
||||||
|
dataRow.createCell(10).setCellValue(Component_report_submitted);
|
||||||
|
dataRow.createCell(11).setCellValue(Component_report_has_been_stored);
|
||||||
|
dataIndex ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出认证参数收集-设置数据
|
* 导出认证参数收集-设置数据
|
||||||
@@ -3423,6 +3516,24 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
|||||||
|
|
||||||
return result != 0 ? df.format(result) : "0";
|
return result != 0 ? df.format(result) : "0";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ProjectLibraryBase> queryList(List<String> projectIdList) {
|
||||||
|
QueryWrapper<ProjectLibraryBase> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.in("id",projectIdList);
|
||||||
|
List<ProjectLibraryBase> res = this.list(queryWrapper);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ProjectLibraryBase> getListByIds(List<String> projectIdList) {
|
||||||
|
List<ProjectLibraryBase> res = new ArrayList<>();
|
||||||
|
if(CollectionUtils.isNotEmpty(projectIdList)){
|
||||||
|
res = this.getBaseMapper().getListByIds(projectIdList);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+162
-9
@@ -1,13 +1,10 @@
|
|||||||
package com.jero.modules.project.service.impl;
|
package com.jero.modules.project.service.impl;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.aliyuncs.utils.IOUtils;
|
import com.aliyuncs.utils.IOUtils;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.jero.common.constant.enums.CutEnum;
|
import com.jero.common.constant.enums.CutEnum;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.common.system.query.QueryGenerator;
|
|
||||||
import com.jero.common.system.vo.DictModel;
|
|
||||||
import com.jero.common.system.vo.LoginUser;
|
import com.jero.common.system.vo.LoginUser;
|
||||||
import com.jero.common.util.DateUtils;
|
import com.jero.common.util.DateUtils;
|
||||||
import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO;
|
import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO;
|
||||||
@@ -20,8 +17,21 @@ import com.jero.modules.cert.collect.service.IParamsManifestEOService;
|
|||||||
import com.jero.modules.cert.collect.service.IParamsManifestHistoryEOService;
|
import com.jero.modules.cert.collect.service.IParamsManifestHistoryEOService;
|
||||||
import com.jero.modules.cert.report.entity.ParamsReportConfigDataEO;
|
import com.jero.modules.cert.report.entity.ParamsReportConfigDataEO;
|
||||||
import com.jero.modules.cert.template.enums.ControlTypeEnum;
|
import com.jero.modules.cert.template.enums.ControlTypeEnum;
|
||||||
import com.jero.modules.project.entity.*;
|
import com.jero.modules.ota.entity.OtaManageApplyEO;
|
||||||
import com.jero.modules.project.enums.*;
|
import com.jero.modules.ota.service.impl.OtaManageApplyEOServiceImpl;
|
||||||
|
import com.jero.modules.project.entity.ConditionAssessmentEO;
|
||||||
|
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
|
||||||
|
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
|
||||||
|
import com.jero.modules.project.entity.ProjectLibraryBase;
|
||||||
|
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
|
||||||
|
import com.jero.modules.project.entity.ProjectTaskPlanning;
|
||||||
|
import com.jero.modules.project.enums.CertificationProgressEnum;
|
||||||
|
import com.jero.modules.project.enums.CurrentProjectStatusEnum;
|
||||||
|
import com.jero.modules.project.enums.InventoryAffirmStatusEnum;
|
||||||
|
import com.jero.modules.project.enums.ProjectRoleEnum;
|
||||||
|
import com.jero.modules.project.enums.ProjectTaskPlanningNameEnum;
|
||||||
|
import com.jero.modules.project.enums.ReviewResultEnum;
|
||||||
|
import com.jero.modules.project.enums.TaskAffirmStatusEnum;
|
||||||
import com.jero.modules.project.mapper.ProjectUserPermissionMapper;
|
import com.jero.modules.project.mapper.ProjectUserPermissionMapper;
|
||||||
import com.jero.modules.project.service.IConditionAssessmentEOService;
|
import com.jero.modules.project.service.IConditionAssessmentEOService;
|
||||||
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
|
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
|
||||||
@@ -29,7 +39,6 @@ import com.jero.modules.project.service.IProjectLibraryStatisticsService;
|
|||||||
import com.jero.modules.project.service.IProjectStatusBoardService;
|
import com.jero.modules.project.service.IProjectStatusBoardService;
|
||||||
import com.jero.modules.project.vo.TimeNodeVO;
|
import com.jero.modules.project.vo.TimeNodeVO;
|
||||||
import com.jero.modules.system.entity.SysDictItem;
|
import com.jero.modules.system.entity.SysDictItem;
|
||||||
import com.jero.modules.system.enums.DicCodeEnum;
|
|
||||||
import com.jero.modules.system.mapper.SysRoleMapper;
|
import com.jero.modules.system.mapper.SysRoleMapper;
|
||||||
import com.jero.modules.system.service.IProjectUserBrandService;
|
import com.jero.modules.system.service.IProjectUserBrandService;
|
||||||
import com.jero.modules.system.service.ISysUserService;
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
@@ -41,7 +50,12 @@ import org.apache.commons.lang3.ObjectUtils;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
||||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||||
import org.apache.poi.ss.usermodel.*;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
|
import org.apache.poi.ss.usermodel.CellStyle;
|
||||||
|
import org.apache.poi.ss.usermodel.CellType;
|
||||||
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
||||||
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
||||||
import org.apache.poi.ss.util.CellRangeAddress;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -56,8 +70,17 @@ import java.io.OutputStream;
|
|||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.Calendar;
|
||||||
|
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.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -103,6 +126,8 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
|||||||
private IParamsCollectManifestHistoryEOService paramsCollectManifestHistoryEOService;
|
private IParamsCollectManifestHistoryEOService paramsCollectManifestHistoryEOService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IProjectLibraryStatisticsService projectLibraryStatisticsService;
|
private IProjectLibraryStatisticsService projectLibraryStatisticsService;
|
||||||
|
@Autowired
|
||||||
|
private OtaManageApplyEOServiceImpl otaManageApplyEOService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -650,6 +675,24 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
|||||||
List<ProjectTaskPlanning> ptpEoList = this.projectTaskPlanningService.list();
|
List<ProjectTaskPlanning> ptpEoList = this.projectTaskPlanningService.list();
|
||||||
List<ParamsManifestEO> pmEoList = this.paramsManifestEOService.list();
|
List<ParamsManifestEO> pmEoList = this.paramsManifestEOService.list();
|
||||||
pmEoList.addAll(this.paramsManifestHistoryEOService.list());
|
pmEoList.addAll(this.paramsManifestHistoryEOService.list());
|
||||||
|
|
||||||
|
LambdaQueryWrapper<OtaManageApplyEO> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.isNotNull(OtaManageApplyEO::getProjectVersion);
|
||||||
|
List<String> projectIdList = otaManageApplyEOService.list(wrapper).stream().map(OtaManageApplyEO::getProjectVersion).distinct().collect(Collectors.toList());
|
||||||
|
List<Map<String, Object>> mapList = new ArrayList<>();
|
||||||
|
if(!projectIdList.isEmpty()){
|
||||||
|
List<String> projectIdListTemp = plbEoList.stream()
|
||||||
|
.filter(e -> projectIdList.contains(e.getId())).map(ProjectLibraryBase::getId).distinct().collect(Collectors.toList());
|
||||||
|
if(!projectIdListTemp.isEmpty()){
|
||||||
|
for (String projectId : projectIdListTemp) {
|
||||||
|
List<Map<String, Object>> statisticalStatus = otaManageApplyEOService.getStatisticalStatus(projectId,
|
||||||
|
"",
|
||||||
|
projectLibraryBase.getCut(),plbEoList);
|
||||||
|
mapList.addAll(statisticalStatus);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
log.info("一阶段消耗时间:" + (System.currentTimeMillis() - startTime));
|
log.info("一阶段消耗时间:" + (System.currentTimeMillis() - startTime));
|
||||||
List<ParamsCollectManifestEO> pcmEoList = this.paramsCollectManifestEOService.getList(null);
|
List<ParamsCollectManifestEO> pcmEoList = this.paramsCollectManifestEOService.getList(null);
|
||||||
List<ParamsCollectManifestHistoryEO> pcmHisEoList = this.paramsCollectManifestHistoryEOService.list();
|
List<ParamsCollectManifestHistoryEO> pcmHisEoList = this.paramsCollectManifestHistoryEOService.list();
|
||||||
@@ -667,6 +710,7 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
|||||||
|
|
||||||
HSSFSheet corssProjectProgressSheet = createCorssProjectProgressSheet(workbook, projectLibraryBase);
|
HSSFSheet corssProjectProgressSheet = createCorssProjectProgressSheet(workbook, projectLibraryBase);
|
||||||
HSSFSheet overviewCrossProjectProgressSheet = this.createOverviewCrossProjectProgressSheet(workbook, projectLibraryBase);
|
HSSFSheet overviewCrossProjectProgressSheet = this.createOverviewCrossProjectProgressSheet(workbook, projectLibraryBase);
|
||||||
|
HSSFSheet otaSheet = createOtaSheet(workbook, projectLibraryBase);
|
||||||
CellStyle cellStyleTitle = workbook.createCellStyle();
|
CellStyle cellStyleTitle = workbook.createCellStyle();
|
||||||
cellStyleTitle.setAlignment(HorizontalAlignment.CENTER);
|
cellStyleTitle.setAlignment(HorizontalAlignment.CENTER);
|
||||||
cellStyleTitle.setVerticalAlignment(VerticalAlignment.CENTER);
|
cellStyleTitle.setVerticalAlignment(VerticalAlignment.CENTER);
|
||||||
@@ -690,14 +734,24 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 创建线程三
|
||||||
|
Thread thread3 = new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
exportOtaSetData(mapList, otaSheet, finalPlbEoList);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// 启动线程一和线程二
|
// 启动线程一和线程二
|
||||||
thread1.start();
|
thread1.start();
|
||||||
thread2.start();
|
thread2.start();
|
||||||
|
thread3.start();
|
||||||
|
|
||||||
// 等待线程一和线程二执行完毕
|
// 等待线程一和线程二执行完毕
|
||||||
try {
|
try {
|
||||||
thread1.join();
|
thread1.join();
|
||||||
thread2.join();
|
thread2.join();
|
||||||
|
thread3.join();
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -721,6 +775,45 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
|||||||
log.info("总消耗时间:" + (System.currentTimeMillis() - startTime));
|
log.info("总消耗时间:" + (System.currentTimeMillis() - startTime));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void exportOtaSetData(List<Map<String, Object>> finalStatisticalStatus, HSSFSheet otaSheet,List<ProjectLibraryBase> plbEoList) {
|
||||||
|
if(ObjectUtils.isNotEmpty(finalStatisticalStatus)){
|
||||||
|
int dataIndex = 2;
|
||||||
|
for (Map<String, Object> map : finalStatisticalStatus) {
|
||||||
|
String plannedBpLaunchBatch = (String) map.get("plannedBpLaunchBatch");
|
||||||
|
Map<String, Object> matchStatusMap = (Map<String, Object>)map.get("matchStatusMap");
|
||||||
|
Map<String, Object> attestationScheduleMap = (Map<String, Object>)map.get("attestationScheduleMap");
|
||||||
|
|
||||||
|
String showName = String.valueOf(map.get("showName"));
|
||||||
|
String locked = String.valueOf(matchStatusMap.get("locked"));
|
||||||
|
String rejected = String.valueOf(matchStatusMap.get("rejected"));
|
||||||
|
String to_be_approved = String.valueOf(matchStatusMap.get("to_be_approved"));
|
||||||
|
String to_be_matched = String.valueOf(matchStatusMap.get("to_be_matched"));
|
||||||
|
String Component_report_has_been_stored = String.valueOf(attestationScheduleMap.get("Component_report_has_been_stored"));
|
||||||
|
String Component_report_not_submitted = String.valueOf(attestationScheduleMap.get("Component_report_not_submitted"));
|
||||||
|
String Component_report_submitted = String.valueOf(attestationScheduleMap.get("Component_report_submitted"));
|
||||||
|
String In_progress = String.valueOf(attestationScheduleMap.get("In_progress"));
|
||||||
|
String Not_start =String.valueOf(attestationScheduleMap.get("Not_start"));
|
||||||
|
String Test_failed = String.valueOf(attestationScheduleMap.get("Test_failed"));
|
||||||
|
String Test_passed = String.valueOf(attestationScheduleMap.get("Test_passed"));
|
||||||
|
Row dataRow = otaSheet.createRow(dataIndex);
|
||||||
|
dataRow.createCell(0).setCellValue(showName);
|
||||||
|
dataRow.createCell(1).setCellValue(plannedBpLaunchBatch);
|
||||||
|
dataRow.createCell(2).setCellValue(to_be_matched);
|
||||||
|
dataRow.createCell(3).setCellValue(to_be_approved);
|
||||||
|
dataRow.createCell(4).setCellValue(locked);
|
||||||
|
dataRow.createCell(5).setCellValue(rejected);
|
||||||
|
dataRow.createCell(6).setCellValue(Not_start);
|
||||||
|
dataRow.createCell(7).setCellValue(In_progress);
|
||||||
|
dataRow.createCell(8).setCellValue(Test_passed);
|
||||||
|
dataRow.createCell(9).setCellValue(Test_failed);
|
||||||
|
dataRow.createCell(10).setCellValue(Component_report_not_submitted);
|
||||||
|
dataRow.createCell(11).setCellValue(Component_report_submitted);
|
||||||
|
dataRow.createCell(12).setCellValue(Component_report_has_been_stored);
|
||||||
|
dataIndex ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出跨项目进度
|
* 导出跨项目进度
|
||||||
* @param workbook
|
* @param workbook
|
||||||
@@ -1165,6 +1258,66 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
|||||||
}
|
}
|
||||||
return sheet;
|
return sheet;
|
||||||
}
|
}
|
||||||
|
public HSSFSheet createOtaSheet(HSSFWorkbook workbook, ProjectLibraryBase projectLibraryBase){
|
||||||
|
String cut = projectLibraryBase.getCut();
|
||||||
|
String sheetName = "OTA状态";
|
||||||
|
String firstTitle = "项目,软件版本,匹配状态统计,OTA认证进度统计";
|
||||||
|
String secondTitle = ",,待匹配,待审批,锁定,退回,未开始,进行中,实验通过,实验失败,部件报告未提交,部件报告已提交,部件报告已入库";
|
||||||
|
if(com.jero.modules.system.util.StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||||
|
sheetName = "OTA status";
|
||||||
|
firstTitle = "Project,Software version,Matching state statistics,OTA authentication progress statistics";
|
||||||
|
secondTitle = ",,To be matched," +
|
||||||
|
"To be approved," +
|
||||||
|
"lock," +
|
||||||
|
"Reject,"+
|
||||||
|
"Not started," +
|
||||||
|
"Ongoing," +
|
||||||
|
"Test Passed," +
|
||||||
|
"Test Failed," +
|
||||||
|
"Component report not submitted," +
|
||||||
|
"Component report submitted," +
|
||||||
|
"Component report has been stored";
|
||||||
|
}
|
||||||
|
HSSFSheet sheet = workbook.createSheet(sheetName);
|
||||||
|
CellRangeAddress region1 = new CellRangeAddress(0, 1, 0, 0);
|
||||||
|
sheet.addMergedRegion(region1);
|
||||||
|
CellRangeAddress region2 = new CellRangeAddress(0, 1, 1, 1);
|
||||||
|
sheet.addMergedRegion(region2);
|
||||||
|
CellRangeAddress region3 = new CellRangeAddress(0, 0, 2, 5);
|
||||||
|
sheet.addMergedRegion(region3);
|
||||||
|
CellRangeAddress region4 = new CellRangeAddress(0, 0, 6, 12);
|
||||||
|
sheet.addMergedRegion(region4);
|
||||||
|
|
||||||
|
String[] firstTitleArr = firstTitle.split(",");
|
||||||
|
String[] secondTitleArr = secondTitle.split(",");
|
||||||
|
Row firstRow = sheet.createRow(0);
|
||||||
|
Row secondRow = sheet.createRow(1);
|
||||||
|
|
||||||
|
CellStyle cellStyleTitle = workbook.createCellStyle();
|
||||||
|
cellStyleTitle.setAlignment(HorizontalAlignment.CENTER);
|
||||||
|
cellStyleTitle.setVerticalAlignment(VerticalAlignment.CENTER);
|
||||||
|
for (int i = 0; i <= 8; i++){
|
||||||
|
sheet.setColumnWidth(i, 4000);
|
||||||
|
Cell firstRowCell = firstRow.createCell(i);
|
||||||
|
firstRowCell.setCellStyle(cellStyleTitle);
|
||||||
|
if(i == 0){
|
||||||
|
firstRowCell.setCellValue(firstTitleArr[0]);
|
||||||
|
}else if(i == 1){
|
||||||
|
firstRowCell.setCellValue(firstTitleArr[1]);
|
||||||
|
}else if(i == 2){
|
||||||
|
firstRowCell.setCellValue(firstTitleArr[2]);
|
||||||
|
}else if(i == 6){
|
||||||
|
firstRowCell.setCellValue(firstTitleArr[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(i >= 2){
|
||||||
|
Cell secondRowCell = secondRow.createCell(i);
|
||||||
|
secondRowCell.setCellStyle(cellStyleTitle);
|
||||||
|
secondRowCell.setCellValue(secondTitleArr[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sheet;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出跨项目进度概览-设置数据
|
* 导出跨项目进度概览-设置数据
|
||||||
|
|||||||
+33
-2
@@ -4,12 +4,15 @@ package com.jero.modules.project.service.impl;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.jero.common.constant.enums.CutEnum;
|
import com.jero.common.constant.enums.CutEnum;
|
||||||
import com.jero.common.system.vo.LoginUser;
|
import com.jero.common.system.vo.LoginUser;
|
||||||
|
import com.jero.modules.ota.entity.OtaManageApplyEO;
|
||||||
|
import com.jero.modules.ota.service.IOtaManageApplyEOService;
|
||||||
import com.jero.modules.project.entity.ProjectTaskPlanning;
|
import com.jero.modules.project.entity.ProjectTaskPlanning;
|
||||||
import com.jero.modules.project.enums.PlanStatusEnum;
|
import com.jero.modules.project.enums.PlanStatusEnum;
|
||||||
import com.jero.modules.project.enums.ProjectTaskPlanningNameEnum;
|
import com.jero.modules.project.enums.ProjectTaskPlanningNameEnum;
|
||||||
import com.jero.modules.project.mapper.ProjectTaskPlanningMapper;
|
import com.jero.modules.project.mapper.ProjectTaskPlanningMapper;
|
||||||
import com.jero.modules.project.service.IProjectTaskPlanningService;
|
import com.jero.modules.project.service.IProjectTaskPlanningService;
|
||||||
import com.jero.modules.project.vo.TimeNodeVO;
|
import com.jero.modules.project.vo.TimeNodeVO;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
@@ -31,6 +34,8 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProjectTaskPlanningMapper projectTaskPlanningMapper;
|
private ProjectTaskPlanningMapper projectTaskPlanningMapper;
|
||||||
|
@Autowired
|
||||||
|
private IOtaManageApplyEOService otaManageApplyEOService;
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
*
|
*
|
||||||
@@ -52,14 +57,40 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
|||||||
* 更新
|
* 更新
|
||||||
*
|
*
|
||||||
* @param projectTaskPlanning
|
* @param projectTaskPlanning
|
||||||
* @return
|
* @return 是否需要跳转VDR
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void editById(ProjectTaskPlanning projectTaskPlanning) {
|
public boolean editById(ProjectTaskPlanning projectTaskPlanning) {
|
||||||
|
boolean matchVdr = false;
|
||||||
if (null != projectTaskPlanning && StringUtils.isNotEmpty(projectTaskPlanning.getId())) {
|
if (null != projectTaskPlanning && StringUtils.isNotEmpty(projectTaskPlanning.getId())) {
|
||||||
|
ProjectTaskPlanning oldPlanning = this.getById(projectTaskPlanning.getId());
|
||||||
|
if (compareDate(oldPlanning.getAttestationStartTime(), projectTaskPlanning.getAttestationStartTime())
|
||||||
|
|| compareDate(oldPlanning.getCertificationSubmission(), projectTaskPlanning.getCertificationSubmission())
|
||||||
|
|| compareDate(oldPlanning.getAttestationEndTime(), projectTaskPlanning.getAttestationEndTime())
|
||||||
|
) {
|
||||||
|
//studio修改认证计划中认证开始、认证申报、认证批准时间是进行弹窗提示
|
||||||
|
List<OtaManageApplyEO> vdrList = otaManageApplyEOService.getVdrListByProject(projectTaskPlanning.getProjectId(),"");
|
||||||
|
if(CollectionUtils.isNotEmpty(vdrList)){
|
||||||
|
matchVdr = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
deleteById(projectTaskPlanning.getId());
|
deleteById(projectTaskPlanning.getId());
|
||||||
add(projectTaskPlanning);
|
add(projectTaskPlanning);
|
||||||
}
|
}
|
||||||
|
return matchVdr;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean compareDate(Date oldDate, Date newDate) {
|
||||||
|
if (oldDate == null) {
|
||||||
|
if (newDate != null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (newDate == null || (newDate != null && !oldDate.equals(newDate))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1926,5 +1926,32 @@ module.exports = {
|
|||||||
processInitiationOne:'Process Initiation',
|
processInitiationOne:'Process Initiation',
|
||||||
taskHandlingOne:'Task Handling',
|
taskHandlingOne:'Task Handling',
|
||||||
taskReview:'Task Review',
|
taskReview:'Task Review',
|
||||||
|
softwareversion:'Software version',
|
||||||
|
softwareplatform:'Software platform',
|
||||||
|
softwarereleasetime:'Software release time',
|
||||||
|
theme:'theme',
|
||||||
|
influencestatute:'Influence statute',
|
||||||
|
vdrste:'VDR status',
|
||||||
|
impactdescription:'Impact description',
|
||||||
|
authenticationimpact:'Authentication impact',
|
||||||
|
impactstatement:'Impact statement',
|
||||||
|
certificationdeclaration:'Certification declaration',
|
||||||
|
matchingstate:'Matching state',
|
||||||
|
issuenotice:'Issue notice',
|
||||||
|
applyforrematch:'Apply for rematch',
|
||||||
|
notificationsent:'Is a notification sent?',
|
||||||
|
VDRDetails:'VDR Details',
|
||||||
|
applicationprojectversion:'Application project version',
|
||||||
|
selectlocked:'You can select only the data whose matching status is locked',
|
||||||
|
otastatus:'OTA status',
|
||||||
|
Matchingstatestatistics:'Matching state statistics',
|
||||||
|
OTaauthenticationprogressstatistics:'OTA authentication progress statistics',
|
||||||
|
tobematched:'To be matched',
|
||||||
|
Pendingapproval:'To be approved',
|
||||||
|
lock:'lock',
|
||||||
|
datacannotbeedited:'This data cannot be edited',
|
||||||
|
Rematchornot:'Rematch or not',
|
||||||
|
Modifyremarks:'Modify remarks',
|
||||||
|
Reasonforreturn:'Reason for return',
|
||||||
maintenanceTemplate:'Maintenance template',
|
maintenanceTemplate:'Maintenance template',
|
||||||
}
|
}
|
||||||
@@ -3883,4 +3883,31 @@ module.exports = {
|
|||||||
taskHandlingOne:'任务办理',
|
taskHandlingOne:'任务办理',
|
||||||
taskReview:'任务审查',
|
taskReview:'任务审查',
|
||||||
maintenanceTemplate:'维护模板',
|
maintenanceTemplate:'维护模板',
|
||||||
|
softwareversion:'软件版本',
|
||||||
|
softwareplatform:'软件平台',
|
||||||
|
softwarereleasetime:'软件发布时间',
|
||||||
|
theme:'主题',
|
||||||
|
influencestatute:'影响法规',
|
||||||
|
vdrste:'VDR状态',
|
||||||
|
impactdescription:'影响描述',
|
||||||
|
authenticationimpact:'认证影响',
|
||||||
|
impactstatement:'影响说明',
|
||||||
|
certificationdeclaration:'认证申报',
|
||||||
|
matchingstate:'匹配状态',
|
||||||
|
issuenotice:'下发通知',
|
||||||
|
applyforrematch:'申请重新匹配',
|
||||||
|
notificationsent:'是否下发通知?',
|
||||||
|
VDRDetails:'VDR详情',
|
||||||
|
applicationprojectversion:'应用项目版本',
|
||||||
|
selectlocked:'只能选择匹配状态为锁定的数据',
|
||||||
|
otastatus:'OTA状态',
|
||||||
|
Matchingstatestatistics:'匹配状态统计',
|
||||||
|
OTaauthenticationprogressstatistics:'OTA认证进度统计',
|
||||||
|
tobematched:'待匹配',
|
||||||
|
Pendingapproval:'待审批',
|
||||||
|
lock:'锁定',
|
||||||
|
datacannotbeedited:'该数据不能进行编辑',
|
||||||
|
Rematchornot:'是否重新匹配',
|
||||||
|
Modifyremarks:'修改备注',
|
||||||
|
Reasonforreturn:'退回原因'
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,7 @@
|
|||||||
<a-select v-else-if="tagType=='select'" allowClear :getPopupContainer="getPopupContainer"
|
<a-select v-else-if="tagType=='select'" allowClear :getPopupContainer="getPopupContainer"
|
||||||
show-search
|
show-search
|
||||||
optionFilterProp="label"
|
optionFilterProp="label"
|
||||||
|
:autoClearSearchValue="false"
|
||||||
:placeholder="placeholder" :disabled="disabled" :value="getValueSting" @change="handleInput">
|
:placeholder="placeholder" :disabled="disabled" :value="getValueSting" @change="handleInput">
|
||||||
<!-- <a-select-option :value="null">{{$t('pleaseSelect')}}</a-select-option>-->
|
<!-- <a-select-option :value="null">{{$t('pleaseSelect')}}</a-select-option>-->
|
||||||
<a-select-option v-for="(item, key) in dictOptionsValue"
|
<a-select-option v-for="(item, key) in dictOptionsValue"
|
||||||
|
|||||||
@@ -0,0 +1,249 @@
|
|||||||
|
<!--重新匹配-->
|
||||||
|
<template>
|
||||||
|
<a-modal
|
||||||
|
:title="$t('applyforrematch')"
|
||||||
|
:width="600"
|
||||||
|
:visible="visible"
|
||||||
|
:confirm-loading="confirmLoading"
|
||||||
|
:maskClosable="false"
|
||||||
|
@ok="handleOk"
|
||||||
|
@cancel="handleCancel"
|
||||||
|
>
|
||||||
|
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="Required">*</span>
|
||||||
|
<span class="title-text-text" :title="$t('projectVersion')">
|
||||||
|
{{$t('projectVersion')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="projectVersion">
|
||||||
|
<a-select
|
||||||
|
class="box-input propbox"
|
||||||
|
style="width: 90%"
|
||||||
|
v-model='formInline.projectVersion'
|
||||||
|
showSearch
|
||||||
|
optionFilterProp="label"
|
||||||
|
:autoClearSearchValue="false"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
|
allowClear
|
||||||
|
:placeholder="$t('PleaseSelect')+$t('projectVersion')">
|
||||||
|
<!-- <a-select-option :value="null">{{$t('pleaseSelect')}}</a-select-option>-->
|
||||||
|
<a-select-option v-for="(item, key) in projectVersionList"
|
||||||
|
:label='item.versionName'
|
||||||
|
:key="key"
|
||||||
|
:value="item.projectId">
|
||||||
|
<span style="display: inline-block;width: 100%" :title=" item.versionName">
|
||||||
|
{{ item.versionName }}
|
||||||
|
</span>
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form-model>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getAction, postAction, putAction } from '@/api/manage'
|
||||||
|
import moment from 'moment'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'settingList',
|
||||||
|
props: ['url'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
confirmLoading: false,
|
||||||
|
transittime:false,
|
||||||
|
returntime:false,
|
||||||
|
propflag: false,
|
||||||
|
projectVersionList:[],
|
||||||
|
formInline: {
|
||||||
|
bazt:undefined,
|
||||||
|
batjsj:'',
|
||||||
|
tgthsj:'',
|
||||||
|
bz:'',
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
projectVersion: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('projectVersion') + this.$t('cannotEmpty'),
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// batjsj: [
|
||||||
|
// {
|
||||||
|
// required: true,
|
||||||
|
// message: this.$t('filingtime') + this.$t('cannotEmpty'),
|
||||||
|
// trigger: 'change'
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
// bz: [
|
||||||
|
// { min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' }
|
||||||
|
// ],
|
||||||
|
// tgthsj: [
|
||||||
|
// {
|
||||||
|
// required: true,
|
||||||
|
// message: this.$t('cannotEmpty'),
|
||||||
|
// trigger: 'change'
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
},
|
||||||
|
ids: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
edit(row,vehicleTypeCode) {
|
||||||
|
this.ids = row
|
||||||
|
this.vehicleTypeCode = vehicleTypeCode
|
||||||
|
this.getprojectList()
|
||||||
|
this.visible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.formInline = {}
|
||||||
|
this.$refs.ruleForm.clearValidate()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getprojectList(){
|
||||||
|
getAction('/ota/otaManageApplyEO/getProjectVersionList', {carMarket:this.vehicleTypeCode}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.projectVersionList = res.result
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleOk() {
|
||||||
|
this.$refs.ruleForm.validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
let query = {
|
||||||
|
...this.formInline,
|
||||||
|
ids:this.ids.join(',')
|
||||||
|
}
|
||||||
|
this.confirmLoading = true
|
||||||
|
getAction('/ota/otaManageApplyEO/applyRematch', query).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$message.success(this.$t('OperationSuccessful'))
|
||||||
|
this.visible = false
|
||||||
|
this.confirmLoading = false
|
||||||
|
this.ids = []
|
||||||
|
this.$emit('getList')
|
||||||
|
} else {
|
||||||
|
this.$message.warning(this.$t('operationFailed'))
|
||||||
|
this.confirmLoading = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCancel() {
|
||||||
|
this.formInline = {}
|
||||||
|
this.ids = []
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
// 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') : ''
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.formAdd .ant-form-item-label {
|
||||||
|
width: 130px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.formAdd .ant-form-item-control-wrapper {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*.formAdd .ant-form-item {*/
|
||||||
|
/* margin-bottom: 20px;*/
|
||||||
|
/*}*/
|
||||||
|
|
||||||
|
.itemModel .ant-form-item-control-wrapper {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--single {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--multiple {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection__rendered {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-calendar-picker {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-calendar-picker-input {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-input-number-input-wrap {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style scoped>
|
||||||
|
.box-title-text {
|
||||||
|
line-height: 1.4;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text {
|
||||||
|
width: 144px;
|
||||||
|
text-align: right;
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right: 16px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
height: 42px;
|
||||||
|
line-height: 42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input {
|
||||||
|
display: inline-block;
|
||||||
|
height: 38px;
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemModel {
|
||||||
|
width: calc(100% - 130px);
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text-text {
|
||||||
|
margin-top: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.formAdd {
|
||||||
|
margin-bottom: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Required {
|
||||||
|
color: red;
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,286 @@
|
|||||||
|
<!--批量设置-->
|
||||||
|
<template>
|
||||||
|
<a-modal
|
||||||
|
:title="$t('BatchSetting')"
|
||||||
|
:width="600"
|
||||||
|
:visible="visible"
|
||||||
|
:confirm-loading="confirmLoading"
|
||||||
|
:maskClosable="false"
|
||||||
|
@ok="handleOk"
|
||||||
|
@cancel="handleCancel"
|
||||||
|
>
|
||||||
|
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<!-- <span class="Required">*</span>-->
|
||||||
|
<span class="title-text-text" :title="$t('projectVersion')">
|
||||||
|
{{$t('projectVersion')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="projectVersion">
|
||||||
|
<a-select
|
||||||
|
class="box-input propbox"
|
||||||
|
style="width: 90%"
|
||||||
|
v-model='formInline.projectVersion'
|
||||||
|
showSearch
|
||||||
|
optionFilterProp="label"
|
||||||
|
:autoClearSearchValue="false"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
|
allowClear
|
||||||
|
:placeholder="$t('PleaseSelect')+$t('projectVersion')">
|
||||||
|
<!-- <a-select-option :value="null">{{$t('pleaseSelect')}}</a-select-option>-->
|
||||||
|
<a-select-option v-for="(item, key) in projectVersionList"
|
||||||
|
:label='item.versionName'
|
||||||
|
:key="key"
|
||||||
|
:value="item.projectId">
|
||||||
|
<span style="display: inline-block;width: 100%" :title=" item.versionName">
|
||||||
|
{{ item.versionName }}
|
||||||
|
</span>
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<!-- <span class="Required">*</span>-->
|
||||||
|
<span class="title-text-text" :title="$t('CertificationProgress')">
|
||||||
|
{{$t('CertificationProgress')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="bazt">
|
||||||
|
<j-dict-select-tag class="box-input" v-model="formInline.attestationSchedule"
|
||||||
|
:placeholder="$t('PleaseSelect')+$t('CertificationProgress')"
|
||||||
|
:type="'select'"
|
||||||
|
style="width: 90%"
|
||||||
|
:triggerChange="false" :dictCode="'certification_progress'"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<!-- <span class="Required">*</span>-->
|
||||||
|
<span class="title-text-text" :title="$t('remarks')">
|
||||||
|
{{$t('remarks')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="bz">
|
||||||
|
<a-textarea :placeholder="$t('pleaseEnter')+$t('remarks')"
|
||||||
|
v-model="formInline.remark"
|
||||||
|
style="width: 90%"
|
||||||
|
:maxLength="200"
|
||||||
|
:rows="4"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form-model>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getAction, postAction, putAction } from '@/api/manage'
|
||||||
|
import moment from 'moment'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'settingList',
|
||||||
|
props: ['url'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
confirmLoading: false,
|
||||||
|
transittime:false,
|
||||||
|
returntime:false,
|
||||||
|
propflag: false,
|
||||||
|
formInline: {
|
||||||
|
bazt:undefined,
|
||||||
|
batjsj:'',
|
||||||
|
tgthsj:'',
|
||||||
|
bz:'',
|
||||||
|
},
|
||||||
|
projectVersionList:[],
|
||||||
|
rules: {
|
||||||
|
// bazt: [
|
||||||
|
// {
|
||||||
|
// required: true,
|
||||||
|
// message: this.$t('recordstatus') + this.$t('cannotEmpty'),
|
||||||
|
// trigger: 'change'
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
// batjsj: [
|
||||||
|
// {
|
||||||
|
// required: true,
|
||||||
|
// message: this.$t('filingtime') + this.$t('cannotEmpty'),
|
||||||
|
// trigger: 'change'
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
// bz: [
|
||||||
|
// { min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' }
|
||||||
|
// ],
|
||||||
|
// tgthsj: [
|
||||||
|
// {
|
||||||
|
// required: true,
|
||||||
|
// message: this.$t('cannotEmpty'),
|
||||||
|
// trigger: 'change'
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
},
|
||||||
|
ids: '',
|
||||||
|
vehicleTypeCode:'',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
edit(row,vehicleTypeCode) {
|
||||||
|
this.ids = row
|
||||||
|
this.vehicleTypeCode = vehicleTypeCode
|
||||||
|
this.getprojectList()
|
||||||
|
this.visible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.formInline = {}
|
||||||
|
this.$refs.ruleForm.clearValidate()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getprojectList(){
|
||||||
|
getAction('/ota/otaManageApplyEO/getProjectVersionList', {carMarket:this.vehicleTypeCode}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.projectVersionList = res.result
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleOk() {
|
||||||
|
this.$refs.ruleForm.validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
let OtaManageApplyEO = JSON.parse(JSON.stringify(this.ids))
|
||||||
|
let query = {
|
||||||
|
list: OtaManageApplyEO,
|
||||||
|
...this.formInline,
|
||||||
|
}
|
||||||
|
this.confirmLoading = true
|
||||||
|
postAction('/ota/otaManageApplyEO/updateVdrBatch', query).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
// this.$message.success(this.$t('OperationSuccessful'))
|
||||||
|
this.visible = false
|
||||||
|
this.confirmLoading = false
|
||||||
|
this.ids = []
|
||||||
|
this.$emit('msgForm',res.result.msgList)
|
||||||
|
// this.$emit('getList')
|
||||||
|
} else {
|
||||||
|
this.$message.warning(this.$t('operationFailed'))
|
||||||
|
this.confirmLoading = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCancel() {
|
||||||
|
this.formInline = {}
|
||||||
|
this.ids = []
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
// 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') : ''
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.formAdd .ant-form-item-label {
|
||||||
|
width: 130px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.formAdd .ant-form-item-control-wrapper {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*.formAdd .ant-form-item {*/
|
||||||
|
/* margin-bottom: 20px;*/
|
||||||
|
/*}*/
|
||||||
|
|
||||||
|
.itemModel .ant-form-item-control-wrapper {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--single {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--multiple {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection__rendered {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-calendar-picker {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-calendar-picker-input {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-input-number-input-wrap {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style scoped>
|
||||||
|
.box-title-text {
|
||||||
|
line-height: 1.4;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text {
|
||||||
|
width: 144px;
|
||||||
|
text-align: right;
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right: 16px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
height: 42px;
|
||||||
|
line-height: 42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input {
|
||||||
|
display: inline-block;
|
||||||
|
height: 38px;
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemModel {
|
||||||
|
width: calc(100% - 130px);
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text-text {
|
||||||
|
margin-top: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.formAdd {
|
||||||
|
margin-bottom: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Required {
|
||||||
|
color: red;
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,38 @@
|
|||||||
|
<template>
|
||||||
|
<a-table
|
||||||
|
:components="drag(columnshistory,'columnshistory')"
|
||||||
|
class="table"
|
||||||
|
:columns="columnshistory"
|
||||||
|
:pagination="false"
|
||||||
|
:scroll="{x: '100%',y: 400}"
|
||||||
|
:data-source="dataSourcehistory"
|
||||||
|
>
|
||||||
|
<span slot="content" slot-scope="text,record">
|
||||||
|
<a-tooltip placement="topLeft">
|
||||||
|
<template slot="title">
|
||||||
|
<span v-html="text"></span>
|
||||||
|
</template>
|
||||||
|
<span v-html="text"></span>
|
||||||
|
</a-tooltip>
|
||||||
|
</span>
|
||||||
|
<span slot="detailText" slot-scope="text,record">
|
||||||
|
<span class="text" :title="text">
|
||||||
|
{{text && text.length > 38?text.slice(0,37)+'...':text}}
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</a-table>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
|
||||||
|
export default {
|
||||||
|
name: 'historyTable.vue',
|
||||||
|
props:['columnshistory','dataSourcehistory'],
|
||||||
|
mixins:[ResizeHeader, ResizeColumnProvide],
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,223 @@
|
|||||||
|
<!--拒绝原因-->
|
||||||
|
<template>
|
||||||
|
<a-modal
|
||||||
|
:title="$t('Reasonforreturn')"
|
||||||
|
:width="600"
|
||||||
|
:visible="visible"
|
||||||
|
:confirm-loading="confirmLoading"
|
||||||
|
:maskClosable="false"
|
||||||
|
@ok="handleOk"
|
||||||
|
@cancel="handleCancel"
|
||||||
|
>
|
||||||
|
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="Required">*</span>
|
||||||
|
<span class="title-text-text" :title="$t('Reasonforreturn')">
|
||||||
|
{{$t('Reasonforreturn')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="rejectReason">
|
||||||
|
<a-textarea :placeholder="$t('pleaseEnter')+$t('Reasonforreturn')"
|
||||||
|
v-model="formInline.rejectReason"
|
||||||
|
style="width: 90%"
|
||||||
|
:maxLength="200"
|
||||||
|
:rows="4"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form-model>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getAction, postAction, putAction } from '@/api/manage'
|
||||||
|
import moment from 'moment'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'settingList',
|
||||||
|
props: ['url'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
confirmLoading: false,
|
||||||
|
transittime:false,
|
||||||
|
returntime:false,
|
||||||
|
propflag: false,
|
||||||
|
formInline: {
|
||||||
|
bazt:undefined,
|
||||||
|
batjsj:'',
|
||||||
|
tgthsj:'',
|
||||||
|
bz:'',
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
rejectReason: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('Reasonforreturn') + this.$t('cannotEmpty'),
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// batjsj: [
|
||||||
|
// {
|
||||||
|
// required: true,
|
||||||
|
// message: this.$t('filingtime') + this.$t('cannotEmpty'),
|
||||||
|
// trigger: 'change'
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
// bz: [
|
||||||
|
// { min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' }
|
||||||
|
// ],
|
||||||
|
// tgthsj: [
|
||||||
|
// {
|
||||||
|
// required: true,
|
||||||
|
// message: this.$t('cannotEmpty'),
|
||||||
|
// trigger: 'change'
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
},
|
||||||
|
ids: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
edit(row) {
|
||||||
|
this.ids = row
|
||||||
|
this.visible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.formInline = {}
|
||||||
|
this.$refs.ruleForm.clearValidate()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleOk() {
|
||||||
|
this.$refs.ruleForm.validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
let query = {
|
||||||
|
...this.formInline,
|
||||||
|
ids:this.ids.join(',')
|
||||||
|
}
|
||||||
|
this.confirmLoading = true
|
||||||
|
getAction('/ota/otaManageApplyEO/reject', query).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.visible = false
|
||||||
|
this.confirmLoading = false
|
||||||
|
this.ids = []
|
||||||
|
this.$emit('msgForm',res.result.msgList)
|
||||||
|
// this.$emit('getList')
|
||||||
|
} else {
|
||||||
|
this.$message.warning(this.$t('operationFailed'))
|
||||||
|
this.confirmLoading = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCancel() {
|
||||||
|
this.formInline = {}
|
||||||
|
this.ids = []
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
// 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') : ''
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.formAdd .ant-form-item-label {
|
||||||
|
width: 130px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.formAdd .ant-form-item-control-wrapper {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*.formAdd .ant-form-item {*/
|
||||||
|
/* margin-bottom: 20px;*/
|
||||||
|
/*}*/
|
||||||
|
|
||||||
|
.itemModel .ant-form-item-control-wrapper {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--single {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--multiple {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection__rendered {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-calendar-picker {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-calendar-picker-input {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-input-number-input-wrap {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style scoped>
|
||||||
|
.box-title-text {
|
||||||
|
line-height: 1.4;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text {
|
||||||
|
width: 144px;
|
||||||
|
text-align: right;
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right: 16px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
height: 42px;
|
||||||
|
line-height: 42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input {
|
||||||
|
display: inline-block;
|
||||||
|
height: 38px;
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemModel {
|
||||||
|
width: calc(100% - 130px);
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text-text {
|
||||||
|
margin-top: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.formAdd {
|
||||||
|
margin-bottom: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Required {
|
||||||
|
color: red;
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,220 @@
|
|||||||
|
<!--批量设置-->
|
||||||
|
<template>
|
||||||
|
<a-modal
|
||||||
|
:title="$t('Modifyremarks')"
|
||||||
|
:width="600"
|
||||||
|
:visible="visible"
|
||||||
|
:confirm-loading="confirmLoading"
|
||||||
|
:maskClosable="false"
|
||||||
|
@ok="handleOk"
|
||||||
|
@cancel="handleCancel"
|
||||||
|
>
|
||||||
|
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<!-- <span class="Required">*</span>-->
|
||||||
|
<span class="title-text-text" :title="$t('remarks')">
|
||||||
|
{{$t('remarks')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="bz">
|
||||||
|
<a-textarea :placeholder="$t('pleaseEnter')+$t('remarks')"
|
||||||
|
v-model="formInline.remark"
|
||||||
|
style="width: 90%"
|
||||||
|
:maxLength="200"
|
||||||
|
:rows="4"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form-model>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getAction, postAction, putAction } from '@/api/manage'
|
||||||
|
import moment from 'moment'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'settingList',
|
||||||
|
props: ['url'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
confirmLoading: false,
|
||||||
|
transittime:false,
|
||||||
|
returntime:false,
|
||||||
|
propflag: false,
|
||||||
|
formInline: {
|
||||||
|
|
||||||
|
},
|
||||||
|
projectVersionList:[],
|
||||||
|
rules: {
|
||||||
|
// bazt: [
|
||||||
|
// {
|
||||||
|
// required: true,
|
||||||
|
// message: this.$t('recordstatus') + this.$t('cannotEmpty'),
|
||||||
|
// trigger: 'change'
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
// batjsj: [
|
||||||
|
// {
|
||||||
|
// required: true,
|
||||||
|
// message: this.$t('filingtime') + this.$t('cannotEmpty'),
|
||||||
|
// trigger: 'change'
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
// bz: [
|
||||||
|
// { min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' }
|
||||||
|
// ],
|
||||||
|
// tgthsj: [
|
||||||
|
// {
|
||||||
|
// required: true,
|
||||||
|
// message: this.$t('cannotEmpty'),
|
||||||
|
// trigger: 'change'
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
},
|
||||||
|
row: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
edit(row) {
|
||||||
|
this.row = row
|
||||||
|
this.formInline.remark = row.remark == '-'?'':row.remark
|
||||||
|
this.visible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.ruleForm.clearValidate()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleOk() {
|
||||||
|
this.$refs.ruleForm.validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
// let query = {
|
||||||
|
// ...this.formInline,
|
||||||
|
// }
|
||||||
|
this.confirmLoading = true
|
||||||
|
// postAction('ota/otaBaSjList/batchRecord', query).then((res) => {
|
||||||
|
// if (res.success) {
|
||||||
|
// this.$message.success(this.$t('OperationSuccessful'))
|
||||||
|
// this.visible = false
|
||||||
|
// this.confirmLoading = false
|
||||||
|
// this.$emit('remarkForm',this.formInline,this.ids)
|
||||||
|
// } else {
|
||||||
|
// this.$message.warning(this.$t('operationFailed'))
|
||||||
|
// this.confirmLoading = false
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
this.$emit('remarkForm',this.formInline.remark,this.row.id)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCancel() {
|
||||||
|
this.formInline = {}
|
||||||
|
this.ids = ''
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
// 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') : ''
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.formAdd .ant-form-item-label {
|
||||||
|
width: 130px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.formAdd .ant-form-item-control-wrapper {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*.formAdd .ant-form-item {*/
|
||||||
|
/* margin-bottom: 20px;*/
|
||||||
|
/*}*/
|
||||||
|
|
||||||
|
.itemModel .ant-form-item-control-wrapper {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--single {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--multiple {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection__rendered {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-calendar-picker {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-calendar-picker-input {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input .ant-input-number-input-wrap {
|
||||||
|
line-height: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style scoped>
|
||||||
|
.box-title-text {
|
||||||
|
line-height: 1.4;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text {
|
||||||
|
width: 144px;
|
||||||
|
text-align: right;
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right: 16px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
height: 42px;
|
||||||
|
line-height: 42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input {
|
||||||
|
display: inline-block;
|
||||||
|
height: 38px;
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemModel {
|
||||||
|
width: calc(100% - 130px);
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text-text {
|
||||||
|
margin-top: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.formAdd {
|
||||||
|
margin-bottom: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Required {
|
||||||
|
color: red;
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,262 @@
|
|||||||
|
<!--VDR详情-->
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-drawer
|
||||||
|
:title="$t('VDRDetails')"
|
||||||
|
:maskClosable="false"
|
||||||
|
:width="800"
|
||||||
|
placement="right"
|
||||||
|
:closable="true"
|
||||||
|
@close="handleCancel"
|
||||||
|
:visible="visible"
|
||||||
|
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
||||||
|
<a-spin :spinning="confirmLoading">
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class='detail-box'>
|
||||||
|
<span class='detail-text'>{{'VDR'}}</span>
|
||||||
|
<span class="title-text-text" :title="form.vdr">
|
||||||
|
{{form.vdr}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class='detail-box'>
|
||||||
|
<span class='detail-text'>{{$t('theme')}}</span>
|
||||||
|
<span class="title-text-text" :title="form.summary">
|
||||||
|
{{form.summary}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class='detail-box'>
|
||||||
|
<span class='detail-text' style='width:300px'>{{$t('authenticationimpact')}}</span>
|
||||||
|
<span class="title-text-text" :title="form.homologationImpact">
|
||||||
|
{{form.homologationImpact}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class='detail-box'>
|
||||||
|
<span class='detail-text'>{{$t('influencestatute') + '-CN'}}</span>
|
||||||
|
<span class="title-text-text" :title="form.impactCnHomo">
|
||||||
|
{{form.impactCnHomo}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class='detail-box'>
|
||||||
|
<span class='detail-text'>{{$t('influencestatute') + '-EU'}}</span>
|
||||||
|
<span class="title-text-text" :title="form.impactEuHomo">
|
||||||
|
{{form.impactEuHomo}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<div style='margin-bottom: 10px;font-weight: bold;'>{{$t('applicationprojectversion')}}</div>
|
||||||
|
<div v-for='(item,index) in vdrList' :key='index'>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24">
|
||||||
|
<div class='detail-box'>
|
||||||
|
<span class='detail-text' style="width: 300px">{{item.versionName}}</span>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="12">
|
||||||
|
<div class='detail-box'>
|
||||||
|
<span class='detail-text'>{{$t('certificationStartOne')}}</span>
|
||||||
|
<span class="title-text-text" :title="item.attestationStartTime?item.attestationStartTime:'--'">
|
||||||
|
{{item.attestationStartTime?item.attestationStartTime:'--'}}</span>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<div class='detail-box'>
|
||||||
|
<span class='detail-text'>{{$t('certificationdeclaration')}}</span>
|
||||||
|
<span class="title-text-text" :title="item.certificationSubmission?item.certificationSubmission:'--'">
|
||||||
|
{{item.certificationSubmission?item.certificationSubmission:'--'}}</span>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="12">
|
||||||
|
<div class='detail-box'>
|
||||||
|
<span class='detail-text'>{{$t('certificationEnd')}}</span>
|
||||||
|
<span class="title-text-text" :title="item.attestationEndTime?item.attestationEndTime:'--'">
|
||||||
|
{{item.attestationEndTime?item.attestationEndTime:'--'}}</span>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<div class='detail-box'>
|
||||||
|
<span class='detail-text'>{{$t('CertificationProgress')}}</span>
|
||||||
|
<span class="title-text-text" :title="item.attestationSchedule?item.attestationSchedule:'--'">
|
||||||
|
{{item.attestationSchedule?item.attestationSchedule:'--'}}</span>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a-spin>
|
||||||
|
<div class="drawer-bootom-button">
|
||||||
|
<a-button style="margin-right: 8px" @click="handleCancel">{{$t('close')}}</a-button>
|
||||||
|
<!-- <a-button type="primary" @click="handleSubmit" :loading="confirmLoading">{{$t('submit')}}</a-button>-->
|
||||||
|
</div>
|
||||||
|
</a-drawer>
|
||||||
|
<uploadFile ref="uploadFile" :acceptcode="acceptcode" @uploadSuccess="uploadSuccess"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getAction, postAction } from '@/api/manage'
|
||||||
|
import uploadFile from '@/components/uploadFile/file'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name:"addModel",
|
||||||
|
components:{
|
||||||
|
uploadFile
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
disabled: false,
|
||||||
|
showButton:false,
|
||||||
|
confirmLoading: false,
|
||||||
|
acceptcode:'',
|
||||||
|
projectNameList: [],
|
||||||
|
DeliverableTreeList: [],
|
||||||
|
form:{
|
||||||
|
VDR:'',
|
||||||
|
theme:'',
|
||||||
|
authenticationimpact:'',
|
||||||
|
influencestatuteCn:'',
|
||||||
|
influencestatuteEu:'',
|
||||||
|
},
|
||||||
|
vdrList:[],
|
||||||
|
url:{
|
||||||
|
addModel:''
|
||||||
|
},
|
||||||
|
record:{},
|
||||||
|
car:'',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapGetters(['userInfo']),
|
||||||
|
addModel(record,val) {
|
||||||
|
this.form=record
|
||||||
|
this.car = val
|
||||||
|
getAction('/ota/otaManageApplyEO/getVersionInfo', {vdr:this.form.vdr,car:this.car}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.vdrList = res.result
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.visible = true
|
||||||
|
this.confirmLoading = false
|
||||||
|
console.log('555',record);
|
||||||
|
},
|
||||||
|
handleCancel() {
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
/** 上传文件的回调 */
|
||||||
|
uploadSuccess(data) {
|
||||||
|
let attIdList = []
|
||||||
|
if (data && data.length > 0) {
|
||||||
|
data.map(item => {
|
||||||
|
attIdList.push(item.id || data.name)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
/** 赋值给当前对应的表单文件 */
|
||||||
|
this.formInline[this.uploadName] = attIdList.join(',')
|
||||||
|
this.formInline = { ...this.formInline }
|
||||||
|
},
|
||||||
|
isEdit(){
|
||||||
|
this.disabled=false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.box-title-text {
|
||||||
|
line-height: 1.4;
|
||||||
|
display: flex;
|
||||||
|
/*align-items: center;*/
|
||||||
|
}
|
||||||
|
.detail-box{
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.detail-text{
|
||||||
|
display: inline-block;
|
||||||
|
width: 95px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.title-text {
|
||||||
|
width: 250px;
|
||||||
|
text-align: right;
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right: 16px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
height: 42px;
|
||||||
|
line-height: 48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input {
|
||||||
|
display: inline-block;
|
||||||
|
height: 38px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemModel {
|
||||||
|
width: calc(100% - 130px);
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 2px;
|
||||||
|
min-height: 40px;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Required {
|
||||||
|
color: red;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-text {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drawer-bootom-button {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 100;
|
||||||
|
border-top: 1px solid #e8e8e8;
|
||||||
|
padding: 10px 16px;
|
||||||
|
text-align: right;
|
||||||
|
left: 0;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 0 0 2px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-text {
|
||||||
|
font-size: 16px;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,448 @@
|
|||||||
|
<!--ota管理-->
|
||||||
|
<template>
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :md="6" :sm="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text" :title="$t('softwareversion')">
|
||||||
|
<span>{{ $t('softwareversion') }}</span>
|
||||||
|
</div>
|
||||||
|
<a-select :placeholder="$t('PleaseSelect')+$t('softwareplatform')"
|
||||||
|
class="box-input"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
|
allowClear
|
||||||
|
showSearch
|
||||||
|
optionFilterProp="label"
|
||||||
|
:autoClearSearchValue="false"
|
||||||
|
v-model="queryParam.plannedBpLaunchBatch">
|
||||||
|
<a-select-option v-for="(item, key) in softwareversionList"
|
||||||
|
:label='item'
|
||||||
|
:key="key"
|
||||||
|
:value="item">
|
||||||
|
<span style="display: inline-block;width: 100%" :title=" item">
|
||||||
|
{{ item }}
|
||||||
|
</span>
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
|
||||||
|
<!-- <a-col :md="6" :sm="8">-->
|
||||||
|
<!-- <div class="box-title-text">-->
|
||||||
|
<!-- <div class="title-text" :title="$t('softwareplatform')">-->
|
||||||
|
<!-- <span>{{ $t('softwareplatform') }}</span>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <a-select :placeholder="$t('PleaseSelect')+$t('softwareplatform')"-->
|
||||||
|
<!-- class="box-input"-->
|
||||||
|
<!-- :getPopupContainer="triggerNode=> triggerNode.parentNode"-->
|
||||||
|
<!-- allowClear-->
|
||||||
|
<!-- showSearch-->
|
||||||
|
<!-- optionFilterProp="children"-->
|
||||||
|
<!-- :autoClearSearchValue="false"-->
|
||||||
|
<!-- v-model="queryParam.softwareplatform">-->
|
||||||
|
<!-- <a-select-option v-for="(item, key) in softwareplatformList"-->
|
||||||
|
<!-- :key="key"-->
|
||||||
|
<!-- :value="item.value">-->
|
||||||
|
<!-- <span style="display: inline-block;width: 100%" :title=" item.name">-->
|
||||||
|
<!-- {{ item.name }}-->
|
||||||
|
<!-- </span>-->
|
||||||
|
<!-- </a-select-option>-->
|
||||||
|
<!-- </a-select>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </a-col>-->
|
||||||
|
|
||||||
|
<a-col :md="6" :sm="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text" :title="$t('vehicleType')">
|
||||||
|
<span>{{ $t('vehicleType') }}</span>
|
||||||
|
</div>
|
||||||
|
<a-select :placeholder="$t('PleaseSelect')+$t('vehicleType')"
|
||||||
|
class="box-input"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
|
allowClear
|
||||||
|
showSearch
|
||||||
|
optionFilterProp="label"
|
||||||
|
:autoClearSearchValue="false"
|
||||||
|
v-model="queryParam.appliedVehicleProject">
|
||||||
|
<a-select-option v-for="(item, key) in vehicleTypeList"
|
||||||
|
:label='item'
|
||||||
|
:key="key"
|
||||||
|
:value="item">
|
||||||
|
<span style="display: inline-block;width: 100%" :title=" item">
|
||||||
|
{{ item }}
|
||||||
|
</span>
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
|
||||||
|
<a-col :md="6" :sm="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text" :title="$t('market')">
|
||||||
|
<span>{{ $t('market') }}</span>
|
||||||
|
</div>
|
||||||
|
<a-select :placeholder="$t('PleaseSelect')+$t('market')"
|
||||||
|
class="box-input"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
|
allowClear
|
||||||
|
showSearch
|
||||||
|
optionFilterProp="label"
|
||||||
|
:autoClearSearchValue="false"
|
||||||
|
v-model="queryParam.market">
|
||||||
|
<a-select-option v-for="(item, key) in marketList"
|
||||||
|
:label='item'
|
||||||
|
:key="key"
|
||||||
|
:value="item">
|
||||||
|
<span style="display: inline-block;width: 100%" :title=" item">
|
||||||
|
{{ item }}
|
||||||
|
</span>
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<template v-if="toggleSearchStatus">
|
||||||
|
<a-col :md="6" :sm="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text" :title="$t('softwarereleasetime')">
|
||||||
|
<span>{{ $t('softwarereleasetime') }}</span>
|
||||||
|
</div>
|
||||||
|
<a-range-picker
|
||||||
|
class="box-input"
|
||||||
|
@change="onChange"
|
||||||
|
style='margin-left: -1px'
|
||||||
|
v-model="queryParam.releaseDate"
|
||||||
|
:disabled="false"/>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</template>
|
||||||
|
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
|
||||||
|
<a-col :md="6" :sm="24">
|
||||||
|
<a @click="handleToggleSearch">
|
||||||
|
{{ !toggleSearchStatus ? $t('open') : $t('away') }}
|
||||||
|
<a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
|
||||||
|
</a>
|
||||||
|
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{ $t('reset') }}</a-button>
|
||||||
|
<a-button class="box-button" style="margin-left: 8px" type="primary" @click="searchQuery">{{ $t('query') }}</a-button>
|
||||||
|
</a-col>
|
||||||
|
</span>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
<div class="table-operator">
|
||||||
|
<div class="operator-text" @click="handleExportManage"
|
||||||
|
v-has="'ota:export'">
|
||||||
|
<a-icon type="export" :rotate="-90" />
|
||||||
|
{{ $t('export') }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a-table ref="table" size="middle" :components="drag(columns, 'columns')" :loading="loading" :pagination="false"
|
||||||
|
:scroll="{ x: '100%', y: 'calc(100vh - 140px)' }" rowKey="id" :data-source="dataSource"
|
||||||
|
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :columns="columns">
|
||||||
|
<!-- -->
|
||||||
|
<span slot="operation" slot-scope="text,record">
|
||||||
|
<a class="text-operation" @click="detailclick(record)">{{ $t('See') }}</a>
|
||||||
|
</span>
|
||||||
|
</a-table>
|
||||||
|
<div class="page" v-if="dataSource && dataSource.length > 0">
|
||||||
|
<a-pagination :show-total="total => $t('total') + ` ${total} ` + $t('strip')" show-quick-jumper show-size-changer
|
||||||
|
:page-size.sync="pageSize" :total="total" :current="pageNo" @change="pageOnChange"
|
||||||
|
@showSizeChange="SizeChange" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getAction, postAction, deleteAction,downloadFile } from '@/api/manage'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
|
||||||
|
import ImportFile from '@/components/ImportFileData/index'
|
||||||
|
import moment from 'moment'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'index',
|
||||||
|
components: {
|
||||||
|
ImportFile
|
||||||
|
},
|
||||||
|
mixins: [ResizeHeader, ResizeColumnProvide],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
//url传参严格按照当前命名
|
||||||
|
url: {
|
||||||
|
list: '/lawsTechnologyEvaluation/lawsTechnologyEvaluationEO/page',
|
||||||
|
deleteBatch: '/lawsTechnologyEvaluation/lawsTechnologyEvaluationEO/deleteBatch',
|
||||||
|
exportData: '/ota/otaBaCxList/exportData',
|
||||||
|
importZipUrl: '/ota/otaBaCxList/importData',//导入
|
||||||
|
},
|
||||||
|
number:'',
|
||||||
|
visible: false,
|
||||||
|
loading: false,
|
||||||
|
toggleSearchStatus: false,
|
||||||
|
dataSource: [],
|
||||||
|
selectedRowKeys: [],
|
||||||
|
selectedRowKeysRecord: [],
|
||||||
|
serialNumber: '',
|
||||||
|
total: 0,
|
||||||
|
pageSize: 10,
|
||||||
|
pageNo: 1,
|
||||||
|
CategoryTreeList: [],
|
||||||
|
softwareversionList: [],
|
||||||
|
softwareplatformList: [],
|
||||||
|
vehicleTypeList: [],
|
||||||
|
marketList: [],
|
||||||
|
queryParam: {
|
||||||
|
},
|
||||||
|
formInline: {},
|
||||||
|
rules: {
|
||||||
|
whetherTobring: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('standardDecompositionDocument') + this.$t('cannotEmpty'),
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: this.$t('softwareversion'),
|
||||||
|
align: 'left',
|
||||||
|
dataIndex: 'plannedBpLaunchBatch',
|
||||||
|
ellipsis: true,
|
||||||
|
width: 170
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// title: this.$t('softwareplatform'),
|
||||||
|
// align: 'left',
|
||||||
|
// dataIndex: 'ggpc',
|
||||||
|
// ellipsis: true,
|
||||||
|
// width: 170
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
title: this.$t('market'),
|
||||||
|
align: 'left',
|
||||||
|
width: 170,
|
||||||
|
ellipsis: true,
|
||||||
|
dataIndex: 'market'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('vehicleType'),
|
||||||
|
align: 'left',
|
||||||
|
width: 320,
|
||||||
|
ellipsis: true,
|
||||||
|
dataIndex: 'appliedVehicleProject'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('softwarereleasetime'),
|
||||||
|
align: 'left',
|
||||||
|
width: 170,
|
||||||
|
ellipsis: true,
|
||||||
|
dataIndex: 'releaseDate'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('operation'),
|
||||||
|
align: 'left',
|
||||||
|
fixed: 'right',
|
||||||
|
width: 100,
|
||||||
|
scopedSlots: { customRender: 'operation' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
userInfoQuery: {},
|
||||||
|
administrators: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getSelectData()
|
||||||
|
this.getList()
|
||||||
|
this.administrators = false
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapGetters(['userInfo']),
|
||||||
|
getSelectData(){
|
||||||
|
getAction('/ota/otaManageApplyEO/getPullDownList', {}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.softwareversionList = res.result.plannedBpLaunchBatchList
|
||||||
|
this.vehicleTypeList = res.result.carSet
|
||||||
|
this.marketList = res.result.marketSet
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleToggleSearch() {
|
||||||
|
this.toggleSearchStatus = !this.toggleSearchStatus
|
||||||
|
},
|
||||||
|
searchQuery() {
|
||||||
|
this.pageNo = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
searchReset() {
|
||||||
|
this.queryParam = {}
|
||||||
|
this.$route.query.serialNumber = ''
|
||||||
|
this.$route.query.flowStatus = ''
|
||||||
|
this.pageNo = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
pageOnChange(page) {
|
||||||
|
this.pageNo = page
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
SizeChange(page, pageSize) {
|
||||||
|
this.pageNo = 1
|
||||||
|
this.pageSize = pageSize
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
getList() {
|
||||||
|
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
|
||||||
|
Object.keys(queryParam).forEach(val => {
|
||||||
|
if (queryParam[val] instanceof Array) {
|
||||||
|
queryParam[val] = queryParam[val].join(',')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
let query = {
|
||||||
|
pageNo: this.pageNo,
|
||||||
|
pageSize: this.pageSize,
|
||||||
|
...queryParam
|
||||||
|
}
|
||||||
|
this.loading = true
|
||||||
|
getAction('/ota/otaManageApplyEO/getOtaPage', query).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
if (res.result.current > 1 && res.result.records.length == 0) {
|
||||||
|
this.pageNo = 1
|
||||||
|
this.getList()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.dataSource = res.result.records || []
|
||||||
|
this.total = res.result.total
|
||||||
|
this.loading = false
|
||||||
|
} else {
|
||||||
|
this.loading = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onSelectChange(value, record) {
|
||||||
|
this.selectedRowKeys = value
|
||||||
|
this.selectedRowKeysRecord = record
|
||||||
|
},
|
||||||
|
//导出
|
||||||
|
handleExportManage() {
|
||||||
|
// console.log('menuId',this.menuId)
|
||||||
|
let dateName = moment(new Date()).format('YYYYMMDD')
|
||||||
|
let name = 'OTA' + this.$t('softwareversion') + ' ' + dateName + '.xlsx'
|
||||||
|
let long = localStorage.getItem('language')
|
||||||
|
let cut = ''
|
||||||
|
if (long && long == 'zh-cn') {
|
||||||
|
this.cut = 'cn'
|
||||||
|
} else if (long && long == 'en-us') {
|
||||||
|
this.cut = 'en'
|
||||||
|
}
|
||||||
|
let query = {
|
||||||
|
exportName: name,
|
||||||
|
selections: this.selectedRowKeys.join(','),
|
||||||
|
...this.queryParam,
|
||||||
|
cut:this.cut
|
||||||
|
}
|
||||||
|
|
||||||
|
downloadFile('ota/otaManageApplyEO/otaExportXls', name, query, this.selectClear)
|
||||||
|
},
|
||||||
|
// 查看
|
||||||
|
detailclick(item){
|
||||||
|
this.$router.push({
|
||||||
|
path: '/components/detil',
|
||||||
|
query: item
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onChange(value, dateString) {
|
||||||
|
if (this.queryParam.releaseDate && this.queryParam.releaseDate.length > 0) {
|
||||||
|
let dateOne = moment(dateString[0]).format('YYYY-MM-DD')
|
||||||
|
let dateTwo = moment(dateString[1]).format('YYYY-MM-DD')
|
||||||
|
this.queryParam.softwareIssueTimeStart = dateOne
|
||||||
|
this.queryParam.softwareIssueTimeEnd = dateTwo
|
||||||
|
} else {
|
||||||
|
this.queryParam.releaseDate = []
|
||||||
|
// this.queryParamOne[item + '_name'] = []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.tree-select .ant-select-tree-dropdown {
|
||||||
|
height: 298px !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style scoped>
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
|
|
||||||
|
.page {
|
||||||
|
text-align: right;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-title-text {
|
||||||
|
line-height: 1.4;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text {
|
||||||
|
width: 20%;
|
||||||
|
min-width: 110px;
|
||||||
|
color: #000F16;
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right: 16px;
|
||||||
|
margin-top: 3px;
|
||||||
|
text-align: right;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input {
|
||||||
|
display: inline-block;
|
||||||
|
width: 70%;
|
||||||
|
height: 38px;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-button {
|
||||||
|
height: 38px;
|
||||||
|
/*margin-top: 2px;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-operation {
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemModel {
|
||||||
|
width: calc(100% - 130px);
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Required {
|
||||||
|
color: red;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .ant-table-row:first-child {
|
||||||
|
background: #fff !important;
|
||||||
|
opacity: 0.9;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .ant-table-body {
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .ant-table-placeholder {
|
||||||
|
margin-top: 8px !important;
|
||||||
|
}
|
||||||
|
/deep/ .ant-calendar-range-picker-input{
|
||||||
|
margin-left: -2px !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -474,6 +474,7 @@
|
|||||||
this.$message.success(this.$t('OperationSuccessful'))
|
this.$message.success(this.$t('OperationSuccessful'))
|
||||||
this.visible = false
|
this.visible = false
|
||||||
this.$emit('addModelList')
|
this.$emit('addModelList')
|
||||||
|
// this.vdrClick()
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning(res.message)
|
this.$message.warning(res.message)
|
||||||
this.confirmLoading = false
|
this.confirmLoading = false
|
||||||
@@ -482,6 +483,19 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 跳转vdr
|
||||||
|
// vdrClick(){
|
||||||
|
// let _this = this
|
||||||
|
// this.$confirm({
|
||||||
|
// content: _this.$t('Rematchornot') + 'VDR',
|
||||||
|
// onOk() {
|
||||||
|
// let newUrl = _this.$router.resolve({
|
||||||
|
// path:'otaAuthentication',
|
||||||
|
// })
|
||||||
|
// window.open(newUrl.href, '_blank')
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// },
|
||||||
handleInput(value) {
|
handleInput(value) {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.formInline = { ...this.formInline }
|
this.formInline = { ...this.formInline }
|
||||||
|
|||||||
@@ -0,0 +1,506 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline">
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :md="6" :sm="10">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text" :title="$t('softwareversion')">
|
||||||
|
<span>{{ $t('softwareversion') }}</span>
|
||||||
|
</div>
|
||||||
|
<a-select v-model="queryParam.plannedBpLaunchBatch"
|
||||||
|
class="box-input"
|
||||||
|
@change="getonChange"
|
||||||
|
showSearch
|
||||||
|
optionFilterProp="label"
|
||||||
|
:autoClearSearchValue="false"
|
||||||
|
:getPopupContainer="triggerNode => triggerNode.parentNode" :popper-append-to-body="false">
|
||||||
|
<a-select-option v-for="d in options" :key="d.plannedBpLaunchBatch" :label='d.plannedBpLaunchBatch' :value="d.plannedBpLaunchBatch">
|
||||||
|
<span style="display: inline-block;width: 80%" :title=" d.plannedBpLaunchBatch">
|
||||||
|
{{ d.plannedBpLaunchBatch }}
|
||||||
|
</span>
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="6" :sm="10">
|
||||||
|
<div class="box-title-text" v-if="this.options.length && this.options.length !== 0">
|
||||||
|
<a-button class="box-button"
|
||||||
|
style="line-height: 32px;margin-top: 5px;"
|
||||||
|
@click="vdrcheckClick">{{ 'VDR' + $t('view')}}
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
<div class="box-content">
|
||||||
|
<div class="box-content-left">
|
||||||
|
<div id="main-top-Collect"></div>
|
||||||
|
<div id="main-end-Collect"></div>
|
||||||
|
<!-- <div class='main-table'>-->
|
||||||
|
<!-- <table border="1" cellspacing="0" class="table">-->
|
||||||
|
<!-- <tr>-->
|
||||||
|
<!-- <td width="150px" height="50px" align="center">{{$t('tobematched')}}</td>-->
|
||||||
|
<!-- <td width="150px" height="50px" align="center">{{$t('Pendingapproval')}}</td>-->
|
||||||
|
<!-- <td width="150px" height="50px" align="center">{{$t('lock')}}</td>-->
|
||||||
|
<!-- <td width="150px" height="50px" align="center">{{$t('sendBack')}}</td>-->
|
||||||
|
<!--<!– <td width="150px" height="50px" align="center">{{$t('notInvolved')}}</td>–>-->
|
||||||
|
<!-- </tr>-->
|
||||||
|
<!-- <tr>-->
|
||||||
|
<!-- <td height="80px" align="center"><span style='color: #5087EC'>{{matchForm.to_be_matched}}</span></td>-->
|
||||||
|
<!-- <td height="80px" align="center"><span style='color: #68BBC4'>{{matchForm.to_be_approved}}</span></td>-->
|
||||||
|
<!-- <td height="80px" align="center"><span style='color: #58A55C'>{{matchForm.locked}}</span></td>-->
|
||||||
|
<!-- <td height="80px" align="center"><span style='color: #F2BD42'>{{matchForm.rejected}}</span></td>-->
|
||||||
|
<!--<!–/* <td height="80px" align="center"><span style='color: #BBBBBB'>{{matchForm.a}}</span></td>*/–>-->
|
||||||
|
<!-- </tr>-->
|
||||||
|
<!-- </table>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="box-content">-->
|
||||||
|
<!-- <div class="box-content-left">-->
|
||||||
|
|
||||||
|
<!-- <div class='main-table' style='padding:10% 0;margin-left: -61px;'>-->
|
||||||
|
<!-- <table border="1" cellspacing="0" class="table">-->
|
||||||
|
<!-- <tr>-->
|
||||||
|
<!-- <td width="150px" height="50px" align="center">{{$t('Notatthe')}}</td>-->
|
||||||
|
<!-- <td width="150px" height="50px" align="center">{{$t('inProgress')}}</td>-->
|
||||||
|
<!-- <td width="150px" height="50px" align="center">{{$t('experimentPassed')}}</td>-->
|
||||||
|
<!-- <td width="150px" height="50px" align="center">{{$t('experimentFailed')}}</td>-->
|
||||||
|
<!-- <td width="190px" height="50px" align="center">{{$t('componentReportNotSubmitted')}}</td>-->
|
||||||
|
<!-- <td width="190px" height="50px" align="center">{{$t('componentReportSubmitted')}}</td>-->
|
||||||
|
<!-- <td width="190px" height="50px" align="center">{{$t('componentReportHasBeenStored')}}</td>-->
|
||||||
|
<!-- </tr>-->
|
||||||
|
<!-- <tr>-->
|
||||||
|
<!-- <td height="80px" align="center"><span style='color: #BBBBBB'>{{authenticationForm.Not_start}}</span></td>-->
|
||||||
|
<!-- <td height="80px" align="center"><span style='color: #F2BD42'>{{authenticationForm.In_progress}}</span></td>-->
|
||||||
|
<!-- <td height="80px" align="center"><span style='color: #68BBC4'>{{authenticationForm.Test_passed}}</span></td>-->
|
||||||
|
<!-- <td height="80px" align="center"><span style='color: #D95040'>{{authenticationForm.Test_failed}}</span></td>-->
|
||||||
|
<!-- <td height="80px" align="center"><span style='color: #BBBBBB'>{{authenticationForm.Component_report_not_submitted}}</span></td>-->
|
||||||
|
<!-- <td height="80px" align="center"><span style='color: #68BBC4'>{{authenticationForm.Component_report_submitted}}</span></td>-->
|
||||||
|
<!-- <td height="80px" align="center"><span style='color: #58A55C'>{{authenticationForm.Component_report_has_been_stored}}</span></td>-->
|
||||||
|
<!-- </tr>-->
|
||||||
|
<!-- </table>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <responsibilityList @responsibility="responsibility" ref="responsibilityListRef"/>-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import * as echarts from 'echarts'
|
||||||
|
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
|
||||||
|
// import responsibilityList from './responsibilityList'
|
||||||
|
import 'echarts/lib/component/dataZoom'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'DeliverableStatusEchart',
|
||||||
|
components: {
|
||||||
|
// responsibilityList
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
idList: {
|
||||||
|
type: Array,
|
||||||
|
default: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
queryParam: {
|
||||||
|
plannedBpLaunchBatch: ''
|
||||||
|
},
|
||||||
|
options: [],
|
||||||
|
collecting: [],
|
||||||
|
notStart: [],
|
||||||
|
submit: [],
|
||||||
|
syncReport: [],
|
||||||
|
collectingdata: [],
|
||||||
|
notStartdata: [],
|
||||||
|
submitdata: [],
|
||||||
|
syncReportdata: [],
|
||||||
|
dutyTerritory: [],
|
||||||
|
collectingpercentage: [],
|
||||||
|
collectingquantity: [],
|
||||||
|
notStartpercentage: [],
|
||||||
|
notStartquantity: [],
|
||||||
|
submitpercentage: [],
|
||||||
|
submitquantity: [],
|
||||||
|
syncReportpercentage: [],
|
||||||
|
syncReportquantity: [],
|
||||||
|
vehicleTypeCode:'',
|
||||||
|
softwareversion:'',
|
||||||
|
releaseName:'',
|
||||||
|
matchForm:{},
|
||||||
|
authenticationForm:{},
|
||||||
|
url: {
|
||||||
|
getProjectDetailsStatistics: '/project/projectLibraryBase/getProjectDetailsStatistics'
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getoptions()
|
||||||
|
// this.getData()
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
vdrcheckClick(){
|
||||||
|
|
||||||
|
},
|
||||||
|
getData() {
|
||||||
|
let query = {
|
||||||
|
...this.queryParam,
|
||||||
|
projectId:this.$route.query.id
|
||||||
|
}
|
||||||
|
getAction('ota/otaManageApplyEO/getStatisticalStatus', query).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
if (res.result) {
|
||||||
|
let mainTopDataSource = res.result.matchStatusMapList ? res.result.matchStatusMapList : []
|
||||||
|
let mainEndDataSource = res.result.attestationScheduleMapList ? res.result.attestationScheduleMapList : []
|
||||||
|
this.matchForm = res.result.matchStatusMap
|
||||||
|
this.authenticationForm = res.result.attestationScheduleMap
|
||||||
|
this.mainTopEcharts(mainTopDataSource)
|
||||||
|
this.mainEndEcharts(mainEndDataSource)
|
||||||
|
// this.mainRightEcharts(mainRightDataSource)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
getoptions() {
|
||||||
|
let id = ''
|
||||||
|
id = this.$route.query.id
|
||||||
|
getAction('ota/otaManageApplyEO/getVdrListByProject', { projectId: id }).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.options = res.result
|
||||||
|
this.queryParam.plannedBpLaunchBatch = this.options[0].plannedBpLaunchBatch
|
||||||
|
this.getData()
|
||||||
|
// this.getData(this.queryParam.ctype)
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
getonChange(value) {
|
||||||
|
this.getData(value)
|
||||||
|
},
|
||||||
|
|
||||||
|
getEcharts(chart, title, color, data) {
|
||||||
|
var myChart = echarts.init(document.getElementById(chart))
|
||||||
|
myChart.setOption({
|
||||||
|
title: {
|
||||||
|
text: title
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'item',
|
||||||
|
textStyle: {
|
||||||
|
fontWeight: 'normal',
|
||||||
|
fontSize: 14,
|
||||||
|
color: '#040B29',
|
||||||
|
fontFamily: 'BlueSkyNoto'
|
||||||
|
},
|
||||||
|
formatter: function(parms) {
|
||||||
|
let str = parms.marker + ' ' + parms.data.name + ' ' + parms.data.value + ' (' + parms.percent + '%)'
|
||||||
|
return str
|
||||||
|
}
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
itemWidth: 12,
|
||||||
|
itemHeight: 12,
|
||||||
|
bottom: '0',
|
||||||
|
left: 'center',
|
||||||
|
itemGap: 30,
|
||||||
|
icon: 'circle'
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: title,
|
||||||
|
type: 'pie',
|
||||||
|
radius: ['40%', '54%'],
|
||||||
|
avoidLabelOverlap: false,
|
||||||
|
label: {
|
||||||
|
show: false,
|
||||||
|
position: 'center'
|
||||||
|
},
|
||||||
|
labelLine: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
color: color,
|
||||||
|
data: data
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
myChart.on('click', (params) => {
|
||||||
|
let query = {}
|
||||||
|
if (params.seriesName == this.$t('regulatoryTaskConfirmation')) {
|
||||||
|
query = {
|
||||||
|
title: params.seriesName+'-'+params.name,
|
||||||
|
projectLibraryId: this.$route.query.id,
|
||||||
|
operatorType: 'queryFGTaskToConfirmStatistics',
|
||||||
|
status: params.data.status
|
||||||
|
}
|
||||||
|
} else if (params.seriesName == this.$t('designCompliance')) {
|
||||||
|
query = {
|
||||||
|
title: params.seriesName+'-'+params.name,
|
||||||
|
projectLibraryId: this.$route.query.id,
|
||||||
|
operatorType: 'queryDesignStatistics',
|
||||||
|
status: params.data.status
|
||||||
|
}
|
||||||
|
} else if (params.seriesName == this.$t('verifyCompliance')) {
|
||||||
|
query = {
|
||||||
|
title: params.seriesName+'-'+params.name,
|
||||||
|
projectLibraryId: this.$route.query.id,
|
||||||
|
operatorType: 'queryVerifyStatistics',
|
||||||
|
status: params.data.status
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.$refs.responsibilityListRef.getData(query)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
mainTopEcharts(dataSource) {
|
||||||
|
let data = []
|
||||||
|
let color = []
|
||||||
|
this.mainTopNum = 0
|
||||||
|
if (dataSource && dataSource.length > 0) {
|
||||||
|
this.dataSource = [{}]
|
||||||
|
dataSource.forEach(res => {
|
||||||
|
if (res.matchStatus == 'to_be_matched') {
|
||||||
|
data.push({
|
||||||
|
value: res.matchStatusCount,
|
||||||
|
name: this.$t('tobematched'),
|
||||||
|
color: '#5087EC',
|
||||||
|
status: res.matchStatus
|
||||||
|
})
|
||||||
|
color.push('#5087EC')
|
||||||
|
} else if (res.matchStatus == 'to_be_approved') {
|
||||||
|
data.push({
|
||||||
|
value: res.matchStatusCount,
|
||||||
|
name: this.$t('Pendingapproval'),
|
||||||
|
color: '#68BBC4',
|
||||||
|
status: res.matchStatus
|
||||||
|
})
|
||||||
|
color.push('#68BBC4')
|
||||||
|
} else if (res.matchStatus == 'locked') {
|
||||||
|
data.push({
|
||||||
|
value: res.matchStatusCount,
|
||||||
|
name: this.$t('lock'),
|
||||||
|
color: '#58A55C',
|
||||||
|
status: res.matchStatus
|
||||||
|
})
|
||||||
|
color.push('#58A55C')
|
||||||
|
} else if (res.matchStatus == 'rejected') {
|
||||||
|
data.push({
|
||||||
|
value: res.matchStatusCount,
|
||||||
|
name: this.$t('sendBack'),
|
||||||
|
color: '#F2BD42',
|
||||||
|
status: res.matchStatus
|
||||||
|
})
|
||||||
|
color.push('#F2BD42')
|
||||||
|
}
|
||||||
|
this.mainTopNum += res.matchStatusCount
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.getEcharts('main-top-Collect', this.$t('Matchingstatestatistics'), color, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
mainEndEcharts(dataSource) {
|
||||||
|
let data = []
|
||||||
|
let color = []
|
||||||
|
this.mainTopNum = 0
|
||||||
|
if (dataSource && dataSource.length > 0) {
|
||||||
|
this.dataSource = [{}]
|
||||||
|
console.log(dataSource)
|
||||||
|
dataSource.forEach(res => {
|
||||||
|
if (res.attestationSchedule == 'Not start') {
|
||||||
|
data.push({
|
||||||
|
value: res.attestationScheduleCount,
|
||||||
|
name: this.$t('Notatthe'),
|
||||||
|
color: '#BBBBBB',
|
||||||
|
status: res.attestationSchedule
|
||||||
|
})
|
||||||
|
color.push('#BBBBBB')
|
||||||
|
} else if (res.attestationSchedule == 'In progress') {
|
||||||
|
data.push({
|
||||||
|
value: res.attestationScheduleCount,
|
||||||
|
name: this.$t('inProgress'),
|
||||||
|
color: '#F2BD42',
|
||||||
|
status: res.attestationSchedule
|
||||||
|
})
|
||||||
|
color.push('#F2BD42')
|
||||||
|
} else if (res.attestationSchedule == 'Test failed') {
|
||||||
|
data.push({
|
||||||
|
value: res.attestationScheduleCount,
|
||||||
|
name: this.$t('experimentFailed'),
|
||||||
|
color: '#D95040',
|
||||||
|
status: res.attestationSchedule
|
||||||
|
})
|
||||||
|
color.push('#D95040')
|
||||||
|
} else if (res.attestationSchedule == 'Component report not submitted') {
|
||||||
|
data.push({
|
||||||
|
value: res.attestationScheduleCount,
|
||||||
|
name: this.$t('componentReportNotSubmitted'),
|
||||||
|
color: '#BBBBBB',
|
||||||
|
status: res.attestationSchedule
|
||||||
|
})
|
||||||
|
color.push('#BBBBBB')
|
||||||
|
} else if (res.attestationSchedule == 'Component report submitted') {
|
||||||
|
data.push({
|
||||||
|
value: res.attestationScheduleCount,
|
||||||
|
name: this.$t('componentReportSubmitted'),
|
||||||
|
color: '#68BBC4',
|
||||||
|
status: res.attestationSchedule
|
||||||
|
})
|
||||||
|
color.push('#68BBC4')
|
||||||
|
} else if (res.attestationSchedule == 'Component report has been stored') {
|
||||||
|
data.push({
|
||||||
|
value: res.attestationScheduleCount,
|
||||||
|
name: this.$t('componentReportHasBeenStored'),
|
||||||
|
color: '#58A55C',
|
||||||
|
status: res.attestationSchedule
|
||||||
|
})
|
||||||
|
color.push('#58A55C')
|
||||||
|
}else if (res.attestationSchedule == 'Test passed') {
|
||||||
|
data.push({
|
||||||
|
value: res.attestationScheduleCount,
|
||||||
|
name: this.$t('experimentPassed'),
|
||||||
|
color: '#68BBC4',
|
||||||
|
status: res.attestationSchedule
|
||||||
|
})
|
||||||
|
color.push('#68BBC4')
|
||||||
|
}
|
||||||
|
this.mainTopNum += res.attestationScheduleCount
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.getEcharts('main-end-Collect', this.$t('OTaauthenticationprogressstatistics'), color, data)
|
||||||
|
},
|
||||||
|
responsibility(item) {
|
||||||
|
this.$emit('currentStatus', item)
|
||||||
|
},
|
||||||
|
vdrcheckClick(){
|
||||||
|
this.options.forEach(item => {
|
||||||
|
if(item.plannedBpLaunchBatch == this.queryParam.plannedBpLaunchBatch){
|
||||||
|
this.vehicleTypeCode = item.appliedVehicleProject
|
||||||
|
this.softwareversion = item.plannedBpLaunchBatch
|
||||||
|
this.releaseName = item.updateDate
|
||||||
|
}
|
||||||
|
})
|
||||||
|
let newUrl = this.$router.resolve({
|
||||||
|
path:'/components/detil',
|
||||||
|
query:{
|
||||||
|
vehicleTypeCode:this.vehicleTypeCode,
|
||||||
|
plannedBpLaunchBatch:this.softwareversion,
|
||||||
|
releaseDate:this.releaseName
|
||||||
|
},
|
||||||
|
})
|
||||||
|
window.open(newUrl.href, '_blank')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.box-content {
|
||||||
|
width: 100%;
|
||||||
|
height: 450px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
|
||||||
|
.box-content-left {
|
||||||
|
width: calc(100% - 12px);
|
||||||
|
height: 450px;
|
||||||
|
border: 2px #eff1f3 solid;
|
||||||
|
border-radius: 6px;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
#main-top-Collect {
|
||||||
|
width: 60%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 24px 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main-left-content {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
#main-end-Collect {
|
||||||
|
width: 60%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 24px 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main-bottom {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.main-table{
|
||||||
|
width: 40%;
|
||||||
|
padding: 10% 4%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input {
|
||||||
|
display: inline-block;
|
||||||
|
width: calc(70% - 100px);
|
||||||
|
height: 38px;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-content-right {
|
||||||
|
width: calc(50% - 12px);
|
||||||
|
height: 398px;
|
||||||
|
border: 2px #eff1f3 solid;
|
||||||
|
|
||||||
|
#main-right {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main-right-content {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-title-text {
|
||||||
|
line-height: 1.4;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text {
|
||||||
|
color: #000F16;
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right: 16px;
|
||||||
|
margin-top: 3px;
|
||||||
|
text-align: left;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input {
|
||||||
|
display: inline-block;
|
||||||
|
width: calc(100% - 126px);
|
||||||
|
height: 38px;
|
||||||
|
margin-top: 2px;
|
||||||
|
line-height: 38px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -28,6 +28,9 @@
|
|||||||
<a-tab-pane :key="$t('nonConformance')" :tab="$t('nonConformance')">
|
<a-tab-pane :key="$t('nonConformance')" :tab="$t('nonConformance')">
|
||||||
<nonConformance @currentStatus="currentStatus" v-if="activeKey == $t('nonConformance')"/>
|
<nonConformance @currentStatus="currentStatus" v-if="activeKey == $t('nonConformance')"/>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
|
<a-tab-pane :key="$t('otastatus')" :tab="$t('otastatus')">
|
||||||
|
<otastatus @currentStatus="currentStatus" :idList="idList" v-if="activeKey == $t('otastatus')"/>
|
||||||
|
</a-tab-pane>
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
</a-card>
|
</a-card>
|
||||||
</template>
|
</template>
|
||||||
@@ -37,6 +40,7 @@
|
|||||||
import certificationActivity from './certificationActivity'
|
import certificationActivity from './certificationActivity'
|
||||||
import parameterCollectionProgress from './parameterCollectionProgress'
|
import parameterCollectionProgress from './parameterCollectionProgress'
|
||||||
import nonConformance from './nonConformance'
|
import nonConformance from './nonConformance'
|
||||||
|
import otastatus from './otastatus'
|
||||||
import { getAction, postAction } from '@/api/manage'
|
import { getAction, postAction } from '@/api/manage'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -45,7 +49,8 @@
|
|||||||
parameterCollectionProgress,
|
parameterCollectionProgress,
|
||||||
regulatoryCompliance,
|
regulatoryCompliance,
|
||||||
certificationActivity,
|
certificationActivity,
|
||||||
nonConformance
|
nonConformance,
|
||||||
|
otastatus
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -515,6 +515,9 @@
|
|||||||
this.visible = false
|
this.visible = false
|
||||||
this.confirmLoading = false
|
this.confirmLoading = false
|
||||||
this.$emit('settingListForm')
|
this.$emit('settingListForm')
|
||||||
|
if(res.result.matchVdr == true){
|
||||||
|
this.vdrClick()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning(this.$t('operationFailed'))
|
this.$message.warning(this.$t('operationFailed'))
|
||||||
this.confirmLoading = false
|
this.confirmLoading = false
|
||||||
@@ -523,6 +526,19 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 跳转vdr
|
||||||
|
vdrClick(){
|
||||||
|
let _this = this
|
||||||
|
this.$confirm({
|
||||||
|
content: _this.$t('Rematchornot') + 'VDR',
|
||||||
|
onOk() {
|
||||||
|
let newUrl = _this.$router.resolve({
|
||||||
|
path:'otaAuthentication',
|
||||||
|
})
|
||||||
|
window.open(newUrl.href, '_blank')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.formInline = {}
|
this.formInline = {}
|
||||||
this.visible = false
|
this.visible = false
|
||||||
|
|||||||
Reference in New Issue
Block a user