解决bug:解决其它入库单据中的再次保存的空指针异常

This commit is contained in:
jishenghua
2024-05-15 22:22:34 +08:00
parent 8950be4c6c
commit a57ece0a36

View File

@@ -278,12 +278,14 @@ public class DepotItemService {
DepotItem depotItem = new DepotItem(); DepotItem depotItem = new DepotItem();
try{ try{
DepotHead depotHead = depotHeadService.getDepotHead(linkStr); DepotHead depotHead = depotHeadService.getDepotHead(linkStr);
if(null!=depotHead && null!=depotHead.getId()) {
DepotItemExample example = new DepotItemExample(); DepotItemExample example = new DepotItemExample();
example.createCriteria().andHeaderIdEqualTo(depotHead.getId()).andMaterialExtendIdEqualTo(meId).andIdEqualTo(linkId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); example.createCriteria().andHeaderIdEqualTo(depotHead.getId()).andMaterialExtendIdEqualTo(meId).andIdEqualTo(linkId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
List<DepotItem> list = depotItemMapper.selectByExample(example); List<DepotItem> list = depotItemMapper.selectByExample(example);
if(list!=null && list.size()>0) { if(list!=null && list.size()>0) {
depotItem = list.get(0); depotItem = list.get(0);
} }
}
}catch(Exception e){ }catch(Exception e){
JshException.readFail(logger, e); JshException.readFail(logger, e);
} }
@@ -543,18 +545,20 @@ public class DepotItemService {
//在更新模式进行状态赋值 //在更新模式进行状态赋值
String unit = rowObj.get("unit").toString(); String unit = rowObj.get("unit").toString();
Long preHeaderId = depotHeadService.getDepotHead(linkStr).getId(); Long preHeaderId = depotHeadService.getDepotHead(linkStr).getId();
if(null!=preHeaderId) {
//前一个单据的数量 //前一个单据的数量
BigDecimal preNumber = getPreItemByHeaderIdAndMaterial(linkStr, depotItem.getMaterialExtendId(), depotItem.getLinkId()).getOperNumber(); BigDecimal preNumber = getPreItemByHeaderIdAndMaterial(linkStr, depotItem.getMaterialExtendId(), depotItem.getLinkId()).getOperNumber();
//除去此单据之外的已入库|已出库 //除去此单据之外的已入库|已出库
BigDecimal realFinishNumber = getRealFinishNumber(currentSubType, depotItem.getMaterialExtendId(), depotItem.getLinkId(), preHeaderId, headerId, unitInfo, unit); BigDecimal realFinishNumber = getRealFinishNumber(currentSubType, depotItem.getMaterialExtendId(), depotItem.getLinkId(), preHeaderId, headerId, unitInfo, unit);
if(depotItem.getOperNumber().add(realFinishNumber).compareTo(preNumber)>0) { if (depotItem.getOperNumber().add(realFinishNumber).compareTo(preNumber) > 0) {
if(!systemConfigService.getOverLinkBillFlag()) { if (!systemConfigService.getOverLinkBillFlag()) {
throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_CODE, throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_CODE,
String.format(ExceptionConstants.DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_MSG, barCode)); String.format(ExceptionConstants.DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_MSG, barCode));
} }
} }
} }
} }
}
if (StringUtil.isExist(rowObj.get("unitPrice"))) { if (StringUtil.isExist(rowObj.get("unitPrice"))) {
BigDecimal unitPrice = rowObj.getBigDecimal("unitPrice"); BigDecimal unitPrice = rowObj.getBigDecimal("unitPrice");
depotItem.setUnitPrice(unitPrice); depotItem.setUnitPrice(unitPrice);