移动破调整

This commit is contained in:
jing's 2024-01-21 21:13:25 +08:00
parent 82e0749c57
commit 26831d55d3
30 changed files with 950 additions and 24 deletions

View File

@ -13,7 +13,7 @@ public class MBomConstantEnum {
//1待发布sap3=已发布
UNPUB_SAP(1, "未发布"),
PUB_SAP(3, "发布");
PUB_SAP(3, "导入");
private final Integer value;
private final String description;

View File

@ -0,0 +1,24 @@
package com.nflg.product.bomnew.mapper.master;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportChildEntity;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportChildHistoryEntity;
import com.nflg.product.bomnew.pojo.query.OptionalEbomImportChildQuery;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* ebom选配件
*
*/
@Mapper
public interface OptionalEbomImportChildHistoryMapper extends BaseMapper<OptionalEbomImportChildHistoryEntity> {
}

View File

@ -0,0 +1,19 @@
package com.nflg.product.bomnew.mapper.master;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportEntity;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportHistoryEntity;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface OptionalEbomImportHistoryMapper extends BaseMapper<OptionalEbomImportHistoryEntity> {
}

View File

@ -0,0 +1,20 @@
package com.nflg.product.bomnew.mapper.master;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainEntity;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainHistoryEntity;
import com.nflg.product.bomnew.pojo.query.OptionalEbomMainListQuery;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomMainVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface OptionalEbomMainHistoryMapper extends BaseMapper<OptionalEbomMainHistoryEntity> {
}

View File

@ -62,6 +62,13 @@ public class OptionalEbomConfigEntity implements Serializable {
@TableField(value = "edit_status")
@ApiModelProperty(value = "状态(0 暂存 1发布)")
private Integer editStatus;
@TableField(value = "current_version")
@ApiModelProperty(value = "版本")
private Integer currentVersion;
/**
* 是否导入sap(0 : 1: )
*/

View File

@ -0,0 +1,132 @@
package com.nflg.product.bomnew.pojo.entity;
import cn.hutool.core.date.DateUtil;
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@ApiModel("ebom选配件表")
@Accessors(chain = true)
@TableName(value = "t_optional_ebom_import_child_history")
public class OptionalEbomImportChildHistoryEntity implements Serializable {
/**
* 主键
*/
@TableId(value = "row_id", type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private Long rowId;
/**
* 选项id
*/
@TableField(value = "parent_row_id")
@ApiModelProperty(value = "选项id")
private Long parentRowId;
/**
* 根节点id
*/
@TableField(value = "root_row_id")
@ApiModelProperty(value = "根节点id")
private Long rootRowId;
/**
* 物料编码
*/
@TableField(value = "material_no")
@ApiModelProperty(value = "物料编码")
private String materialNo;
/**
* 物料名
*/
@TableField(value = "material_name")
@ApiModelProperty(value = "物料名")
private String materialName;
/**
* 物料描述
*/
@TableField(value = "material_desc")
@ApiModelProperty(value = "物料描述")
private String materialDesc;
/**
* 图号
*/
@TableField(value = "drawing_no")
@ApiModelProperty(value = "图号")
private String drawingNo;
/**
* 部件类型(1 单选 2 多选)
*/
@TableField(value = "part_type")
@ApiModelProperty(value = "部件类型(1 单选 2 多选)")
private Integer partType;
/**
* 是否显示(0不显示 1显示)
*/
@TableField(value = "is_enable")
@ApiModelProperty(value = "是否显示(0不显示 1显示)")
private Integer isEnable;
/**
* 是否标配(0 1是)
*/
@TableField(value = "choose_status")
@ApiModelProperty(value = "是否标配(0 否 1是)")
private Integer chooseStatus;
/**
* 备注
*/
@TableField(value = "remak")
@ApiModelProperty(value = "备注")
private String remak;
/**
* 数据来源 (0 :excel 1:手动录入)
*/
@TableField(value = "source")
@ApiModelProperty(value = "数据来源 (0 :excel 1:手动录入)")
private Integer source;
/**
* 是否删除(0 : 1)
*/
@TableField(value = "is_del")
@ApiModelProperty(value = "是否删除(0 :否 1是)")
private Integer isDel;
/**
* 创建时间
*/
@TableField(value = "created_time")
@ApiModelProperty(value = "创建时间")
private String createdTime;
@TableField(value = "updated_time")
@ApiModelProperty(value = "更新时间")
private String updatedTime;
public String getUpdatedTime(){
return DateUtil.now();
}
/**
* 操作人编码
*/
@TableField(value = "created_by")
@ApiModelProperty(value = "操作人编码")
private String createdBy;
}

View File

@ -0,0 +1,70 @@
package com.nflg.product.bomnew.pojo.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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@ApiModel("选项信息")
@Accessors(chain = true)
@TableName(value = "t_optional_ebom_import_history")
public class OptionalEbomImportHistoryEntity implements Serializable {
/**
* 主键
*/
@TableId(value = "row_id", type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private Long rowId;
/**
* 根节点id
*/
@TableField(value = "root_row_id")
@ApiModelProperty(value = "根节点id")
private Long rootRowId;
/**
* 上层id
*/
@TableField(value = "parent_row_id")
@ApiModelProperty(value = "上层id")
private Long parentRowId;
/**
* 选项名
*/
@TableField(value = "option_name")
@ApiModelProperty(value = "选项名")
private String optionName;
@TableField(value = "option_drawing_no")
@ApiModelProperty(value = "选项图号")
private String optionDrawingNo;
/**
* 创建时间
*/
@TableField(value = "created_time")
@ApiModelProperty(value = "创建时间")
private String createdTime;
/**
* 是否删除(0 : 1)
*/
@TableField(value = "is_del")
@ApiModelProperty(value = "是否删除(0 :否 1是)")
private Integer isDel;
@TableField(value = "created_by")
@ApiModelProperty(value = "操作人编码")
private String createdBy;
}

View File

@ -116,5 +116,10 @@ public class OptionalEbomMainEntity implements Serializable {
@TableField(value = "serial_no")
@ApiModelProperty(value = "序号")
private Integer serialNo;
@TableField(value = "version")
@ApiModelProperty(value = "版本")
private Integer version;
}

View File

@ -0,0 +1,127 @@
package com.nflg.product.bomnew.pojo.entity;
import cn.hutool.core.date.DateUtil;
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@ApiModel("移动破ebom主表(模版)")
@Accessors(chain = true)
@TableName(value = "t_optional_ebom_main_history")
public class OptionalEbomMainHistoryEntity implements Serializable {
/**
* 主键
*/
@TableId(value = "row_id", type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "行id")
private Long rowId;
@TableField(value = "source_row_id")
@ApiModelProperty(value = "父id")
private Long sourceRowId;
/**
* 机型编号
*/
@TableField(value = "device_no")
@ApiModelProperty(value = "机型编号")
private String deviceNo;
/**
* 机型名称
*/
@TableField(value = "device_name")
@ApiModelProperty(value = "机型名称")
private String deviceName;
/**
* 备注
*/
@TableField(value = "remark")
@ApiModelProperty(value = "备注")
private String remark;
/**
* 是否显示0 为隐藏 1显示
*/
@TableField(value = "is_enable")
@ApiModelProperty(value = "是否显示0 为隐藏 1显示")
private Integer isEnable;
/**
* 部门id
*/
@TableField(value = "dept_row_id")
@ApiModelProperty(value = "部门id")
private Long deptRowId;
/**
* 部门名称
*/
@TableField(value = "dept_name")
@ApiModelProperty(value = "部门名称")
private String deptName;
/**
* 创建人编码
*/
@TableField(value = "created_by")
@ApiModelProperty(value = "创建人编码")
private String createdBy;
/**
* 创建时间
*/
@TableField(value = "created_time")
@ApiModelProperty(value = "创建时间")
private String createdTime;
/**
* 变更时间
*/
@TableField(value = "updated_time")
@ApiModelProperty(value = "变更时间")
private String updatedTime;
public String getUpdatedTime(){
return DateUtil.now();
}
/**
* 更改人编码
*/
@TableField(value = "updated_by")
@ApiModelProperty(value = "更改人编码")
private String updatedBy;
/**
* 是否删除(0 : 1)
*/
@TableField(value = "is_del")
@ApiModelProperty(value = "是否删除(0 :否 1是)")
private Integer isDel;
@TableField(value = "real_name")
@ApiModelProperty(value = "创建人姓名")
private String realName;
@TableField(value = "serial_no")
@ApiModelProperty(value = "序号")
private Integer serialNo;
@TableField(value = "version")
@ApiModelProperty(value = "版本")
private Integer version;
}

View File

@ -3,6 +3,7 @@ package com.nflg.product.bomnew.pojo.vo;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.nflg.product.bomnew.constant.FactoryCodeEnum;
import com.nflg.product.bomnew.constant.MBomConstantEnum;
import com.nflg.product.bomnew.util.EnumUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -247,6 +248,27 @@ public class BomNewMbomMiddleVO extends BaseMaterialVO implements Serializable {
@ApiModelProperty(value = "状态 0-待处理 1-待退回 2-已退")
private Integer materialBackStatus;
@ApiModelProperty(value = "状态")
private String statusName;
public String getStatusName(){
if(materialBackStatus==null || materialBackStatus.equals(MBomConstantEnum.MaterialBackStatusEnum.APPLY_0.getValue())){
if(MBomConstantEnum.MBomStatusEnum.PUB_SAP.getValue().equals(status)){
return MBomConstantEnum.MBomStatusEnum.PUB_SAP.getDescription();
}
return MBomConstantEnum.MaterialBackStatusEnum.APPLY_0.getDescription();
}else if(materialBackStatus.equals(MBomConstantEnum.MaterialBackStatusEnum.DEAL_1.getValue())){
return MBomConstantEnum.MaterialBackStatusEnum.DEAL_1.getDescription();
}else if(materialBackStatus.equals(MBomConstantEnum.MaterialBackStatusEnum.REJECT_2.getValue())){
return MBomConstantEnum.MaterialBackStatusEnum.REJECT_2.getDescription();
}
return "";
}
/**
* 0-非虚拟包 1-发货包 2-制作包 4-直发包 8-发货前装配包
*/

View File

@ -102,6 +102,12 @@ public class OptionalEbomConfigVO implements Serializable {
private String drawingNo;
@ApiModelProperty("物料描述")
private String materialDesc;
@ApiModelProperty(value = "当前版本")
private Integer currentVersion;
@ApiModelProperty(value = "机型版本")
private Integer version;
}

View File

@ -97,7 +97,7 @@ public class OptionalEbomImportChildVO implements Serializable {
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createdTime;
private String createdTime;
/**
* 操作人编码
*/

View File

@ -51,7 +51,7 @@ public class OptionalEbomImportVO<T> implements Serializable {
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createdTime;
private String createdTime;
/**
* 是否删除(0 : 1)
*/

View File

@ -85,5 +85,6 @@ public class OptionalEbomMainVO implements Serializable {
private String realName;
@ApiModelProperty(value = "序号")
private Integer serialNo;
@ApiModelProperty(value = "版本")
private Integer version;
}

View File

@ -1225,9 +1225,14 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
MaterialMainEntity materialMainEntity = materialMainList.get(0);
BomNewEbomParentVO baseMaterialVO = new BomNewEbomParentVO();
BeanUtil.copyProperties(materialMainEntity, baseMaterialVO);
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(ImmutableList.of(baseMaterialVO));
// baseMaterialVO.setCreatedBy(SessionUtil.getUserCode());
baseMaterialVO.setRowId(query.getRowId());
materialMainEntity.setProjectType(null);
baseMaterialVO.setDeptName(SessionUtil.getDepartName());
baseMaterialVO.setDeviseUserCode(SessionUtil.getUserCode());
baseMaterialVO.setDeviseName(SessionUtil.getRealName());
baseMaterialVO.setCreatedBy(SessionUtil.getUserCode());
@ -1247,9 +1252,9 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|| MaterialGetEnum.MaterialStateEnum.STATE_NO_5.equalsValue(baseMaterialVO.getMaterialState()))) {
baseMaterialVO.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_2.getValue());
}
// else if (StrUtil.isBlank(baseMaterialVO.getMaterialNo()) || Objects.isNull(baseMaterialVO.getNum()) || BigDecimal.ZERO.compareTo(baseMaterialVO.getNum()) >= 0) {
// baseMaterialVO.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_4.getValue());
// }
else if (StrUtil.isBlank(baseMaterialVO.getMaterialNo()) || Objects.isNull(baseMaterialVO.getNum()) || BigDecimal.ZERO.compareTo(baseMaterialVO.getNum()) >= 0) {
baseMaterialVO.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_4.getValue());
}
else if (StrUtil.isNotBlank(baseMaterialVO.getMaterialNo()) && Objects.isNull(baseMaterialVO.getMaterialState())) {
baseMaterialVO.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_7.getValue());

View File

@ -99,12 +99,11 @@ public class OptionalEbomConfigService extends ServiceImpl<OptionalEbomConfigMap
optionalEbomConfigEntity.setCreatedTime(DateUtil.now());
optionalEbomConfigEntity.setParentRowId(dto.getRowId());
optionalEbomConfigEntity.setUpdatedTime(optionalEbomConfigEntity.getCreatedTime());
optionalEbomConfigEntity.setCurrentVersion(optionalEbomMainVO.getVersion());
optionalEbomConfigEntity.setConfigNo(DateUtil.format(DateUtil.date(), "yyyyMMddHHmmssSSS"));
optionalEbomConfigEntity.setEditStatus(OptionalBomConstant.PublishEnum.TMP.getValue());
this.saveOrUpdate(optionalEbomConfigEntity);
insertConfigRelation(optionalEbomConfigEntity.getRowId(), dto.getOptions());

View File

@ -0,0 +1,42 @@
package com.nflg.product.bomnew.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.TypeReference;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.product.base.core.conmon.util.SessionUtil;
import com.nflg.product.base.core.exception.NflgBusinessException;
import com.nflg.product.bomnew.constant.OptionalBomConstant;
import com.nflg.product.bomnew.mapper.master.OptionalEbomImportChildHistoryMapper;
import com.nflg.product.bomnew.mapper.master.OptionalEbomImportChildMapper;
import com.nflg.product.bomnew.pojo.dto.OptionalEbomImportChildAddDTO;
import com.nflg.product.bomnew.pojo.dto.OptionalEbomMainDelDTO;
import com.nflg.product.bomnew.pojo.dto.OptionalEbomSubmitEditDTO;
import com.nflg.product.bomnew.pojo.entity.*;
import com.nflg.product.bomnew.pojo.query.OptionalEbomImportChildQuery;
import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomConfigRVO;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO;
import nflg.product.common.constant.STATE;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* ebom选配件表(OptionalEbomImportChild)服务实现类
*/
@Service
public class OptionalEbomImportChildHistoryService extends ServiceImpl<OptionalEbomImportChildHistoryMapper, OptionalEbomImportChildHistoryEntity> {
}

View File

@ -112,6 +112,15 @@ public class OptionalEbomImportChildService extends ServiceImpl<OptionalEbomImpo
}, materialListVo);
}
if( Objects.equals(dto.getPartType() , OptionalBomConstant.PartTypeEnum.PART_TYPE_RADIO.getValue())){
SpringUtil.getBean(OptionalEbomMainHistoryService.class).convertToHistory(dto.getRootRowId());
}
if (CollectionUtil.isNotEmpty(optionList)) {
optionList.forEach(item -> {
@ -173,8 +182,19 @@ public class OptionalEbomImportChildService extends ServiceImpl<OptionalEbomImpo
public Boolean openCloseStatus(OptionalEbomImportChildVO vo) {
OptionalEbomImportChildEntity childEntity=getById(vo.getRowId());
if(childEntity!=null){
if( Objects.equals(childEntity.getPartType() , OptionalBomConstant.PartTypeEnum.PART_TYPE_RADIO.getValue())){
SpringUtil.getBean(OptionalEbomMainHistoryService.class).convertToHistory(childEntity.getRootRowId());
}
}
OptionalEbomImportChildEntity entity = Convert.convert(OptionalEbomImportChildEntity.class, vo);
// entity.setUpdatedTime(new Date());
return this.updateById(entity);
}
@ -243,10 +263,6 @@ public class OptionalEbomImportChildService extends ServiceImpl<OptionalEbomImpo
}
// if (CollectionUtil.isNotEmpty(intersectionList)) {
// updateDelStatusByRowId(intersectionList);
//
// }
//删除未发布的选配 及暂存的选配
if (CollectionUtil.isNotEmpty(subList)) {

View File

@ -0,0 +1,27 @@
package com.nflg.product.bomnew.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.product.base.core.conmon.util.SessionUtil;
import com.nflg.product.bomnew.mapper.master.OptionalEbomImportHistoryMapper;
import com.nflg.product.bomnew.mapper.master.OptionalEbomImportMapper;
import com.nflg.product.bomnew.pojo.dto.OptionalEbomMainDelDTO;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportEntity;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportHistoryEntity;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportVO;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* 选项信息
*/
@Service
public class OptionalEbomImportHistoryService extends ServiceImpl<OptionalEbomImportHistoryMapper , OptionalEbomImportHistoryEntity> {
}

View File

@ -0,0 +1,88 @@
package com.nflg.product.bomnew.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.TypeReference;
import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.product.base.core.conmon.util.SessionUtil;
import com.nflg.product.base.core.vo.PageVO;
import com.nflg.product.bomnew.constant.OptionalBomConstant;
import com.nflg.product.bomnew.mapper.master.OptionalEbomMainHistoryMapper;
import com.nflg.product.bomnew.mapper.master.OptionalEbomMainMapper;
import com.nflg.product.bomnew.pojo.dto.OptionalEbomMainDTO;
import com.nflg.product.bomnew.pojo.dto.OptionalEbomMainDelDTO;
import com.nflg.product.bomnew.pojo.entity.*;
import com.nflg.product.bomnew.pojo.query.OptionalEbomMainListQuery;
import com.nflg.product.bomnew.pojo.vo.*;
import com.nflg.product.bomnew.service.aggreg.AggregOptionConfigService;
import com.nflg.product.bomnew.service.domain.OptionalEBom.ConvertToMainHistory;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 移动破模版数据
*/
@Service
public class OptionalEbomMainHistoryService extends ServiceImpl<OptionalEbomMainHistoryMapper, OptionalEbomMainHistoryEntity> {
public void convertToHistory(Long mainRowId) {
convertToHistory(mainRowId,true);
}
/**
*
* @param mainRowId
*/
public void convertToHistory(Long mainRowId,boolean isUpdateV) {
ConvertToMainHistory convertToMainHistory= new ConvertToMainHistory();
convertToMainHistory.convertToMainHistory(mainRowId);
convertToHistory(convertToMainHistory,isUpdateV);
}
@Transactional(rollbackFor = Exception.class)
public void convertToHistory(ConvertToMainHistory convertToMainHistory,boolean isUpdateV) {
//保存机型
SpringUtil.getBean(OptionalEbomMainHistoryService.class).save(convertToMainHistory.getOptionalEbomMainHistoryEntity() );
//选项
SpringUtil.getBean(OptionalEbomImportHistoryService.class).saveBatch(convertToMainHistory.getImportHistoryList());
//标配
SpringUtil.getBean(OptionalEbomImportChildHistoryService.class).saveBatch(convertToMainHistory.getImportChildHistoryList());
//是否更新版本
if( isUpdateV) {
//变更版本
OptionalEbomMainEntity updateMainEntity = new OptionalEbomMainEntity();
updateMainEntity.setVersion(convertToMainHistory.getMainEntity().getVersion() + 1);
updateMainEntity.setRowId(convertToMainHistory.getMainEntity().getRowId());
updateMainEntity.setUpdatedBy(SessionUtil.getUserCode());
updateMainEntity.setUpdatedTime(DateUtil.now());
SpringUtil.getBean(OptionalEbomMainService.class).updateById(updateMainEntity);
}
}
}

View File

@ -91,8 +91,14 @@ public class OptionalEbomMainService extends ServiceImpl<OptionalEbomMainMapper,
List<Long> delList = new ArrayList<>();
List<Long> updateList = new ArrayList<>();
List<Long> delTmpList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(longList)) {
for (Long rowId : longList) {
SpringUtil.getBean(OptionalEbomMainHistoryService.class).convertToHistory(rowId,false);
QueryWrapper<OptionalEbomConfigEntity> queryWrapper = new QueryWrapper();
queryWrapper.lambda().eq(OptionalEbomConfigEntity::getParentRowId, rowId);
//找出暂存表里 已发布 和暂存数据
@ -135,7 +141,6 @@ public class OptionalEbomMainService extends ServiceImpl<OptionalEbomMainMapper,
QueryWrapper<OptionalEbomConfigREntity> delOptionWrapper= new QueryWrapper();
delOptionWrapper.lambda().in(OptionalEbomConfigREntity::getParentRowId,delTmpList);
SpringUtil.getBean(OptionalEbomConfigRService.class).remove(delOptionWrapper);
}

View File

@ -107,6 +107,13 @@ public class OptionalMbomMaterialService extends ServiceImpl<OptionalMbomMateria
public Boolean importSap(Long rowId){
return true;
}
public List<OptionalMbomMaterialListVO> getChild(Long rowId) {

View File

@ -5,6 +5,7 @@ import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.TypeReference;
import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.nflg.product.bomnew.constant.OptionalBomConstant;
@ -53,7 +54,7 @@ public class AggregOptionConfigService {
for (; iter.hasNext(); ) {
// 找出父节点
OptionalEbomImportVO tree = iter.next();
if (tree.getParentRowId() == null || 0 == tree.getParentRowId()) {
if (tree.getParentRowId() == null || 0 == tree.getParentRowId().longValue()) {
if (tree.getChild() == null) {
tree.setChild(new ArrayList<OptionalEbomImportVO>());
}
@ -95,7 +96,7 @@ public class AggregOptionConfigService {
}
private OptionalEbomConfigAggregVO filterTree(List<OptionalEbomImportVO> listParent, List<OptionalEbomImportChildVO> listChild) {
public OptionalEbomConfigAggregVO filterTree(List<OptionalEbomImportVO> listParent, List<OptionalEbomImportChildVO> listChild) {
recursionMethod(listParent);//二层树形
@ -188,6 +189,31 @@ public class AggregOptionConfigService {
// item.setUpdatedTime(new Date());
// });
// }
QueryWrapper<OptionalEbomImportChildEntity> queryWrapper2 = new QueryWrapper();
queryWrapper2.lambda().eq(OptionalEbomImportChildEntity::getRootRowId, optionalEbomMainEntity.getRowId());
queryWrapper2.lambda().eq(OptionalEbomImportChildEntity::getPartType, OptionalBomConstant.PartTypeEnum.PART_TYPE_RADIO.getValue());
List<OptionalEbomImportChildEntity> entityList = SpringUtil.getBean(OptionalEbomImportChildService.class).list(queryWrapper2);
Map<Long,List<OptionalEbomSubmitEditDTO.OptionalEbomImportChildSubmitDTO>> goupOption= dto.getOptions().stream().collect(Collectors.groupingBy(OptionalEbomSubmitEditDTO.OptionalEbomImportChildSubmitDTO::getRowId));
//有变更数据保存一份
for(OptionalEbomImportChildEntity item:entityList){
if(CollectionUtil.isEmpty(goupOption.get(item.getRowId()))) {
continue;
}
OptionalEbomSubmitEditDTO.OptionalEbomImportChildSubmitDTO option = goupOption.get(item.getRowId()).get(0);
if (!Objects.equals(option.getChooseStatus(), item.getChooseStatus())) {
SpringUtil.getBean(OptionalEbomMainHistoryService.class).convertToHistory(dto.getDeviceInfo().getRowId());
break;
}
}
return optionalEbomImportChildService.updateBatchById(optionalEbomImportChildEntityList);
}

View File

@ -22,10 +22,8 @@ import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportChildEntity;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportEntity;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainEntity;
import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO;
import com.nflg.product.bomnew.service.MaterialMainService;
import com.nflg.product.bomnew.service.OptionalEbomImportChildService;
import com.nflg.product.bomnew.service.OptionalEbomImportService;
import com.nflg.product.bomnew.service.OptionalEbomMainService;
import com.nflg.product.bomnew.service.*;
import com.nflg.product.bomnew.service.domain.OptionalEBom.ConvertToMainHistory;
import lombok.extern.slf4j.Slf4j;
import nflg.product.common.constant.STATE;
import org.apache.commons.lang.StringUtils;
@ -410,6 +408,10 @@ public class OptionalExcelService {
List<OptionalEbomImportDTO> parentOptionList = ebomImportExcelDTO.getOptionInfo();
ConvertToMainHistory convertToMainHistory=new ConvertToMainHistory();
convertToMainHistory.convertToMainHistory(optionalEbomMainEntity.getRowId());
//保存选项
for (OptionalEbomImportDTO parentOption : parentOptionList) {
@ -434,6 +436,9 @@ public class OptionalExcelService {
List<OptionalEbomImportDTO> childOptionList = parentOption.getChild();
for (OptionalEbomImportDTO childOption : childOptionList) {
QueryWrapper<OptionalEbomImportEntity> queryWrapper2 = new QueryWrapper<>();
@ -488,6 +493,10 @@ public class OptionalExcelService {
}
//首次添加设备不用操作保存历史记录
if(queryDevice!=null){
SpringUtil.getBean(OptionalEbomMainHistoryService.class).convertToHistory(convertToMainHistory,true);
}
return true;
}

View File

@ -0,0 +1,183 @@
package com.nflg.product.bomnew.service.domain.OptionalEBom;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.TypeReference;
import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.nflg.product.bomnew.constant.OptionalBomConstant;
import com.nflg.product.bomnew.pojo.entity.*;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomConfigAggregVO;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportVO;
import com.nflg.product.bomnew.service.OptionalEbomImportChildService;
import com.nflg.product.bomnew.service.OptionalEbomImportService;
import com.nflg.product.bomnew.service.OptionalEbomMainService;
import com.nflg.product.bomnew.service.aggreg.AggregOptionConfigService;
import lombok.Getter;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class ConvertToMainHistory {
@Getter
private OptionalEbomMainEntity mainEntity;
@Getter
private OptionalEbomMainHistoryEntity optionalEbomMainHistoryEntity;
@Getter
private List<OptionalEbomImportHistoryEntity> importHistoryList;
@Getter
private List<OptionalEbomImportChildHistoryEntity> importChildHistoryList;
public void convertToMainHistory(Long mainRowId) {
mainEntity = SpringUtil.getBean(OptionalEbomMainService.class).getById(mainRowId);
QueryWrapper<OptionalEbomImportEntity> queryWrapper1 = new QueryWrapper();
queryWrapper1.lambda().eq(OptionalEbomImportEntity::getRootRowId, mainRowId);
List<OptionalEbomImportEntity> optionalEbomImportEntityList = SpringUtil.getBean(OptionalEbomImportService.class).list(queryWrapper1);
if(CollectionUtil.isEmpty(optionalEbomImportEntityList)){
return;
}
//选配
QueryWrapper<OptionalEbomImportChildEntity> queryWrapper2 = new QueryWrapper();
queryWrapper2.lambda().eq(OptionalEbomImportChildEntity::getRootRowId, mainRowId);
queryWrapper2.lambda().eq(OptionalEbomImportChildEntity::getPartType, OptionalBomConstant.PartTypeEnum.PART_TYPE_RADIO.getValue());
List<OptionalEbomImportChildEntity> optionalEbomImportChildEntityList = SpringUtil.getBean(OptionalEbomImportChildService.class).list(queryWrapper2);
optionalEbomMainHistoryEntity = Convert.convert(OptionalEbomMainHistoryEntity.class, mainEntity);
optionalEbomMainHistoryEntity.setSourceRowId(optionalEbomMainHistoryEntity.getRowId());
optionalEbomMainHistoryEntity.setRowId(IdWorker.getId());
optionalEbomMainHistoryEntity.setCreatedTime(DateUtil.now());
List<OptionalEbomImportEntity> lv1List = optionalEbomImportEntityList.stream().filter(item -> (item.getParentRowId() == null || item.getParentRowId().longValue() == 0)).collect(Collectors.toList());
Map<Long, List<OptionalEbomImportEntity>> lv2GroupChild = optionalEbomImportEntityList.stream().filter(item -> (item.getParentRowId() != null && item.getParentRowId().longValue() > 0)).collect(Collectors.groupingBy(OptionalEbomImportEntity::getParentRowId));
Map<Long, List<OptionalEbomImportChildEntity>> lv3GroupChild = optionalEbomImportChildEntityList.stream().collect(Collectors.groupingBy(OptionalEbomImportChildEntity::getParentRowId));
if (CollectionUtil.isNotEmpty(lv1List)) {
for (OptionalEbomImportEntity lv1 :
lv1List) {
List<OptionalEbomImportEntity> lv2List = lv2GroupChild.get(lv1.getRowId());
lv1.setRowId(IdWorker.getId());
lv1.setRootRowId(optionalEbomMainHistoryEntity.getRowId());
lv1.setCreatedTime(DateUtil.now());
if (CollectionUtil.isNotEmpty(lv2List)) {
for (OptionalEbomImportEntity lv2 :
lv2List) {
List<OptionalEbomImportChildEntity> lv3List = lv3GroupChild.get(lv2.getRowId());
lv2.setRowId(IdWorker.getId());
lv2.setRootRowId(optionalEbomMainHistoryEntity.getRowId());
lv2.setParentRowId(lv1.getRowId());
lv2.setCreatedTime(DateUtil.now());
if (CollectionUtil.isNotEmpty(lv3List)) {
for (OptionalEbomImportChildEntity lv3 :
lv3List) {
lv3.setRowId(IdWorker.getId());
lv3.setRootRowId(optionalEbomMainHistoryEntity.getRowId());
lv3.setParentRowId(lv2.getRowId());
lv3.setCreatedTime(DateUtil.now());
}
}
}
}
}
}
importHistoryList = Convert.convert(new TypeReference<List<OptionalEbomImportHistoryEntity>>() {
}, optionalEbomImportEntityList);
importChildHistoryList = Convert.convert(new TypeReference<List<OptionalEbomImportChildHistoryEntity>>() {
}, optionalEbomImportChildEntityList);
// OptionalEbomMainEntity mainEntity = SpringUtil.getBean(OptionalEbomMainService.class).getById(mainRowId);
//
// List<OptionalEbomImportVO> optionalEbomImportVOList=SpringUtil.getBean(OptionalEbomImportService.class).getByRootIdList(mainRowId);
//
//
// //选配
// QueryWrapper<OptionalEbomImportChildEntity> queryWrapper2=new QueryWrapper();
// queryWrapper2.lambda().eq(OptionalEbomImportChildEntity::getRootRowId,mainRowId);
// queryWrapper2.lambda().eq(OptionalEbomImportChildEntity::getPartType, OptionalBomConstant.PartTypeEnum.PART_TYPE_RADIO.getValue());
// List<OptionalEbomImportChildEntity> optionalEbomImportChildEntityList=SpringUtil.getBean(OptionalEbomImportChildService.class).list(queryWrapper2);
//
// List<OptionalEbomImportChildVO > optionalEbomImportChildVOList= Convert.convert( new TypeReference<List<OptionalEbomImportChildVO>>() {
// }, optionalEbomImportChildEntityList);
//
// OptionalEbomConfigAggregVO optionalEbomConfigAggregVO= SpringUtil.getBean(AggregOptionConfigService.class).filterTree(optionalEbomImportVOList,optionalEbomImportChildVOList);
//
//
//
//
// optionalEbomMainHistoryEntity= Convert.convert(OptionalEbomMainHistoryEntity.class,mainEntity);
// optionalEbomMainHistoryEntity.setSourceRowId(optionalEbomMainHistoryEntity.getRowId());
// optionalEbomMainHistoryEntity.setRowId(IdWorker.getId());
// optionalEbomMainHistoryEntity.setCreatedTime(DateUtil.now());
//
//
// if(CollectionUtil.isNotEmpty(optionalEbomConfigAggregVO.getSingleList())){
//
// for (OptionalEbomImportVO lv1:
// optionalEbomConfigAggregVO.getSingleList()) {
//
// lv1.setRowId(IdWorker.getId());
// lv1.setRootRowId(optionalEbomMainHistoryEntity.getRowId());
// lv1.setCreatedTime(DateUtil.now());
// if(CollectionUtil.isNotEmpty(lv1.getChild())){
// List<OptionalEbomImportVO> lv2List=lv1.getChild();
//
// for (OptionalEbomImportVO lv2:
// lv2List) {
//
// lv2.setRowId(IdWorker.getId());
// lv2.setRootRowId(optionalEbomMainHistoryEntity.getRowId());
// lv2.setParentRowId(lv1.getRowId());
// lv2.setCreatedTime(DateUtil.now());
// if(CollectionUtil.isNotEmpty(lv2.getChild())){
// List<OptionalEbomImportChildVO > lv3List=lv2.getChild();
//
// for (OptionalEbomImportChildVO lv3:
// lv3List) {
//
// lv3.setRowId(IdWorker.getId());
// lv3.setRootRowId(optionalEbomMainHistoryEntity.getRowId());
// lv3.setParentRowId(lv2.getRowId());
// lv3.setCreatedTime(DateUtil.now());
//
// }
//
// }
//
// }
//
// }
//
// }
//
// }
//
}
}

View File

@ -10,6 +10,8 @@
<result property="deviceName" column="device_name" jdbcType="VARCHAR"/>
<result property="editStatus" column="edit_status" jdbcType="INTEGER"/>
<result property="uploadSapStatus" column="upload_sap_status" jdbcType="INTEGER"/>
<result property="currentVersion" column="current_version" jdbcType="INTEGER"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
<result property="deptName" column="dept_name" jdbcType="VARCHAR"/>
@ -17,6 +19,8 @@
<result property="createdBy" column="created_by" jdbcType="VARCHAR"/>
<result property="createdTime" column="created_time" jdbcType="VARCHAR"/>
<result property="updatedTime" column="updated_time" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List" >
row_id,config_no,parent_row_id,device_no,device_name,edit_status,upload_sap_status,remark,dept_name,real_name,created_by,created_time,updated_time
@ -32,11 +36,15 @@
t1.*,t2.material_no,
t2.material_name,
t2. material_desc,
t2.drawing_no
t2.drawing_no,
t3.version
from t_optional_ebom_config as t1
left join
t_optional_mbom_material as t2
on t1.row_id=t2.root_row_id
left join t_optional_ebom_main t3
on t1.parent_row_id=t3.row_id
where
t1.edit_status = #{query.editStatus}
<if test="query.editStatus != null and query.editStatus==1">

View File

@ -0,0 +1,29 @@
<?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.nflg.product.bomnew.mapper.master.OptionalEbomImportChildHistoryMapper">
<resultMap type="com.nflg.product.bomnew.pojo.entity.OptionalEbomImportChildHistoryEntity" id="OptionalEbomImportChildHistoryMapper">
<result property="rowId" column="row_id" jdbcType="BIGINT"/>
<result property="parentRowId" column="parent_row_id" jdbcType="INTEGER"/>
<result property="rootRowId" column="root_row_id" jdbcType="INTEGER"/>
<result property="materialNo" column="material_no" jdbcType="VARCHAR"/>
<result property="materialName" column="material_name" jdbcType="VARCHAR"/>
<result property="materialDesc" column="material_desc" jdbcType="VARCHAR"/>
<result property="drawingNo" column="drawing_no" jdbcType="VARCHAR"/>
<result property="partType" column="part_type" jdbcType="INTEGER"/>
<result property="isEnable" column="is_enable" jdbcType="INTEGER"/>
<result property="chooseStatus" column="choose_status" jdbcType="INTEGER"/>
<result property="remak" column="remak" jdbcType="VARCHAR"/>
<result property="source" column="source" jdbcType="INTEGER"/>
<result property="isDel" column="is_del" jdbcType="INTEGER"/>
<result property="createdTime" column="created_time" jdbcType="VARCHAR"/>
<result property="updatedTime" column="updated_time" jdbcType="VARCHAR"/>
<result property="createdBy" column="created_by" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List" >
row_id,parent_row_id,root_row_id,material_no,material_name,material_desc,drawing_no,part_type,is_enable,choose_status,remak,source,is_del,created_time,updated_time,created_by
</sql>
</mapper>

View File

@ -0,0 +1,22 @@
<?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.nflg.product.bomnew.mapper.master.OptionalEbomImportHistoryMapper">
<resultMap type="com.nflg.product.bomnew.pojo.entity.OptionalEbomImportHistoryEntity" id="OptionalEbomImportHistoryMapper">
<result property="rowId" column="row_id" jdbcType="BIGINT"/>
<result property="rootRowId" column="root_row_id" jdbcType="INTEGER"/>
<result property="parentRowId" column="parent_row_id" jdbcType="INTEGER"/>
<result property="optionName" column="option_name" jdbcType="VARCHAR"/>
<result property="optionDrawingNo" column="option_drawing_no" jdbcType="VARCHAR"/>
<result property="createdTime" column="created_time" jdbcType="VARCHAR"/>
<result property="isDel" column="is_del" jdbcType="INTEGER"/>
<result property="createdBy" column="created_by" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List" >
row_id,root_row_id,parent_row_id,option_name,option_drawing_no,created_time,is_del,created_by
</sql>
</mapper>

View File

@ -0,0 +1,27 @@
<?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.nflg.product.bomnew.mapper.master.OptionalEbomMainHistoryMapper">
<resultMap type="com.nflg.product.bomnew.pojo.entity.OptionalEbomMainHistoryEntity" id="OptionalEbomMainHistoryMapper">
<result property="rowId" column="row_id" />
<result property="sourceRowId" column="source_row_id" />
<result property="deviceNo" column="device_no" />
<result property="deviceName" column="device_name" />
<result property="remark" column="remark" />
<result property="isEnable" column="is_enable" />
<result property="deptRowId" column="dept_row_id" />
<result property="deptName" column="dept_name" />
<result property="createdBy" column="created_by" />
<result property="isDel" column="is_del" />
<result property="updatedBy" column="updated_by" />
<result property="realName" column="real_name" />
<result property="createdTime" column="created_time" />
<result property="updatedTime" column="updated_time" />
<result property="serialNo" column="serial_no" />
<result property="version" column="version" />
</resultMap>
</mapper>

View File

@ -17,11 +17,11 @@
<result property="createdTime" column="created_time" />
<result property="updatedTime" column="updated_time" />
<result property="serialNo" column="serial_no" />
<result property="version" column="version" />
</resultMap>
<sql id="Base_Column_List">
row_id
row_id,version,
,device_no,device_name,remark,is_enable,dept_row_id,dept_name,created_by,created_time,updated_time,updated_by,real_name,is_del,serial_no
</sql>