Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/vo/WaitSignGoodsSummary.java =================================================================== diff -u -r12331 -r14016 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/vo/WaitSignGoodsSummary.java (.../WaitSignGoodsSummary.java) (revision 12331) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/vo/WaitSignGoodsSummary.java (.../WaitSignGoodsSummary.java) (revision 14016) @@ -46,16 +46,16 @@ * @param tousseType 发货物品类型 器械包、一次性物品、消毒物品等等 */ public void addInvoiceSignGoodsVo(String tousseName,Integer amount, - Long invoiceID,String tousseType){ - String name = TousseDefinitionUtils.getTousseRawName(tousseName,tousseType); + Long invoiceID){ + //String name = TousseDefinitionUtils.getTousseRawName(tousseName,tousseType); for(InvoiceSignGoodsVo vo : invoiceSignGoods){ - if(name != null && name.equals(vo.getTousseName())){ + if(tousseName != null && tousseName.equals(vo.getTousseName())){ vo.setAmount(amount + vo.getAmount()); return; } } - if(!StringUtils.isBlank(name)){ - invoiceSignGoods.add(new InvoiceSignGoodsVo(name,amount,invoiceID)); + if(!StringUtils.isBlank(tousseName)){ + invoiceSignGoods.add(new InvoiceSignGoodsVo(tousseName,amount,invoiceID)); } } } Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r13978 -r14016 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 13978) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 14016) @@ -4387,24 +4387,31 @@ public WaitSignGoodsSummary getWaitSignGoods(Collection invoiceIds) { WaitSignGoodsSummary ret = new WaitSignGoodsSummary(); - String sql = "select ii.tousseName,ii.amount,ii.invoice_id,i.sendTime,ii.tousseType from InvoiceItem ii,Invoice i where ii.invoice_id = i.id"; - String where = "1=1"; + String disposableGoodsSql = "select ii.tousseName,ii.amount,ii.invoice_id,i.sendTime from " + + InvoiceItem.class.getSimpleName() + " ii inner join " + Invoice.class.getSimpleName() + + " i on ii.invoice_id = i.id where ii.diposable='是'"; + String tousseSql = "select ti.tousseName,COUNT(*) amount,ti.invoice_id,i.sendTime from " + + TousseInstance.class.getSimpleName() + " ti inner join " + Invoice.class.getSimpleName() + " i on i.id = ti.invoice_id "; + String idsCondition = "1=1"; + if(invoiceIds != null && !invoiceIds.isEmpty()){ - where = SqlBuilder.build_number_IN_Statement("i.id", + idsCondition = SqlBuilder.build_number_IN_Statement("i.id", SqlBuilder.IN, invoiceIds); - sql = String.format("%s AND %s", sql,where); - System.out.println(sql); + tousseSql = String.format("%s where %s and ti.status='已发货' group by ti.tousseName,ti.invoice_id,i.sendTime", tousseSql,idsCondition); + disposableGoodsSql = String.format("%s and %s ", disposableGoodsSql,idsCondition); + String sql = String.format("%s union all %s", tousseSql,disposableGoodsSql); + + //System.out.println(sql); ResultSet rs = objectDao.executeSql(sql); try{ while(rs.next()){ - String tousseName = rs.getString(1); - int amount = rs.getInt(2); - long invoice_id = rs.getLong(3); - Date sendTime = rs.getTimestamp(4); - String tousseType = rs.getString(5); + String tousseName = rs.getString("tousseName"); + int amount = rs.getInt("amount"); + long invoice_id = rs.getLong("invoice_id"); + Date sendTime = rs.getTimestamp("sendTime"); ret.updateLastSendTime(sendTime); - ret.addInvoiceSignGoodsVo(tousseName, amount, invoice_id, tousseType); + ret.addInvoiceSignGoodsVo(tousseName, amount, invoice_id); } }catch(Throwable ex){ ex.printStackTrace();