@ -14,6 +14,7 @@ using Newtonsoft.Json.Linq;
using FactorySystemApi.Plm_Formula ;
using FactorySystemApi.Plm_Formula ;
using System.Linq ;
using System.Linq ;
using SqlSugar ;
using SqlSugar ;
using System.Globalization ;
namespace FactorySystemApi.Controllers
namespace FactorySystemApi.Controllers
{
{
@ -40,6 +41,114 @@ namespace FactorySystemApi.Controllers
InsertField = UpdateField = "" ;
InsertField = UpdateField = "" ;
}
}
/// <summary>
/// 更新试验号
/// </summary>
/// <param name="inParam"></param>
/// <returns></returns>
//public ApiResult EditFTestCode(Dictionary<string, object> inParam)
//{
// int teamId = 0;
// ApiResult apiResult = new ApiResult();
// return ExceptionHelper.TryReturnException(() => {
// if (inParam.ContainsKey("FTestCode") && inParam.ContainsKey("FNewTestCode") && inParam.ContainsKey("FCreateFactoryID"))
// {
// inParam.TryGetValue("FState", out object state);
// if (null == state)
// {
// inParam["FState"] = state = 1;
// }
// inParam.Remove("FID");
// ApiAuthInfo user = Request.Properties["token"] as ApiAuthInfo;
// if (inParam.ContainsKey("FAddUser"))
// {
// inParam["FAddUser"] = user.FID;
// }
// else
// {
// inParam.Add("FAddUser", user.FID);
// }
// if (inParam.ContainsKey("FEditUser"))
// {
// inParam["FEditUser"] = user.FID;
// }
// else
// {
// inParam.Add("FEditUser", user.FID);
// }
// if (inParam.ContainsKey("FEditDate"))
// {
// inParam["FEditDate"] = DateTime.Now;
// }
// else
// {
// inParam.Add("FEditDate", DateTime.Now);
// }
// TFS_Factory factory = BaseBll.GetTempModel<TFS_Factory>(int.Parse(inParam["FCreateFactoryID"].ToString()));
// if (inParam.ContainsKey("FCreateFactoryID"))
// {
// inParam.Remove("FCreateFactoryID");
// }
// inParam.Add("FCreateFactoryID", factory.FID);
// inParam.Add("FCreateFactoryCode", factory.FCode);
// inParam.Add("FCreateFactoryType", factory.FType);
// if (factory.FType != (int)Constant.FactoryType.单工厂)
// {
// factory = BaseBll.GetTempModel<TFS_Factory>(factory.FFactoryID);
// inParam.Add("FProdFactoryID", factory.FID);
// inParam.Add("FProdFactoryCode", factory.FCode);
// }
// else
// {
// inParam.Add("FProdFactoryID", factory.FID);
// inParam.Add("FProdFactoryCode", factory.FCode);
// }
// if (!inParam.ContainsKey("FSaleCode"))
// {
// inParam.Add("FSaleCode", "");
// }
// //创建 TFS_HalfMaterialFTeamwork
// teamId = BaseBll.InsertDataModel(inParam, "TFS_HalfMaterialFTeamwork");
// //更新试验号
// List<TFS_Material> editMaterialList = MaterialTeamworkBll.UpdateFormula(inParam["FTestCode"].ToString(), inParam["FNewTestCode"].ToString(), teamId);
// if (teamId > 0)
// {
// //创建流程
// int resultProcessCreate = MaterialTeamworkBll.CreateProcessData(teamId, user.FID);
// TFS_HalfMaterialFTeamwork teamwork = BaseBll.GetTempModel<TFS_HalfMaterialFTeamwork>(teamId);
// MaterialTeamworkBll.CreateProductView(teamwork, editMaterialList, user.FID);
// //开始BOM下载
// int dow = DockGetBomData(teamwork.FID, user.FID);
// //判断是否有新的BOM物料, 或者是否有变更的物料
// if (dow > 0 || editMaterialList.Count() > 0)
// {
// BaseBll.CreateTaskData2(teamwork.FID, user.FID, "1"); //新增物料分类事项
// BaseBll.UpdateTeamProcess2(teamId, (int)Constant.HalfMaterialProcessType.物料分类, 2, 1); // 更新物料分类流程
// }
// else
// {
// BaseBll.DeleteDataById(teamId, "TFS_HalfMaterialFTeamwork", true);
// apiResult.Error("未能找到物料");
// }
// }
// }
// else
// {
// apiResult.Error("保存失败");
// }
// }, apiResult, Request, inParam);
//}
/// <summary>
/// <summary>
/// 获取子项集合
/// 获取子项集合
/// </summary>
/// </summary>
@ -149,7 +258,7 @@ namespace FactorySystemApi.Controllers
//创建 TFS_FTeamwork
//创建 TFS_FTeamwork
int teamId = BaseBll . InsertDataModel ( inParam , "TFS_HalfMaterialFTeamwork" ) ;
int teamId = BaseBll . InsertDataModel ( inParam , "TFS_HalfMaterialFTeamwork" ) ;
List < TFS_Material > editMaterialList = MaterialTeamworkBll . UpdateFormula ( inParam [ "FTestCode" ] . ToString ( ) , inParam [ "FNewTestCode" ] . ToString ( ) , teamId );
List < TFS_Material > editMaterialList = MaterialTeamworkBll . UpdateFormula ( inParam [ "FTestCode" ] . ToString ( ) , inParam [ "FNewTestCode" ] . ToString ( ) , teamId , factory . FID );
ids = editMaterialList . Select ( m = > m . FID ) . Distinct ( ) . ToList ( ) ;
ids = editMaterialList . Select ( m = > m . FID ) . Distinct ( ) . ToList ( ) ;
apiResult . Data = teamId ;
apiResult . Data = teamId ;
@ -165,20 +274,38 @@ namespace FactorySystemApi.Controllers
{
{
TFS_HalfMaterialFTeamwork teamwork = BaseBll . GetTempModel < TFS_HalfMaterialFTeamwork > ( teamId ) ;
TFS_HalfMaterialFTeamwork teamwork = BaseBll . GetTempModel < TFS_HalfMaterialFTeamwork > ( teamId ) ;
MaterialTeamworkBll . CreateProductView ( teamwork , editMaterialList , user . FID ) ;
//if (editMaterialList.Count() == 0)
//{
// MaterialTeamworkBll.CreateProductView(teamwork, null, user.FID);
//}
//if (editMaterialList.Count() == 0)
//{
// //MaterialTeamworkBll.CreateProductView(teamwork, null, user.FID);
// TFS_Material material = editMaterialList.Find(s => s.FType == "20");//默认取第一个20的, 没找到取第一个
// if (material == null) material = editMaterialList.FirstOrDefault();
// db.Updateable<TFS_HalfMaterialFTeamwork>(new { FMaterialHalfIDs = material.FID }).Where(s => s.FID == teamwork.FID).ExecuteCommand();
//}
//else
//{
// //MaterialTeamworkBll.CreateProductView(teamwork, editMaterialList, user.FID);
//}
//开始BOM下载
//开始BOM下载
int dow = DockGetBomData ( teamwork . FID , user . FID ) ;
int dow = DockGetBomData ( teamwork . FID , user . FID ) ;
if ( dow > 0 )
if ( dow > 0 | | editMaterialList . Count ( ) > 0 )
{
{
MaterialTeamworkBll . HasMaterialTestCode ( teamwork ) ;
MaterialTeamworkBll . HasMaterialTestCode ( teamwork ) ;
BaseBll . CreateTaskData2 ( teamwork . FID , user . FID , "1" ) ; //新增物料分类事项
BaseBll . CreateTaskData2 ( teamwork . FID , user . FID , "1" ) ; //新增物料分类事项
BaseBll . UpdateTeamProcess2 ( teamId , ( int ) Constant . HalfMaterialProcessType . 物 料 分 类 , 2 , 1 ) ; // 更新物料分类流程
BaseBll . UpdateTeamProcess2 ( teamId , ( int ) Constant . HalfMaterialProcessType . 物 料 分 类 , 2 , 1 ) ; // 更新物料分类流程
}
}
else
else
{
{
BaseBll . CreateTaskData2 ( teamId , user . FID , ( ( int ) Constant . HalfMaterialTask . BOM 下 载 ) . ToString ( ) ) ;
BaseBll . DeleteDataById ( teamId , "TFS_HalfMaterialFTeamwork" , true ) ;
BaseBll . UpdateTeamProcess2 ( teamId , ( int ) Constant . HalfMaterialTask . 物 料 分 类 , 1 , 1 ) ;
apiResult . Error ( "未能找到物料" ) ;
//BaseBll.CreateTaskData2(teamId, user.FID, ((int)Constant.HalfMaterialTask.BOM下载).ToString());
//BaseBll.UpdateTeamProcess2(teamId, (int)Constant.HalfMaterialTask.物料分类, 1, 1);
}
}
}
}
@ -199,7 +326,7 @@ namespace FactorySystemApi.Controllers
catch ( Exception ex )
catch ( Exception ex )
{
{
//失败则把修改的更新回去
//失败则把修改的更新回去
MaterialTeamworkBll . UpdateFormula ( inParam [ "FTestCode" ] . ToString ( ) , inParam [ "FNewTestCode" ] . ToString ( ) , 0 , string . Join ( "," , ids ) ) ;
MaterialTeamworkBll . UpdateFormula ( inParam [ "FTestCode" ] . ToString ( ) , inParam [ "FNewTestCode" ] . ToString ( ) , 0 , 0 , string . Join ( "," , ids ) ) ;
throw ;
throw ;
}
}
@ -554,7 +681,7 @@ namespace FactorySystemApi.Controllers
{
{
TFS_Formula formula = BaseBll . GetTempModel < TFS_Formula > ( string . Format ( "FTestCode='{0}'" , teamwork . FNewTestCode ) ) ;
TFS_Formula formula = BaseBll . GetTempModel < TFS_Formula > ( string . Format ( "FTestCode='{0}'" , teamwork . FNewTestCode ) ) ;
OAService oAService = new OAService ( ) ;
OAService oAService = new OAService ( ) ;
specifList [ 0 ] . Code = teamwork . F TestCode;
specifList [ 0 ] . Code = teamwork . F New TestCode;
specifList [ 0 ] . Version = formula . FVersionCode ;
specifList [ 0 ] . Version = formula . FVersionCode ;
RestResult restResult = oAService . GetSpecificationsList ( specifList . ToArray ( ) ) ;
RestResult restResult = oAService . GetSpecificationsList ( specifList . ToArray ( ) ) ;
string bomStr = restResult . data = = null ? "[]" : restResult . data . ToString ( ) ;
string bomStr = restResult . data = = null ? "[]" : restResult . data . ToString ( ) ;
@ -597,36 +724,18 @@ namespace FactorySystemApi.Controllers
BaseBll . CreateTaskData2 ( teamwork . FID , userId , "1" ) ; //新增物料分类事项
BaseBll . CreateTaskData2 ( teamwork . FID , userId , "1" ) ; //新增物料分类事项
BaseBll . UpdateTeamProcess2 ( teamId , ( int ) Constant . HalfMaterialProcessType . 物 料 分 类 , 2 , 1 ) ; // 更新物料分类流程
BaseBll . UpdateTeamProcess2 ( teamId , ( int ) Constant . HalfMaterialProcessType . 物 料 分 类 , 2 , 1 ) ; // 更新物料分类流程
////协同发起事项
//BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.协同发起, 3, 2);
//BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.成品视图, 2, 1);
//if (teamwork.FPackID == -1)
//{
// BaseBll.CreateTaskData(teamwork.FID, userId, "9");//新增新包材事项
// BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.组装BOM包含新包材, 2, 1);
//}
//else
//{
// BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.组装BOM包含新包材, 3, 2);
//}
////成品视图
//BaseBll.CreateTaskData(teamwork.FID, userId, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID);
////补充包材规格
//BaseBll.CreateTaskData(teamwork.FID, userId, "14");
////成品视图物料组复核,有权限的所有
//BaseBll.CreateTaskData(teamwork.FID, userId, "12");
OperateLogBll . Add ( teamwork . FID , 2 , "BOM下载成功" , userId ) ;
OperateLogBll . Add ( teamwork . FID , 2 , "BOM下载成功" , userId ) ;
HalfMaterialTeamworkBll . ChangeTeamProcess ( teamwork . FID ) ;
HalfMaterialTeamworkBll . ChangeTeamProcess ( teamwork . FID ) ;
result = 1 ;
result = 1 ;
}
}
}
}
else
//else
{
//{
OperateLogBll . Add ( teamwork . FID , 2 , "BOM下载失败, BOM数据为空" , userId ) ;
// OperateLogBll.Add(teamwork.FID, 2, "BOM下载失败, BOM数据为空", userId);
BaseBll . CreateTaskData2 ( teamwork . FID , userId , ( ( int ) Constant . HalfMaterialTask . BOM 下 载 ) . ToString ( ) ) ;
// BaseBll.CreateTaskData2(teamwork.FID, userId, ((int)Constant.HalfMaterialTask.BOM下载).ToString());
BaseBll . UpdateTeamProcess2 ( teamwork . FID , ( int ) Constant . HalfMaterialTask . 物 料 分 类 , 2 , 1 ) ;
// BaseBll.UpdateTeamProcess2(teamwork.FID, (int)Constant.HalfMaterialTask.物料分类, 2, 1);
HalfMaterialTeamworkBll . ChangeTeamProcess ( teamwork . FID ) ;
// HalfMaterialTeamworkBll.ChangeTeamProcess(teamwork.FID);
}
//}
}
}
catch ( Exception ex )
catch ( Exception ex )
{
{
@ -797,280 +906,287 @@ namespace FactorySystemApi.Controllers
/// </summary>
/// </summary>
private void CreateExeclFile ( int intType , string savePath , string selectSql , string whereSql , string joinSql , string teamId , string halfId )
private void CreateExeclFile ( int intType , string savePath , string selectSql , string whereSql , string joinSql , string teamId , string halfId )
{
{
List < TFS_ViewFieldInfo > filedList = MaterialTeamworkBll . GetTeamworkViewField ( intType ) ;
try
List < string > fieldLists = new List < string > { "父项编码" , "父项描述" , "基本数量" } ;
foreach ( TFS_ViewFieldInfo field in filedList )
{
{
if ( string . IsNullOrEmpty ( field . FField ) )
List < TFS_ViewFieldInfo > filedList = MaterialTeamworkBll . GetTeamworkViewField ( intType ) ;
List < string > fieldLists = new List < string > { "父项编码" , "父项描述" , "基本数量" } ;
foreach ( TFS_ViewFieldInfo field in filedList )
{
{
string str = field . FDefault ;
if ( string . IsNullOrEmpty ( field . FField ) )
if ( fieldLists . Contains ( field . FName ) )
{
{
str = field . FDefault . Replace ( "a.FTeamID" , "a.FHalfMaterialTeamID" ) ;
string str = field . FDefault ;
if ( fieldLists . Contains ( field . FName ) )
{
str = field . FDefault . Replace ( "a.FTeamID" , "a.FHalfMaterialTeamID" ) ;
}
selectSql + = string . Format ( "'{0}' as '{1}'" , string . IsNullOrEmpty ( field . FDefault ) ? "" : str , field . FName ) ;
}
}
selectSql + = string . Format ( "'{0}' as '{1}'" , string . IsNullOrEmpty ( field . FDefault ) ? "" : str , field . FName ) ;
else
}
else
{
string str = field . FField ;
if ( fieldLists . Contains ( field . FName ) )
{
{
str = field . FField . Replace ( "a.FTeamID" , "a.FHalfMaterialTeamID" ) ;
string str = field . FField ;
if ( fieldLists . Contains ( field . FName ) )
{
str = field . FField . Replace ( "a.FTeamID" , "a.FHalfMaterialTeamID" ) ;
}
selectSql + = string . Format ( "isnull({0},'') as '{1}'" , str , field . FName ) ;
}
}
selectSql + = string . Format ( "isnull({0},'') as '{1}'" , str , field . FName ) ;
selectSql + = " ,";
}
}
selectSql + = "," ;
selectSql = selectSql . Replace ( "@FTeamID@" , teamId ) ;
}
selectSql = selectSql . Replace ( "@FMaterialID@" , string . IsNullOrWhiteSpace ( halfId ) ? "-1" : halfId ) ;
selectSql = selectSql . Replace ( "@FTeamID@" , teamId ) ;
DataTable dataList = new DataTable ( ) ;
selectSql = selectSql . Replace ( "@FMaterialID@" , halfId ) ;
if ( intType = = ( int ) Constant . TeamViewType . 组 装 BOM 视 图 )
DataTable dataList = new DataTable ( ) ;
if ( intType = = ( int ) Constant . TeamViewType . 组 装 BOM 视 图 )
{
dataList = MaterialTeamworkBll . GetTeamworkViewData2 ( selectSql . Trim ( ',' ) , whereSql , joinSql ) ;
dataList . Columns . Remove ( "FMaterialID" ) ;
DataTable dataList2 = dataList . Copy ( ) ;
List < bool > hasField = new List < bool > ( ) ;
hasField . Add ( dataList . Columns . Contains ( "BOM用途" ) ) ;
hasField . Add ( dataList . Columns . Contains ( "子项序号" ) ) ;
hasField . Add ( dataList . Columns . Contains ( "组件损耗率" ) ) ;
hasField . Add ( dataList . Columns . Contains ( "固定损耗数量" ) ) ;
int rowCount = dataList . Rows . Count ;
//生产组装BOM处理
for ( int i = 0 ; i < rowCount ; i + + )
{
{
if ( hasField [ 0 ] ) dataList . Rows [ i ] [ "BOM用途" ] = "Y" ;
dataList = MaterialTeamworkBll . GetTeamworkViewData2 ( selectSql . Trim ( ',' ) , whereSql , joinSql ) ;
if ( hasField [ 1 ] ) dataList . Rows [ i ] [ "子项序号" ] = ( i + 1 ) * 10 ;
dataList . Columns . Remove ( "FMaterialID" ) ;
if ( hasField [ 2 ] ) dataList . Rows [ i ] [ "组件损耗率" ] = "" ;
DataTable dataList2 = dataList . Copy ( ) ;
if ( hasField [ 3 ] ) dataList . Rows [ i ] [ "固定损耗数量" ] = "" ;
List < bool > hasField = new List < bool > ( ) ;
dataList . Rows [ i ] [ "可选文本" ] = "生产组装BOM" ;
hasField . Add ( dataList . Columns . Contains ( "BOM用途" ) ) ;
}
hasField . Add ( dataList . Columns . Contains ( "子项序号" ) ) ;
NPOIHelper . ExportDTtoExcel ( dataList , "Sheet1" , savePath . Replace ( ".xlsx" , "1.xlsx" ) ) ;
hasField . Add ( dataList . Columns . Contains ( "组件损耗率" ) ) ;
hasField . Add ( dataList . Columns . Contains ( "固定损耗数量" ) ) ;
int rowCount = dataList . Rows . Count ;
//计划组装BOM处理
//生产组装BOM处理
DataTable dataList3 = dataList2 . Copy ( ) ;
for ( int i = 0 ; i < rowCount ; i + + )
for ( int i = 0 ; i < rowCount ; i + + )
{
if ( hasField [ 1 ] )
{
{
dataList2 . Rows [ i ] [ "子项序号" ] = ( i + 1 ) * 10 ;
if ( hasField [ 0 ] ) dataList . Rows [ i ] [ "BOM用途" ] = "Y" ;
if ( hasField [ 1 ] ) dataList . Rows [ i ] [ "子项序号" ] = ( i + 1 ) * 10 ;
if ( hasField [ 2 ] ) dataList . Rows [ i ] [ "组件损耗率" ] = "" ;
if ( hasField [ 3 ] ) dataList . Rows [ i ] [ "固定损耗数量" ] = "" ;
dataList . Rows [ i ] [ "可选文本" ] = "生产组装BOM" ;
}
}
if ( hasField [ 3 ] & & ! string . IsNullOrEmpty ( dataList2 . Rows [ i ] [ "固定损耗数量" ] . ToString ( ) ) & & ! dataList2 . Rows [ i ] [ "固定损耗数量" ] . ToString ( ) . Equals ( "0" ) )
NPOIHelper . ExportDTtoExcel ( dataList , "Sheet1" , savePath . Replace ( ".xlsx" , "1.xlsx" ) ) ;
//计划组装BOM处理
DataTable dataList3 = dataList2 . Copy ( ) ;
for ( int i = 0 ; i < rowCount ; i + + )
{
{
dataList3 . Rows [ i ] [ "组件数量" ] = "" ;
if ( hasField [ 1 ] )
dataList3 . Rows [ i ] [ "组件损耗率" ] = "" ;
{
dataList3 . Rows [ i ] [ "固定损耗数量" ] = "X" ;
dataList2 . Rows [ i ] [ "子项序号" ] = ( i + 1 ) * 10 ;
if ( hasField [ 1 ] ) dataList3 . Rows [ i ] [ "子项序号" ] = ( i + rowCount + 1 ) * 10 ;
}
dataList3 . Rows [ i ] [ "可选文本" ] = "计划组装BOM" ;
if ( hasField [ 3 ] & & ! string . IsNullOrEmpty ( dataList2 . Rows [ i ] [ "固定损耗数量" ] . ToString ( ) ) & & ! dataList2 . Rows [ i ] [ "固定损耗数量" ] . ToString ( ) . Equals ( "0" ) )
dataList2 . ImportRow ( dataList3 . Rows [ i ] ) ;
{
dataList3 . Rows [ i ] [ "组件数量" ] = "" ;
dataList3 . Rows [ i ] [ "组件损耗率" ] = "" ;
dataList3 . Rows [ i ] [ "固定损耗数量" ] = "X" ;
if ( hasField [ 1 ] ) dataList3 . Rows [ i ] [ "子项序号" ] = ( i + rowCount + 1 ) * 10 ;
dataList3 . Rows [ i ] [ "可选文本" ] = "计划组装BOM" ;
dataList2 . ImportRow ( dataList3 . Rows [ i ] ) ;
}
dataList2 . Rows [ i ] [ "固定损耗数量" ] = "" ;
dataList2 . Rows [ i ] [ "可选文本" ] = "计划组装BOM" ;
}
NPOIHelper . ExportDTtoExcel ( dataList2 , "Sheet1" , savePath . Replace ( ".xlsx" , "2.xlsx" ) ) ;
for ( int i = 0 ; i < dataList2 . Rows . Count ; i + + )
{
if ( i = = 0 ) dataList . Rows . Add ( "[换色]" ) ;
dataList . ImportRow ( dataList2 . Rows [ i ] ) ;
}
}
dataList2 . Rows [ i ] [ "固定损耗数量" ] = "" ;
dataList2 . Rows [ i ] [ "可选文本" ] = "计划组装BOM" ;
}
NPOIHelper . ExportDTtoExcel ( dataList2 , "Sheet1" , savePath . Replace ( ".xlsx" , "2.xlsx" ) ) ;
for ( int i = 0 ; i < dataList2 . Rows . Count ; i + + )
{
if ( i = = 0 ) dataList . Rows . Add ( "[换色]" ) ;
dataList . ImportRow ( dataList2 . Rows [ i ] ) ;
}
}
else if ( intType = = ( int ) Constant . TeamViewType . 配 方 视 图 )
{
//原始配方
DataTable dataList1 = MaterialTeamworkBll . GetTeamworkViewData2 ( selectSql . Trim ( ',' ) , whereSql ) ;
TFS_HalfMaterialFTeamwork teamwork = BaseBll . GetTempModel < TFS_HalfMaterialFTeamwork > ( "FID=" + teamId ) ;
List < BomFormulaDto > bfList = JsonConvert . DeserializeObject < List < BomFormulaDto > > ( teamwork . FBomFormula ) ;
//SetBFData(null, bfList, dataList1);
List < string > forIdList = teamwork . FMaterialFormulaIDs . Split ( ',' ) . ToList ( ) ;
DataTable tempTable = dataList1 . Copy ( ) ;
tempTable . Rows . Clear ( ) ;
DataTable totalTable = tempTable . Copy ( ) ;
List < DataRow > rowList = SetXHData ( null , bfList , dataList1 , forIdList , 1 ) ;
foreach ( var item in rowList )
{
tempTable . Rows . Add ( item . ItemArray ) ;
totalTable . Rows . Add ( item . ItemArray ) ;
}
tempTable . Columns . Remove ( "FMaterialID" ) ;
NPOIHelper . ExportDTtoExcel ( tempTable , "Sheet1" , savePath . Replace ( ".xlsx" , "1.xlsx" ) ) ;
tempTable = dataList1 . Copy ( ) ;
tempTable . Rows . Clear ( ) ;
rowList = SetXHData ( null , bfList , dataList1 , forIdList , 2 ) ;
totalTable . Rows . Add ( "[换色]" ) ;
foreach ( var item in rowList )
{
tempTable . Rows . Add ( item . ItemArray ) ;
totalTable . Rows . Add ( item . ItemArray ) ;
}
}
tempTable . Columns . Remove ( "FMaterialID" ) ;
else if ( intType = = ( int ) Constant . TeamViewType . 配 方 视 图 )
NPOIHelper . ExportDTtoExcel ( tempTable , "Sheet1" , savePath . Replace ( ".xlsx" , "2.xlsx" ) ) ;
tempTable = dataList1 . Copy ( ) ;
tempTable . Rows . Clear ( ) ;
rowList = SetXHData ( null , bfList , dataList1 , forIdList , 3 ) ;
totalTable . Rows . Add ( "[换色]" ) ;
foreach ( var item in rowList )
{
{
tempTable . Rows . Add ( item . ItemArray ) ;
//原始配方
totalTable . Rows . Add ( item . ItemArray ) ;
DataTable dataList1 = MaterialTeamworkBll . GetTeamworkViewData2 ( selectSql . Trim ( ',' ) , whereSql ) ;
}
TFS_HalfMaterialFTeamwork teamwork = BaseBll . GetTempModel < TFS_HalfMaterialFTeamwork > ( "FID=" + teamId ) ;
tempTable . Columns . Remove ( "FMaterialID" ) ;
List < BomFormulaDto > bfList = JsonConvert . DeserializeObject < List < BomFormulaDto > > ( teamwork . FBomFormula ) ;
NPOIHelper . ExportDTtoExcel ( tempTable , "Sheet1" , savePath . Replace ( ".xlsx" , "3.xlsx" ) ) ;
//SetBFData(null, bfList, dataList1);
tempTable . Rows . Clear ( ) ;
List < string > forIdList = teamwork . FMaterialFormulaIDs . Split ( ',' ) . ToList ( ) ;
DataTable tempTable = dataList1 . Copy ( ) ;
tempTable . Rows . Clear ( ) ;
DataTable totalTable = tempTable . Copy ( ) ;
List < DataRow > rowList = SetXHData ( null , bfList , dataList1 , forIdList , 1 ) ;
foreach ( var item in rowList )
{
tempTable . Rows . Add ( item . ItemArray ) ;
totalTable . Rows . Add ( item . ItemArray ) ;
}
tempTable . Columns . Remove ( "FMaterialID" ) ;
NPOIHelper . ExportDTtoExcel ( tempTable , "Sheet1" , savePath . Replace ( ".xlsx" , "1.xlsx" ) ) ;
tempTable = dataList1 . Copy ( ) ;
tempTable . Rows . Clear ( ) ;
rowList = SetXHData ( null , bfList , dataList1 , forIdList , 2 ) ;
totalTable . Rows . Add ( "[换色]" ) ;
foreach ( var item in rowList )
{
tempTable . Rows . Add ( item . ItemArray ) ;
totalTable . Rows . Add ( item . ItemArray ) ;
}
tempTable . Columns . Remove ( "FMaterialID" ) ;
NPOIHelper . ExportDTtoExcel ( tempTable , "Sheet1" , savePath . Replace ( ".xlsx" , "2.xlsx" ) ) ;
tempTable = dataList1 . Copy ( ) ;
tempTable . Rows . Clear ( ) ;
rowList = SetXHData ( null , bfList , dataList1 , forIdList , 3 ) ;
totalTable . Rows . Add ( "[换色]" ) ;
foreach ( var item in rowList )
{
tempTable . Rows . Add ( item . ItemArray ) ;
totalTable . Rows . Add ( item . ItemArray ) ;
}
tempTable . Columns . Remove ( "FMaterialID" ) ;
NPOIHelper . ExportDTtoExcel ( tempTable , "Sheet1" , savePath . Replace ( ".xlsx" , "3.xlsx" ) ) ;
tempTable . Rows . Clear ( ) ;
dataList = totalTable ;
dataList = totalTable ;
dataList . Columns . Remove ( "FMaterialID" ) ;
dataList . Columns . Remove ( "FMaterialID" ) ;
/ * dataList1 . Columns . Remove ( "FMaterialID" ) ;
/ * dataList1 . Columns . Remove ( "FMaterialID" ) ;
List < bool > hasField = new List < bool >
List < bool > hasField = new List < bool >
{
dataList1 . Columns . Contains ( "BOM用途" ) ,
dataList1 . Columns . Contains ( "子项序号" ) ,
dataList1 . Columns . Contains ( "组件损耗率" ) ,
dataList1 . Columns . Contains ( "固定损耗数量" ) ,
dataList1 . Columns . Contains ( "BOM项目文本2" )
} ;
int rowCount = dataList1 . Rows . Count ;
for ( int i = 0 ; i < rowCount ; i + + )
{
//if (hasField[0]) dataList1.Rows[i]["BOM用途"] = "1";
if ( hasField [ 1 ] ) dataList1 . Rows [ i ] [ "子项序号" ] = ( i + 1 ) * 10 ;
if ( hasField [ 2 ] ) dataList1 . Rows [ i ] [ "组件损耗率" ] = "" ;
if ( hasField [ 3 ] ) dataList1 . Rows [ i ] [ "固定损耗数量" ] = "" ;
if ( hasField [ 4 ] ) dataList1 . Rows [ i ] [ "BOM项目文本2" ] = "" ;
dataList1 . Rows [ i ] [ "可选文本" ] = "原始BOM配方" ;
dataList . ImportRow ( dataList1 . Rows [ i ] ) ;
}
NPOIHelper . ExportDTtoExcel ( dataList1 , "Sheet1" , savePath . Replace ( ".xlsx" , "1.xlsx" ) ) ;
dataList = dataList1 . Copy ( ) ;
//生产配方
DataTable dataList2 = TeamworkBll . GetTeamworkViewData2 ( selectSql . Trim ( ',' ) , joinSql . Trim ( ',' ) ) ;
SetBFData ( null , bfList , dataList2 ) ;
dataList2 . Columns . Remove ( "FMaterialID" ) ;
DataTable dataList3 = dataList2 . Copy ( ) ;
string fuIds = "" ;
dataList . Rows . Add ( "[换色]" ) ;
rowCount = dataList2 . Rows . Count ;
for ( int i = 0 ; i < rowCount ; i + + )
{
if ( hasField [ 0 ] ) dataList2 . Rows [ i ] [ "BOM用途" ] = "Y" ;
if ( hasField [ 1 ] ) dataList2 . Rows [ i ] [ "子项序号" ] = ( i + 1 ) * 10 ;
if ( hasField [ 2 ] ) dataList2 . Rows [ i ] [ "组件损耗率" ] = "" ;
if ( hasField [ 3 ] ) dataList2 . Rows [ i ] [ "固定损耗数量" ] = "" ;
if ( hasField [ 4 ] )
{
{
if ( ! string . IsNullOrEmpty ( dataList3 . Rows [ i ] [ "BOM项目文本2" ] . ToString ( ) ) )
dataList1 . Columns . Contains ( "BOM用途" ) ,
{
dataList1 . Columns . Contains ( "子项序号" ) ,
fuIds + = dataList3 . Rows [ i ] [ "BOM项目文本2" ] . ToString ( ) + "," ;
dataList1 . Columns . Contains ( "组件损耗率" ) ,
}
dataList1 . Columns . Contains ( "固定损耗数量" ) ,
dataList2 . Rows [ i ] [ "BOM项目文本2" ] = "" ;
dataList1 . Columns . Contains ( "BOM项目文本2" )
} ;
int rowCount = dataList1 . Rows . Count ;
for ( int i = 0 ; i < rowCount ; i + + )
{
//if (hasField[0]) dataList1.Rows[i]["BOM用途"] = "1";
if ( hasField [ 1 ] ) dataList1 . Rows [ i ] [ "子项序号" ] = ( i + 1 ) * 10 ;
if ( hasField [ 2 ] ) dataList1 . Rows [ i ] [ "组件损耗率" ] = "" ;
if ( hasField [ 3 ] ) dataList1 . Rows [ i ] [ "固定损耗数量" ] = "" ;
if ( hasField [ 4 ] ) dataList1 . Rows [ i ] [ "BOM项目文本2" ] = "" ;
dataList1 . Rows [ i ] [ "可选文本" ] = "原始BOM配方" ;
dataList . ImportRow ( dataList1 . Rows [ i ] ) ;
}
}
dataList2 . Rows [ i ] [ "可选文本" ] = "生产BOM配方" ;
NPOIHelper . ExportDTtoExcel ( dataList1 , "Sheet1" , savePath . Replace ( ".xlsx" , "1.xlsx" ) ) ;
dataList . ImportRow ( dataList2 . Rows [ i ] ) ;
dataList = dataList1 . Copy ( ) ;
}
//生产配方
if ( ! string . IsNullOrEmpty ( fuIds ) )
DataTable dataList2 = TeamworkBll . GetTeamworkViewData2 ( selectSql . Trim ( ',' ) , joinSql . Trim ( ',' ) ) ;
{
SetBFData ( null , bfList , dataList2 ) ;
joinSql = string . Format ( "TFS_ViewMaterial.FMaterialID in({0}) and " , fuIds . Trim ( ',' ) ) + joinSql . Substring ( joinSql . IndexOf ( "TFS_ViewMaterial.FFactoryID" ) ) ;
dataList2 . Columns . Remove ( "FMaterialID" ) ;
DataTable tempList = TeamworkBll . GetTeamworkViewData2 ( selectSql . Trim ( ',' ) , joinSql . Trim ( ',' ) ) ;
DataTable dataList3 = dataList2 . Copy ( ) ;
tempList . Columns . Remove ( "FMaterialID" ) ;
string fuIds = "" ;
foreach ( DataRow dr in tempList . Rows )
dataList . Rows . Add ( "[换色]" ) ;
rowCount = dataList2 . Rows . Count ;
for ( int i = 0 ; i < rowCount ; i + + )
{
{
dataList2 . ImportRow ( dr ) ;
if ( hasField [ 0 ] ) dataList2 . Rows [ i ] [ "BOM用途" ] = "Y" ;
dataList3 . ImportRow ( dr ) ;
if ( hasField [ 1 ] ) dataList2 . Rows [ i ] [ "子项序号" ] = ( i + 1 ) * 10 ;
if ( hasField [ 0 ] )
if ( hasField [ 2 ] ) dataList2 . Rows [ i ] [ "组件损耗率" ] = "" ;
{
if ( hasField [ 3 ] ) dataList2 . Rows [ i ] [ "固定损耗数量" ] = "" ;
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "BOM用途" ] = "Y" ;
dataList3 . Rows [ dataList3 . Rows . Count - 1 ] [ "BOM用途" ] = "1" ;
}
if ( hasField [ 1 ] )
{
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "子项序号" ] = dataList2 . Rows . Count * 10 ;
dataList3 . Rows [ dataList3 . Rows . Count - 1 ] [ "子项序号" ] = dataList2 . Rows . Count * 10 ;
}
if ( hasField [ 2 ] )
{
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "组件损耗率" ] = "" ;
dataList3 . Rows [ dataList3 . Rows . Count - 1 ] [ "组件损耗率" ] = "" ;
}
if ( hasField [ 3 ] )
{
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "固定损耗数量" ] = "" ;
}
if ( hasField [ 4 ] )
if ( hasField [ 4 ] )
{
{
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "BOM项目文本2" ] = "" ;
if ( ! string . IsNullOrEmpty ( dataList3 . Rows [ i ] [ "BOM项目文本2" ] . ToString ( ) ) )
dataList3 . Rows [ dataList3 . Rows . Count - 1 ] [ "BOM项目文本2" ] = "" ;
{
fuIds + = dataList3 . Rows [ i ] [ "BOM项目文本2" ] . ToString ( ) + "," ;
}
dataList2 . Rows [ i ] [ "BOM项目文本2" ] = "" ;
}
}
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "可选文本" ] = "生产BOM配方" ;
dataList2 . Rows [ i ] [ "可选文本" ] = "生产BOM配方" ;
dataList3 . Rows [ dataList3 . Rows . Count - 1 ] [ "可选文本" ] = "计划BOM配方" ;
dataList . ImportRow ( dataList2 . Rows [ i ] ) ;
dataList . ImportRow ( dataList2 . Rows [ dataList2 . Rows . Count - 1 ] ) ;
}
}
}
if ( ! string . IsNullOrEmpty ( fuIds ) )
NPOIHelper . ExportDTtoExcel ( dataList2 , "Sheet1" , savePath . Replace ( ".xlsx" , "2.xlsx" ) ) ;
//计划配方
dataList . Rows . Add ( "[换色]" ) ;
rowCount = dataList3 . Rows . Count ;
for ( int i = 0 ; i < rowCount ; i + + )
{
if ( hasField [ 0 ] ) dataList3 . Rows [ i ] [ "BOM用途" ] = "1" ;
if ( hasField [ 1 ] ) dataList3 . Rows [ i ] [ "子项序号" ] = ( i + 1 ) * 10 ;
if ( hasField [ 3 ] )
{
{
if ( ! string . IsNullOrEmpty ( dataList3 . Rows [ i ] [ "固定损耗数量" ] . ToString ( ) ) )
joinSql = string . Format ( "TFS_ViewMaterial.FMaterialID in({0}) and " , fuIds . Trim ( ',' ) ) + joinSql . Substring ( joinSql . IndexOf ( "TFS_ViewMaterial.FFactoryID" ) ) ;
DataTable tempList = TeamworkBll . GetTeamworkViewData2 ( selectSql . Trim ( ',' ) , joinSql . Trim ( ',' ) ) ;
tempList . Columns . Remove ( "FMaterialID" ) ;
foreach ( DataRow dr in tempList . Rows )
{
{
DataRow dr = dataList3 . Copy ( ) . Rows [ i ] ;
dataList2 . ImportRow ( dr ) ;
dr [ "组件数量" ] = dataList3 . Rows [ i ] [ "固定损耗数量" ] ;
dr [ "组件损耗率" ] = "" ;
dr [ "固定损耗数量" ] = "X" ;
if ( hasField [ 4 ] ) dr [ "BOM项目文本2" ] = "" ;
if ( hasField [ 1 ] ) dr [ "子项序号" ] = ( dataList3 . Rows . Count + 1 ) * 10 ;
dr [ "可选文本" ] = "计划BOM配方" ;
dataList3 . ImportRow ( dr ) ;
dataList3 . ImportRow ( dr ) ;
if ( hasField [ 0 ] )
{
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "BOM用途" ] = "Y" ;
dataList3 . Rows [ dataList3 . Rows . Count - 1 ] [ "BOM用途" ] = "1" ;
}
if ( hasField [ 1 ] )
{
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "子项序号" ] = dataList2 . Rows . Count * 10 ;
dataList3 . Rows [ dataList3 . Rows . Count - 1 ] [ "子项序号" ] = dataList2 . Rows . Count * 10 ;
}
if ( hasField [ 2 ] )
{
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "组件损耗率" ] = "" ;
dataList3 . Rows [ dataList3 . Rows . Count - 1 ] [ "组件损耗率" ] = "" ;
}
if ( hasField [ 3 ] )
{
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "固定损耗数量" ] = "" ;
}
if ( hasField [ 4 ] )
{
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "BOM项目文本2" ] = "" ;
dataList3 . Rows [ dataList3 . Rows . Count - 1 ] [ "BOM项目文本2" ] = "" ;
}
dataList2 . Rows [ dataList2 . Rows . Count - 1 ] [ "可选文本" ] = "生产BOM配方" ;
dataList3 . Rows [ dataList3 . Rows . Count - 1 ] [ "可选文本" ] = "计划BOM配方" ;
dataList . ImportRow ( dataList2 . Rows [ dataList2 . Rows . Count - 1 ] ) ;
}
}
dataList3 . Rows [ i ] [ "固定损耗数量" ] = "" ;
if ( hasField [ 4 ] ) dataList3 . Rows [ i ] [ "BOM项目文本2" ] = "" ;
}
}
dataList3 . Rows [ i ] [ "可选文本" ] = "计划BOM配方" ;
NPOIHelper . ExportDTtoExcel ( dataList2 , "Sheet1" , savePath . Replace ( ".xlsx" , "2.xlsx" ) ) ;
}
//计划配方
NPOIHelper . ExportDTtoExcel ( dataList3 , "Sheet1" , savePath . Replace ( ".xlsx" , "3.xlsx" ) ) ;
dataList . Rows . Add ( "[换色]" ) ;
rowCount = dataList3 . Rows . Count ;
rowCount = dataList3 . Rows . Count ;
for ( int i = 0 ; i < rowCount ; i + + ) { dataList . ImportRow ( dataList3 . Rows [ i ] ) ; } * /
}
else
{
dataList = MaterialTeamworkBll . GetTeamworkViewData ( selectSql . Trim ( ',' ) , whereSql , joinSql ) ;
dataList . Columns . Remove ( "FMaterialID" ) ;
if ( intType = = ( int ) Constant . TeamViewType . 生 产 版 本 视 图 )
{
NPOIHelper . ExportDTtoExcel ( dataList , "Sheet1" , savePath . Replace ( ".xlsx" , "1.xlsx" ) ) ;
int rowCount = dataList . Rows . Count ;
bool isChange = dataList . Columns . Contains ( "BOM用途" ) ;
DataTable dataList2 = dataList . Copy ( ) ;
for ( int i = 0 ; i < rowCount ; i + + )
for ( int i = 0 ; i < rowCount ; i + + )
{
{
if ( isChange & & dataList2 . Rows [ i ] [ "BOM用途" ] . ToString ( ) = = "1" )
if ( hasField [ 0 ] ) dataList3 . Rows [ i ] [ "BOM用途" ] = "1" ;
if ( hasField [ 1 ] ) dataList3 . Rows [ i ] [ "子项序号" ] = ( i + 1 ) * 10 ;
if ( hasField [ 3 ] )
{
{
dataList2 . Rows [ i ] [ "BOM用途" ] = "Y" ;
if ( ! string . IsNullOrEmpty ( dataList3 . Rows [ i ] [ "固定损耗数量" ] . ToString ( ) ) )
{
DataRow dr = dataList3 . Copy ( ) . Rows [ i ] ;
dr [ "组件数量" ] = dataList3 . Rows [ i ] [ "固定损耗数量" ] ;
dr [ "组件损耗率" ] = "" ;
dr [ "固定损耗数量" ] = "X" ;
if ( hasField [ 4 ] ) dr [ "BOM项目文本2" ] = "" ;
if ( hasField [ 1 ] ) dr [ "子项序号" ] = ( dataList3 . Rows . Count + 1 ) * 10 ;
dr [ "可选文本" ] = "计划BOM配方" ;
dataList3 . ImportRow ( dr ) ;
}
dataList3 . Rows [ i ] [ "固定损耗数量" ] = "" ;
if ( hasField [ 4 ] ) dataList3 . Rows [ i ] [ "BOM项目文本2" ] = "" ;
}
}
dataList3 . Rows [ i ] [ "可选文本" ] = "计划BOM配方" ;
}
}
NPOIHelper . ExportDTtoExcel ( dataList2 , "Sheet1" , savePath . Replace ( ".xlsx" , "2.xlsx" ) ) ;
NPOIHelper . ExportDTtoExcel ( dataList3 , "Sheet1" , savePath . Replace ( ".xlsx" , "3.xlsx" ) ) ;
for ( int i = 0 ; i < rowCount ; i + + )
rowCount = dataList3 . Rows . Count ;
for ( int i = 0 ; i < rowCount ; i + + ) { dataList . ImportRow ( dataList3 . Rows [ i ] ) ; } * /
}
else
{
dataList = MaterialTeamworkBll . GetTeamworkViewData ( selectSql . Trim ( ',' ) , whereSql , joinSql ) ;
dataList . Columns . Remove ( "FMaterialID" ) ;
if ( intType = = ( int ) Constant . TeamViewType . 生 产 版 本 视 图 )
{
{
if ( i = = 0 ) dataList . Rows . Add ( "[换色]" ) ;
NPOIHelper . ExportDTtoExcel ( dataList , "Sheet1" , savePath . Replace ( ".xlsx" , "1.xlsx" ) ) ;
dataList . ImportRow ( dataList2 . Rows [ i ] ) ;
int rowCount = dataList . Rows . Count ;
bool isChange = dataList . Columns . Contains ( "BOM用途" ) ;
DataTable dataList2 = dataList . Copy ( ) ;
for ( int i = 0 ; i < rowCount ; i + + )
{
if ( isChange & & dataList2 . Rows [ i ] [ "BOM用途" ] . ToString ( ) = = "1" )
{
dataList2 . Rows [ i ] [ "BOM用途" ] = "Y" ;
}
}
NPOIHelper . ExportDTtoExcel ( dataList2 , "Sheet1" , savePath . Replace ( ".xlsx" , "2.xlsx" ) ) ;
for ( int i = 0 ; i < rowCount ; i + + )
{
if ( i = = 0 ) dataList . Rows . Add ( "[换色]" ) ;
dataList . ImportRow ( dataList2 . Rows [ i ] ) ;
}
}
}
}
}
if ( intType = = ( int ) Constant . TeamViewType . 物 料 视 图 )
{
//處理名字點
}
NPOIHelper . ExportDTtoExcel ( dataList , "Sheet1" , savePath ) ;
}
}
if ( intType = = ( int ) Constant . TeamViewType . 物 料 视 图 )
catch ( Exception ex )
{
{
//處理名字點
throw ;
}
}
NPOIHelper . ExportDTtoExcel ( dataList , "Sheet1" , savePath ) ;
}
}
/// <summary>
/// <summary>