using iWareCommon.Utils;
using iWareLog.ORM;
using iWareLog.Report.Helper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iWareLog.Report.Service
{
public class InOutService
{
private static object Lock = new object();
private static InOutService Instance = null;
///
/// 获取单例的方法
///
/// 单例实体
public static InOutService GetInstance()
{
if (Instance == null)
{
lock (Lock)
{
if (Instance == null)
{
Instance = new InOutService();
}
}
}
return Instance;
}
///
/// 根据出入库类型,物料类型查询
///
///
///
///
public List GetMaterial(DateTime start, DateTime end, int type)
{
using (DbModelLog context = new DbModelLog())
{
try
{
string sql = @"select count(B.typename)quantity,B.typename materialcode from InOutStorageDetail A left join WGQ_WB19011_CORE.[dbo].[BASEMaterialView] B on A.materialid=B.id
where A.type=@p0 and A.updatetime>=@p1 and A.updatetime<@p2 group by B.typename";
List data = context.Database.SqlQuery(sql, type, start, end).ToList();
return data;
}
catch (Exception ex)
{
LogTextHelper.WriteLine("InOutService", "GetInMaterial", ex.ToString());
return null;
}
}
}
///
/// 查询出入库明细及物料信息(联查 InOutStorageDetail 和 BASEMaterialView)
///
/// 返回包含型材编码、船号、分段号、业务标识、库位、时间等信息的列表
public List GetInOutStorageDetailListForMes()
{
using (DbModelLog context = new DbModelLog())
{
try
{
string sql = @"
SELECT
A.id AS Id,
B.code AS Code,
B.issueprojectno AS IssueProjectNo,
B.serialno AS SerialNo,
A.type AS BusinessFlag,
A.toplacecode AS PlaceCode,
A.createtime AS Timestamp,
A.createtime AS OccurrenceTime
FROM
InOutStorageDetail A
INNER JOIN
WGQ_WB19011_CORE.[dbo].[BASEMaterialView] B
ON A.materialid = B.id And A.isSendToMes=1 ";
// 执行 SQL 查询,并映射到自定义类 InOutStorageDetailResult
var data = context.Database.SqlQuery(sql).ToList();
return data;
}
catch (Exception ex)
{
// 记录异常日志(和你原有方法保持一致)
LogTextHelper.WriteLine("InOutService", "GetInOutStorageDetailList", ex.ToString());
return null; // 或者返回 new List(),根据你的业务需求
}
}
}
}
}