Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.9.90_4.9.91.sql =================================================================== diff -u -r33654 -r33687 --- ssts-web/src/main/webapp/dataUpdater/sqls/4.9.90_4.9.91.sql (.../4.9.90_4.9.91.sql) (revision 33654) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.9.90_4.9.91.sql (.../4.9.90_4.9.91.sql) (revision 33687) @@ -1 +1,2 @@ -update DisposableGoods set whetherToCharge = '是' where whetherToCharge is null; \ No newline at end of file +update DisposableGoods set whetherToCharge = '是' where whetherToCharge is null; +update SupplyRoomConfig set isFtOnlyImplantConvert = 1 where supplyRoomType = 0; \ No newline at end of file Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java =================================================================== diff -u -r32956 -r33687 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java (.../SupplyRoomConfig.java) (revision 32956) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java (.../SupplyRoomConfig.java) (revision 33687) @@ -388,6 +388,11 @@ */ private Boolean isTousseDgMergeConvert = false; /** + * 只含植入物的外来器械包是否转换申请单BJ307YY-98 + */ + private Boolean isFtOnlyImplantConvert = true; + + /** * 是否清洗时间结束后装配 */ private Boolean isPackingAfterWashTimeEnd = true; @@ -1233,5 +1238,16 @@ public void setReviewSterilizationTime(Integer reviewSterilizationTime) { this.reviewSterilizationTime = reviewSterilizationTime; } + + public Boolean getIsFtOnlyImplantConvert() { + if(isFtOnlyImplantConvert == null){ + return true; + } + return isFtOnlyImplantConvert; + } + + public void setIsFtOnlyImplantConvert(Boolean isFtOnlyImplantConvert) { + this.isFtOnlyImplantConvert = isFtOnlyImplantConvert; + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java =================================================================== diff -u -r32966 -r33687 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 32966) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 33687) @@ -904,6 +904,11 @@ if("是".equals(isDgConvertApplicationStr)){ isDgConvertApplication = true; } + String isFtOnlyImplantConvertStr = rq.getParameter("isFtOnlyImplantConvert"); + boolean isFtOnlyImplantConvert = false; + if("是".equals(isFtOnlyImplantConvertStr)){ + isFtOnlyImplantConvert = true; + } String isTousseDgMergeConvertStr = rq.getParameter("isTousseDgMergeConvert"); boolean isTousseDgMergeConvert = false; if("是".equals(isTousseDgMergeConvertStr)){ @@ -921,6 +926,7 @@ supplyRoomConfig.setNoMergeApplicationTypes(noMergeApplicationTypes); supplyRoomConfig.setIsPackingAfterWashTimeEnd(isPackingAfterWashTimeEnd); supplyRoomConfig.setIsDgConvertApplication(isDgConvertApplication); + supplyRoomConfig.setIsFtOnlyImplantConvert(isFtOnlyImplantConvert); supplyRoomConfig.setIsTousseDgMergeConvert(isTousseDgMergeConvert); supplyRoomConfig.setDamagedTousseAtCost(damagedTousseAtCost); supplyRoomConfig.setInsideTousseMaterialOutCost(insideTousseMaterialOutCost); Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r33413 -r33687 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 33413) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 33687) @@ -2993,6 +2993,7 @@ boolean foreignTousseAndInsideTousseMergeToTheSameComboApplicationAfterUseRecordConvert = CssdUtils.getSystemSetConfigByNameBool("foreignTousseAndInsideTousseMergeToTheSameComboApplicationAfterUseRecordConvert"); + SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); for (Long id : ids) { UseRecord useRecord = get(id); useRecordList.add(useRecord); @@ -3143,6 +3144,14 @@ if(tousseInstance.isDiscarded()){ continue; } + + //“只含植入物的外来器械包是否转换申请单” + //BJ307YY-98 外来器械包只有植入物的情况下,填写使用记录后,转换申请单时不进行转换的改进 + Boolean isFtOnlyImplantConvert = supplyRoomConfig.getIsFtOnlyImplantConvert(); + if(!isFtOnlyImplantConvert && isForeignTousseOnlyImplant(tousseDefinition)){ + continue; + } + ForeignTousseApplication foreignTousseApplication = null; //使用记录转换成申请单的时候把外来器械的申请单“回收状态”改为“待回收” if(tousseInstance.getForeignTousseApp_id() != null){ @@ -3215,7 +3224,6 @@ } }else{ if(foreignTousseApplication != null){ - SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); //如果科室供应室的"外来器械是否二次回收"为"否"时,回收状态设置为"已回收":KPSZXYY-43 外来器械包增加设置使用记录转换申请后不做二次回收 if(StringUtils.equals(Constants.STR_NO, supplyRoomConfig.getForeignTousseIsSecondRecycle())){ if(InvoicePlan.RECYCLINGSTATUS_AWAITRECEIVED.equals(foreignTousseApplication.getRecyclingStatus())){ @@ -3351,7 +3359,33 @@ map.put("applyTousseNameToMaxUrgentLevelMap",applyTousseNameToMaxUrgentLevelMap); return map; } + /** + * 判断外来器械包的材料是否全是植入物 + * @param tousseDefinition + * @return + */ + private boolean isForeignTousseOnlyImplant(TousseDefinition tousseDefinition) { + if(tousseDefinition == null || tousseDefinition.getId() == null){ + return false; + } + String sql = String.format("select count(*) from %s td " + + "join %s mi on mi.tousse_id = td.id " + + "join %s md on md.id = mi.materialDefinition_id where md.isImplant= '%s' and td.id = %s", + TousseDefinition.class.getSimpleName(), + MaterialInstance.class.getSimpleName(), + MaterialDefinition.class.getSimpleName(), + Constants.STR_NO, + tousseDefinition.getId()); + int unImplantCont = objectDao.countBySql(sql); + if(unImplantCont > 0){ + return false; + } + return true; + } + + + /** * 使用记录转换外来器械申请单,根据植入物的使用情况,决定回收状态 SZSDSRMYY-70 如果只有包含植入物的物品且植入物都使用完,状态保持为待接收,否则变为待回收, * @param foreignTousseApplicationId * @return