Merge remote-tracking branch 'origin/feature/DM/nflg-bom' into feature/DM/nflg-bom
This commit is contained in:
commit
304db5e16c
|
|
@ -1,6 +1,5 @@
|
|||
package com.nflg.product.material.pojo.vo;
|
||||
|
||||
import jdk.nashorn.internal.objects.annotations.Constructor;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -281,14 +281,16 @@ public class EbomApi extends BaseApi {
|
|||
|
||||
@GetMapping("editDetail")
|
||||
@ApiOperation("编辑物料列表")
|
||||
public ResultVO<BomNewEbomEditDetailVO> editDetail(@RequestParam("bomRowId") Long bomRowId,@RequestParam("projectType") String projectType) {
|
||||
|
||||
public ResultVO<BomNewEbomEditDetailVO> 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<Boolean> 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<BomNewEbomParentVO> 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<BomNewEbomParentVO> 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<Boolean> 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<Boolean> intiException(@RequestBody List<Long> bomRowIds) throws ExecutionException, InterruptedException {
|
||||
|
||||
bomNewEbomParentService.batchCheckAndSaveEBomException(bomRowIds );
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ import lombok.Getter;
|
|||
@Getter
|
||||
public enum EbomEditStatusEnum implements ValueEnum<Integer> {
|
||||
|
||||
HANDLER_CREATED(1, "待处理"),
|
||||
HANDLER_FINISHED(2, "处理完成");
|
||||
HANDLER_CREATED(1, "待处理"),//待处理=暂存
|
||||
HANDLER_FINISHED(2, "已处理"); //已处理=提交
|
||||
|
||||
|
||||
private final Integer value;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -914,6 +914,10 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
}, result);
|
||||
|
||||
BomNewEbomParentEntity parentEntity = this.getBaseMapper().selectById(dto.getRowId());
|
||||
if(parentEntity==null){
|
||||
throw new NflgBusinessException(STATE.Error, StrUtil.format("bom {} 数据未查询到",dto.getRowId()));
|
||||
}
|
||||
|
||||
BomNewEbomParentVO parentVO = Convert.convert(BomNewEbomParentVO.class, parentEntity);
|
||||
parentVO.setBomRowId(parentVO.getRowId());
|
||||
parentVO.setParentRowId(0l);
|
||||
|
|
@ -924,7 +928,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
BomNewEBomParentEditDTO bomNewEBomParentEditDTO = new BomNewEBomParentEditDTO();
|
||||
bomNewEBomParentEditDTO.setParent(parentVO);
|
||||
bomNewEBomParentEditDTO.setDatas(datas);
|
||||
eBomEdit.temporary(bomNewEBomParentEditDTO);
|
||||
eBomEdit.handleBom(bomNewEBomParentEditDTO);
|
||||
|
||||
|
||||
int orderNo = 1;
|
||||
|
|
@ -934,6 +938,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
deleteBom(dto.getRowId());
|
||||
}
|
||||
} else {
|
||||
//最后一个序列号
|
||||
QueryWrapper<BomNewEbomChildEntity> 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<BomNewEbomParentMapper,
|
|||
|
||||
for (BomNewEbomChildEntity childEntities : eBomEdit.childEntities) {
|
||||
childEntities.setOrderNumber(OrderNoUtil.orderNo2Str(orderNo));
|
||||
if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName())) {
|
||||
childEntities.setVirtualPartType(VirtualPackageTypeEnum.MAKING_PACKAGE.getValue());
|
||||
childEntities.setVirtualPartIs(1);
|
||||
|
||||
} else if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getConMaterialName())) {
|
||||
childEntities.setVirtualPartType(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue());
|
||||
childEntities.setVirtualPartIs(1);
|
||||
} else if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName())) {
|
||||
childEntities.setVirtualPartType(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue());
|
||||
childEntities.setVirtualPartIs(1);
|
||||
} else if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName())) {
|
||||
childEntities.setVirtualPartType(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue());
|
||||
childEntities.setVirtualPartIs(1);
|
||||
}
|
||||
// if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName())) {
|
||||
// childEntities.setVirtualPartType(VirtualPackageTypeEnum.MAKING_PACKAGE.getValue());
|
||||
// childEntities.setVirtualPartIs(1);
|
||||
//
|
||||
// } else if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getConMaterialName())) {
|
||||
// childEntities.setVirtualPartType(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue());
|
||||
// childEntities.setVirtualPartIs(1);
|
||||
// } else if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName())) {
|
||||
// childEntities.setVirtualPartType(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue());
|
||||
// childEntities.setVirtualPartIs(1);
|
||||
// } else if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName())) {
|
||||
// childEntities.setVirtualPartType(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue());
|
||||
// childEntities.setVirtualPartIs(1);
|
||||
// }
|
||||
orderNo++;
|
||||
}
|
||||
|
||||
|
||||
if (CollectionUtil.isNotEmpty(eBomEdit.parentEntities)) {
|
||||
this.saveOrUpdateBatch(eBomEdit.parentEntities);
|
||||
if ( eBomEdit.getParentEntity()!=null) {
|
||||
this.saveOrUpdate( eBomEdit.getParentEntity());
|
||||
}
|
||||
|
||||
if (CollectionUtil.isNotEmpty(eBomEdit.childEntities)) {
|
||||
|
|
@ -1282,17 +1287,36 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
return true;
|
||||
}
|
||||
|
||||
public BomNewEbomEditDetailVO editDetail(Long bomRowId, String projectType) {
|
||||
public BomNewEbomEditDetailVO editDetail( Long rowId,Long bomRowId, String projectType) {
|
||||
|
||||
BomNewEbomEditDetailVO vo = new BomNewEbomEditDetailVO();
|
||||
BomNewEbomParentEntity parent = this.getBaseMapper().selectById(bomRowId);
|
||||
BomNewEbomParentVO parentVO = Convert.convert(BomNewEbomParentVO.class, parent);
|
||||
BomNewEbomParentVO parentVO;
|
||||
if(bomRowId==null || bomRowId.longValue()==0) {
|
||||
|
||||
BomNewEbomChildEntity child = SpringUtil.getBean(BomNewEbomChildService.class).getBaseMapper().selectById(rowId);
|
||||
|
||||
parentVO.setBomRowId(parentVO.getRowId());
|
||||
parentVO.setParentRowId(0l);
|
||||
parentVO.setProjectType(projectType);
|
||||
parentVO = Convert.convert(BomNewEbomParentVO.class, child);
|
||||
materialMainService.intiMaterialInfo(ImmutableList.of(parentVO), EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2);
|
||||
|
||||
materialMainService.intiMaterialInfo(ImmutableList.of(parentVO), EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2);
|
||||
if (MaterialshouldBomExistUtil.checkShouldBomExist(parentVO)
|
||||
|| (parentVO.getMaterialCategoryCode().startsWith("20") && (MaterialGetEnum.outsource.equalsValue(parentVO.getMaterialGetType()) || MaterialGetEnum.purchase.equalsValue(parentVO.getMaterialGetType())))
|
||||
|| parentVO.getMaterialCategoryCode().equals("7013")) {
|
||||
;
|
||||
}else{
|
||||
VUtils.isTure(true).throwMessage("编辑条件需满足,1.存在下级物料或是缺BOM 2.物料的分类20且流程类型为外协和采购部分\n" +
|
||||
" 3.分类70中的7013时的物料 ");
|
||||
}
|
||||
vo.setDatas(new ArrayList<>());
|
||||
}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<BomNewEbomParentMapper,
|
|||
// materialMainService.intiMaterialInfo(parentList);
|
||||
//
|
||||
|
||||
vo.setDatas(getChild(bomRowId));
|
||||
|
||||
vo.setParent(parentVO);
|
||||
return vo;
|
||||
|
||||
|
|
@ -1487,13 +1511,11 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
*/
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean temporary(BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException {
|
||||
public BomNewEbomParentVO temporary(BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException {
|
||||
|
||||
EBomEdit eBomEdit = new EBomEdit(EBomSourceEnum.FROM_MDM.getValue());
|
||||
dto.setOpType(EbomEditStatusEnum.HANDLER_CREATED.getValue());
|
||||
eBomEdit.temporary(dto);
|
||||
|
||||
|
||||
eBomEdit.handleBom(dto);
|
||||
|
||||
|
||||
if (dto.getParent() != null) {
|
||||
|
|
@ -1502,8 +1524,8 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
}
|
||||
}
|
||||
|
||||
if (CollectionUtil.isNotEmpty(eBomEdit.parentEntities)) {
|
||||
this.saveOrUpdateBatch(eBomEdit.parentEntities);
|
||||
if (eBomEdit.getParentEntity()!=null) {
|
||||
this.saveOrUpdate(eBomEdit.getParentEntity());
|
||||
}
|
||||
|
||||
if (CollUtil.isNotEmpty(eBomEdit.childEntities)) {
|
||||
|
|
@ -1513,19 +1535,15 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
|
||||
superMaterialStatus(dto.getDatas());
|
||||
|
||||
|
||||
|
||||
List<BomNewEbomParentVO> 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<BomNewEbomParentMapper,
|
|||
|
||||
EBomEdit eBomEdit = new EBomEdit(EBomSourceEnum.FROM_MDM.getValue());
|
||||
dto.setOpType(EbomEditStatusEnum.HANDLER_FINISHED.getValue());
|
||||
eBomEdit.submit(dto);
|
||||
eBomEdit.handleBom(dto);
|
||||
|
||||
List<Integer> checkStatus = CollectionUtil.toList(new Integer[]{
|
||||
EBomExceptionStatusEnum.EXCEPT_NO_2.getValue(),
|
||||
|
|
@ -1557,27 +1575,22 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if ( eBomEdit.getParentEntity()!=null) {
|
||||
this.saveOrUpdate(eBomEdit.getParentEntity());
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (CollectionUtil.isNotEmpty(eBomEdit.childEntities)) {
|
||||
|
||||
|
||||
List<BomNewEbomParentVO> allBom = Convert.convert(new TypeReference<List<BomNewEbomParentVO>>() {
|
||||
}, 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<BomNewEbomParentMapper,
|
|||
if (CollectionUtil.isEmpty(delList)) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<BomNewEbomParentVO> delTagList = new ArrayList<>();
|
||||
|
||||
List<BomNewEbomParentVO> okList = delList.stream().filter(u -> Objects.equals(EBomSourceEnum.FROM_BOM.getValue(), u.getSource())
|
||||
|
|
|
|||
|
|
@ -255,8 +255,6 @@ public class BomNewMbomParentService extends ServiceImpl<BomNewMbomParentMapper,
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
ImportSapParamDTO result=new ImportSapParamDTO();
|
||||
result.setT1(new ArrayList<>());
|
||||
result.setZID(RandomUtil.randomNumbers(5));
|
||||
|
|
|
|||
|
|
@ -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<BomNewOriginalParen
|
|||
if (data.getChartNo().equals("无")) {
|
||||
data.setChartNo("");
|
||||
}
|
||||
if (data.getMaterialNo().equals("无")) {
|
||||
data.setMaterialNo("");
|
||||
}
|
||||
rowNum.set(rowNum.get() + 1);
|
||||
|
||||
excelContextTL.get().add(data);
|
||||
|
|
|
|||
|
|
@ -8,51 +8,60 @@ import cn.hutool.core.util.IdUtil;
|
|||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.google.common.collect.Sets;
|
||||
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.pojo.dto.BomNewEBomParentEditDTO;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity;
|
||||
import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO;
|
||||
import com.nflg.product.bomnew.service.BomNewEbomParentService;
|
||||
import com.nflg.product.bomnew.service.MaterialMainService;
|
||||
import com.nflg.product.bomnew.service.UserRoleService;
|
||||
import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil;
|
||||
import com.nflg.product.bomnew.util.VUtils;
|
||||
import lombok.Getter;
|
||||
import nflg.product.common.constant.STATE;
|
||||
import org.ttzero.excel.reader.Col;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class EBomEdit {
|
||||
|
||||
public List<BomNewEbomParentEntity> parentEntities;
|
||||
@Getter
|
||||
private BomNewEbomParentEntity parentEntity;
|
||||
|
||||
public List<BomNewEbomChildEntity> childEntities;
|
||||
|
||||
Integer source;
|
||||
List<String> 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<BomNewEbomParentEntity> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(BomNewEbomParentEntity::getMaterialNo, materialNo);
|
||||
List<BomNewEbomParentEntity> 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<BomNewEbomChildEntity> updateOrCreateChild(BomNewEBomParentEditDTO dto) {
|
||||
List<BomNewEbomChildEntity> childEntity = Convert.convert(new TypeReference<List<BomNewEbomChildEntity>>() {
|
||||
}, 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<String> 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<BaseMaterialVO> materialBaseInfo = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(materialNos);
|
||||
List<String> effectiveMaterialNos = materialBaseInfo.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList());
|
||||
Set<String> 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<String> 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());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<BomOriginalPlmBomVO> noMaterialNoList = childs.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList());
|
||||
|
|
|
|||
|
|
@ -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<String> 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<String> 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<String> handleDuplicateKeyException(DuplicateKeyException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
//return ResultVO.error("已存在该记录,请勿重复操作");
|
||||
return ResultVO.error("已存在该记录,请勿重复操作");
|
||||
}
|
||||
|
||||
|
|
@ -57,6 +59,7 @@ public class BaseGlobalExceptionHandle {
|
|||
@ResponseBody
|
||||
public ResultVO<String> 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<String> 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<String> 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<String> handleDataIntegrityViolationException(DataIntegrityViolationException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
// return ResultVO.error("字段太长,超出数据库字段的长度");
|
||||
return ResultVO.error("字段太长,超出数据库字段的长度");
|
||||
}
|
||||
|
||||
|
|
@ -106,6 +112,7 @@ public class BaseGlobalExceptionHandle {
|
|||
@ResponseBody
|
||||
public ResultVO<String> 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<String> 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<String> 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<String> 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<String> handleMissingServletRequestParameterException(MissingServletRequestParameterException ex) {
|
||||
log.error(ex.getMessage(),ex);
|
||||
return ResultVO.error(STATE.ParamErr, ex.getParameterName()+"参数不能为空");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue