Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r32193 -r32257 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 32193) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 32257) @@ -1845,7 +1845,7 @@ * @param applyTousseNameToMaxUrgentLevelMap */ private void createApplicationItems(RecyclingApplication recyclingApplication, Map tousseNameAndAmount, - Map newDiposableGoodMap,double dpf,Map applyUrgentTousseMap, + Map newDiposableGoodMap,double dpf,Map applyUrgentTousseMap, Map applyTousseNameToUrgentAmountMap,Map applyTousseNameToMaxUrgentLevelMap) { //根据现有的物品申请项查出对应绑定的物品作为新加的申请项(同器械包/消毒物品的数量进行叠加) List newAppendTousseItemListFromBinding = new ArrayList(); @@ -1946,9 +1946,10 @@ } //如果一次性物品map不为空,遍历按处理科室拆分后的一次性物品map if(newDiposableGoodMap != null && newDiposableGoodMap.size()>0){ - for (Entry entry : newDiposableGoodMap.entrySet()) { + for (Entry entry : newDiposableGoodMap.entrySet()) { TousseItem tousseItem = new TousseItem(); - String dgName = entry.getKey(); + DisposableGoods disposableGoods = entry.getKey(); + String dgName = disposableGoods.getShowName(); tousseItem.setTousseName(dgName); tousseItem.setUrgentAmount(MapUtils.isNotEmpty(applyTousseNameToUrgentAmountMap) ? applyTousseNameToUrgentAmountMap.get(dgName) : null); tousseItem.setUrgentLevelObj(applyTousseNameToMaxUrgentLevelMap != null ? applyTousseNameToMaxUrgentLevelMap.get(dgName) : null); @@ -1958,9 +1959,9 @@ tousseItem.setInvoicePlan(recyclingApplication); tousseItem.setDiposable(TousseItem.DIPOSABLE_YES); tousseItem.setTousseType(TousseItem.TYPE_DIPOSABLE_GOODS); - String name = CssdUtils.getGoodsNameAndSp(dgName).optString("materialName"); ; - String sp = CssdUtils.getGoodsNameAndSp(dgName).optString("specification"); - DisposableGoods disposableGoods = diposableGoodsManager.get(name, sp); + //String name = CssdUtils.getGoodsNameAndSp(dgName).optString("materialName"); ; + //String sp = CssdUtils.getGoodsNameAndSp(dgName).optString("specification"); + //DisposableGoods disposableGoods = diposableGoodsManager.get(name, sp); if(disposableGoods != null){ tousseItem.setDisposableGoodsId(disposableGoods.getId()); Double price = disposableGoods.getReferencePrice(); @@ -6537,7 +6538,7 @@ */ @Override public List createRecyclingApplicationByTousse( - Map tousseNameAndAmountMap,Map diposableGoodMap, String applicant, + Map tousseNameAndAmountMap,Map diposableGoodMap, String applicant, String depart, String departCoding, String hospitalNumber, String remark, Map tousseInstanceMap,Date applicationCreateDate,String operationRoom,String sterilizationMode,double dpf,String invoicePlanType, Map applyUrgentTousseMap,Map applyTousseNameToUrgentAmountMap,Map applyTousseNameToMaxUrgentLevelMap,Long useRecordId) { @@ -6547,19 +6548,25 @@ //根据申请科室、器械包与一次性物品及其处理的供应室确定一共涉及需要多少个处理的供应室然后按处理科室进行拆分 //如果需要转换的处理科室为多少个,则需要对应生成多少个申请单,一个申请单对应一个处理科室 List> handleDepartMapList = getHandleDepartMapList(tousseNameAndAmountMap, diposableGoodMap, depart, departCoding); + Map disposableGoodsMap = new HashMap(); + if(CollectionUtils.isNotEmpty(diposableGoodMap.keySet())){ + for (DisposableGoods disposableGoods : diposableGoodMap.keySet()) { + disposableGoodsMap.put(disposableGoods.getId(), disposableGoods); + } + } for(Map handleDepartMap : handleDepartMapList){ //按处理科室拆后的器械包及数量map Map newTousseNameAndAmountMap = new HashMap(); //按处理科室拆后的器械包及数量map - Map newDiposableGoodMap = new HashMap(); + Map newDiposableGoodMap = new HashMap(); @SuppressWarnings("unchecked") List tousseItemList = (List)handleDepartMap.get("tousseItemList"); if(CollectionUtils.isNotEmpty(tousseItemList)){ for(TousseItem ti : tousseItemList){ if(TousseDefinition.PACKAGE_TYPE_INSIDE.equals(ti.getTousseType())){ newTousseNameAndAmountMap.put(ti.getTousseDefinitionId() + "_" + ti.getTousseName(), ti.getAmount()); }else if(TousseItem.TYPE_DIPOSABLE_GOODS.equals(ti.getTousseType())){ - newDiposableGoodMap.put(ti.getTousseName(), ti.getAmount()); + newDiposableGoodMap.put(disposableGoodsMap.get(ti.getDisposableGoodsId()), ti.getAmount()); } } } @@ -6977,7 +6984,7 @@ * @param departCoding 申请科室编码 * @return List> 结果格式如:[{handleDepart:"",handleDepartCoding:"",tousseItemList:[{tousseName:"",disposable:"",tousseDefinitionId:1,disposabledGoodsId:0,amount:10}],}] */ - private List> getHandleDepartMapList(Map tousseNameAndAmountMap,Map diposableGoodMap, + private List> getHandleDepartMapList(Map tousseNameAndAmountMap,Map diposableGoodMap, String depart, String departCoding){ List> handleDepartMapList = new ArrayList>(); @@ -7030,12 +7037,12 @@ if(map.get("tousseItemList") != null){ @SuppressWarnings("unchecked") List tousseItemList = (List)map.get("tousseItemList"); - TousseItem tousseItem = newTousseItem(tousseName,tousseNameAndAmountMap.get(tousseName),TousseDefinition.PACKAGE_TYPE_INSIDE,td,TousseItem.DIPOSABLE_NO); + TousseItem tousseItem = newTousseItem(tousseName,tousseNameAndAmountMap.get(tousseName),TousseDefinition.PACKAGE_TYPE_INSIDE,td, null, TousseItem.DIPOSABLE_NO); tousseItemList.add(tousseItem); map.put("tousseItemList", tousseItemList); }else{ List tousseItemList = new ArrayList(); - TousseItem tousseItem = newTousseItem(tousseName,tousseNameAndAmountMap.get(tousseName),TousseDefinition.PACKAGE_TYPE_INSIDE,td,TousseItem.DIPOSABLE_NO); + TousseItem tousseItem = newTousseItem(tousseName,tousseNameAndAmountMap.get(tousseName),TousseDefinition.PACKAGE_TYPE_INSIDE,td, null, TousseItem.DIPOSABLE_NO); tousseItemList.add(tousseItem); map.put("tousseItemList", tousseItemList); } @@ -7050,7 +7057,7 @@ map.put("handleDepartCoding", handleTousses.getOrgUnitCode()); map.put("handleDepart", handleTousses.getOrgUnitName()); List tousseItemList = new ArrayList(); - TousseItem tousseItem = newTousseItem(tousseName,tousseNameAndAmountMap.get(tousseName),TousseDefinition.PACKAGE_TYPE_INSIDE,td,TousseItem.DIPOSABLE_NO); + TousseItem tousseItem = newTousseItem(tousseName,tousseNameAndAmountMap.get(tousseName),TousseDefinition.PACKAGE_TYPE_INSIDE,td, null, TousseItem.DIPOSABLE_NO); tousseItemList.add(tousseItem); map.put("tousseItemList", tousseItemList); handleDepartMapList.add(map); @@ -7061,7 +7068,7 @@ map.put("handleDepartCoding", handleTousses.getOrgUnitCode()); map.put("handleDepart", handleTousses.getOrgUnitName()); List tousseItemList = new ArrayList(); - TousseItem tousseItem = newTousseItem(tousseName,tousseNameAndAmountMap.get(tousseName),TousseDefinition.PACKAGE_TYPE_INSIDE,td,TousseItem.DIPOSABLE_NO); + TousseItem tousseItem = newTousseItem(tousseName,tousseNameAndAmountMap.get(tousseName),TousseDefinition.PACKAGE_TYPE_INSIDE,td, null, TousseItem.DIPOSABLE_NO); tousseItemList.add(tousseItem); map.put("tousseItemList", tousseItemList); handleDepartMapList.add(map); @@ -7099,20 +7106,21 @@ if(disposableGoodsHandlelist.size() == 1){ CssdHandleTousses handleTousses = disposableGoodsHandlelist.get(0); - for(String diposableGoodName : diposableGoodMap.keySet()){ + for(DisposableGoods disposableGoods : diposableGoodMap.keySet()){ + String diposableGoodName = disposableGoods.getShowName(); if(CollectionUtils.isNotEmpty(handleDepartMapList)){ boolean existsHandleDepartInList = false; for(Map map : handleDepartMapList){ if(StringUtils.equals(handleTousses.getOrgUnitCode(), (String)map.get("handleDepartCoding"))){ if(map.get("tousseItemList") != null){ @SuppressWarnings("unchecked") List tousseItemList = (List)map.get("tousseItemList"); - TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(diposableGoodName),TousseItem.TYPE_DIPOSABLE_GOODS,null,TousseItem.DIPOSABLE_YES); + TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(disposableGoods),TousseItem.TYPE_DIPOSABLE_GOODS,null, disposableGoods, TousseItem.DIPOSABLE_YES); tousseItemList.add(tousseItem); map.put("tousseItemList", tousseItemList); }else{ List tousseItemList = new ArrayList(); - TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(diposableGoodName),TousseItem.TYPE_DIPOSABLE_GOODS,null,TousseItem.DIPOSABLE_YES); + TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(disposableGoods),TousseItem.TYPE_DIPOSABLE_GOODS,null, disposableGoods, TousseItem.DIPOSABLE_YES); tousseItemList.add(tousseItem); map.put("tousseItemList", tousseItemList); } @@ -7127,7 +7135,7 @@ map.put("handleDepartCoding", handleTousses.getOrgUnitCode()); map.put("handleDepart", handleTousses.getOrgUnitName()); List tousseItemList = new ArrayList(); - TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(diposableGoodName),TousseItem.TYPE_DIPOSABLE_GOODS,null,TousseItem.DIPOSABLE_YES); + TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(disposableGoods),TousseItem.TYPE_DIPOSABLE_GOODS,null, disposableGoods, TousseItem.DIPOSABLE_YES); tousseItemList.add(tousseItem); map.put("tousseItemList", tousseItemList); handleDepartMapList.add(map); @@ -7137,7 +7145,7 @@ map.put("handleDepartCoding", handleTousses.getOrgUnitCode()); map.put("handleDepart", handleTousses.getOrgUnitName()); List tousseItemList = new ArrayList(); - TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(diposableGoodName),TousseItem.TYPE_DIPOSABLE_GOODS,null,TousseItem.DIPOSABLE_YES); + TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(disposableGoods),TousseItem.TYPE_DIPOSABLE_GOODS,null,disposableGoods,TousseItem.DIPOSABLE_YES); tousseItemList.add(tousseItem); map.put("tousseItemList", tousseItemList); handleDepartMapList.add(map); @@ -7156,16 +7164,16 @@ List tousseItemList = (List)map.get("tousseItemList"); //循环所有的一次性物品 - for(String diposableGoodName : diposableGoodMap.keySet()){ - TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(diposableGoodName),TousseItem.TYPE_DIPOSABLE_GOODS,null,TousseItem.DIPOSABLE_YES); + for(DisposableGoods diposableGoods : diposableGoodMap.keySet()){ + TousseItem tousseItem = newTousseItem(diposableGoods.getShowName(),diposableGoodMap.get(diposableGoods),TousseItem.TYPE_DIPOSABLE_GOODS,null,diposableGoods,TousseItem.DIPOSABLE_YES); tousseItemList.add(tousseItem); } map.put("tousseItemList", tousseItemList); }else{ List tousseItemList = new ArrayList(); //循环所有的一次性物品 - for(String diposableGoodName : diposableGoodMap.keySet()){ - TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(diposableGoodName),TousseItem.TYPE_DIPOSABLE_GOODS,null,TousseItem.DIPOSABLE_YES); + for(DisposableGoods diposableGoods : diposableGoodMap.keySet()){ + TousseItem tousseItem = newTousseItem(diposableGoods.getShowName(),diposableGoodMap.get(diposableGoods),TousseItem.TYPE_DIPOSABLE_GOODS,null,diposableGoods,TousseItem.DIPOSABLE_YES); tousseItemList.add(tousseItem); } map.put("tousseItemList", tousseItemList); @@ -7184,8 +7192,8 @@ map.put("handleDepart", disposableHandleTousses.getOrgUnitName()); List tousseItemList = new ArrayList(); //循环所有的一次性物品 - for(String diposableGoodName : diposableGoodMap.keySet()){ - TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(diposableGoodName),TousseItem.TYPE_DIPOSABLE_GOODS,null,TousseItem.DIPOSABLE_YES); + for(DisposableGoods diposableGoods : diposableGoodMap.keySet()){ + TousseItem tousseItem = newTousseItem(diposableGoods.getShowName(),diposableGoodMap.get(diposableGoods),TousseItem.TYPE_DIPOSABLE_GOODS,null,diposableGoods,TousseItem.DIPOSABLE_YES); tousseItemList.add(tousseItem); } map.put("tousseItemList", tousseItemList); @@ -7199,8 +7207,8 @@ map.put("handleDepart", disposableHandleTousses.getOrgUnitName()); List tousseItemList = new ArrayList(); //循环所有的一次性物品 - for(String diposableGoodName : diposableGoodMap.keySet()){ - TousseItem tousseItem = newTousseItem(diposableGoodName,diposableGoodMap.get(diposableGoodName),TousseItem.TYPE_DIPOSABLE_GOODS,null,TousseItem.DIPOSABLE_YES); + for(DisposableGoods diposableGoods : diposableGoodMap.keySet()){ + TousseItem tousseItem = newTousseItem(diposableGoods.getShowName(),diposableGoodMap.get(diposableGoods),TousseItem.TYPE_DIPOSABLE_GOODS,null,diposableGoods,TousseItem.DIPOSABLE_YES); tousseItemList.add(tousseItem); } map.put("tousseItemList", tousseItemList); @@ -7226,7 +7234,7 @@ * @param diposable * @return */ - private TousseItem newTousseItem(String tousseName , Integer amount , String tousseType ,TousseDefinition td , String diposable){ + private TousseItem newTousseItem(String tousseName , Integer amount , String tousseType ,TousseDefinition td , DisposableGoods disposableGoods, String diposable){ TousseItem tousseItem = new TousseItem(); tousseItem.setTousseName(tousseName); tousseItem.setAmount(amount); @@ -7236,6 +7244,9 @@ tousseItem.setTousseDefinitionId(td.getId()); tousseItem.setMaterialAmount(td.getMaterialAmount()); } + if(disposableGoods != null){ + tousseItem.setDisposableGoodsId(disposableGoods.getId()); + } return tousseItem; } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java =================================================================== diff -u -r32192 -r32257 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 32192) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 32257) @@ -12,6 +12,7 @@ import org.apache.commons.collections4.map.MultiValueMap; import com.forgon.directory.model.OrgUnit; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.foreigntousseapplication.ForeignTousseApplication; @@ -110,7 +111,7 @@ */ public List createRecyclingApplicationByTousse( Map applyTousseMap, - Map diposableGoodMap, String applicant, + Map diposableGoodMap, String applicant, String depart, String departCoding, String hospitalNumber, String remark, Map tousseInstanceMap, Date applicationDate, String operationRoom,String sterilizationMode,double dpf,String invoicePlanType, Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r32211 -r32257 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 32211) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 32257) @@ -2937,7 +2937,7 @@ Map applyCustomTousseMap = new HashMap(); //自定义器械包的加急数量,key为包定义的id,value为数量 Map applyUrgentCustomTousseMap = new HashMap(); - //一次性物品map(key为一次性物品定义名称,value为数量) + //一次性物品map(key为一次性物品定义ID,value为数量) Map applyDiposableGoodsMap = new HashMap(); List useRecordList = new ArrayList(); //器械包实例(如有标识牌时同时记录绑定的标识牌)条码,包定义为需要转申请单的才记录(key为包实例条码(如果有标识牌则还会新增一条key为标识牌条码的键值对元素),value为包定义id) @@ -2976,12 +2976,29 @@ " po inner join po.diposableGoodsItems where po.id=" + id); //使用记录的一次性物品 if(CollectionUtils.isNotEmpty(useDiposableGoodsItems)){ + Map disposableGoodsMap = new HashMap(); + List disposableGoodsIDList = new ArrayList(); for (UseDiposableGoodsItem di : useDiposableGoodsItems) { + disposableGoodsIDList.add(di.getDisposableGoodsId()); + } + @SuppressWarnings("unchecked") + List disposableGoodsList = objectDao.getCollection(DisposableGoods.class.getSimpleName(), "id", disposableGoodsIDList); + if(CollectionUtils.isNotEmpty(disposableGoodsList)){ + for (DisposableGoods disposableGoods : disposableGoodsList) { + disposableGoodsMap.put(disposableGoods.getId(), disposableGoods); + } + } + for (UseDiposableGoodsItem di : useDiposableGoodsItems) { + DisposableGoods disposableGoods = disposableGoodsMap.get(di.getDisposableGoodsId()); + if(disposableGoods == null || (disposableGoods.getTransferScale() != null && disposableGoods.getTransferScale().intValue() > 0)){ + // 对于设置了【申领单位转换单位系数】的一次性物品,无论科室供应室设置里的【一次性物品是否转换申请单】的值是什么,登记使用记录后都不转换成申请单。SSTS-443 + continue; + } Integer useAmount = applyDiposableGoodsMap.get(di.getName()); if(useAmount == null){ useAmount = 0; } - applyDiposableGoodsMap.put(di.getName(), useAmount + di.getAmount()); + applyDiposableGoodsMap.put(disposableGoods.getId()+"", useAmount + di.getAmount()); } } @@ -3451,7 +3468,8 @@ Map tousseBarcodeMap = (Map) useRecordsMap .get("recordid_tousseInstanceCodes"); //一次性物品(key为名称,value为数量) - Map applyDiposableGoodsMap = (Map)useRecordsMap.get("applyDiposableGoodsMap"); + Map applyDiposableGoodsIDMap = (Map)useRecordsMap.get("applyDiposableGoodsMap"); + Map applyDiposableGoodsMap = getApplyDiposableGoodsMap(applyDiposableGoodsIDMap); //器械包的加急数量,key为tousseName Map applyUrgentTousseMap = (Map) useRecordsMap .get("applyUrgentTousseMap"); @@ -3690,7 +3708,7 @@ if(!willMergeConvertApplication || !departCanMerge){ //创建器械包申请单 List recyclingApplicationList = recyclingApplicationManager.createRecyclingApplicationByTousse( - applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, + applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, tousseBarcodeMap,applicationCreateDate,operationRoom,null,dpf,InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM, applyUrgentTousseMap,applyTousseNameToUrgentAmountMap,applyTousseNameToMaxUrgentLevelMap,firstUseRecordId); @@ -3824,7 +3842,7 @@ if(!willMergeConvertApplication || !departCanMerge){ //创建器械包申请单 List recyclingApplicationList = recyclingApplicationManager.createRecyclingApplicationByTousse( - applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, + applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, tousseBarcodeMap,applicationCreateDate,null,null,dpf,InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM, applyUrgentTousseMap,applyTousseNameToUrgentAmountMap,applyTousseNameToMaxUrgentLevelMap,firstUseRecordId); @@ -3924,7 +3942,7 @@ }else{ //创建器械包申请单 List recyclingApplicationList = recyclingApplicationManager.createRecyclingApplicationByTousse( - applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, + applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, tousseBarcodeMap,applicationCreateDate,operationRoom,null,dpf,InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM, applyUrgentTousseMap,applyTousseNameToUrgentAmountMap,applyTousseNameToMaxUrgentLevelMap,firstUseRecordId); @@ -4031,7 +4049,7 @@ if(!willMergeConvertApplication || !departCanMerge){ //创建器械包申请单 List recyclingApplicationList = recyclingApplicationManager.createRecyclingApplicationByTousse( - applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, + applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, tousseBarcodeMap,applicationCreateDate,operationRoom,null,dpf,InvoicePlan.TYPE_COMBO_FORM, applyUrgentTousseMap,applyTousseNameToUrgentAmountMap,applyTousseNameToMaxUrgentLevelMap,firstUseRecordId); @@ -4162,7 +4180,7 @@ if(!willMergeConvertApplication || !departCanMerge){ //创建器械包申请单 List recyclingApplicationList = recyclingApplicationManager.createRecyclingApplicationByTousse( - applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, + applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, tousseBarcodeMap,applicationCreateDate,null,null,dpf,InvoicePlan.TYPE_COMBO_FORM, applyUrgentTousseMap,applyTousseNameToUrgentAmountMap,applyTousseNameToMaxUrgentLevelMap,firstUseRecordId); @@ -4259,7 +4277,7 @@ } }else{ List recyclingApplicationList = recyclingApplicationManager.createRecyclingApplicationByTousse( - applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, + applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, tousseBarcodeMap,applicationCreateDate,operationRoom,null,dpf,InvoicePlan.TYPE_COMBO_FORM, applyUrgentTousseMap,applyTousseNameToUrgentAmountMap,applyTousseNameToMaxUrgentLevelMap,firstUseRecordId); @@ -4317,7 +4335,7 @@ }else{ //否则一次性物品是否转换申请单为否 if(!isDgConvertApplication){ - applyDiposableGoodsMap = new HashMap(); + applyDiposableGoodsMap = new HashMap(); } //只有当使用记录的数量为1且使用记录的手术间不为空时才按手术间进行合并 if(UseRecord.CONVERT_RECYCLINGMANAGER_MERGE_REGULAR_OPERATIONROOM.equals(useRecordConvertRecyclingApplicationMergeRegular) @@ -4369,7 +4387,7 @@ if(!willMergeConvertApplication || !departCanMerge){ //创建器械包申请单 List recyclingApplicationList = recyclingApplicationManager.createRecyclingApplicationByTousse( - applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, + applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, tousseBarcodeMap,applicationCreateDate,operationRoom,null,dpf,InvoicePlan.TYPE_COMBO_FORM, applyUrgentTousseMap,applyTousseNameToUrgentAmountMap,applyTousseNameToMaxUrgentLevelMap,firstUseRecordId); @@ -4500,7 +4518,7 @@ if(!willMergeConvertApplication || !departCanMerge){ //创建器械包申请单 List recyclingApplicationList = recyclingApplicationManager.createRecyclingApplicationByTousse( - applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, + applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, tousseBarcodeMap,applicationCreateDate,null,null,dpf,InvoicePlan.TYPE_COMBO_FORM, applyUrgentTousseMap,applyTousseNameToUrgentAmountMap,applyTousseNameToMaxUrgentLevelMap,firstUseRecordId); @@ -5029,6 +5047,41 @@ } /** + * Map 转换为 Map + * @param applyDiposableGoodsIDMap + * @return + */ + @SuppressWarnings("unchecked") + private Map getApplyDiposableGoodsMap( + Map applyDiposableGoodsIDMap) { + Map applyDiposableGoodsMap = new HashMap(); + if(applyDiposableGoodsIDMap == null || applyDiposableGoodsIDMap.isEmpty()){ + return applyDiposableGoodsMap; + } + Map disposableGoodsMap = new HashMap(); + List disposableGoodsIDList = new ArrayList(); + for (String disposableGoodsID : applyDiposableGoodsIDMap.keySet()) { + disposableGoodsIDList.add(Long.valueOf(disposableGoodsID)); + } + List list = objectDao.getCollection(DisposableGoods.class.getSimpleName(), "id", disposableGoodsIDList); + if(CollectionUtils.isEmpty(list)){ + return applyDiposableGoodsMap; + } + for (DisposableGoods disposableGoods : list) { + disposableGoodsMap.put(disposableGoods.getId(), disposableGoods); + } + for (String disposableGoodsIDStr : applyDiposableGoodsIDMap.keySet()) { + Integer amount = applyDiposableGoodsIDMap.get(disposableGoodsIDStr); + DisposableGoods disposableGoods = disposableGoodsMap.get(Long.valueOf(disposableGoodsIDStr)); + if(amount != null && disposableGoods != null){ + applyDiposableGoodsMap.put(disposableGoods, amount); + } + } + return applyDiposableGoodsMap; + } + + + /** * 低温物品转换申请单 * @param useRecordList * @param sterilizationModeToTousseNameToAmountMap @@ -5351,7 +5404,7 @@ if(!willMergeConvertApplication || !departCanMerge){ //创建器械包申请单 List recyclingApplicationList = recyclingApplicationManager.createRecyclingApplicationByTousse( - applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, + applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, tousseBarcodeToTdIdMap,applicationCreateDate,operationRoom,sterilizationMode,dpf,invoicePlanTypeAfterTousseConvert, applyUrgentTousseMap,applyTousseNameToUrgentAmountMap,applyTousseNameToMaxUrgentLevelMap,firstUseRecordId); @@ -5461,7 +5514,7 @@ if(!willMergeConvertApplication || !departCanMerge){ //创建器械包申请单 List recyclingApplicationList = recyclingApplicationManager.createRecyclingApplicationByTousse( - applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, + applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, tousseBarcodeToTdIdMap,applicationCreateDate,null,sterilizationMode,dpf,invoicePlanTypeAfterTousseConvert, applyUrgentTousseMap,applyTousseNameToUrgentAmountMap,applyTousseNameToMaxUrgentLevelMap,firstUseRecordId); @@ -5537,7 +5590,7 @@ }else{ //创建新的申请单(可能是器械包申请单、也可能是通用申请单) List recyclingApplicationList = recyclingApplicationManager.createRecyclingApplicationByTousse( - applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, + applyTousseMap,new HashMap(), applicant, depart, departCoding, hospitalNumbers, remark, tousseBarcodeToTdIdMap,applicationCreateDate,operationRoom,sterilizationMode,dpf,invoicePlanTypeAfterTousseConvert, applyUrgentTousseMap,applyTousseNameToUrgentAmountMap,applyTousseNameToMaxUrgentLevelMap,firstUseRecordId);