Răsfoiți Sursa

撤销汇总表 查询慢

qinqi 6 zile în urmă
părinte
comite
d9239a5ace
1 a modificat fișierele cu 36 adăugiri și 12 ștergeri
  1. 36 12
      DK.Service/ReportModuleLogic/ReportModuleLogic.cs

+ 36 - 12
DK.Service/ReportModuleLogic/ReportModuleLogic.cs

@@ -8130,12 +8130,24 @@ namespace Dongke.IBOSS.PRD.Service.ReportModuleLogic
 			"           AND (:PUserIDS IS NULL OR\n" +
 			"               instr(:PUserIDS, ',' || pd.userid || ',') > 0)\n" +
 			"           AND (:backusercode IS NULL OR\n" +
-			"               instr(pd.BACKOUTUSERCODE, :backusercode) > 0)\n" +
-			"           AND (:ptimebegin IS NULL OR pd.createtime >= :ptimebegin)\n" +
-			"           AND (:ptimeend IS NULL OR pd.createtime <= :ptimeend)\n" +
-			"           AND (:backtimebegin IS NULL OR pd.backouttime >= :backtimebegin)\n" +
-			"           AND (:backtimeend IS NULL OR pd.backouttime <= :backtimeend)\n" +
-			"         GROUP BY GROUPING SETS((pd.productionlineid, pd.procedureid, p.procedurename, p.displayno, gt2.goodstypecode, gt2.goodstypename, gt.goodstypecode, gt.goodstypename, goods.goodsid, goods.goodscode, pd.userid, pd.usercode),(pd.productionlineid, pd.procedureid, p.procedurename, p.displayno, gt2.goodstypecode, gt2.goodstypename),(pd.productionlineid, pd.procedureid, p.procedurename, p.displayno),())\n" +
+			"               instr(pd.BACKOUTUSERCODE, :backusercode) > 0)\n";
+			if (se.PTimeStart.HasValue)
+			{
+				sqlString += "   AND ( pd.createtime >= :ptimebegin)\n";
+			}
+			if (se.PTimeEnd.HasValue)
+			{
+				sqlString += "   AND (pd.createtime <= :ptimeend)\n";
+			}
+			if (se.BackTimeStart.HasValue)
+			{
+				sqlString += "   AND ( pd.backouttime >= :backtimebegin)\n";
+			}
+			if (se.BackTimeEnd.HasValue)
+			{
+				sqlString += "   AND ( pd.backouttime <= :backtimeend)\n";
+			}
+			sqlString += "         GROUP BY GROUPING SETS((pd.productionlineid, pd.procedureid, p.procedurename, p.displayno, gt2.goodstypecode, gt2.goodstypename, gt.goodstypecode, gt.goodstypename, goods.goodsid, goods.goodscode, pd.userid, pd.usercode),(pd.productionlineid, pd.procedureid, p.procedurename, p.displayno, gt2.goodstypecode, gt2.goodstypename),(pd.productionlineid, pd.procedureid, p.procedurename, p.displayno),())\n" +
 			"         ORDER BY p.displayno\n" +
 			"                 ,gt2.goodstypecode\n" +
 			"                 ,gt.goodstypecode\n" +
@@ -8258,12 +8270,24 @@ namespace Dongke.IBOSS.PRD.Service.ReportModuleLogic
 			"   AND (:goodscode IS NULL OR instr(goods.goodscode, :goodscode) > 0)\n" +
 			"           AND (:PUserIDS IS NULL OR\n" +
 			"               instr(:PUserIDS, ',' || pd.userid || ',') > 0)\n" +
-			"   AND (:backusercode IS NULL OR instr(pd.BACKOUTUSERCODE, :backusercode) > 0)\n" +
-			"   AND (:ptimebegin IS NULL OR pd.createtime >= :ptimebegin)\n" +
-			"   AND (:ptimeend IS NULL OR pd.createtime <= :ptimeend)\n" +
-			"   AND (:backtimebegin IS NULL OR pd.backouttime >= :backtimebegin)\n" +
-			"   AND (:backtimeend IS NULL OR pd.backouttime <= :backtimeend)\n" +
-			"   AND (:puserid IS NULL OR pd.userid = :puserid)\n" +
+			"   AND (:backusercode IS NULL OR instr(pd.BACKOUTUSERCODE, :backusercode) > 0)\n";
+			if (se.PTimeStart.HasValue)
+			{
+				sqlString += "   AND ( pd.createtime >= :ptimebegin)\n";
+			}
+			if (se.PTimeEnd.HasValue)
+			{
+				sqlString += "   AND (pd.createtime <= :ptimeend)\n";
+			}
+			if (se.BackTimeStart.HasValue)
+			{
+				sqlString += "   AND ( pd.backouttime >= :backtimebegin)\n";
+			}
+			if (se.BackTimeEnd.HasValue)
+			{
+				sqlString += "   AND ( pd.backouttime <= :backtimeend)\n";
+			}
+			sqlString +=  "   AND (:puserid IS NULL OR pd.userid = :puserid)\n" +
 			"   AND (:goodsid IS NULL OR pd.goodsid = :goodsid)\n" +
 			"   AND (:procedureid IS NULL OR pd.procedureid = :procedureid)\n" +
 			" ORDER BY p.displayno\n" +