Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/DataIndex.java =================================================================== diff -u -r26059 -r26077 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/DataIndex.java (.../DataIndex.java) (revision 26059) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/DataIndex.java (.../DataIndex.java) (revision 26077) @@ -548,22 +548,47 @@ break; case "检查数量": - amountSql = String - .format("select sum(mi.count) amount ,pr.inspector userName, td.tousseType,td.name tousseName " - + "from PackingRecord pr inner join TousseDefinition td on pr.tousseDefinitionId = td.id " - + "inner join MaterialInstance mi on td.id = mi.tousse_id " - + "where pr.packTime %s %s " - + "and pr.inspector is not null and %s(pr.inspector)<>0 %s %s %s %s " - + "group by pr.inspector,td.tousseType,td.name ", - obj.betweenSql, - SqlUtils.get_InSql_Extra("pr.orgUnitCoding", obj.querySupplyRoom), - obj.sqlLengthFunctionName, - obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, - obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseTypeAndPackageSizeSql); + if(!obj.getIsOnlyQueryCom()){ + amountSql = String + .format("select (sum(mi.count) * pr.amount) amount ,pr.inspector userName, td.tousseType,td.name tousseName " + + "from PackingRecord pr inner join TousseDefinition td on pr.tousseDefinitionId = td.id " + + "inner join MaterialInstance mi on td.id = mi.tousse_id " + + "where pr.packTime %s %s " + + "and pr.inspector is not null and %s(pr.inspector)<>0 %s %s %s %s " + + "group by pr.inspector,td.tousseType,td.name,pr.amount ", + obj.betweenSql, + SqlUtils.get_InSql_Extra("pr.orgUnitCoding", obj.querySupplyRoom), + obj.sqlLengthFunctionName, + obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, + obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, + obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, + obj.tousseTypeAndPackageSizeSql); + } + if(obj.getIsQueryCom()){ + if(!obj.getIsOnlyQueryCom()){ + amountSql += " union all "; + } + amountSql += String + .format(" select sum(mi.count) amount ,pr.inspector userName,'%s' tousseType,ti.comboTousseDefinitionName tousseName " + + "from TousseDefinition td " + + "inner join TousseInstance ti on td.id = ti.tousseDefinition_id " + + "inner join TousseInstance tic on tic.id = ti.comboTousseInstanceId " + + "inner join PackingRecord pr on tic.tousseDefinition_id=pr.tousseDefinitionId and tic.packingRecord_id=pr.id " + + "inner join MaterialInstance mi on td.id = mi.tousse_id " + + "where pr.packTime %s %s " + + "and pr.inspector is not null and %s(pr.inspector)<>0" + + " %s %s %s " + + "group by pr.inspector,td.tousseType,ti.comboTousseDefinitionName ", + TousseDefinition.PACKAGE_TYPE_COMBO, + obj.betweenSql, + SqlUtils.get_InSql_Extra("pr.orgUnitCoding", obj.querySupplyRoom), + obj.sqlLengthFunctionName, + obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, + obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd.replaceAll("td", "ti"), + obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd); + } break; - + case "包装数量": amountSql = String .format("select sum(mi.count) amount ,pr.wrapper userName, td.tousseType,td.name tousseName " @@ -796,12 +821,12 @@ .format("select sum(mi.count) amount ,i.personInCharge userName, td.tousseType,td.name tousseName " + "from Invoice i inner join TousseInstance ti on ti.invoice_id = i.id inner join TousseDefinition td on ti.tousseDefinition_id = td.id inner join MaterialInstance mi on mi.tousse_id = td.id " + "where ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is null and i.sendTime %s %s " - //+ "and i.personInCharge is not null and %s(i.personInCharge)<>0 " + + "and i.personInCharge is not null and %s(i.personInCharge)<>0 " + "%s %s %s %s " + "group by i.personInCharge,td.tousseType,td.name ", obj.betweenSql, SqlUtils.get_InSql_Extra("i.orgUnitCoding", obj.querySupplyRoom), - //obj.sqlLengthFunctionName, + obj.sqlLengthFunctionName, obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, @@ -813,11 +838,11 @@ .format("select sum(ii.amount) amount ,i.personInCharge userName, ii.tousseType tousseType,ii.tousseName tousseName " + "from Invoice i inner join InvoiceItem ii on ii.invoice_id = i.id " + "where ii.tousseType = '一次性物品' and i.sendTime %s %s " - //+ "and i.personInCharge is not null and %s(i.personInCharge)<>0 " + + "and i.personInCharge is not null and %s(i.personInCharge)<>0 " + "group by i.personInCharge,ii.tousseType,ii.tousseName ", obj.betweenSql, SqlUtils.get_InSql_Extra("i.orgUnitCoding", obj.querySupplyRoom) - //,obj.sqlLengthFunctionName + ,obj.sqlLengthFunctionName ); } } @@ -829,13 +854,13 @@ .format("select sum(mi.count) amount ,i.personInCharge userName,'%s' tousseType,ti.comboTousseDefinitionName tousseName " + "from Invoice i inner join TousseInstance ti on ti.invoice_id = i.id inner join TousseDefinition td on ti.tousseDefinition_id = td.id inner join MaterialInstance mi on mi.tousse_id = td.id " + "where "+ obj.getIsQueryComByPackageSize() +" ti.comboTousseInstanceId is not null and i.sendTime %s %s " - //+ "and i.personInCharge is not null and %s(i.personInCharge)<>0" + + "and i.personInCharge is not null and %s(i.personInCharge)<>0" + " %s %s %s " + "group by i.personInCharge,td.tousseType,ti.comboTousseDefinitionName ", TousseDefinition.PACKAGE_TYPE_COMBO, obj.betweenSql, SqlUtils.get_InSql_Extra("i.orgUnitCoding", obj.querySupplyRoom), - //obj.sqlLengthFunctionName, + obj.sqlLengthFunctionName, obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd.replaceAll("td", "ti"), obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd); @@ -1309,12 +1334,11 @@ .format("select sum(ii.amount) amount ,i.personInCharge userName, td.tousseType, td.name tousseName " + "from Invoice i inner join InvoiceItem ii on ii.invoice_id = i.id inner join TousseDefinition td on td.id=ii.tousseDefinitionId " + "where i.sendTime %s %s " - //+ "and i.personInCharge is not null and %s(i.personInCharge)<>0" - + " %s %s %s %s " + + "and i.personInCharge is not null and %s(i.personInCharge)<>0 %s %s %s %s " + "group by i.personInCharge,td.tousseType,td.name ", obj.betweenSql, SqlUtils.get_InSql_Extra("i.orgUnitCoding", obj.querySupplyRoom), - //obj.sqlLengthFunctionName, + obj.sqlLengthFunctionName, obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd,