You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
612 lines
32 KiB
612 lines
32 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using QMAPP.DAL;
|
|
using QMAPP.FJC.Entity.Common.Constants;
|
|
using QMAPP.FJC.Entity.CompleteStatistics;
|
|
using QMFrameWork.Data;
|
|
|
|
namespace QMAPP.FJC.DAL.CompleteStatistics
|
|
{
|
|
public class CompleteStatisticsDAL : BaseDAL
|
|
{
|
|
public DataPage GetList(CompleteStatisticsEntity condition, DataPage page)
|
|
{
|
|
DataParameter[] parameters;
|
|
string sql = this.GetNewQuerySql(condition, out parameters);
|
|
//分页关键字段及排序
|
|
page.KeyName = "PID";
|
|
page.SortExpression = "ENDTIME ASC";
|
|
using (IDataSession session = AppDataFactory.CreateMainSession()) {
|
|
page = session.GetDataPage<CompleteStatisticsEntity>(sql, parameters, page);
|
|
}
|
|
return page;
|
|
|
|
}
|
|
|
|
public DataPage GetNewList(CompleteStatisticsEntity condition, DataPage page)
|
|
{
|
|
DataParameter[] parameters;
|
|
string sql = this.GetNewQuerySql(condition, out parameters);
|
|
//分页关键字段及排序
|
|
page.KeyName = "PID";
|
|
page.SortExpression = "ENDTIME desc";
|
|
using (IDataSession session = AppDataFactory.CreateMainSession())
|
|
{
|
|
page = session.GetDataPage<CompleteStatisticsEntity>(sql, parameters, page);
|
|
}
|
|
return page;
|
|
|
|
}
|
|
|
|
public List<CompleteStatisticsEntity> GetList(CompleteStatisticsEntity condition)
|
|
{
|
|
DataParameter[] parameters;
|
|
string sql = this.GetNewQuerySql(condition, out parameters);
|
|
using (IDataSession session = AppDataFactory.CreateMainSession())
|
|
{
|
|
return session.GetList<CompleteStatisticsEntity>(sql, parameters).ToList();
|
|
}
|
|
}
|
|
|
|
public CompleteStatisticsEntity Get(CompleteStatisticsEntity model)
|
|
{
|
|
using (IDataSession session = AppDataFactory.CreateMainSession()) {
|
|
return session.Get(model);
|
|
}
|
|
}
|
|
|
|
public int Insert(CompleteStatisticsEntity model)
|
|
{
|
|
using (IDataSession session = AppDataFactory.CreateMainSession()) {
|
|
return session.Insert(model);
|
|
}
|
|
}
|
|
|
|
public int Select_Get(string ProductCode)
|
|
{
|
|
var sql = $"select * from T_AW_COMPLETE_STATISTICS where ORDERNO = '{ProductCode}' and DELFLAG = '0'";
|
|
using (IDataSession session = AppDataFactory.CreateMainSession())
|
|
{
|
|
return session.GetList<CompleteStatisticsEntity>(sql, new DataParameter[] { }).ToList().Count;
|
|
}
|
|
}
|
|
|
|
public bool ExistCompleteStatistics(CompleteStatisticsEntity model)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
protected string ExistQureySql()
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.AppendLine("SELECT *");
|
|
sql.AppendLine(" FROM T_AW_MAINOPERATION T");
|
|
sql.AppendLine(" WHERE INFO.BARCODEIDENTIFY IS NOT NULL");
|
|
sql.AppendLine(" AND T.OPERATEDDATE > @StartTime");
|
|
sql.AppendLine(" AND T.OPERATEDDATE <= @EndTime");
|
|
return sql.ToString();
|
|
}
|
|
|
|
public int Update(CompleteStatisticsEntity model)
|
|
{
|
|
using (IDataSession session = AppDataFactory.CreateMainSession()) {
|
|
return session.Update(model);
|
|
}
|
|
}
|
|
|
|
public int GenericCompleteStatistics(DateTime starTime, DateTime endTime)
|
|
{
|
|
int count = 0;
|
|
using (IDataSession session = AppDataFactory.CreateMainSession())
|
|
{
|
|
|
|
DataParameter[] parameters = {
|
|
new DataParameter {ParameterName = "StartTime", DataType = DbType.DateTime, Value = starTime},
|
|
new DataParameter {ParameterName = "EndTime", DataType = DbType.DateTime, Value = endTime}
|
|
};
|
|
try {
|
|
session.OpenTs();
|
|
//string location = this.GetSystemConfig(CompleteStatisticsConstants.COMP_STATIS_SITE).CODEVALUE;
|
|
//string sql = location.Equals("080121") ? this.GetGenericStatisticsSqlForCC() : this.GetGenericStatisticsSqlForCD();
|
|
//成品
|
|
string sql = GetGenericStatisticsSqlForBORA();
|
|
count = session.ExecuteSql(sql, parameters);
|
|
////更新备份表
|
|
var sql2 = GetGenericStatisticsSqlForINJECT();
|
|
session.ExecuteSql(sql2, parameters);
|
|
|
|
|
|
this.UpdateLastGenericTime(endTime, session);
|
|
session.CommitTs();
|
|
}
|
|
catch (Exception) {
|
|
session.RollbackTs();
|
|
throw;
|
|
}
|
|
}
|
|
return count;
|
|
}
|
|
|
|
public int FrmPlaceCompleteStatistics(DateTime starTime, DateTime endTime)
|
|
{
|
|
int count = 0;
|
|
using (IDataSession session = AppDataFactory.CreateMainSession())
|
|
{
|
|
|
|
//DataParameter[] parameters = {
|
|
// new DataParameter {ParameterName = "StartTime", DataType = DbType.DateTime, Value = starTime},
|
|
// new DataParameter {ParameterName = "EndTime", DataType = DbType.DateTime, Value = endTime}
|
|
//};
|
|
try
|
|
{
|
|
session.OpenTs();
|
|
//string location = this.GetSystemConfig(CompleteStatisticsConstants.COMP_STATIS_SITE).CODEVALUE;
|
|
//string sql = location.Equals("080121") ? this.GetGenericStatisticsSqlForCC() : this.GetGenericStatisticsSqlForCD();
|
|
//成品
|
|
//string sql = GetGenericStatisticsSqlForBORA();
|
|
//count = session.ExecuteSql(sql, parameters);
|
|
////注塑件
|
|
//sql = GetGenericStatisticsSqlForINJECT();
|
|
//count += session.ExecuteSql(sql, parameters);
|
|
|
|
|
|
this.UpdateLastGenericTime(endTime, session);
|
|
session.CommitTs();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
session.RollbackTs();
|
|
throw;
|
|
}
|
|
}
|
|
return count;
|
|
}
|
|
|
|
|
|
public SystemConfig GetSystemConfig(string codeType)
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.AppendLine("SELECT *");
|
|
sql.AppendLine(" FROM T_SYSTEM_CONFIG");
|
|
sql.AppendLine(" WHERE CODETYPE = @CodeType");
|
|
DataParameter[] parameters = {
|
|
new DataParameter {ParameterName = "CodeType", DataType = DbType.String, Value = codeType}
|
|
};
|
|
using (IDataSession session = AppDataFactory.CreateMainSession())
|
|
{
|
|
return session.Get<SystemConfig>(sql.ToString(), parameters);
|
|
}
|
|
}
|
|
|
|
public string GetMFGMaterialCode(string MaterialCode)
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.AppendLine("SELECT *");
|
|
sql.AppendLine(" FROM T_PP_TJFY_ExchangeType");
|
|
sql.AppendLine(" WHERE MaterialCode = @MaterialCode");
|
|
DataParameter[] parameters = {
|
|
new DataParameter {ParameterName = "MaterialCode", DataType = DbType.String, Value = MaterialCode}
|
|
};
|
|
using (IDataSession session = AppDataFactory.CreateMainSession())
|
|
{
|
|
var date = session.GetTable(sql.ToString(), parameters);
|
|
if (date.Rows.Count > 0)
|
|
{
|
|
return date.Rows[0]["MFGMaterialCode"].ToString();
|
|
}
|
|
else
|
|
return "";
|
|
}
|
|
}
|
|
|
|
protected int UpdateLastGenericTime(DateTime endTime, IDataSession session)
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.AppendLine("UPDATE T_SYSTEM_CONFIG");
|
|
sql.AppendLine(" SET CODEVALUE = @EndTime");
|
|
sql.AppendLine(" WHERE CODETYPE = @CodeType");
|
|
DataParameter[] parameters =
|
|
{
|
|
new DataParameter {ParameterName = "EndTime", DataType = DbType.String, Value = endTime.ToString("yyyy/MM/dd HH:mm:ss")},
|
|
new DataParameter {ParameterName = "CodeType", DataType = DbType.String, Value = CompleteStatisticsConstants.COMP_STATIS_LSTTIME}
|
|
};
|
|
return session.ExecuteSql(sql.ToString(), parameters);
|
|
}
|
|
/// <summary>
|
|
/// 成都工厂适用SQL
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
protected string GetGenericStatisticsSqlForCD()
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.AppendLine("INSERT INTO T_AW_COMPLETE_STATISTICS");
|
|
sql.AppendLine("SELECT NEWID(),");
|
|
sql.AppendLine(" REPLACE(T.CUSTOMERSPAREPARTS, ' ', '') AS MATERIALNO,");
|
|
sql.AppendLine(" COUNT(*) AS SYSCOMPLETECOUNT,");
|
|
sql.AppendLine(" COUNT(*) AS COMPLETECOUNT,");
|
|
sql.AppendLine(" @StartTime AS STARTTIME,");
|
|
sql.AppendLine(" @EndTime AS ENDTIME,");
|
|
sql.AppendLine(" CNFG.CODEVALUE + ");
|
|
sql.AppendLine(" REPLACE(CONVERT(VARCHAR(100), GETDATE(), 112) +");
|
|
sql.AppendLine(" CONVERT(VARCHAR(100), GETDATE(), 8),':','') + ");
|
|
sql.AppendLine(" REPLICATE('0', 2 - LEN(ROW_NUMBER() OVER (ORDER BY T.CUSTOMERSPAREPARTS))) + CAST (ROW_NUMBER() OVER (ORDER BY T.CUSTOMERSPAREPARTS) AS VARCHAR) AS ORDERNO,");
|
|
sql.AppendLine(" GETDATE() AS CREATETIME,");
|
|
sql.AppendLine(" USR.USERID AS CREATEUSER,");
|
|
sql.AppendLine(" GETDATE() AS UPDATETIME,");
|
|
sql.AppendLine(" USR.USERID AS UPDATEUSER,");
|
|
sql.AppendLine(" '0' AS DELFLAG");
|
|
sql.AppendLine(" FROM T_DAS_BARCODEVIBPAR T");
|
|
sql.AppendLine(" LEFT JOIN T_QM_USER USR");
|
|
sql.AppendLine(" ON USR.USERID = 'SYSTEM'");
|
|
sql.AppendLine(" LEFT JOIN T_SYSTEM_CONFIG CNFG");
|
|
sql.AppendLine(" ON CNFG.CODETYPE = 'COMP_STATIS_ORDER'");
|
|
sql.AppendLine(" WHERE T.SCANTIME > @StartTime");
|
|
sql.AppendLine(" AND T.SCANTIME <= @EndTime");
|
|
sql.AppendLine(" AND SUBSTRING(T.ABARCODE, 9, 2) <> '99'");
|
|
sql.AppendLine(" GROUP BY T.CUSTOMERSPAREPARTS, USR.USERID, CNFG.CODEVALUE");
|
|
return sql.ToString();
|
|
}
|
|
//长春
|
|
protected string GetGenericStatisticsSqlForCC()
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.AppendLine("INSERT INTO T_AW_COMPLETE_STATISTICS");
|
|
sql.AppendLine("SELECT NEWID(),");
|
|
sql.AppendLine(" INFO.MATERIALNO AS MATERIALNO,");
|
|
sql.AppendLine(" COUNT(*) AS SYSCOMPLETECOUNT,");
|
|
sql.AppendLine(" COUNT(*) AS COMPLETECOUNT,");
|
|
sql.AppendLine(" @StartTime AS STARTTIME,");
|
|
sql.AppendLine(" @EndTime AS ENDTIME,");
|
|
sql.AppendLine(" CNFG.CODEVALUE + ");
|
|
sql.AppendLine(" REPLACE(CONVERT(VARCHAR(100), GETDATE(), 112) +");
|
|
sql.AppendLine(" CONVERT(VARCHAR(100), GETDATE(), 8),':','') + ");
|
|
sql.AppendLine(" REPLICATE('0', 2 - LEN(ROW_NUMBER() OVER (ORDER BY INFO.MATERIALNO))) + CAST (ROW_NUMBER() OVER (ORDER BY INFO.MATERIALNO) AS VARCHAR) AS ORDERNO,");
|
|
sql.AppendLine(" GETDATE() AS CREATETIME,");
|
|
sql.AppendLine(" USR.USERID AS CREATEUSER,");
|
|
sql.AppendLine(" GETDATE() AS UPDATETIME,");
|
|
sql.AppendLine(" USR.USERID AS UPDATEUSER,");
|
|
sql.AppendLine(" '0' AS DELFLAG");
|
|
sql.AppendLine(" FROM T_AW_MAINOPERATION T");
|
|
sql.AppendLine(" LEFT JOIN T_BD_BARCODE_PRODUCT_RELATION RELATION");
|
|
sql.AppendLine(" ON T.PRODUCTTYPE = RELATION.PRODUCTTYPE");
|
|
sql.AppendLine(" AND T.PROCESSTYPE = RELATION.PROCESSTYPE");
|
|
sql.AppendLine(" LEFT JOIN T_BD_MATERIAL_BARCODE_INFO INFO");
|
|
sql.AppendLine(" ON INFO.PROCESSTYPE = RELATION.PROCESSTYPE");
|
|
sql.AppendLine(" AND INFO.PRODUCTTYPE = RELATION.PRODUCTTYPE");
|
|
sql.AppendLine(" AND SUBSTRING(T.PRODUCTCODE, RELATION.STARTINDEX, RELATION.SUBLENGTH) = INFO.BARCODEIDENTIFY");
|
|
sql.AppendLine(" LEFT JOIN T_QM_USER USR");
|
|
sql.AppendLine(" ON USR.USERNAME = 'SYSTEM'");
|
|
sql.AppendLine(" LEFT JOIN T_SYSTEM_CONFIG CNFG");
|
|
sql.AppendLine(" ON CNFG.CODETYPE = 'COMP_STATIS_ORDER'");
|
|
sql.AppendLine(" WHERE INFO.BARCODEIDENTIFY IS NOT NULL");
|
|
sql.AppendLine(" AND T.OPERATEDDATE > @StartTime");
|
|
sql.AppendLine(" AND T.OPERATEDDATE <= @EndTime");
|
|
sql.AppendLine(" GROUP BY INFO.MATERIALNO, USR.USERID, CNFG.CODEVALUE");
|
|
return sql.ToString();
|
|
}
|
|
//青岛仪表板/门板的成品
|
|
//protected string GetGenericStatisticsSqlForBORA()
|
|
//{
|
|
// StringBuilder sql = new StringBuilder();
|
|
// sql.AppendLine(" INSERT INTO T_AW_COMPLETE_STATISTICS ");
|
|
// sql.AppendLine(" SELECT NEWID(), ");
|
|
// sql.AppendLine(" T.MATERIAL_CODE AS MATERIALNO, ");
|
|
// sql.AppendLine(" COUNT(*) AS SYSCOMPLETECOUNT, ");
|
|
// sql.AppendLine(" COUNT(*) AS COMPLETECOUNT, ");
|
|
// sql.AppendLine(" @StartTime AS STARTTIME, ");
|
|
// sql.AppendLine(" @EndTime AS ENDTIME, ");
|
|
// sql.AppendLine(" CNFG.CODEVALUE + ");
|
|
// sql.AppendLine(" REPLACE(CONVERT(VARCHAR(100), GETDATE(), 112) + ");
|
|
// sql.AppendLine(" CONVERT(VARCHAR(100), GETDATE(), 8),':','') + ");
|
|
// sql.AppendLine(" REPLICATE('0', 2 - LEN(ROW_NUMBER() OVER (ORDER BY T.MATERIAL_CODE))) + CAST (ROW_NUMBER() OVER (ORDER BY T.MATERIAL_CODE) AS VARCHAR) AS ORDERNO, ");
|
|
// sql.AppendLine(" GETDATE() AS CREATETIME, ");
|
|
// sql.AppendLine(" USR.USERID AS CREATEUSER, ");
|
|
// sql.AppendLine(" GETDATE() AS UPDATETIME, ");
|
|
// sql.AppendLine(" USR.USERID AS UPDATEUSER, ");
|
|
// sql.AppendLine(" '0' AS DELFLAG ");
|
|
// sql.AppendLine(" FROM T_AW_MAINOPERATION T ");
|
|
// sql.AppendLine(" LEFT JOIN T_MD_MATERIAL_CLASS C ON C.MATERIAL_TYPE_CODE=T.MATERIAL_TYPE_CODE ");
|
|
// sql.AppendLine(" LEFT JOIN T_QM_USER USR ");
|
|
// sql.AppendLine(" ON USR.USERNAME = 'SYSTEM' ");
|
|
// sql.AppendLine(" LEFT JOIN T_SYSTEM_CONFIG CNFG ");
|
|
// sql.AppendLine(" ON CNFG.CODETYPE = 'COMP_STATIS_ORDER' ");
|
|
// sql.AppendLine(" WHERE T.OPERATEDDATE > @StartTime ");
|
|
// sql.AppendLine(" AND T.OPERATEDDATE <= @EndTime ");
|
|
// sql.AppendLine(" AND C.MATERIAL_ATTRIBUTE='2' ");
|
|
// sql.AppendLine(" GROUP BY T.MATERIAL_CODE, USR.USERID, CNFG.CODEVALUE ");
|
|
// return sql.ToString();
|
|
//}
|
|
//青岛注塑件
|
|
protected string GetGenericStatisticsSqlForBORA()
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.AppendLine(" INSERT INTO T_AW_COMPLETE_STATISTICS SELECT NEWID(),MATERIALNO AS MATERIALNO,COUNT(MATERIALNO) AS SYSCOMPLETECOUNT,COUNT(MATERIALNO) AS COMPLETECOUNT, ");
|
|
sql.AppendLine(" @StartTime AS STARTTIME,");
|
|
sql.AppendLine(" @EndTime AS ENDTIME,");
|
|
sql.AppendLine(" CASE MAX(line) WHEN '770B' THEN 'DP20' ELSE MAX(line) END AS ORDERNO, ");
|
|
sql.AppendLine(" GETDATE() AS CREATETIME,");
|
|
sql.AppendLine(" 'b5c45b3e-724e-4d92-aad0-ef0cf3422a9e' AS CREATEUSER,");
|
|
sql.AppendLine(" GETDATE() AS UPDATETIME,");
|
|
sql.AppendLine(" 'b5c45b3e-724e-4d92-aad0-ef0cf3422a9e' AS UPDATEUSER,");
|
|
sql.AppendLine(" '0' AS DELFLAG");
|
|
sql.AppendLine(" FROM T_AW_COMPLETE_TJSTATISTICS T");
|
|
sql.AppendLine(" WHERE T.DELFLAG ='0' ");
|
|
sql.AppendLine(" AND T.ENDTIME > @StartTime ");
|
|
sql.AppendLine(" AND T.ENDTIME <= @EndTime");
|
|
sql.AppendLine(" GROUP BY T.MATERIALNO ");
|
|
return sql.ToString();
|
|
}
|
|
|
|
protected string GetGenericStatisticsSqlForINJECT()
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
|
|
sql.AppendLine(" update T_AW_COMPLETE_TJSTATISTICS set DELFLAG ='1' ");
|
|
sql.AppendLine(" WHERE DELFLAG ='0'");
|
|
sql.AppendLine(" AND ENDTIME > @StartTime ");
|
|
sql.AppendLine(" AND ENDTIME <= @EndTime ");
|
|
return sql.ToString();
|
|
}
|
|
protected string GetQuerySql(CompleteStatisticsEntity condition, out DataParameter[] parameters)
|
|
{
|
|
List<DataParameter> parametersList = new List<DataParameter>();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.AppendLine("SELECT T.PID, ");
|
|
sql.AppendLine(" T.MATERIALNO, ");
|
|
sql.AppendLine(" MAT.MATERIALNAME, ");
|
|
sql.AppendLine(" MAT.PRODUCTLINE, ");
|
|
sql.AppendLine(" T.SYSCOMPLETECOUNT,");
|
|
sql.AppendLine(" T.COMPLETECOUNT,");
|
|
sql.AppendLine(" T.STARTTIME, ");
|
|
sql.AppendLine(" T.ENDTIME, ");
|
|
sql.AppendLine(" T.ORDERNO, ");
|
|
sql.AppendLine(" T.CREATETIME,");
|
|
sql.AppendLine(" T.CREATEUSER,");
|
|
sql.AppendLine(" T.UPDATETIME,");
|
|
sql.AppendLine(" T.UPDATEUSER,");
|
|
sql.AppendLine(" T.DELFLAG,");
|
|
sql.AppendLine(" CUSER.USERNAME AS CREATEUSER_DISPLAY,");
|
|
sql.AppendLine(" UUSER.USERNAME AS UPDATEUSER_DISPLAY");
|
|
sql.AppendLine(" FROM T_AW_COMPLETE_STATISTICS T");
|
|
sql.AppendLine(" LEFT JOIN T_QM_USER CUSER");
|
|
sql.AppendLine(" ON T.CREATEUSER = CUSER.USERID");
|
|
sql.AppendLine(" LEFT JOIN T_QM_USER UUSER");
|
|
sql.AppendLine(" ON T.UPDATEUSER = UUSER.USERID");
|
|
sql.AppendLine(" INNER JOIN T_BD_MATERIAL_BARCODE_INFO MAT");
|
|
sql.AppendLine(" ON T.MATERIALNO = MAT.MATERIALNO");
|
|
sql.AppendLine(" WHERE 1 = 1");
|
|
if (!string.IsNullOrWhiteSpace(condition.MATERIALNO))
|
|
{
|
|
sql.AppendLine(" AND T.MATERIALNO LIKE @MaterialNo");
|
|
parametersList.Add(new DataParameter { ParameterName = "MaterialNo", DataType = DbType.String, Value = string.Format("%{0}%", condition.MATERIALNO) });
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(condition.DELFLAG))
|
|
{
|
|
if(condition.DELFLAG == "是")
|
|
sql.AppendLine(" AND T.DELFLAG = '1'");
|
|
else if(condition.DELFLAG == "否")
|
|
sql.AppendLine(" AND T.DELFLAG = '0'");
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(condition.SENDTIME))
|
|
{
|
|
sql.AppendLine(" AND T.ENDTIME >= @SEndTime");
|
|
parametersList.Add(new DataParameter { ParameterName = "SEndTime", DataType = DbType.DateTime, Value = Convert.ToDateTime(condition.SENDTIME) });
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(condition.EENDTIME))
|
|
{
|
|
sql.AppendLine(" AND T.ENDTIME <= @EEndTime");
|
|
parametersList.Add(new DataParameter { ParameterName = "EEndTime", DataType = DbType.DateTime, Value = Convert.ToDateTime(condition.EENDTIME) });
|
|
}
|
|
parameters = parametersList.ToArray();
|
|
return sql.ToString();
|
|
}
|
|
|
|
protected string GetNewQuerySql(CompleteStatisticsEntity condition, out DataParameter[] parameters)
|
|
{
|
|
List<DataParameter> parametersList = new List<DataParameter>();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.AppendLine("SELECT T.PID, ");
|
|
sql.AppendLine(" T.MATERIALNO, ");
|
|
sql.AppendLine(" T.SYSCOMPLETECOUNT,");
|
|
sql.AppendLine(" T.COMPLETECOUNT,");
|
|
sql.AppendLine(" T.STARTTIME, ");
|
|
sql.AppendLine(" T.ENDTIME, ");
|
|
sql.AppendLine(" T.ORDERNO, ");
|
|
sql.AppendLine(" T.CREATETIME,");
|
|
sql.AppendLine(" T.CREATEUSER,");
|
|
sql.AppendLine(" T.UPDATETIME,");
|
|
sql.AppendLine(" T.UPDATEUSER,");
|
|
sql.AppendLine(" T.DELFLAG,");
|
|
sql.AppendLine(" T.line as 'PRODUCTLINE',");
|
|
sql.AppendLine(" CUSER.USERNAME AS CREATEUSER_DISPLAY,");
|
|
sql.AppendLine(" UUSER.USERNAME AS UPDATEUSER_DISPLAY");
|
|
sql.AppendLine(" FROM T_AW_COMPLETE_TJSTATISTICS T");
|
|
sql.AppendLine(" LEFT JOIN T_QM_USER CUSER");
|
|
sql.AppendLine(" ON T.CREATEUSER = CUSER.USERID");
|
|
sql.AppendLine(" LEFT JOIN T_QM_USER UUSER");
|
|
sql.AppendLine(" ON T.UPDATEUSER = UUSER.USERID");
|
|
sql.AppendLine(" WHERE 1 = 1");
|
|
if (!string.IsNullOrWhiteSpace(condition.MATERIALNO))
|
|
{
|
|
sql.AppendLine(" AND T.MATERIALNO LIKE @MaterialNo");
|
|
parametersList.Add(new DataParameter { ParameterName = "MaterialNo", DataType = DbType.String, Value = string.Format("%{0}%", condition.MATERIALNO) });
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(condition.DELFLAG))
|
|
{
|
|
if (condition.DELFLAG == "是")
|
|
sql.AppendLine(" AND T.DELFLAG = '1'");
|
|
else if (condition.DELFLAG == "否")
|
|
sql.AppendLine(" AND T.DELFLAG = '0'");
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(condition.SENDTIME))
|
|
{
|
|
sql.AppendLine(" AND T.ENDTIME >= @SEndTime");
|
|
parametersList.Add(new DataParameter { ParameterName = "SEndTime", DataType = DbType.DateTime, Value = Convert.ToDateTime(condition.SENDTIME) });
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(condition.EENDTIME))
|
|
{
|
|
sql.AppendLine(" AND T.ENDTIME <= @EEndTime");
|
|
parametersList.Add(new DataParameter { ParameterName = "EEndTime", DataType = DbType.DateTime, Value = Convert.ToDateTime(condition.EENDTIME) });
|
|
}
|
|
parameters = parametersList.ToArray();
|
|
return sql.ToString();
|
|
}
|
|
|
|
|
|
public List<CompleteStatisticsEntity> GetExportData(CompleteStatisticsEntity model, IDataSession session)
|
|
{
|
|
DataParameter[] parameters;
|
|
string sql = this.GetExportSql(model, out parameters);
|
|
DataParameter[] unableParameters;
|
|
//数据上传状态回填
|
|
string unableSql = this.unableExportDataString(model, out unableParameters);
|
|
|
|
List<CompleteStatisticsEntity> rtn = session.GetList<CompleteStatisticsEntity>(sql, parameters).ToList();
|
|
|
|
//var count = session.ExecuteSql(unableSql, unableParameters);
|
|
|
|
using (IDataSession session2 = AppDataFactory.CreateMainSession())
|
|
{
|
|
var count = session2.ExecuteSql(unableSql, unableParameters);
|
|
}
|
|
return rtn;
|
|
}
|
|
|
|
private string unableExportDataString(CompleteStatisticsEntity condition, out DataParameter[] parameters)
|
|
{
|
|
List<DataParameter> parametersList = new List<DataParameter>();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.AppendLine("UPDATE [dbo].[T_AW_COMPLETE_STATISTICS] ");
|
|
sql.AppendLine(" SET DELFLAG = '1'");
|
|
sql.AppendLine(" WHERE DELFLAG = '0'");
|
|
if (!string.IsNullOrWhiteSpace(condition.MATERIALNO))
|
|
{
|
|
sql.AppendLine(" AND MATERIALNO LIKE @MaterialNo");
|
|
parametersList.Add(new DataParameter { ParameterName = "MaterialNo", DataType = DbType.String, Value = string.Format("%{0}%", condition.MATERIALNO) });
|
|
}
|
|
//20211214重传后DELFLAG状态修改
|
|
//if (!string.IsNullOrWhiteSpace(condition.SENDTIME))
|
|
//{
|
|
// sql.AppendLine(" AND ENDTIME >= @SEndTime");
|
|
// parametersList.Add(new DataParameter { ParameterName = "SEndTime", DataType = DbType.DateTime, Value = Convert.ToDateTime(condition.SENDTIME) });
|
|
//}
|
|
if (!string.IsNullOrWhiteSpace(condition.EENDTIME))
|
|
{
|
|
sql.AppendLine(" AND ENDTIME <= @EEndTime");
|
|
parametersList.Add(new DataParameter { ParameterName = "EEndTime", DataType = DbType.DateTime, Value = Convert.ToDateTime(condition.EENDTIME) });
|
|
}
|
|
parameters = parametersList.ToArray();
|
|
return sql.ToString();
|
|
}
|
|
|
|
//protected string GetExportSql(CompleteStatisticsEntity condition, out DataParameter[] parameters)
|
|
//{
|
|
// List<DataParameter> parametersList = new List<DataParameter>();
|
|
// StringBuilder sql = new StringBuilder();
|
|
// sql.AppendLine("SELECT EM.CODEVALUE AS EMPLOYEE, ");
|
|
// sql.AppendLine(" SI.CODEVALUE AS SITE, ");
|
|
// sql.AppendLine(" '' AS SHIFT, ");
|
|
// sql.AppendLine(" T.MATERIALNO, ");
|
|
// sql.AppendLine(" MAT.PRODUCTLINE, ");
|
|
// sql.AppendLine(" '' AS EDIMAT, ");
|
|
// sql.AppendLine(" '' AS SERIAL, ");
|
|
// sql.AppendLine(" USR.CODEVALUE AS USERID, ");
|
|
// sql.AppendLine(" T.ORDERNO, ");
|
|
// sql.AppendLine(" T.COMPLETECOUNT,");
|
|
// sql.AppendLine(" T.STARTTIME");
|
|
// sql.AppendLine(" FROM T_AW_COMPLETE_STATISTICS T");
|
|
// sql.AppendLine(" INNER JOIN T_BD_MATERIAL_BARCODE_INFO MAT");
|
|
// sql.AppendLine(" ON T.MATERIALNO = MAT.MATERIALNO");
|
|
// sql.AppendLine(" LEFT JOIN T_SYSTEM_CONFIG EM");
|
|
// sql.AppendLine(" ON EM.CODETYPE = @Employee");
|
|
// parametersList.Add(new DataParameter { ParameterName = "Employee", DataType = DbType.String, Value = CompleteStatisticsConstants.COMP_STATIS_EMPLOYEE });
|
|
// sql.AppendLine(" LEFT JOIN T_SYSTEM_CONFIG SI");
|
|
// sql.AppendLine(" ON SI.CODETYPE = @Site");
|
|
// parametersList.Add(new DataParameter { ParameterName = "Site", DataType = DbType.String, Value = CompleteStatisticsConstants.COMP_STATIS_SITE });
|
|
|
|
// sql.AppendLine(" LEFT JOIN T_SYSTEM_CONFIG USR");
|
|
// sql.AppendLine(" ON USR.CODETYPE = @UserId");
|
|
// parametersList.Add(new DataParameter { ParameterName = "UserId", DataType = DbType.String, Value = CompleteStatisticsConstants.COMP_STATIS_USER });
|
|
|
|
// sql.AppendLine(" LEFT JOIN T_SYSTEM_CONFIG ORD");
|
|
// sql.AppendLine(" ON ORD.CODETYPE = @OrderNo");
|
|
// parametersList.Add(new DataParameter { ParameterName = "OrderNo", DataType = DbType.String, Value = CompleteStatisticsConstants.COMP_STATIS_ORDER });
|
|
|
|
// sql.AppendLine(" WHERE T.DELFLAG = '0'");
|
|
// if (!string.IsNullOrWhiteSpace(condition.MATERIALNO))
|
|
// {
|
|
// sql.AppendLine(" AND T.MATERIALNO LIKE @MaterialNo");
|
|
// parametersList.Add(new DataParameter { ParameterName = "MaterialNo", DataType = DbType.String, Value = string.Format("%{0}%", condition.MATERIALNO) });
|
|
// }
|
|
// if (!string.IsNullOrWhiteSpace(condition.SENDTIME))
|
|
// {
|
|
// sql.AppendLine(" AND T.ENDTIME >= @SEndTime");
|
|
// parametersList.Add(new DataParameter { ParameterName = "SEndTime", DataType = DbType.DateTime, Value = Convert.ToDateTime(condition.SENDTIME) });
|
|
// }
|
|
// if (!string.IsNullOrWhiteSpace(condition.EENDTIME))
|
|
// {
|
|
// sql.AppendLine(" AND T.ENDTIME <= @EEndTime");
|
|
// parametersList.Add(new DataParameter { ParameterName = "EEndTime", DataType = DbType.DateTime, Value = string.Format("{0}", condition.EENDTIME) });
|
|
// }
|
|
// sql.AppendLine(" ORDER BY T.ORDERNO ASC");
|
|
|
|
// parameters = parametersList.ToArray();
|
|
// return sql.ToString();
|
|
//}
|
|
protected string GetExportSql(CompleteStatisticsEntity condition, out DataParameter[] parameters)
|
|
{
|
|
List<DataParameter> parametersList = new List<DataParameter>();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.AppendLine("SELECT (select top 1 MFG_USERCODE from T_AW_COMPLETE_MFG_CONFIG where MFG_MATERIAL_CODE = T.MATERIALNO) AS EMPLOYEE, ");
|
|
sql.AppendLine(" (select top 1 MFG_LOCATIONCODE from T_AW_COMPLETE_MFG_CONFIG where MFG_MATERIAL_CODE = T.MATERIALNO) AS SITE, ");
|
|
sql.AppendLine(" '' AS SHIFT, ");
|
|
sql.AppendLine(" T.MATERIALNO, ");
|
|
sql.AppendLine(" (select top 1 PRODUCELINECODE from T_AW_COMPLETE_MFG_CONFIG where MFG_MATERIAL_CODE = T.MATERIALNO) AS PRODUCTLINE, ");
|
|
sql.AppendLine(" '' AS EDIMAT, ");
|
|
sql.AppendLine(" '' AS SERIAL, ");
|
|
sql.AppendLine(" (select top 1 USERID from T_AW_COMPLETE_MFG_CONFIG where MFG_MATERIAL_CODE = T.MATERIALNO), ");
|
|
sql.AppendLine(" T.ORDERNO, ");
|
|
sql.AppendLine(" T.COMPLETECOUNT,");
|
|
sql.AppendLine(" T.STARTTIME,");
|
|
sql.AppendLine(" T.ENDTIME");
|
|
sql.AppendLine(" FROM T_AW_COMPLETE_STATISTICS T");
|
|
|
|
sql.AppendLine(" WHERE T.DELFLAG = '0'");
|
|
if (!string.IsNullOrWhiteSpace(condition.MATERIALNO))
|
|
{
|
|
sql.AppendLine(" AND T.MATERIALNO LIKE @MaterialNo");
|
|
parametersList.Add(new DataParameter { ParameterName = "MaterialNo", DataType = DbType.String, Value = string.Format("%{0}%", condition.MATERIALNO) });
|
|
}
|
|
//20211214如网络中断,重连后数据重传
|
|
//if (!string.IsNullOrWhiteSpace(condition.SENDTIME))
|
|
//{
|
|
// sql.AppendLine(" AND T.ENDTIME >= @SEndTime");
|
|
// parametersList.Add(new DataParameter { ParameterName = "SEndTime", DataType = DbType.DateTime, Value = Convert.ToDateTime(condition.SENDTIME) });
|
|
//}
|
|
if (!string.IsNullOrWhiteSpace(condition.EENDTIME))
|
|
{
|
|
sql.AppendLine(" AND T.ENDTIME <= @EEndTime");
|
|
parametersList.Add(new DataParameter { ParameterName = "EEndTime", DataType = DbType.DateTime, Value = string.Format("{0}", condition.EENDTIME) });
|
|
}
|
|
sql.AppendLine(" ORDER BY T.ORDERNO ASC");
|
|
|
|
parameters = parametersList.ToArray();
|
|
return sql.ToString();
|
|
}
|
|
|
|
public DataTable ExportExcelData(CompleteStatisticsEntity model)
|
|
{
|
|
DataParameter[] parameters;
|
|
string sql = this.GetNewQuerySql(model, out parameters);
|
|
using (IDataSession session = AppDataFactory.CreateMainSession())
|
|
{
|
|
return session.GetTable(sql, parameters);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|