From da884b4b62a75c990b798fed5872c9a2a139b8a1 Mon Sep 17 00:00:00 2001
From: Yang <903110162@qq.com>
Date: Sat, 22 Apr 2023 16:20:57 +0800
Subject: [PATCH] commit by yzf
---
.../HalfMaterialTeamworkController.cs | 650 +++++++++++-------
.../Controllers/MaterialController.cs | 15 +-
.../Controllers/MaterialTypeController.cs | 18 +-
.../Controllers/ViewController.cs | 23 +-
FactorySystemBll/HalfMaterialTaskBll.cs | 6 +-
FactorySystemBll/HalfMaterialTeamworkBll.cs | 182 ++---
FactorySystemBll/MaterialBll.cs | 7 +
FactorySystemBll/TeamworkBll.cs | 6 +-
FactorySystemBll/ViewBll.cs | 2 +-
FactorySystemModel/EnumModel/Constant.cs | 23 +-
.../TFS_HalfMaterialFTeamwork.cs | 11 +
11 files changed, 538 insertions(+), 405 deletions(-)
diff --git a/FactorySystemApi/Controllers/HalfMaterialTeamworkController.cs b/FactorySystemApi/Controllers/HalfMaterialTeamworkController.cs
index cdc75e8..218d86f 100644
--- a/FactorySystemApi/Controllers/HalfMaterialTeamworkController.cs
+++ b/FactorySystemApi/Controllers/HalfMaterialTeamworkController.cs
@@ -14,6 +14,7 @@ using Newtonsoft.Json.Linq;
using FactorySystemApi.Plm_Formula;
using System.Linq;
using SqlSugar;
+using System.Globalization;
namespace FactorySystemApi.Controllers
{
@@ -40,6 +41,114 @@ namespace FactorySystemApi.Controllers
InsertField = UpdateField = "";
}
+
+
+ ///
+ /// 更新试验号
+ ///
+ ///
+ ///
+ //public ApiResult EditFTestCode(Dictionary 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(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(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 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(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);
+ //}
+
+
///
/// 获取子项集合
///
@@ -149,7 +258,7 @@ namespace FactorySystemApi.Controllers
//创建 TFS_FTeamwork
int teamId = BaseBll.InsertDataModel(inParam, "TFS_HalfMaterialFTeamwork");
- List editMaterialList = MaterialTeamworkBll.UpdateFormula(inParam["FTestCode"].ToString(), inParam["FNewTestCode"].ToString(), teamId);
+ List editMaterialList = MaterialTeamworkBll.UpdateFormula(inParam["FTestCode"].ToString(), inParam["FNewTestCode"].ToString(), teamId, factory.FID);
ids = editMaterialList.Select(m => m.FID).Distinct().ToList();
apiResult.Data = teamId;
@@ -165,20 +274,38 @@ namespace FactorySystemApi.Controllers
{
TFS_HalfMaterialFTeamwork teamwork = BaseBll.GetTempModel(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(new { FMaterialHalfIDs = material.FID }).Where(s => s.FID == teamwork.FID).ExecuteCommand();
+ //}
+ //else
+ //{
+ // //MaterialTeamworkBll.CreateProductView(teamwork, editMaterialList, user.FID);
+ //}
+
//开始BOM下载
int dow= DockGetBomData(teamwork.FID, user.FID);
- if (dow > 0)
+ if (dow > 0 || editMaterialList.Count()>0)
{
MaterialTeamworkBll.HasMaterialTestCode(teamwork);
-
BaseBll.CreateTaskData2(teamwork.FID, user.FID, "1"); //新增物料分类事项
BaseBll.UpdateTeamProcess2(teamId, (int)Constant.HalfMaterialProcessType.物料分类, 2, 1); // 更新物料分类流程
}
else
{
- BaseBll.CreateTaskData2(teamId, user.FID, ((int)Constant.HalfMaterialTask.BOM下载).ToString());
- BaseBll.UpdateTeamProcess2(teamId, (int)Constant.HalfMaterialTask.物料分类, 1, 1);
+ BaseBll.DeleteDataById(teamId, "TFS_HalfMaterialFTeamwork", true);
+ 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)
{
//失败则把修改的更新回去
- 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;
}
@@ -554,7 +681,7 @@ namespace FactorySystemApi.Controllers
{
TFS_Formula formula = BaseBll.GetTempModel(string.Format("FTestCode='{0}'", teamwork.FNewTestCode));
OAService oAService = new OAService();
- specifList[0].Code = teamwork.FTestCode;
+ specifList[0].Code = teamwork.FNewTestCode;
specifList[0].Version = formula.FVersionCode;
RestResult restResult = oAService.GetSpecificationsList(specifList.ToArray());
string bomStr = restResult.data == null ? "[]" : restResult.data.ToString();
@@ -597,36 +724,18 @@ namespace FactorySystemApi.Controllers
BaseBll.CreateTaskData2(teamwork.FID, userId, "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);
HalfMaterialTeamworkBll.ChangeTeamProcess(teamwork.FID);
result = 1;
}
}
- else
- {
- OperateLogBll.Add(teamwork.FID, 2, "BOM下载失败,BOM数据为空", userId);
- BaseBll.CreateTaskData2(teamwork.FID, userId, ((int)Constant.HalfMaterialTask.BOM下载).ToString());
- BaseBll.UpdateTeamProcess2(teamwork.FID, (int)Constant.HalfMaterialTask.物料分类, 2, 1);
- HalfMaterialTeamworkBll.ChangeTeamProcess(teamwork.FID);
- }
+ //else
+ //{
+ // OperateLogBll.Add(teamwork.FID, 2, "BOM下载失败,BOM数据为空", userId);
+ // BaseBll.CreateTaskData2(teamwork.FID, userId, ((int)Constant.HalfMaterialTask.BOM下载).ToString());
+ // BaseBll.UpdateTeamProcess2(teamwork.FID, (int)Constant.HalfMaterialTask.物料分类, 2, 1);
+ // HalfMaterialTeamworkBll.ChangeTeamProcess(teamwork.FID);
+ //}
}
catch (Exception ex)
{
@@ -797,280 +906,287 @@ namespace FactorySystemApi.Controllers
///
private void CreateExeclFile(int intType, string savePath, string selectSql, string whereSql, string joinSql, string teamId, string halfId)
{
- List filedList = MaterialTeamworkBll.GetTeamworkViewField(intType);
-
- List fieldLists = new List { "父项编码", "父项描述", "基本数量" };
- foreach (TFS_ViewFieldInfo field in filedList)
+ try
{
- if (string.IsNullOrEmpty(field.FField))
+ List filedList = MaterialTeamworkBll.GetTeamworkViewField(intType);
+ List fieldLists = new List { "父项编码", "父项描述", "基本数量" };
+ foreach (TFS_ViewFieldInfo field in filedList)
{
- string str = field.FDefault;
- if (fieldLists.Contains(field.FName))
+ if (string.IsNullOrEmpty(field.FField))
{
- 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
- {
- string str = field.FField;
- if (fieldLists.Contains(field.FName))
+ else
{
- 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@", halfId);
- 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 hasField = new List();
- 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++)
+ selectSql = selectSql.Replace("@FTeamID@", teamId);
+ selectSql = selectSql.Replace("@FMaterialID@", string.IsNullOrWhiteSpace(halfId) ? "-1" : halfId);
+ DataTable dataList = new DataTable();
+ if (intType == (int)Constant.TeamViewType.组装BOM视图)
{
- 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";
- }
- NPOIHelper.ExportDTtoExcel(dataList, "Sheet1", savePath.Replace(".xlsx", "1.xlsx"));
+ dataList = MaterialTeamworkBll.GetTeamworkViewData2(selectSql.Trim(','), whereSql, joinSql);
+ dataList.Columns.Remove("FMaterialID");
+ DataTable dataList2 = dataList.Copy();
+ List hasField = new List();
+ 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处理
- DataTable dataList3 = dataList2.Copy();
- for (int i = 0; i < rowCount; i++)
- {
- if (hasField[1])
+ //生产组装BOM处理
+ for (int i = 0; i < rowCount; i++)
{
- 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";
+ }
+ NPOIHelper.ExportDTtoExcel(dataList, "Sheet1", savePath.Replace(".xlsx", "1.xlsx"));
+
+ //计划组装BOM处理
+ DataTable dataList3 = dataList2.Copy();
+ for (int i = 0; i < rowCount; i++)
+ {
+ if (hasField[1])
+ {
+ dataList2.Rows[i]["子项序号"] = (i + 1) * 10;
+ }
+ if (hasField[3] && !string.IsNullOrEmpty(dataList2.Rows[i]["固定损耗数量"].ToString()) && !dataList2.Rows[i]["固定损耗数量"].ToString().Equals("0"))
+ {
+ 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";
}
- if (hasField[3] && !string.IsNullOrEmpty(dataList2.Rows[i]["固定损耗数量"].ToString()) && !dataList2.Rows[i]["固定损耗数量"].ToString().Equals("0"))
+ NPOIHelper.ExportDTtoExcel(dataList2, "Sheet1", savePath.Replace(".xlsx", "2.xlsx"));
+ for (int i = 0; i < dataList2.Rows.Count; 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]);
+ 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("FID=" + teamId);
- List bfList = JsonConvert.DeserializeObject>(teamwork.FBomFormula);
- //SetBFData(null, bfList, dataList1);
- List forIdList = teamwork.FMaterialFormulaIDs.Split(',').ToList();
-
- DataTable tempTable = dataList1.Copy();
- tempTable.Rows.Clear();
- DataTable totalTable = tempTable.Copy();
-
- List rowList = SetXHData(null, bfList, dataList1, forIdList, 1);
- foreach (var item in rowList)
+ else if (intType == (int)Constant.TeamViewType.配方视图)
{
- 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();
+ //原始配方
+ DataTable dataList1 = MaterialTeamworkBll.GetTeamworkViewData2(selectSql.Trim(','), whereSql);
+ TFS_HalfMaterialFTeamwork teamwork = BaseBll.GetTempModel("FID=" + teamId);
+ List bfList = JsonConvert.DeserializeObject>(teamwork.FBomFormula);
+ //SetBFData(null, bfList, dataList1);
+ List forIdList = teamwork.FMaterialFormulaIDs.Split(',').ToList();
- dataList = totalTable;
- dataList.Columns.Remove("FMaterialID");
+ DataTable tempTable = dataList1.Copy();
+ tempTable.Rows.Clear();
+ DataTable totalTable = tempTable.Copy();
- /*dataList1.Columns.Remove("FMaterialID");
- List hasField = new List
- {
- 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])
+ List rowList = SetXHData(null, bfList, dataList1, forIdList, 1);
+ foreach (var item in rowList)
{
- if (!string.IsNullOrEmpty(dataList3.Rows[i]["BOM项目文本2"].ToString()))
- {
- fuIds += dataList3.Rows[i]["BOM项目文本2"].ToString() + ",";
- }
- dataList2.Rows[i]["BOM项目文本2"] = "";
+ tempTable.Rows.Add(item.ItemArray);
+ totalTable.Rows.Add(item.ItemArray);
}
- dataList2.Rows[i]["可选文本"] = "生产BOM配方";
- dataList.ImportRow(dataList2.Rows[i]);
- }
- if (!string.IsNullOrEmpty(fuIds))
- {
- 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)
+ 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)
{
- dataList2.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]["固定损耗数量"] = "";
- }
+ 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.Columns.Remove("FMaterialID");
+
+ /*dataList1.Columns.Remove("FMaterialID");
+ List hasField = new List
+ {
+ 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])
{
- dataList2.Rows[dataList2.Rows.Count - 1]["BOM项目文本2"] = "";
- dataList3.Rows[dataList3.Rows.Count - 1]["BOM项目文本2"] = "";
+ if (!string.IsNullOrEmpty(dataList3.Rows[i]["BOM项目文本2"].ToString()))
+ {
+ fuIds += dataList3.Rows[i]["BOM项目文本2"].ToString() + ",";
+ }
+ dataList2.Rows[i]["BOM项目文本2"] = "";
}
- dataList2.Rows[dataList2.Rows.Count - 1]["可选文本"] = "生产BOM配方";
- dataList3.Rows[dataList3.Rows.Count - 1]["可选文本"] = "计划BOM配方";
- dataList.ImportRow(dataList2.Rows[dataList2.Rows.Count - 1]);
+ dataList2.Rows[i]["可选文本"] = "生产BOM配方";
+ dataList.ImportRow(dataList2.Rows[i]);
}
- }
- 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(fuIds))
{
- 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];
- dr["组件数量"] = dataList3.Rows[i]["固定损耗数量"];
- dr["组件损耗率"] = "";
- dr["固定损耗数量"] = "X";
- if (hasField[4]) dr["BOM项目文本2"] = "";
- if (hasField[1]) dr["子项序号"] = (dataList3.Rows.Count + 1) * 10;
- dr["可选文本"] = "计划BOM配方";
+ dataList2.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(dataList3, "Sheet1", savePath.Replace(".xlsx", "3.xlsx"));
- 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();
+ NPOIHelper.ExportDTtoExcel(dataList2, "Sheet1", savePath.Replace(".xlsx", "2.xlsx"));
+ //计划配方
+ dataList.Rows.Add("[换色]");
+ rowCount = dataList3.Rows.Count;
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"));
- for (int i = 0; i < rowCount; i++)
+ NPOIHelper.ExportDTtoExcel(dataList3, "Sheet1", savePath.Replace(".xlsx", "3.xlsx"));
+ 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("[换色]");
- dataList.ImportRow(dataList2.Rows[i]);
+ 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++)
+ {
+ 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);
}
///
diff --git a/FactorySystemApi/Controllers/MaterialController.cs b/FactorySystemApi/Controllers/MaterialController.cs
index 4c61388..773cb28 100644
--- a/FactorySystemApi/Controllers/MaterialController.cs
+++ b/FactorySystemApi/Controllers/MaterialController.cs
@@ -238,8 +238,21 @@ namespace FactorySystemApi.Controllers
}, apiResult, Request, inParam);
}
-
+ ///
+ /// 获取物料分类
+ ///
+ ///
+ ///
+ [HttpPost]
+ public ApiResult GetMaterialInfoList()
+ {
+ ApiResult apiResult = new ApiResult();
+ return ExceptionHelper.TryReturnException(() =>
+ {
+ apiResult.Data = MaterialBll.GetMaterialInfoList();
+ }, apiResult, Request, null);
+ }
diff --git a/FactorySystemApi/Controllers/MaterialTypeController.cs b/FactorySystemApi/Controllers/MaterialTypeController.cs
index b24a249..2d7aab1 100644
--- a/FactorySystemApi/Controllers/MaterialTypeController.cs
+++ b/FactorySystemApi/Controllers/MaterialTypeController.cs
@@ -40,10 +40,20 @@ namespace FactorySystemApi.Controllers
ApiResult apiResult = new ApiResult();
return ExceptionHelper.TryReturnException(() =>
{
- int dataId = int.Parse(inParam["FDataID"].ToString());
- int dataType = int.Parse(inParam["FType"].ToString());
- string sqlWhere = string.Format("FDataID={0} and FType={1}", dataId, dataType);
- apiResult.Data = BaseBll.GetTempModel(sqlWhere);
+ if (inParam.ContainsKey("FDataID"))
+ {
+ int dataId = int.Parse(inParam["FDataID"].ToString());
+ int dataType = int.Parse(inParam["FType"].ToString());
+ string sqlWhere = string.Format("FDataID={0} and FType={1}", dataId, dataType);
+ apiResult.Data = BaseBll.GetTempModel(sqlWhere);
+ }
+ else if (inParam.ContainsKey("FType"))
+ {
+ int dataType = int.Parse(inParam["FType"].ToString());
+ string sqlWhere = string.Format(" FType={0}", dataType);
+ apiResult.Data = BaseBll.GetTempModel(sqlWhere);
+ }
+
}, apiResult, Request, inParam);
}
diff --git a/FactorySystemApi/Controllers/ViewController.cs b/FactorySystemApi/Controllers/ViewController.cs
index a44660f..0b3cd43 100644
--- a/FactorySystemApi/Controllers/ViewController.cs
+++ b/FactorySystemApi/Controllers/ViewController.cs
@@ -287,7 +287,7 @@ namespace FactorySystemApi.Controllers
halfMaterialTaskBll.CloseHalfMaterialTask(teamId, user.FID, (int)Constant.HalfMaterialProcessType.物料分类);
BaseBll.CreateTaskData2(teamId, user.FID, "2");
- BaseBll.UpdateTeamProcess2(teamwork.FID, (int)Constant.HalfMaterialProcessType.物料分类, 3, 2);
+ BaseBll.UpdateTeamProcess2(teamwork.FID, (int)Constant.HalfMaterialProcessType.物料分类, 2, 2);
BaseBll.UpdateTeamProcess2(teamwork.FID, (int)Constant.HalfMaterialProcessType.物料编辑, 2, 1);
}
@@ -321,9 +321,26 @@ namespace FactorySystemApi.Controllers
// 创建物料视图事项
TFS_HalfMaterialFTeamwork teamwork = BaseBll.GetTempModel(teamId);
- BaseBll.UpdateTeamProcess2(teamwork.FID, (int)Constant.HalfMaterialProcessType.物料编辑, 2, 2);
+ //BaseBll.UpdateTeamProcess2(teamwork.FID, (int)Constant.HalfMaterialProcessType.物料编辑, 2, 2);
HalfMaterialTaskBll halfMaterialTaskBll= new HalfMaterialTaskBll();
- halfMaterialTaskBll.CloseHalfMaterialTask(teamId, user.FID, (int)Constant.HalfMaterialProcessType.物料编辑);
+
+ BaseBll.CreateTaskData2(teamwork.FID, user.FID, "3"); //新增物料分类事项
+ if (inParam["FType"].ToString() == "2")
+ {
+ halfMaterialTaskBll.CloseHalfMaterialTask(teamId, user.FID, (int)Constant.HalfMaterialProcessType.物料编辑);
+ BaseBll.UpdateTeamProcess2(teamwork.FID, (int)Constant.HalfMaterialProcessType.物料编辑, 2, 2);
+ }
+ else if (inParam["FType"].ToString() == "3")
+ {
+ BaseBll.UpdateTeamProcess2(teamwork.FID, (int)Constant.HalfMaterialProcessType.物料确认, 2, 2);
+ halfMaterialTaskBll.CloseHalfMaterialTask(teamId, user.FID, (int)Constant.HalfMaterialProcessType.物料确认);
+
+ HalfMaterialTeamworkBll halfMaterialTeamworkBll = new HalfMaterialTeamworkBll();
+ halfMaterialTeamworkBll.ExecSql(string.Format("update TFS_HalfMaterialFTeamwork set FState=2 Where FID={0}", teamId));
+
+ }
+
+
}
}
}, apiResult, Request);
diff --git a/FactorySystemBll/HalfMaterialTaskBll.cs b/FactorySystemBll/HalfMaterialTaskBll.cs
index fc49520..7557c1c 100644
--- a/FactorySystemBll/HalfMaterialTaskBll.cs
+++ b/FactorySystemBll/HalfMaterialTaskBll.cs
@@ -20,8 +20,8 @@ namespace FactorySystemBll
{
totalNumber = 0;
var db = AppSettingsHelper.GetSqlSugar();
- return db.Queryable((a, b, c,d) => new JoinQueryInfos(JoinType.Inner, a.FTeamID == b.FID,
- JoinType.Inner, c.FType == 46 && a.FType == int.Parse(c.FValue), JoinType.Left, b.FNewTestCode == d.FTestCode))
+ return db.Queryable((a, b, c,d) => new JoinQueryInfos(JoinType.Inner, a.FTeamID == b.FID,
+ JoinType.Inner, c.FType == 46 && a.FType == int.Parse(c.FValue), JoinType.Left,a.FEditUser==d.FID))
// 事项状态
.WhereIF(tq.FState > 0 && tq.FState != 99, (a, b) => a.FState == tq.FState)
// 事项状态
@@ -37,7 +37,7 @@ namespace FactorySystemBll
.WhereIF(tq.FUserID != null, a => (',' + a.FUserID + ',').Contains(',' + tq.FUserID + ','))
// 协同
.WhereIF(tq.FTeamID > 0, a => a.FTeamID == tq.FTeamID).OrderBy((a, b, c) => a.FID, OrderByType.Desc)
- .Select