Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r26794 -r26812 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 26794) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 26812) @@ -6036,16 +6036,16 @@ }else if(TousseInstance.STATUS_DISINFECTED.equals(status)){ sql = String.format("select wr.id ,wr.startDate washStartTime,wr.endDate washEndTime,wr.disinfectIdentification,unPackAmount washedAmount from %s ci " + " inner join %s td on td.id=ci.tousseDefinitionID " - + " inner join %s ip on ip.id=ci.invoicePlanID " + " inner join %s cb on ci.classifybasket_id=cb.id " + " inner join ClassifyBasket_WashRecord cw on cw.ClassifyBasket_ID=cb.id " + " inner join %s wr on cw.WashAndDisinfectRecord_ID=wr.id " + " inner join %s ds on ds.tousseDefinition_id=td.id " + " inner join %s pt on pt.classifyBasket_id=cb.id and pt.tousseDefinition_id=td.id and pt.washRecord_id=wr.id " - + " where td.name='%s' and ip.departCoding=ds.departCoding and ds.departCoding='%s' and wr.id is not null %s ", - ClassifiedItem.class.getSimpleName(),TousseDefinition.class.getSimpleName(),InvoicePlan.class.getSimpleName(), + + " inner join %s rr on rr.recyclingApplication_id=ci.invoicePlanID and rr.id=pt.sourceId " + + " where td.name='%s' and rr.departCode=ds.departCoding and ds.departCoding='%s' and wr.id is not null %s ", + ClassifiedItem.class.getSimpleName(),TousseDefinition.class.getSimpleName(), ClassifyBasket.class.getSimpleName(),WashAndDisinfectRecord.class.getSimpleName(),DepartmentStock.class.getSimpleName(), - PackingTask.class.getSimpleName(), tousseName, departCode, disinfectedDateSql); + PackingTask.class.getSimpleName(),RecyclingRecord.class.getSimpleName(), tousseName, departCode, disinfectedDateSql); }else{ sql = String.format("select %s from %s ti %s " + " where status = '%s' and tousseFixedBarcode=0 and ti.departCoding=ds.departCoding and ti.departCoding='%s' and ti.tousseName='%s' and comboTousseInstanceId is null %s", @@ -6277,14 +6277,18 @@ DepartmentStock.class.getSimpleName(), SqlUtils.getStringFieldInLargeCollectionsPredicate("ri.tousseName", tousseNameSet), departCode, recyDateSql); //已消毒未装配的包数量(非包实例数量) String disinfectedSql = String.format("select sum(unPackAmount) amount,'%s' status,td.name tousseName from %s ci " - + " inner join %s td on td.id=ci.tousseDefinitionID inner join invoicePlan ip on ip.id=ci.invoicePlanID inner join ClassifyBasket cb on ci.classifybasket_id=cb.id " + + " inner join %s td on td.id=ci.tousseDefinitionID " + + " inner join %s cb on ci.classifybasket_id=cb.id " + " inner join ClassifyBasket_WashRecord cw on cw.ClassifyBasket_ID=cb.id " + " inner join %s wr on cw.WashAndDisinfectRecord_ID=wr.id " + " inner join %s ds on ds.tousseDefinition_id=td.id " + " inner join %s pt on pt.classifyBasket_id=cb.id and pt.tousseDefinition_id=td.id and pt.washRecord_id=wr.id " - + " where %s and ip.departCoding=ds.departCoding and ds.departCoding='%s' and wr.id is not null %s group by td.name", + + " inner join %s rr on rr.recyclingApplication_id=ci.invoicePlanID and rr.id=pt.sourceId " + + " where %s and rr.departCode=ds.departCoding and ds.departCoding='%s' and wr.id is not null %s group by td.name", TousseInstance.STATUS_DISINFECTED,ClassifiedItem.class.getSimpleName(),TousseDefinition.class.getSimpleName(), - WashAndDisinfectRecord.class.getSimpleName(),DepartmentStock.class.getSimpleName(),PackingTask.class.getSimpleName(), SqlUtils.getStringFieldInLargeCollectionsPredicate("td.name", tousseNameSet), departCode, disinfectedDateSql); + ClassifyBasket.class.getSimpleName(), + WashAndDisinfectRecord.class.getSimpleName(),DepartmentStock.class.getSimpleName(),PackingTask.class.getSimpleName(), + RecyclingRecord.class.getSimpleName(), SqlUtils.getStringFieldInLargeCollectionsPredicate("td.name", tousseNameSet), departCode, disinfectedDateSql); //已使用未回收数量(目前只统计了由使用记录转过来的申请单) String usedSql = String.format("select count(*) amount,'%s' status,ti.tousseName from %s ti" + " join %s ur on ur.id=ti.useRecord_id "