Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r27707 -r28029 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 27707) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 28029) @@ -794,9 +794,10 @@ /** * 是否发货,如果是借物单的话一定要发货:jira问题:GZS12RMYY-12 启用器械包是否发货功能,设置为否的物品借物单无发货任务(通用功能) + * 如果是【物品预约单】无论包定义的是否发货的属性是什么值,也将申请项的是否发货设置为“是”(DGZYY-166 手术室器械包处理流程改造) */ String isInvoice = td.getIsInvoice(); - if (application.isBorrowingSingle()) { + if (application.isBorrowingSingle() || application.isGoodsReservationApplication()) { isInvoice = com.forgon.Constants.STR_YES; } item.setIsInvoice(isInvoice); @@ -3872,6 +3873,10 @@ application.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); application.setReturnStatus(InvoicePlan.RETURN_STATUS_UNRETURNED); application.setOrderByFiled(InvoicePlan.RECYCLING_AWAITRECYCLE); + } else if (InvoicePlan.TYPE_GOODS_RESERVATION_FORM.equals(application.getType())) { + // 【物品预约单】申请后即可发货,不需要走回收、装配、灭菌流程,类似借物单(DGZYY-166 手术室器械包处理流程改造) + application.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); + application.setOrderByFiled(InvoicePlan.RECYCLING_AWAITRECYCLE); } else { if (committedStatus && (StringUtils.isBlank(application.getDeliverStatus()) || InvoicePlan.DELIVERSTATUS_AWAITDELIVER Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java =================================================================== diff -u -r27898 -r28029 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 27898) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 28029) @@ -708,7 +708,7 @@ //默认场景() String result = "(case " + - "when ("+ invoicePlanTableAliasName +".type='"+ InvoicePlan.TYPE_BORROWINGSINGLE +"' or "+ invoicePlanTableAliasName +".type='"+ InvoicePlan.TYPE_PROXYDISINFECTION +"') " + + "when ("+ invoicePlanTableAliasName +".type='"+ InvoicePlan.TYPE_BORROWINGSINGLE +"' or "+ invoicePlanTableAliasName +".type='"+ InvoicePlan.TYPE_PROXYDISINFECTION +"' or "+ invoicePlanTableAliasName +".type='"+ InvoicePlan.TYPE_GOODS_RESERVATION_FORM +"') " + "then "+ tousseItemTableAliasName +".amount " + "else case " + "when "+ tousseItemTableAliasName +".tousseType = '"+ TousseDefinition.PACKAGE_TYPE_INSIDE +"' or "+ tousseItemTableAliasName +".tousseType = '"+ @@ -1035,16 +1035,31 @@ output.close(); // 请求返回内容 //TODO 试试gbk - InputStreamReader isr = new InputStreamReader( - conn.getInputStream(), charset); - BufferedReader br = new BufferedReader(isr); - String str = null; - while ((str = br.readLine()) != null) { - sb.append(str + "\n"); + if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){ + InputStreamReader isr = new InputStreamReader( + conn.getInputStream(), charset); + BufferedReader br = new BufferedReader(isr); + String str = null; + while ((str = br.readLine()) != null) { + sb.append(str + "\n"); + } + br.close(); + isr.close(); + logger.debug("result="+ sb); + } else { + // 如果服务器返回的HTTP状态不是HTTP_OK,则表示发生了错误, + // 此时可以通过如下方法了解错误原因。 + InputStreamReader isr = new InputStreamReader( + conn.getErrorStream(), charset); + BufferedReader br = new BufferedReader(isr); + String str = null; + while ((str = br.readLine()) != null) { + sb.append(str + "\n"); + } + br.close(); + isr.close(); + logger.debug("error result="+ sb); } - br.close(); - isr.close(); - logger.debug("result="+ sb); } catch (Exception e) { e.printStackTrace(); }finally{ Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionHelper.java =================================================================== diff -u -r23826 -r28029 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionHelper.java (.../TousseDefinitionHelper.java) (revision 23826) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionHelper.java (.../TousseDefinitionHelper.java) (revision 28029) @@ -107,6 +107,10 @@ case InvoicePlan.TYPE_COMBO_FORM: goodType = "combo"; break; + // 物品预约单申请物品类型和器械包申请单一致(DGZYY-166 手术室器械包处理流程改造) + case InvoicePlan.TYPE_GOODS_RESERVATION_FORM: + goodType = TousseDefinition.PACKAGE_TYPE_INSIDE; + break; default: goodType = applicationFormType; } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java =================================================================== diff -u -r27811 -r28029 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java (.../InvoicePlan.java) (revision 27811) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java (.../InvoicePlan.java) (revision 28029) @@ -426,6 +426,10 @@ public final static String TYPE_QUALITY_MONITOR_RECYCLE_APPLICATION = "质量监测回收申请单";//质量监测业务创建的申请单,不用发货 public final static String TYPE_OPERATION_RESERVATION_APPLICATION = "手术预约申请单"; public final static String TYPE_EXPENSIVEGOODS_FORM = "高值耗材申请单"; + /** + * 物品预约单(DGZYY-166手术室器械包处理流程改造) + */ + public final static String TYPE_GOODS_RESERVATION_FORM = "物品预约单"; //申请单的一次性物品与器械包是合并(即通用申请单)在一起还是分开(器械包申请单、消毒物品申请单、一次性物品申请单) /** @@ -1218,6 +1222,16 @@ public boolean isProxyDisinfection(){ return TYPE_PROXYDISINFECTION.equals(type); } + + /** + * 判断是否物品预约单 + * @return + */ + @Transient + public boolean isGoodsReservationApplication(){ + return TYPE_GOODS_RESERVATION_FORM.equals(type); + } + public String getHandleDepartCoding() { return handleDepartCoding; } Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java =================================================================== diff -u -r27995 -r28029 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java (.../InvoiceOptimizeManagerImpl.java) (revision 27995) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java (.../InvoiceOptimizeManagerImpl.java) (revision 28029) @@ -2362,7 +2362,8 @@ InvoicePlan.TYPE_COMBO_FORM, InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM, InvoicePlan.TYPE_BORROWINGSINGLE, - InvoicePlan.TYPE_RECYCLINGCREATE_APPLICATION + InvoicePlan.TYPE_RECYCLINGCREATE_APPLICATION, + InvoicePlan.TYPE_GOODS_RESERVATION_FORM }); //对器械包按是否回收进行分组(先不按是否回收来分组了,统一查询),申请单查询条件也暂时不按回收状态过滤了 @@ -2499,7 +2500,7 @@ } int waitSendAmount = CssdUtils.getWaitDeliverAmount2(tousseItem, invoiceOrigin, afterRecyclingTousseDeliver, - (invoicePlan.isProxyDisinfection() || invoicePlan.isBorrowingSingle()), objectDao); + (invoicePlan.isProxyDisinfection() || invoicePlan.isBorrowingSingle() || invoicePlan.isGoodsReservationApplication()), objectDao); int needSendAmount = MathTools.sub(waitSendAmount, tousseItem.getSendOutAmount()).intValue(); if(needSendAmount <= 0){ continue; Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java =================================================================== diff -u -r27437 -r28029 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 27437) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 28029) @@ -608,7 +608,7 @@ } } //如果单类型与物品类型出现不相匹配的时,给出失败的提示 - if(recyclingApplication.isTousseAppliaction()){ + if(recyclingApplication.isTousseAppliaction() || recyclingApplication.isGoodsReservationApplication()){ //1.器械包申请单必须有且只有器械包、消毒物品、敷料包其中的一种类型物品,不允许有其它类型的物品 if(!tousseTypesForTousseItem.contains(TousseDefinition.PACKAGE_TYPE_INSIDE) && !tousseTypesForTousseItem.contains(TousseDefinition.PACKAGE_TYPE_DISINFECTION) @@ -828,7 +828,8 @@ //器械包申请单的物品视图是否分成两个grid boolean tousseApplicationFormGridSplit = false; if (CssdUtils.getSystemSetConfigByNameBool("tousseApplicationFormGridSplit", false) - && InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM.equals(applicationFormType)) { + && (InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM.equals(applicationFormType) + || InvoicePlan.TYPE_GOODS_RESERVATION_FORM.equals(applicationFormType))) { tousseApplicationFormGridSplit = true; }