diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/AdSyncSetInfoVO.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/AdSyncSetInfoVO.java index fe12ca6f..7edc5b1d 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/AdSyncSetInfoVO.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/AdSyncSetInfoVO.java @@ -1,6 +1,5 @@ package com.nflg.product.material.pojo.vo; -import jdk.nashorn.internal.objects.annotations.Constructor; import lombok.Data; /** diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/ExcelDictionariesApiVO.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/ExcelDictionariesApiVO.java index 3588c8d5..44715a6f 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/ExcelDictionariesApiVO.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/ExcelDictionariesApiVO.java @@ -1,6 +1,5 @@ package com.nflg.product.material.pojo.vo; -import jdk.nashorn.internal.objects.annotations.Constructor; import lombok.AllArgsConstructor; import lombok.Data; import org.ttzero.excel.annotation.ExcelColumn; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java index 15ac993b..45c3a5ca 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java @@ -281,14 +281,16 @@ public class EbomApi extends BaseApi { @GetMapping("editDetail") @ApiOperation("编辑物料列表") - public ResultVO editDetail(@RequestParam("bomRowId") Long bomRowId,@RequestParam("projectType") String projectType) { - + public ResultVO editDetail(@RequestParam("rowId") Long rowId,@RequestParam("bomRowId") Long bomRowId,@RequestParam("projectType") String projectType) { + if(Objects.isNull(rowId)){ + VUtils.isTure(true ).throwMessage("rowId 不能为空"); + } if(Objects.isNull(bomRowId)){ VUtils.isTure(true ).throwMessage("bomRowId不能为空"); } ResultVO resultVO = new ResultVO(); - resultVO.setData(bomNewEbomParentService.editDetail(bomRowId,projectType)); + resultVO.setData(bomNewEbomParentService.editDetail(rowId,bomRowId,projectType)); return resultVO; } @@ -350,10 +352,24 @@ public class EbomApi extends BaseApi { @PostMapping("temporary") @ApiOperation("暂存") - public ResultVO temporary(@RequestBody BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException { + @LogRecord(success = "Ebom-暂存,物料编码:{{#dto.parent.materialNo}}-版本:{{#dto.parent.currentVersion}},操作结果:{{#_ret}}", bizNo = "{{#dto.parent.rowId}}",type = "Ebom-暂存") + public ResultVO temporary(@RequestBody BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException { return ResultVO.success(bomNewEbomParentService.temporary(dto)); } + @PostMapping("temporaryAdd") + @ApiOperation("暂存添加") + @LogRecord(success = "Ebom-暂存添加,物料编码:{{#dto.parent.materialNo}}-版本:{{#dto.parent.currentVersion}},操作结果:{{#_ret}}", bizNo = "{{#dto.parent.rowId}}",type = "Ebom-暂存添加") + public ResultVO temporaryAdd(@RequestBody BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException { + return ResultVO.success(bomNewEbomParentService.temporary(dto)); + } + + @PostMapping("submitAdd") + @ApiOperation("提交添加") + @LogRecord(success = "Ebom-提交添加,物料编码:{{#dto.parent.materialNo}}-版本:{{#dto.parent.currentVersion}},操作结果:{{#_ret}}", bizNo = "{{#dto.parent.rowId}}",type = "Ebom-提交添加") + public ResultVO submitAdd(@RequestBody BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException { + return ResultVO.success(bomNewEbomParentService.submit(dto)); + } @PostMapping("submit") @@ -364,9 +380,11 @@ public class EbomApi extends BaseApi { } + + @PostMapping("intiException") @ApiOperation("初始化错误类型") - @LogRecord(success = "Ebom-初始化错误类型,操作结果:{{#_ret}}", bizNo = "{{#bomRowIds.toString()}}",type = "Ebom-提交") + @LogRecord(success = "Ebom-初始化错误类型,操作结果:{{#_ret}}", bizNo = "{{#bomRowIds.toString()}}",type = "Ebom-初始化错误类型") public ResultVO intiException(@RequestBody List bomRowIds) throws ExecutionException, InterruptedException { bomNewEbomParentService.batchCheckAndSaveEBomException(bomRowIds ); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EbomEditStatusEnum.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EbomEditStatusEnum.java index 8d162090..4f029242 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EbomEditStatusEnum.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EbomEditStatusEnum.java @@ -8,8 +8,8 @@ import lombok.Getter; @Getter public enum EbomEditStatusEnum implements ValueEnum { - HANDLER_CREATED(1, "待处理"), - HANDLER_FINISHED(2, "处理完成"); + HANDLER_CREATED(1, "待处理"),//待处理=暂存 + HANDLER_FINISHED(2, "已处理"); //已处理=提交 private final Integer value; 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 c65fea2a..53f30874 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 @@ -17,6 +17,10 @@ public class BomNewEbomImportDTO { // private BomNewEbomParentVO parent; @ApiModelProperty("父物料id") private Long rowId; + + @ApiModelProperty("bom id") + private Long bomRowId; + @ApiModelProperty("操作类型(1:删除 2:追加)") private Integer opType; 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 e0ae536e..ec5263c4 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 @@ -914,6 +914,10 @@ public class BomNewEbomParentService extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(BomNewEbomChildEntity::getParentRowId, dto.getRowId()).last("limit 1"); queryWrapper.lambda().orderByDesc(BomNewEbomChildEntity::getOrderNumber); @@ -948,26 +953,26 @@ public class BomNewEbomParentService extends ServiceImpl()); + }else{ + BomNewEbomParentEntity parent = this.getBaseMapper().selectById(bomRowId); + parentVO = Convert.convert(BomNewEbomParentVO.class, parent); + + parentVO.setBomRowId(parentVO.getRowId()); + parentVO.setProjectType(projectType); + parentVO.setParentRowId(0l); + materialMainService.intiMaterialInfo(ImmutableList.of(parentVO), EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); + vo.setDatas(getChild(bomRowId)); + } // materialMainService.intiMaterialInfo(ImmutableList.of(parentVO)); @@ -1303,7 +1327,7 @@ public class BomNewEbomParentService extends ServiceImpl childList = dto.getDatas(); - - if (dto.getParent().getRootIs() == null || dto.getParent().getRootIs() == 0) { - childList.add(dto.getParent()); - } // checkAndSaveEBomException(childList); //不要异步 ebomChildService.getBaseMapper().updateEBomMaterialUse(); // ThreadUtil.execAsync(() -> computeLevelNumAndRootState()); - return true; + BomNewEbomParentVO retParentVO= Convert.convert(BomNewEbomParentVO.class,eBomEdit.getParentEntity()); + retParentVO.setBomRowId(retParentVO.getRowId()); + + return retParentVO; } /** @@ -1538,7 +1556,7 @@ public class BomNewEbomParentService extends ServiceImpl checkStatus = CollectionUtil.toList(new Integer[]{ EBomExceptionStatusEnum.EXCEPT_NO_2.getValue(), @@ -1557,27 +1575,22 @@ public class BomNewEbomParentService extends ServiceImpl allBom = Convert.convert(new TypeReference>() { }, eBomEdit.childEntities); - BomNewEbomParentVO parent = Convert.convert(BomNewEbomParentVO.class - , eBomEdit.parentEntities.get(0)); - -// if (dto.getParent().getRootIs() == null || dto.getParent().getRootIs() == 0) { -// allBom.add(parent); -// } - CheckEBomException checkEBomException = new CheckEBomException(allBom); checkEBomException.checkContainExcept(checkStatus); } - if (CollectionUtil.isNotEmpty(eBomEdit.parentEntities)) { - this.saveOrUpdateBatch(eBomEdit.parentEntities); - } if (CollectionUtil.isNotEmpty(eBomEdit.childEntities)) { ebomChildService.saveOrUpdateBatch(eBomEdit.childEntities); @@ -1611,6 +1624,7 @@ public class BomNewEbomParentService extends ServiceImpl delTagList = new ArrayList<>(); List okList = delList.stream().filter(u -> Objects.equals(EBomSourceEnum.FROM_BOM.getValue(), u.getSource()) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java index 92e6a623..dfcdb40c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java @@ -255,8 +255,6 @@ public class BomNewMbomParentService extends ServiceImpl()); result.setZID(RandomUtil.randomNumbers(5)); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java index 8a726401..4ce3ab3e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java @@ -10,27 +10,24 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Sets; import com.mzt.logapi.context.LogRecordContext; -import com.nflg.product.base.core.config.SpringContextUtils; 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.BomNewOriginalParentMapper; import com.nflg.product.bomnew.pojo.dto.BomNewOriginalExcelDTO; import com.nflg.product.bomnew.pojo.dto.OriginalSaveBomDTO; -import com.nflg.product.bomnew.pojo.entity.*; +import com.nflg.product.bomnew.pojo.entity.BomNewOriginalChildEntity; +import com.nflg.product.bomnew.pojo.entity.BomNewOriginalMaterialUseEntity; +import com.nflg.product.bomnew.pojo.entity.BomNewOriginalParentEntity; +import com.nflg.product.bomnew.pojo.entity.BomOriginalCadParentEntity; import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; -import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO; import com.nflg.product.bomnew.pojo.vo.BomOriginalPlmBomVO; import com.nflg.product.bomnew.pojo.vo.ImportOriginalBomVO; -import com.nflg.product.bomnew.service.domain.EBom.CheckEBomException; import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomDetailTask; import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomToEBomConvert; import com.nflg.product.bomnew.service.domain.OriginalBom.PlmBomToOriginalConvert; import com.nflg.product.bomnew.util.*; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.map.LinkedMap; -import org.bouncycastle.cert.dane.DANEEntry; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; @@ -46,7 +43,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; import java.util.stream.Collectors; -import java.util.stream.Stream; /** @@ -618,6 +614,9 @@ public class BomNewOriginalParentService extends ServiceImpl parentEntities; + @Getter + private BomNewEbomParentEntity parentEntity; public List childEntities; Integer source; + List roleList; public EBomEdit(Integer source) { this.source = source; + + parentEntities = new ArrayList<>(); + childEntities = new ArrayList<>(); + roleList = SpringUtil.getBean(UserRoleService.class).getUserPost(); } BomNewEbomParentEntity createParentBomInfo(BomNewEbomParentVO vo) { - BomNewEbomParentEntity parent = new BomNewEbomParentEntity(); - BeanUtil.copyProperties(vo,parent); + BomNewEbomParentEntity parent = Convert.convert(BomNewEbomParentEntity.class, vo); + //BeanUtil.copyProperties(vo,parent); // BaseMaterialVO material = materialVOMap.get(vo.getMaterialNo()); String batchNo = IdUtil.simpleUUID(); parent.setRowId(IdWorker.getId()); parent.setBatchNo(batchNo); -// parent.setDrawingNo(material.getDrawingNo()); -// parent.setMaterialNo(material.getMaterialNo()); -// parent.setMaterialName(material.getMaterialName()); -// parent.setMaterialDesc(material.getMaterialDesc()); -// parent.setMaterialTexture(material.getMaterial()); - // parent.setNum(vo.getNum() == null ? new BigDecimal(1) : vo.getNum()); parent.setTotalWeight(NumberUtil.mul(vo.getUnitWeight(), vo.getNum())); parent.setDeviseUserCode(SessionUtil.getUserCode()); @@ -62,22 +71,113 @@ public class EBomEdit { parent.setSourceRowId(0l); parent.setSource(source); parent.setStatus(EBomStatusEnum.WAIT_CHECK.getValue()); - + parent.setNum(new BigDecimal(1)); parent.setBomExist(1); parent.setLastVersionIs(1); parent.setEditStatus(EbomEditStatusEnum.HANDLER_CREATED.getValue()); parent.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); -// if(StrUtil.isEmpty(parent.getProjectType())){ -// parent.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_8.getValue()); -// } + parent.setStatus(SpringUtil.getBean(UserRoleService.class).technician() ? EBomStatusEnum.CHECKED.getValue() : EBomStatusEnum.WAIT_CHECK.getValue()); parent.setCreatedJob(SpringUtil.getBean(UserRoleService.class).technician() ? UserJobEnum.ENGINEER.getValue() : UserJobEnum.DESIGNER.getValue()); + parent.setModifyTime(LocalDateTime.now()); + + parent.setExpireEndTime( LocalDateTime.parse("9999-12-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") )); + return parent; } + void checkHadBom(String materialNo){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(BomNewEbomParentEntity::getMaterialNo, materialNo); + List existBomlist = SpringUtil.getBean(BomNewEbomParentService.class).list(queryWrapper); + VUtils.isTure(CollUtil.isNotEmpty(existBomlist)).throwMessage(materialNo+"该物料已存在BOM"); + } + + + + + + void createRootBom(BomNewEBomParentEditDTO createDTO) { + + checkHadBom(createDTO.getParent().getMaterialNo()); + + parentEntity = createParentBomInfo(createDTO.getParent()); + parentEntity.setEditStatus(createDTO.getOpType()); + + parentEntity.setRootIs(1); + parentEntity.setUserRootIs(1); + createDTO.getDatas().forEach(k -> { + k.setParentRowId(parentEntity.getRowId()); + }); + + + if (Objects.equals(createDTO.getOpType(), EbomEditStatusEnum.HANDLER_FINISHED.getValue())) { + //工艺人员 + if (roleList.contains(EBomConstant.TECHNICIAN)) { + parentEntity.setStatus(EBomStatusEnum.CHECKED.getValue()); + } + } + + childEntities.addAll(updateOrCreateChild(createDTO)); + + } + + List updateOrCreateChild(BomNewEBomParentEditDTO dto) { + List childEntity = Convert.convert(new TypeReference>() { + }, dto.getDatas()); + + + for (BomNewEbomChildEntity child : + childEntity) { + + child.setEditStatus(dto.getOpType()); + child.setTotalWeight(NumberUtil.mul(child.getUnitWeight(), child.getNum())); + child.setModifyTime(LocalDateTime.now()); + + if (child.getMaterialName().contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName())) { + child.setVirtualPartType(VirtualPackageTypeEnum.MAKING_PACKAGE.getValue()); + child.setVirtualPartIs(1); + + } else if (child.getMaterialName().contains(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getConMaterialName())) { + child.setVirtualPartType(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue()); + child.setVirtualPartIs(1); + } else if (child.getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName())) { + child.setVirtualPartType(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue()); + child.setVirtualPartIs(1); + } else if (child.getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName())) { + child.setVirtualPartType(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()); + child.setVirtualPartIs(1); + } + + + //新增数据 + if (child.getRowId() == null || child.getRowId().longValue() == 0) { + child.setRowId(IdWorker.getId()); + child.setIdentityNo(StrUtil.join("_", parentEntity.getRowId(), child.getRowId())); + child.setSource(source); + child.setCreatedTime(LocalDateTime.now()); + child.setCreatedBy(SessionUtil.getUserCode()); + child.setSourceRowId(0l); + child.setParentRowId(parentEntity.getRowId()); + if(StrUtil.isEmpty(child.getOrderNumber())){ + child.setOrderNumber("00"); + } + child.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); + // parent.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); + checkExcept(dto.getParent(), child); + if (StrUtil.isNotBlank(child.getProjectType())) { + child.setProjectType(child.getProjectType().toUpperCase()); + } + } + + + } + return childEntity; + } + private void checkExcept(BomNewEbomParentVO parent, BomNewEbomChildEntity child) { @@ -99,14 +199,81 @@ public class EBomEdit { } + void checkDataRule(BomNewEBomParentEditDTO dto) { + if (dto.getParent() == null) { + throw new NflgBusinessException(STATE.Error, "parent 数据不能为空"); + } + if (CollUtil.isEmpty(dto.getDatas())) { + throw new NflgBusinessException(STATE.Error, "datas 数据不能为空"); + } + + List materialNos = dto.getDatas().stream().map(u -> u.getMaterialNo()).collect(Collectors.toList()); + if(materialNos.contains(dto.getParent().getMaterialNo())){ + VUtils.isTure(true).throwMessage(StrUtil.format("上下级存在相同物料{}",dto.getParent().getMaterialNo())); + } + materialNos.add(dto.getParent().getMaterialNo()); + //检查物料编码是否在主数据中存在 + List materialBaseInfo = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(materialNos); + List effectiveMaterialNos = materialBaseInfo.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList()); + Set difference = Sets.difference(new HashSet<>(materialNos), new HashSet<>(effectiveMaterialNos)); + VUtils.isTure(CollUtil.isNotEmpty(difference)).throwMessage(StrUtil.join(",", difference) + "在物料主数据中不存在"); + + } + + + + + public void handleBom(BomNewEBomParentEditDTO dto) { + checkDataRule(dto); + //添加根节点数据 + //rowId is null 必定是未入库作为根 + if (dto.getParent().getRowId() == null || dto.getParent().getRowId().longValue() == 0) { + createRootBom(dto); + return; + } + + //缺bom + if (dto.getParent().getBomRowId() == null || dto.getParent().getBomRowId().longValue() == 0) { + + checkHadBom(dto.getParent().getMaterialNo()); + dto.getParent().setBomRowId(dto.getParent().getRowId()); + parentEntity = createParentBomInfo(dto.getParent()); + + dto.getDatas().forEach(k -> { + k.setParentRowId(parentEntity.getRowId()); + }); + parentEntity.setEditStatus(dto.getOpType()); + + }else{ + parentEntity = Convert.convert(BomNewEbomParentEntity.class, dto.getParent()); + parentEntity.setModifyTime(LocalDateTime.now()); + } + parentEntity.setEditStatus(dto.getOpType()); + //提交 + if (Objects.equals(dto.getOpType(), EbomEditStatusEnum.HANDLER_FINISHED.getValue())) { + //工艺人员 + if (roleList.contains(EBomConstant.TECHNICIAN)) { + parentEntity.setStatus(EBomStatusEnum.CHECKED.getValue()); + } + } + childEntities.addAll(updateOrCreateChild(dto)); + + } + + + /** + * 废弃 + * @param dto + */ + @Deprecated public void temporary(BomNewEBomParentEditDTO dto) { - parentEntities = new ArrayList<>(); - childEntities = new ArrayList<>(); + List roleList = SpringUtil.getBean(UserRoleService.class).getUserPost(); - //添加数据 + + if (dto.getParent() == null) { for (BomNewEbomParentVO vo : dto.getDatas()) { @@ -178,7 +345,11 @@ public class EBomEdit { } - + /** + * 废弃 + * @param dto + */ + @Deprecated public void submit(BomNewEBomParentEditDTO dto) { @@ -208,7 +379,7 @@ public class EBomEdit { if (dto.getParent().getBomRowId() == null || dto.getParent().getBomRowId().longValue() == 0) { dto.getParent().setBomRowId(dto.getParent().getRowId()); parent = createParentBomInfo(dto.getParent()); - dto.getDatas().forEach(k->{ + dto.getDatas().forEach(k -> { k.setParentRowId(parent.getRowId()); }); parent.setEditStatus(dto.getOpType()); @@ -257,7 +428,7 @@ public class EBomEdit { // parent.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); checkExcept(dto.getParent(), child); - }else { + } else { child.setModifyTime(LocalDateTime.now()); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/PlmBomToOriginalConvert.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/PlmBomToOriginalConvert.java index 030a824e..fa783287 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/PlmBomToOriginalConvert.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/PlmBomToOriginalConvert.java @@ -49,7 +49,7 @@ public class PlmBomToOriginalConvert extends BaseConvert { childs = Convert.toList(BomOriginalPlmBomVO.class, SpringUtil.getBean(BomOriginalCadChildService.class).lambdaQuery().eq(BomOriginalCadChildEntity::getParentRowId, inParent.getRowId()).list()); parent = Convert.convert(BomOriginalPlmBomVO.class, inParent); //图号-初始化缺编码的物料 - if(StrUtil.isBlank(parent.getMaterialNo())){ + if(StrUtil.isBlank(parent.getMaterialNo()) || parent.getMaterialNo().trim().equalsIgnoreCase("无")){ SpringUtil.getBean(MaterialMainService.class).initMaterialForDrawdingNo(ImmutableList.of(parent) ,BomOriginalPlmBomVO::getDrawingNo,BomOriginalPlmBomVO::setMaterialNo,BomOriginalPlmBomVO::setMaterialName); } List noMaterialNoList = childs.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList()); diff --git a/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/BaseGlobalExceptionHandle.java b/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/BaseGlobalExceptionHandle.java index d773176d..8348eea3 100644 --- a/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/BaseGlobalExceptionHandle.java +++ b/nflg_project_dev/nflg-boot-base/nflg-boot-core/src/main/java/com/nflg/product/base/core/exception/BaseGlobalExceptionHandle.java @@ -1,6 +1,5 @@ package com.nflg.product.base.core.exception; -import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; @@ -9,9 +8,9 @@ import org.springframework.dao.DuplicateKeyException; import org.springframework.jdbc.BadSqlGrammarException; import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.MissingServletRequestParameterException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MaxUploadSizeExceededException; import org.springframework.web.servlet.NoHandlerFoundException; @@ -34,21 +33,24 @@ public class BaseGlobalExceptionHandle { @ExceptionHandler(value = NflgBusinessException.class) @ResponseBody public ResultVO handleJeecgBootException(NflgBusinessException e) { - return ResultVO.error(e.getState(), e.getMessage()); - + log.error(e.getMessage(), e); + //return ResultVO.error(e.getState(), e.getMessage()); + return ResultVO.error(e.getState(),e.getMessage()); } @ExceptionHandler(value = NoHandlerFoundException.class) @ResponseBody public ResultVO handlerNoFoundException(NoHandlerFoundException e) { log.error(e.getMessage(), e); - return ResultVO.error(404, "路径不存在,请检查路径是否正确"); + //return ResultVO.error(404, "路径不存在,请检查路径是否正确"); + return ResultVO.error(STATE.AddressNotFound,"路径不存在,请检查路径是否正确"); } @ExceptionHandler(value = DuplicateKeyException.class) @ResponseBody public ResultVO handleDuplicateKeyException(DuplicateKeyException e) { log.error(e.getMessage(), e); + //return ResultVO.error("已存在该记录,请勿重复操作"); return ResultVO.error("已存在该记录,请勿重复操作"); } @@ -57,6 +59,7 @@ public class BaseGlobalExceptionHandle { @ResponseBody public ResultVO handleException(Exception e) { log.error(e.getMessage(), e); + //return ResultVO.error("操作失败,请联系系统管理员"); return ResultVO.error("操作失败,请联系系统管理员"); } @@ -68,7 +71,8 @@ public class BaseGlobalExceptionHandle { @ExceptionHandler(value = HttpRequestMethodNotSupportedException.class) @ResponseBody public ResultVO HttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException e) { - StringBuffer sb = new StringBuffer(); + log.error(e.getMessage(), e); + StringBuilder sb = new StringBuilder(); sb.append("不支持"); sb.append(e.getMethod()); sb.append("请求方法,"); @@ -81,8 +85,8 @@ public class BaseGlobalExceptionHandle { } } log.error(sb.toString(), e); - return ResultVO.error(STATE.PermissionDenied, "登录已过期,请重新登录"); -// return ResultVO.error(STATE.PermissionDenied, sb.toString()); + //return ResultVO.error(STATE.PermissionDenied, "登录已过期,请重新登录"); + return ResultVO.error(STATE.PermissionDenied,"不支持的请求方法:"+e.getMethod()); } /** @@ -92,6 +96,7 @@ public class BaseGlobalExceptionHandle { @ResponseBody public ResultVO handleMaxUploadSizeExceededException(MaxUploadSizeExceededException e) { log.error(e.getMessage(), e); + //return ResultVO.error("文件大小超出10MB限制, 请压缩或降低文件质量! "); return ResultVO.error("文件大小超出10MB限制, 请压缩或降低文件质量! "); } @@ -99,6 +104,7 @@ public class BaseGlobalExceptionHandle { @ResponseBody public ResultVO handleDataIntegrityViolationException(DataIntegrityViolationException e) { log.error(e.getMessage(), e); +// return ResultVO.error("字段太长,超出数据库字段的长度"); return ResultVO.error("字段太长,超出数据库字段的长度"); } @@ -106,6 +112,7 @@ public class BaseGlobalExceptionHandle { @ResponseBody public ResultVO handleSQLException(SQLException e) { log.error(e.getMessage(),e); + //return ResultVO.error("sql执行过程出现错误"); return ResultVO.error("sql执行过程出现错误"); } @@ -113,16 +120,16 @@ public class BaseGlobalExceptionHandle { @ResponseBody public ResultVO handleRuntimeExceptionException(RuntimeException e) { log.error(e.getMessage(),e); - throw new NflgBusinessException(STATE.Error, "系统错误,请联系管理员"); + //throw new NflgBusinessException(STATE.Error, "系统错误,请联系管理员"); + return ResultVO.error("系统错误,请联系管理员"); } - - @ExceptionHandler(value = BadSqlGrammarException.class) @ResponseBody public ResultVO handleDataAccessException(BadSqlGrammarException e) { log.error(e.getMessage(),e); - throw new NflgBusinessException(STATE.Error, "sql 语法错误,系统错误,请联系管理员"); + //throw new NflgBusinessException(STATE.Error, "sql 语法错误,系统错误,请联系管理员"); + return ResultVO.error("sql 语法错误,系统错误,请联系管理员"); } @ExceptionHandler(value = MethodArgumentNotValidException.class) @@ -133,10 +140,16 @@ public class BaseGlobalExceptionHandle { } @ExceptionHandler(NullPointerException.class) + @ResponseBody public ResultVO handleNullPointerException(NullPointerException ex) { - - return ResultVO.error(STATE.Error, "系统错误,请联系管理员:"+ex.getMessage()) ; + log.error(ex.getMessage(),ex); + return ResultVO.error(STATE.Error, "系统错误,请联系管理员") ; } - + @ExceptionHandler(MissingServletRequestParameterException.class) + @ResponseBody + public ResultVO handleMissingServletRequestParameterException(MissingServletRequestParameterException ex) { + log.error(ex.getMessage(),ex); + return ResultVO.error(STATE.ParamErr, ex.getParameterName()+"参数不能为空"); + } }