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.

698 lines
40 KiB

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
{
/// <summary>
/// 获取路线列表
/// </summary>
public List<MaterialTeamworkRow> GetList(MaterialTeamworkQuery mtq, out int totalNumber)
{
totalNumber = 0;
var db = AppSettingsHelper.GetSqlSugar();
return db.Queryable<TFS_FMaterialTeamwork, TUser>((a, b) => new JoinQueryInfos(JoinType.Left, a.FAddUser == b.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<MaterialTeamworkRow>("a.* ,b.FName as FAddUserName").OrderBy((a) => a.FID, OrderByType.Desc)
.ToPageList(mtq.FPageIndex, mtq.FPageSize, ref totalNumber);
}
/// <summary>
/// 获取视图编辑列
/// </summary>
public List<Dictionary<string, object>> GetColumns()
{
List<TFS_ViewFieldInfo> fieldList = AppSettingsHelper.GetSqlSugar().Queryable<TFS_ViewFieldInfo>()
.Where(it => it.FType == (int)Constant.ViewType. || it.FType == (int)Constant.ViewType.)
.OrderBy(it => it.FType, OrderByType.Desc)
.OrderBy(it => it.FOrder)
.ToList();
List<Dictionary<string, object>> dicList = new List<Dictionary<string, object>>();
foreach (var field in fieldList)
{
Dictionary<string, object> dic = new Dictionary<string, object> { { "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;
}
/// <summary>
/// 获取视图
/// </summary>
public List<Dictionary<string, object>> GetMaterialViewsByTeamId(int teamId, int teamworkType, int teamType, int currUserId, bool byFactory, out List<int> materialId)
{
TUser currUser = null;
if (byFactory == true) currUser = BaseBll.GetTempModel<TUser>(currUserId, "FFactoryID");
var db = AppSettingsHelper.GetSqlSugar();
List<Dictionary<string, object>> viewList = new List<Dictionary<string, object>>();
if (teamworkType == 2)
{
viewList = db.Queryable<TFS_ViewMaterial, TFS_Material>((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<object>("distinct a.*,b.FTypeID1,b.FTypeID2,b.FK3Code,b.FK3Name,b.FK3ShortCode,b.FTestCode,b.FRelationCode,b.FRelationName,b.FSAPCode,b.FSAPDescription,b.FMaterialGroup,b.FMaterialType,b.FCustomerCode,b.FStoreHouse," +
"b.FBomEntry,b.FLineHouse,b.FProductDesc,b.FWorkCenter,b.FCraftExplain,b.FIidentifier,b.FGuaranteePeriod,b.FBStorageConditions,b.FSafetyStock,b.FTriggerRatio,b.FMinAmount,b.FMaxAmount,b.FYield,b.FFixedLoss,b.FTheoryYield," +
"b.FQualityTest1,b.FQualityTest2").ToDictionaryList();
}
else
{
viewList = db.Queryable<TFS_ViewMaterial, TFS_Material>((a, b) =>
new JoinQueryInfos(JoinType.Inner, a.FMaterialID == b.FID))
.Where((a, b) => a.FTeamID == teamId)
.Where((a, b) => a.FTeamType == teamType)
//.WhereIF(currUser != null, (a, b) => a.FFactoryID == currUser.FFactoryID)
.Select<object>("distinct a.*,b.FTypeID1,b.FTypeID2,b.FK3Code,b.FK3Name,b.FK3ShortCode,b.FTestCode,b.FRelationCode,b.FRelationName,b.FSAPCode,b.FSAPDescription,b.FMaterialGroup,b.FMaterialType,b.FCustomerCode,b.FStoreHouse," +
"b.FBomEntry,b.FLineHouse,b.FProductDesc,b.FWorkCenter,b.FCraftExplain,b.FIidentifier,b.FGuaranteePeriod,b.FBStorageConditions,b.FSafetyStock,b.FTriggerRatio,b.FMinAmount,b.FMaxAmount,b.FYield,b.FFixedLoss,b.FTheoryYield," +
"b.FQualityTest1,b.FQualityTest2").ToDictionaryList();
}
materialId = viewList.GroupBy(s => s["FMaterialID"]).Select(s => int.Parse(s.Key.ToString())).ToList();
return viewList;
}
/// <summary>
/// 根据模式和物料获取视图
/// </summary>
public TFS_ViewMaterial GetMaterialViewsByFactoryAndMaterial(int factoryId, int materialId)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
TFS_ViewMaterial view = db.Queryable<TFS_ViewMaterial>().Where(s => s.FMaterialID == materialId && s.FFactoryID == factoryId).First();
return view;
}
/// <summary>
/// 根据物料获取基本信息
/// </summary>
public List<TFS_MaterialInfo> GetMaterialInfoList(List<int> materialIds, int userId)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
List<TFS_MaterialInfo> infoList = db.Queryable<TFS_MaterialInfo>().Where(s => materialIds.Contains(s.FDataID) && s.FType == 2).ToList();
if (infoList.Count != materialIds.Count)
{
materialIds = materialIds.Where(s => infoList.Find(f => f.FDataID == s) == null).ToList();
foreach (int materialId in materialIds)
{
TFS_Material temp = db.Queryable<TFS_Material>().Where(s => s.FID == materialId).First();
TFS_MaterialInfo info = new TFS_MaterialInfo()
{
FType = 2,
FDataID = materialId,
FAddUser = userId,
FMaterialGroup = temp.FMaterialGroup,
FMaterialType = temp.FMaterialType
};
db.Insertable(info).IgnoreColumns(true).ExecuteCommand();
infoList.Add(info);
}
}
return infoList;
}
/// <summary>
/// 根据物料分类集合信息
/// </summary>
public object GetMaterialTypeList()
{
return AppSettingsHelper.GetSqlSugar().Queryable<TFS_MaterialType>().Where(s => s.FDeleted != 1 && s.FState == 1)
.OrderBy("FDepth,FID").Select<dynamic>("FID,FName,FID FValue,FDepth,FParentID").ToList();
}
public int InsertMaterialView(TFS_ViewMaterial view)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
return db.Insertable(view).IgnoreColumns(true).ExecuteReturnIdentity();
}
public int InsertMaterial(TFS_Material material)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
return db.Insertable(material).IgnoreColumns(true).ExecuteReturnIdentity();
}
public int UpdateMaterial(TFS_Material material)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
return db.Updateable(material).IgnoreColumns(true).Where("FID").ExecuteCommand();
}
public int UpdateMaterialViewById(List<Dictionary<string, object>> viewList, int userId, int teamId, int teamworkType)
{
int result = 0;
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
if (viewList != null && viewList.Count > 0)
{
for(int i = 0; i < viewList.Count; i++)
{
viewList[i]["FEditUser"] = userId;
viewList[i]["FEditDate"] = DateTime.Now;
}
string sqlWhere = "";
if (teamworkType == 2)
{
sqlWhere = string.Format("FViewType={0} and FMdfMaterialTeamId={1} and FTeamType={2}", 0, teamId, 1);
}
else
{
sqlWhere = string.Format("FViewType={0} and FTeamID={1} and FTeamType={2}", 0, teamId, 1);
}
// 更新视图
result += db.Updateable(viewList).AS("TFS_ViewMaterial").WhereColumns("FMaterialID").Where(sqlWhere).ExecuteCommand();
result += UnionModifyData(viewList, "TFS_ViewMaterial", teamId, teamworkType, db, "FMaterialID");
}
return result;
}
public int UpdateMaterialById(List<Dictionary<string, object>> materialList, int userId, int teamId, int teamworkType)
{
int result = 0;
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
if (materialList != null && materialList.Count > 0)
{
for (int i = 0; i < materialList.Count; i++)
{
materialList[i]["FID"] = materialList[i]["FMaterialID"];
materialList[i]["FEditUser"] = userId;
materialList[i]["FEditDate"] = DateTime.Now;
materialList[i].Remove("FMaterialID");
if (materialList[i].TryGetValue("FK3Code", out object k3Code))
{
if (materialList[i].ContainsKey("FK3ShortCode"))
{
materialList[i]["FK3ShortCode"] = k3Code.ToString().Split('.').Last();
}
else
{
materialList[i].Add("FK3ShortCode", k3Code.ToString().Split('.').Last());
}
}
result += db.Updateable(materialList[i]).AS("TFS_Material").WhereColumns("FID").ExecuteCommand();
}
result += UnionModifyData(materialList, "TFS_Material", teamId, teamworkType, db);
}
return result;
}
public int UpdateMaterialInfoById(List<Dictionary<string, object>> infoList, int userId, int teamId, int teamworkType)
{
int result = 0;
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
if (infoList != null && infoList.Count > 0)
{
for (int i = 0; i < infoList.Count; i++)
{
infoList[i]["FDataID"] = infoList[i]["FMaterialID"];
infoList[i]["FEditUser"] = userId;
infoList[i]["FEditDate"] = DateTime.Now;
infoList[i].Remove("FMaterialID");
infoList[i].Add("FType", 2);
result += db.Updateable(infoList[i]).AS("TFS_MaterialInfo").WhereColumns("FDataID", "FType").ExecuteCommand();
}
//result += db.Updateable(infoList).AS("TFS_MaterialInfo").WhereColumns("FDataID", "FType").ExecuteCommand();
result += UnionModifyData(infoList, "TFS_MaterialInfo", teamId, teamworkType, db, "FDataID");
}
return result;
}
public int UpdateMaterialView(TFS_ViewMaterial view)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
return db.Updateable(view).IgnoreColumns(true).WhereColumns("FID").ExecuteCommand();
}
private int UnionModifyData(List<Dictionary<string, object>> dataList, string srcTable, int teamId, int teamworkType, SqlSugarClient db = null, string colName = "FID")
{
int result = 0;
if (dataList != null && dataList.Count > 0)
{
if (db == null) db = AppSettingsHelper.GetSqlSugar();
List<TFS_UnionModify> unionList = db.Queryable<TFS_UnionModify>().Where(s => s.FDeleted != 1 && s.FTableOriginal == srcTable).ToList();
if (unionList.Count > 0)
{
List<string> sqlList = new List<string>() { "update {0} set {0}.{1}={2}.{3} from {0} left join {2} on {4} where {2}.{5}='{6}' {7}" };
foreach (Dictionary<string, object> data in dataList)
{
foreach (TFS_UnionModify union in unionList)
{
if (data.TryGetValue(union.FColumnOriginal, out object srcVal))
{
string sqlWhere = "";
if (union.FTableTarget == "TFS_ViewMaterial" || union.FTableOriginal == "TFS_ViewMaterial")
{
if (teamworkType == 2)
{
sqlWhere = " and TFS_ViewMaterial.FMdfMaterialTeamID=" + teamId;
}
else
{
sqlWhere = " and TFS_ViewMaterial.FTeamID=" + teamId;
}
}
sqlList.Add(string.Format(sqlList[0], union.FTableTarget, union.FColumnTarget,
union.FTableOriginal, union.FColumnOriginal, union.FUnionCondition, colName,
data[colName], sqlWhere));
}
}
}
sqlList.RemoveAt(0);
if (sqlList.Count > 0)
{
string updateSql = string.Join(";", sqlList);
try {
result = db.Ado.ExecuteCommand(updateSql);
}
catch (Exception ex) {
}
}
}
}
return result;
}
public int CloseMaterialTeamwork(int teamId, int userId)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
List<TFS_FMaterialTeamwork> teamworkList = db.Queryable<TFS_FMaterialTeamwork>().Where(s => s.FID == teamId && s.FState == 1).ToList();
int result = 0;
if (teamworkList != null && teamworkList.Count > 0)
{
TFS_FMaterialTeamwork fmt = teamworkList[0];
fmt.FState = 2;
fmt.FEditUser = userId;
fmt.FEditDate = DateTime.Now;
result = db.Updateable(fmt).IgnoreColumns(true).WhereColumns("FID").ExecuteCommand();
}
return result;
}
public int UpdateMaterialTeamwork(TFS_FMaterialTeamwork teamwork)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
int result = 0;
result = db.Updateable(teamwork).IgnoreColumns(true).WhereColumns("FID").ExecuteCommand();
return result;
}
public List<TFS_Material> SearchMaterialsByFactory(string materialName, int pageNumber, int pageSize, out int totalNumber)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
totalNumber = 0;
List<TFS_Material> materialList = db.Queryable<TFS_Material>()
.WhereIF(!string.IsNullOrEmpty(materialName.Trim()), a => a.FName.Contains(materialName))
.ToPageList(pageNumber, pageSize, ref totalNumber);
return materialList;
}
public List<TFS_ViewMaterial> GetViewMaterialByTeamId(int teamworkId, int teamworkType)
{
List<TFS_ViewMaterial> viewList = null;
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
if (teamworkType == 1)
{
viewList = db.Queryable<TFS_ViewMaterial>().Where(s => s.FTeamID == teamworkId && s.FTeamType == 1).ToList();
}
else
{
viewList = db.Queryable<TFS_ViewMaterial>().Where(s => s.FMdfMaterialTeamID == teamworkId && s.FTeamType == 1).ToList();
}
return viewList;
}
public DataTable GetViewMaterialSAP(string teamworkId, string teamworkType)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
string strSql = @"
SELECT
isnull(FMaterialId, '') AS 'ID',
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 'MRP4.',
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 '.',
isnull(FExtraQuantity, '') AS 'bomPLMBOM',
isnull(FMRP1ReorderLocation, '') AS 'MRP1.',
isnull(FMRP1RegularBatchSize, '') AS 'MRP1.',
isnull(FMRP1MaxInventorySize, '') AS 'MRP1.',
isnull(FMRP1IgnoreLack, '') AS 'MRP1.',
isnull(FMRP1laminated, '') AS 'MRP1.',
isnull(FMRP1SafeStock, '') AS 'MRP1.',
isnull(FMRP1RequireCount, '') AS 'MRP1.',
isnull(FMRP4DiscontinuousIidentifier, '') AS 'MRP4.',
isnull(FMRP4EffectivePeriod, '') AS 'MRP4.',
isnull(FMRP4FollowMaterial, '') AS 'MRP4.'
FROM TFS_ViewMaterial";
if ("2".Equals(teamworkType))
{
string whereSql = string.Format(" Where FTeamType=1 And FMdfMaterialTeamID={0}", teamworkId);
strSql = strSql + whereSql;
}
else
{
string whereSql = string.Format(" Where FTeamType=1 And FTeamID={0}", teamworkId);
strSql = strSql + whereSql;
}
DataTable data = db.Ado.GetDataTable(strSql);
return data;
}
public DataTable GetViewMaterial(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;
}
}
}