Merge remote-tracking branch 'origin/feature/DM/nflg-bom' into feature/DM/nflg-bom
This commit is contained in:
commit
02160fac19
|
|
@ -7,10 +7,7 @@ import com.google.common.collect.ImmutableList;
|
|||
import com.mzt.logapi.context.LogRecordContext;
|
||||
import com.mzt.logapi.starter.annotation.LogRecord;
|
||||
import com.nflg.product.base.core.api.BaseApi;
|
||||
import com.nflg.product.bomnew.pojo.query.BomExceptionQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewDQbomPageQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewDQbomQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewDQbomSaveQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.*;
|
||||
import com.nflg.product.bomnew.pojo.vo.*;
|
||||
import com.nflg.product.bomnew.service.DQBomImportService;
|
||||
import com.nflg.product.bomnew.service.DQBomService;
|
||||
|
|
@ -251,4 +248,15 @@ public class DQBomApi extends BaseApi {
|
|||
, HttpServletResponse response) throws IOException {
|
||||
EecExcelUtil.export(response, messages, OperationErrorMsgVO.class, "错误信息");
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量查询物料信息
|
||||
* @param query 查询条件
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("queryMaterials")
|
||||
@ApiOperation("批量查询物料信息")
|
||||
public ResultVO<List<BaseMaterialVO>> queryMaterials(@Valid @RequestBody @NotEmpty List<QueryMaterialsQuery> query) {
|
||||
return ResultVO.success(dQBomService.queryMaterials(query));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.nflg.product.bomnew.pojo.dto.*;
|
|||
import com.nflg.product.bomnew.pojo.query.BomExceptionQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.QueryMaterialsQuery;
|
||||
import com.nflg.product.bomnew.pojo.vo.*;
|
||||
import com.nflg.product.bomnew.service.*;
|
||||
import com.nflg.product.bomnew.util.EecExcelUtil;
|
||||
|
|
@ -20,7 +21,6 @@ import com.nflg.product.bomnew.util.VUtils;
|
|||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import nflg.product.common.constant.STATE;
|
||||
import nflg.product.common.dto.LoginUserInfoDTO;
|
||||
import nflg.product.common.vo.ResultVO;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
|
@ -451,4 +451,15 @@ public class EbomApi extends BaseApi {
|
|||
public ResultVO<List<BomOriginalListVO>> getSource(@Valid @RequestParam("rowId") @NotNull Long rowId) {
|
||||
return ResultVO.success(bomNewEbomParentService.getSource(rowId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量查询物料信息
|
||||
* @param query query
|
||||
* @return 物料信息
|
||||
*/
|
||||
@PostMapping("queryMaterials")
|
||||
@ApiOperation("批量查询物料信息")
|
||||
public ResultVO<List<BaseMaterialVO>> queryMaterials(@Valid @RequestBody @NotEmpty List<QueryMaterialsQuery> query) {
|
||||
return ResultVO.success(bomNewEbomParentService.queryMaterials(query));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.nflg.product.bomnew.pojo.dto;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.nflg.product.base.core.conmon.util.SessionUtil;
|
||||
import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
|
@ -24,7 +23,7 @@ public class BomNewEBomImportExcelDTO {
|
|||
private String projectType;
|
||||
|
||||
|
||||
@ExcelColumn(value = "物料编码")
|
||||
@ExcelColumn(value = "物料编码*")
|
||||
private String materialNo;
|
||||
|
||||
|
||||
|
|
@ -36,7 +35,7 @@ public class BomNewEBomImportExcelDTO {
|
|||
private String materialDesc;
|
||||
|
||||
|
||||
@ExcelColumn(value = "数量")
|
||||
@ExcelColumn(value = "数量*")
|
||||
private BigDecimal num;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ public class EbomExcelDTO extends BaseImportExcelDTO {
|
|||
/**
|
||||
* 父级物料编号
|
||||
*/
|
||||
@ExcelColumn("抬头物料")
|
||||
@ExcelColumn("抬头物料*")
|
||||
private String parentMaterialNo;
|
||||
|
||||
/**
|
||||
|
|
@ -33,7 +33,7 @@ public class EbomExcelDTO extends BaseImportExcelDTO {
|
|||
/**
|
||||
* 物料编号
|
||||
*/
|
||||
@ExcelColumn("项目物料")
|
||||
@ExcelColumn("项目物料*")
|
||||
private String materialNo;
|
||||
|
||||
/**
|
||||
|
|
@ -45,7 +45,7 @@ public class EbomExcelDTO extends BaseImportExcelDTO {
|
|||
/**
|
||||
* 数量
|
||||
*/
|
||||
@ExcelColumn("数量")
|
||||
@ExcelColumn("数量*")
|
||||
private BigDecimal num;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
package com.nflg.product.bomnew.pojo.query;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* @author 曹鹏飞
|
||||
* @date 2024/5/25 14:17:04
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value = "com-nflg-product-bomnew-pojo-new-query-QueryMaterialsQuery")
|
||||
public class QueryMaterialsQuery {
|
||||
|
||||
/**
|
||||
* 图号
|
||||
*/
|
||||
@ApiModelProperty(value = "图号")
|
||||
private String drawingNo;
|
||||
|
||||
/**
|
||||
* 物料编码
|
||||
*/
|
||||
@ApiModelProperty(value = "物料编码")
|
||||
private String materialNo;
|
||||
}
|
||||
|
|
@ -195,6 +195,9 @@ public class BomOriginalListVO extends BaseMaterialVO {
|
|||
@ApiModelProperty("是否通过规则替换 0-否 1-是")
|
||||
private Integer regReplaceIs;
|
||||
|
||||
@ApiModelProperty("项目类别输入方式: 0-自动匹配 1-手工录入 2-来自物料主数据 3-来自历史统计")
|
||||
private Integer projectTypeInputType=1;
|
||||
|
||||
public Integer getVirtualPartType() {
|
||||
if( drawingNo.contains(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getConMaterialName())){
|
||||
return VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue();
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import com.nflg.product.base.core.conmon.util.SessionUtil;
|
|||
import com.nflg.product.base.core.exception.NflgBusinessException;
|
||||
import com.nflg.product.bomnew.constant.*;
|
||||
import com.nflg.product.bomnew.mapper.master.BomNewEbomParentMapper;
|
||||
import com.nflg.product.bomnew.mapper.master.MaterialMainMapper;
|
||||
import com.nflg.product.bomnew.pojo.dto.*;
|
||||
import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO;
|
||||
import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1DTO;
|
||||
|
|
@ -27,6 +28,7 @@ import com.nflg.product.bomnew.pojo.entity.*;
|
|||
import com.nflg.product.bomnew.pojo.query.BomExceptionQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.QueryMaterialsQuery;
|
||||
import com.nflg.product.bomnew.pojo.vo.*;
|
||||
import com.nflg.product.bomnew.service.domain.EBom.*;
|
||||
import com.nflg.product.bomnew.util.*;
|
||||
|
|
@ -380,9 +382,9 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
child.setNoticeNums(parentEntity.getNoticeNums());
|
||||
child.setSuperMaterialStatus(parentEntity.getSuperMaterialStatus());
|
||||
|
||||
if (!Objects.equals(child.getStatus(), EBomStatusEnum.PUBLISHED.getValue())
|
||||
&& parentEntity.getStatus().equals(EBomStatusEnum.PUBLISHED.getValue())) {
|
||||
if (parentEntity.getStatus().equals(EBomStatusEnum.PUBLISHED.getValue())) {
|
||||
child.setStatus(EBomStatusEnum.BORROWED_PARTS.getValue());
|
||||
child.setBomRowId(0L);
|
||||
}
|
||||
// //非本人则为借用件
|
||||
// else if (!parentEntity.getCreatedBy().equals(child.getCreatedBy())) {
|
||||
|
|
@ -2347,4 +2349,24 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<BaseMaterialVO> queryMaterials(List<QueryMaterialsQuery> query) {
|
||||
List<BaseMaterialVO> datas = new ArrayList<>();
|
||||
List<String> keys = query.stream().map(QueryMaterialsQuery::getMaterialNo)
|
||||
.filter(StrUtil::isNotBlank)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(keys)) {
|
||||
datas.addAll(SpringUtil.getBean(MaterialMainMapper.class).getMaterialBaseInfo(keys));
|
||||
}
|
||||
keys = query.stream()
|
||||
.filter(it -> StrUtil.isBlank(it.getMaterialNo()) && StrUtil.isNotBlank(it.getDrawingNo()))
|
||||
.map(QueryMaterialsQuery::getDrawingNo)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(keys)) {
|
||||
datas.addAll(SpringUtil.getBean(MaterialMainMapper.class).getMaterialByDrawingNo(keys));
|
||||
}
|
||||
return datas;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,16 +12,14 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nflg.product.base.core.conmon.util.SessionUtil;
|
||||
import com.nflg.product.bomnew.constant.*;
|
||||
import com.nflg.product.bomnew.mapper.master.MaterialMainMapper;
|
||||
import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO;
|
||||
import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1DTO;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewDQbomChildEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewDQbomParentEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity;
|
||||
import com.nflg.product.bomnew.pojo.query.BomExceptionQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewDQbomPageQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewDQbomQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewDQbomSaveQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.*;
|
||||
import com.nflg.product.bomnew.pojo.vo.*;
|
||||
import com.nflg.product.bomnew.util.BomUtil;
|
||||
import com.nflg.product.bomnew.util.VUtils;
|
||||
|
|
@ -667,4 +665,24 @@ public class DQBomService {
|
|||
}
|
||||
return datas;
|
||||
}
|
||||
|
||||
public List<BaseMaterialVO> queryMaterials(List<QueryMaterialsQuery> query) {
|
||||
List<BaseMaterialVO> datas = new ArrayList<>();
|
||||
List<String> keys = query.stream().map(QueryMaterialsQuery::getMaterialNo)
|
||||
.filter(StrUtil::isNotBlank)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(keys)) {
|
||||
datas.addAll(SpringUtil.getBean(MaterialMainMapper.class).getMaterialBaseInfo(keys));
|
||||
}
|
||||
keys = query.stream()
|
||||
.filter(it -> StrUtil.isBlank(it.getMaterialNo()) && StrUtil.isNotBlank(it.getDrawingNo()))
|
||||
.map(QueryMaterialsQuery::getDrawingNo)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(keys)) {
|
||||
datas.addAll(SpringUtil.getBean(MaterialMainMapper.class).getMaterialByDrawingNo(keys));
|
||||
}
|
||||
return datas;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,15 +8,16 @@ import com.nflg.product.base.core.conmon.util.SessionUtil;
|
|||
import com.nflg.product.bomnew.constant.EBomConstant;
|
||||
import com.nflg.product.bomnew.constant.EBomSourceEnum;
|
||||
import com.nflg.product.bomnew.constant.UserJobEnum;
|
||||
import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO;
|
||||
import com.nflg.product.bomnew.service.BomNewEbomParentService;
|
||||
import com.nflg.product.bomnew.service.UserRoleService;
|
||||
import com.nflg.product.bomnew.util.VUtils;
|
||||
import lombok.Getter;
|
||||
import org.apache.tomcat.jni.User;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -52,16 +53,20 @@ public class EBomDel {
|
|||
//工艺岗位,只能删除自己在EBOM中创建的数据
|
||||
// 原始bom导入过来的只能 设计人员自己删,工艺不能删;双角色可以删自己数据
|
||||
//设计人员在Ebom中创建的数据 工艺人员可以删除?
|
||||
//虚拟包可以删除
|
||||
if(roleList.contains(EBomConstant.DESIGNER)){
|
||||
delEBom = bomTreeAll.stream().filter(u ->ObjectUtil.equal( u.getCreatedBy(),SessionUtil.getUserCode())
|
||||
&& (ObjectUtil.equal(u.getSource(),EBomSourceEnum.FROM_MDM.getValue()) || ObjectUtil.equal(u.getSource(), EBomSourceEnum.FROM_EXCE.getValue() )))
|
||||
delEBom = bomTreeAll.stream().filter(u -> (ObjectUtil.equal(u.getCreatedBy(), SessionUtil.getUserCode())
|
||||
&& (ObjectUtil.equal(u.getSource(), EBomSourceEnum.FROM_MDM.getValue()) || ObjectUtil.equal(u.getSource(), EBomSourceEnum.FROM_EXCE.getValue()))
|
||||
) || !Objects.equals(u.getVirtualPartType(), VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE.getValue()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
//工艺 删除自己和设计人员的数据只能是excel和手动录入
|
||||
//虚拟包可以删除
|
||||
if(roleList.contains(EBomConstant.TECHNICIAN)){
|
||||
delEBom = bomTreeAll.stream().filter(u -> (ObjectUtil.equal(UserJobEnum.DESIGNER.getValue(),u.getCreatedJob()) || ObjectUtil.equal(u.getCreatedBy(),SessionUtil.getUserCode()))
|
||||
&& ( ObjectUtil.equal(u.getSource(),EBomSourceEnum.FROM_MDM.getValue()) || ObjectUtil.equal(u.getSource(), EBomSourceEnum.FROM_EXCE.getValue() )))
|
||||
delEBom = bomTreeAll.stream().filter(u -> ((ObjectUtil.equal(UserJobEnum.DESIGNER.getValue(), u.getCreatedJob()) || ObjectUtil.equal(u.getCreatedBy(), SessionUtil.getUserCode()))
|
||||
&& (ObjectUtil.equal(u.getSource(), EBomSourceEnum.FROM_MDM.getValue()) || ObjectUtil.equal(u.getSource(), EBomSourceEnum.FROM_EXCE.getValue()))
|
||||
) || !Objects.equals(u.getVirtualPartType(), VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE.getValue()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,10 +56,11 @@ public class EBomToPBomFor31 extends EBomToPbomBase {
|
|||
}
|
||||
|
||||
//1010 数据
|
||||
facCodes.add(EBomConstant.MAIN_FACTORY_CODE_1010);
|
||||
|
||||
List<BomNewEbomParentVO> data1010=new ArrayList<>();
|
||||
List<BomNewEbomParentVO> deliveryPackage1010 = result.stream().filter(u -> u.getParentRowId().equals(parent.getRowId()) && !u.getMaterialName().contains("仙桃") && u.getMaterialName().contains("发货")).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(deliveryPackage1010)){
|
||||
facCodes.add(EBomConstant.MAIN_FACTORY_CODE_1010);
|
||||
data1010.add(parent);
|
||||
for (BomNewEbomParentVO data: deliveryPackage1010){
|
||||
List<BomNewEbomParentVO> subVos = result.stream().filter(u -> u.getLevelNumber().compareTo(data.getLevelNumber()) >= 0 && u.getLevelNumber().compareTo(NumberUtil.add(data.getLevelNumber(), new BigDecimal(0.01))) < 0).collect(Collectors.toList());
|
||||
|
|
@ -92,8 +93,8 @@ public class EBomToPBomFor31 extends EBomToPbomBase {
|
|||
}
|
||||
hasConvert.add(hasConvertKey);
|
||||
//构建变更明细
|
||||
buildUpgradeChangeDetail(vo, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
|
||||
buildUpgradeChangeDetail(vo, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
|
||||
// buildUpgradeChangeDetail(vo, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
|
||||
// buildUpgradeChangeDetail(vo, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
|
||||
|
||||
//子级
|
||||
List<BomNewEbomParentVO> child = result.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId())).distinct().collect(Collectors.toList());
|
||||
|
|
@ -108,7 +109,7 @@ public class EBomToPBomFor31 extends EBomToPbomBase {
|
|||
//合并子级
|
||||
for (BomNewEbomParentVO eb : mergeChild) {
|
||||
BomNewPbomChildEntity childEnt = new BomNewPbomChildEntity();
|
||||
BeanUtil.copyProperties(eb, childEnt);
|
||||
BeanUtil.copyProperties(eb, childEnt,"sourceRowId");
|
||||
childEnt.setRowId(IdWorker.getId());
|
||||
childEnt.setParentRowId(parentEnt.getRowId());
|
||||
childEnt.setFacCode(facCode);
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public class PlmBomToOriginalConvertV2 extends BaseConvert {
|
|||
|
||||
//初始化物料信息
|
||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(ImmutableList.of(parent), "material", "materialTexture", "materialUnit");
|
||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(childs, "material", "materialTexture", "materialUnit");
|
||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(childs, "material", "materialTexture", "materialUnit","projectType");
|
||||
|
||||
SpringUtil.getBean(MaterialMainService.class).initShouldBomExist(ImmutableList.of(parent), BomOriginalPlmBomVO::getMaterialCategoryCode, BomOriginalPlmBomVO::setShouldBomExist, BomOriginalPlmBomVO::getMaterialGetType);
|
||||
SpringUtil.getBean(MaterialMainService.class).initShouldBomExist(childs, BomOriginalPlmBomVO::getMaterialCategoryCode, BomOriginalPlmBomVO::setShouldBomExist, BomOriginalPlmBomVO::getMaterialGetType);
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ public class SessionUtil {
|
|||
return getUser().getSessionKey();
|
||||
}
|
||||
|
||||
private static LoginUserInfoDTO getUser() {
|
||||
public static LoginUserInfoDTO getUser() {
|
||||
return Optional.ofNullable(BaseApi.loginUser.get())
|
||||
.orElseThrow(() -> new NflgBusinessException(STATE.LoginError, "请登录"));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue