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:
高嵩
2023-08-25 17:04:45 +08:00
68 changed files with 9738 additions and 16 deletions
@@ -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);
}
}
@@ -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);
}
}
@@ -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);
}
}
@@ -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);
}
}
@@ -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);
}
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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);
}
@@ -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> {
}
@@ -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> {
}
@@ -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();
}
@@ -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();
}
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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);
}
@@ -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();
}
@@ -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();
}
@@ -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();
}
@@ -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();
}
@@ -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();
}
}
@@ -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();
}
}
@@ -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();
}
}
@@ -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();
}
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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);
}
/**
@@ -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;
}
}
@@ -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);
}
@@ -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>
@@ -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);
}
@@ -28,7 +28,7 @@ public interface IProjectTaskPlanningService extends IService<ProjectTaskPlannin
* @param projectTaskPlanning
* @return
*/
void editById(ProjectTaskPlanning projectTaskPlanning);
boolean editById(ProjectTaskPlanning projectTaskPlanning);
/**
* 通过id删除
@@ -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;
}
}
@@ -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;
}
/**
* 导出跨项目进度概览-设置数据
@@ -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;
}
/**