diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java index b4955ce7..ad4b6c3e 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java @@ -1291,7 +1291,12 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { if(applyDetail.getTypeId()!=null){ if (applyDetail.getTypeId().equals(typeTreeNode.getTypeId())) { if (applyDetail.getPreNum().compareTo(typeTreeNode.getNum()) > 0) { - return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "退料数量不能大于在用数量"); + String nameModel = StringUtils.joinWith("-", applyDetail.getTypeName(), applyDetail.getTypeModel()); + // 1. 先获取BigDecimal数值,空值兜底 + BigDecimal decimal = Optional.ofNullable(typeTreeNode.getNum()).orElse(BigDecimal.ZERO); + // 2. 核心处理:去除末尾的0(无小数则变成整数,有小数保留原数),避免科学计数法 + String num = decimal.stripTrailingZeros().toPlainString(); + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), nameModel + "的退料数量不能大于在用数量" + num); } } } @@ -1796,10 +1801,16 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { * @return */ private int deleteBmFileInfoByParentId(Long parentId, Long modelId) { + int result = 0; BmFileInfo fileInfo = new BmFileInfo(); fileInfo.setTaskId(parentId); fileInfo.setModelId(modelId); - return bmFileInfoMapper.deleteBmFileInfoByBizInfo(fileInfo); + // 先根据相关信息查询是否存在文件,存在即删除 + List list = bmFileInfoMapper.selectBmFileInfoList(fileInfo); + if (!CollectionUtils.isEmpty(list)) { + result = bmFileInfoMapper.deleteBmFileInfoByBizInfo(fileInfo); + } + return result; } /** @@ -1814,7 +1825,10 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { BmFileInfo bmFileInfo = new BmFileInfo(); bmFileInfo.setTaskId(taskId); bmFileInfo.setModelId(maCodeVo.getMaId()); - result += bmFileInfoMapper.deleteBmFileInfoByBizInfo(bmFileInfo); + List list = bmFileInfoMapper.selectBmFileInfoList(bmFileInfo); + if (!CollectionUtils.isEmpty(list)) { + result += bmFileInfoMapper.deleteBmFileInfoByBizInfo(bmFileInfo); + } } return result; } @@ -2586,7 +2600,30 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { int result = 0; //先查询退料详情信息 List applyDetails = backApplyInfoMapper.selectBackApplyDetailsListByTaskId(backApplyInfo); - if (CollectionUtils.isEmpty(applyDetails)) { + // 先查第四层类型 + backApplyInfo.setAgreementId(agreementId); + List listL4 = mapper.getUseTypeTreeL4(backApplyInfo); + if (CollectionUtils.isNotEmpty(applyDetails)) { + for (BackApplyDetails applyDetail : applyDetails) { + if (CollectionUtils.isNotEmpty(listL4)) { + for (TypeTreeNode typeTreeNode : listL4) { + if(applyDetail.getTypeId()!=null){ + if (applyDetail.getTypeId().equals(typeTreeNode.getTypeId())) { + if (applyDetail.getPreNum().compareTo(typeTreeNode.getNum()) > 0) { + String nameModel = StringUtils.joinWith("-", applyDetail.getTypeName(), applyDetail.getTypeModel()); + // 1. 先获取BigDecimal数值,空值兜底 + BigDecimal decimal = Optional.ofNullable(typeTreeNode.getNum()).orElse(BigDecimal.ZERO); + // 2. 核心处理:去除末尾的0(无小数则变成整数,有小数保留原数),避免科学计数法 + String num = decimal.stripTrailingZeros().toPlainString(); + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), nameModel + "的退料数量不能大于在用数量" + num); + } + } + } + + } + } + } + } else { return AjaxResult.error("退料物资为空,无法进行提交"); } for (BackApplyDetails applyDetail : applyDetails) {