diff --git a/FactorySystemApi/Controllers/MaterialTeamworkController.cs b/FactorySystemApi/Controllers/MaterialTeamworkController.cs index 8f9860b..07116a3 100644 --- a/FactorySystemApi/Controllers/MaterialTeamworkController.cs +++ b/FactorySystemApi/Controllers/MaterialTeamworkController.cs @@ -10,6 +10,9 @@ using System.Collections.Generic; using System.Web.Http; using FactorySystemModel.RequestModel; using System.Reflection; +using System.Data; +using System.IO; +using System.Security.Cryptography; namespace FactorySystemApi.Controllers { @@ -579,5 +582,117 @@ namespace FactorySystemApi.Controllers } return result as T; } + + /// + /// 下载SAP视图 + /// + [HttpPost] + public ApiResult DownMateialViewSAP(Dictionary inParam) + { + ApiResult apiResult = new ApiResult(); + + return ExceptionHelper.TryReturnException(() => + { + if (inParam.ContainsKey("teamId") && inParam.ContainsKey("teamWorkType")) + { + inParam.TryGetValue("teamId", out object teamworkId); + inParam.TryGetValue("teamWorkType", out object teamworkType); + inParam.TryGetValue("materialName", out object materialName); + + string basePath = AppDomain.CurrentDomain.BaseDirectory.Trim('\\'); + string savePath = basePath + string.Format("\\File\\Temp\\{0}_{1}\\", inParam["teamId"], "ViewSAP"); + if (!Directory.Exists(savePath)) Directory.CreateDirectory(savePath); + string tempPath = savePath.Replace("\\File\\Temp\\", "\\File\\View\\"); + if (!Directory.Exists(tempPath)) Directory.CreateDirectory(tempPath); + savePath += ".xlsx"; + + bool hasFinish = inParam.ContainsKey("FFinish"); + if (hasFinish) savePath = savePath.Replace("\\File\\Temp\\", "\\File\\View\\"); + if (!File.Exists(savePath) || !hasFinish) + { + CreateExeclFileSAP(materialName.ToString(), savePath, teamworkId.ToString(), teamworkType.ToString()); + } + + string url = Request.RequestUri.AbsoluteUri.Replace(Request.RequestUri.AbsolutePath, "") + savePath.Replace(basePath, "").Replace("\\", "/").Replace(".xlsx", materialName.ToString() + ".xlsx"); + apiResult.Data = url; + } + else + { + apiResult.Error("视图信息获取失败"); + } + + }, apiResult, Request); + } + + /// + /// 下载视图 + /// + [HttpPost] + public ApiResult DownMateialView(Dictionary inParam) + { + ApiResult apiResult = new ApiResult(); + + return ExceptionHelper.TryReturnException(() => + { + if (inParam.ContainsKey("teamId") && inParam.ContainsKey("teamWorkType") && inParam.ContainsKey("materialName")) + { + + inParam.TryGetValue("teamId", out object teamworkId); + inParam.TryGetValue("teamWorkType", out object teamworkType); + inParam.TryGetValue("materialName", out object materialName); + + string basePath = AppDomain.CurrentDomain.BaseDirectory.Trim('\\'); + string savePath = basePath + string.Format("\\File\\Temp\\{0}_{1}\\", inParam["teamId"], "View"); + if (!Directory.Exists(savePath)) Directory.CreateDirectory(savePath); + string tempPath = savePath.Replace("\\File\\Temp\\", "\\File\\View\\"); + if (!Directory.Exists(tempPath)) Directory.CreateDirectory(tempPath); + savePath += ".xlsx"; + + bool hasFinish = inParam.ContainsKey("FFinish"); + if (hasFinish) savePath = savePath.Replace("\\File\\Temp\\", "\\File\\View\\"); + if (!File.Exists(savePath) || !hasFinish) + { + CreateExeclFile(materialName.ToString(), savePath, teamworkId.ToString(), teamworkType.ToString()); + } + + string url = Request.RequestUri.AbsoluteUri.Replace(Request.RequestUri.AbsolutePath, "") + savePath.Replace(basePath, "").Replace("\\", "/").Replace(".xlsx", materialName.ToString() + ".xlsx"); + apiResult.Data = url; + } + else + { + apiResult.Error("视图信息获取失败"); + } + + }, apiResult, Request); + } + + private void CreateExeclFileSAP(string fType, string savePath, string teamworkId, string teamworkType) + { + DataTable dataList = new DataTable(); + + dataList = MaterialTeamworkBll.GetViewMaterialSAP(teamworkId, teamworkType); + NPOIHelper.ExportDTtoExcel(dataList, "Sheet1", savePath.Replace(".xlsx", fType + ".xlsx")); + } + + private void CreateExeclFile(string fType, string savePath, string teamworkId, string teamworkType) + { + DataTable dataList = null; + List viewList = null; + + int teamId; + int teamType; + + int.TryParse(teamworkId, out teamId); + int.TryParse(teamworkType, out teamType); + + viewList = MaterialTeamworkBll.GetViewMaterialByTeamId(teamId, teamType); + if (viewList != null && viewList.Count > 0) + { + int materialId = viewList[0].FMaterialID; + dataList = MaterialTeamworkBll.GetViewMaterial(materialId.ToString()); + NPOIHelper.ExportDTtoExcel(dataList, "Sheet1", savePath.Replace(".xlsx", fType + ".xlsx")); + } + + } } } diff --git a/FactorySystemBll/MaterialTeamworkBll.cs b/FactorySystemBll/MaterialTeamworkBll.cs index a707c64..473539f 100644 --- a/FactorySystemBll/MaterialTeamworkBll.cs +++ b/FactorySystemBll/MaterialTeamworkBll.cs @@ -6,7 +6,9 @@ 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 @@ -162,8 +164,6 @@ namespace FactorySystemBll .OrderBy("FDepth,FID").Select("FID,FName,FID FValue,FDepth,FParentID").ToList(); } - - public int InsertMaterialView(TFS_ViewMaterial view) { SqlSugarClient db = AppSettingsHelper.GetSqlSugar(); @@ -368,5 +368,330 @@ namespace FactorySystemBll return materialList; } + + public List GetViewMaterialByTeamId(int teamworkId, int teamworkType) + { + List viewList = null; + SqlSugarClient db = AppSettingsHelper.GetSqlSugar(); + + if (teamworkType == 1) + { + viewList = db.Queryable().Where(s => s.FTeamID == teamworkId && s.FTeamType == 1).ToList(); + } + else + { + viewList = db.Queryable().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 '额外增加字段:配方视图、组装bom视图的基本数量对应PLM配方下载BOM中用量', + 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; + } } } diff --git a/FactorySystemBll/TeamworkBll.cs b/FactorySystemBll/TeamworkBll.cs index 61ce88e..2539cce 100644 --- a/FactorySystemBll/TeamworkBll.cs +++ b/FactorySystemBll/TeamworkBll.cs @@ -264,6 +264,7 @@ namespace FactorySystemBll left join TFS_Material on TFS_Material.FID=TFS_ViewMaterial.FMaterialID left join TFS_MaterialInfo on TFS_ViewMaterial.FMaterialID=TFS_MaterialInfo.FDataID and TFS_MaterialInfo.FType=2 left join TFS_PackageChild on TFS_PackageChild.FMaterialID =TFS_ViewMaterial.FMaterialID + left join TFS_FTeamwork on TFS_ViewMaterial.FTeamID=TFS_FTeamwork.FID {2} where {1}", selectSql, whereSql, string.IsNullOrEmpty(joinSql) ? "" : joinSql); return db.Ado.GetDataTable(strSql); } diff --git a/FactorySystemBll/ViewBll.cs b/FactorySystemBll/ViewBll.cs index 519ba4b..bcb7cf5 100644 --- a/FactorySystemBll/ViewBll.cs +++ b/FactorySystemBll/ViewBll.cs @@ -32,7 +32,7 @@ namespace FactorySystemBll * 此处的viewType来自TBasicCode中FType=33时,的FRemark字段 * **/ List> viewList = new List>(); - List viewTypes=new List { 2,3,4,5,1}; + List viewTypes=new List { 2,3,4,5 }; if (viewTypes.Contains(viewType)) { viewList = db.Queryable((a, b) => @@ -53,10 +53,30 @@ namespace FactorySystemBll .Select("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(); + + TFS_FTeamwork teamWork = db.Queryable().Where(s => s.FID == teamId).First(); + TFS_PackageMain packAge = db.Queryable().Where(s => s.FCode == teamWork.FPackCode).First(); + + if (packAge != null) + { + viewList[0].Remove("FBaseGrossWeight"); + viewList[0].Add("FBaseGrossWeight", packAge.FGrossWeight); + viewList[0].Remove("FBaseNetWeight"); + viewList[0].Add("FBaseNetWeight", packAge.FNetWeight); + viewList[0].Remove("FBaseSpecification"); + viewList[0].Add("FBaseSpecification", packAge.FSpecs); + viewList[0].Add("HalfCode", teamWork.FMaterialHalfIDs); + } + var FBaseMaterialDesc = viewList.GroupBy(s => s["FBaseMaterialDesc"]).Select(s => s.Key).ToList(); + + if (FBaseMaterialDesc.Count > 0) + { + viewList[0].Add("HalfDesc", FBaseMaterialDesc[0]); + } } if (viewType == 1) { - List> viewList1 = db.Queryable((a, b) => + viewList = db.Queryable((a, b) => new JoinQueryInfos(JoinType.Inner, a.FMaterialID == b.FID)) .Where((a, b) => a.FTeamID == teamId) .WhereIF(currUser != null, (a, b) => a.FFactoryID == currUser.FFactoryID) @@ -64,7 +84,7 @@ namespace FactorySystemBll .Select("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(); - List Minfo = GetMaterialInfoList(viewList1.GroupBy(s => s["FMaterialID"]).Select(s => int.Parse(s.Key.ToString())).ToList(), "", "", currUserId); + List Minfo = GetMaterialInfoList(viewList.GroupBy(s => s["FMaterialID"]).Select(s => int.Parse(s.Key.ToString())).ToList(), "", "", currUserId); if (Minfo.Count > 0) { FGuaranteePeriod = Minfo[0].FGuaranteePeriod; FStorageConditions = Minfo[0].FStorageConditions; @@ -82,7 +102,7 @@ namespace FactorySystemBll viewList[0].Add("FBaseSpecification", packAge.FSpecs); viewList[0].Add("HalfCode", teamWork.FMaterialHalfIDs); } - var FBaseMaterialDesc = viewList1.GroupBy(s => s["FBaseMaterialDesc"]).Select(s => s.Key).ToList(); + var FBaseMaterialDesc = viewList.GroupBy(s => s["FBaseMaterialDesc"]).Select(s => s.Key).ToList(); if (FBaseMaterialDesc.Count > 0) { viewList[0].Add("HalfDesc", FBaseMaterialDesc[0]);