using FactorySystemCommon;
using FactorySystemModel.EnumModel;
using FactorySystemModel.RequestModel;
using FactorySystemModel.ResponseModel;
using FactorySystemModel.SqlSugarModel;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Security.Cryptography;
using static FactorySystemModel.EnumModel.Constant;
namespace FactorySystemBll
{
public class MaterialTeamworkBll
{
///
/// 获取路线列表
///
public List GetList(MaterialTeamworkQuery mtq, out int totalNumber)
{
totalNumber = 0;
var db = AppSettingsHelper.GetSqlSugar();
return db.Queryable((a, b, c) => new JoinQueryInfos(JoinType.Left, a.FAddUser == b.FID, JoinType.Left, a.FCreateFactoryID == c.FID))
// 事项状态
.WhereIF(mtq.FState > 0 && mtq.FState != 99, a => a.FState == mtq.FState)
// 物料号
.WhereIF(!string.IsNullOrEmpty(mtq.FMaterialCode), a => a.FMaterialCode.Equals(mtq.FMaterialCode))
// 类型
.WhereIF(mtq.FTeamworkType > 0, a => a.FTeamworkType == mtq.FTeamworkType)
// 发起时间
.WhereIF(mtq.FDateRange != null && mtq.FDateRange[0] != "",a => a.FAddDate >= DateTime.Parse(mtq.FDateRange[0]))
.WhereIF(mtq.FDateRange != null && mtq.FDateRange[1] != "", a => a.FAddDate <= DateTime.Parse(mtq.FDateRange[1]))
// 责任人
//.WhereIF(mtq.FUserID != null, (a, b) => (',' + a.FUserID + ',').Contains(',' + mtq.FUserID + ',') || a.FAddUser.Equals(mtq.FUserID))
//// 协同
//.WhereIF(mtq.FMaterialTeamID > 0, (a, b) => a.FMaterialTeamID == mtq.FMaterialTeamID).OrderBy((a, b) => a.FID, OrderByType.Desc)
.Select("a.* ,c.FName as FCreateFactoryName, b.FName as FAddUserName").OrderBy((a) => a.FID, OrderByType.Desc)
.ToPageList(mtq.FPageIndex, mtq.FPageSize, ref totalNumber);
}
///
/// 获取视图编辑列
///
public List> GetColumns()
{
List fieldList = AppSettingsHelper.GetSqlSugar().Queryable()
.Where(it => it.FType == (int)Constant.ViewType.成品视图 || it.FType == (int)Constant.ViewType.物料主表)
.OrderBy(it => it.FType, OrderByType.Desc)
.OrderBy(it => it.FOrder)
.ToList();
List> dicList = new List>();
foreach (var field in fieldList)
{
Dictionary dic = new Dictionary { { "id", field.FID } };
string[] fArr = field.FField.Split('.');
dic.Add("key", fArr.Last());
dic.Add("table", fArr.First());
string[] nArr = field.FName.Split('.');
dic.Add("title", nArr.Last());
dic.Add("category", nArr.First());
dic.Add("width", field.FWidth);
dic.Add("align", field.FAlign);
dic.Add("dataType", field.FDataType);
if (field.FName.Equals("基本视图.大小/量纲(规格)") || field.FName.Equals("基本视图.毛重") || field.FName.Equals("基本视图.净重"))
{
dic.Add("fieldType", 7);
}
else
{
dic.Add("fieldType", field.FType);
}
dicList.Add(dic);
}
return dicList;
}
///
/// 获取视图
///
public List> GetMaterialViewsByTeamId(int teamId, int teamworkType, int teamType, int currUserId, bool byFactory, out List materialId)
{
TUser currUser = null;
if (byFactory == true) currUser = BaseBll.GetTempModel(currUserId, "FFactoryID");
var db = AppSettingsHelper.GetSqlSugar();
List> viewList = new List>();
if (teamworkType == 2)
{
viewList = db.Queryable((a, b) =>
new JoinQueryInfos(JoinType.Inner, a.FMaterialID == b.FID))
.Where((a, b) => a.FMdfMaterialTeamID == teamId)
.Where((a, b) => a.FTeamType == teamType)
//.WhereIF(currUser != null, (a, b) => a.FFactoryID == currUser.FFactoryID)
.Select