diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewEbomImportDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewEbomImportDTO.java index f5f95d51..2fc9efeb 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewEbomImportDTO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewEbomImportDTO.java @@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.web.multipart.MultipartFile; +import java.util.Objects; + @Data public class BomNewEbomImportDTO { @@ -16,9 +18,26 @@ public class BomNewEbomImportDTO { @ApiModelProperty("操作类型(1:删除 2:追加)") private Integer opType; - @ApiModelProperty("忽略") + private Integer source= EBomSourceEnum.FROM_EXCE.getValue(); + public boolean isDel(){ + if (Objects.nonNull(opType)){ + if(opType==1){ + return true; + } + } + return false; + } + public boolean isAppend(){ + if (Objects.nonNull(opType)){ + if(opType==2){ + return true; + } + } + return false; + } + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index 49d4516a..1115ed1e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java @@ -620,13 +620,17 @@ public class BomNewEbomParentService extends ServiceImpl materialNos = result.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList()); - CheckEBomException.checkMaterialNoInMain1(materialNos)); + CheckEBomException.checkMaterialNoInMain1(materialNos); EBomImportExcelCheck eBomImportExcelCheck=new EBomImportExcelCheck(); eBomImportExcelCheck.validData(result); List datas = Convert.convert(new TypeReference>() { }, result); - materialMainService.intiMaterialInfo(datas, BomNewEbomParentVO::getMaterialNo); + + + + materialMainService.intiMaterialInfo(datas, "projectType", + "materialUnit"); EBomEdit eBomEdit = new EBomEdit(EBomSourceEnum.FROM_EXCE.getValue()); BomNewEBomParentEditDTO bomNewEBomParentEditDTO = new BomNewEBomParentEditDTO(); bomNewEBomParentEditDTO.setParent(dto.getParent()); @@ -634,13 +638,33 @@ public class BomNewEbomParentService extends ServiceImpl 0 && (dto.getParent().getSource().equals(EBomSourceEnum.FROM_MDM.getValue()) - || dto.getParent().getSource().equals(EBomSourceEnum.FROM_EXCE.getValue()))) { - deleteBom(dto.getParent().getBomRowId()); + int orderNo=1; + if(dto.isDel()){ + if (dto.getParent().getBomRowId() > 0 && (dto.getParent().getSource().equals(EBomSourceEnum.FROM_MDM.getValue()) + || dto.getParent().getSource().equals(EBomSourceEnum.FROM_EXCE.getValue()))) { + deleteBom(dto.getParent().getBomRowId()); + } + }else { + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.lambda().eq(BomNewEbomChildEntity::getParentRowId,dto.getParent().getBomRowId()).last("limit 1"); + queryWrapper.lambda().orderByDesc(BomNewEbomChildEntity::getOrderNumber); + + BomNewEbomChildEntity entity= ebomChildService.getOne(queryWrapper); + if(entity!=null && StrUtil.isNotEmpty(entity.getOrderNumber())){ + orderNo= Integer.parseInt(entity.getOrderNumber()) ; + orderNo++; + } } + + for(BomNewEbomChildEntity childEntities:eBomEdit.childEntities){ + childEntities.setOrderNumber(OrderNoUtil.orderNo2Str(orderNo)); + orderNo++; + } + + if (CollectionUtil.isNotEmpty(eBomEdit.parentEntities)) { this.saveOrUpdateBatch(eBomEdit.parentEntities); } @@ -931,15 +955,15 @@ public class BomNewEbomParentService extends ServiceImpl rowIdList = dto.getRowIdList().stream().map(BomNewEbomProjectTypeDTO.BomNewEbomChangeProjectType::getRowId).collect(Collectors.toList()); List bomRowIdList = dto.getRowIdList().stream().filter(u -> u.getBomRowId() > 0).map(BomNewEbomProjectTypeDTO.BomNewEbomChangeProjectType::getBomRowId).collect(Collectors.toList()); - if (CollectionUtil.isNotEmpty(bomRowIdList)) { - UpdateWrapper parentUpdate = new UpdateWrapper<>(); +// if (CollectionUtil.isNotEmpty(bomRowIdList)) { +// UpdateWrapper parentUpdate = new UpdateWrapper<>(); // parentUpdate.lambda() // .set(BomNewEbomParentEntity::getProjectType, dto.getProjectType()) // .set(BomNewEbomParentEntity::getModifyTime, LocalDateTime.now()) // .set(BomNewEbomParentEntity::getProjectTypeInputType, ProjectTypeInputTypeEnum.MANUAL_INPUT.getValue()) // .in(BomNewEbomParentEntity::getRowId, bomRowIdList); - this.update(parentUpdate); - } +// this.update(parentUpdate); +// } if (CollectionUtil.isNotEmpty(rowIdList)) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java index 3a864b91..90361da5 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java @@ -245,15 +245,15 @@ public class EBomEdit { child.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_8.getValue()); } -// if(StrUtil.isNotEmpty(parent.getProjectType()) && StrUtil.containsAny(parent.getProjectType(),ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue(),ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_F.getValue())){ -// if(StrUtil.equals(ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue(),child.getProjectType())){ -// child.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_9.getValue()); -// } + if(StrUtil.isNotEmpty(dto.getParent().getProjectType()) && StrUtil.containsAny(dto.getParent().getProjectType(),ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue(),ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_F.getValue())){ + if(StrUtil.equals(ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue(),child.getProjectType())){ + child.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_9.getValue()); + } -// if(StrUtil.equals(ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_F.getValue(),child.getProjectType())){ -// child.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_10.getValue()); -// } -// } + if(StrUtil.equals(ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_F.getValue(),child.getProjectType())){ + child.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_10.getValue()); + } + } // VUtils.isTure(parent.getProjectType().equals(child.getProjectType())).throwMessage("父、子级项目类型不能相同"); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomImportExcelCheck.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomImportExcelCheck.java new file mode 100644 index 00000000..6bc54f54 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomImportExcelCheck.java @@ -0,0 +1,56 @@ +package com.nflg.product.bomnew.service.domain.EBom; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.nflg.product.base.core.exception.NflgBusinessException; +import com.nflg.product.bomnew.constant.ProjectTypeInputTypeEnum; +import com.nflg.product.bomnew.pojo.dto.BomNewEBomImportExcelDTO; +import com.nflg.product.bomnew.pojo.vo.BomNewEbomChildVO; +import nflg.product.common.constant.STATE; + +import java.util.List; +import java.util.Objects; + +public class EBomImportExcelCheck { + + + public void validData(List list) { + if(CollectionUtil.isNotEmpty(list)){ + return; + } + int count=1; + StringBuffer error=new StringBuffer(); + List projectTypeList= ProjectTypeInputTypeEnum.ProjectTypeEnum.getAllValue(); + for(BomNewEBomImportExcelDTO dto:list){ + + if(Objects.isNull(dto.getProjectType())){ + error.append(StrUtil.format("第%行,项目类别不能为空",count)); + }else { + if(!projectTypeList.contains(dto.getProjectType())){ + error.append(StrUtil.format("第%行,项目类别填写错误",count)); + } + } + + if(Objects.isNull(dto.getMaterialNo())){ + error.append(StrUtil.format("第%行,物料编码不能为空",count)); + } + + if(Objects.isNull(dto.getNum())){ + error.append(StrUtil.format("第%行,数量不能为空",count)); + } + + + if(Objects.isNull(dto.getNum())){ + error.append(StrUtil.format("第%行,单重不能为空",count)); + } + count++; + } + + + + if(StrUtil.isNotEmpty(error.toString())){ + throw new NflgBusinessException(STATE.Error,error.toString()); + } + } + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/OrderNoUtil.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/OrderNoUtil.java new file mode 100644 index 00000000..9dcaaa1c --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/OrderNoUtil.java @@ -0,0 +1,18 @@ +package com.nflg.product.bomnew.util; + +import cn.hutool.core.util.StrUtil; + +public class OrderNoUtil { + + public static String orderNo2Str(int no){ + if(no<10){ + return StrUtil.format("00{}",no); + } + if(no <100){ + return StrUtil.format("0{}",no); + } + + return StrUtil.format("{}",no); + + } +}