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 89ed62e8..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 @@ -17,7 +17,9 @@ import com.nflg.product.bomnew.pojo.dto.*; import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO; 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.*; @@ -27,12 +29,12 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import nflg.product.common.vo.ResultVO; import org.apache.commons.compress.utils.Lists; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.io.IOException; import java.util.ArrayList; @@ -40,7 +42,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.concurrent.ExecutionException; -import java.util.function.Consumer; import java.util.stream.Collectors; /** @@ -438,5 +439,25 @@ public class PBomApi extends BaseApi { return ResultVO.success(bomNewPbomParentService.checkBomExist(bomRowId,type)); } + /** + * 获取节点异常状态 + * @param query query + * @return 节点异常状态 + */ + @PostMapping("getBomException") + @ApiOperation("获取节点异常状态") + 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/pojo/vo/ReverseReportVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java index 7a4128d7..55dad491 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java @@ -42,9 +42,15 @@ public class ReverseReportVO { @ApiModelProperty(value = "数量") private BigDecimal num; + @ApiModelProperty(value = "子级数量") + private BigDecimal childNum; + @ApiModelProperty("单位") private String materialUnit; + @ApiModelProperty("子级单位") + private String childMaterialUnit; + @ApiModelProperty(value = "创建人编码") private String createdBy; 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 143d715c..2bb7c0d8 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 @@ -6,7 +6,10 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.*; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -25,9 +28,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.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; @@ -44,6 +45,8 @@ import org.ttzero.excel.entity.Workbook; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; import java.io.IOException; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -2042,4 +2045,59 @@ public class BomNewPbomParentService extends ServiceImpl getBomException(@Valid @NotEmpty List query) { + List datas = new ArrayList<>(); + List materialVOS = materialMainService.getMaterialBaseInfo(query.stream().map(BomExceptionQuery::getMaterialNo).collect(Collectors.toList())); + boolean isException = false; + for (int index = query.size() - 1; index >= 0; index--) { + BomExceptionQuery bom = query.get(index); + BomExceptionVO vo = new BomExceptionVO(); + vo.setBomRowId(bom.getBomRowId()); + vo.setRowId(bom.getRowId()); + vo.setMaterialNo(bom.getMaterialNo()); + if (isException) { + vo.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_14.getValue()); + } else { + BaseMaterialVO mv = materialVOS.stream().filter(f -> StrUtil.equals(f.getMaterialNo(), bom.getMaterialNo())).findFirst().orElse(null); + if (Objects.isNull(mv) || !Objects.equals(mv.getMaterialState(), MateiralStateEnum.ACTIVE.getValue())) { + isException = true; + vo.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_2.getValue()); + } else { + vo.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); + } + } + datas.add(vo); + } + Collections.reverse(datas); + return datas; + } + + public BomExceptionVO getSingleBomException(@Valid @NotEmpty PBomExceptionQuery query) { + List 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; + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java index d3c8adcf..d03ccadc 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java @@ -16,7 +16,6 @@ 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.dto.sap.impart2.T1ResultDTO; import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO; -import com.nflg.product.bomnew.util.VUtils; import lombok.extern.slf4j.Slf4j; import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; @@ -142,7 +141,10 @@ public class SapOpUtilService { public List importToSapV2(ImportSapParamDTO impartSapParamDTO, List backList) { - VUtils.isTure(CollUtil.isEmpty(impartSapParamDTO.getT1())).throwMessage("没有需要同步的数据"); + if (CollUtil.isEmpty(impartSapParamDTO.getT1())) { + log.info("没有需要同步的数据"); + return Collections.emptyList(); + } SapReqParams params = new SapReqParams(); // 接口名 params.setFunName("ZRFC_PP_005"); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java index 9f2e0398..225fe560 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java @@ -182,6 +182,8 @@ public class EBomQueryService { vo.setBomVersion("1"); } else { vo.setBomVersion(level >= lastVO.getLevelNum() ? lastVO.getBomVersion() : String.valueOf(Integer.parseInt(lastVO.getBomVersion()) + 1)); + vo.setChildNum(lastVO.getNum()); + vo.setChildMaterialUnit(lastVO.getChildMaterialUnit()); } return vo; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java index 524bc659..f9af58bc 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java @@ -176,6 +176,8 @@ public class PBomQueryService { vo.setBomVersion("1"); } else { vo.setBomVersion(level >= lastVO.getLevelNum() ? lastVO.getBomVersion() : String.valueOf(Integer.parseInt(lastVO.getBomVersion()) + 1)); + vo.setChildNum(lastVO.getNum()); + vo.setChildMaterialUnit(lastVO.getChildMaterialUnit()); } return vo; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml index 912374db..7ac2ead5 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml @@ -412,9 +412,9 @@ - select b.* , a.drawing_no as childDrawingNo from t_bom_new_ebom_child a + select b.*, a.drawing_no as childDrawingNo, a.num AS childNum, a.material_unit AS childMaterialUnit + from t_bom_new_ebom_child a join t_bom_new_ebom_parent b on a.parent_row_id=b.row_id where a.material_no =#{materialNo} and b.status=4 diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml index 04313924..a0db0095 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml @@ -78,8 +78,8 @@