Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.9.66_4.9.67.sql =================================================================== diff -u --- ssts-web/src/main/webapp/dataUpdater/sqls/4.9.66_4.9.67.sql (revision 0) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.9.66_4.9.67.sql (revision 30612) @@ -0,0 +1 @@ +update Invoice set isPrint = '是' where ((select count(*) from InvoiceItem po1 where po1.invoice_id = Invoice.id and po1.isPrint = '是') + (select count(*) from TousseInstance po2 where (po2.invoice_id=Invoice.id or po2.invoice2_id=Invoice.id) and po2.status in('已灭菌','已废弃')))=(select count(*) from InvoiceItem po3 where po3.invoice_id = Invoice.id) and isPrint = '部分打印'; \ No newline at end of file Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r30467 -r30612 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 30467) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 30612) @@ -10572,7 +10572,7 @@ objectDao.update(item); } } - invoice.updatePrintStatus(); + invoice.updatePrintStatus(objectDao); objectDao.update(invoice); } } Index: forgon-tools/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r30523 -r30612 --- forgon-tools/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 30523) +++ forgon-tools/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 30612) @@ -26,7 +26,7 @@ "4.9.7","4.9.8","4.9.9","4.9.10","4.9.11","4.9.12","4.9.13","4.9.14","4.9.15","4.9.16","4.9.17","4.9.18","4.9.19","4.9.20","4.9.21","4.9.22","4.9.23","4.9.24", "4.9.25","4.9.26","4.9.27","4.9.28","4.9.29","4.9.30","4.9.31","4.9.32","4.9.33","4.9.34","4.9.35","4.9.36","4.9.37","4.9.38","4.9.39","4.9.40","4.9.41","4.9.42","4.9.43","4.9.44", "4.9.45","4.9.46","4.9.47","4.9.48","4.9.49","4.9.50","4.9.51","4.9.52","4.9.53","4.9.54","4.9.55","4.9.56","4.9.57","4.9.58","4.9.59","4.9.60","4.9.61","4.9.62", - "4.9.63","4.9.64","4.9.65","4.9.66"}; + "4.9.63","4.9.64","4.9.65","4.9.66","4.9.67"}; // 版本列表(4.0版本升级4.1版需要分两步:先从4.0升到4.1.0、然后从4.1.0升级4.1最新版本) /*public final static String[] SOFTWARE_VERSION_ARRAY = new String[] { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/Invoice.java =================================================================== diff -u -r29714 -r30612 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/Invoice.java (.../Invoice.java) (revision 29714) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/Invoice.java (.../Invoice.java) (revision 30612) @@ -616,13 +616,22 @@ * 更新发货单的打印状态,遍历InvoiceItem,如果Item都是已打印,则打印状态为是,如果都没有打印,则为否,否则为部分打印 */ @Transient - public void updatePrintStatus(){ + public void updatePrintStatus(ObjectDao dao){ int printedCount = 0; for(InvoiceItem item : getInvoiceItem()){ if(item.printed()){ ++printedCount; } } + + // 退货数量 + int returnAmount = 0; + String sql = String.format("select count(*) from %s po where (po.invoice_id=%s or invoice2_id=%s) and po.status in('%s','%s')", + TousseInstance.class.getSimpleName(), this.id, this.id, TousseInstance.STATUS_STERILED, TousseInstance.STATUS_DISCARD); + returnAmount = dao.countBySql(sql); + + printedCount += returnAmount; + if(printedCount == 0){ setIsPrint(PRINT_NO); }else if(printedCount == getInvoiceItem().size()){