Merge remote-tracking branch 'origin/master'

This commit is contained in:
liyawei
2022-05-23 09:18:34 +08:00
11 changed files with 352 additions and 38 deletions
@@ -173,10 +173,10 @@ public class ProjectNameInfoEOController extends JeroController<ProjectNameInfoE
*
* @return
*/
@AutoLog(value = "项目名信息表-space")
@ApiOperation(value="项目名信息表-space", notes="项目名信息表-space")
@RequestMapping(value = "/getSpaceInfo", method = RequestMethod.POST)
public void getSpaceInfo(@RequestParam(name="cut",required=true) String cut) {
projectNameInfoEOService.getSpaceInfo(cut);
}
// @AutoLog(value = "项目名信息表-space")
// @ApiOperation(value="项目名信息表-space", notes="项目名信息表-space")
// @RequestMapping(value = "/getSpaceInfo", method = RequestMethod.POST)
// public void getSpaceInfo(@RequestParam(name="cut",required=true) String cut) {
// projectNameInfoEOService.getSpaceInfo(cut);
// }
}
@@ -62,11 +62,9 @@ public class ProjectLibraryBase implements Serializable {
private java.lang.String certificationEngineerName;
/**车型平台*/
@TableField(exist = false)
private java.lang.String vehiclePlatform;
/**数字平台*/
@TableField(exist = false)
private java.lang.String digitalPlatform;
/**IPD信息*/
@@ -62,6 +62,11 @@ public class ProjectNameInfoEO implements Serializable {
@ApiModelProperty(value = "项目名称")
private java.lang.String projectName;
/**年款id*/
@ApiModelProperty(value = "年款id")
@TableField(exist = false)
private java.lang.String yearId;
/**年款名称*/
@ApiModelProperty(value = "年款名称")
@TableField(exist = false)
@@ -13,7 +13,7 @@ import java.util.List;
* @Version: V1.0
*/
public interface ProjectNameInfoEOMapper extends BaseMapper<ProjectNameInfoEO> {
@Select("select pni.id,pni.project_name,pnyi.id as year_id,pyni.year_name,pni.vehicle_platform,pni.digital_platform\n" +
@Select("select pni.id,pni.project_name,pyni.id as year_id,pyni.year_name,pni.vehicle_platform,pni.digital_platform\n" +
"from project_name_info as pni\n" +
"left join project_year_name_info as pyni on pni.id=pyni.project_name_id;")
List<ProjectNameInfoEO> selectProjectNameAndYear();
@@ -61,5 +61,5 @@ public interface IProjectNameInfoEOService extends IService<ProjectNameInfoEO> {
void getSpaceInfo(String cut);
//void getSpaceInfo(String cut);
}
@@ -220,7 +220,7 @@ public class ConditionAssessmentEOServiceImpl extends ServiceImpl<ConditionAsses
List<Map<String,Object>> result = new ArrayList<>();
if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){
List<ConditionAssessmentEO> conditionAssessmentList = this.baseMapper.getProjectStatusAssessListByConditionAssessment(projectLawsInventoryIdList, conditionAssessment);
List<String> dutyTerritoryList = conditionAssessmentList.stream().distinct().map(ConditionAssessmentEO::getDutyTerritory).collect(Collectors.toList());
List<String> dutyTerritoryList = conditionAssessmentList.stream().map(ConditionAssessmentEO::getDutyTerritory).distinct().collect(Collectors.toList());
dutyTerritoryList.forEach(dutyTerritory -> {
Map<String,Object> map = new HashMap<>();
@@ -10,7 +10,6 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.modules.project.entity.ConditionAssessmentEO;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectNameInfoEO;
import com.jero.modules.project.enums.*;
import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
@@ -77,6 +76,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Autowired
private ProjectNameInfoEOMapper projectNameInfoEOMapper;
@Autowired
private ProjectNameInfoEOServiceImpl projectNameInfoEOService;
/**
* 保存
@@ -93,18 +94,31 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
projectLibraryBase.setCreateBy(sysUser.getUsername());
projectLibraryBase.setUpdateBy(sysUser.getUsername());
String yearNameId = projectLibraryBase.getYearNameId();
String digitalPlatform = projectLibraryBase.getDigitalPlatform();
String vehiclePlatform = projectLibraryBase.getVehiclePlatform();
List<ProjectNameInfoEO> projectNameAndYear = projectNameInfoEOMapper.selectProjectNameAndYear();
// projectNameAndYear.stream().filter("year_id")
checkExitData(projectLibraryBase);
save(projectLibraryBase);
//创建任务计划时间轴
projectTaskPlanningService.setProjectTaskPlanning(projectLibraryBase.getId());
}
/**检查车型名称id,年款号,目标市场同时存在,报错*/
public void checkExitData(ProjectLibraryBase projectLibraryBase){
String projectNameId = projectLibraryBase.getProjectNameId();
String yearNameId = projectLibraryBase.getYearNameId();
String targetMarket = projectLibraryBase.getTargetMarket();
QueryWrapper<ProjectLibraryBase> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_name_id",projectNameId).eq("year_name_id",yearNameId).eq("target_market",targetMarket);
Integer count = projectLibraryBaseMapper.selectCount(queryWrapper);
if (count > 0) {
if(CutEnum.CN.getValue().equals(projectLibraryBase.getCut())) {
throw new JeroBootException("已存在车型名称,年款号,目标市场均同的数据");
}else{
throw new JeroBootException("There are data with the same model name, model number and target market.");
}
}
}
/**
* 更新
*
@@ -117,6 +131,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
projectLibraryBase.setUpdateTime(now);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
projectLibraryBase.setUpdateBy(sysUser.getUsername());
checkExitData(projectLibraryBase);
saveOrUpdate(projectLibraryBase);
}
@@ -1,23 +1,15 @@
package com.jero.modules.project.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.project.entity.ProjectNameInfoEO;
import com.jero.modules.project.entity.ProjectYearNameInfoEO;
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
import com.jero.modules.project.service.IProjectNameInfoEOService;
import com.jero.modules.space.service.SpaceServiceImpl;
import com.jero.modules.system.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
* @Description: 项目名信息表
@@ -106,14 +98,14 @@ public class ProjectNameInfoEOServiceImpl extends ServiceImpl<ProjectNameInfoEOM
return projectNameAndYear;
}
@Override
/* @Override
public void getSpaceInfo(String cut){
String jsonData ="";
try {
jsonData = spaceService.getSign();
if(StringUtils.isNotBlank(jsonData)) {
//静态测试数据
/* jsonData = "{\n" +
*//* jsonData = "{\n" +
" \"resultData\": [\n" +
" {\n" +
" \"modelCode\": \"ES8_00\",\n" +
@@ -272,7 +264,7 @@ public class ProjectNameInfoEOServiceImpl extends ServiceImpl<ProjectNameInfoEOM
" ],\n" +
" \"resultCode\": \"WL-0000\",\n" +
" \"resultDesc\": \"Success\"\n" +
"}";*/
"}";*//*
JSONObject result = (JSONObject) JSON.parse(jsonData);
JSONArray resultData = result.getJSONArray("resultData");
@@ -326,6 +318,6 @@ public class ProjectNameInfoEOServiceImpl extends ServiceImpl<ProjectNameInfoEOM
} catch (Exception e) {
e.printStackTrace();
}
}
}*/
}
@@ -0,0 +1,305 @@
package com.jero.modules.space.job;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.project.entity.ProjectNameInfoEO;
import com.jero.modules.project.entity.ProjectYearNameInfoEO;
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
import com.jero.modules.project.service.impl.ProjectNameInfoEOServiceImpl;
import com.jero.modules.project.service.impl.ProjectYearNameInfoEOServiceImpl;
import com.jero.modules.space.service.SpaceServiceImpl;
import com.jero.modules.system.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
@Slf4j
public class SpaceJobHandler implements Job {
@Autowired
private ProjectNameInfoEOServiceImpl projectNameInfoEOService;
@Autowired
private ProjectNameInfoEOMapper projectNameInfoEOMapper;
@Autowired
private SpaceServiceImpl spaceService;
@Autowired
private ProjectYearNameInfoEOServiceImpl projectYearNameInfoEOService;
/*String jsonData = "{\n" +
" \"resultData\": [\n" +
" {\n" +
" \"modelCode\": \"ES8_00\",\n" +
" \"modelName\": \"ES8\",\n" +
" \"hardwarePltCode\": \"mhp_npa\",\n" +
" \"hardwarePltName\": \"NPA\",\n" +
" \"softwarePltCode\": \"msp_nt1\",\n" +
" \"softwarePltName\": \"NT1\",\n" +
" \"modelYearInfoList\": [\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1\",\n" +
" \"yearName\": \"G1.1\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.2\",\n" +
" \"yearName\": \"G1.2\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.3\",\n" +
" \"yearName\": \"G1.3\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.f\",\n" +
" \"yearName\": \"G1.F\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.f.e\",\n" +
" \"yearName\": \"G1.F.E\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_my2018\",\n" +
" \"yearName\": \"MY2018\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.5\",\n" +
" \"yearName\": \"G1.5\"\n" +
" }\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"modelCode\": \"FURY_00\",\n" +
" \"modelName\": \"FURY\",\n" +
" \"hardwarePltCode\": \"mhp_npa\",\n" +
" \"hardwarePltName\": \"NPA\",\n" +
" \"softwarePltCode\": \"msp_nt1\",\n" +
" \"softwarePltName\": \"NT1\",\n" +
" \"modelYearInfoList\": [\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1\",\n" +
" \"yearName\": \"G1.1\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.2\",\n" +
" \"yearName\": \"G1.2\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.3\",\n" +
" \"yearName\": \"G1.3\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.f\",\n" +
" \"yearName\": \"G1.F\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.6\",\n" +
" \"yearName\": \"G1.6\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.5\",\n" +
" \"yearName\": \"G1.5\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1.e\",\n" +
" \"yearName\": \"G1.1.E\"\n" +
" }\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"modelCode\": \"FORCE_00\",\n" +
" \"modelName\": \"FORCE\",\n" +
" \"hardwarePltCode\": \"mhp_npb\",\n" +
" \"hardwarePltName\": \"NPB\",\n" +
" \"softwarePltCode\": \"msp_nt2\",\n" +
" \"softwarePltName\": \"NT2\",\n" +
" \"modelYearInfoList\": [\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1\",\n" +
" \"yearName\": \"G1.1\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1.e\",\n" +
" \"yearName\": \"G1.1.E\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.2\",\n" +
" \"yearName\": \"G1.2\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.3\",\n" +
" \"yearName\": \"G1.3\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.f\",\n" +
" \"yearName\": \"G1.F\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.6\",\n" +
" \"yearName\": \"G1.6\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.5\",\n" +
" \"yearName\": \"G1.5\"\n" +
" }\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"modelCode\": \"Gemini_00\",\n" +
" \"modelName\": \"Gemini\",\n" +
" \"hardwarePltCode\": \"mhp_npa\",\n" +
" \"hardwarePltName\": \"NPA\",\n" +
" \"softwarePltCode\": \"msp_nt2\",\n" +
" \"softwarePltName\": \"NT2\",\n" +
" \"modelYearInfoList\": [\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1\",\n" +
" \"yearName\": \"G1.1\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1.e\",\n" +
" \"yearName\": \"G1.1.E\"\n" +
" }\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"modelCode\": \"Pegasus_00\",\n" +
" \"modelName\": \"Pegasus\",\n" +
" \"hardwarePltCode\": \"mhp_npc\",\n" +
" \"hardwarePltName\": \"NPC\",\n" +
" \"softwarePltCode\": \"msp_nt2\",\n" +
" \"softwarePltName\": \"NT2\",\n" +
" \"modelYearInfoList\": [\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1\",\n" +
" \"yearName\": \"G1.1\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1.e\",\n" +
" \"yearName\": \"G1.1.E\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_G1.1.RH\",\n" +
" \"yearName\": \"G1.1.RH\"\n" +
" }\n" +
" ]\n" +
" }\n" +
" ],\n" +
" \"resultCode\": \"WL-0000\",\n" +
" \"resultDesc\": \"Success\"\n" +
"}";*/
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
String jsonData ="";
try {
jsonData = spaceService.getSign();
if(StringUtils.isNotBlank(jsonData)) {
JSONObject result = (JSONObject) JSON.parse(jsonData);
JSONArray resultData = result.getJSONArray("resultData");
String modelName = "";//项目名称
String hardwarePltName = "";//车型平台
String softwarePltName = "";//数字平台
//获取resultData中所需的数据
for (int i = 0; i < resultData.size(); i++) {
JSONObject jsonObject = resultData.getJSONObject(i);
modelName = jsonObject.getString("modelName");//项目名称
hardwarePltName = jsonObject.getString("hardwarePltName");//车型平台
softwarePltName = jsonObject.getString("softwarePltName");//数字平台
//设置年款名
JSONArray modelYearInfoJson = jsonObject.getJSONArray("modelYearInfoList");
//校验重复:项目名,车型平台,数字平台
QueryWrapper<ProjectNameInfoEO> nameInfoEOQueryWrapper = new QueryWrapper<>();
nameInfoEOQueryWrapper.eq("project_name",modelName)
.eq("vehicle_platform",hardwarePltName)
.eq("digital_platform",softwarePltName);
Integer nameInfoEOSameCount = projectNameInfoEOMapper.selectCount(nameInfoEOQueryWrapper);
if(nameInfoEOSameCount == 0) {//没有重复的,保存
String nameInfoId = UUID.randomUUID().toString().replace("-", "");
ProjectNameInfoEO projectNameInfoEO = new ProjectNameInfoEO();
projectNameInfoEO.setId(nameInfoId);
projectNameInfoEO.setProjectName(modelName);
projectNameInfoEO.setVehiclePlatform(hardwarePltName);
projectNameInfoEO.setDigitalPlatform(softwarePltName);
//保存
projectNameInfoEOService.save(projectNameInfoEO);
for (int j = 0; j < modelYearInfoJson.size(); j++) {
JSONObject modelYearInfo = modelYearInfoJson.getJSONObject(j);
String yearName = modelYearInfo.getString("yearName");
ProjectYearNameInfoEO projectYearNameInfoEO = new ProjectYearNameInfoEO();
projectYearNameInfoEO.setProjectNameId(nameInfoId);
projectYearNameInfoEO.setYearName(yearName);
//保存
projectYearNameInfoEOService.save(projectYearNameInfoEO);
}
}else {//有重复的,校验年款
List<ProjectNameInfoEO> projectNameInfoDataList = projectNameInfoEOService.list(nameInfoEOQueryWrapper);
String nameInfoId = projectNameInfoDataList.stream().map(e -> e.getId()).collect(Collectors.toList()).get(0);
List<ProjectYearNameInfoEO> yearNameInfoEOList = new ArrayList<>();
for (int j = 0; j < modelYearInfoJson.size(); j++) {
JSONObject modelYearInfo = modelYearInfoJson.getJSONObject(j);
String yearName = modelYearInfo.getString("yearName");
ProjectYearNameInfoEO projectYearNameInfoEO = new ProjectYearNameInfoEO();
projectYearNameInfoEO.setProjectNameId(nameInfoId);
projectYearNameInfoEO.setYearName(yearName);
yearNameInfoEOList.add(projectYearNameInfoEO);
}
//同步过来的数据里的年款
List<String> yearNameList = yearNameInfoEOList.stream().filter(e -> e.getProjectNameId().equals(nameInfoId)).map(e -> e.getYearName()).collect(Collectors.toList());
//查数据里的年款
QueryWrapper<ProjectYearNameInfoEO> yearNameInfoEOQueryWrapper = new QueryWrapper<>();
yearNameInfoEOQueryWrapper.eq("project_name_id",nameInfoId);
List<ProjectYearNameInfoEO> yearNameInfoDataList = projectYearNameInfoEOService.list(yearNameInfoEOQueryWrapper);
List<String> yearNameDataList = yearNameInfoDataList.stream().filter(e -> e.getProjectNameId().equals(nameInfoId)).map(e -> e.getYearName()).collect(Collectors.toList());
//获得不同年款
yearNameList.remove(yearNameDataList);
if(yearNameList.size()>0){//存在不同年款
List<ProjectYearNameInfoEO> diffYearNameList = new ArrayList<>();
for (ProjectYearNameInfoEO projectYearNameInfoEO: yearNameInfoEOList) {
if(! yearNameList.contains(projectYearNameInfoEO.getYearName())) {
diffYearNameList.add(projectYearNameInfoEO);
}
}
projectYearNameInfoEOService.saveBatch(yearNameInfoDataList);
}
}
// if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("从Space获取项目名称相关数据,成功保存");
// }else{
// throw new JeroBootException("Get the data related to the project name from Space and save it successfully.");
// }
}
}else{
// if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("从Space获取项目名称相关数据为空");
// }else{
// throw new JeroBootException("Data related to obtaining project name from Space is empty.");
// }
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
@@ -77,21 +77,12 @@ public class SpaceServiceImpl implements ISpaceService {
String sign = sign(paramMap,appSecret);//签名字符串
paramMap.put("sign",sign);//签名字符串
// paramMap.put("appId", appId);//在Program Space中注册的appId
// paramMap.put("bizData", "{\"module\":\"GRP\"}");//业务参数
// paramMap.put("timestamp", "1652965354000");//请求时间
//
//// String sign = sign(paramMap,appSecret);//签名字符串
// paramMap.put("sign","148EF05BAB45F6D1213DA506D1D04E1B");//签名字符串
// String response = HttpUtil.post(domainUrl, paramMap);
String response = HttpRequest.post(domainUrl)
.header("Content-Type", "application/x-www-form-urlencoded")
.form(paramMap)//表单内容
.timeout(20000)//超时,毫秒
.execute().body();
// String response = HttpRequestUtil.getResponseOfPOST(domainUrl, headerMap, null);
return response;
}
@@ -149,6 +149,13 @@
status: res.designFlowTaskStatus || res.prehomoFlowTaskStatus || res.verifyFlowTaskStatus
})
color.push('#9DB9D4')
} else if (res.designFlowTaskStatus == 'Termination of task' || res.prehomoFlowTaskStatus == 'Termination of task' || res.verifyFlowTaskStatus == 'Termination of task') {
data.push({
value: res.designFlowTaskStatusCount || res.prehomoFlowTaskStatusCount || res.verifyFlowTaskStatusCount,
name: this.$t('taskTermination'),
status: res.designFlowTaskStatus || res.prehomoFlowTaskStatus || res.verifyFlowTaskStatus
})
color.push('#E83030')
}
}
)