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("a.*,b.FNewTestCode,d.FVersionCode,d.FType as 'FormulaType',b.FSaleCode,b.FFormulaTestCode as FTestCode,b.FMdmCode,b.FFormulaName,b.FMaterialHalfIDs,cast(substring(c.FRemark,4,2)as int)as FViewType") + .Select("a.*,b.FNewTestCode,b.FVersionCode,a.FType as 'FormulaType',b.FSaleCode,b.FFormulaTestCode as FTestCode,b.FMdmCode,b.FFormulaName,b.FMaterialHalfIDs,cast(substring(c.FRemark,4,2)as int)as FViewType,d.FName AS 'FUserName1'") .ToPageList(tq.FPageIndex, tq.FPageSize, ref totalNumber); } diff --git a/FactorySystemBll/HalfMaterialTeamworkBll.cs b/FactorySystemBll/HalfMaterialTeamworkBll.cs index 2cbc2de..5eabc77 100644 --- a/FactorySystemBll/HalfMaterialTeamworkBll.cs +++ b/FactorySystemBll/HalfMaterialTeamworkBll.cs @@ -107,63 +107,63 @@ namespace FactorySystemBll List paramName = new List() { "FDeleted!=1" }; List paramVal = new List(); - //if (inParam != null && inParam.Count > 0) - //{ - // foreach (var item in inParam) - // { - // if (item.Key == "FPageIndex" || item.Key == "PageIndex") - // { - // int.TryParse(item.Value.ToString(), out pageIndex); - // } - // else if (item.Key == "FPageSize" || item.Key == "PageSize") - // { - // int.TryParse(item.Value.ToString(), out pageSize); - // } - // else if (item.Key == "FAddDate" || item.Key == "AddDate") - // { - // paramName.Add("convert(varchar(10),FAddDate,120)=@FAddDate"); - // paramVal.Add(new SugarParameter("@FAddDate", item.Value.ToString())); - // } - // else if (item.Key == "FDataType" || item.Key == "DataType") - // { - // if (item.Value.ToString() == "1")//我发起的 - // { - // paramName.Add("FAddUser=@FAddUser"); - // paramVal.Add(new SugarParameter("@FAddUser", userId)); - // } - // else if (item.Value.ToString() == "2")//我参与的 - // { - // paramName.Add(string.Format(@"FID in(select distinct FTeamID from TFS_FTeamProcess where ','+FChargeID+',' like '%,{0},%' - // union select distinct FTeamID from TFS_Task where ',' + FUserID + ',' like '%,{0},%')", userId)); - // } - // } - // else if (item.Key == "FProgress" || item.Key == "FProgress") - // { - // string pVal = item.Value.ToString(); - // if (!string.IsNullOrEmpty(pVal)) - // { - // if (pVal == "100" || pVal == "100%") - // { - // paramName.Add("FProgress='100'"); - // } - // else - // { - // paramName.Add("FProgress!='100'"); - // } - // } - // } - // else - // { - // //检索,全转成字符串 - // paramName.Add("','+cast(" + item.Key + " as varchar)+',' like '%'+@" + item.Key + "+'%'"); - // paramVal.Add(new SugarParameter("@" + item.Key, item.Value.ToString())); - // } - // } - //} + if (inParam != null && inParam.Count > 0) + { + foreach (var item in inParam) + { + if (item.Key == "FPageIndex" || item.Key == "PageIndex") + { + int.TryParse(item.Value.ToString(), out pageIndex); + } + else if (item.Key == "FPageSize" || item.Key == "PageSize") + { + int.TryParse(item.Value.ToString(), out pageSize); + } + else if (item.Key == "FAddDate" || item.Key == "AddDate") + { + paramName.Add("convert(varchar(10),FAddDate,120)=@FAddDate"); + paramVal.Add(new SugarParameter("@FAddDate", item.Value.ToString())); + } + else if (item.Key == "FDataType" || item.Key == "DataType") + { + if (item.Value.ToString() == "1")//我发起的 + { + paramName.Add("FAddUser=@FAddUser"); + paramVal.Add(new SugarParameter("@FAddUser", userId)); + } + else if (item.Value.ToString() == "2")//我参与的 + { + paramName.Add(string.Format(@"FID in(select distinct FTeamID from TFS_FTeamProcess where ','+FChargeID+',' like '%,{0},%' + union select distinct FTeamID from TFS_Task where ',' + FUserID + ',' like '%,{0},%')", userId)); + } + } + else if (item.Key == "FProgress" || item.Key == "FProgress") + { + string pVal = item.Value.ToString(); + if (!string.IsNullOrEmpty(pVal)) + { + if (pVal == "100" || pVal == "100%") + { + paramName.Add("FProgress='100'"); + } + else + { + paramName.Add("FProgress!='100'"); + } + } + } + else + { + //检索,全转成字符串 + paramName.Add("','+cast(" + item.Key + " as varchar)+',' like '%'+@" + item.Key + "+'%'"); + paramVal.Add(new SugarParameter("@" + item.Key, item.Value.ToString())); + } + } + } SqlSugarClient db = AppSettingsHelper.GetSqlSugar(); - string searchKey = string.Format(@"a.FID AS 'FID',a.FTestCode AS 'FTestCode',b.FVersionCode AS 'FVersionCode',a.FNewTestCode AS 'NewFTestCode',c.FVersionCode AS 'NewFVersionCode',c.FType,a.FAddDate,d.FName,a.FDeleted AS 'FDeleted',b.FDesc,c.FDesc AS 'NewFDesc',a.FMaterialHalfIDs"); - var temp =db.Queryable((a, b, c, d) => new JoinQueryInfos(JoinType.Left, a.FTestCode == b.FTestCode, JoinType.Left, a.FNewTestCode == c.FTestCode, JoinType.Left, a.FAddUser == d.FID)).Select(searchKey); + string searchKey = string.Format(@"a.*,d.FName"); + var temp =db.Queryable((a,d) => new JoinQueryInfos(JoinType.Left, a.FAddUser == d.FID)).Select(searchKey); List result = db.Queryable(temp).Where(string.Join(" and ", paramName), paramVal) .OrderBy("FID desc").ToPageList(pageIndex, pageSize, ref totalCount).ToList(); @@ -178,7 +178,7 @@ namespace FactorySystemBll SqlSugarClient db = AppSettingsHelper.GetSqlSugar(); try { - List typeList = db.Queryable().Where(s => s.FType == (int)Constant.BasicCode.流程类型 && s.FState == 1).ToList(); + List typeList = db.Queryable().Where(s => s.FType == (int)Constant.BasicCode.变更试验号流程 && s.FState == 1).ToList(); List taskList = new List(); foreach (var item in typeList) { @@ -382,6 +382,7 @@ namespace FactorySystemBll mItem.FFactoryID = factory.FID; mItem.FFactoryCode = factory.FCode; } + mItem.FTestCode = teamInfo.FTestCode; mItem.FID = db.Insertable(mItem).IgnoreColumns(true).ExecuteReturnIdentity(); //if (vItem.FLevel > 1) formulaIds += "," + mItem.FID; } @@ -446,6 +447,7 @@ namespace FactorySystemBll mItem.FOldID = oldId; mItem.FLevelID = vItem.FLevel; mItem.FParentID = oldParent; + mItem.FTestCode = teamInfo.FNewTestCode; if (mItem.FLevelID >= 1) formulaList.Add(mItem); } @@ -460,52 +462,6 @@ namespace FactorySystemBll formulaIds += first.FID + "," + fids; } } - //if (hasNewView.Count() > 0) - //{ - // hasNewView.OrderBy(s => s.Key); - // string facoryIds = ""; bool hasOther = false; - // foreach (var item in hasNewView) - // { - // //创建视图事项 - // string factorys = item.Value.Trim(','); - // BaseBll.CreateTaskData(teamInfo.FID, userId, (item.Key + 2).ToString(), factorys); - // facoryIds += factorys; - // if (item.Key != (int)Constant.ViewType.原料视图) hasOther = true; - // } - // if (hasNewView.ContainsKey((int)Constant.ViewType.原料视图)) - // { - // proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.新原料视图, "F2", 1); - // } - // else - // { - // proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.新原料视图, "F4", 2); - // } - // if (hasOther) - // { - // proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.新半成品中间品香基, "F2", 1); - // } - // else - // { - // proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.新半成品中间品香基, "F4", 2); - // } - // if (hasNewView.ContainsKey((int)Constant.ViewType.中间品视图) || hasNewView.ContainsKey((int)Constant.ViewType.香基视图) - // || hasNewView.ContainsKey((int)Constant.ViewType.半成品视图)) - // { - // proSql += string.Format("update TFS_FTeamwork set FViewType=FViewType+',3,4' where FID={0};", teamInfo.FID); - // BaseBll.CreateTaskData(teamId, userId, "8"); - // } - // proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.配方视图, "F2", 1); - //} - //else - //{ - // proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.配方视图, "F2", 2); - // proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.新半成品中间品香基, "F4", 2); - // proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.新原料视图, "F4", 2); - //} - ////下面两个要根据包材判断,先改成进行中,hasNewView == 0 && 包材是旧的,完成 - //int pVersion = (hasNewView.Count == 0 && teamInfo.FPackID < 1) ? 2 : 1; - //proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.生产工艺路线, "F2", pVersion); - //proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.生成版本, "F2", pVersion); string updateSql = ""; @@ -675,14 +631,14 @@ namespace FactorySystemBll TFS_ViewMaterial mainView = new TFS_ViewMaterial() { FMaterialID = mainMater.FID, - FTeamID = teamInfo.FID, + FHalfMaterialTeamID = teamInfo.FID, FFactoryID = teamInfo.FCreateFactoryID, FFactoryCode = teamInfo.FCreateFactoryCode, FViewType = (int)Constant.ViewType.物料分类视图, FLevel = 1, FEditUser = userId, FBaseMaterialCode = teamInfo.FMdmCode, - FBaseTestCode = teamInfo.FTestCode, + FBaseTestCode = teamInfo.FNewTestCode, FBaseBasicMeter = teamInfo.FWeightUnit, FBaseMaterialDesc = teamInfo.FSaleCode, FBaseMaterialGroup = teamInfo.FMaterialGroup, @@ -702,9 +658,9 @@ namespace FactorySystemBll if (teamInfo.FProdFactoryID != teamInfo.FCreateFactoryID) { - mainMater.FFactoryID = teamInfo.FProdFactoryID; - mainMater.FFactoryCode = teamInfo.FProdFactoryCode; - mainMater.FID = db.Insertable(mainMater).IgnoreColumns(true).ExecuteReturnIdentity(); + //mainMater.FFactoryID = teamInfo.FProdFactoryID; + //mainMater.FFactoryCode = teamInfo.FProdFactoryCode; + //mainMater.FID = db.Insertable(mainMater).IgnoreColumns(true).ExecuteReturnIdentity(); mainView.FFactoryID = teamInfo.FProdFactoryID; mainView.FFactoryCode = teamInfo.FProdFactoryCode; @@ -719,8 +675,8 @@ namespace FactorySystemBll //修改流程状态(协同发起完成,成品视图进行中) //proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.协同发起, "F2", 1); //proSql += BaseBll.GetProcessSql(teamInfo.FID, (int)Constant.ProcessType.成品视图, "F2", 1); - proSql += BaseBll.GetTaskSql2(-1, 2, teamInfo.FID, (int)Constant.TaskType.配方选择, 2); - proSql = proSql.Trim(';'); + //proSql += BaseBll.GetTaskSql2(-1, 2, teamInfo.FID, (int)Constant.TaskType.配方选择, 2); + //proSql = proSql.Trim(';'); int result = db.Ado.ExecuteCommand(proSql); db.CommitTran(); } @@ -780,7 +736,7 @@ namespace FactorySystemBll /// 原配方 /// 新配方 /// - public List UpdateFormula(string testCode, string testCode2,int temId, string idList="") + public List UpdateFormula(string testCode, string testCode2,int temId,int factoryID, string idList="") { SqlSugarClient db = AppSettingsHelper.GetSqlSugar(); @@ -798,8 +754,10 @@ namespace FactorySystemBll { sql = string.Format("update TFS_Material set FTestCode='{0}' WHERE FID in ({1})", testCode, idList); } - - db.Ado.ExecuteCommand(sql); + if (materialList.Count() > 0) + { + db.Ado.ExecuteCommand(sql); + } return materialList; } diff --git a/FactorySystemBll/MaterialBll.cs b/FactorySystemBll/MaterialBll.cs index 727162c..927b52f 100644 --- a/FactorySystemBll/MaterialBll.cs +++ b/FactorySystemBll/MaterialBll.cs @@ -1341,5 +1341,12 @@ namespace FactorySystemBll SqlSugarClient db = AppSettingsHelper.GetSqlSugar(); return db.Insertable(material).IgnoreColumns(true).ExecuteReturnIdentity(); } + + + public List GetMaterialInfoList() + { + SqlSugarClient db = AppSettingsHelper.GetSqlSugar(); + return db.Queryable().Where(s => s.FType == 1).ToList(); + } } } \ No newline at end of file diff --git a/FactorySystemBll/TeamworkBll.cs b/FactorySystemBll/TeamworkBll.cs index bc834ef..61ce88e 100644 --- a/FactorySystemBll/TeamworkBll.cs +++ b/FactorySystemBll/TeamworkBll.cs @@ -631,9 +631,9 @@ namespace FactorySystemBll if (teamInfo.FProdFactoryID != teamInfo.FCreateFactoryID) { - mainMater.FFactoryID = teamInfo.FProdFactoryID; - mainMater.FFactoryCode = teamInfo.FProdFactoryCode; - mainMater.FID = db.Insertable(mainMater).IgnoreColumns(true).ExecuteReturnIdentity(); + //mainMater.FFactoryID = teamInfo.FProdFactoryID; + //mainMater.FFactoryCode = teamInfo.FProdFactoryCode; + //mainMater.FID = db.Insertable(mainMater).IgnoreColumns(true).ExecuteReturnIdentity(); mainView.FFactoryID = teamInfo.FProdFactoryID; mainView.FFactoryCode = teamInfo.FProdFactoryCode; diff --git a/FactorySystemBll/ViewBll.cs b/FactorySystemBll/ViewBll.cs index 65dc714..519ba4b 100644 --- a/FactorySystemBll/ViewBll.cs +++ b/FactorySystemBll/ViewBll.cs @@ -234,7 +234,7 @@ namespace FactorySystemBll FStorageConditions = Minfo[0].FStorageConditions; } - TFS_FTeamwork teamWork = db.Queryable().Where(s => s.FID == teamId).First(); + TFS_HalfMaterialFTeamwork teamWork = db.Queryable().Where(s => s.FID == teamId).First(); TFS_PackageMain packAge = db.Queryable().Where(s => s.FCode == teamWork.FPackCode).First(); if (packAge != null) diff --git a/FactorySystemModel/EnumModel/Constant.cs b/FactorySystemModel/EnumModel/Constant.cs index 4cd1761..ecf7350 100644 --- a/FactorySystemModel/EnumModel/Constant.cs +++ b/FactorySystemModel/EnumModel/Constant.cs @@ -33,7 +33,7 @@ namespace FactorySystemModel.EnumModel 视图权限 = 3, 物料视图编辑 = 4, 物料基础编辑 = 5, - 视图编辑=6 + 视图编辑 = 6 } /// @@ -56,8 +56,8 @@ namespace FactorySystemModel.EnumModel 工厂状态 = 42, 协同视图导出 = 43, 物料基础编辑 = 44, - 变更试验号流程=45, - 变更试验号事项=46 + 变更试验号流程 = 45, + 变更试验号事项 = 46 } @@ -105,8 +105,8 @@ namespace FactorySystemModel.EnumModel 流程确认完成 = 13, 补充包材规格 = 14, 物料分类 = 15, - 替代料确认=16, - 物料编辑=17 + 替代料确认 = 16, + 物料编辑 = 17 } /// @@ -114,7 +114,7 @@ namespace FactorySystemModel.EnumModel /// public enum ProcessType { - 物料分类=0, + 物料分类 = 0, 协同发起 = 1, 成品视图 = 2, 新半成品中间品香基 = 3, @@ -124,8 +124,8 @@ namespace FactorySystemModel.EnumModel 生成版本 = 7, 组装BOM包含新包材 = 8, 流程完成 = 9, - 替代品确认=10, - 物料编辑=11 + 替代品确认 = 10, + 物料编辑 = 11 } /// @@ -179,7 +179,8 @@ namespace FactorySystemModel.EnumModel { BOM下载 = 0, 物料分类 = 1, - 物料编辑 = 2 + 物料编辑 = 2, + 物料确认 = 3, } //code=46 @@ -188,8 +189,8 @@ namespace FactorySystemModel.EnumModel BOM下载 = 0, 物料分类 = 1, 物料编辑 = 2, - 流程完成 = 3, - + 物料确认 = 3, + 流程完成 = 4, } } } diff --git a/FactorySystemModel/SqlSugarModel/TFS_HalfMaterialFTeamwork.cs b/FactorySystemModel/SqlSugarModel/TFS_HalfMaterialFTeamwork.cs index d2833b5..1c9bc7e 100644 --- a/FactorySystemModel/SqlSugarModel/TFS_HalfMaterialFTeamwork.cs +++ b/FactorySystemModel/SqlSugarModel/TFS_HalfMaterialFTeamwork.cs @@ -72,6 +72,16 @@ namespace FactorySystemModel.SqlSugarModel /// public string FVersionCode { get; set; } + /// + /// Desc:新版本号 + /// Default: + /// Nullable:False + /// + public string FNewVersionCode { get; set; } + + public string FDesc { get; set; } + public string FNewDesc { get; set; } + /// /// Desc:MDN编码 /// Default: @@ -251,5 +261,6 @@ namespace FactorySystemModel.SqlSugarModel /// Nullable:False /// public string FBomFormula { get; set; } + } }