Merge remote-tracking branch 'origin/feature/DM/nflg-bom' into feature/DM/nflg-bom

This commit is contained in:
大米 2024-05-27 09:03:42 +08:00
commit a9111be8ab
6 changed files with 92 additions and 22 deletions

View File

@ -256,7 +256,7 @@ public class DQBomApi extends BaseApi {
*/
@PostMapping("queryMaterials")
@ApiOperation("批量查询物料信息")
public ResultVO<List<BaseMaterialVO>> queryMaterials(@Valid @RequestBody @NotEmpty List<QueryMaterialsQuery> query) {
public ResultVO<List<QueryMaterialsVO>> queryMaterials(@Valid @RequestBody @NotEmpty List<QueryMaterialsQuery> query) {
return ResultVO.success(dQBomService.queryMaterials(query));
}
}

View File

@ -377,7 +377,7 @@ public class EbomApi extends BaseApi {
public ResultVO<BomNewEbomParentVO> temporary(@RequestBody BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException {
checkDeleteRule(dto);
bomNewEbomParentService.deleteBomChild(dto.getDelDatas());
bomNewEbomParentService.deleteBomChild(dto.getDelDatas(), dto.getParent());
BomNewEbomParentVO temporary = bomNewEbomParentService.temporary(dto);
return ResultVO.success(temporary);
@ -388,7 +388,7 @@ public class EbomApi extends BaseApi {
@LogRecord(success = "Ebom-暂存添加,物料编码:{{#dto.parent.materialNo}}-版本:{{#dto.parent.currentVersion}},操作结果:{{#_ret.state}} {{#_ret.msg}}", bizNo = "{{#dto.parent.rowId}}", type = "Ebom-暂存添加")
public ResultVO<BomNewEbomParentVO> temporaryAdd(@RequestBody BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException {
checkDeleteRule(dto);
bomNewEbomParentService.deleteBomChild(dto.getDelDatas());
bomNewEbomParentService.deleteBomChild(dto.getDelDatas(), dto.getParent());
BomNewEbomParentVO temporary = bomNewEbomParentService.temporary(dto);
// bomNewEbomParentService.getBaseMapper().updateRootForWaitReview();
return ResultVO.success(temporary);
@ -399,7 +399,7 @@ public class EbomApi extends BaseApi {
@LogRecord(success = "Ebom-提交添加,物料编码:{{#dto.parent.materialNo}}-版本:{{#dto.parent.currentVersion}},操作结果:{{#_ret.state}} {{#_ret.msg}}", bizNo = "{{#dto.parent.rowId}}", type = "Ebom-提交添加")
public ResultVO<Boolean> submitAdd(@RequestBody BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException {
checkDeleteRule(dto);
bomNewEbomParentService.deleteBomChild(dto.getDelDatas());
bomNewEbomParentService.deleteBomChild(dto.getDelDatas(), dto.getParent());
return ResultVO.success(bomNewEbomParentService.submit(dto));
}
@ -409,7 +409,7 @@ public class EbomApi extends BaseApi {
@LogRecord(success = "Ebom-提交,物料编码:{{#dto.parent.materialNo}}-版本:{{#dto.parent.currentVersion}},操作结果:{{#_ret.state}} {{#_ret.msg}}", bizNo = "{{#dto.parent.rowId}}", type = "Ebom-提交")
public ResultVO<Boolean> submit(@RequestBody BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException {
checkDeleteRule(dto);
bomNewEbomParentService.deleteBomChild(dto.getDelDatas());
bomNewEbomParentService.deleteBomChild(dto.getDelDatas(), dto.getParent());
return ResultVO.success(bomNewEbomParentService.submit(dto));
}
@ -464,7 +464,7 @@ public class EbomApi extends BaseApi {
*/
@PostMapping("queryMaterials")
@ApiOperation("批量查询物料信息")
public ResultVO<List<BaseMaterialVO>> queryMaterials(@Valid @RequestBody @NotEmpty List<QueryMaterialsQuery> query) {
public ResultVO<List<QueryMaterialsVO>> queryMaterials(@Valid @RequestBody @NotEmpty List<QueryMaterialsQuery> query) {
return ResultVO.success(bomNewEbomParentService.queryMaterials(query));
}

View File

@ -0,0 +1,70 @@
package com.nflg.product.bomnew.pojo.vo;
import com.nflg.product.base.core.conmon.util.SessionUtil;
import com.nflg.product.bomnew.constant.EBomStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* @author 曹鹏飞
* @date 2024/5/26 16:38:29
*/
@Data
@Accessors(chain = true)
public class QueryMaterialsVO extends BaseMaterialVO implements Serializable {
/**
* 设计人员名称
*/
@ApiModelProperty(value = "设计人员名称")
private String deviseName = SessionUtil.getRealName();
/**
* 设计维护部门名称
*/
@ApiModelProperty(value = "设计维护部门名称")
private String deptName = SessionUtil.getFullDeptName();
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdTime = LocalDateTime.now();
/**
* 修改时间
*/
@ApiModelProperty(value = "修改时间")
private LocalDateTime modifyTime;
/**
* 版本过期时间=下个版本的创建时间
*/
@ApiModelProperty(value = "版本过期时间=下个版本的创建时间")
private LocalDateTime expireEndTime = LocalDateTime.parse("9999-12-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
/**
* 1=待复核2=已复核3=已退回4=定版已发布PBOM
*/
@ApiModelProperty(value = "1=待复核、2=已复核、3=已退回、4=定版已发布PBOM99=借用件 100=引用件")
private Integer status = EBomStatusEnum.CHECKED.getValue();
/**
* 是否有BOM: 0- 1-
*/
@ApiModelProperty(value = "是否有BOM: 0-否 1-是")
private Integer bomExist = 0;
@ApiModelProperty("单重1")
private BigDecimal unitWeight;
public BigDecimal getUnitWeight() {
return getMaterialWeight();
}
}

View File

@ -1980,7 +1980,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
* 从原始Bom导入的数据数据没有异常的情况下用户不可以删除
* 用户可以直接删除用户单击暂存或是提交时才会保存至数据库
*/
public void deleteBomChild(List<BomNewEbomParentVO> delList) {
public void deleteBomChild(List<BomNewEbomParentVO> delList, BomNewEbomParentVO parent) {
if (CollUtil.isEmpty(delList)) {
return;
}
@ -1993,12 +1993,15 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
List<BomNewEbomChildEntity> delTagList = new ArrayList<>();
//检查原始bom里过来数据是否包含正常数据
List<BomNewEbomChildEntity> check1List = delChildList.stream().filter(u -> Objects.equals(EBomSourceEnum.FROM_BOM.getValue(), u.getSource())
&& Objects.equals(u.getExceptionStatus(), EBomExceptionStatusEnum.OK.getValue())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(check1List)) {
throw new NflgBusinessException(STATE.Error, StrUtil.format("从原始Bom导入的数据数据没有异常的情况下{} 不可以删除 ", StrUtil.join(",", check1List.stream().map(BomNewEbomChildEntity::getMaterialNo).collect(Collectors.toList()))));
}
// List<BomNewEbomChildEntity> check1List = delChildList.stream().filter(u -> Objects.equals(EBomSourceEnum.FROM_BOM.getValue(), u.getSource())
// && Objects.equals(u.getExceptionStatus(), EBomExceptionStatusEnum.OK.getValue())).collect(Collectors.toList());
//
// if (CollUtil.isNotEmpty(check1List)) {
// throw new NflgBusinessException(STATE.Error, StrUtil.format("从原始Bom导入的数据数据没有异常的情况下{} 不可以删除 ", StrUtil.join(",", check1List.stream().map(BomNewEbomChildEntity::getMaterialNo).collect(Collectors.toList()))));
// }
VUtils.isTure(parent.getMaterialNo().startsWith("31")
&& delChildList.stream().anyMatch(d -> !Objects.equals(d.getVirtualPartType(), VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE.getValue())))
.throwMessage("不能删除31码下的虚拟包");
//检查有bom数据关系是否可以删
// List<BomNewEbomParentVO> check2List = delList.stream().filter(u -> Objects.equals(EBomSourceEnum.FROM_BOM.getValue(), u.getSource())
@ -2218,7 +2221,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
roots.forEach(this::buildChildren);
//从子级开始查找
List<BomNewEbomParentVO> boms = this.getBaseMapper().getBom(query.getMaterialNo(), query.getDrawingNo());
boms.removeIf(c -> Objects.equals(c.getLastVersionIs(), 0));
boms.removeIf(c -> Objects.equals(c.getLastVersionIs(), 0) || Objects.equals(c.getStatus(), EBomStatusEnum.PUBLISHED.getValue()));
boms.forEach(this::buildChildren);
roots.addAll(boms.stream().filter(b -> b.getRootIs() == 0 && b.getUserRootIs() == 0 && b.getRootIsForWaitReview() == 0).map(this::buildParent).flatMap(List::stream).collect(Collectors.toList()));
@ -2364,7 +2367,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
return null;
}
public List<BaseMaterialVO> queryMaterials(List<QueryMaterialsQuery> query) {
public List<QueryMaterialsVO> queryMaterials(List<QueryMaterialsQuery> query) {
List<BaseMaterialVO> datas = new ArrayList<>();
List<String> keys = query.stream().map(QueryMaterialsQuery::getMaterialNo)
.filter(StrUtil::isNotBlank)
@ -2381,7 +2384,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
if (CollUtil.isNotEmpty(keys)) {
datas.addAll(SpringUtil.getBean(MaterialMainMapper.class).getMaterialByDrawingNo(keys));
}
return datas;
return Convert.toList(QueryMaterialsVO.class, datas);
}
public Integer getSapErrorNum() {

View File

@ -666,7 +666,7 @@ public class DQBomService {
return datas;
}
public List<BaseMaterialVO> queryMaterials(List<QueryMaterialsQuery> query) {
public List<QueryMaterialsVO> queryMaterials(List<QueryMaterialsQuery> query) {
List<BaseMaterialVO> datas = new ArrayList<>();
List<String> keys = query.stream().map(QueryMaterialsQuery::getMaterialNo)
.filter(StrUtil::isNotBlank)
@ -683,6 +683,6 @@ public class DQBomService {
if (CollUtil.isNotEmpty(keys)) {
datas.addAll(SpringUtil.getBean(MaterialMainMapper.class).getMaterialByDrawingNo(keys));
}
return datas;
return Convert.toList(QueryMaterialsVO.class, datas);
}
}

View File

@ -402,13 +402,10 @@
AND status IN (1,3) AND (root_is=1 OR user_root_is=1 OR root_is_for_wait_review=1) AND
created_by=#{userCode}
</if>
<if test="userJob==1 and query.dataType==0">
<if test="userJob==1">
AND ((root_is=1 OR user_root_is=1) AND status=2) OR (status IN (1,3) AND (root_is=1 OR user_root_is=1 OR
root_is_for_wait_review=1) AND created_by=#{userCode})
</if>
<if test="userJob==1 and query.dataType==1">
AND (root_is=1 OR user_root_is=1) AND status=4
</if>
<if test="query.deviseName!=null and query.deviseName!=''">
AND devise_name=#{query.deviseName}
</if>