using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Text;
using System.Collections;
using ApServerProvider;
namespace Estsh.Core.Repositories
{
public class ProduceQuery:BaseApp
{
/***************************************************************************************************
*
* 作者:张茂忠
* 创建时间:2013.04.22
* 描述:照片查询模块Dal层
* 修改日志:
*
*
* *************************************************************************************************/
public ProduceQuery(RemotingProxy remotingProxy)
: base(remotingProxy)
{ }
///
/// 汇总信息
///
///
public DataTable GetSummary(string _where)
{
lock (_remotingProxy)
{
StringBuilder sql = new StringBuilder(1024);
sql.Append("SELECT type_id , ");
sql.Append(" c.model_id , ");
sql.Append(" type_name , ");
sql.Append(" model_desc , ");
sql.Append(" e.number ");
sql.Append("FROM g_workorder AS a ");
sql.Append(" INNER JOIN sys_part AS b ON a.part_id = b.part_id ");
sql.Append(" INNER JOIN sys_model AS c ON c.model_id = b.model_id ");
sql.Append(" INNER JOIN sys_model_type AS d ON c.model_type_id = d.type_id ");
sql.Append(" INNER JOIN ( SELECT c.model_id , ");
sql.Append(" COUNT(c.model_id) AS number ");
sql.Append(" FROM g_workorder AS a ");
sql.Append(" INNER JOIN sys_part AS b ON a.part_id = b.part_id ");
sql.Append(" INNER JOIN sys_model AS c ON c.model_id = b.model_id ");
sql.Append(" INNER JOIN sys_model_type AS d ON c.model_type_id = d.type_id ");
sql.Append(" LEFT JOIN g_wo_relation AS e ON e.workorder_id = a.ruid ");
sql.Append(" LEFT JOIN g_vw_order AS f ON f.order_id = e.order_id ");
sql.Append(" WHERE 1=1 " + _where + " ");
sql.Append(" GROUP BY c.model_id ");
sql.Append(" ) AS e ON e.model_id = c.model_id ");
sql.Append(" WHERE 1=1 " + _where + " ");
sql.Append("GROUP BY type_id , ");
sql.Append(" c.model_id , ");
sql.Append(" type_name , ");
sql.Append(" model_desc , ");
sql.Append(" e.number ");
return _remotingProxy.GetDataTable(sql.ToString());
}
}
///
/// 查询车型
///
///
public DataTable GetModelType()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select type_id as [value],type_name as [key] from dbo.sys_model_type");
return _remotingProxy.GetDataTable(SqlStringBuilder.ToString());
}
}
///
/// 查询生产类型
///
///
public DataTable GetProduceType()
{
lock (_remotingProxy)
{
string sql = "SELECT enum_value as [value] ,enum_desc as [key] FROM sys_enum WHERE enum_type = 'sys_prod_type' ";
return _remotingProxy.GetDataTable(sql);
}
}
public string GetDisplay(string produceValue)
{
lock (_remotingProxy)
{
string stringSql = "SELECT enum_value as [value],enum_value as [key] FROM sys_enum WHERE enum_type = 'sys_prod_type' AND enum_desc = '" + produceValue + "'";
return _remotingProxy.GetScalar(stringSql).ToString();
}
}
public DataTable GetSummaryDtail(string _where, string typeID)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT d.type_name, ");
SqlStringBuilder.Append(" g.part_id, ");
SqlStringBuilder.Append(" h.part_no, ");
SqlStringBuilder.Append(" h.part_spec, ");
SqlStringBuilder.Append(" COUNT(h.part_no) AS number, ");
SqlStringBuilder.Append(" CASE ISNULL(NULLIF(g.type, 'N'), a.type) ");
SqlStringBuilder.Append(" WHEN 'N' THEN '正常' ");
SqlStringBuilder.Append(" WHEN 'P' THEN '领料' ");
SqlStringBuilder.Append(" WHEN 'X' THEN '试制' ");
SqlStringBuilder.Append(" WHEN 'D' THEN '加拨' ");
SqlStringBuilder.Append(" WHEN 'S' THEN '库存' ");
SqlStringBuilder.Append(" END AS type ");
SqlStringBuilder.Append(" FROM g_workorder AS a ");
SqlStringBuilder.Append(" INNER JOIN sys_part AS b ON a.part_id = b.part_id ");
SqlStringBuilder.Append(" INNER JOIN sys_model AS c ON c.model_id = b.model_id ");
SqlStringBuilder.Append(" INNER JOIN sys_model_type AS d ON c.model_type_id = d.type_id ");
SqlStringBuilder.Append(" LEFT JOIN g_wo_relation AS e ON e.workorder_id = a.ruid ");
SqlStringBuilder.Append(" LEFT JOIN g_vw_order AS f ON f.order_id = e.order_id ");
SqlStringBuilder.Append(" inner join g_workorder_detail as g on a.ruid=g.workorder_id ");
SqlStringBuilder.Append(" inner join sys_part as h on g.part_id=h.part_id ");
SqlStringBuilder.Append(" WHERE 1=1 " + _where);
SqlStringBuilder.Append(" GROUP BY ");
SqlStringBuilder.Append(" g.part_id, ");
SqlStringBuilder.Append(" h.part_no, ");
SqlStringBuilder.Append(" h.part_spec, ");
SqlStringBuilder.Append(" d.type_name , ");
SqlStringBuilder.Append(" ISNULL(NULLIF(g.type, 'N'), a.type) ORDER BY type_name asc,type asc, h.part_no asc");
return _remotingProxy.GetDataTable(SqlStringBuilder.ToString());
}
}
}
}