平台件新增字段

平台件合规认证计划
This commit is contained in:
zhn
2023-10-09 14:52:32 +08:00
parent c328a5d472
commit e4f72182ff
8 changed files with 268 additions and 122 deletions
@@ -1279,3 +1279,7 @@ ADD COLUMN `module_specification_code` varchar(255) NULL COMMENT '所用模块
ADD COLUMN `cooling_method` varchar(255) NULL COMMENT '冷却方式' AFTER `module_specification_code`,
ADD COLUMN `filing_completion_time` datetime(0) NULL COMMENT '备案完成时间' AFTER `cooling_method`,
ADD COLUMN `remark` varchar(1000) NULL COMMENT '备注' AFTER `filing_completion_time`;
--平台件合规认证计划添加标识字段2023-09-28
ALTER TABLE `platform_task_planning`
ADD COLUMN `flag` varchar(255) NULL COMMENT '位置标识(用来区分上下两部分数据,up->上,down->下)' AFTER `project_id`,
@@ -78,9 +78,9 @@ public class PlatformTaskPlanningEOController extends JeroController<PlatformTas
@AutoLog(value = "平台件合规认证计划-列表查询")
@ApiOperation(value="平台件合规认证计划-列表查询", notes="平台件合规认证计划-列表查询")
@GetMapping(value = "/list")
public Result<List<PlatformTaskPlanningEO>> queryList(String projectId) {
List<PlatformTaskPlanningEO> list = platformTaskPlanningEOService.queryList(projectId);
return Result.OK(list);
public Result<?> queryList(String projectId) {
Map<String,Object> result = platformTaskPlanningEOService.queryList(projectId);
return Result.OK(result);
}
/**
@@ -106,9 +106,17 @@ public class PlatformTaskPlanningEOController extends JeroController<PlatformTas
@ApiOperation(value="平台件合规认证计划-批量添加", notes="平台件合规认证计划-批量添加")
@PostMapping(value = "/addBatch")
public Result<?> addBatch(@RequestBody Map<String,Object> data) {
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(data.get("list")));
List<PlatformTaskPlanningEO> platformTaskPlanningEOList = jsonArray.toJavaList(PlatformTaskPlanningEO.class);
platformTaskPlanningEOService.addBatch(platformTaskPlanningEOList);
// JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(data.get("list")));
// JSONArray jsonArrayUp = JSONArray.parseArray(JSON.toJSONString(data.get("listUp")));
// JSONArray jsonArrayDown = JSONArray.parseArray(JSON.toJSONString(data.get("listDown")));
// List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp = jsonArray.toJavaList(PlatformTaskPlanningEO.class);
// List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown = jsonArray.toJavaList(PlatformTaskPlanningEO.class);
// platformTaskPlanningEOService.addBatch(platformTaskPlanningEOListUp,platformTaskPlanningEOListDown);
JSONArray jsonArrayUp = JSONArray.parseArray(JSON.toJSONString(data.get("listUp")));
JSONArray jsonArrayDown = JSONArray.parseArray(JSON.toJSONString(data.get("listDown")));
List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp = jsonArrayUp.toJavaList(PlatformTaskPlanningEO.class);
List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown = jsonArrayDown.toJavaList(PlatformTaskPlanningEO.class);
platformTaskPlanningEOService.addBatch(platformTaskPlanningEOListUp,platformTaskPlanningEOListDown);
return Result.OK("添加成功!");
}
@@ -93,4 +93,7 @@ public class PlatformTaskPlanningEO implements Serializable {
@TableField(exist = false)
private boolean isG;
//标识(用来区分上下两部分数据,up->上,down->下)
private String Flag;
}
@@ -0,0 +1,45 @@
package com.jero.modules.platform.enums;
/**
* 任务状态枚举类
*/
public enum UpAndDownEnum {
UP("上部分","up"),
DOWN("下部分","down"),
;
String name;
String value;
private UpAndDownEnum(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 String getTextByValue(String value) {
UpAndDownEnum[] values = values();
for (UpAndDownEnum taskStatusEnum : values) {
if (taskStatusEnum.value.equals(value)) {
return taskStatusEnum.name;
}
}
return null;
}
}
@@ -3,6 +3,7 @@ package com.jero.modules.platform.service;
import com.jero.modules.platform.entity.PlatformTaskPlanningEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
* @Description: 平台件合规认证计划
@@ -22,9 +23,10 @@ public interface IPlatformTaskPlanningEOService extends IService<PlatformTaskPla
/**
* 平台件合规认证计划-批量添加
* @param platformTaskPlanningEOList
* @param platformTaskPlanningEOListUp
* @param platformTaskPlanningEOListDown
*/
void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOList);
void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp,List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown);
/**
* 更新
@@ -63,5 +65,5 @@ public interface IPlatformTaskPlanningEOService extends IService<PlatformTaskPla
*
* @return
*/
List<PlatformTaskPlanningEO> queryList(String projectId);
Map<String,Object> queryList(String projectId);
}
@@ -1057,7 +1057,6 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
List<ProjectLibraryBase> result = this.list(queryWrapper);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<SysDictItem> dictItemList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.BRAND.getValue());
//置顶
@@ -1068,9 +1067,29 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
wrapper.in(TopProjectEO::getCreateBy,loginUser.getUsername()).in(TopProjectEO::getProjectLibraryBaseId,idList).orderByDesc(TopProjectEO::getSort);
topProjectEOList = iTopProjectEOService.list(wrapper);
}
//列表中的法规工程师和工程接口人
List<SysUser> sysUserList = getSysUserList(result);
//目标市场数据字典
// List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
for(ProjectLibraryBase projectLibraryBase: result){
if(ObjectUtils.isNotEmpty(sysUserList)){
//法规工程师
if(StringUtils.isNotBlank(projectLibraryBase.getRegulationOwnerId())){
List<SysUser> collect = sysUserList.stream()
.filter(e -> e.getId().equals(projectLibraryBase.getRegulationOwnerId())).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(collect)){
projectLibraryBase.setRegulationOwnerIdName(collect.get(0).getUsername());
}
}
//工程接口人
if(StringUtils.isNotBlank(projectLibraryBase.getEngineeringInterfacePerson())){
List<SysUser> collect = sysUserList.stream()
.filter(e -> e.getId().equals(projectLibraryBase.getEngineeringInterfacePerson())).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(collect)){
projectLibraryBase.setEngineeringInterfacePersonName(collect.get(0).getUsername());
}
}
}
//处理品牌
List<SysDictItem> sysDictItemList = dictItemList.stream()
.filter(e -> e.getItemValue().equals(projectLibraryBase.getBrand())).collect(Collectors.toList());
@@ -1098,14 +1117,14 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
}
//目标市场
// Map<String,Object> param = new HashMap<>();
// param.put("cut",cut);
// String targetMarket = getMarket(param, targetMarketList, projectLibraryBase);
// //项目名称(功率-生产商-目标市场)
// String projectName = projectLibraryBase.getPower() + "-" + projectLibraryBase.getProducer() + "-" + targetMarket;
// projectLibraryBase.setProjectNameId(projectName);//原设计平台件项目名称去这个字段值
// //平台件项目名称改为拼接的形式,projectNameId不在存数据,如果这个变更影响其他的地方,项目名称取值可以取projectName的值
// projectLibraryBase.setProjectName(projectName);
Map<String,Object> param = new HashMap<>();
param.put("cut",cut);
String targetMarket = getMarket(param, targetMarketList, projectLibraryBase);
//项目名称(功率-生产商-目标市场)
String projectName = projectLibraryBase.getPower() + "-" + projectLibraryBase.getProducer() + "-" + targetMarket;
projectLibraryBase.setProjectNameId(projectName);//原设计平台件项目名称去这个字段值
//平台件项目名称改为拼接的形式,projectNameId不在存数据,如果这个变更影响其他的地方,项目名称取值可以取projectName的值
projectLibraryBase.setProjectName(projectName);
}
if(ObjectUtils.isEmpty(params.get("orderByField"))){
@@ -1121,6 +1140,25 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
return result;
}
private List<SysUser> getSysUserList(List<ProjectLibraryBase> result) {
List<String> RegulationOwnerIdList = result.stream().map(ProjectLibraryBase::getRegulationOwnerId).distinct().collect(Collectors.toList());
List<String> EngineeringInterfacePersonList = result.stream().map(ProjectLibraryBase::getEngineeringInterfacePerson).distinct().collect(Collectors.toList());
List<String> userIdList = new ArrayList<>();
if(ObjectUtils.isNotEmpty(RegulationOwnerIdList)){
userIdList.addAll(RegulationOwnerIdList);
}
if(ObjectUtils.isNotEmpty(EngineeringInterfacePersonList)){
userIdList.addAll(EngineeringInterfacePersonList);
}
List<SysUser> sysUserList = new ArrayList<>();
if(ObjectUtils.isNotEmpty(userIdList)){
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
userqueryWrapper.in("id ", userIdList);
sysUserList = sysUserMapper.selectList(userqueryWrapper);
}
return sysUserList;
}
private void hearSort(Map<String, Object> params, List<ProjectLibraryBase> resultList) {
if(ObjectUtils.isNotEmpty(params.get("orderByField"))){
Collator comparator = Collator.getInstance(Locale.CHINESE);
@@ -3,16 +3,20 @@ package com.jero.modules.platform.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.platform.entity.PlatformTaskPlanningEO;
import com.jero.modules.platform.enums.UpAndDownEnum;
import com.jero.modules.platform.mapper.PlatformTaskPlanningEOMapper;
import com.jero.modules.platform.service.IPlatformTaskPlanningEOService;
import com.jero.modules.project.enums.PlanStatusEnum;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -40,23 +44,33 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl<PlatformTaskP
/**
* 平台件合规认证计划-批量添加
* @param platformTaskPlanningEOList
* @param platformTaskPlanningEOListUp
* @param platformTaskPlanningEOListDown
*/
@Override
public void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOList) {
if(!platformTaskPlanningEOList.isEmpty()){
public void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp,List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown) {
if(!platformTaskPlanningEOListUp.isEmpty()){
//先删除在新增
// LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaQueryWrapper<PlatformTaskPlanningEO> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(PlatformTaskPlanningEO::getCreateBy,loginUser.getUsername());
wrapper.eq(PlatformTaskPlanningEO::getProjectId,platformTaskPlanningEOList.get(0).getProjectId());
wrapper.eq(PlatformTaskPlanningEO::getProjectId,platformTaskPlanningEOListUp.get(0).getProjectId());
this.remove(wrapper);
for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOList) {
for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOListUp) {
Date now = new Date();
platformTaskPlanningEO.setCreateTime(now);
platformTaskPlanningEO.setUpdateTime(now);
platformTaskPlanningEO.setFlag("up");
}
saveBatch(platformTaskPlanningEOList);
for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOListDown) {
Date now = new Date();
platformTaskPlanningEO.setCreateTime(now);
platformTaskPlanningEO.setUpdateTime(now);
platformTaskPlanningEO.setFlag("down");
}
saveBatch(platformTaskPlanningEOListUp);
saveBatch(platformTaskPlanningEOListDown);
}
}
@@ -112,7 +126,7 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl<PlatformTaskP
* @return
*/
@Override
public List<PlatformTaskPlanningEO> queryList(String projectId) {
public Map<String,Object> queryList(String projectId) {
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
Date date = null;
try {
@@ -124,21 +138,45 @@ public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl<PlatformTaskP
wrapper.eq(PlatformTaskPlanningEO::getProjectId,projectId);
wrapper.orderByAsc(PlatformTaskPlanningEO::getNodeTime);
List<PlatformTaskPlanningEO> taskPlanningEOList = list(wrapper);
for (PlatformTaskPlanningEO platformTaskPlanningEO : taskPlanningEOList) {
platformTaskPlanningEO.setName(platformTaskPlanningEO.getNodeName());
platformTaskPlanningEO.setTime(platformTaskPlanningEO.getNodeTime());
platformTaskPlanningEO.setG(false);
if(ObjectUtils.isNotEmpty(platformTaskPlanningEO.getNodeTime())){
if(platformTaskPlanningEO.getNodeTime().after(date)){
platformTaskPlanningEO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
}else if(platformTaskPlanningEO.getNodeTime().before(date)){
platformTaskPlanningEO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
}else{
platformTaskPlanningEO.setStatus(PlanStatusEnum.ON_GOING.getValue());
Map<String,Object> result = new HashMap<>();
if(ObjectUtils.isEmpty(taskPlanningEOList)){
LambdaQueryWrapper<PlatformTaskPlanningEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.isNull(PlatformTaskPlanningEO::getProjectId);
List<PlatformTaskPlanningEO> list = list(queryWrapper);
List<PlatformTaskPlanningEO> up = list.stream()
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.UP.getValue().equals(e.getFlag())).collect(Collectors.toList());
List<PlatformTaskPlanningEO> down = list.stream()
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.DOWN.getValue().equals(e.getFlag())).collect(Collectors.toList());
result.put("listUp",up);
result.put("listDown",down);
}else{
for (PlatformTaskPlanningEO platformTaskPlanningEO : taskPlanningEOList) {
platformTaskPlanningEO.setName(platformTaskPlanningEO.getNodeName());
platformTaskPlanningEO.setTime(platformTaskPlanningEO.getNodeTime());
platformTaskPlanningEO.setG(false);
if(ObjectUtils.isNotEmpty(platformTaskPlanningEO.getNodeTime())){
if(platformTaskPlanningEO.getNodeTime().after(date)){
platformTaskPlanningEO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
}else if(platformTaskPlanningEO.getNodeTime().before(date)){
platformTaskPlanningEO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
}else{
platformTaskPlanningEO.setStatus(PlanStatusEnum.ON_GOING.getValue());
}
}
}
taskPlanningEOList = taskPlanningEOList.stream().filter(e->ObjectUtils.isNotEmpty(e.getNodeTime())).collect(Collectors.toList());
List<PlatformTaskPlanningEO> up = taskPlanningEOList.stream()
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.UP.getValue().equals(e.getFlag())).collect(Collectors.toList());
List<PlatformTaskPlanningEO> down = taskPlanningEOList.stream()
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.DOWN.getValue().equals(e.getFlag())).collect(Collectors.toList());
result.put("listUp",up);
result.put("listDown",down);
}
taskPlanningEOList = taskPlanningEOList.stream().filter(e->ObjectUtils.isNotEmpty(e.getNodeTime())).collect(Collectors.toList());
return taskPlanningEOList;
return result;
}
}
@@ -166,89 +166,97 @@ public class ProjectLibraryBase implements Comparable<ProjectLibraryBase> {
//平台件项目库字段--------------------------------------------------------------------------------------------------------------
// @ApiModelProperty(value = "功率")
// private String power;
//
// @ApiModelProperty(value = "生产商")
// private String producer;
//
// @ApiModelProperty(value = "责任部门")
// private String dutyDepart;
//
// @ApiModelProperty(value = "法规工程师")
// private String regulationOwnerId;
//
// @ApiModelProperty(value = "工程接口人")
// private String engineeringInterfacePerson;
//
// @ApiModelProperty(value = "名牌标签")
// private String brandLabel;
//
// @ApiModelProperty(value = "产品型号")
// private String productModel;
//
// @ApiModelProperty(value = "电芯生产企业")
// private String cellEnterprise;
//
// @ApiModelProperty(value = "总成生产企业")
// private String assemblyEnterprise;
//
// @ApiModelProperty(value = "零件号(国内)")
// private String partNumberCn;
//
// @ApiModelProperty(value = "零件号(国外)")
// private String part_numberEn;
//
// @ApiModelProperty(value = "24位备案码")
// private String filingCode;
//
// @ApiModelProperty(value = "供应商代码(1-3")
// private String supplierCode;
//
// @ApiModelProperty(value = "产品类型代码(4")
// private String productTypeCode;
//
// @ApiModelProperty(value = "电池类型代码(5")
// private String batteryTypeCode;
//
// @ApiModelProperty(value = "规格代码(6-7")
// private String specificationCode;
//
// @ApiModelProperty(value = "追溯代码(8")
// private String traceabilityCode;
//
// @ApiModelProperty(value = "生产也月日序列号")
// private String ymdNumber;
//
// @ApiModelProperty(value = "尺寸")
// private String size;
//
// @ApiModelProperty(value = "额定容量")
// private String ratedCapacity;
//
// @ApiModelProperty(value = "标称电压")
// private String nominalVoltage;
//
// @ApiModelProperty(value = "额定质量")
// private String ratedMass;
//
// @ApiModelProperty(value = "包含模块个数")
// private String moduleNumber;
//
// @ApiModelProperty(value = "模块串并联方式")
// private String connectionType;
//
// @ApiModelProperty(value = "所用模块或单体规格代码")
// private String moduleSpecificationCode;
//
// @ApiModelProperty(value = "冷却方式")
// private String coolingMethod;
//
// @ApiModelProperty(value = "备案完成时间")
// private String filingCompletionTime;
//
// @ApiModelProperty(value = "备注")
// private String remark;
@ApiModelProperty(value = "功率")
private String power;
@ApiModelProperty(value = "生产商")
private String producer;
@ApiModelProperty(value = "责任部门")
private String dutyDepart;
@ApiModelProperty(value = "法规工程师")
private String regulationOwnerId;
@TableField(exist = false)
@ApiModelProperty(value = "法规工程师回显")
private String regulationOwnerIdName;
@ApiModelProperty(value = "工程接口人")
private String engineeringInterfacePerson;
@TableField(exist = false)
@ApiModelProperty(value = "工程接口人回显")
private String engineeringInterfacePersonName;
@ApiModelProperty(value = "名牌标签")
private String brandLabel;
@ApiModelProperty(value = "产品型号")
private String productModel;
@ApiModelProperty(value = "电芯生产企业")
private String cellEnterprise;
@ApiModelProperty(value = "总成生产企业")
private String assemblyEnterprise;
@ApiModelProperty(value = "零件号(国内)")
private String partNumberCn;
@ApiModelProperty(value = "零件号(国外)")
private String part_numberEn;
@ApiModelProperty(value = "24位备案码")
private String filingCode;
@ApiModelProperty(value = "供应商代码(1-3")
private String supplierCode;
@ApiModelProperty(value = "产品类型代码(4")
private String productTypeCode;
@ApiModelProperty(value = "电池类型代码(5")
private String batteryTypeCode;
@ApiModelProperty(value = "规格代码(6-7")
private String specificationCode;
@ApiModelProperty(value = "追溯代码(8")
private String traceabilityCode;
@ApiModelProperty(value = "生产也月日序列号")
private String ymdNumber;
@ApiModelProperty(value = "尺寸")
private String size;
@ApiModelProperty(value = "额定容量")
private String ratedCapacity;
@ApiModelProperty(value = "标称电压")
private String nominalVoltage;
@ApiModelProperty(value = "额定质量")
private String ratedMass;
@ApiModelProperty(value = "包含模块个数")
private String moduleNumber;
@ApiModelProperty(value = "模块串并联方式")
private String connectionType;
@ApiModelProperty(value = "所用模块或单体规格代码")
private String moduleSpecificationCode;
@ApiModelProperty(value = "冷却方式")
private String coolingMethod;
@ApiModelProperty(value = "备案完成时间")
private String filingCompletionTime;
@ApiModelProperty(value = "备注")
private String remark;
@Override