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),
|
||||
ENGINEERING_INTERFACE_PERSON("工程接口人","engineeringInterfacePerson","engineeringInterfacePerson","1534020084667674626",5),
|
||||
ENGINEER("工程师","engineer","engineer","1534020318437208065",6),
|
||||
HOMOLOGATION_ENGINEER("认证工程师","homologationEngineer","homologationEngineer","1534019729326239745",8),
|
||||
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;
|
||||
|
||||
+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.HttpServletResponse;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
@@ -103,8 +105,10 @@ public class ProjectTaskPlanningController extends JeroController<ProjectTaskPla
|
||||
@ApiOperation(value="法规,认证任务计划 (各阶段确认进度) 表-编辑", notes="法规,认证任务计划 (各阶段确认进度) 表-编辑")
|
||||
@PutMapping(value = "/edit")
|
||||
public Result<?> edit(@Validated @RequestBody ProjectTaskPlanning projectTaskPlanning) {
|
||||
projectTaskPlanningService.editById(projectTaskPlanning);
|
||||
return Result.OK("编辑成功!");
|
||||
boolean matchVdr = projectTaskPlanningService.editById(projectTaskPlanning);
|
||||
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_SUBMITTED("部件报告已提交","Component report submitted","6"),
|
||||
COMPONENT_REPORT_HAS_BEEN_STORED("部件报告已入库","Component report has been stored","7"),
|
||||
NA("null","null","8"),
|
||||
|
||||
;
|
||||
|
||||
String name;
|
||||
@@ -74,4 +76,14 @@ public enum CertificationProgressEnum {
|
||||
}
|
||||
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);
|
||||
|
||||
ProjectLibraryBase selectProjectName(@Param("projectLibraryId") String projectLibraryId);
|
||||
|
||||
List<ProjectLibraryBase> getListByIds(@Param("idList") List<String> idList);
|
||||
|
||||
|
||||
}
|
||||
|
||||
+10
@@ -290,4 +290,14 @@
|
||||
WHERE
|
||||
plb.id = #{projectLibraryId}
|
||||
</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>
|
||||
|
||||
+4
@@ -184,4 +184,8 @@ public interface IProjectLibraryBaseService extends IService<ProjectLibraryBase>
|
||||
* @return
|
||||
*/
|
||||
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
|
||||
* @return
|
||||
*/
|
||||
void editById(ProjectTaskPlanning projectTaskPlanning);
|
||||
boolean editById(ProjectTaskPlanning projectTaskPlanning);
|
||||
|
||||
/**
|
||||
* 通过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.enums.DictCodeEnum;
|
||||
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.enums.*;
|
||||
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.service.ITopProjectEOService;
|
||||
import com.jero.modules.wkflow.enums.FlowTypeEnum;
|
||||
import javafx.beans.binding.ObjectBinding;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
||||
@@ -173,6 +176,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
||||
|
||||
@Autowired
|
||||
private IProjectLibraryStatisticsService projectLibraryStatisticsService;
|
||||
@Autowired
|
||||
private OtaManageApplyEOServiceImpl otaManageApplyEOService;
|
||||
|
||||
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
private static DecimalFormat df = new DecimalFormat("#.00");
|
||||
@@ -2576,6 +2581,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
||||
this.exportRegulatoryManagement(workbook,params);
|
||||
this.exportCertificationManagement(workbook,params);
|
||||
this.exportParameterCollecting(workbook,params);
|
||||
this.exportOtaCollecting(workbook,params);
|
||||
try {
|
||||
response.setHeader("Content-Disposition",
|
||||
"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";
|
||||
}
|
||||
|
||||
|
||||
@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;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aliyuncs.utils.IOUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
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.util.DateUtils;
|
||||
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.report.entity.ParamsReportConfigDataEO;
|
||||
import com.jero.modules.cert.template.enums.ControlTypeEnum;
|
||||
import com.jero.modules.project.entity.*;
|
||||
import com.jero.modules.project.enums.*;
|
||||
import com.jero.modules.ota.entity.OtaManageApplyEO;
|
||||
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.service.IConditionAssessmentEOService;
|
||||
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.vo.TimeNodeVO;
|
||||
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.service.IProjectUserBrandService;
|
||||
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.poi.hssf.usermodel.HSSFSheet;
|
||||
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.shiro.SecurityUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -56,8 +70,17 @@ import java.io.OutputStream;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.ArrayList;
|
||||
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;
|
||||
|
||||
/**
|
||||
@@ -103,6 +126,8 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
private IParamsCollectManifestHistoryEOService paramsCollectManifestHistoryEOService;
|
||||
@Autowired
|
||||
private IProjectLibraryStatisticsService projectLibraryStatisticsService;
|
||||
@Autowired
|
||||
private OtaManageApplyEOServiceImpl otaManageApplyEOService;
|
||||
|
||||
|
||||
/**
|
||||
@@ -650,6 +675,24 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
List<ProjectTaskPlanning> ptpEoList = this.projectTaskPlanningService.list();
|
||||
List<ParamsManifestEO> pmEoList = this.paramsManifestEOService.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));
|
||||
List<ParamsCollectManifestEO> pcmEoList = this.paramsCollectManifestEOService.getList(null);
|
||||
List<ParamsCollectManifestHistoryEO> pcmHisEoList = this.paramsCollectManifestHistoryEOService.list();
|
||||
@@ -667,6 +710,7 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
|
||||
HSSFSheet corssProjectProgressSheet = createCorssProjectProgressSheet(workbook, projectLibraryBase);
|
||||
HSSFSheet overviewCrossProjectProgressSheet = this.createOverviewCrossProjectProgressSheet(workbook, projectLibraryBase);
|
||||
HSSFSheet otaSheet = createOtaSheet(workbook, projectLibraryBase);
|
||||
CellStyle cellStyleTitle = workbook.createCellStyle();
|
||||
cellStyleTitle.setAlignment(HorizontalAlignment.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();
|
||||
thread2.start();
|
||||
thread3.start();
|
||||
|
||||
// 等待线程一和线程二执行完毕
|
||||
try {
|
||||
thread1.join();
|
||||
thread2.join();
|
||||
thread3.join();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -721,6 +775,45 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
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
|
||||
@@ -1165,6 +1258,66 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
}
|
||||
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.jero.common.constant.enums.CutEnum;
|
||||
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.enums.PlanStatusEnum;
|
||||
import com.jero.modules.project.enums.ProjectTaskPlanningNameEnum;
|
||||
import com.jero.modules.project.mapper.ProjectTaskPlanningMapper;
|
||||
import com.jero.modules.project.service.IProjectTaskPlanningService;
|
||||
import com.jero.modules.project.vo.TimeNodeVO;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
@@ -31,6 +34,8 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
|
||||
@Autowired
|
||||
private ProjectTaskPlanningMapper projectTaskPlanningMapper;
|
||||
@Autowired
|
||||
private IOtaManageApplyEOService otaManageApplyEOService;
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -52,14 +57,40 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
* 更新
|
||||
*
|
||||
* @param projectTaskPlanning
|
||||
* @return
|
||||
* @return 是否需要跳转VDR
|
||||
*/
|
||||
@Override
|
||||
public void editById(ProjectTaskPlanning projectTaskPlanning) {
|
||||
public boolean editById(ProjectTaskPlanning projectTaskPlanning) {
|
||||
boolean matchVdr = false;
|
||||
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());
|
||||
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',
|
||||
taskHandlingOne:'Task Handling',
|
||||
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',
|
||||
}
|
||||
@@ -3883,4 +3883,31 @@ module.exports = {
|
||||
taskHandlingOne:'任务办理',
|
||||
taskReview:'任务审查',
|
||||
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"
|
||||
show-search
|
||||
optionFilterProp="label"
|
||||
:autoClearSearchValue="false"
|
||||
:placeholder="placeholder" :disabled="disabled" :value="getValueSting" @change="handleInput">
|
||||
<!-- <a-select-option :value="null">{{$t('pleaseSelect')}}</a-select-option>-->
|
||||
<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.visible = false
|
||||
this.$emit('addModelList')
|
||||
// this.vdrClick()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
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) {
|
||||
this.$nextTick(() => {
|
||||
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')">
|
||||
<nonConformance @currentStatus="currentStatus" v-if="activeKey == $t('nonConformance')"/>
|
||||
</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-card>
|
||||
</template>
|
||||
@@ -37,6 +40,7 @@
|
||||
import certificationActivity from './certificationActivity'
|
||||
import parameterCollectionProgress from './parameterCollectionProgress'
|
||||
import nonConformance from './nonConformance'
|
||||
import otastatus from './otastatus'
|
||||
import { getAction, postAction } from '@/api/manage'
|
||||
|
||||
export default {
|
||||
@@ -45,7 +49,8 @@
|
||||
parameterCollectionProgress,
|
||||
regulatoryCompliance,
|
||||
certificationActivity,
|
||||
nonConformance
|
||||
nonConformance,
|
||||
otastatus
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -515,6 +515,9 @@
|
||||
this.visible = false
|
||||
this.confirmLoading = false
|
||||
this.$emit('settingListForm')
|
||||
if(res.result.matchVdr == true){
|
||||
this.vdrClick()
|
||||
}
|
||||
} else {
|
||||
this.$message.warning(this.$t('operationFailed'))
|
||||
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() {
|
||||
this.formInline = {}
|
||||
this.visible = false
|
||||
|
||||
Reference in New Issue
Block a user