|
|
|
|
|
using FactorySystemCommon;
|
|
|
|
|
|
using FactorySystemModel.SqlSugarModel;
|
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Reflection;
|
|
|
|
|
|
using FactorySystemModel.EnumModel;
|
|
|
|
|
|
using System.Data;
|
|
|
|
|
|
|
|
|
|
|
|
namespace FactorySystemBll
|
|
|
|
|
|
{
|
|
|
|
|
|
public class MaterialBll
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly string[] NoSetField = "FID,FAddDate,FEditDate".Split(',');
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 物料主数据比对
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int DockingRecipeData(List<TFS_Material> mainList, List<PropertyInfo> mainProp, int userId)
|
|
|
|
|
|
{
|
|
|
|
|
|
int result = 0;
|
|
|
|
|
|
if (mainList.Count == 0) return result;
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
List<TFS_Factory> factorys = db.Queryable<TFS_Factory>().OrderBy(s => s.FDeleted).ToList();
|
|
|
|
|
|
//已存在
|
|
|
|
|
|
List<string> codes = mainList.GroupBy(g => g.FCode).Select(ss => ss.Key).ToList();
|
|
|
|
|
|
List<TFS_Material> mainsList = db.Queryable<TFS_Material>().Where(s => s.FDeleted != (int)Constant.DeleteCode.已删除 && codes.Contains(s.FCode)).ToList();
|
|
|
|
|
|
//增改
|
|
|
|
|
|
List<TFS_Material> updateList = new List<TFS_Material>();
|
|
|
|
|
|
List<TFS_Material> insertList = new List<TFS_Material>();
|
|
|
|
|
|
//根据物料号分组
|
|
|
|
|
|
foreach (var item in mainList.GroupBy(s => s.FCode))
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_Material temp = mainsList.Find(d => d.FCode == item.Key);
|
|
|
|
|
|
if (temp == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
temp = item.First();
|
|
|
|
|
|
if (!string.IsNullOrEmpty(temp.FFactoryCode))
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_Factory factory = factorys.Find(s => s.FCode == temp.FFactoryCode);
|
|
|
|
|
|
if (factory == null) factory = factorys.Find(s => s.FName == temp.FFactoryCode);
|
|
|
|
|
|
if (factory == null) temp.FFactoryID = -1;
|
|
|
|
|
|
else temp.FFactoryID = factory.FID;
|
|
|
|
|
|
}
|
|
|
|
|
|
temp.FAddDate = temp.FEditDate = DateTime.Now;
|
|
|
|
|
|
temp.FEditUser = userId;
|
|
|
|
|
|
insertList.Add(temp);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
temp.FEditDate = DateTime.Now;
|
|
|
|
|
|
temp.FEditUser = userId;
|
|
|
|
|
|
string value;
|
|
|
|
|
|
foreach (PropertyInfo mProp in mainProp)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!NoSetField.Contains(mProp.Name) && mProp.PropertyType.Name != "Boolean")
|
|
|
|
|
|
{
|
|
|
|
|
|
object mPV = mProp.GetValue(item.First());
|
|
|
|
|
|
if (mPV != null && !string.IsNullOrEmpty(value = mPV.ToString()) && value != "null" && value != "0")
|
|
|
|
|
|
{
|
|
|
|
|
|
if (mProp.PropertyType.Name == "Int32")
|
|
|
|
|
|
{
|
|
|
|
|
|
if (int.TryParse(value, out int val)) mProp.SetValue(temp, val);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
mProp.SetValue(temp, value);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
updateList.Add(temp);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
db.BeginTran();
|
|
|
|
|
|
if (updateList.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var item in updateList)
|
|
|
|
|
|
{
|
|
|
|
|
|
result += db.Updateable(item).IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (insertList.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var item in insertList)
|
|
|
|
|
|
{
|
|
|
|
|
|
result += db.Insertable(item).IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
db.CommitTran();
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception)
|
|
|
|
|
|
{
|
|
|
|
|
|
db.RollbackTran();
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<TFS_Material> GetMaterial(int tempId)
|
|
|
|
|
|
{
|
|
|
|
|
|
return AppSettingsHelper.GetSqlSugar()
|
|
|
|
|
|
.Queryable<TFS_Material, TFS_ViewMaterial>((a, b) => new JoinQueryInfos(JoinType.Left, a.FID == b.FMaterialID))
|
|
|
|
|
|
.Where((a, b) => b.FTeamID == tempId).Select<TFS_Material>((a, b) => a).ToList();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 物料子数据比对
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int DockingRecipeData(List<TFS_ViewMaterial> childList, List<PropertyInfo> childProp, int userId)
|
|
|
|
|
|
{
|
|
|
|
|
|
int result = 0;
|
|
|
|
|
|
if (childList.Count == 0) return result;
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
//主数据
|
|
|
|
|
|
List<string> codes = childList.GroupBy(g => g.FCode).Select(ss => ss.Key).ToList();
|
|
|
|
|
|
List<TFS_Material> mainList = db.Queryable<TFS_Material>().Where(s => s.FDeleted != (int)Constant.DeleteCode.已删除 && codes.Contains(s.FCode)).ToList();
|
|
|
|
|
|
if (mainList == null || mainList.Count == 0) return result;
|
|
|
|
|
|
//已存在子数据
|
|
|
|
|
|
codes = mainList.Select(ss => ss.FID.ToString()).ToList();
|
|
|
|
|
|
List<TFS_ViewMaterial> childsList = db.Queryable<TFS_ViewMaterial>().Where(s => s.FDeleted != (int)Constant.DeleteCode.已删除
|
|
|
|
|
|
&& codes.Contains(s.FMaterialID.ToString())).ToList();
|
|
|
|
|
|
List<TFS_Factory> factorys = db.Queryable<TFS_Factory>().OrderBy(s => s.FDeleted).ToList();
|
|
|
|
|
|
List<TFS_ViewMaterial> updateList = new List<TFS_ViewMaterial>();
|
|
|
|
|
|
List<TFS_ViewMaterial> insertList = new List<TFS_ViewMaterial>();
|
|
|
|
|
|
foreach (TFS_Material main in mainList)
|
|
|
|
|
|
{
|
|
|
|
|
|
List<TFS_ViewMaterial> childs = childList.Where(s => s.FCode.Equals(main.FCode)).ToList();
|
|
|
|
|
|
if (childs != null && childs.Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (TFS_ViewMaterial child in childs)
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_ViewMaterial temp = childsList.Find(s => s.FMaterialID == main.FID && s.FFactoryCode.Equals(child.FFactoryCode));
|
|
|
|
|
|
if (temp == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
temp = child;
|
|
|
|
|
|
temp.FAddDate = temp.FEditDate = DateTime.Now;
|
|
|
|
|
|
temp.FEditUser = userId;
|
|
|
|
|
|
insertList.Add(temp);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
temp.FEditDate = DateTime.Now;
|
|
|
|
|
|
temp.FEditUser = userId;
|
|
|
|
|
|
foreach (PropertyInfo mProp in childProp)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!NoSetField.Contains(mProp.Name))
|
|
|
|
|
|
{
|
|
|
|
|
|
string value = mProp.GetValue(child).ToString();
|
|
|
|
|
|
if (!string.IsNullOrEmpty(value) && value != "null" && value != "0")
|
|
|
|
|
|
{
|
|
|
|
|
|
if (mProp.PropertyType.Name == "Int32")
|
|
|
|
|
|
{
|
|
|
|
|
|
if (int.TryParse(value, out int val)) mProp.SetValue(temp, val);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
mProp.SetValue(temp, value);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
updateList.Add(temp);
|
|
|
|
|
|
}
|
|
|
|
|
|
temp.FMaterialID = main.FID;
|
|
|
|
|
|
if (!string.IsNullOrEmpty(temp.FFactoryCode))
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_Factory factory = factorys.Find(s => s.FCode == temp.FFactoryCode);
|
|
|
|
|
|
if (factory == null) factory = factorys.Find(s => s.FName == temp.FFactoryCode);
|
|
|
|
|
|
if (factory == null) temp.FFactoryID = -1;
|
|
|
|
|
|
else temp.FFactoryID = factory.FID;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
db.BeginTran();
|
|
|
|
|
|
if (updateList.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var item in updateList)
|
|
|
|
|
|
{
|
|
|
|
|
|
result += db.Updateable(item).IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (insertList.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var item in insertList)
|
|
|
|
|
|
{
|
|
|
|
|
|
result += db.Insertable(item).IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
db.CommitTran();
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception)
|
|
|
|
|
|
{
|
|
|
|
|
|
db.RollbackTran();
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 物料查询接口--弃用
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public object SearchMaterialData(Dictionary<string, object> inParam)
|
|
|
|
|
|
{
|
|
|
|
|
|
List<object> resultList = new List<object>();
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
List<TFS_Material> materialList = db.Queryable<TFS_Material>()
|
|
|
|
|
|
.WhereIF(inParam.ContainsKey("FVersionCode"), a => a.FVersionCode.Equals(inParam["FVersionCode"].ToString()))
|
|
|
|
|
|
.WhereIF(inParam.ContainsKey("FCode"), a => a.FCode.Equals(inParam["FCode"].ToString()))
|
|
|
|
|
|
.WhereIF(inParam.ContainsKey("FPlmCode"), a => a.FCode.Equals(inParam["FPlmCode"].ToString()))
|
|
|
|
|
|
.WhereIF(inParam.ContainsKey("FName"), a => a.FName.Equals(inParam["FName"].ToString()))
|
|
|
|
|
|
.WhereIF(inParam.ContainsKey("FTestCode"), a => a.FTestCode.Equals(inParam["FTestCode"].ToString()))
|
|
|
|
|
|
.ToList();
|
|
|
|
|
|
if (materialList != null && materialList.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
List<TFS_ViewMaterial> viewList = new List<TFS_ViewMaterial>();
|
|
|
|
|
|
if (inParam.ContainsKey("FFactoryCode"))
|
|
|
|
|
|
{
|
|
|
|
|
|
List<int> mIds = materialList.Select(s => s.FID).ToList();
|
|
|
|
|
|
viewList = db.Queryable<TFS_ViewMaterial>().Where(s => mIds.Contains(s.FMaterialID) &&
|
|
|
|
|
|
s.FFactoryCode.Equals(inParam["FFactoryCode"].ToString())).ToList();
|
|
|
|
|
|
}
|
|
|
|
|
|
foreach (TFS_Material material in materialList)
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_ViewMaterial view = viewList.Find(s => s.FMaterialID == material.FID);
|
|
|
|
|
|
if (view != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
resultList.Add(new
|
|
|
|
|
|
{
|
|
|
|
|
|
FName = view.FBaseMaterialDesc,
|
|
|
|
|
|
FType = material.FType,
|
|
|
|
|
|
FCode = view.FBaseMaterialCode,
|
|
|
|
|
|
FTestCode = view.FBaseTestCode,
|
|
|
|
|
|
FVersionCode = material.FVersionCode,
|
|
|
|
|
|
FPlmCode = material.FPlmCode
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
resultList.Add(new
|
|
|
|
|
|
{
|
|
|
|
|
|
material.FName,
|
|
|
|
|
|
material.FType,
|
|
|
|
|
|
material.FCode,
|
|
|
|
|
|
material.FTestCode,
|
|
|
|
|
|
material.FVersionCode,
|
|
|
|
|
|
material.FPlmCode
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return resultList;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 物料查询接口
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public dynamic SearchMaterialData2(Dictionary<string, object> inParam)
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
string selectVal = "distinct isnull(b.FBaseMaterialDesc,a.FName)FName,isnull(b.FMRP1ProductType,a.FType)FType," +
|
|
|
|
|
|
"isnull(b.FBaseMaterialCode,a.FCode)FCode,isnull(a.FPlmCode,'')FPlmCode,isnull(b.FBaseTestCode,a.FTestCode)" +
|
|
|
|
|
|
"FTestCode,isnull(a.FVersionCode,'')FVersionCode";
|
|
|
|
|
|
string code1 = "", code2 = "", code3 = "";
|
|
|
|
|
|
dynamic result = new List<int>();
|
|
|
|
|
|
switch (inParam["FType"].ToString())
|
|
|
|
|
|
{
|
|
|
|
|
|
case "1":
|
|
|
|
|
|
if (inParam.TryGetValue("FCode", out object obj1)) code1 = obj1.ToString();
|
|
|
|
|
|
result = db.Queryable<TFS_Material, TFS_ViewMaterial>((a, b) => new JoinQueryInfos(JoinType.Left, a.FID == b.FMaterialID))
|
|
|
|
|
|
.Where((a, b) => b.FBaseMaterialCode.Equals(code1)).Select<dynamic>(selectVal).ToList();
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "2":
|
|
|
|
|
|
if (inParam.TryGetValue("FPlmCode", out object obj2)) code1 = obj2.ToString();
|
|
|
|
|
|
if (inParam.TryGetValue("FVersionCode", out object obj3)) code2 = obj3.ToString();
|
|
|
|
|
|
result = db.Queryable<TFS_Material, TFS_ViewMaterial>((a, b) => new JoinQueryInfos(JoinType.Left, a.FID == b.FMaterialID))
|
|
|
|
|
|
.Where((a, b) => a.FPlmCode.Equals(code1) && a.FVersionCode.Equals(code2)).Select<dynamic>(selectVal).ToList();
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "3":
|
|
|
|
|
|
if (inParam.TryGetValue("FPlmCode", out object obj4)) code1 = obj4.ToString();
|
|
|
|
|
|
if (inParam.TryGetValue("FFactoryCode", out object obj5)) code2 = obj5.ToString();
|
|
|
|
|
|
result = db.Queryable<TFS_Material, TFS_ViewMaterial>((a, b) => new JoinQueryInfos(JoinType.Left, a.FID == b.FMaterialID))
|
|
|
|
|
|
.Where((a, b) => a.FPlmCode.Equals(code1) && b.FFactoryCode.Equals(code2)).Select<dynamic>(selectVal).ToList();
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "4":
|
|
|
|
|
|
if (inParam.TryGetValue("FPlmCode", out object obj6)) code1 = obj6.ToString();
|
|
|
|
|
|
if (inParam.TryGetValue("FVersionCode", out object obj7)) code2 = obj7.ToString();
|
|
|
|
|
|
if (inParam.TryGetValue("FFactoryCode", out object obj8)) code3 = obj8.ToString();
|
|
|
|
|
|
result = db.Queryable<TFS_Material, TFS_ViewMaterial>((a, b) => new JoinQueryInfos(JoinType.Left, a.FID == b.FMaterialID))
|
|
|
|
|
|
.Where((a, b) => a.FPlmCode.Equals(code1) && a.FVersionCode.Equals(code2) && b.FFactoryCode.Equals(code3)).Select<dynamic>(selectVal).ToList();
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 物料信息补全导入
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int InsertBatchInfoMaterialData(List<TFS_Material> mainList, List<TFS_MaterialInfo> infoList, List<PropertyInfo> mainProp,
|
|
|
|
|
|
List<PropertyInfo> childProp, List<TFS_FieldInfo> fieldList, int userId)
|
|
|
|
|
|
{
|
|
|
|
|
|
int result = 0;
|
|
|
|
|
|
if (mainList.Count == 0) return result;
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
List<TFS_MaterialType> typeList = db.Queryable<TFS_MaterialType>().Where(s => s.FDeleted != 1).ToList();
|
|
|
|
|
|
List<Dictionary<string, object>> updateList = new List<Dictionary<string, object>>();
|
|
|
|
|
|
object dataVal = null; TFS_Material temp1 = null; TFS_MaterialInfo temp2 = null;
|
|
|
|
|
|
for (int i = 0; i < mainList.Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
temp1 = mainList[i];
|
|
|
|
|
|
temp2 = infoList[i];
|
|
|
|
|
|
TFS_Material mainMater = db.Queryable<TFS_Material>().Where(s => s.FCode == temp1.FCode).OrderBy(s => s.FID, OrderByType.Desc).First();
|
|
|
|
|
|
if (mainMater == null) continue;
|
|
|
|
|
|
|
|
|
|
|
|
List<TFS_MaterialType> tempType1 = typeList.Where(s => s.FName == temp1.FTypeName1.Trim() && s.FDepth == 1).ToList();
|
|
|
|
|
|
List<TFS_MaterialType> tempType2 = typeList.Where(s => s.FName == temp1.FTypeName2.Trim() && s.FDepth == 2).ToList();
|
|
|
|
|
|
if (tempType2.Count == 1 && tempType1.Count == 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
mainMater.FTypeID1 = tempType1.FirstOrDefault().FID;
|
|
|
|
|
|
mainMater.FTypeID2 = tempType2.FirstOrDefault().FID;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (TFS_MaterialType type1 in tempType1)
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_MaterialType type2 = tempType2.Find(s => s.FParentID == type1.FID);
|
|
|
|
|
|
if (type2 != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
mainMater.FTypeID1 = type1.FID;
|
|
|
|
|
|
mainMater.FTypeID2 = type2.FID;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TFS_MaterialInfo childMater = db.Queryable<TFS_MaterialInfo>().Where(s => s.FDataID == mainMater.FID && s.FType == 2)
|
|
|
|
|
|
.OrderBy(s => s.FID, OrderByType.Desc).First();
|
|
|
|
|
|
if (childMater == null && mainMater.FTypeID2 > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
childMater = db.Queryable<TFS_MaterialInfo>().Where(s => s.FDataID == mainMater.FTypeID2 && s.FType == 1)
|
|
|
|
|
|
.OrderBy(s => s.FID, OrderByType.Desc).First();
|
|
|
|
|
|
if (childMater != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
childMater.FID = -1;
|
|
|
|
|
|
childMater.FType = 2;
|
|
|
|
|
|
childMater.FDataID = mainMater.FID;
|
|
|
|
|
|
childMater.FAddDate = null;
|
|
|
|
|
|
childMater.FAddUser = userId;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (childMater == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
childMater = new TFS_MaterialInfo()
|
|
|
|
|
|
{
|
|
|
|
|
|
FType = 2,
|
|
|
|
|
|
FDataID = mainMater.FID,
|
|
|
|
|
|
FAddUser = userId
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
Dictionary<string, object> update = new Dictionary<string, object>();
|
|
|
|
|
|
foreach (TFS_FieldInfo field in fieldList)
|
|
|
|
|
|
{
|
|
|
|
|
|
PropertyInfo mProp = mainProp.Find(s => s.Name == field.FColumnFIeld);
|
|
|
|
|
|
if (mProp != null && (dataVal = mProp.GetValue(temp1)) != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
update.Add(field.FColumnFIeld, dataVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
mProp = childProp.Find(s => s.Name == field.FColumnFIeld);
|
|
|
|
|
|
if (mProp != null && (dataVal = mProp.GetValue(temp2)) != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
mProp.SetValue(childMater, dataVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (update.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
update.Add("FID", mainMater.FID);
|
|
|
|
|
|
update.Add("FTypeID1", mainMater.FTypeID1 < 1 ? -1 : mainMater.FTypeID1);
|
|
|
|
|
|
update.Add("FTypeID2", mainMater.FTypeID2 < 1 ? -1 : mainMater.FTypeID2);
|
|
|
|
|
|
update.Remove("FTypeName1");
|
|
|
|
|
|
update.Remove("FTypeName2");
|
|
|
|
|
|
update.Add("FEditUser", userId);
|
|
|
|
|
|
update.Add("FEditDate", DateTime.Now);
|
|
|
|
|
|
updateList.Add(update);
|
|
|
|
|
|
infoList[i] = childMater;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
infoList[i] = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
if (updateList.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
db.BeginTran();
|
|
|
|
|
|
result += db.Updateable(updateList).AS("TFS_Material").WhereColumns("FID").IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
List<TFS_MaterialInfo> temps = infoList.Where(s => s != null && s.FID > 0).ToList();
|
|
|
|
|
|
if (temps.Count > 0) db.Updateable(temps).WhereColumns("FID").IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
temps = infoList.Where(s => s != null && s.FID <= 0).ToList();
|
|
|
|
|
|
if (temps.Count > 0) db.Insertable(temps).IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
db.CommitTran();
|
|
|
|
|
|
}
|
|
|
|
|
|
ExceptionHelper.AddSystemJournal(null, mainList, new { updateList, infoList }, userId, "InsertBatchInfoMaterialData");
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
db.RollbackTran();
|
|
|
|
|
|
ExceptionHelper.AddSystemJournal(null, mainList, new { updateList, infoList, ex.Message }, userId, "InsertBatchInfoMaterialData");
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 替代料导入处理
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int InsertBatchTiMaterialData(List<TFS_Material> mainList, List<PropertyInfo> mainProp, List<TFS_FieldInfo> fieldList, int userId)
|
|
|
|
|
|
{
|
|
|
|
|
|
int result = 0;
|
|
|
|
|
|
if (mainList.Count == 0) return result;
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
List<Dictionary<string, object>> updateList = new List<Dictionary<string, object>>();
|
|
|
|
|
|
object dataVal = null; TFS_Material temp = null;
|
|
|
|
|
|
foreach (var item in mainList.GroupBy(s => new { s.FCode, s.FName }))
|
|
|
|
|
|
{
|
|
|
|
|
|
temp = item.ToList().Find(s => !string.IsNullOrEmpty(s.FSuccedaneumCode));
|
|
|
|
|
|
if (temp == null || string.IsNullOrEmpty(item.Key.FCode)) continue;
|
|
|
|
|
|
TFS_Material mainMater = db.Queryable<TFS_Material>().Where(s => s.FCode == item.Key.FCode).OrderBy(s => s.FID, OrderByType.Desc).First();
|
|
|
|
|
|
if (mainMater == null) continue;
|
|
|
|
|
|
TFS_Material lossMater = db.Queryable<TFS_Material>().Where(s => s.FCode == temp.FSuccedaneumCode).OrderBy(s => s.FID, OrderByType.Desc).First();
|
|
|
|
|
|
if (lossMater == null) continue;
|
|
|
|
|
|
Dictionary<string, object> update = new Dictionary<string, object>();
|
|
|
|
|
|
foreach (TFS_FieldInfo field in fieldList)
|
|
|
|
|
|
{
|
|
|
|
|
|
PropertyInfo mProp = mainProp.Find(s => s.Name == field.FColumnFIeld);
|
|
|
|
|
|
if (mProp != null && (dataVal = mProp.GetValue(temp)) != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
update.Add(field.FColumnFIeld, dataVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (update.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
update.Add("FID", mainMater.FID);
|
|
|
|
|
|
update.Add("FEditDate", DateTime.Now);
|
|
|
|
|
|
update.Add("FEditUser", userId);
|
|
|
|
|
|
update.Add("FSuccedaneumID", lossMater.FID);
|
|
|
|
|
|
update.Add("FSuccedaneumInfo", lossMater.FName);
|
|
|
|
|
|
update.Add("FSuccedaneumType", lossMater.FType);
|
|
|
|
|
|
updateList.Add(update);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
if (updateList.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
db.BeginTran();
|
|
|
|
|
|
result += db.Updateable(updateList).AS("TFS_Material").WhereColumns("FID").IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
db.CommitTran();
|
|
|
|
|
|
}
|
|
|
|
|
|
ExceptionHelper.AddSystemJournal(null, mainList, updateList, userId, "InsertBatchTiMaterialData");
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
db.RollbackTran();
|
|
|
|
|
|
ExceptionHelper.AddSystemJournal(null, mainList, new { updateList, ex.Message }, userId, "InsertBatchTiMaterialData");
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 副产物导入处理
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int InsertBatchFuMaterialData(List<TFS_Material> mainList, List<PropertyInfo> mainProp, List<TFS_FieldInfo> fieldList, int userId)
|
|
|
|
|
|
{
|
|
|
|
|
|
int result = 0;
|
|
|
|
|
|
if (mainList.Count == 0) return result;
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
List<Dictionary<string, object>> updateList = new List<Dictionary<string, object>>();
|
|
|
|
|
|
object dataVal = null; TFS_Material temp = null;
|
|
|
|
|
|
foreach (var item in mainList.GroupBy(s => new { s.FCode, s.FName }))
|
|
|
|
|
|
{
|
|
|
|
|
|
temp = item.ToList().Find(s => !string.IsNullOrEmpty(s.FFuProductsCode) && !string.IsNullOrEmpty(s.FFuProductsInfo));
|
|
|
|
|
|
if (temp == null || string.IsNullOrEmpty(item.Key.FCode) || string.IsNullOrEmpty(item.Key.FName)) continue;
|
|
|
|
|
|
TFS_Material mainMater = db.Queryable<TFS_Material>().Where(s => s.FCode == item.Key.FCode && s.FName == item.Key.FName)
|
|
|
|
|
|
.OrderBy(s => s.FID, OrderByType.Desc).First();
|
|
|
|
|
|
if (mainMater == null) continue;
|
|
|
|
|
|
TFS_Material lossMater = db.Queryable<TFS_Material>().Where(s => s.FCode == temp.FFuProductsCode && s.FName == temp.FFuProductsInfo)
|
|
|
|
|
|
.OrderBy(s => s.FID, OrderByType.Desc).First();
|
|
|
|
|
|
if (lossMater == null) continue;
|
|
|
|
|
|
Dictionary<string, object> update = new Dictionary<string, object>();
|
|
|
|
|
|
foreach (TFS_FieldInfo field in fieldList)
|
|
|
|
|
|
{
|
|
|
|
|
|
PropertyInfo mProp = mainProp.Find(s => s.Name == field.FColumnFIeld);
|
|
|
|
|
|
if (mProp != null && (dataVal = mProp.GetValue(temp)) != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
update.Add(field.FColumnFIeld, dataVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (update.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
update.Add("FID", mainMater.FID);
|
|
|
|
|
|
update.Add("FEditDate", DateTime.Now);
|
|
|
|
|
|
update.Add("FEditUser", userId);
|
|
|
|
|
|
update.Add("FFuProductsID", lossMater.FID);
|
|
|
|
|
|
update.Add("FFuProductsType", lossMater.FType);
|
|
|
|
|
|
updateList.Add(update);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
if (updateList.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
db.BeginTran();
|
|
|
|
|
|
foreach (var item in updateList)
|
|
|
|
|
|
{
|
|
|
|
|
|
result += db.Updateable(item).AS("TFS_Material").WhereColumns("FID").IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
db.CommitTran();
|
|
|
|
|
|
}
|
|
|
|
|
|
ExceptionHelper.AddSystemJournal(null, mainList, updateList, userId, "InsertBatchFuMaterialData");
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
db.RollbackTran();
|
|
|
|
|
|
ExceptionHelper.AddSystemJournal(null, mainList, new { updateList, ex.Message }, userId, "InsertBatchFuMaterialData");
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// (对接)SAP物料同步
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int DockSapMaterial(List<TFS_Material> materialList, int userId)
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
int okCount = 0;
|
|
|
|
|
|
db.BeginTran();
|
|
|
|
|
|
List<TFS_ViewMaterial> views = new List<TFS_ViewMaterial>();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (TFS_Material item in materialList)
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_Material temp = db.Queryable<TFS_Material>().Where(s => s.FCode == item.FCode).First();
|
|
|
|
|
|
if (temp == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
temp = item;
|
|
|
|
|
|
temp.FID = db.Insertable(item).IgnoreColumns(true).ExecuteReturnIdentity();
|
|
|
|
|
|
okCount += 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (db.Queryable<TFS_ViewMaterial>().Where(s => s.FMaterialID == temp.FID && s.FFactoryID == item.FFactoryID).First() == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_ViewMaterial view = new TFS_ViewMaterial()
|
|
|
|
|
|
{
|
|
|
|
|
|
FMaterialID = temp.FID,
|
|
|
|
|
|
FFactoryID = item.FFactoryID,
|
|
|
|
|
|
FFactoryCode = item.FFactoryCode,
|
|
|
|
|
|
FBaseMaterialCode = string.IsNullOrEmpty(item.FCode) ? temp.FCode : item.FCode,
|
|
|
|
|
|
FBaseMaterialDesc = string.IsNullOrEmpty(item.FName) ? temp.FName : item.FName,
|
|
|
|
|
|
FBaseTestCode = string.IsNullOrEmpty(item.FTestCode) ? temp.FTestCode : item.FTestCode,
|
|
|
|
|
|
FBaseBasicMeter = string.IsNullOrEmpty(item.FBaseUnit) ? temp.FBaseUnit : item.FBaseUnit,
|
|
|
|
|
|
FBaseMaterialGroup = string.IsNullOrEmpty(item.FMaterialGroup) ? temp.FMaterialGroup : item.FMaterialGroup,
|
|
|
|
|
|
FBaseFameCode = string.IsNullOrEmpty(item.FFameCode) ? temp.FFameCode : item.FFameCode,
|
|
|
|
|
|
FOrganizeMaterialType = string.IsNullOrEmpty(item.FMaterialType) ? temp.FMaterialType : item.FMaterialType
|
|
|
|
|
|
};
|
|
|
|
|
|
okCount += db.Insertable(view).IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
views.Add(view);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
db.CommitTran();
|
|
|
|
|
|
ExceptionHelper.AddSystemJournal(null, materialList, new { views }, userId, "InsertBatchFuMaterialData");
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
db.RollbackTran();
|
|
|
|
|
|
ExceptionHelper.AddSystemJournal(null, materialList, new { views, ex.Message }, userId, "InsertBatchFuMaterialData");
|
|
|
|
|
|
}
|
|
|
|
|
|
return okCount;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 导出视图
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="intType"></param>
|
|
|
|
|
|
/// <param name="savePath"></param>
|
|
|
|
|
|
/// <param name="selectSql"></param>
|
|
|
|
|
|
/// <param name="whereSql"></param>
|
|
|
|
|
|
/// <param name="joinSql"></param>
|
|
|
|
|
|
/// <param name="teamId"></param>
|
|
|
|
|
|
/// <param name="halfId"></param>
|
|
|
|
|
|
public void CreateExeclFile(string fType, string savePath, string selectSql, string whereSql, string joinSql, string teamId, string halfId)
|
|
|
|
|
|
{
|
|
|
|
|
|
//selectSql = selectSql.Replace("@FMaterialID@", halfId);
|
|
|
|
|
|
DataTable dataList = new DataTable();
|
|
|
|
|
|
|
|
|
|
|
|
dataList = GetMaterialInfo(teamId);
|
|
|
|
|
|
//dataList.Columns.Remove("FMaterialID");
|
|
|
|
|
|
NPOIHelper.ExportDTtoExcel(dataList, "Sheet1", savePath.Replace(".xlsx", fType + ".xlsx"));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 导出SAP视图
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="intType"></param>
|
|
|
|
|
|
/// <param name="savePath"></param>
|
|
|
|
|
|
/// <param name="selectSql"></param>
|
|
|
|
|
|
/// <param name="whereSql"></param>
|
|
|
|
|
|
/// <param name="joinSql"></param>
|
|
|
|
|
|
/// <param name="teamId"></param>
|
|
|
|
|
|
/// <param name="halfId"></param>
|
|
|
|
|
|
public void CreateExeclFileSAP(string fType, string savePath, string selectSql, string whereSql, string joinSql, string teamId, string halfId)
|
|
|
|
|
|
{
|
|
|
|
|
|
DataTable dataList = new DataTable();
|
|
|
|
|
|
|
|
|
|
|
|
dataList = GetMaterialInfoSAP(teamId);
|
|
|
|
|
|
//dataList.Columns.Remove("FMaterialID");
|
|
|
|
|
|
NPOIHelper.ExportDTtoExcel(dataList, "Sheet1", savePath.Replace(".xlsx", fType + ".xlsx"));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public DataTable GetMaterialInfo(string FID)
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
string strSql = string.Format(@"
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
isnull( FTypeName1, '' ) AS '一级分类',
|
|
|
|
|
|
isnull( FTypeName2, '' ) AS '二级分类',
|
|
|
|
|
|
isnull( FK3Code, '' ) AS 'K3系统代码',
|
|
|
|
|
|
isnull( FK3Name, '' ) AS 'K3系统名称',
|
|
|
|
|
|
isnull( FK3ShortCode, '' ) AS 'K3系统短代码',
|
|
|
|
|
|
isnull( FTestCode, '' ) AS '产品试验号',
|
|
|
|
|
|
isnull( FCode, '' ) AS 'SAP系统代码',
|
|
|
|
|
|
isnull( FName, '' ) AS 'SAP系统描述',
|
|
|
|
|
|
isnull( FMaterialGroup, '' ) AS '物料组',
|
|
|
|
|
|
isnull( FMaterialType, '' ) AS '物料主分类',
|
|
|
|
|
|
isnull( FCustomerCode, '' ) AS '客供料标识',
|
|
|
|
|
|
isnull( FStoreHouse, '' ) AS '总仓地址',
|
|
|
|
|
|
isnull( FBomEntry, '' ) AS 'BOM录入情况',
|
|
|
|
|
|
isnull( FLineHouse, '' ) AS '线边仓地址',
|
|
|
|
|
|
isnull( FProductDesc, '' ) AS '产品说明',
|
|
|
|
|
|
isnull( FWorkCenter, '' ) AS '工作中心',
|
|
|
|
|
|
isnull( FCraftExplain, '' ) AS '工艺说明',
|
|
|
|
|
|
isnull( FIidentifier, '' ) AS '标识符',
|
|
|
|
|
|
isnull( FGuaranteePeriod, '' ) AS '保质期',
|
|
|
|
|
|
isnull( FStorageConditions, '' ) AS '存储条件',
|
|
|
|
|
|
isnull( FSafetyStock, '' ) AS '安全库存',
|
|
|
|
|
|
isnull( FTriggerRatio, '' ) AS '触发比例',
|
|
|
|
|
|
isnull( FMinAmount, '' ) AS '最小量',
|
|
|
|
|
|
isnull( FMaxAmount, '' ) AS '最大量',
|
|
|
|
|
|
isnull( FYield, '' ) AS '得率',
|
|
|
|
|
|
isnull( FFixedLoss, '' ) AS '固损',
|
|
|
|
|
|
isnull( FTheoryYield, '' ) AS '理论得率',
|
|
|
|
|
|
isnull( FQualityTest1, '' ) AS '品质检验1',
|
|
|
|
|
|
isnull( FQualityTest2, '' ) AS '品质检验2',
|
|
|
|
|
|
isnull( FName, '' ) AS '物料名称',
|
|
|
|
|
|
isnull( FDesc, '' ) AS '物料简介',
|
|
|
|
|
|
isnull( FType, '' ) AS '物料类型',
|
|
|
|
|
|
isnull( FCode, '' ) AS '物料编码',
|
|
|
|
|
|
isnull( FTestCode, '' ) AS '试验号',
|
|
|
|
|
|
isnull( FVersionCode, '' ) AS '配方内码',
|
|
|
|
|
|
isnull( FFactoryCode, '' ) AS '工厂代码',
|
|
|
|
|
|
isnull( FSupplyCode, '' ) AS '物料供应标识',
|
|
|
|
|
|
isnull( FGroupCode, '' ) AS '组编号',
|
|
|
|
|
|
isnull( FBaseUnit, '' ) AS '基本计量单位',
|
|
|
|
|
|
isnull( FMaterialGroup, '' ) AS '物料组',
|
|
|
|
|
|
isnull( FStoreHouse, '' ) AS '总仓地址',
|
|
|
|
|
|
isnull( FWorkCenter, '' ) AS '工作中心',
|
|
|
|
|
|
isnull( FCraftDesc, '' ) AS '工艺描述',
|
|
|
|
|
|
isnull( FCraftExplain, '' ) AS '工艺说明',
|
|
|
|
|
|
isnull( FLineHouse, '' ) AS '线边仓',
|
|
|
|
|
|
isnull( FFixedLoss, '' ) AS '固定损耗',
|
|
|
|
|
|
isnull( FOrganizeIndustryField, '' ) AS '组织级别.行业领域',
|
|
|
|
|
|
isnull( FOrganizeMaterialType, '' ) AS '组织级别.物料类型',
|
|
|
|
|
|
isnull( FOrganizeFactory, '' ) AS '组织级别.工厂',
|
|
|
|
|
|
isnull( FOrganizeInventoryLocation, '' ) AS '组织级别.库存地点',
|
|
|
|
|
|
isnull( FOrganizeSalesOrganize, '' ) AS '组织级别.销售组织',
|
|
|
|
|
|
isnull( FOrganizeDistributionChannel, '' ) AS '组织级别.分销渠道',
|
|
|
|
|
|
isnull( FBaseMaterialCode, '' ) AS '基本视图.物料编号',
|
|
|
|
|
|
isnull( FBaseTestCode, '' ) AS '基本视图.试验号',
|
|
|
|
|
|
isnull( FBaseBasicMeter, '' ) AS '基本视图.基本计量',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS '基本视图.物料描述',
|
|
|
|
|
|
isnull( FBaseMaterialGroup, '' ) AS '基本视图.物料组',
|
|
|
|
|
|
isnull( FBaseSpecification, '' ) AS '基本视图.大小/量纲(规格)',
|
|
|
|
|
|
isnull( FBaseMaterialText, '' ) AS '基本视图.物料长文本',
|
|
|
|
|
|
isnull( FBaseIdentifier, '' ) AS '基本视图.标识符:固体/液体',
|
|
|
|
|
|
isnull( FBaseVolumeUnit, '' ) AS '基本视图.体积单位',
|
|
|
|
|
|
isnull( FBaseGrossWeight, '' ) AS '基本视图.毛重',
|
|
|
|
|
|
isnull( FBaseNetWeight, '' ) AS '基本视图.净重',
|
|
|
|
|
|
isnull( FBaseWeightUnit, '' ) AS '基本视图.重量单位',
|
|
|
|
|
|
isnull( FBaseBusinessVolume, '' ) AS '基本视图.业务量',
|
|
|
|
|
|
isnull( FBaseFameCode, '' ) AS '基本视图.fame号',
|
|
|
|
|
|
isnull( FPurchaseGroup, '' ) AS '采购视图.采购组',
|
|
|
|
|
|
isnull( FPurchaseCompany, '' ) AS '采购视图.采购单位',
|
|
|
|
|
|
isnull( FPurchaseCompanyCount, '' ) AS '采购视图.采购单位数量',
|
|
|
|
|
|
isnull( FPurchaseBaseCompanyCount, '' ) AS '采购视图.采购基本单位数量',
|
|
|
|
|
|
isnull( FPurchaseValueCode, '' ) AS '采购视图.采购价值码',
|
|
|
|
|
|
isnull( FPurchaseFactorySpecificStatus, '' ) AS '采购视图.工厂特定状态',
|
|
|
|
|
|
isnull( FPurchaseAutoOrder, '' ) AS '采购视图.自动采购单标识',
|
|
|
|
|
|
isnull( FPurchaseGoodsSource, '' ) AS '采购视图.货源清单',
|
|
|
|
|
|
isnull( FTypeCategoryType, '' ) AS '分类视图.类别种类',
|
|
|
|
|
|
isnull( FTypeType, '' ) AS '分类视图.类别',
|
|
|
|
|
|
isnull( FSaleDeliveryFactory, '' ) AS '销售视图.交货工厂',
|
|
|
|
|
|
isnull( FSaleTaxType, '' ) AS '销售视图.税金分类',
|
|
|
|
|
|
isnull( FSaleMaterialStatisticsGroup, '' ) AS '销售视图.物料统计组',
|
|
|
|
|
|
isnull( FSaleSalesCompany, '' ) AS '销售视图.销售单位',
|
|
|
|
|
|
isnull( FSaleBaseCompanyCount, '' ) AS '销售视图.基本单位数量',
|
|
|
|
|
|
isnull( FSaleSalesCompanyCount, '' ) AS '销售视图.销售单位数量',
|
|
|
|
|
|
isnull( FSaleAccountSettingGroup, '' ) AS '销售视图.科目设置组',
|
|
|
|
|
|
isnull( FSaleGeneralProjectCategoryGroup, '' ) AS '销售视图.普通项目类别组',
|
|
|
|
|
|
isnull( FSaleProjectCategoryGroup, '' ) AS '销售视图.项目类别组',
|
|
|
|
|
|
isnull( FSaleAvailabilityCheck, '' ) AS '销售视图.可用性检查',
|
|
|
|
|
|
isnull( FSaleOutfitGroup, '' ) AS '销售视图.装载组',
|
|
|
|
|
|
isnull( FSaleOldMaterialCode, '' ) AS '销售视图.旧物料号',
|
|
|
|
|
|
isnull( FStorageConditions, '' ) AS '仓储视图.存储条件',
|
|
|
|
|
|
isnull( FStorageBatchManage, '' ) AS '仓储视图.批次管理',
|
|
|
|
|
|
isnull( FStorageMaxStoragePeriod, '' ) AS '仓储视图.最大存储期间',
|
|
|
|
|
|
isnull( FStorageTimeUnit, '' ) AS '仓储视图.时间单位',
|
|
|
|
|
|
isnull( FStorageMinSurplusShelfLife, '' ) AS '仓储视图.最小剩余货架寿命',
|
|
|
|
|
|
isnull( FStorageTotalShelfLife, '' ) AS '仓储视图.总货架寿命',
|
|
|
|
|
|
isnull( FStorageSLEDCode, '' ) AS '仓储视图.SLED期间标识',
|
|
|
|
|
|
isnull( FMRP1Type, '' ) AS 'MRP1.MRP类型',
|
|
|
|
|
|
isnull( FMRP1Controller, '' ) AS 'MRP1.MRP控制者',
|
|
|
|
|
|
isnull( FMRP1BatchSize, '' ) AS 'MRP1.批量大小',
|
|
|
|
|
|
isnull( FMRP1MinBatchSize, '' ) AS 'MRP1.最小批量大小',
|
|
|
|
|
|
isnull( FMRP1MaxBatchSize, '' ) AS 'MRP1.最大批量大小',
|
|
|
|
|
|
isnull( FMRP1Group, '' ) AS 'MRP1.MRP组',
|
|
|
|
|
|
isnull( FMRP1RoundValue, '' ) AS 'MRP1.舍入值',
|
|
|
|
|
|
isnull( FMRP1ProductType, '' ) AS 'MRP1.产品分类',
|
|
|
|
|
|
isnull( FMRP1CustomerCode, '' ) AS 'MRP1.客户代码',
|
|
|
|
|
|
isnull( FMRP1SizeMaterial, '' ) AS 'MRP1.大小料',
|
|
|
|
|
|
isnull( FMRP1SmallMaterialStandard, '' ) AS 'MRP1.小料标准(小于)',
|
|
|
|
|
|
isnull( FMRP2PurchaseType, '' ) AS 'MRP2.采购类型',
|
|
|
|
|
|
isnull( FMRP2PlanMarginalCode, '' ) AS 'MRP2.计划边际码',
|
|
|
|
|
|
isnull( FMRP2SpecialProcurement, '' ) AS 'MRP2.特殊采购类',
|
|
|
|
|
|
isnull( FMRP2Recoil, '' ) AS 'MRP2.反冲',
|
|
|
|
|
|
isnull( FMRP2SelfProductTime, '' ) AS 'MRP2.自制生产时间',
|
|
|
|
|
|
isnull( FMRP2PlannDeliveryTime, '' ) AS 'MRP2.计划交货时间',
|
|
|
|
|
|
isnull( FMRP2ReceiveProcessTime, '' ) AS 'MRP2.收货处理时间',
|
|
|
|
|
|
isnull( FMRP2SafeStock, '' ) AS 'MRP2.安全库存',
|
|
|
|
|
|
isnull( FMRP2DeliveryInventoryPlace, '' ) AS 'MRP2.发货库存地点',
|
|
|
|
|
|
isnull( FMRP2ExternalStoragePlace, '' ) AS 'MRP2.外部采购仓储地点',
|
|
|
|
|
|
isnull( FMRP3PolicyGroup, '' ) AS 'MRP3.策略组',
|
|
|
|
|
|
isnull( FMRP3ConsumePattern, '' ) AS 'MRP3.消耗模式',
|
|
|
|
|
|
isnull( FMRP3ForwardConsumePeriod, '' ) AS 'MRP3.向前消耗期间',
|
|
|
|
|
|
isnull( FMRP3ReverseConsumePeriod, '' ) AS 'MRP3.逆向消耗期',
|
|
|
|
|
|
isnull( FMRP3BlendMRP, '' ) AS 'MRP3.混合MRP',
|
|
|
|
|
|
isnull( FMRP3AvailabilityCheck, '' ) AS 'MRP3.可用性检查',
|
|
|
|
|
|
isnull( FMRP4AloneOrFocus, '' ) AS 'MRP3.单独或集中',
|
|
|
|
|
|
isnull( FPlanProductPlanParam, '' ) AS '工作计划视图.生产计划参数文件',
|
|
|
|
|
|
isnull( FPlanUnlimitedOverDelivery, '' ) AS '工作计划视图.无限制过量交货',
|
|
|
|
|
|
isnull( FPlanUnderDeliveryTolerance, '' ) AS '工作计划视图.不足交货允差',
|
|
|
|
|
|
isnull( FPlanOverDeliveryTolerance, '' ) AS '工作计划视图.过度交货允差',
|
|
|
|
|
|
isnull( FPlanDeliverCompany, '' ) AS '工作计划视图.发货单位',
|
|
|
|
|
|
isnull( FPlanDeliverCompanyCount, '' ) AS '工作计划视图.发货单位数量',
|
|
|
|
|
|
isnull( FPlanBaseCompanyCount, '' ) AS '工作计划视图.发货基本单位数量',
|
|
|
|
|
|
isnull( FQualityType1, '' ) AS '质检视图.检验类型1',
|
|
|
|
|
|
isnull( FQualityType2, '' ) AS '质检视图.检验类型2',
|
|
|
|
|
|
isnull( FQualityType3, '' ) AS '质检视图.检验类型3',
|
|
|
|
|
|
isnull( FQualityType4, '' ) AS '质检视图.检验类型4',
|
|
|
|
|
|
isnull( FQualityType5, '' ) AS '质检视图.检验类型5',
|
|
|
|
|
|
isnull( FQualityType6, '' ) AS '质检视图.检验类型6',
|
|
|
|
|
|
isnull( FAccountPriceControl, '' ) AS '会计视图.价格控制',
|
|
|
|
|
|
isnull( FAccountPriceDetermine, '' ) AS '会计视图.价格确定',
|
|
|
|
|
|
isnull( FAccountPriceUnit, '' ) AS '会计视图.价格单位',
|
|
|
|
|
|
isnull( FAccountAccessType, '' ) AS '会计视图.评估分类',
|
|
|
|
|
|
isnull( FAccountSaleOrderInventory, '' ) AS '会计视图.VC: 销售订单库存',
|
|
|
|
|
|
isnull( FAccountStandardPrice, '' ) AS '会计视图.标准价格',
|
|
|
|
|
|
isnull( FAccountProfitCenter, '' ) AS '会计视图.利润中心',
|
|
|
|
|
|
isnull( FAccountCostAccountBatch, '' ) AS '会计视图.成本核算批量'
|
|
|
|
|
|
FROM(
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
isnull( b.FName, '' ) AS 'FTypeName1',
|
|
|
|
|
|
isnull( c.FName, '' ) AS 'FTypeName2',
|
|
|
|
|
|
isnull( FSAPCode, '' ) AS 'FCode',
|
|
|
|
|
|
isnull( FSAPDescription, '' ) AS 'FName',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FDesc',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FVersionCode',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FFactoryCode',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FSupplyCode',
|
|
|
|
|
|
isnull( FBaseMaterialGroup, '' ) AS 'FGroupCode',
|
|
|
|
|
|
isnull( FBaseWeightUnit, '' ) AS 'FBaseUnit',
|
|
|
|
|
|
isnull( FCraftExplain, '' ) AS 'FCraftDesc',
|
|
|
|
|
|
d.FName AS 'FtypeName',
|
|
|
|
|
|
a.*
|
|
|
|
|
|
FROM
|
|
|
|
|
|
TFS_MaterialInfo AS a
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS d ON a.FType=d.FID
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS b ON a.FTypeID1= b.FID
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS C ON a.FTypeID2= b.FID
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
FDataId = {0})a;", FID);
|
|
|
|
|
|
DataTable data = db.Ado.GetDataTable(strSql);
|
|
|
|
|
|
return data;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public DataTable GetMaterialInfoSAP(string FID)
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
string strSql = string.Format(@"
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
isnull( FName, '' ) AS '物料名称',
|
|
|
|
|
|
isnull( FDesc, '' ) AS '物料简介',
|
|
|
|
|
|
isnull( REPLACE ( FType , FType , FtypeName ), '' ) AS '物料类型',
|
|
|
|
|
|
isnull( FCode, '' ) AS '物料编码',
|
|
|
|
|
|
isnull( FTestCode, '' ) AS '试验号',
|
|
|
|
|
|
isnull( FVersionCode, '' ) AS '配方内码',
|
|
|
|
|
|
isnull( FFactoryCode, '' ) AS '工厂代码',
|
|
|
|
|
|
isnull( FSupplyCode, '' ) AS '物料供应标识',
|
|
|
|
|
|
isnull( FGroupCode, '' ) AS '组编号',
|
|
|
|
|
|
isnull( FBaseUnit, '' ) AS '基本计量单位',
|
|
|
|
|
|
isnull( FMaterialGroup, '' ) AS '物料组',
|
|
|
|
|
|
isnull( FStoreHouse, '' ) AS '总仓地址',
|
|
|
|
|
|
isnull( FWorkCenter, '' ) AS '工作中心',
|
|
|
|
|
|
isnull( FCraftDesc, '' ) AS '工艺描述',
|
|
|
|
|
|
isnull( FCraftExplain, '' ) AS '工艺说明',
|
|
|
|
|
|
isnull( FLineHouse, '' ) AS '线边仓',
|
|
|
|
|
|
isnull( FFixedLoss, '' ) AS '固定损耗',
|
|
|
|
|
|
isnull( FOrganizeIndustryField, '' ) AS '组织级别.行业领域',
|
|
|
|
|
|
isnull( FOrganizeMaterialType, '' ) AS '组织级别.物料类型',
|
|
|
|
|
|
isnull( FOrganizeFactory, '' ) AS '组织级别.工厂',
|
|
|
|
|
|
isnull( FOrganizeInventoryLocation, '' ) AS '组织级别.库存地点',
|
|
|
|
|
|
isnull( FOrganizeSalesOrganize, '' ) AS '组织级别.销售组织',
|
|
|
|
|
|
isnull( FOrganizeDistributionChannel, '' ) AS '组织级别.分销渠道',
|
|
|
|
|
|
isnull( FBaseMaterialCode, '' ) AS '基本视图.物料编号',
|
|
|
|
|
|
isnull( FBaseTestCode, '' ) AS '基本视图.试验号',
|
|
|
|
|
|
isnull( FBaseBasicMeter, '' ) AS '基本视图.基本计量',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS '基本视图.物料描述',
|
|
|
|
|
|
isnull( FBaseMaterialGroup, '' ) AS '基本视图.物料组',
|
|
|
|
|
|
isnull( FBaseSpecification, '' ) AS '基本视图.大小/量纲(规格)',
|
|
|
|
|
|
isnull( FBaseMaterialText, '' ) AS '基本视图.物料长文本',
|
|
|
|
|
|
isnull( FBaseIdentifier, '' ) AS '基本视图.标识符:固体/液体',
|
|
|
|
|
|
isnull( FBaseVolumeUnit, '' ) AS '基本视图.体积单位',
|
|
|
|
|
|
isnull( FBaseGrossWeight, '' ) AS '基本视图.毛重',
|
|
|
|
|
|
isnull( FBaseNetWeight, '' ) AS '基本视图.净重',
|
|
|
|
|
|
isnull( FBaseWeightUnit, '' ) AS '基本视图.重量单位',
|
|
|
|
|
|
isnull( FBaseBusinessVolume, '' ) AS '基本视图.业务量',
|
|
|
|
|
|
isnull( FBaseFameCode, '' ) AS '基本视图.fame号',
|
|
|
|
|
|
isnull( FPurchaseGroup, '' ) AS '采购视图.采购组',
|
|
|
|
|
|
isnull( FPurchaseCompany, '' ) AS '采购视图.采购单位',
|
|
|
|
|
|
isnull( FPurchaseCompanyCount, '' ) AS '采购视图.采购单位数量',
|
|
|
|
|
|
isnull( FPurchaseBaseCompanyCount, '' ) AS '采购视图.采购基本单位数量',
|
|
|
|
|
|
isnull( FPurchaseValueCode, '' ) AS '采购视图.采购价值码',
|
|
|
|
|
|
isnull( FPurchaseFactorySpecificStatus, '' ) AS '采购视图.工厂特定状态',
|
|
|
|
|
|
isnull( FPurchaseAutoOrder, '' ) AS '采购视图.自动采购单标识',
|
|
|
|
|
|
isnull( FPurchaseGoodsSource, '' ) AS '采购视图.货源清单',
|
|
|
|
|
|
isnull( FTypeCategoryType, '' ) AS '分类视图.类别种类',
|
|
|
|
|
|
isnull( FTypeType, '' ) AS '分类视图.类别',
|
|
|
|
|
|
isnull( FSaleDeliveryFactory, '' ) AS '销售视图.交货工厂',
|
|
|
|
|
|
isnull( FSaleTaxType, '' ) AS '销售视图.税金分类',
|
|
|
|
|
|
isnull( FSaleMaterialStatisticsGroup, '' ) AS '销售视图.物料统计组',
|
|
|
|
|
|
isnull( FSaleSalesCompany, '' ) AS '销售视图.销售单位',
|
|
|
|
|
|
isnull( FSaleBaseCompanyCount, '' ) AS '销售视图.基本单位数量',
|
|
|
|
|
|
isnull( FSaleSalesCompanyCount, '' ) AS '销售视图.销售单位数量',
|
|
|
|
|
|
isnull( FSaleAccountSettingGroup, '' ) AS '销售视图.科目设置组',
|
|
|
|
|
|
isnull( FSaleGeneralProjectCategoryGroup, '' ) AS '销售视图.普通项目类别组',
|
|
|
|
|
|
isnull( FSaleProjectCategoryGroup, '' ) AS '销售视图.项目类别组',
|
|
|
|
|
|
isnull( FSaleAvailabilityCheck, '' ) AS '销售视图.可用性检查',
|
|
|
|
|
|
isnull( FSaleOutfitGroup, '' ) AS '销售视图.装载组',
|
|
|
|
|
|
isnull( FSaleOldMaterialCode, '' ) AS '销售视图.旧物料号',
|
|
|
|
|
|
isnull( FStorageConditions, '' ) AS '仓储视图.存储条件',
|
|
|
|
|
|
isnull( FStorageBatchManage, '' ) AS '仓储视图.批次管理',
|
|
|
|
|
|
isnull( FStorageMaxStoragePeriod, '' ) AS '仓储视图.最大存储期间',
|
|
|
|
|
|
isnull( FStorageTimeUnit, '' ) AS '仓储视图.时间单位',
|
|
|
|
|
|
isnull( FStorageMinSurplusShelfLife, '' ) AS '仓储视图.最小剩余货架寿命',
|
|
|
|
|
|
isnull( FStorageTotalShelfLife, '' ) AS '仓储视图.总货架寿命',
|
|
|
|
|
|
isnull( FStorageSLEDCode, '' ) AS '仓储视图.SLED期间标识',
|
|
|
|
|
|
isnull( FMRP1Type, '' ) AS 'MRP1.MRP类型',
|
|
|
|
|
|
isnull( FMRP1Controller, '' ) AS 'MRP1.MRP控制者',
|
|
|
|
|
|
isnull( FMRP1BatchSize, '' ) AS 'MRP1.批量大小',
|
|
|
|
|
|
isnull( FMRP1MinBatchSize, '' ) AS 'MRP1.最小批量大小',
|
|
|
|
|
|
isnull( FMRP1MaxBatchSize, '' ) AS 'MRP1.最大批量大小',
|
|
|
|
|
|
isnull( FMRP1Group, '' ) AS 'MRP1.MRP组',
|
|
|
|
|
|
isnull( FMRP1RoundValue, '' ) AS 'MRP1.舍入值',
|
|
|
|
|
|
isnull( FMRP1ProductType, '' ) AS 'MRP1.产品分类',
|
|
|
|
|
|
isnull( FMRP1CustomerCode, '' ) AS 'MRP1.客户代码',
|
|
|
|
|
|
isnull( FMRP1SizeMaterial, '' ) AS 'MRP1.大小料',
|
|
|
|
|
|
isnull( FMRP1SmallMaterialStandard, '' ) AS 'MRP1.小料标准(小于)',
|
|
|
|
|
|
isnull( FMRP2PurchaseType, '' ) AS 'MRP2.采购类型',
|
|
|
|
|
|
isnull( FMRP2PlanMarginalCode, '' ) AS 'MRP2.计划边际码',
|
|
|
|
|
|
isnull( FMRP2SpecialProcurement, '' ) AS 'MRP2.特殊采购类',
|
|
|
|
|
|
isnull( FMRP2Recoil, '' ) AS 'MRP2.反冲',
|
|
|
|
|
|
isnull( FMRP2SelfProductTime, '' ) AS 'MRP2.自制生产时间',
|
|
|
|
|
|
isnull( FMRP2PlannDeliveryTime, '' ) AS 'MRP2.计划交货时间',
|
|
|
|
|
|
isnull( FMRP2ReceiveProcessTime, '' ) AS 'MRP2.收货处理时间',
|
|
|
|
|
|
isnull( FMRP2SafeStock, '' ) AS 'MRP2.安全库存',
|
|
|
|
|
|
isnull( FMRP2DeliveryInventoryPlace, '' ) AS 'MRP2.发货库存地点',
|
|
|
|
|
|
isnull( FMRP2ExternalStoragePlace, '' ) AS 'MRP2.外部采购仓储地点',
|
|
|
|
|
|
isnull( FMRP3PolicyGroup, '' ) AS 'MRP3.策略组',
|
|
|
|
|
|
isnull( FMRP3ConsumePattern, '' ) AS 'MRP3.消耗模式',
|
|
|
|
|
|
isnull( FMRP3ForwardConsumePeriod, '' ) AS 'MRP3.向前消耗期间',
|
|
|
|
|
|
isnull( FMRP3ReverseConsumePeriod, '' ) AS 'MRP3.逆向消耗期',
|
|
|
|
|
|
isnull( FMRP3BlendMRP, '' ) AS 'MRP3.混合MRP',
|
|
|
|
|
|
isnull( FMRP3AvailabilityCheck, '' ) AS 'MRP3.可用性检查',
|
|
|
|
|
|
isnull( FMRP4AloneOrFocus, '' ) AS 'MRP3.单独或集中',
|
|
|
|
|
|
isnull( FPlanProductPlanParam, '' ) AS '工作计划视图.生产计划参数文件',
|
|
|
|
|
|
isnull( FPlanUnlimitedOverDelivery, '' ) AS '工作计划视图.无限制过量交货',
|
|
|
|
|
|
isnull( FPlanUnderDeliveryTolerance, '' ) AS '工作计划视图.不足交货允差',
|
|
|
|
|
|
isnull( FPlanOverDeliveryTolerance, '' ) AS '工作计划视图.过度交货允差',
|
|
|
|
|
|
isnull( FPlanDeliverCompany, '' ) AS '工作计划视图.发货单位',
|
|
|
|
|
|
isnull( FPlanDeliverCompanyCount, '' ) AS '工作计划视图.发货单位数量',
|
|
|
|
|
|
isnull( FPlanBaseCompanyCount, '' ) AS '工作计划视图.发货基本单位数量',
|
|
|
|
|
|
isnull( FQualityType1, '' ) AS '质检视图.检验类型1',
|
|
|
|
|
|
isnull( FQualityType2, '' ) AS '质检视图.检验类型2',
|
|
|
|
|
|
isnull( FQualityType3, '' ) AS '质检视图.检验类型3',
|
|
|
|
|
|
isnull( FQualityType4, '' ) AS '质检视图.检验类型4',
|
|
|
|
|
|
isnull( FQualityType5, '' ) AS '质检视图.检验类型5',
|
|
|
|
|
|
isnull( FQualityType6, '' ) AS '质检视图.检验类型6',
|
|
|
|
|
|
isnull( FAccountPriceControl, '' ) AS '会计视图.价格控制',
|
|
|
|
|
|
isnull( FAccountPriceDetermine, '' ) AS '会计视图.价格确定',
|
|
|
|
|
|
isnull( FAccountPriceUnit, '' ) AS '会计视图.价格单位',
|
|
|
|
|
|
isnull( FAccountAccessType, '' ) AS '会计视图.评估分类',
|
|
|
|
|
|
isnull( FAccountSaleOrderInventory, '' ) AS '会计视图.VC: 销售订单库存',
|
|
|
|
|
|
isnull( FAccountStandardPrice, '' ) AS '会计视图.标准价格',
|
|
|
|
|
|
isnull( FAccountProfitCenter, '' ) AS '会计视图.利润中心',
|
|
|
|
|
|
isnull( FAccountCostAccountBatch, '' ) AS '会计视图.成本核算批量'
|
|
|
|
|
|
|
|
|
|
|
|
FROM(
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
isnull( b.FName, '' ) AS 'FTypeName1',
|
|
|
|
|
|
isnull( c.FName, '' ) AS 'FTypeName2',
|
|
|
|
|
|
isnull( FSAPCode, '' ) AS 'FCode',
|
|
|
|
|
|
isnull( FSAPDescription, '' ) AS 'FName',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FDesc',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FVersionCode',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FFactoryCode',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FSupplyCode',
|
|
|
|
|
|
isnull( FBaseMaterialGroup, '' ) AS 'FGroupCode',
|
|
|
|
|
|
isnull( FBaseWeightUnit, '' ) AS 'FBaseUnit',
|
|
|
|
|
|
isnull( FCraftExplain, '' ) AS 'FCraftDesc',
|
|
|
|
|
|
d.FName AS 'FtypeName',
|
|
|
|
|
|
a.*
|
|
|
|
|
|
FROM
|
|
|
|
|
|
TFS_MaterialInfo AS a
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS d ON a.FType=d.FID
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS b ON a.FTypeID1= b.FID
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS C ON a.FTypeID2= b.FID
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
FDataId = {0})a;", FID);
|
|
|
|
|
|
DataTable data = db.Ado.GetDataTable(strSql);
|
|
|
|
|
|
return data;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void CreateExeclFileALL(string FType,string savePath)
|
|
|
|
|
|
{
|
|
|
|
|
|
DataTable dataList = new DataTable();
|
|
|
|
|
|
string str = "";
|
|
|
|
|
|
if (FType == "1")
|
|
|
|
|
|
{
|
|
|
|
|
|
str = "视图";
|
|
|
|
|
|
dataList = GetMaterialInfoALL();
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
str = "基础视图";
|
|
|
|
|
|
dataList = GetMaterialInfoSAPALL();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//dataList.Columns.Remove("FMaterialID");
|
|
|
|
|
|
NPOIHelper.ExportDTtoExcel(dataList, "Sheet1", savePath.Replace(".xlsx",str+".xlsx"));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public DataTable GetMaterialInfoALL()
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
string strSql = string.Format(@"
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
isnull( FTypeName1, '' ) AS '一级分类',
|
|
|
|
|
|
isnull( FTypeName2, '' ) AS '二级分类',
|
|
|
|
|
|
isnull( FK3Code, '' ) AS 'K3系统代码',
|
|
|
|
|
|
isnull( FK3Name, '' ) AS 'K3系统名称',
|
|
|
|
|
|
isnull( FK3ShortCode, '' ) AS 'K3系统短代码',
|
|
|
|
|
|
isnull( FTestCode, '' ) AS '产品试验号',
|
|
|
|
|
|
isnull( FCode, '' ) AS 'SAP系统代码',
|
|
|
|
|
|
isnull( FName, '' ) AS 'SAP系统描述',
|
|
|
|
|
|
isnull( FMaterialGroup, '' ) AS '物料组',
|
|
|
|
|
|
isnull( FMaterialType, '' ) AS '物料主分类',
|
|
|
|
|
|
isnull( FCustomerCode, '' ) AS '客供料标识',
|
|
|
|
|
|
isnull( FStoreHouse, '' ) AS '总仓地址',
|
|
|
|
|
|
isnull( FBomEntry, '' ) AS 'BOM录入情况',
|
|
|
|
|
|
isnull( FLineHouse, '' ) AS '线边仓地址',
|
|
|
|
|
|
isnull( FProductDesc, '' ) AS '产品说明',
|
|
|
|
|
|
isnull( FWorkCenter, '' ) AS '工作中心',
|
|
|
|
|
|
isnull( FCraftExplain, '' ) AS '工艺说明',
|
|
|
|
|
|
isnull( FIidentifier, '' ) AS '标识符',
|
|
|
|
|
|
isnull( FGuaranteePeriod, '' ) AS '保质期',
|
|
|
|
|
|
isnull( FStorageConditions, '' ) AS '存储条件',
|
|
|
|
|
|
isnull( FSafetyStock, '' ) AS '安全库存',
|
|
|
|
|
|
isnull( FTriggerRatio, '' ) AS '触发比例',
|
|
|
|
|
|
isnull( FMinAmount, '' ) AS '最小量',
|
|
|
|
|
|
isnull( FMaxAmount, '' ) AS '最大量',
|
|
|
|
|
|
isnull( FYield, '' ) AS '得率',
|
|
|
|
|
|
isnull( FFixedLoss, '' ) AS '固损',
|
|
|
|
|
|
isnull( FTheoryYield, '' ) AS '理论得率',
|
|
|
|
|
|
isnull( FQualityTest1, '' ) AS '品质检验1',
|
|
|
|
|
|
isnull( FQualityTest2, '' ) AS '品质检验2',
|
|
|
|
|
|
isnull( FName, '' ) AS '物料名称',
|
|
|
|
|
|
isnull( FDesc, '' ) AS '物料简介',
|
|
|
|
|
|
isnull( FType, '' ) AS '物料类型',
|
|
|
|
|
|
isnull( FCode, '' ) AS '物料编码',
|
|
|
|
|
|
isnull( FTestCode, '' ) AS '试验号',
|
|
|
|
|
|
isnull( FVersionCode, '' ) AS '配方内码',
|
|
|
|
|
|
isnull( FFactoryCode, '' ) AS '工厂代码',
|
|
|
|
|
|
isnull( FSupplyCode, '' ) AS '物料供应标识',
|
|
|
|
|
|
isnull( FGroupCode, '' ) AS '组编号',
|
|
|
|
|
|
isnull( FBaseUnit, '' ) AS '基本计量单位',
|
|
|
|
|
|
isnull( FMaterialGroup, '' ) AS '物料组',
|
|
|
|
|
|
isnull( FStoreHouse, '' ) AS '总仓地址',
|
|
|
|
|
|
isnull( FWorkCenter, '' ) AS '工作中心',
|
|
|
|
|
|
isnull( FCraftDesc, '' ) AS '工艺描述',
|
|
|
|
|
|
isnull( FCraftExplain, '' ) AS '工艺说明',
|
|
|
|
|
|
isnull( FLineHouse, '' ) AS '线边仓',
|
|
|
|
|
|
isnull( FFixedLoss, '' ) AS '固定损耗',
|
|
|
|
|
|
isnull( FOrganizeIndustryField, '' ) AS '组织级别.行业领域',
|
|
|
|
|
|
isnull( FOrganizeMaterialType, '' ) AS '组织级别.物料类型',
|
|
|
|
|
|
isnull( FOrganizeFactory, '' ) AS '组织级别.工厂',
|
|
|
|
|
|
isnull( FOrganizeInventoryLocation, '' ) AS '组织级别.库存地点',
|
|
|
|
|
|
isnull( FOrganizeSalesOrganize, '' ) AS '组织级别.销售组织',
|
|
|
|
|
|
isnull( FOrganizeDistributionChannel, '' ) AS '组织级别.分销渠道',
|
|
|
|
|
|
isnull( FBaseMaterialCode, '' ) AS '基本视图.物料编号',
|
|
|
|
|
|
isnull( FBaseTestCode, '' ) AS '基本视图.试验号',
|
|
|
|
|
|
isnull( FBaseBasicMeter, '' ) AS '基本视图.基本计量',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS '基本视图.物料描述',
|
|
|
|
|
|
isnull( FBaseMaterialGroup, '' ) AS '基本视图.物料组',
|
|
|
|
|
|
isnull( FBaseSpecification, '' ) AS '基本视图.大小/量纲(规格)',
|
|
|
|
|
|
isnull( FBaseMaterialText, '' ) AS '基本视图.物料长文本',
|
|
|
|
|
|
isnull( FBaseIdentifier, '' ) AS '基本视图.标识符:固体/液体',
|
|
|
|
|
|
isnull( FBaseVolumeUnit, '' ) AS '基本视图.体积单位',
|
|
|
|
|
|
isnull( FBaseGrossWeight, '' ) AS '基本视图.毛重',
|
|
|
|
|
|
isnull( FBaseNetWeight, '' ) AS '基本视图.净重',
|
|
|
|
|
|
isnull( FBaseWeightUnit, '' ) AS '基本视图.重量单位',
|
|
|
|
|
|
isnull( FBaseBusinessVolume, '' ) AS '基本视图.业务量',
|
|
|
|
|
|
isnull( FBaseFameCode, '' ) AS '基本视图.fame号',
|
|
|
|
|
|
isnull( FPurchaseGroup, '' ) AS '采购视图.采购组',
|
|
|
|
|
|
isnull( FPurchaseCompany, '' ) AS '采购视图.采购单位',
|
|
|
|
|
|
isnull( FPurchaseCompanyCount, '' ) AS '采购视图.采购单位数量',
|
|
|
|
|
|
isnull( FPurchaseBaseCompanyCount, '' ) AS '采购视图.采购基本单位数量',
|
|
|
|
|
|
isnull( FPurchaseValueCode, '' ) AS '采购视图.采购价值码',
|
|
|
|
|
|
isnull( FPurchaseFactorySpecificStatus, '' ) AS '采购视图.工厂特定状态',
|
|
|
|
|
|
isnull( FPurchaseAutoOrder, '' ) AS '采购视图.自动采购单标识',
|
|
|
|
|
|
isnull( FPurchaseGoodsSource, '' ) AS '采购视图.货源清单',
|
|
|
|
|
|
isnull( FTypeCategoryType, '' ) AS '分类视图.类别种类',
|
|
|
|
|
|
isnull( FTypeType, '' ) AS '分类视图.类别',
|
|
|
|
|
|
isnull( FSaleDeliveryFactory, '' ) AS '销售视图.交货工厂',
|
|
|
|
|
|
isnull( FSaleTaxType, '' ) AS '销售视图.税金分类',
|
|
|
|
|
|
isnull( FSaleMaterialStatisticsGroup, '' ) AS '销售视图.物料统计组',
|
|
|
|
|
|
isnull( FSaleSalesCompany, '' ) AS '销售视图.销售单位',
|
|
|
|
|
|
isnull( FSaleBaseCompanyCount, '' ) AS '销售视图.基本单位数量',
|
|
|
|
|
|
isnull( FSaleSalesCompanyCount, '' ) AS '销售视图.销售单位数量',
|
|
|
|
|
|
isnull( FSaleAccountSettingGroup, '' ) AS '销售视图.科目设置组',
|
|
|
|
|
|
isnull( FSaleGeneralProjectCategoryGroup, '' ) AS '销售视图.普通项目类别组',
|
|
|
|
|
|
isnull( FSaleProjectCategoryGroup, '' ) AS '销售视图.项目类别组',
|
|
|
|
|
|
isnull( FSaleAvailabilityCheck, '' ) AS '销售视图.可用性检查',
|
|
|
|
|
|
isnull( FSaleOutfitGroup, '' ) AS '销售视图.装载组',
|
|
|
|
|
|
isnull( FSaleOldMaterialCode, '' ) AS '销售视图.旧物料号',
|
|
|
|
|
|
isnull( FStorageConditions, '' ) AS '仓储视图.存储条件',
|
|
|
|
|
|
isnull( FStorageBatchManage, '' ) AS '仓储视图.批次管理',
|
|
|
|
|
|
isnull( FStorageMaxStoragePeriod, '' ) AS '仓储视图.最大存储期间',
|
|
|
|
|
|
isnull( FStorageTimeUnit, '' ) AS '仓储视图.时间单位',
|
|
|
|
|
|
isnull( FStorageMinSurplusShelfLife, '' ) AS '仓储视图.最小剩余货架寿命',
|
|
|
|
|
|
isnull( FStorageTotalShelfLife, '' ) AS '仓储视图.总货架寿命',
|
|
|
|
|
|
isnull( FStorageSLEDCode, '' ) AS '仓储视图.SLED期间标识',
|
|
|
|
|
|
isnull( FMRP1Type, '' ) AS 'MRP1.MRP类型',
|
|
|
|
|
|
isnull( FMRP1Controller, '' ) AS 'MRP1.MRP控制者',
|
|
|
|
|
|
isnull( FMRP1BatchSize, '' ) AS 'MRP1.批量大小',
|
|
|
|
|
|
isnull( FMRP1MinBatchSize, '' ) AS 'MRP1.最小批量大小',
|
|
|
|
|
|
isnull( FMRP1MaxBatchSize, '' ) AS 'MRP1.最大批量大小',
|
|
|
|
|
|
isnull( FMRP1Group, '' ) AS 'MRP1.MRP组',
|
|
|
|
|
|
isnull( FMRP1RoundValue, '' ) AS 'MRP1.舍入值',
|
|
|
|
|
|
isnull( FMRP1ProductType, '' ) AS 'MRP1.产品分类',
|
|
|
|
|
|
isnull( FMRP1CustomerCode, '' ) AS 'MRP1.客户代码',
|
|
|
|
|
|
isnull( FMRP1SizeMaterial, '' ) AS 'MRP1.大小料',
|
|
|
|
|
|
isnull( FMRP1SmallMaterialStandard, '' ) AS 'MRP1.小料标准(小于)',
|
|
|
|
|
|
isnull( FMRP2PurchaseType, '' ) AS 'MRP2.采购类型',
|
|
|
|
|
|
isnull( FMRP2PlanMarginalCode, '' ) AS 'MRP2.计划边际码',
|
|
|
|
|
|
isnull( FMRP2SpecialProcurement, '' ) AS 'MRP2.特殊采购类',
|
|
|
|
|
|
isnull( FMRP2Recoil, '' ) AS 'MRP2.反冲',
|
|
|
|
|
|
isnull( FMRP2SelfProductTime, '' ) AS 'MRP2.自制生产时间',
|
|
|
|
|
|
isnull( FMRP2PlannDeliveryTime, '' ) AS 'MRP2.计划交货时间',
|
|
|
|
|
|
isnull( FMRP2ReceiveProcessTime, '' ) AS 'MRP2.收货处理时间',
|
|
|
|
|
|
isnull( FMRP2SafeStock, '' ) AS 'MRP2.安全库存',
|
|
|
|
|
|
isnull( FMRP2DeliveryInventoryPlace, '' ) AS 'MRP2.发货库存地点',
|
|
|
|
|
|
isnull( FMRP2ExternalStoragePlace, '' ) AS 'MRP2.外部采购仓储地点',
|
|
|
|
|
|
isnull( FMRP3PolicyGroup, '' ) AS 'MRP3.策略组',
|
|
|
|
|
|
isnull( FMRP3ConsumePattern, '' ) AS 'MRP3.消耗模式',
|
|
|
|
|
|
isnull( FMRP3ForwardConsumePeriod, '' ) AS 'MRP3.向前消耗期间',
|
|
|
|
|
|
isnull( FMRP3ReverseConsumePeriod, '' ) AS 'MRP3.逆向消耗期',
|
|
|
|
|
|
isnull( FMRP3BlendMRP, '' ) AS 'MRP3.混合MRP',
|
|
|
|
|
|
isnull( FMRP3AvailabilityCheck, '' ) AS 'MRP3.可用性检查',
|
|
|
|
|
|
isnull( FMRP4AloneOrFocus, '' ) AS 'MRP3.单独或集中',
|
|
|
|
|
|
isnull( FPlanProductPlanParam, '' ) AS '工作计划视图.生产计划参数文件',
|
|
|
|
|
|
isnull( FPlanUnlimitedOverDelivery, '' ) AS '工作计划视图.无限制过量交货',
|
|
|
|
|
|
isnull( FPlanUnderDeliveryTolerance, '' ) AS '工作计划视图.不足交货允差',
|
|
|
|
|
|
isnull( FPlanOverDeliveryTolerance, '' ) AS '工作计划视图.过度交货允差',
|
|
|
|
|
|
isnull( FPlanDeliverCompany, '' ) AS '工作计划视图.发货单位',
|
|
|
|
|
|
isnull( FPlanDeliverCompanyCount, '' ) AS '工作计划视图.发货单位数量',
|
|
|
|
|
|
isnull( FPlanBaseCompanyCount, '' ) AS '工作计划视图.发货基本单位数量',
|
|
|
|
|
|
isnull( FQualityType1, '' ) AS '质检视图.检验类型1',
|
|
|
|
|
|
isnull( FQualityType2, '' ) AS '质检视图.检验类型2',
|
|
|
|
|
|
isnull( FQualityType3, '' ) AS '质检视图.检验类型3',
|
|
|
|
|
|
isnull( FQualityType4, '' ) AS '质检视图.检验类型4',
|
|
|
|
|
|
isnull( FQualityType5, '' ) AS '质检视图.检验类型5',
|
|
|
|
|
|
isnull( FQualityType6, '' ) AS '质检视图.检验类型6',
|
|
|
|
|
|
isnull( FAccountPriceControl, '' ) AS '会计视图.价格控制',
|
|
|
|
|
|
isnull( FAccountPriceDetermine, '' ) AS '会计视图.价格确定',
|
|
|
|
|
|
isnull( FAccountPriceUnit, '' ) AS '会计视图.价格单位',
|
|
|
|
|
|
isnull( FAccountAccessType, '' ) AS '会计视图.评估分类',
|
|
|
|
|
|
isnull( FAccountSaleOrderInventory, '' ) AS '会计视图.VC: 销售订单库存',
|
|
|
|
|
|
isnull( FAccountStandardPrice, '' ) AS '会计视图.标准价格',
|
|
|
|
|
|
isnull( FAccountProfitCenter, '' ) AS '会计视图.利润中心',
|
|
|
|
|
|
isnull( FAccountCostAccountBatch, '' ) AS '会计视图.成本核算批量'
|
|
|
|
|
|
FROM(
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
isnull( b.FName, '' ) AS 'FTypeName1',
|
|
|
|
|
|
isnull( c.FName, '' ) AS 'FTypeName2',
|
|
|
|
|
|
isnull( FSAPCode, '' ) AS 'FCode',
|
|
|
|
|
|
isnull( FSAPDescription, '' ) AS 'FName',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FDesc',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FVersionCode',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FFactoryCode',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FSupplyCode',
|
|
|
|
|
|
isnull( FBaseMaterialGroup, '' ) AS 'FGroupCode',
|
|
|
|
|
|
isnull( FBaseWeightUnit, '' ) AS 'FBaseUnit',
|
|
|
|
|
|
isnull( FCraftExplain, '' ) AS 'FCraftDesc',
|
|
|
|
|
|
d.FName AS 'FtypeName',
|
|
|
|
|
|
a.*
|
|
|
|
|
|
FROM
|
|
|
|
|
|
TFS_MaterialInfo AS a
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS d ON a.FType=d.FID
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS b ON a.FTypeID1= b.FID
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS C ON a.FTypeID2= b.FID
|
|
|
|
|
|
)a;");
|
|
|
|
|
|
DataTable data = db.Ado.GetDataTable(strSql);
|
|
|
|
|
|
return data;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public DataTable GetMaterialInfoSAPALL()
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
string strSql = string.Format(@"
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
isnull( FName, '' ) AS '物料名称',
|
|
|
|
|
|
isnull( FDesc, '' ) AS '物料简介',
|
|
|
|
|
|
isnull( REPLACE ( FType , FType , FtypeName ), '' ) AS '物料类型',
|
|
|
|
|
|
isnull( FCode, '' ) AS '物料编码',
|
|
|
|
|
|
isnull( FTestCode, '' ) AS '试验号',
|
|
|
|
|
|
isnull( FVersionCode, '' ) AS '配方内码',
|
|
|
|
|
|
isnull( FFactoryCode, '' ) AS '工厂代码',
|
|
|
|
|
|
isnull( FSupplyCode, '' ) AS '物料供应标识',
|
|
|
|
|
|
isnull( FGroupCode, '' ) AS '组编号',
|
|
|
|
|
|
isnull( FBaseUnit, '' ) AS '基本计量单位',
|
|
|
|
|
|
isnull( FMaterialGroup, '' ) AS '物料组',
|
|
|
|
|
|
isnull( FStoreHouse, '' ) AS '总仓地址',
|
|
|
|
|
|
isnull( FWorkCenter, '' ) AS '工作中心',
|
|
|
|
|
|
isnull( FCraftDesc, '' ) AS '工艺描述',
|
|
|
|
|
|
isnull( FCraftExplain, '' ) AS '工艺说明',
|
|
|
|
|
|
isnull( FLineHouse, '' ) AS '线边仓',
|
|
|
|
|
|
isnull( FFixedLoss, '' ) AS '固定损耗',
|
|
|
|
|
|
isnull( FOrganizeIndustryField, '' ) AS '组织级别.行业领域',
|
|
|
|
|
|
isnull( FOrganizeMaterialType, '' ) AS '组织级别.物料类型',
|
|
|
|
|
|
isnull( FOrganizeFactory, '' ) AS '组织级别.工厂',
|
|
|
|
|
|
isnull( FOrganizeInventoryLocation, '' ) AS '组织级别.库存地点',
|
|
|
|
|
|
isnull( FOrganizeSalesOrganize, '' ) AS '组织级别.销售组织',
|
|
|
|
|
|
isnull( FOrganizeDistributionChannel, '' ) AS '组织级别.分销渠道',
|
|
|
|
|
|
isnull( FBaseMaterialCode, '' ) AS '基本视图.物料编号',
|
|
|
|
|
|
isnull( FBaseTestCode, '' ) AS '基本视图.试验号',
|
|
|
|
|
|
isnull( FBaseBasicMeter, '' ) AS '基本视图.基本计量',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS '基本视图.物料描述',
|
|
|
|
|
|
isnull( FBaseMaterialGroup, '' ) AS '基本视图.物料组',
|
|
|
|
|
|
isnull( FBaseSpecification, '' ) AS '基本视图.大小/量纲(规格)',
|
|
|
|
|
|
isnull( FBaseMaterialText, '' ) AS '基本视图.物料长文本',
|
|
|
|
|
|
isnull( FBaseIdentifier, '' ) AS '基本视图.标识符:固体/液体',
|
|
|
|
|
|
isnull( FBaseVolumeUnit, '' ) AS '基本视图.体积单位',
|
|
|
|
|
|
isnull( FBaseGrossWeight, '' ) AS '基本视图.毛重',
|
|
|
|
|
|
isnull( FBaseNetWeight, '' ) AS '基本视图.净重',
|
|
|
|
|
|
isnull( FBaseWeightUnit, '' ) AS '基本视图.重量单位',
|
|
|
|
|
|
isnull( FBaseBusinessVolume, '' ) AS '基本视图.业务量',
|
|
|
|
|
|
isnull( FBaseFameCode, '' ) AS '基本视图.fame号',
|
|
|
|
|
|
isnull( FPurchaseGroup, '' ) AS '采购视图.采购组',
|
|
|
|
|
|
isnull( FPurchaseCompany, '' ) AS '采购视图.采购单位',
|
|
|
|
|
|
isnull( FPurchaseCompanyCount, '' ) AS '采购视图.采购单位数量',
|
|
|
|
|
|
isnull( FPurchaseBaseCompanyCount, '' ) AS '采购视图.采购基本单位数量',
|
|
|
|
|
|
isnull( FPurchaseValueCode, '' ) AS '采购视图.采购价值码',
|
|
|
|
|
|
isnull( FPurchaseFactorySpecificStatus, '' ) AS '采购视图.工厂特定状态',
|
|
|
|
|
|
isnull( FPurchaseAutoOrder, '' ) AS '采购视图.自动采购单标识',
|
|
|
|
|
|
isnull( FPurchaseGoodsSource, '' ) AS '采购视图.货源清单',
|
|
|
|
|
|
isnull( FTypeCategoryType, '' ) AS '分类视图.类别种类',
|
|
|
|
|
|
isnull( FTypeType, '' ) AS '分类视图.类别',
|
|
|
|
|
|
isnull( FSaleDeliveryFactory, '' ) AS '销售视图.交货工厂',
|
|
|
|
|
|
isnull( FSaleTaxType, '' ) AS '销售视图.税金分类',
|
|
|
|
|
|
isnull( FSaleMaterialStatisticsGroup, '' ) AS '销售视图.物料统计组',
|
|
|
|
|
|
isnull( FSaleSalesCompany, '' ) AS '销售视图.销售单位',
|
|
|
|
|
|
isnull( FSaleBaseCompanyCount, '' ) AS '销售视图.基本单位数量',
|
|
|
|
|
|
isnull( FSaleSalesCompanyCount, '' ) AS '销售视图.销售单位数量',
|
|
|
|
|
|
isnull( FSaleAccountSettingGroup, '' ) AS '销售视图.科目设置组',
|
|
|
|
|
|
isnull( FSaleGeneralProjectCategoryGroup, '' ) AS '销售视图.普通项目类别组',
|
|
|
|
|
|
isnull( FSaleProjectCategoryGroup, '' ) AS '销售视图.项目类别组',
|
|
|
|
|
|
isnull( FSaleAvailabilityCheck, '' ) AS '销售视图.可用性检查',
|
|
|
|
|
|
isnull( FSaleOutfitGroup, '' ) AS '销售视图.装载组',
|
|
|
|
|
|
isnull( FSaleOldMaterialCode, '' ) AS '销售视图.旧物料号',
|
|
|
|
|
|
isnull( FStorageConditions, '' ) AS '仓储视图.存储条件',
|
|
|
|
|
|
isnull( FStorageBatchManage, '' ) AS '仓储视图.批次管理',
|
|
|
|
|
|
isnull( FStorageMaxStoragePeriod, '' ) AS '仓储视图.最大存储期间',
|
|
|
|
|
|
isnull( FStorageTimeUnit, '' ) AS '仓储视图.时间单位',
|
|
|
|
|
|
isnull( FStorageMinSurplusShelfLife, '' ) AS '仓储视图.最小剩余货架寿命',
|
|
|
|
|
|
isnull( FStorageTotalShelfLife, '' ) AS '仓储视图.总货架寿命',
|
|
|
|
|
|
isnull( FStorageSLEDCode, '' ) AS '仓储视图.SLED期间标识',
|
|
|
|
|
|
isnull( FMRP1Type, '' ) AS 'MRP1.MRP类型',
|
|
|
|
|
|
isnull( FMRP1Controller, '' ) AS 'MRP1.MRP控制者',
|
|
|
|
|
|
isnull( FMRP1BatchSize, '' ) AS 'MRP1.批量大小',
|
|
|
|
|
|
isnull( FMRP1MinBatchSize, '' ) AS 'MRP1.最小批量大小',
|
|
|
|
|
|
isnull( FMRP1MaxBatchSize, '' ) AS 'MRP1.最大批量大小',
|
|
|
|
|
|
isnull( FMRP1Group, '' ) AS 'MRP1.MRP组',
|
|
|
|
|
|
isnull( FMRP1RoundValue, '' ) AS 'MRP1.舍入值',
|
|
|
|
|
|
isnull( FMRP1ProductType, '' ) AS 'MRP1.产品分类',
|
|
|
|
|
|
isnull( FMRP1CustomerCode, '' ) AS 'MRP1.客户代码',
|
|
|
|
|
|
isnull( FMRP1SizeMaterial, '' ) AS 'MRP1.大小料',
|
|
|
|
|
|
isnull( FMRP1SmallMaterialStandard, '' ) AS 'MRP1.小料标准(小于)',
|
|
|
|
|
|
isnull( FMRP2PurchaseType, '' ) AS 'MRP2.采购类型',
|
|
|
|
|
|
isnull( FMRP2PlanMarginalCode, '' ) AS 'MRP2.计划边际码',
|
|
|
|
|
|
isnull( FMRP2SpecialProcurement, '' ) AS 'MRP2.特殊采购类',
|
|
|
|
|
|
isnull( FMRP2Recoil, '' ) AS 'MRP2.反冲',
|
|
|
|
|
|
isnull( FMRP2SelfProductTime, '' ) AS 'MRP2.自制生产时间',
|
|
|
|
|
|
isnull( FMRP2PlannDeliveryTime, '' ) AS 'MRP2.计划交货时间',
|
|
|
|
|
|
isnull( FMRP2ReceiveProcessTime, '' ) AS 'MRP2.收货处理时间',
|
|
|
|
|
|
isnull( FMRP2SafeStock, '' ) AS 'MRP2.安全库存',
|
|
|
|
|
|
isnull( FMRP2DeliveryInventoryPlace, '' ) AS 'MRP2.发货库存地点',
|
|
|
|
|
|
isnull( FMRP2ExternalStoragePlace, '' ) AS 'MRP2.外部采购仓储地点',
|
|
|
|
|
|
isnull( FMRP3PolicyGroup, '' ) AS 'MRP3.策略组',
|
|
|
|
|
|
isnull( FMRP3ConsumePattern, '' ) AS 'MRP3.消耗模式',
|
|
|
|
|
|
isnull( FMRP3ForwardConsumePeriod, '' ) AS 'MRP3.向前消耗期间',
|
|
|
|
|
|
isnull( FMRP3ReverseConsumePeriod, '' ) AS 'MRP3.逆向消耗期',
|
|
|
|
|
|
isnull( FMRP3BlendMRP, '' ) AS 'MRP3.混合MRP',
|
|
|
|
|
|
isnull( FMRP3AvailabilityCheck, '' ) AS 'MRP3.可用性检查',
|
|
|
|
|
|
isnull( FMRP4AloneOrFocus, '' ) AS 'MRP3.单独或集中',
|
|
|
|
|
|
isnull( FPlanProductPlanParam, '' ) AS '工作计划视图.生产计划参数文件',
|
|
|
|
|
|
isnull( FPlanUnlimitedOverDelivery, '' ) AS '工作计划视图.无限制过量交货',
|
|
|
|
|
|
isnull( FPlanUnderDeliveryTolerance, '' ) AS '工作计划视图.不足交货允差',
|
|
|
|
|
|
isnull( FPlanOverDeliveryTolerance, '' ) AS '工作计划视图.过度交货允差',
|
|
|
|
|
|
isnull( FPlanDeliverCompany, '' ) AS '工作计划视图.发货单位',
|
|
|
|
|
|
isnull( FPlanDeliverCompanyCount, '' ) AS '工作计划视图.发货单位数量',
|
|
|
|
|
|
isnull( FPlanBaseCompanyCount, '' ) AS '工作计划视图.发货基本单位数量',
|
|
|
|
|
|
isnull( FQualityType1, '' ) AS '质检视图.检验类型1',
|
|
|
|
|
|
isnull( FQualityType2, '' ) AS '质检视图.检验类型2',
|
|
|
|
|
|
isnull( FQualityType3, '' ) AS '质检视图.检验类型3',
|
|
|
|
|
|
isnull( FQualityType4, '' ) AS '质检视图.检验类型4',
|
|
|
|
|
|
isnull( FQualityType5, '' ) AS '质检视图.检验类型5',
|
|
|
|
|
|
isnull( FQualityType6, '' ) AS '质检视图.检验类型6',
|
|
|
|
|
|
isnull( FAccountPriceControl, '' ) AS '会计视图.价格控制',
|
|
|
|
|
|
isnull( FAccountPriceDetermine, '' ) AS '会计视图.价格确定',
|
|
|
|
|
|
isnull( FAccountPriceUnit, '' ) AS '会计视图.价格单位',
|
|
|
|
|
|
isnull( FAccountAccessType, '' ) AS '会计视图.评估分类',
|
|
|
|
|
|
isnull( FAccountSaleOrderInventory, '' ) AS '会计视图.VC: 销售订单库存',
|
|
|
|
|
|
isnull( FAccountStandardPrice, '' ) AS '会计视图.标准价格',
|
|
|
|
|
|
isnull( FAccountProfitCenter, '' ) AS '会计视图.利润中心',
|
|
|
|
|
|
isnull( FAccountCostAccountBatch, '' ) AS '会计视图.成本核算批量'
|
|
|
|
|
|
|
|
|
|
|
|
FROM(
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
isnull( b.FName, '' ) AS 'FTypeName1',
|
|
|
|
|
|
isnull( c.FName, '' ) AS 'FTypeName2',
|
|
|
|
|
|
isnull( FSAPCode, '' ) AS 'FCode',
|
|
|
|
|
|
isnull( FSAPDescription, '' ) AS 'FName',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FDesc',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FVersionCode',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FFactoryCode',
|
|
|
|
|
|
isnull( FBaseMaterialDesc, '' ) AS 'FSupplyCode',
|
|
|
|
|
|
isnull( FBaseMaterialGroup, '' ) AS 'FGroupCode',
|
|
|
|
|
|
isnull( FBaseWeightUnit, '' ) AS 'FBaseUnit',
|
|
|
|
|
|
isnull( FCraftExplain, '' ) AS 'FCraftDesc',
|
|
|
|
|
|
d.FName AS 'FtypeName',
|
|
|
|
|
|
a.*
|
|
|
|
|
|
FROM
|
|
|
|
|
|
TFS_MaterialInfo AS a
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS d ON a.FType=d.FID
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS b ON a.FTypeID1= b.FID
|
|
|
|
|
|
LEFT JOIN TFS_MaterialType AS C ON a.FTypeID2= b.FID
|
|
|
|
|
|
)a;");
|
|
|
|
|
|
DataTable data = db.Ado.GetDataTable(strSql);
|
|
|
|
|
|
return data;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// DataTable转List
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <typeparam name="T"></typeparam>
|
|
|
|
|
|
/// <param name="dt"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
|
|
|
|
|
|
public static List<T> TableToListModel<T>(DataTable dt) where T : new()
|
|
|
|
|
|
{
|
|
|
|
|
|
// 定义集合
|
|
|
|
|
|
List<T> ts = new List<T>();
|
|
|
|
|
|
|
|
|
|
|
|
// 获得此模型的类型
|
|
|
|
|
|
Type type = typeof(T);
|
|
|
|
|
|
string tempName = "";
|
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow dr in dt.Rows)
|
|
|
|
|
|
{
|
|
|
|
|
|
T t = new T();
|
|
|
|
|
|
// 获得此模型的公共属性
|
|
|
|
|
|
PropertyInfo[] propertys = t.GetType().GetProperties();
|
|
|
|
|
|
foreach (PropertyInfo pi in propertys)
|
|
|
|
|
|
{
|
|
|
|
|
|
tempName = pi.Name; // 检查DataTable是否包含此列
|
|
|
|
|
|
|
|
|
|
|
|
if (dt.Columns.Contains(tempName))
|
|
|
|
|
|
{
|
|
|
|
|
|
// 判断此属性是否有Setter
|
|
|
|
|
|
if (!pi.CanWrite) continue;
|
|
|
|
|
|
|
|
|
|
|
|
object value = dr[tempName];
|
|
|
|
|
|
if (value != DBNull.Value)
|
|
|
|
|
|
pi.SetValue(t, value, null);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
ts.Add(t);
|
|
|
|
|
|
}
|
|
|
|
|
|
return ts;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public int ExecSql(string sql)
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
return db.Ado.ExecuteCommand(sql);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<TFS_Material> GetMaterialByFName(string fname)
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
List<TFS_Material> mainsList = db.Queryable<TFS_Material>().Where(s => s.FDeleted != (int)Constant.DeleteCode.已删除 && s.FName.Equals(fname)).ToList();
|
|
|
|
|
|
|
|
|
|
|
|
return mainsList;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public int InsertMaterial(TFS_Material material)
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
return db.Insertable(material).IgnoreColumns(true).ExecuteReturnIdentity();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<TFS_MaterialInfo> GetMaterialInfoList()
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
return db.Queryable<TFS_MaterialInfo>().Where(s => s.FType == 1).ToList();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|