Index: ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManagerImpl.java =================================================================== diff -u -r28014 -r28067 --- ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManagerImpl.java (.../ReturnGoodsRecordManagerImpl.java) (revision 28014) +++ ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManagerImpl.java (.../ReturnGoodsRecordManagerImpl.java) (revision 28067) @@ -1132,7 +1132,8 @@ // 生成发货单明细 List tousseItems = new ArrayList(); recyclingApplication.setApplicationItems(tousseItems); - + //消毒物品包定义list集合 + List disinfectTdList = null; BigDecimal disposableGoodsFluctuation = supplyRoomConfigManager.getDisposableGoodsFluctuationByOrgUnitCoding(returnGoodsRecord.getDepartCoding()); for(ReturnGoodsItem returnGoodsItem : returnGoodsRecord.getReturnGoodsItems()){ if(foreignTousseReturnGoodsItems != null && foreignTousseReturnGoodsItems.contains(returnGoodsItem)){ @@ -1170,7 +1171,14 @@ item.setPrice(fluctuationPrice); item.setRowPrice(MathTools.mul(returnGoodsItem.getAmount(),fluctuationPrice).doubleValue()); }else{ + //如果为消毒物品,则该包定义为新建的包定义,但invoicePlanId还未赋值(因为申请单 还未创建,在后面的代码里创建申请单后,再对该包定义的invoicePlanId进行赋值) TousseDefinition td = returnGoodsItem.getTousseDefinition(); + if(td.isDisinfection()){ + if(disinfectTdList == null){ + disinfectTdList = new ArrayList(); + } + disinfectTdList.add(td); + } if(td != null){ tousseType = td.getTousseType(); item.setTousseDefinitionId(td.getId()); @@ -1196,8 +1204,9 @@ item.setInvoicePlan(recyclingApplication); } - if(CollectionUtils.isEmpty(tousseItems)) + if(CollectionUtils.isEmpty(tousseItems)){ return false; + } // 生成发货单信息 if ("一次性物品".equals(returnGoodsRecord.getType())) { @@ -1233,9 +1242,23 @@ recyclingApplication.setDisposablePriceFluctuation(disposableGoodsFluctuation); recyclingApplicationManager.saveOrUpdate(recyclingApplication); returnGoodsRecord.setRecyclingApplication(recyclingApplication); + //设置消毒物品包定义的invoicePlanId + setTousseDefinitionInvoicePlanId(disinfectTdList, recyclingApplication.getId()); return true; } + /** + * 设置消毒物品包定义的invoicePlanId + * @param disinfectTdList 消毒物品包定义集合 + * @param invoicePlanId 生成的申请单id + */ + private void setTousseDefinitionInvoicePlanId(List disinfectTdList,Long invoicePlanId){ + if(CollectionUtils.isNotEmpty(disinfectTdList)){ + objectDao.excuteSQL(String.format("update %s set invoicePlanID=% where %s", TousseDefinition.class.getSimpleName(),invoicePlanId, + disinfectTdList.stream().map(TousseDefinition::getId).collect(Collectors.toList()))); + } + } + /* * @Override public void signReturnGoodsRecord(ReturnGoodsRecord * returnGoodsRecord) { saveOrUpdate(returnGoodsRecord);