using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Text ;
using QMFrameWork.Data ;
using QMAPP.FJC.Entity.Basic ;
using System.Data ;
using QMFrameWork.Log ;
using QMAPP.FJC.Entity.ProduceManage ;
using QMAPP.DAL ;
using QMAPP.FJC.Entity ;
namespace QMAPP.FJC.DAL.ProduceManage
{
/// <summary>
/// 模块编号:
/// 作 用:返修记录
/// 作 者:王庆男
/// 编写日期:2015年06月24日
///</summary>
public class MendRecorderDAL : BaseDAL
{
#region 获取信息
/// <summary>
/// 获取信息
/// </summary>
/// <param name="">条件</param>
/// <returns>*信息</returns>
public MendRecorder Get ( MendRecorder model )
{
try
{
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
//获取信息
model = session . Get < MendRecorder > ( model ) ;
}
return model ;
}
catch ( Exception ex )
{
LogManager . LogHelper . Error ( new LogInfo ( )
{
ErrorInfo = ex ,
Tag = ex . StackTrace ,
Info = "返修记录-获取信息!"
} ) ;
throw ex ;
}
}
/// <summary>
/// 获取信息
/// </summary>
/// <param name="">条件</param>
/// <returns>*信息</returns>
public MendRecorder GetMendRecorderInfo ( MendRecorder model )
{
string sql = null ;
List < DataParameter > parameters = new List < DataParameter > ( ) ;
try
{
//获取信息
sql = this . GetQuerySql ( model , ref parameters ) ;
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
model = session . Get < MendRecorder > ( sql , parameters . ToArray ( ) ) ;
}
return model ;
}
catch ( Exception ex )
{
LogManager . LogHelper . Error ( new LogInfo ( )
{
ErrorInfo = ex ,
Tag = ex . StackTrace ,
Info = "返修记录-获取信息!"
} ) ;
throw ex ;
}
}
#endregion
#region 获取列表
/// <summary>
/// 获取列表
/// </summary>
/// <param name="condition">条件</param>
/// <param name="page">数据页</param>
/// <returns>数据页</returns>
public DataPage GetList ( MendRecorder condition , DataPage page )
{
string sql = null ;
List < DataParameter > parameters = new List < DataParameter > ( ) ;
try
{
sql = this . GetQuerySql ( condition , ref parameters ) ;
//sql = this.GetCallListSql(model, out parameters);
//分页关键字段及排序
page . KeyName = "PID" ;
if ( string . IsNullOrEmpty ( page . SortExpression ) )
{
page . SortExpression = "UPDATEDATE DESC" ;
}
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
page = session . GetDataPage < MendRecorder > ( sql , parameters . ToArray ( ) , page ) ;
}
return page ;
}
catch ( Exception ex )
{
LogManager . LogHelper . Error ( new LogInfo ( )
{
ErrorInfo = ex ,
Tag = ex . StackTrace ,
Info = "返修记录-获取列表!"
} ) ;
throw ex ;
}
}
#endregion
#region 获取查询语句
/// <summary>
/// 获取查询语句
/// </summary>
/// <param name="user">查询条件</param>
/// <param name="parameters">参数</param>
/// <returns>查询语句</returns>
private string GetQuerySql ( MendRecorder condition , ref List < DataParameter > parameters )
{
StringBuilder sqlBuilder = new StringBuilder ( ) ;
StringBuilder whereBuilder = new StringBuilder ( ) ;
try
{
////构成查询语句
sqlBuilder . Append ( " SELECT M.PID " ) ;
sqlBuilder . Append ( " ,M.PPID " ) ;
sqlBuilder . Append ( " ,M.PRODUCTCODE " ) ;
sqlBuilder . Append ( " ,M.PRODUCTTYPE " ) ;
sqlBuilder . Append ( " ,M.MATERIAL_CODE " ) ;
sqlBuilder . Append ( " ,M.MATERIAL_TYPE_CODE " ) ;
sqlBuilder . Append ( " ,M.CURRENTPROCESS " ) ;
sqlBuilder . Append ( " ,M.PRODUCELINE " ) ;
sqlBuilder . Append ( " ,M.PRODUCESHIFTNAME " ) ;
sqlBuilder . Append ( " ,M.PRODUCESHIFTTCODE " ) ;
sqlBuilder . Append ( " ,M.MENDREASON " ) ;
sqlBuilder . Append ( " ,M.MENDTYPE " ) ;
sqlBuilder . Append ( " ,M.MENDRESULT " ) ;
sqlBuilder . Append ( " ,M.REGISTERSTATUS " ) ;
sqlBuilder . Append ( " ,M.MOLDNUMBER " ) ;
sqlBuilder . Append ( " ,M.BATCH_NO " ) ;
sqlBuilder . Append ( " ,M.CREATEUSER " ) ;
sqlBuilder . Append ( " ,M.CREATEDATE " ) ;
sqlBuilder . Append ( " ,M.UPDATEUSER " ) ;
sqlBuilder . Append ( " ,M.UPDATEDATE " ) ;
sqlBuilder . Append ( " ,M.MENDDUTY " ) ;
sqlBuilder . Append ( " ,M.MENDTEST " ) ;
sqlBuilder . Append ( " ,M.MENDNUMBER " ) ;
sqlBuilder . Append ( " ,M.WORKCELL_CODE " ) ;
sqlBuilder . Append ( " ,M.MACHINECODDE " ) ;
sqlBuilder . Append ( " ,M.HANDLEMETHOD " ) ;
sqlBuilder . Append ( " ,(M.ERP_MFGCODETYPE+'/'+R8.MFGNAME) AS ERP_MFGCODETYPE " ) ;
sqlBuilder . Append ( " ,(M.ERP_CAR+'/'+R.MFGNAME) as ERP_CAR " ) ;
sqlBuilder . Append ( " ,(M.ERP_WORKLINE+'/'+R6.MFGNAME) AS ERP_WORKLINE " ) ;
sqlBuilder . Append ( " ,(M.ERP_SHIFT+'/'+R2.MFGNAME) as ERP_SHIFT " ) ;
sqlBuilder . Append ( " ,(M.ERP_WORKCELL+'/'+R3.MFGNAME) AS ERP_WORKCELL " ) ;
sqlBuilder . Append ( " ,(M.ERP_DEFECTTO+'/'+R4.MFGNAME) AS ERP_DEFECTTO " ) ;
sqlBuilder . Append ( " ,(M.ERP_PRODUCTTYPE+'/'+R5.MFGNAME) AS ERP_PRODUCTTYPE " ) ;
//sqlBuilder.Append(" ,(M.ERP_DEFECTCODE+'/'+R7.MFGNAME) AS ERP_DEFECTCODE ");
sqlBuilder . Append ( " ,(M.ERP_DEFECTCODE+'/'+M.MENDREASON) AS ERP_DEFECTCODE " ) ;
sqlBuilder . Append ( " ,(M.ERP_MFGCODETYPE+M.ERP_CAR+M.ERP_WORKLINE+M.ERP_SHIFT+M.ERP_WORKCELL+M.ERP_DEFECTTO+M.ERP_PRODUCTTYPE+M.ERP_DEFECTCODE) as ERPS " ) ;
sqlBuilder . Append ( " ,MB.MACHINENAME " ) ;
sqlBuilder . Append ( " ,MA.MATERIAL_NAME " ) ;
sqlBuilder . Append ( " ,MA.OUTSOURCE " ) ;
sqlBuilder . Append ( " ,MC.MATERIAL_TYPE_NAME " ) ;
sqlBuilder . Append ( " ,C.USERNAME AS CREATEUSERNAME " ) ;
sqlBuilder . Append ( " ,U.USERNAME AS UPDATEUSERNAME " ) ;
sqlBuilder . Append ( " FROM T_AW_MENDRECORDER M " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R ON R.MFGCODE = M.ERP_CAR AND R.MFGCODETYPE = 'CAR' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R2 ON R2.MFGCODE = M.ERP_SHIFT AND R2.MFGCODETYPE = 'SHIFT' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R3 ON R3.MFGCODE = M.ERP_WORKCELL AND R3.MFGCODETYPE = 'WORKCELL' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R4 ON R4.MFGCODE = M.ERP_DEFECTTO AND R4.MFGCODETYPE = 'DEFECTTO' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R5 ON R5.MFGCODE = M.ERP_PRODUCTTYPE AND R5.MFGCODETYPE = 'PRODUCTTYPE' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R6 ON R6.MFGCODE = M.ERP_WORKLINE AND R6.MFGCODETYPE = 'WORKLINE' " ) ;
//sqlBuilder.Append(" LEFT JOIN T_AW_MENDRECORDERERP R7 ON R7.MFGCODE = M.ERP_DEFECTCODE AND R7.MFGCODETYPE = 'DEFECTCODE' ");
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R8 ON R8.MFGCODE = M.ERP_MFGCODETYPE AND R8.MFGCODETYPE = 'MENDTYPE'" ) ;
sqlBuilder . Append ( " LEFT JOIN T_BD_MACHINEINFO MB ON MB.MACHINECODDE=M.MACHINECODDE " ) ;
sqlBuilder . Append ( " LEFT JOIN T_MD_MATERIAL MA ON MA.MATERIAL_CODE=M.MATERIAL_CODE " ) ;
sqlBuilder . Append ( " LEFT JOIN T_MD_MATERIAL_CLASS MC ON MC.MATERIAL_TYPE_CODE=M.MATERIAL_TYPE_CODE " ) ;
sqlBuilder . AppendLine ( " LEFT JOIN T_QM_USER C ON C.USERID=M.CREATEUSER " ) ;
sqlBuilder . AppendLine ( " LEFT JOIN T_QM_USER U ON U.USERID=M.UPDATEUSER " ) ;
//如果类型为空返回空
//if (string.IsNullOrEmpty(condition.MENDRESULT) )
//{
// //赋一个没有的值,使得查询记录为空。
// condition.MENDRESULT = "X";
//}
//查询条件
if ( string . IsNullOrEmpty ( condition . PID ) = = false )
{
whereBuilder . Append ( " AND M.PID =@PID" ) ;
parameters . Add ( new DataParameter { ParameterName = "PID" , DataType = DbType . String , Value = condition . PID } ) ;
}
if ( string . IsNullOrEmpty ( condition . PPID ) = = false )
{
whereBuilder . Append ( " AND M.PPID =@PPID" ) ;
parameters . Add ( new DataParameter { ParameterName = "PPID" , DataType = DbType . String , Value = condition . PPID } ) ;
}
//产品条码查询条件
if ( string . IsNullOrEmpty ( condition . PRODUCTCODE ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCTCODE LIKE @PRODUCTCODE" ) ;
parameters . Add ( new DataParameter { ParameterName = "PRODUCTCODE" , DataType = DbType . String , Value = "%" + condition . PRODUCTCODE + "%" } ) ;
}
//产品条码查询返修信息
if ( string . IsNullOrEmpty ( condition . PRODUCTCODETXT ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCTCODE = @PRODUCTCODE" ) ;
parameters . Add ( new DataParameter { ParameterName = "PRODUCTCODE" , DataType = DbType . String , Value = condition . PRODUCTCODETXT } ) ;
}
//返修方式
if ( string . IsNullOrEmpty ( condition . MENDTYPE ) = = false )
{
whereBuilder . Append ( " AND M.MENDTYPE =@MENDTYPE" ) ;
parameters . Add ( new DataParameter { ParameterName = "MENDTYPE" , DataType = DbType . String , Value = condition . MENDTYPE } ) ;
}
//返修结果
if ( string . IsNullOrEmpty ( condition . MENDRESULT ) = = false )
{
whereBuilder . Append ( " AND M.MENDRESULT =@MENDRESULT" ) ;
parameters . Add ( new DataParameter { ParameterName = "MENDRESULT" , DataType = DbType . String , Value = condition . MENDRESULT } ) ;
}
//产品类别
if ( string . IsNullOrEmpty ( condition . PRODUCTTYPE ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCTTYPE =@PRODUCTTYPE" ) ;
parameters . Add ( new DataParameter { ParameterName = "PRODUCTTYPE" , DataType = DbType . String , Value = condition . PRODUCTTYPE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MOLDNUMBER ) = = false )
{
whereBuilder . Append ( " AND M.MOLDNUMBER =@MOLDNUMBER" ) ;
parameters . Add ( new DataParameter { ParameterName = "MOLDNUMBER" , DataType = DbType . String , Value = condition . MOLDNUMBER } ) ;
}
if ( string . IsNullOrEmpty ( condition . MATERIAL_CODE ) = = false )
{
whereBuilder . Append ( " AND M.MATERIAL_CODE =@MATERIAL_CODE" ) ;
parameters . Add ( new DataParameter { ParameterName = "MATERIAL_CODE" , DataType = DbType . String , Value = condition . MATERIAL_CODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MATERIAL_TYPE_CODE ) = = false )
{
whereBuilder . Append ( " AND M.MATERIAL_TYPE_CODE =@MATERIAL_TYPE_CODE" ) ;
parameters . Add ( new DataParameter { ParameterName = "MATERIAL_TYPE_CODE" , DataType = DbType . String , Value = condition . MATERIAL_TYPE_CODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCESHIFTTCODE =@PRODUCESHIFTTCODE" ) ;
parameters . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
//操作开始日期
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
whereBuilder . Append ( " AND M.CREATEDATE >=@CREATEDATESTART" ) ;
parameters . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART . Replace ( "-" , "" ) } ) ;
}
//操作结束日期
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
whereBuilder . Append ( " AND M.CREATEDATE <=@CREATEDATEEND" ) ;
parameters . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND . Replace ( "-" , "" ) } ) ;
}
//返修原因
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
whereBuilder . Append ( " AND M.ERP_DEFECTCODE=@MENDREASON " ) ;
parameters . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . HORIZONTAL ) = = false | | string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
string position = condition . VERTICAL + condition . HORIZONTAL ;
whereBuilder . AppendFormat ( " AND exists(select 1 from T_AW_MENDERREASON r where r.ppid=m.pid and r.POSITION LIKE '%" + position + "%')" ) ;
}
if ( whereBuilder . Length > 0 )
{
sqlBuilder . Append ( " WHERE " + whereBuilder . ToString ( ) . Substring ( 4 ) ) ;
}
return sqlBuilder . ToString ( ) ;
}
catch ( Exception ex )
{
throw ex ;
}
}
private string GetQuerySqlScrap ( MendRecorder condition , ref List < DataParameter > parameters )
{
StringBuilder sqlBuilder = new StringBuilder ( ) ;
StringBuilder whereBuilder = new StringBuilder ( ) ;
try
{
//构成查询语句
sqlBuilder . Append ( " SELECT sum(M.MENDNUMBER) as MENDNUMBER , M.MATERIAL_CODE, MA.MATERIAL_NAME, (M.ERP_MFGCODETYPE+M.ERP_CAR+M.ERP_WORKLINE+M.ERP_SHIFT+M.ERP_WORKCELL+M.ERP_DEFECTTO+M.ERP_PRODUCTTYPE+M.ERP_DEFECTCODE) as ERPS " ) ;
sqlBuilder . Append ( " FROM T_AW_MENDRECORDER M LEFT JOIN T_MD_MATERIAL MA ON MA.MATERIAL_CODE=M.MATERIAL_CODE " ) ;
//通过主键获取数据
if ( string . IsNullOrEmpty ( condition . PIDS ) = = false )
{
string [ ] list = condition . PIDS . Split ( ":" . ToCharArray ( ) ) ;
whereBuilder . Append ( " AND M.PID IN (" ) ;
for ( int i = 0 ; i < list . Length ; i + + )
{
whereBuilder . AppendFormat ( "'{0}'" , list [ i ] ) ;
if ( list . Length ! = 1 & & i ! = ( list . Length - 1 ) )
{
whereBuilder . Append ( "," ) ;
}
}
whereBuilder . Append ( ")" ) ;
}
if ( string . IsNullOrEmpty ( condition . PID ) = = false )
{
whereBuilder . Append ( " AND M.PID =@PID" ) ;
parameters . Add ( new DataParameter { ParameterName = "PID" , DataType = DbType . String , Value = condition . PID } ) ;
}
if ( string . IsNullOrEmpty ( condition . PPID ) = = false )
{
whereBuilder . Append ( " AND M.PPID =@PPID" ) ;
parameters . Add ( new DataParameter { ParameterName = "PPID" , DataType = DbType . String , Value = condition . PPID } ) ;
}
//产品条码查询条件
if ( string . IsNullOrEmpty ( condition . PRODUCTCODE ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCTCODE LIKE @PRODUCTCODE" ) ;
parameters . Add ( new DataParameter { ParameterName = "PRODUCTCODE" , DataType = DbType . String , Value = "%" + condition . PRODUCTCODE + "%" } ) ;
}
//产品条码查询返修信息
if ( string . IsNullOrEmpty ( condition . PRODUCTCODETXT ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCTCODE = @PRODUCTCODE" ) ;
parameters . Add ( new DataParameter { ParameterName = "PRODUCTCODE" , DataType = DbType . String , Value = condition . PRODUCTCODETXT } ) ;
}
//返修方式
if ( string . IsNullOrEmpty ( condition . MENDTYPE ) = = false )
{
whereBuilder . Append ( " AND M.MENDTYPE =@MENDTYPE" ) ;
parameters . Add ( new DataParameter { ParameterName = "MENDTYPE" , DataType = DbType . String , Value = condition . MENDTYPE } ) ;
}
//返修结果
if ( string . IsNullOrEmpty ( condition . MENDRESULT ) = = false )
{
whereBuilder . Append ( " AND M.MENDRESULT =@MENDRESULT" ) ;
parameters . Add ( new DataParameter { ParameterName = "MENDRESULT" , DataType = DbType . String , Value = condition . MENDRESULT } ) ;
}
//产品类别
if ( string . IsNullOrEmpty ( condition . PRODUCTTYPE ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCTTYPE =@PRODUCTTYPE" ) ;
parameters . Add ( new DataParameter { ParameterName = "PRODUCTTYPE" , DataType = DbType . String , Value = condition . PRODUCTTYPE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MOLDNUMBER ) = = false )
{
whereBuilder . Append ( " AND M.MOLDNUMBER =@MOLDNUMBER" ) ;
parameters . Add ( new DataParameter { ParameterName = "MOLDNUMBER" , DataType = DbType . String , Value = condition . MOLDNUMBER } ) ;
}
if ( string . IsNullOrEmpty ( condition . MATERIAL_CODE ) = = false )
{
whereBuilder . Append ( " AND M.MATERIAL_CODE =@MATERIAL_CODE" ) ;
parameters . Add ( new DataParameter { ParameterName = "MATERIAL_CODE" , DataType = DbType . String , Value = condition . MATERIAL_CODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MATERIAL_TYPE_CODE ) = = false )
{
whereBuilder . Append ( " AND M.MATERIAL_TYPE_CODE =@MATERIAL_TYPE_CODE" ) ;
parameters . Add ( new DataParameter { ParameterName = "MATERIAL_TYPE_CODE" , DataType = DbType . String , Value = condition . MATERIAL_TYPE_CODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCESHIFTTCODE =@PRODUCESHIFTTCODE" ) ;
parameters . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
//操作开始日期
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
whereBuilder . Append ( " AND M.CREATEDATE >=@CREATEDATESTART" ) ;
parameters . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART . Replace ( "-" , "" ) } ) ;
}
//操作结束日期
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
whereBuilder . Append ( " AND M.CREATEDATE <=@CREATEDATEEND" ) ;
parameters . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND . Replace ( "-" , "" ) } ) ;
}
//返修原因
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
whereBuilder . Append ( " AND M.ERP_DEFECTCODE=@MENDREASON " ) ;
parameters . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . HORIZONTAL ) = = false | | string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
string position = condition . VERTICAL + condition . HORIZONTAL ;
whereBuilder . AppendFormat ( " AND exists(select 1 from T_AW_MENDERREASON r where r.ppid=m.pid and r.POSITION LIKE '%" + position + "%')" ) ;
}
if ( whereBuilder . Length > 0 )
{
sqlBuilder . Append ( " WHERE " + whereBuilder . ToString ( ) . Substring ( 4 ) ) ;
}
sqlBuilder . Append ( " group by M.MATERIAL_CODE,MA.MATERIAL_NAME ,(M.ERP_MFGCODETYPE+M.ERP_CAR+M.ERP_WORKLINE+M.ERP_SHIFT+M.ERP_WORKCELL+M.ERP_DEFECTTO+M.ERP_PRODUCTTYPE+M.ERP_DEFECTCODE) " ) ;
string sql = string . Format ( " SELECT MENDNUMBER ,newid() as PID, MATERIAL_CODE, MATERIAL_NAME, ERPS FROM(" + sqlBuilder . ToString ( ) + ")TEMP" ) ;
return sql ;
}
catch ( Exception ex )
{
throw ex ;
}
}
#endregion
#region 导出界面上数据
public DataTable ExportExcelData ( MendRecorder model )
{
DataParameter [ ] parameters ;
string sql = this . GetCallListSql ( model , out parameters ) ;
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
return session . GetTable ( sql , parameters ) ;
}
}
private string GetCallListSql ( MendRecorder model , out DataParameter [ ] parameters )
{
StringBuilder sqlBuilder = new StringBuilder ( ) ;
StringBuilder whereBuilder = new StringBuilder ( ) ;
List < DataParameter > parametersList = new List < DataParameter > ( ) ;
try
{
//构成查询语句
sqlBuilder . Append ( " SELECT M.PID " ) ;
sqlBuilder . Append ( " ,M.PPID " ) ;
sqlBuilder . Append ( " ,M.PRODUCTCODE " ) ;
sqlBuilder . Append ( " ,M.PRODUCTTYPE " ) ;
sqlBuilder . Append ( " ,M.MATERIAL_CODE " ) ;
sqlBuilder . Append ( " ,M.MATERIAL_TYPE_CODE " ) ;
sqlBuilder . Append ( " ,M.CURRENTPROCESS " ) ;
sqlBuilder . Append ( " ,M.PRODUCELINE " ) ;
sqlBuilder . Append ( " ,M.PRODUCESHIFTNAME " ) ;
sqlBuilder . Append ( " ,M.PRODUCESHIFTTCODE " ) ;
sqlBuilder . Append ( " ,M.MENDREASON " ) ;
sqlBuilder . Append ( " ,M.MENDTYPE " ) ;
sqlBuilder . Append ( " ,M.MENDRESULT " ) ;
sqlBuilder . Append ( " ,M.REGISTERSTATUS " ) ;
sqlBuilder . Append ( " ,M.MOLDNUMBER " ) ;
sqlBuilder . Append ( " ,M.BATCH_NO " ) ;
sqlBuilder . Append ( " ,M.CREATEUSER " ) ;
sqlBuilder . Append ( " ,CONVERT(VARCHAR(19),M.CREATEDATE,120) AS CREATEDATE " ) ;
sqlBuilder . Append ( " ,M.UPDATEUSER " ) ;
sqlBuilder . Append ( " ,M.UPDATEDATE " ) ;
sqlBuilder . Append ( " ,M.MENDDUTY " ) ;
sqlBuilder . Append ( " ,M.MENDTEST " ) ;
sqlBuilder . Append ( " ,M.MENDNUMBER " ) ;
sqlBuilder . Append ( " ,M.WORKCELL_CODE " ) ;
sqlBuilder . Append ( " ,M.MACHINECODDE " ) ;
sqlBuilder . Append ( " ,M.HANDLEMETHOD " ) ;
sqlBuilder . Append ( " ,(M.ERP_MFGCODETYPE+'/'+R8.MFGNAME) AS ERP_MFGCODETYPE " ) ;
sqlBuilder . Append ( " ,(M.ERP_CAR+'/'+R.MFGNAME) as ERP_CAR " ) ;
sqlBuilder . Append ( " ,(M.ERP_WORKLINE+'/'+R6.MFGNAME) AS ERP_WORKLINE " ) ;
sqlBuilder . Append ( " ,(M.ERP_SHIFT+'/'+R2.MFGNAME) as ERP_SHIFT " ) ;
sqlBuilder . Append ( " ,(M.ERP_WORKCELL+'/'+R3.MFGNAME) AS ERP_WORKCELL " ) ;
sqlBuilder . Append ( " ,(M.ERP_DEFECTTO+'/'+R4.MFGNAME) AS ERP_DEFECTTO " ) ;
sqlBuilder . Append ( " ,(M.ERP_PRODUCTTYPE+'/'+R5.MFGNAME) AS ERP_PRODUCTTYPE " ) ;
sqlBuilder . Append ( " ,(M.ERP_DEFECTCODE+'/'+R7.MFGNAME) AS ERP_DEFECTCODE " ) ;
sqlBuilder . Append ( " ,(M.ERP_MFGCODETYPE+M.ERP_CAR+M.ERP_WORKLINE+M.ERP_SHIFT+M.ERP_WORKCELL+M.ERP_DEFECTTO+M.ERP_PRODUCTTYPE+M.ERP_DEFECTCODE) as ERPS " ) ;
sqlBuilder . Append ( " ,MB.MACHINENAME " ) ;
sqlBuilder . Append ( " ,MA.MATERIAL_NAME " ) ;
sqlBuilder . Append ( " ,MA.OUTSOURCE " ) ;
sqlBuilder . Append ( " ,MC.MATERIAL_TYPE_NAME " ) ;
sqlBuilder . Append ( " ,C.USERNAME AS CREATEUSERNAME " ) ;
sqlBuilder . Append ( " ,U.USERNAME AS UPDATEUSERNAME " ) ;
sqlBuilder . Append ( " FROM T_AW_MENDRECORDER M " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R ON R.MFGCODE = M.ERP_CAR AND R.MFGCODETYPE = 'CAR' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R2 ON R2.MFGCODE = M.ERP_SHIFT AND R2.MFGCODETYPE = 'SHIFT' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R3 ON R3.MFGCODE = M.ERP_WORKCELL AND R3.MFGCODETYPE = 'WORKCELL' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R4 ON R4.MFGCODE = M.ERP_DEFECTTO AND R4.MFGCODETYPE = 'DEFECTTO' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R5 ON R5.MFGCODE = M.ERP_PRODUCTTYPE AND R5.MFGCODETYPE = 'PRODUCTTYPE' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R6 ON R6.MFGCODE = M.ERP_WORKLINE AND R6.MFGCODETYPE = 'WORKLINE' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R7 ON R7.MFGCODE = M.ERP_DEFECTCODE AND R7.MFGCODETYPE = 'DEFECTCODE' " ) ;
sqlBuilder . Append ( " LEFT JOIN T_AW_MENDRECORDERERP R8 ON R8.MFGCODE = M.ERP_MFGCODETYPE AND R8.MFGCODETYPE = 'MENDTYPE'" ) ;
sqlBuilder . Append ( " LEFT JOIN T_BD_MACHINEINFO MB ON MB.MACHINECODDE=M.MACHINECODDE " ) ;
sqlBuilder . Append ( " LEFT JOIN T_MD_MATERIAL MA ON MA.MATERIAL_CODE=M.MATERIAL_CODE " ) ;
sqlBuilder . Append ( " LEFT JOIN T_MD_MATERIAL_CLASS MC ON MC.MATERIAL_TYPE_CODE=M.MATERIAL_TYPE_CODE " ) ;
sqlBuilder . AppendLine ( " LEFT JOIN T_QM_USER C ON C.USERID=M.CREATEUSER " ) ;
sqlBuilder . AppendLine ( " LEFT JOIN T_QM_USER U ON U.USERID=M.UPDATEUSER " ) ;
//查询条件
if ( string . IsNullOrEmpty ( model . PID ) = = false )
{
whereBuilder . Append ( " AND M.PID =@PID" ) ;
parametersList . Add ( new DataParameter { ParameterName = "PID" , DataType = DbType . String , Value = model . PID } ) ;
}
if ( string . IsNullOrEmpty ( model . PPID ) = = false )
{
whereBuilder . Append ( " AND M.PPID =@PPID" ) ;
parametersList . Add ( new DataParameter { ParameterName = "PPID" , DataType = DbType . String , Value = model . PPID } ) ;
}
//产品条码查询条件
if ( string . IsNullOrEmpty ( model . PRODUCTCODE ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCTCODE LIKE @PRODUCTCODE" ) ;
parametersList . Add ( new DataParameter { ParameterName = "PRODUCTCODE" , DataType = DbType . String , Value = "%" + model . PRODUCTCODE + "%" } ) ;
}
//产品条码查询返修信息
if ( string . IsNullOrEmpty ( model . PRODUCTCODETXT ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCTCODE = @PRODUCTCODE" ) ;
parametersList . Add ( new DataParameter { ParameterName = "PRODUCTCODE" , DataType = DbType . String , Value = model . PRODUCTCODETXT } ) ;
}
//返修方式
if ( string . IsNullOrEmpty ( model . MENDTYPE ) = = false )
{
whereBuilder . Append ( " AND M.MENDTYPE =@MENDTYPE" ) ;
parametersList . Add ( new DataParameter { ParameterName = "MENDTYPE" , DataType = DbType . String , Value = model . MENDTYPE } ) ;
}
//返修结果
if ( string . IsNullOrEmpty ( model . MENDRESULT ) = = false )
{
whereBuilder . Append ( " AND M.MENDRESULT =@MENDRESULT" ) ;
parametersList . Add ( new DataParameter { ParameterName = "MENDRESULT" , DataType = DbType . String , Value = model . MENDRESULT } ) ;
}
//产品类别
if ( string . IsNullOrEmpty ( model . PRODUCTTYPE ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCTTYPE =@PRODUCTTYPE" ) ;
parametersList . Add ( new DataParameter { ParameterName = "PRODUCTTYPE" , DataType = DbType . String , Value = model . PRODUCTTYPE } ) ;
}
if ( string . IsNullOrEmpty ( model . MOLDNUMBER ) = = false )
{
whereBuilder . Append ( " AND M.MOLDNUMBER =@MOLDNUMBER" ) ;
parametersList . Add ( new DataParameter { ParameterName = "MOLDNUMBER" , DataType = DbType . String , Value = model . MOLDNUMBER } ) ;
}
if ( string . IsNullOrEmpty ( model . MATERIAL_CODE ) = = false )
{
whereBuilder . Append ( " AND M.MATERIAL_CODE =@MATERIAL_CODE" ) ;
parametersList . Add ( new DataParameter { ParameterName = "MATERIAL_CODE" , DataType = DbType . String , Value = model . MATERIAL_CODE } ) ;
}
if ( string . IsNullOrEmpty ( model . MATERIAL_TYPE_CODE ) = = false )
{
whereBuilder . Append ( " AND M.MATERIAL_TYPE_CODE =@MATERIAL_TYPE_CODE" ) ;
parametersList . Add ( new DataParameter { ParameterName = "MATERIAL_TYPE_CODE" , DataType = DbType . String , Value = model . MATERIAL_TYPE_CODE } ) ;
}
if ( string . IsNullOrEmpty ( model . PRODUCESHIFTTCODE ) = = false )
{
whereBuilder . Append ( " AND M.PRODUCESHIFTTCODE =@PRODUCESHIFTTCODE" ) ;
parametersList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = model . PRODUCESHIFTTCODE } ) ;
}
if ( string . IsNullOrEmpty ( model . CREATEDATESTART ) = = false )
{
whereBuilder . Append ( " AND M.CREATEDATE >=@CREATEDATESTART" ) ;
parametersList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = model . CREATEDATESTART . Replace ( "-" , "" ) } ) ;
}
if ( string . IsNullOrEmpty ( model . CREATEDATEEND ) = = false )
{
whereBuilder . Append ( " AND M.CREATEDATE <=@CREATEDATEEND" ) ;
parametersList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = model . CREATEDATEEND . Replace ( "-" , "" ) } ) ;
}
//返修原因
if ( string . IsNullOrEmpty ( model . MENDREASON ) = = false )
{
whereBuilder . Append ( " AND M.ERP_DEFECTCODE=@MENDREASON " ) ;
parametersList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = model . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( model . HORIZONTAL ) = = false | | string . IsNullOrEmpty ( model . VERTICAL ) = = false )
{
string position = model . VERTICAL + model . HORIZONTAL ;
whereBuilder . AppendFormat ( " AND exists(select 1 from T_AW_MENDERREASON r where r.ppid=m.pid and r.POSITION LIKE '%" + position + "%')" ) ;
}
if ( whereBuilder . Length > 0 )
{
sqlBuilder . Append ( " WHERE " + whereBuilder . ToString ( ) . Substring ( 4 ) ) ;
}
parameters = parametersList . ToArray ( ) ;
return sqlBuilder . ToString ( ) ;
}
catch ( Exception ex )
{
throw ex ;
}
}
#endregion
#region 获取导出的数据
/// <summary>
/// 获取导出的数据
/// </summary>
/// <param name="user">查询条件</param>
/// <returns>数据</returns>
public DataTable GetExportData ( MendRecorder model )
{
DataTable dt = null ;
string sql = null ;
List < DataParameter > parameters = new List < DataParameter > ( ) ;
try
{
//构成查询语句
sql = this . GetQuerySql ( model , ref parameters ) ;
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
dt = session . GetTable ( sql , parameters . ToArray ( ) ) ;
dt . TableName = "T_AW_MENDRECORDER" ;
}
return dt ;
}
catch ( Exception ex )
{
throw ex ;
}
}
public DataTable GetExportDataScrap ( MendRecorder model )
{
DataTable dt = null ;
string sql = null ;
List < DataParameter > parameters = new List < DataParameter > ( ) ;
try
{
//构成查询语句
sql = this . GetQuerySqlScrap ( model , ref parameters ) ;
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
dt = session . GetTable ( sql , parameters . ToArray ( ) ) ;
dt . TableName = "T_AW_MENDRECORDER" ;
}
return dt ;
}
catch ( Exception ex )
{
throw ex ;
}
}
#endregion
#region 信息是否重复
/// <summary>
/// 判断名称是否存在
/// </summary>
/// <param name="info"></param>
/// <returns>true:已存在;fasel:不存在。</returns>
public bool ExistsMendRecorder ( MendRecorder model )
{
StringBuilder sqlBuilder = new StringBuilder ( ) ;
StringBuilder whereBuilder = new StringBuilder ( ) ;
List < DataParameter > parameters = new List < DataParameter > ( ) ;
int count = 0 ;
try
{
sqlBuilder . Append ( "SELECT COUNT(PID) FROM T_AW_MENDRECORDER" ) ;
if ( string . IsNullOrEmpty ( model . PID ) = = false )
{
whereBuilder . Append ( " AND PID =@PID " ) ;
parameters . Add ( new DataParameter { ParameterName = "PID" , DataType = DbType . String , Value = model . PID } ) ;
}
//if (string.IsNullOrEmpty(model.) == false)
//{
//whereBuilder.Append(" AND AREACODE=@AREACODE");
//parameters.Add(new DataParameter { ParameterName = "AREACODE", DataType = DbType.String, Value = ""model.AREACODE + "" });
//}
if ( whereBuilder . Length > 0 )
{
sqlBuilder . Append ( " WHERE " + whereBuilder . ToString ( ) . Substring ( 4 ) ) ;
}
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
count = Convert . ToInt32 ( session . ExecuteSqlScalar ( sqlBuilder . ToString ( ) , parameters . ToArray ( ) ) ) ;
}
if ( count > 0 )
{
return true ;
}
else
{
return false ;
}
}
catch ( Exception ex )
{
throw ex ;
}
}
#endregion
#region 插入信息
/// <summary>
/// 插入信息(单表)
/// </summary>
/// <param name="">信息</param>
/// <returns>插入行数</returns>
public int Insert ( MendRecorder model )
{
int count = 0 ;
try
{
if ( this . BaseSession ! = null )
{
//插入基本信息
count = BaseSession . Insert < MendRecorder > ( model ) ;
}
else
{
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
//插入基本信息
count = session . Insert < MendRecorder > ( model ) ;
}
}
return count ;
}
catch ( Exception ex )
{
throw ex ;
}
}
#endregion
#region 更新信息
/// <summary>
/// 更新信息
/// </summary>
/// <param name=""></param>
/// <returns>更新行数</returns>
public int Update ( MendRecorder model )
{
int count = 0 ;
try
{
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
//更新基本信息
count = session . Update < MendRecorder > ( model ) ;
}
return count ;
}
catch ( Exception ex )
{
throw ex ;
}
}
#endregion
#region 逻辑删除
/// <summary>
/// 逻辑删除信息
/// </summary>
/// <param name=""></param>
/// <returns>删除个数</returns>
public int Delete ( MendRecorder model )
{
StringBuilder sqlBuilder = new StringBuilder ( ) ;
List < DataParameter > parameters = new List < DataParameter > ( ) ;
int count = 0 ;
try
{
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
//删除基本信息
sqlBuilder . Append ( "DELETE T_AW_MENDRECORDER " ) ;
sqlBuilder . Append ( "WHERE PID = @PID " ) ;
parameters . Add ( new DataParameter { ParameterName = "PID" , DataType = DbType . String , Value = model . PID } ) ;
count = session . ExecuteSql ( sqlBuilder . ToString ( ) , parameters . ToArray ( ) ) ;
}
return count ;
}
catch ( Exception ex )
{
throw ex ;
}
}
#endregion
public DataTable GetListForstatistic ( MendRecorder condition )
{
DataTable dt = new DataTable ( ) ;
string sql = string . Format ( @ "select count(1) as MENDSUM ,MOLDNUMBER,PRODUCESHIFTTCODE from T_AW_MENDRECORDER where CREATEDATE>='{0}' and CREATEDATE<'{1}'
group by MOLDNUMBER , PRODUCESHIFTTCODE ORDER BY PRODUCESHIFTTCODE , MOLDNUMBER ASC ", condition.CREATEDATESTART, condition.CREATEDATEEND);
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
dt = session . GetTable ( sql , new List < DataParameter > ( ) . ToArray ( ) ) ;
}
return dt ;
}
#region 获取返修统计信息填充图表
/// <summary>
/// 获取返修统计信息
/// </summary>
/// <param name="condition"></param>
/// <returns></returns>
public List < MendRecorder > GetMendRecorderStatistics ( MendRecorder condition )
{
List < DataParameter > paralist = new List < DataParameter > ( ) ;
List < MendRecorder > recorderList = new List < MendRecorder > ( ) ;
string sql = GetStatisticsSql ( condition , ref paralist ) ;
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
recorderList = session . GetList < MendRecorder > ( sql , paralist . ToArray ( ) ) . ToList < MendRecorder > ( ) ;
}
return recorderList ;
}
#endregion
#region 统计信息查询语句
private string GetStatisticsSql ( MendRecorder condition , ref List < DataParameter > paraList )
{
StringBuilder sql = new StringBuilder ( ) ;
#region 返修件缺陷类型
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . DEFECTTYPE . GetHashCode ( ) . ToString ( ) )
{
StringBuilder existsSql = new StringBuilder ( ) ;
sql . Append ( "select DEFECTVALUE,sum(1) as QUATITY from (SELECT distinct s.ppid,s.DEFECTVALUE FROM T_AW_MENDERREASON s where 1=1 " ) ;
existsSql . Append ( " and exists(select 1 from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
existsSql . Append ( " and t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
existsSql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
existsSql . Append ( " AND t.PRODUCESHIFTTCODE <= @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
existsSql . Append ( " and t.pid=s.ppid and t.MENDRESULT=0 ) " ) ;
sql . Append ( existsSql . ToString ( ) ) ;
sql . Append ( ")t group by DEFECTVALUE" ) ;
}
#endregion
#region 返修件缺陷位置
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . DEFECTPOSITION . GetHashCode ( ) . ToString ( ) )
{
StringBuilder existsSql = new StringBuilder ( ) ;
sql . Append ( "select POSITION,sum(1) as QUATITY from (SELECT distinct s.ppid,s.POSITION FROM T_AW_MENDERREASON s where 1=1 " ) ;
existsSql . Append ( " and exists(select 1 from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
existsSql . Append ( " and t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
existsSql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
existsSql . Append ( " AND t.PRODUCESHIFTTCODE <= @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
existsSql . Append ( " and t.pid=s.ppid and t.MENDRESULT=0 ) " ) ;
sql . Append ( existsSql . ToString ( ) ) ;
sql . Append ( ")t group by POSITION ORDER BY POSITION ASC" ) ;
}
#endregion
#region 返修件班次信息
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . DEFECTTEAM . GetHashCode ( ) . ToString ( ) )
{
sql . Append ( "select t.PRODUCESHIFTTCODE,sum(1) as QUATITY from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
sql . Append ( " AND t.PRODUCESHIFTTCODE = @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false | |
string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND exists (select 1 from T_AW_MENDERREASON s where 1=1 " ) ;
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
sql . Append ( " and t.pid=s.ppid )" ) ;
}
sql . Append ( " and t.MENDRESULT=0 group by PRODUCESHIFTTCODE ORDER BY PRODUCESHIFTTCODE ASC" ) ;
}
#endregion
#region 返修率趋势图
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . MENDRATE . GetHashCode ( ) . ToString ( ) )
{
sql . Append ( @ "select DEFECTVALUE ,sum(case when pid='' then 0 else 1 end) as countValue,
sum ( 1 ) as sumValue from ( select convert ( varchar ( 1 0 ) , m . CREATEDATE , 1 2 0 ) as DEFECTVALUE , ISNULL ( s . pid , ' ' ) as pid
from t_aw_main m left join T_AW_MENDRECORDER s on s . PPID = m . PID ");
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " and s.CREATEDATE>@CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = Convert . ToDateTime ( condition . CREATEDATEEND ) . AddDays ( 5 ) . ToString ( "yyyy-MM-dd HH:mm:ss" ) } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false
| | string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND exists(select 1 from T_AW_MENDERREASON t where 1=1 " ) ;
sql . Append ( " and t.CREATEDATE>@CREATEDATESTART" ) ;
sql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND t.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND t.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
sql . Append ( " and t.ppid=s.PID " ) ;
sql . Append ( ")" ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
sql . Append ( " AND s.PRODUCESHIFTTCODE = @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
sql . Append ( " and MENDRESULT=0 where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " and m.CREATEDATE>@CREATEDATESTART" ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND m.CREATEDATE <= @MCREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "MCREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
sql . Append ( " )temp group by DEFECTVALUE order by DEFECTVALUE asc" ) ;
}
#endregion
#region 返修数量趋势图
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . MENDSUM . GetHashCode ( ) . ToString ( ) )
{
sql . Append ( " select DEFECTVALUE, sum(quatity) as quatity from( select convert(varchar(10),CREATEDATE,120) as DEFECTVALUE,1 as quatity from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
sql . Append ( " AND t.PRODUCESHIFTTCODE = @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false | |
string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND exists (select 1 from T_AW_MENDERREASON s where 1=1 " ) ;
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
sql . Append ( " and t.pid=s.ppid )" ) ;
}
sql . Append ( " and MENDRESULT='0')temp group by DEFECTVALUE order by DEFECTVALUE asc" ) ;
}
#endregion
#region 生产返修对比趋势图
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . PRODUCEMENDRATE . GetHashCode ( ) . ToString ( ) )
{
sql . Append ( @ "select sumValue,countValue, maintemp.DEFECTVALUE from (
select sum ( 1 ) as sumValue , convert ( varchar ( 1 0 ) , m . CREATEDATE , 1 2 0 ) as DEFECTVALUE from t_aw_main m where 1 = 1 ");
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " and m.CREATEDATE>@CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND m.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
sql . Append ( " group by convert(varchar(10),m.CREATEDATE,120))maintemp," ) ;
sql . Append ( " (" ) ;
sql . Append ( " select sum(1) as countValue ,convert(varchar(10),t.CREATEDATE,120) as DEFECTVALUE from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " and t.CREATEDATE>@CREATEDATESTART" ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
sql . Append ( " AND t.PRODUCESHIFTTCODE = @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
sql . Append ( " and t.MENDRESULT='0' " ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false
| | string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND exists(select 1 from T_AW_MENDERREASON s where 1=1 " ) ;
sql . Append ( " and s.CREATEDATE>@CREATEDATESTART" ) ;
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
sql . Append ( " and s.ppid=t.PID " ) ;
sql . Append ( ")" ) ;
}
sql . Append ( " group by convert(varchar(10),t.CREATEDATE,120))mendtemp where maintemp.DEFECTVALUE=mendtemp.DEFECTVALUE" ) ;
}
#endregion
#region 废品趋势图
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . SCARPRATE . GetHashCode ( ) . ToString ( ) )
{
sql . Append ( " select DEFECTVALUE, sum(quatity) as quatity from( select convert(varchar(10),CREATEDATE,120) as DEFECTVALUE,1 as quatity from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
sql . Append ( " AND t.PRODUCESHIFTTCODE = @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false | |
string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND exists (select 1 from T_AW_MENDERREASON s where 1=1 " ) ;
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
sql . Append ( " and t.pid=s.ppid )" ) ;
}
sql . Append ( " and MENDRESULT='1')temp group by DEFECTVALUE order by DEFECTVALUE asc" ) ;
}
#endregion
#region 废品件缺陷类型
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . SCARPDEFECT . GetHashCode ( ) . ToString ( ) )
{
StringBuilder existsSql = new StringBuilder ( ) ;
sql . Append ( "select DEFECTVALUE,sum(1) as QUATITY from (SELECT distinct s.ppid,s.DEFECTVALUE FROM T_AW_MENDERREASON s where 1=1 " ) ;
existsSql . Append ( " and exists(select 1 from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
existsSql . Append ( " and t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
existsSql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
existsSql . Append ( " AND t.PRODUCESHIFTTCODE <= @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
existsSql . Append ( " and t.pid=s.ppid and t.MENDRESULT='1' ) " ) ;
sql . Append ( existsSql . ToString ( ) ) ;
sql . Append ( ")t group by DEFECTVALUE" ) ;
}
#endregion
return sql . ToString ( ) ;
}
private string GetStatisticsExportSql ( MendRecorder condition , ref List < DataParameter > paraList )
{
StringBuilder sql = new StringBuilder ( ) ;
#region 返修件缺陷类型
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . DEFECTTYPE . GetHashCode ( ) . ToString ( ) )
{
StringBuilder existsSql = new StringBuilder ( ) ;
sql . Append ( "select DEFECTVALUE,sum(1) as QUATITY from (SELECT distinct s.ppid,s.DEFECTVALUE FROM T_AW_MENDERREASON s where 1=1 " ) ;
existsSql . Append ( " and exists(select 1 from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
existsSql . Append ( " and t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
existsSql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
existsSql . Append ( " AND t.PRODUCESHIFTTCODE <= @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
existsSql . Append ( " and t.pid=s.ppid and t.MENDRESULT=0 ) " ) ;
sql . Append ( existsSql . ToString ( ) ) ;
sql . Append ( ")t group by DEFECTVALUE" ) ;
}
#endregion
#region 返修件缺陷位置
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . DEFECTPOSITION . GetHashCode ( ) . ToString ( ) )
{
StringBuilder existsSql = new StringBuilder ( ) ;
sql . Append ( "select POSITION,sum(1) as QUATITY from (SELECT distinct s.ppid,s.POSITION FROM T_AW_MENDERREASON s where 1=1 " ) ;
existsSql . Append ( " and exists(select 1 from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
existsSql . Append ( " and t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
existsSql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
existsSql . Append ( " AND t.PRODUCESHIFTTCODE <= @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
existsSql . Append ( " and t.pid=s.ppid and t.MENDRESULT=0 ) " ) ;
sql . Append ( existsSql . ToString ( ) ) ;
sql . Append ( ")t group by POSITION ORDER BY POSITION ASC" ) ;
}
#endregion
#region 返修件班次信息
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . DEFECTTEAM . GetHashCode ( ) . ToString ( ) )
{
sql . Append ( "select t.PRODUCESHIFTTCODE,sum(1) as QUATITY from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
sql . Append ( " AND t.PRODUCESHIFTTCODE = @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false | |
string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND exists (select 1 from T_AW_MENDERREASON s where 1=1 " ) ;
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
sql . Append ( " and t.pid=s.ppid )" ) ;
}
sql . Append ( " and MENDRESULT=0 group by PRODUCESHIFTTCODE ORDER BY PRODUCESHIFTTCODE ASC" ) ;
}
#endregion
#region 返修率趋势图
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . MENDRATE . GetHashCode ( ) . ToString ( ) )
{
sql . Append ( @ "select DEFECTVALUE ,sum(case when pid='' then 0 else 1 end) as countValue,
sum ( 1 ) as sumValue , ' ' as PERCENTVALUE from ( select convert ( varchar ( 1 0 ) , m . CREATEDATE , 1 2 0 ) as DEFECTVALUE , ISNULL ( s . pid , ' ' ) as pid
from t_aw_main m left join T_AW_MENDRECORDER s on s . PPID = m . PID ");
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " and s.CREATEDATE>@CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = Convert . ToDateTime ( condition . CREATEDATEEND ) . AddDays ( 5 ) . ToString ( "yyyy-MM-dd HH:mm:ss" ) } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false
| | string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND exists(select 1 from T_AW_MENDERREASON t where 1=1 " ) ;
sql . Append ( " and t.CREATEDATE>@CREATEDATESTART" ) ;
sql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND t.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND t.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
sql . Append ( " and t.ppid=s.PID " ) ;
sql . Append ( ")" ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
sql . Append ( " AND s.PRODUCESHIFTTCODE = @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
sql . Append ( " and MENDRESULT=0 where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " and m.CREATEDATE>@CREATEDATESTART" ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND m.CREATEDATE <= @MCREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "MCREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
sql . Append ( " )temp group by DEFECTVALUE order by DEFECTVALUE asc" ) ;
}
#endregion
#region 返修数量趋势图
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . MENDSUM . GetHashCode ( ) . ToString ( ) )
{
sql . Append ( " select DEFECTVALUE, sum(quatity) as quatity from( select convert(varchar(10),CREATEDATE,120) as DEFECTVALUE,1 as quatity from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
sql . Append ( " AND t.PRODUCESHIFTTCODE = @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false | |
string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND exists (select 1 from T_AW_MENDERREASON s where 1=1 " ) ;
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
sql . Append ( " and t.pid=s.ppid )" ) ;
}
sql . Append ( " and MENDRESULT='0')temp group by DEFECTVALUE order by DEFECTVALUE asc" ) ;
}
#endregion
#region 生产返修对比趋势图
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . PRODUCEMENDRATE . GetHashCode ( ) . ToString ( ) )
{
sql . Append ( @ "select sumValue,countValue, maintemp.DEFECTVALUE,'' as PERCENTVALUE from (
select sum ( 1 ) as sumValue , convert ( varchar ( 1 0 ) , m . CREATEDATE , 1 2 0 ) as DEFECTVALUE from t_aw_main m where 1 = 1 ");
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " and m.CREATEDATE>@CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND m.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
sql . Append ( " group by convert(varchar(10),m.CREATEDATE,120))maintemp," ) ;
sql . Append ( " (" ) ;
sql . Append ( " select sum(1) as countValue ,convert(varchar(10),t.CREATEDATE,120) as DEFECTVALUE from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " and t.CREATEDATE>@CREATEDATESTART" ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
sql . Append ( " AND t.PRODUCESHIFTTCODE = @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
sql . Append ( " and t.MENDRESULT='0' " ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false
| | string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND exists(select 1 from T_AW_MENDERREASON s where 1=1 " ) ;
sql . Append ( " and s.CREATEDATE>@CREATEDATESTART" ) ;
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
sql . Append ( " and s.ppid=t.PID " ) ;
sql . Append ( ")" ) ;
}
sql . Append ( " group by convert(varchar(10),t.CREATEDATE,120))mendtemp where maintemp.DEFECTVALUE=mendtemp.DEFECTVALUE" ) ;
}
#endregion
#region 废品趋势图
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . SCARPRATE . GetHashCode ( ) . ToString ( ) )
{
sql . Append ( " select DEFECTVALUE, sum(quatity) as quatity from( select convert(varchar(10),CREATEDATE,120) as DEFECTVALUE,1 as quatity from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
sql . Append ( " AND t.PRODUCESHIFTTCODE = @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false | |
string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND exists (select 1 from T_AW_MENDERREASON s where 1=1 " ) ;
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
sql . Append ( " and t.pid=s.ppid )" ) ;
}
sql . Append ( " and MENDRESULT='1')temp group by DEFECTVALUE order by DEFECTVALUE asc" ) ;
}
#endregion
#region 废品件缺陷类型
if ( condition . MENDTYPE = = EnumGeter . MENDSTATICTYPE . SCARPDEFECT . GetHashCode ( ) . ToString ( ) )
{
StringBuilder existsSql = new StringBuilder ( ) ;
sql . Append ( "select DEFECTVALUE,sum(1) as QUATITY from (SELECT distinct s.ppid,s.DEFECTVALUE FROM T_AW_MENDERREASON s where 1=1 " ) ;
existsSql . Append ( " and exists(select 1 from T_AW_MENDRECORDER t where 1=1 " ) ;
if ( string . IsNullOrEmpty ( condition . CREATEDATESTART ) = = false )
{
sql . Append ( " AND s.CREATEDATE >= @CREATEDATESTART" ) ;
existsSql . Append ( " and t.CREATEDATE >= @CREATEDATESTART" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATESTART" , DataType = DbType . String , Value = condition . CREATEDATESTART } ) ;
}
if ( string . IsNullOrEmpty ( condition . CREATEDATEEND ) = = false )
{
sql . Append ( " AND s.CREATEDATE <= @CREATEDATEEND" ) ;
existsSql . Append ( " AND t.CREATEDATE <= @CREATEDATEEND" ) ;
paraList . Add ( new DataParameter { ParameterName = "CREATEDATEEND" , DataType = DbType . String , Value = condition . CREATEDATEEND } ) ;
}
if ( string . IsNullOrEmpty ( condition . MENDREASON ) = = false )
{
sql . Append ( " AND s.DEFECTKEY = @MENDREASON" ) ;
paraList . Add ( new DataParameter { ParameterName = "MENDREASON" , DataType = DbType . String , Value = condition . MENDREASON } ) ;
}
if ( string . IsNullOrEmpty ( condition . VERTICAL ) = = false )
{
sql . Append ( " AND s.POSITION = @POSITION" ) ;
paraList . Add ( new DataParameter { ParameterName = "POSITION" , DataType = DbType . String , Value = condition . VERTICAL + condition . HORIZONTAL } ) ;
}
if ( string . IsNullOrEmpty ( condition . PRODUCESHIFTTCODE ) = = false )
{
existsSql . Append ( " AND t.PRODUCESHIFTTCODE <= @PRODUCESHIFTTCODE" ) ;
paraList . Add ( new DataParameter { ParameterName = "PRODUCESHIFTTCODE" , DataType = DbType . String , Value = condition . PRODUCESHIFTTCODE } ) ;
}
existsSql . Append ( " and t.pid=s.ppid and t.MENDRESULT='1' ) " ) ;
sql . Append ( existsSql . ToString ( ) ) ;
sql . Append ( ")t group by DEFECTVALUE" ) ;
}
#endregion
return sql . ToString ( ) ;
}
#endregion
#region 获取返修统计信息导出
public DataTable ExportMendRecorderStatistics ( MendRecorder condition )
{
List < DataParameter > paralist = new List < DataParameter > ( ) ;
DataTable dt = new DataTable ( ) ;
string sql = GetStatisticsExportSql ( condition , ref paralist ) ;
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
dt = session . GetTable ( sql , paralist . ToArray ( ) ) ;
}
return dt ;
}
#endregion
#region 获取返修信息-ERP
/// <summary>
/// 获取某个返修类型的数据-ERP
/// </summary>
/// <returns></returns>
public List < MendRecorder > GetMFGCODES ( string MFGCODETYPE )
{
List < DataParameter > paralist = new List < DataParameter > ( ) ;
string sql = "SELECT MFGCODE as ERP_CODE,MFGNAME as ERP_NAME,MFGCODETYPE AS ERP_MFGCODETYPE FROM T_AW_MENDRECORDERERP order by MFGCODE" ;
if ( ! string . IsNullOrEmpty ( MFGCODETYPE ) )
{
sql = "SELECT MFGCODE as ERP_CODE,MFGNAME as ERP_NAME ,MFGCODETYPE AS ERP_MFGCODETYPE FROM T_AW_MENDRECORDERERP where MFGCODETYPE='" + MFGCODETYPE + "' order by MFGCODE" ;
}
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
return session . GetList < MendRecorder > ( sql , paralist . ToArray ( ) ) . ToList ( ) ;
}
}
#endregion
public Entity . Operation . MainOperation GetMianOperationInfo ( Entity . Operation . MainOperation mainOperation )
{
StringBuilder sqlBuilder = new StringBuilder ( ) ;
StringBuilder whereBuilder = new StringBuilder ( ) ;
List < DataParameter > parameters = new List < DataParameter > ( ) ;
try
{
sqlBuilder . Append ( " SELECT M.PID, " ) ;
sqlBuilder . Append ( " M.PDID, " ) ;
sqlBuilder . Append ( " M.PRODUCTCODE, " ) ;
sqlBuilder . Append ( " M.PROCESSTYPE, " ) ;
sqlBuilder . Append ( " M.PRODUCTTYPE, " ) ;
sqlBuilder . Append ( " M.MACHINENAME, " ) ;
sqlBuilder . Append ( " M.MACHINECODDE, " ) ;
sqlBuilder . Append ( " M.MOLDNUMBER, " ) ;
sqlBuilder . Append ( " M.STATUS, " ) ;
sqlBuilder . Append ( " M.OPERATESTATE, " ) ;
sqlBuilder . Append ( " M.OPERATEDDATE, " ) ;
sqlBuilder . Append ( " M.CURRENTPROCESS, " ) ;
sqlBuilder . Append ( " M.PRODUCESHIFTNAME, " ) ;
sqlBuilder . Append ( " M.PRODUCESHIFTTCODE, " ) ;
sqlBuilder . Append ( " M.PRODUCELINE, " ) ;
sqlBuilder . Append ( " M.FILENAME, " ) ;
sqlBuilder . Append ( " M.FILEPATH, " ) ;
sqlBuilder . Append ( " M.MODELSTATION, " ) ;
sqlBuilder . Append ( " M.CREATEUSER, " ) ;
sqlBuilder . Append ( " M.CREATEDATE, " ) ;
sqlBuilder . Append ( " M.UPDATEUSER, " ) ;
sqlBuilder . Append ( " M.UPDATEDATE, " ) ;
sqlBuilder . Append ( " M.PRODUCTCODESTR, " ) ;
sqlBuilder . Append ( " M.MATERIAL_CODE, " ) ;
sqlBuilder . Append ( " M.MATERIAL_NAME, " ) ;
sqlBuilder . Append ( " M.MATERIAL_TYPE_CODE, " ) ;
sqlBuilder . Append ( " M.WORKCENTER_CODE, " ) ;
sqlBuilder . Append ( " M.WORKCELL_CODE, " ) ;
sqlBuilder . Append ( " E.MFGCODE AS ERP_WORKLINE " ) ;
sqlBuilder . Append ( "FROM T_AW_MAINOPERATION M " ) ;
sqlBuilder . Append ( "LEFT JOIN T_AW_MENDRECORDERERP E ON E.TYPE_CODE=M.WORKCENTER_CODE AND MFGCODETYPE='WORKLINE' " ) ;
if ( string . IsNullOrEmpty ( mainOperation . PDID ) = = false )
{
whereBuilder . Append ( " AND PDID =@PDID " ) ;
parameters . Add ( new DataParameter { ParameterName = "PDID" , DataType = DbType . String , Value = mainOperation . PDID } ) ;
}
if ( whereBuilder . Length > 0 )
{
sqlBuilder . Append ( " WHERE " + whereBuilder . ToString ( ) . Substring ( 4 ) ) ;
}
using ( IDataSession session = AppDataFactory . CreateMainSession ( ) )
{
mainOperation = session . Get < Entity . Operation . MainOperation > ( sqlBuilder . ToString ( ) , parameters . ToArray ( ) ) ;
}
return mainOperation ;
}
catch ( Exception ex )
{
throw ex ;
}
}
}
}