Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r28673 -r28714 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 28673) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 28714) @@ -6773,11 +6773,27 @@ String invoicePlanType = rs.getString("type"); String materialsMD5 = rs.getString("materialsMD5"); String tousseType = rs.getString("tousseType"); - Integer invoiceAmountMode = (Integer)rs.getObject("invoiceAmountMode"); + + //下面几行注释的代码不兼容oracle + /*Integer invoiceAmountMode = (Integer)rs.getObject("invoiceAmountMode"); Integer amount = (Integer)rs.getObject("amount"); Integer recyclingAmount = (Integer)rs.getObject("recyclingAmount"); Integer tallyAmount = (Integer)rs.getObject("tallyAmount"); - Integer sendOutAmount = (Integer)rs.getObject("sendOutAmount"); + Integer sendOutAmount = (Integer)rs.getObject("sendOutAmount");*/ + + //以下10行代码解决sqlserver与oracle兼容问题,先转成number型,然后再取对应的int,long,double的值 + Number invoiceAmountModeNumber = (Number)rs.getObject("invoiceAmountMode"); + Number amountNumber = (Number)rs.getObject("amount"); + Number recyclingAmountNumber = (Number)rs.getObject("recyclingAmount"); + Number tallyAmountNumber = (Number)rs.getObject("tallyAmount"); + Number sendOutAmountNumber = (Number)rs.getObject("sendOutAmount"); + + Integer invoiceAmountMode = invoiceAmountModeNumber == null ? null : invoiceAmountModeNumber.intValue(); + Integer amount = amountNumber == null ? null : amountNumber.intValue(); + Integer recyclingAmount = recyclingAmountNumber == null ? null : recyclingAmountNumber.intValue(); + Integer tallyAmount = tallyAmountNumber == null ? null : tallyAmountNumber.intValue(); + Integer sendOutAmount = sendOutAmountNumber == null ? null : sendOutAmountNumber.intValue(); + boolean isBorrowTousseOrProxyDisinfectionOrGoodsReservationApplication = StringUtils.equals(invoicePlanType, InvoicePlan.TYPE_BORROWINGSINGLE) || StringUtils.equals(invoicePlanType, InvoicePlan.TYPE_PROXYDISINFECTION)