diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java index c00ac0ef..b19958ac 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java @@ -19,6 +19,7 @@ import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewTechnologyPackageTypeEntity; import com.nflg.product.bomnew.pojo.query.BomExceptionQuery; import com.nflg.product.bomnew.pojo.query.BomNewPbomParentQuery; +import com.nflg.product.bomnew.pojo.query.PBomExceptionQuery; import com.nflg.product.bomnew.pojo.query.PbomImportToSAPQuery; import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.*; @@ -448,4 +449,15 @@ public class PBomApi extends BaseApi { public ResultVO> getBomException(@Valid @RequestBody @NotEmpty List query) { return ResultVO.success(bomNewPbomParentService.getBomException(query)); } + + /** + * 获取单个节点异常状态 + * @param query query + * @return 节点异常状态 + */ + @PostMapping("getSingleBomException") + @ApiOperation("获取单个节点异常状态") + public ResultVO getSingleBomException(@Valid @RequestBody @NotEmpty PBomExceptionQuery query) { + return ResultVO.success(bomNewPbomParentService.getSingleBomException(query)); + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/PBomExceptionQuery.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/PBomExceptionQuery.java new file mode 100644 index 00000000..991432cb --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/PBomExceptionQuery.java @@ -0,0 +1,36 @@ +package com.nflg.product.bomnew.pojo.query; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * @author 曹鹏飞 + * @date 2024/9/25 17:38:14 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "com-nflg-product-bomnew-pojo-new-query-PBomExceptionQuery") +public class PBomExceptionQuery implements Serializable { + + /** + * materialNo 物料编号 + */ + @ApiModelProperty(value = "物料编号") + protected String materialNo; + + /** + * drawingNo 图号 + */ + @ApiModelProperty(value = "图号") + protected String drawingNo; + + /** + * facCode 工厂编号 + */ + @ApiModelProperty(value = "工厂编号") + protected String facCode; +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java index 8eb6394a..8fc5fe3c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java @@ -27,10 +27,7 @@ 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; import com.nflg.product.bomnew.pojo.entity.*; -import com.nflg.product.bomnew.pojo.query.BomExceptionQuery; -import com.nflg.product.bomnew.pojo.query.BomNewPbomParentQuery; -import com.nflg.product.bomnew.pojo.query.CopyPBomV2Query; -import com.nflg.product.bomnew.pojo.query.PbomImportToSAPQuery; +import com.nflg.product.bomnew.pojo.query.*; import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.domain.PBom.*; import com.nflg.product.bomnew.service.domain.Sap; @@ -2037,4 +2034,33 @@ public class BomNewPbomParentService extends ServiceImpl materialNosOrDrawingNos = Collections.singletonList(StrUtil.isNotBlank(query.getMaterialNo()) ? query.getMaterialNo() : query.getDrawingNo()); + List materialVOS = materialMainService.initMaterialForAnyNo(materialNosOrDrawingNos); + BomExceptionVO vo = new BomExceptionVO(); + BaseMaterialVO mVO = materialVOS.stream().findFirst().orElse(null); + if (Objects.nonNull(mVO)) { + vo.setMaterialNo(mVO.getMaterialNo()); + if (!Objects.equals(mVO.getMaterialState(), MaterialGetEnum.MaterialStateEnum.OK.getValue())) { + vo.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_2.getValue()); + } else { + materialNosOrDrawingNos = pbomChildService.lambdaQuery() + .select(BomNewPbomChildEntity::getMaterialNo) + .eq(StrUtil.isNotBlank(query.getMaterialNo()), BomNewPbomChildEntity::getMaterialNo, query.getMaterialNo()) + .eq(StrUtil.isNotBlank(query.getDrawingNo()), BomNewPbomChildEntity::getDrawingNo, query.getDrawingNo()) + .eq(BomNewPbomChildEntity::getFacCode, query.getFacCode()) + .list() + .stream().map(BomNewPbomChildEntity::getMaterialNo) + .collect(Collectors.toList()); + materialVOS = materialMainService.initMaterialForAnyNo(materialNosOrDrawingNos); + if (materialVOS.stream().anyMatch(f -> !Objects.equals(f.getMaterialState(), MaterialGetEnum.MaterialStateEnum.OK.getValue()))) { + vo.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_2.getValue()); + } else { + vo.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); + } + } + } + return vo; + } }